This table gives some values of an unknown function f ( x ) {\displaystyle f(x)} .
Plot of the data points as given in the table.
x {\displaystyle x} | f ( x ) {\displaystyle f(x)} | ||||
---|---|---|---|---|---|
0 | 0 | ||||
1 | 0 | ., | 8415 | ||
2 | 0 | . | 9093 | ||
3 | 0 | . | 1411 | ||
4 | −0 | . | 7568 | ||
5 | −0 | . | 9589 | ||
6 | −0 | . | 2794 |
Interpolation provides a means of estimating the function at intermediate points, such as x = 2.5 {\displaystyle x=2.5} .,
Descriviamo alcuni metodi di interpolazione, che differiscono in proprietà quali: accuratezza, costo, numero di punti dati necessari e scorrevolezza della funzione interpolante risultante.
Interpolazione costante a tratti
Interpolazione costante a tratti o interpolazione vicina.
Il metodo di interpolazione più semplice consiste nell’individuare il valore di dati più vicino e assegnare lo stesso valore., Nei problemi semplici, è improbabile che questo metodo venga utilizzato, poiché l’interpolazione lineare (vedi sotto) è quasi altrettanto facile, ma nell’interpolazione multivariata di dimensioni superiori, questa potrebbe essere una scelta favorevole per la sua velocità e semplicità.,il regolamento prende due punti dati, dire (xa,ya) e (xb,yb), e il interpolant è dato da:
y = y + ( y b − y a ) x x a x b − x a un punto ( x , y ) {\displaystyle y=y_{a}+\left(y_{b}-y_{a}\right){\frac {x-x_{a}}{x_{b}-x_{a}}}{\text{ a punto }}\left(x,y\right)}
y − y a y b − y a = x − x x b − x a {\displaystyle {\frac {y-y_{a}}{y_{b}-y_{a}}}={\frac {x-x_{a}}{x_{b}-x_{a}}}}
y − y x − x = y b − y a x b − x a {\displaystyle {\frac {y-y_{a}}{x-x_{a}}}={\frac {y_{b}-y_{a}}{x_{b}-x_{a}}}}
l’interpolazione Lineare è facile e veloce, ma non è molto preciso., Un altro svantaggio è che l’interpolante non è differenziabile nel punto xk.
La seguente stima dell’errore mostra che l’interpolazione lineare non è molto precisa. Denota la funzione che vogliamo interpolare per g, e supponiamo che x si trovi tra xa e xb e che g sia due volte continuamente differenziabile. Quindi l’errore di interpolazione lineare è
| f ( x ) − g ( x ) | ≤ C ( x b − x a ) 2 dove C = 1 8 max r max | g ” ( r ) | . Il nostro sito utilizza cookie tecnici e di terze parti per migliorare la tua esperienza di navigazione.,}
In parole, l’errore è proporzionale al quadrato della distanza tra i punti dati. L’errore in alcuni altri metodi, tra cui l’interpolazione polinomiale e l’interpolazione spline (descritta di seguito), è proporzionale a potenze superiori della distanza tra i punti dati. Questi metodi producono anche interpolanti più fluidi.,
Polinomio interpolationEdit
Plot dei dati con il polinomio di interpolazione applicata
il Polinomio di interpolazione è una generalizzazione di interpolazione lineare. Si noti che l’interpolante lineare è una funzione lineare. Ora sostituiamo questo interpolante con un polinomio di grado superiore.
Considera di nuovo il problema sopra indicato. Il seguente polinomio di sesto grado passa attraverso tutti i sette punti:
f (x) = − 0.,0001521 x 6 – 0,003130 x 5 + 0,07321 x 4 – 0,3577 x 3 + 0,2255 x 2 + 0,9038 x . {\displaystyle f (x)=-0.0001521 x^{6}-0.003130 x^{5}+0.07321 x^{4}-0.3577 x^{3}+0.2255 x^{2}+0.9038 x.}
Sostituendo x = 2.5, troviamo che f(2.5) = ~0.59678.
Generalmente, se abbiamo n punti dati, c’è esattamente un polinomio di grado al massimo n−1 che passa attraverso tutti i punti dati. L’errore di interpolazione è proporzionale alla distanza tra i punti dati alla potenza n. Inoltre, l’interpolante è un polinomio e quindi infinitamente differenziabile., Quindi, vediamo che l’interpolazione polinomiale supera la maggior parte dei problemi dell’interpolazione lineare.
Tuttavia, l’interpolazione polinomiale presenta anche alcuni svantaggi. Il calcolo del polinomio interpolante è computazionalmente costoso (vedi complessità computazionale) rispetto all’interpolazione lineare. Inoltre, l’interpolazione polinomiale può presentare artefatti oscillatori, specialmente nei punti finali (vedi fenomeno di Runge).
L’interpolazione polinomiale può stimare massimi e minimi locali che sono al di fuori dell’intervallo dei campioni, a differenza dell’interpolazione lineare., Ad esempio, l’interpolante sopra ha un massimo locale a x ≈ 1.566, f(x) ≈ 1.003 e un minimo locale a x ≈ 4.708, f(x) ≈ -1.003. Tuttavia, questi massimi e minimi possono superare l’intervallo teorico della funzione—ad esempio, una funzione che è sempre positiva può avere un interpolante con valori negativi e la cui inversa contiene quindi falsi asintoti verticali.
Più in generale, la forma della curva risultante, specialmente per valori molto alti o bassi della variabile indipendente, può essere contraria al buon senso, cioè, a ciò che è noto circa il sistema sperimentale che ha generato i punti di dati. Questi svantaggi possono essere ridotti utilizzando l’interpolazione spline o limitando l’attenzione ai polinomi di Chebyshev.
Spline interpolationEdit
Plot dei dati con interpolazione spline applicata
si Ricorda che l’interpolazione lineare utilizza una funzione lineare per ciascuno degli intervalli ., L’interpolazione spline utilizza polinomi di basso grado in ciascuno degli intervalli e sceglie i pezzi polinomiali in modo tale che si adattino uniformemente. La funzione risultante è chiamata spline.
Ad esempio, la spline cubica naturale è cubica a tratti e due volte continuamente differenziabile. Inoltre, la sua derivata seconda è zero nei punti finali. La spline cubica naturale che interpola i punti nella tabella sopra è data da
f ( x ) = { − 0.1522 x 3 + 0.9937 x , se x ∈ , − 0.01258 x 3 − 0.4189 x 2 + 1.4126 x − 0.1396 , se x ∈ , 0.1403 x 3 − 1.3359 x 2 + 3.2467 x − 1.,3623 , if x ∈ , 0.1579 x 3 − 1.4945 x 2 + 3.7225 x − 1.8381 , if x ∈ , 0.05375 x 3 − 0.2450 x 2 − 1.2756 x + 4.8259 , if x ∈ , − 0.1871 x 3 + 3.3673 x 2 − 19.3370 x + 34.9282 , if x ∈ . {\displaystyle f(x)={\begin{cases}-0.1522x^{3}+0.9937x,&{\text{if }}x\in ,\\-0.01258x^{3}-0.4189x^{2}+1.4126x-0.1396,&{\text{if }}x\in ,\\0.1403x^{3}-1.3359x^{2}+3.2467x-1.3623,&{\text{if }}x\in ,\\0.1579x^{3}-1.4945x^{2}+3.7225x-1.8381,&{\text{if }}x\in ,\\0.05375x^{3}-0.2450x^{2}-1.2756x+4.,8259, &{\text{if }}x\in ,\\-0.1871 x^{3}+3.3673 x^{2}-19.3370 x+34.9282,& {\text{if }}x\in .\ end {cases}}}
In questo caso otteniamo f(2.5) = 0.5972.
Come l’interpolazione polinomiale, l’interpolazione spline comporta un errore minore rispetto all’interpolazione lineare, mentre l’interpolante è più agevole e più facile da valutare rispetto ai polinomi di alto grado utilizzati nell’interpolazione polinomiale. Tuttavia, la natura globale delle funzioni di base porta a un cattivo condizionamento., Questo è completamente mitigato utilizzando spline di supporto compatto, come sono implementati in Boost.Matematica e discusso in Kress.