Teoria: Interpolazione a tratti, spline cubiche e minimi quadratiInvece di un polinomio di grado alto si usano polinomi di grado basso su ogni intervallo. Lineare a tratti: errore ≤ h²/8·max|f''|. Spline cubica: polinomio di grado 3 su ogni intervallo, di classe C² nei nodi; i momenti M_i = S''(x_i) risolvono un sistema tridiagonale (h_{i−1}/6)M_{i−1} + ((h_{i−1}+h_i)/3)M_i + (h_i/6)M_{i+1} = differenza tra le pendenze dei due intervalli adiacenti, con due condizioni agli estremi (naturale M_0 = M_n = 0, vincolata, not-a-knot); errore O(h⁴), nessun fenomeno di Runge. Minimi quadrati: con più dati che parametri si minimizza ‖Ac − y‖², cioè si risolvono le equazioni normali AᵀA c = Aᵀy (proiezione ortogonale di y sulle colonne di A); la retta di regressione minimizza la somma dei quadrati dei residui e i residui sono ortogonali alle colonne.Interpolazione a tratti, spline cubiche e minimi quadrati → .
Testo
Si approssima f ( x ) = sin x f(x) = \sin x f ( x ) = sin x con l'interpolante lineare a tratti.
(a) Con i nodi 0 , 0 , 5 , 1 , 1 , 5 0,\ 0{,}5,\ 1,\ 1{,}5 0 , 0 , 5 , 1 , 1 , 5 (valori 0 , 0 , 479426 , 0 , 841471 , 0 , 997495 0,\ 0{,}479426,\ 0{,}841471,\ 0{,}997495 0 , 0 , 479426 , 0 , 841471 , 0 , 997495 ) stimare sin 0 , 8 \sin 0{,}8 sin 0 , 8 e confrontare l'errore con il maggiorante teorico.
(b) Dimostrare il maggiorante h 2 8 max ∣ f ′ ′ ∣ \frac{h^2}{8}\max|f''| 8 h 2 max ∣ f ′′ ∣ per un intervallo di lunghezza h h h .
(c) Quanti intervalli uguali servono su [ 0 , π ] [0,\pi] [ 0 , π ] per garantire un errore ≤ 1 0 − 3 \le 10^{-3} ≤ 1 0 − 3 ?
(d) Domanda teorica: di quanto cala l'errore se si dimezza il passo? Confrontare con l'interpolazione quadratica a tratti.
Soluzione
(a) Stima di sin 0 , 8 \sin 0{,}8 sin 0 , 8
0 , 8 ∈ [ 0 , 5 , 1 ] 0{,}8 \in [0{,}5,\ 1] 0 , 8 ∈ [ 0 , 5 , 1 ] . L'interpolante lineare è
s ( 0 , 8 ) = y 1 + y 2 − y 1 1 − 0 , 5 ( 0 , 8 − 0 , 5 ) = 0 , 479426 + 0 , 841471 − 0 , 479426 0 , 5 ⋅ 0 , 3 = 0 , 479426 + 0 , 724090 ⋅ 0 , 3 = 0 , 696653. s(0{,}8) = y_1 + \frac{y_2 - y_1}{1 - 0{,}5}(0{,}8 - 0{,}5) = 0{,}479426 + \frac{0{,}841471 - 0{,}479426}{0{,}5}\cdot 0{,}3 = 0{,}479426 + 0{,}724090\cdot 0{,}3 = 0{,}696653. s ( 0 , 8 ) = y 1 + 1 − 0 , 5 y 2 − y 1 ( 0 , 8 − 0 , 5 ) = 0 , 479426 + 0 , 5 0 , 841471 − 0 , 479426 ⋅ 0 , 3 = 0 , 479426 + 0 , 724090 ⋅ 0 , 3 = 0 , 696653.
Valore esatto sin 0 , 8 = 0 , 717356 \sin 0{,}8 = 0{,}717356 sin 0 , 8 = 0 , 717356 ; errore 0 , 0207 0{,}0207 0 , 0207 . Maggiorante: h = 0 , 5 h = 0{,}5 h = 0 , 5 , max ∣ f ′ ′ ∣ = max ∣ sin ∣ ≤ 1 \max|f''| = \max|\sin| \le 1 max ∣ f ′′ ∣ = max ∣ sin ∣ ≤ 1 , quindi 0 , 25 8 ⋅ 1 = 0 , 03125 \frac{0{,}25}{8}\cdot 1 = 0{,}03125 8 0 , 25 ⋅ 1 = 0 , 03125 ; 0 , 0207 ≤ 0 , 03125 0{,}0207 \le 0{,}03125 0 , 0207 ≤ 0 , 03125 ✓. Si può restringere con il valore locale: nel punto x = 0 , 8 x = 0{,}8 x = 0 , 8 l'errore è ∣ f ′ ′ ( ξ ) ∣ 2 ∣ ( 0 , 8 − 0 , 5 ) ( 0 , 8 − 1 ) ∣ = ∣ sin ξ ∣ 2 ⋅ 0 , 06 \frac{|f''(\xi)|}{2}|(0{,}8 - 0{,}5)(0{,}8 - 1)| = \frac{|\sin\xi|}{2}\cdot 0{,}06 2 ∣ f ′′ ( ξ ) ∣ ∣ ( 0 , 8 − 0 , 5 ) ( 0 , 8 − 1 ) ∣ = 2 ∣ s i n ξ ∣ ⋅ 0 , 06 e con sin ξ ≈ 0 , 69 \sin\xi \approx 0{,}69 sin ξ ≈ 0 , 69 (cioè ξ ≈ 0 , 76 \xi \approx 0{,}76 ξ ≈ 0 , 76 ) dà proprio 0 , 0207 0{,}0207 0 , 0207 .
(b) Dimostrazione
In [ x i , x i + 1 ] [x_i, x_{i+1}] [ x i , x i + 1 ] l'interpolante è il polinomio di grado 1 1 1 nei due nodi, quindi per la formula dell'errore (Interpolazione polinomiale - forma di Lagrange, differenze divise ed erroreDati n+1 punti con ascisse distinte esiste un unico polinomio p_n di grado ≤ n che passa per tutti. Forma di Lagrange p = Σ y_i L_i(x) (L_i(x_j) = δ_ij); forma di Newton p = Σ f[x_0..x_k] Π_{j<k}(x − x_j) con le differenze divise (si aggiunge un nodo senza rifare tutto). Errore f(x) − p_n(x) = f^(n+1)(ξ)/(n+1)! · ω(x), ω(x) = Π(x − x_i): dipende da f e dalla scelta dei nodi. Nodi equispaziati con n grande danno il fenomeno di Runge; i nodi di Chebyshev minimizzano max|ω| = 2^(−n) su [−1,1].Interpolazione polinomiale - forma di Lagrange, differenze divise ed errore → )
f ( x ) − s ( x ) = f ′ ′ ( ξ ) 2 ( x − x i ) ( x − x i + 1 ) . f(x) - s(x) = \frac{f''(\xi)}{2}(x - x_i)(x - x_{i+1}). f ( x ) − s ( x ) = 2 f ′′ ( ξ ) ( x − x i ) ( x − x i + 1 ) .
La funzione q ( x ) = ( x − x i ) ( x − x i + 1 ) q(x) = (x - x_i)(x - x_{i+1}) q ( x ) = ( x − x i ) ( x − x i + 1 ) è una parabola con zeri nei nodi e minimo nel punto medio, dove vale − ( h 2 ) 2 = − h 2 4 -\left(\frac h2\right)^2 = -\frac{h^2}{4} − ( 2 h ) 2 = − 4 h 2 ; quindi ∣ q ∣ ≤ h 2 4 |q| \le \frac{h^2}{4} ∣ q ∣ ≤ 4 h 2 e
∣ f − s ∣ ≤ max ∣ f ′ ′ ∣ 2 ⋅ h 2 4 = h 2 8 max ∣ f ′ ′ ∣ . |f - s| \le \frac{\max|f''|}{2}\cdot\frac{h^2}{4} = \frac{h^2}{8}\max|f''|. ∣ f − s ∣ ≤ 2 max ∣ f ′′ ∣ ⋅ 4 h 2 = 8 h 2 max ∣ f ′′ ∣.
(c) Numero di intervalli
Con max ∣ f ′ ′ ∣ = 1 \max|f''| = 1 max ∣ f ′′ ∣ = 1 e h = π N h = \frac{\pi}{N} h = N π : h 2 8 ≤ 1 0 − 3 ⟺ h ≤ 8 ⋅ 1 0 − 3 = 0 , 08944 ⟺ N ≥ π 0 , 08944 = 35 , 12 \frac{h^2}{8} \le 10^{-3} \iff h \le \sqrt{8\cdot 10^{-3}} = 0{,}08944 \iff N \ge \frac{\pi}{0{,}08944} = 35{,}12 8 h 2 ≤ 1 0 − 3 ⟺ h ≤ 8 ⋅ 1 0 − 3 = 0 , 08944 ⟺ N ≥ 0 , 08944 π = 35 , 12 , quindi N = 36 \mathbf{N = 36} N = 36 intervalli (h = 0 , 0873 h = 0{,}0873 h = 0 , 0873 ). Verifica numerica: con N = 36 N = 36 N = 36 il maggiorante vale 9 , 52 ⋅ 1 0 − 4 9{,}52\cdot10^{-4} 9 , 52 ⋅ 1 0 − 4 e l'errore massimo effettivo 9 , 51 ⋅ 1 0 − 4 9{,}51\cdot 10^{-4} 9 , 51 ⋅ 1 0 − 4 (quasi uguale: il massimo di ∣ sin ∣ |\sin| ∣ sin ∣ è 1 1 1 nell'intervallo contenente π 2 \frac\pi2 2 π e il punto medio coincide quasi con il massimo); con N = 35 N=35 N = 35 il maggiorante sarebbe 1 , 007 ⋅ 1 0 − 3 > 1 0 − 3 1{,}007\cdot 10^{-3} > 10^{-3} 1 , 007 ⋅ 1 0 − 3 > 1 0 − 3 .
(d) Dimezzare il passo
L'errore è O ( h 2 ) O(h^2) O ( h 2 ) : dimezzando h h h si divide per 4 4 4 . Con polinomi di grado d d d a tratti l'errore è O ( h d + 1 ) O(h^{d+1}) O ( h d + 1 ) : quadratica a tratti (d = 2 d=2 d = 2 ) darebbe O ( h 3 ) O(h^3) O ( h 3 ) , divisione per 8 8 8 ; cubica O ( h 4 ) O(h^4) O ( h 4 ) (divisione per 16 16 16 ).
Risultati. s ( 0 , 8 ) = 0 , 696653 s(0{,}8) = \mathbf{0{,}696653} s ( 0 , 8 ) = 0 , 696653 (errore 0 , 0207 ≤ 0 , 03125 0{,}0207 \le 0{,}03125 0 , 0207 ≤ 0 , 03125 ); N = 36 N = \mathbf{36} N = 36 intervalli.
Errori tipici
Usare h 2 4 \frac{h^2}{4} 4 h 2 o h 2 2 \frac{h^2}{2} 2 h 2 al posto di h 2 8 \frac{h^2}{8} 8 h 2 : il fattore 1 8 \frac18 8 1 viene da 1 2 \frac12 2 1 (formula dell'errore) per 1 4 \frac14 4 1 (massimo di ∣ q ∣ |q| ∣ q ∣ ).
Inserire h h h come larghezza totale b − a b-a b − a invece che come ampiezza del singolo intervallo.
Versione ripasso
(a) In [ 0 , 5 , 1 ] [0{,}5,1] [ 0 , 5 , 1 ] : s ( 0 , 8 ) = 0 , 479426 + 0 , 841471 − 0 , 479426 0 , 5 ⋅ 0 , 3 = 0 , 696653 s(0{,}8)=0{,}479426+\frac{0{,}841471-0{,}479426}{0{,}5}\cdot0{,}3=0{,}696653 s ( 0 , 8 ) = 0 , 479426 + 0 , 5 0 , 841471 − 0 , 479426 ⋅ 0 , 3 = 0 , 696653 (sin 0 , 8 = 0 , 717356 \sin0{,}8=0{,}717356 sin 0 , 8 = 0 , 717356 , errore 0 , 0207 0{,}0207 0 , 0207 ); maggiorante 0 , 5 2 8 = 0 , 03125 \frac{0{,}5^2}8=0{,}03125 8 0 , 5 2 = 0 , 03125 (Interpolazione a tratti, spline cubiche e minimi quadratiInvece di un polinomio di grado alto si usano polinomi di grado basso su ogni intervallo. Lineare a tratti: errore ≤ h²/8·max|f''|. Spline cubica: polinomio di grado 3 su ogni intervallo, di classe C² nei nodi; i momenti M_i = S''(x_i) risolvono un sistema tridiagonale (h_{i−1}/6)M_{i−1} + ((h_{i−1}+h_i)/3)M_i + (h_i/6)M_{i+1} = differenza tra le pendenze dei due intervalli adiacenti, con due condizioni agli estremi (naturale M_0 = M_n = 0, vincolata, not-a-knot); errore O(h⁴), nessun fenomeno di Runge. Minimi quadrati: con più dati che parametri si minimizza ‖Ac − y‖², cioè si risolvono le equazioni normali AᵀA c = Aᵀy (proiezione ortogonale di y sulle colonne di A); la retta di regressione minimizza la somma dei quadrati dei residui e i residui sono ortogonali alle colonne.Interpolazione a tratti, spline cubiche e minimi quadrati → ).
(b) f − s = f ′ ′ ( ξ ) 2 ( x − x i ) ( x − x i + 1 ) f-s=\frac{f''(\xi)}2(x-x_i)(x-x_{i+1}) f − s = 2 f ′′ ( ξ ) ( x − x i ) ( x − x i + 1 ) ; ∣ ( x − x i ) ( x − x i + 1 ) ∣ ≤ h 2 4 |(x-x_i)(x-x_{i+1})|\le\frac{h^2}4 ∣ ( x − x i ) ( x − x i + 1 ) ∣ ≤ 4 h 2 (punto medio): ∣ f − s ∣ ≤ h 2 8 max ∣ f ′ ′ ∣ |f-s|\le\frac{h^2}8\max|f''| ∣ f − s ∣ ≤ 8 h 2 max ∣ f ′′ ∣ .
(c) h 2 8 ≤ 1 0 − 3 ⇒ h ≤ 0 , 08944 ⇒ N ≥ π 0 , 08944 = 35 , 12 \frac{h^2}8\le10^{-3}\Rightarrow h\le0{,}08944\Rightarrow N\ge\frac\pi{0{,}08944}=35{,}12 8 h 2 ≤ 1 0 − 3 ⇒ h ≤ 0 , 08944 ⇒ N ≥ 0 , 08944 π = 35 , 12 , N = 36 N=36 N = 36 (maggiorante 9 , 52 ⋅ 1 0 − 4 9{,}52\cdot10^{-4} 9 , 52 ⋅ 1 0 − 4 , errore vero 9 , 51 ⋅ 1 0 − 4 9{,}51\cdot10^{-4} 9 , 51 ⋅ 1 0 − 4 ); N = 35 N=35 N = 35 darebbe 1 , 007 ⋅ 1 0 − 3 1{,}007\cdot10^{-3} 1 , 007 ⋅ 1 0 − 3 .
(d) O ( h 2 ) O(h^2) O ( h 2 ) : dimezzando h h h , errore / 4 /4 /4 ; grado d d d a tratti O ( h d + 1 ) O(h^{d+1}) O ( h d + 1 ) (/ 8 /8 /8 per la quadratica, / 16 /16 /16 per la cubica).
Errori tipici: h 2 4 \frac{h^2}4 4 h 2 o h 2 2 \frac{h^2}2 2 h 2 al posto di h 2 8 \frac{h^2}8 8 h 2 (è 1 2 ⋅ 1 4 \frac12\cdot\frac14 2 1 ⋅ 4 1 ); h = b − a h=b-a h = b − a invece dell'ampiezza di un intervallo.