f - Università degli Studi della Basilicata
Transcript
f - Università degli Studi della Basilicata
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Approssimazione di funzioni In molti problemi matematici emerge l’esigenza di dover approssimare una funzione f ∈ C k ([a, b]), [a, b] ⊂ R, k ≥ 0, (C k ([a, b]) spazio delle funzioni derivabili k volte in [a, b] con derivata k−esima continua in [a, b]) definita mediante una sua rappresentazione analitica con un’altra funzione φn ∈ Φn ⊂ C k ([a, b]) di forma più semplice (Φn sottospazio di C k ([a, b]) di dimensione finita n). La funzione φn si dice approssimazione della funzione f e naturalmente occorre valutare lo “scostamento” di φn da f. Più precisamente si sceglie una successione di sottospazi {Φn }n di C k ([a, b]) (ciascuno di dimensione finita n) a cui si vuole che le funzioni approssimanti {φn }n appartengano. Le funzioni approssimanti φn vengono espresse come combinazione lineare di una base prescelta in tali sottospazi. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Per misurare la bontà di φn , (ovvero la distanza di φn da f ) si valuta la norma kf − φn k∞ := max |f (x) − φn (x)|. x∈[a,b] Se si verifica che lim kf − φn k∞ = 0 n→∞ si dice che la successione {φn }n converge ad f in C k ([a, b]) con la norma uniforme. Naturalmente richiediamo che l’ordine di convergenza sia il più grande possibile. Noi prenderemo in considerazione i seguenti sottospazi: • Pn polinomi algebrici di grado al più n, si parlerà di approssimazione polinomiale algebrica; • Sn funzioni spline di ordine n, si parlerà di approssimazione polinomiale a tratti. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Approssimazione Polinomiale Algebrica Nello studio dell’approssimazione polinomiale algebrica ci si chiede se è sempre possibile costruire una successione di polinomi {Pn }n che converga uniformemente in [a, b] ad una funzione continua f ivi definita ed arbitrariamente fissata. La risposta ci è fornita dal seguente teorema Teorema 1 (Weierstrass) Per ogni funzione f ∈ C 0 ([a, b]), esiste almeno una successione di polinomi {Pn }n tale che lim kf − Pn k∞ = 0. n La quantità En (f ) = inf kf − P k∞ P ∈Pn è chiamato errore di miglior approssimazione della funzione f mediante polinomi algebrici di grado al più n. Se f ∈ C 0 ([a, b], esiste uno ed un solo polinomio P ∗ ∈ Pn tale che En (f ) = min kf − P k∞ = kf − P ∗ k∞ , P ∈Pn ed è detto polinomio di miglior approssimazione della funzione f in Pn . Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Assegnata una funzione f ∈ C 0 ([a, b]) non è facile individuare il suo polinomio di miglior approssimazione in un dato sottospazio Pn . Tuttavia l’errore di miglior approssimazione è un utile strumento perchè ci permette di stabilire qual è la miglior approssimazione che ci si può aspettare per quella funzione mediante polinomi algebrici appartenenti a Pn . L’errore di miglior approssimazione dipende dalla regolarità della funzione che si vuole approssimare. Vale il seguente teorema Teorema 2 Se f ∈ C k ([a, b]) vale la seguente stima per l’errore di miglior approssimazione En (f ) ≤ C nk dove C è una costante positiva che non dipende da m e k. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Polinomio di Taylor Sia f ∈ C (n+1) ([a, b]) e sia x0 ∈ [a, b], per ogni punto x ∈ [a, b] esiste un punto ξ, interno all’intervallo di estremi x0 e x, tale che f (n) (x0 ) f (x) = f (x0 ) + f (x0 )(x − x0 ) + . . . + (x − x0 )n n! f (n+1) (ξ) + (x − x0 )n+1 (n + 1)! = Tn (x) + Rn+1 (f, x), 0 dove Tn è il Polinomio di Taylor di grado n della funzione f di punto iniziale x0 e Rn+1 (f ) è il Resto di Lagrange. Se x0 = 0, Tn viene detto Polinomio di Mac-Laurin. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Se le derivate di f sono equilimitate, cioè ∃l > 0 tale che |f (k) (x)| ≤ l, ∀x ∈ [a, b] e ∀k = 0, 1, . . . , n + 1, si ha |x − x0 |n+1 |Rn+1 (f, x)| = |f (x)−Tn (x)| ≤ l , ∀x ∈ [a, b]\{x0 } (n + 1)! e dunque lim Rn+1 (f, x) = 0, n→+∞ ∀x ∈ [a, b] \ {x0 }. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esempio 1 f (x) = ex . Si ha f (k) (x) = ex , ∀ k ∈ N. Inoltre, essendo ex una funzione crescente su R, |f (k) (x)| < eb , ∀x ∈ [a, b] e ∀k ∈ N Sia x0 ∈ [a, b], ∀x ∈ [a, b] ∃ξ ∈ [x0 , x] tale che x e =e x0 x0 + e (x − x0 ) + . . . + e x0 n+1 (x − x0 )n ξ (x − x0 ) +e . n! (n + 1)! In particolare se x0 = 0 ∈ [a, b] si ha n+1 xn ξ x e = 1 + x + ... + +e n! (n + 1)! x Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Supponiamo di voler calcolare il valore approssimato del numero di Nepero e con 6 cifre decimali esatte. Per 0 < ξ < 1 si ha 1 e 3 Rn+1 (f, 1) = e < < (n + 1)! (n + 1)! (n + 1)! ξ e poichè per n = 10 si ha 3 1 Rn+1 (f, 1) ≤ < 7 (11)! 10 otteniamo e=1+1+ 1 1 1 + + ... + = 2.718281.... 2 3! 10! il valore esatto fino alla 6a cifra decimale. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esempio 2 f (x) = cos x. Si ha ± sin x k dispari f (k) (x) = , ± cos x k pari ∀k ∈ N Inoltre |f (k) (x)| ≤ 1, ∀x ∈ R e ∀k ∈ N In particolare se x0 = 0 ∈ [a, b], ∀x ∈ [a, b] ∃ξ ∈ [x0 , x] tale che 2n 2n+1 x x2 x4 x cos x = 1− + +. . .+(−1)n +(−1)n+1 sin ξ 2 4! (2n)! (2n + 1)! e x2n+1 x2n+1 ≤ |R2n+1 (f, x)| ≤ sin ξ (2n + 1)! (2n + 1)! Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Problemi Per approssimare una funzione f in [a, b] con il suo polinomio di Taylor Tn di punto iniziale x0 ∈ [a, b] è necessario calcolare tutte le n + 1 derivate di f nel punto x0 . Ciò è semplice se f è una funzione elementare. Come si fa se, ad esempio, vogliamo approssimare in [−1, 1] la funzione (x2 + 2)3 cos x f (x) = ? 1 + ex Come si fa ad approssimare una funzione f solo continua come ad esempio √ f (x) = 1 − x? Inoltre, dal punto di vista implementativo, è necessario scrivere una function per ogni funzione f . Dunque il Polinomio di Taylor è uno strumento di approssimazione molto buono da un punto di vista teorico ma praticamente inutilizzabile da un punto di vista numerico. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Interpolazione Polinomiale Algebrica Sia f ∈ C 0 ([a, b]), [a, b] ⊂ R. Supponiamo di conoscere i valori f (x1 ), . . . , f (xn ) assunti da f rispettivamente nei punti x1 , . . . , xn tutti distinti. Lo scopo dell’interpolazione polinomiale è quello di cercare un polinomio di grado minimo (eventualmente unico) che coincida con la funzione f nei punti assegnati, cioè tale che P (xi ) = f (xi ), i = 1, . . . , n. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Poichè i punti sono n, è sufficiente considerare il generico polinomio di grado n − 1 che ha n coefficienti Pn−1 (x) = a0 + a1 x + · · · + an−1 xn−1 ed imporre le condizioni n−1 a + a x + · · · + a x = f (x1 ) 0 1 1 n−1 1 n−1 a + a x + · · · + a = f (x2 ) 0 1 2 n−1 x2 .................................................. a + a x + · · · + a n−1 = f (xn ). 0 1 n n−1 xn I parametri incogniti a0 , a1 , . . . , an−1 sono soluzione del seguente sistema quadrato di ordine n 1 x1 · · · xn−1 a0 f (x1 ) 1 a f (x ) 1 x2 · · · xn−1 1 2 2 = (1) .. .. .. .. .. . . ··· . . . 1 xn · · · xn−1 an−1 f (xn ) n Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica La matrice del sistema è quella di Vandermonde, il cui determinante 1 x1 · · · xn−1 1 n−1 n Y Y 1 x2 · · · x2 n−1 det (xi − xj ) .. .. = .. . . ··· . j=1 i=j+1 1 xn ··· xn−1 n è diverso da zero, avendo assunto i punti xi , i = 1, . . . , n, tutti distinti. Dunque vale il seguente teorema Teorema 3 Siano x1 , . . . , xn n punti a due a due distinti. Esiste uno ed un solo polinomio di grado n − 1 tale che Pn−1 (xi ) = f (xi ), i = 1, . . . , n. Tale polinomio viene detto polinomio interpolante e i punti xi , i = 1, . . . , n, vengono detti punti o nodi di interpolazione. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Per la costruzione del polinomio interpolante, si potrebbe procedere alla risoluzione del sistema (1). Ma questo approccio non è consigliato sia perché le matrici di Vandermonde sono malcondizionate sia perché necessita di un elevato numero di operazioni aritmetiche. Dunque, una volta stabilita l’esistenza e l’unicità del polinomio interpolante, per l’effettiva costruzione si utilizzano tecniche alternative ben condizionate e, possibilmente, meno costose in termini di operazioni aritmetiche. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Espressioni del polinomio interpolante La prima formula interpolatoria fu scoperta da Isaac Newton nel 1670. Definendo ricorsivamente le differenze divise di una funzione f nel seguente modo [x; f ] = f (x), f (x) − f (x1 ) [x, x1 ; f ] = , x − x1 [x1 , . . . , xi ; f ] − [x, x1 , . . . , xi−1 ; f ] , x − xi la formula interpolatoria di Newton può essere scritta nella seguente forma [x, x1 , . . . , xi ; f ] = Nn (f, x) = f (x1 ) + n−1 X i=1 [x1 , . . . , xi+1 ; f ] i Y (x − xk ) k=1 e viene detta Polinomio di Newton di grado n − 1. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Quando due argomenti coincidono si ha [x0 , x0 ; f ] = lim [x0 , x; f ] = lim x→x0 x→x0 f (x) − f (x0 ) = f 0 (x0 ). x − x0 Più in generale vale f (n) (x0 ) lim [x0 , . . . , xn ; f ] = , xi →x0 n! e, cosı̀, otteniamo lim Nn (f, x) = f (x1 ) + xi →x1 n−1 X i=1 (x − x1 ) if (i) (x1 ) , i! cioè il polinomio di Taylor di ordine n − 1 della funzione f relativo al punto x1 . Dunque il polinomio di Taylor è un caso particolare del polinomio di Newton. Esso non è altro che un polinomio che interpola la funzione nel solo punto x1 . Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Nel 1795 Joseph Louis Lagrange scoprı̀ la base di polinomi {ln,k }k=1,...,n dove, ∀k = 1, . . . , n, n Y (x − xi ) ln,k (x) = (xk − xi ) i=1 i6=k è un polinomio di grado n − 1 tale che 0 se k 6= i ln,k (xi ) = 1 se k = i, cioè ln,k (x) ha per zeri tutti i punti di interpolazione tranne il k−esimo. Utilizzando tale base, detta base dei polinomi fondamentali di Lagrange, diede la seguente espressione del polinomio interpolante Ln (f, x) = n X ln,k (x)f (xk ) k=1 che viene detta polinomio interpolante di Lagrange. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Il polinomio di Lagrange può intendersi come un operatore lineare che ad una funzione continua in [a, b] associa un polinomio di grado n − 1 : Ln : C 0 ([a, b]) → Pn−1 . Dunque Ln (f + g) = Ln (f ) + Ln (g) e Ln (λf ) = λLn (f ), ∀λ ∈ R. Si tratta, però, di un operatore non biunivoco, infatti date due funzioni assumenti gli stessi valori nei punti x1 , . . . , xn , ad esse viene associato lo stesso polinomio interpolante di Lagrange. Inoltre è un proiettore Ln (Pi , x) = Pi (x), i ≤ n − 1, cioè conserva i polinomi al più di grado n − 1. In seguito, chiameremo il polinomio interpolante sempre Polinomio di Lagrange e lo denoteremo con Ln (f ) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Algoritmi per il calcolo del Polinomio di Lagrange Per calcolare il polinomio di Lagrange mediante la formula Ln (f, x) = n X ln,k (x)f (xk ) (2) k=1 è necessario calcolare i polinomi fondamentali di Lagrange n Y (x − xi ) ln,k (x) = , (x − x ) k i i=1 k = 1, . . . , n. i6=k Lag=0; for k=1:n l=1; for i=1:n, if i ∼= k, l=l∗(x − xi )/(xk − xi ); n-1 operazioni end end Lag=Lag+l*f (xk ); 1 operazione end Il costo computazionale è dell’ordine di n2 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Per calcolare il polinomio di Lagrange con la formula Ln (f, x) = f (x1 ) + n−1 X i=1 [x1 , . . . , xi+1 ; f ] i Y (x − xk ) (3) k=1 dovuta a Newton il costo computazionale è anche dell’ordine di n2 . Dunque da un punto di vista computazionale le formule di Lagrange e Newton sono equivalenti ma, mentre l’algoritmo per il calcolo del polinomio di Lagrange con la formula (2) è in generale stabile, l’algoritmo per il calcolo del polinomio di Lagrange con la formula (3) non lo è. Più precisamente la stabilità dell’algoritmo per il calcolo della formula di Newton dipende dalla distribuzione dei punti di interpolazione e diminuisce all’aumentare della vicinanza dei punti di interpolazione. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Approssimazione uniforme di funzioni mediante il Polinomio di Lagrange Senza perdere la generalità, consideriamo l’interpolazione sull’intervallo [−1, 1]. Supponiamo di avere una funzione reale f continua nell’intervallo [−1, 1] e una successione di polinomi algebrici {qn }n tali che per ogni n ≥ 1, il polinomio qn ha grado esattamente n e ha n zeri distinti appartenenti all’intervallo [−1, 1] : −1 ≤ xn,1 < xn,2 < · · · < xn,n ≤ 1. Sia X la matrice tridiagonale infinita corrispondente a questi zeri x1,1 x 2,1 x2,2 . . .. X = .. , xn,1 xn,2 · · · xn,n .. .. . . cioè l’n-esima riga della matrice X consiste degli zeri di qn . Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Associamo alla matrice X la sequenza di polinomi di Lagrange {Ln (X, f )}n dove Ln (X, f ; xn,k ) = f (xn,k ), k = 1, . . . , n. La matrice X è chiamata matrice di interpolazione o sistema di nodi di interpolazione. La successione {Ln (X, f )}n definisce un processo interpolatorio. Noi siamo interessati ad un processo interpolatorio {Ln (X, f )}n per il quale Ln (X, f ) → f per n → +∞ e quindi vogliamo individuare la matrice X che verifica tale convergenza. La differenza Rn (X, f ; x) = f (x) − Ln (X, f ; x) viene detta resto o errore di Lagrange. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Osservazione Nel calcolo automatico del polinomio di Lagrange, a causa di errori che si possono commettere nella valutazione della funzione nei punti di interpolazione, calcoliamo Ln (X, f + ε) anzichè Ln (X, f ), cioè calcoliamo f (xn,k ) + ε(xn,k ) al posto di f (xn,k ). Dunque, per la linearità dell’operatore di Lagrange, si ha kf − Ln (X, f + ε)k∞ ≤ kRn (X, f )k∞ + kLn (X, ε)k∞ Ma kLn (X, ε)k∞ ¯ ¯ n ¯ ¯X ¯ ¯ ln,k (X, x)ε(xn,k )¯ ≤ εn Λn (X) = max ¯ ¯ |x|≤1 ¯ k=1 dove εn = max |ε(xn,k )| e k=1,...,n Λn (X) := max Λn (X, x) := max |x|≤1 |x|≤1 n X |ln,k (X, x)|. k=1 Dunque l’errore totale di interpolazione è dato dall’errore teorico kRn (X, f )k∞ più l’errore numerico εn Λn (X) La funzione Λn (X, x) è detta funzione di Lebesgue e le quantità Λn (X) vengono dette costanti di Lebesgue. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Le costanti di Lebesgue non dipendono dalla funzione f ma soltanto dalla matrice X di interpolazione e rappresentano il coefficiente di amplificazione dell’errore numerico di interpolazione. Questo significa che, per matrici di interpolazione per le quali le costanti di Lebesgue hanno un andamento fortemente crescente, l’errore totale del polinomio di Lagrange diverge anche se l’errore teorico si mantiene limitato. Quindi la scelta delle costanti di Lebesgue è importante ai fini della convergenza del processo interpolatorio {Ln (X, f )}n . Ci chiediamo se esistono matrici di interpolazione per le quali le costanti di Lebesgue sono limitate. La risposta è negativa, infatti vale il seguente Teorema 4 Per ogni matrice di interpolazione X si ha Λn (X) > 1 log n. 12 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica L’individuazione di una matrice di nodi per la quale le costanti di Lebesgue hanno ordine di divergenza più basso è stato per lungo tempo un problema aperto. Successivamente è stato dimostrato che l’ordine ottimale delle costanti di Lebesgue è proprio log n. Esempi di matrici di interpolazione le cui corrispondenti costanti di Lebesgue hanno ordine log n sono le matrici degli zeri dei polinomi di Jacobi {pα,β n }n , 1 −1 < α, β ≤ − . 2 Tra queste ha particolare rilevanza la matrice degli zeri dei polinomi di Chebyshev di prima specie (α = β = − 12 ). Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Diamo ora una stima dell’errore teorico di approssimazioni per funzioni analitiche. Vale il seguente Teorema 5 Sia f ∈ C n ([−1, 1]) e sia pn il polinomio monico che ha per zeri gli n punti di interpolazione. Allora per ogni x ∈ [−1, 1] esiste un punto −1 < ξ < 1, tale che f (n) (ξ) pn (x). Rn (X, f ; x) = n! Poichè |pn (x)| ≤ 2n , ∀ x ∈ [−1, 1], nell’ipotesi in cui la funzione f abbia tutte le derivate equilimitate, cioè M := sup max |f (n) (x)| < +∞, n |x|≤1 si ha M 2n kRn (X, f )k∞ ≤ n! e, quindi, l’errore teorico di interpolazione tende a zero per n → +∞ qualunque sia la matrice di interpolazione X. Bisogna però osservare che tale convergenza, indipendentemente dalla matrice dei nodi di interpolazione, è soltanto teorica. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Se prendiamo come matrice di nodi la matrice T degli zeri dei polinomi di Chebyshev di prima specie, poiché |pn (x)| = − 21 ,− 12 |pn (x)| ≤ 1 2n−1 , ∀x ∈ [−1, 1], otteniamo la seguente stima dell’errore teorico di Lagrange per funzioni f ∈ C n ([−1, 1]) con tutte le derivate equilimitate M kRn (T , f )k∞ ≤ n−1 . 2 n! Dunque, la scelta della matrice T dei nodi di Chebyshev di prima specie, oltre a garantire un errore numerico dell’ordine di log n, ci permette di ottenere una migliore stima dell’errore teorico. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Vediamo ora che, se la funzione è solo continua, la scelta di matrici di interpolazione le cui costanti di Lebesgue hanno ordine ottimale è essenziale anche per la convergenza dell’errore teorico di interpolazione. Sia P ∗ il polinomio di miglior approssimazione della funzione f in Pn−1 . Si ha kRn (X, f )k∞ ≤ kf − P ∗ k∞ + kLn (X, f − P ∗ )k∞ . Poichè kLn (X, f − P ∗ )k∞ ≤ max |x|≤1 n X |ln,k (X, x)||f (xk ) − P ∗ (xk )| k=1 ∗ ≤ kf − P k∞ Λn (X), otteniamo kRn (X, f )k∞ ≤ (1 + Λn (X))kf − P ∗ k∞ = (1 + Λn (X))En−1 (f ) dove En−1 (f ) denota l’errore di miglior approssimazione. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Se X è una matrice di interpolazione tale che Λn (X) ∼ log n, n ≥ 1, si ha convergenza se lim En−1 (f )∞ log n = 0. n E questo non è, in generale, vero se la funzione f è solo continua. Ma se f ∈ C 1 ([−1, 1]), poichè per il Teorema 2 En−1 (f ) ≤ C , n si ha kRn (X, f )k∞ ≤ C log n → 0 n per n → ∞ In generale, se f ∈ C k ([−1, 1]), poichè per il Teorema 2 En−1 (f ) ≤ C , k n si ha kRn (X, f )k∞ ≤ C log n → 0 k n per n → ∞ Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Costanti di Lebesgue e Matrici di interpolazione Per il Teorema 4, per ogni matrice di interpolazione X si ha Λn (X) > 1 log n. 12 Dunque non esiste alcuna matrice di interpolazione X per la quale le corrispondenti costanti di Lebesgue sono limitate. Successivamente è stato provato che Λ∗n = Λn (X ∗ ) = min Λn (X) ∼ X 2 log n, π cioè l’ordine ottimale delle costanti di Lebesgue è log n e una matrice di interpolazione X per la quale le corrispondenti costanti di Lebesgue hanno ordine ottimale viene detta matrice ottimale di interpolazione. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Denotiamo con E la matrice dei nodi equispaziati su [−1, 1] k−1 xn,k = −1 + 2 , k = 1, . . . , n n−1 È stato dimostrato che 2n Λn (E) ∼ e n log n dunque la matrice E non è una matrice di interpolazione ottimale. 15 10 5 0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Figure 1: Grafico della funzione di Lebesgue Λ5 (E, x) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Denotiamo con T la matrice degli zeri dei polinomi di Chebyshev di prima specie µ ¶ (2k − 1)π xn,k = − cos , k = 1, . . . , n 2n È stato dimostrato che 2 log n π dunque la matrice T è una matrice di interpolazione ottimale. Λn (T ) ∼ 2 1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Figure 2: Grafico della funzione di Lebesgue Λ5 (T , x) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Denotiamo con U la matrice degli zeri dei polinomi di Chebyshev di seconda specie con i punti addizionali ±1 µ ¶ kπ xn,k+1 = − cos , k = 0, . . . , n + 1 n+1 È stato dimostrato che Λn (U) ∼ log n dunque la matrice U è una matrice di interpolazione ottimale. 2 1.5 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Figure 3: Grafico della funzione di Lebesgue Λ5 (U, x) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica I polinomi di Chebyshev di prima specie e di seconda specie sono dei particolari polinomi di Jacobi {pα,β n }n , α, β > −1 Più precisamente, i polinomi di Chebyshev di prima specie sono dei polinomi di Jacobi con α = β = − 12 mentre i polinomi di Chebyshev di seconda specie sono dei polinomi di Jacobi con α = β = 21 . In generale, denotata con J la matrice degli zeri dei polinomi di Jacobi, è stato dimostrato che log n −1 < α, β ≤ − 12 Λn (J ) ∼ n 12 +max{α,β} α, β > − 1 2 Dunque J è una matrice di interpolazione ottimale soltanto se −1 < α, β ≤ − 12 . Osservazione La matrice di interpolazione formata dai soli zeri di Chebyshev di seconda specie (α = β = 12 ) non è una matrice di interpolazione ottimale ma, se ad ogni riga aggiungiamo i punti addizionali ±1, la matrice risultante U lo è. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Osservazione L’espressione analitica degli zeri dei polinomi di Jacobi non è in generale nota (tranne in alcuni casi particolari come ad esempio α = β = − 12 e α = β = 12 ). Essi vengono calcolati in maniera approssimata, con un errore dell’ordine dell’epsilon di macchina, attraverso un opportuno algoritmo Vediamo, ora, attraverso alcuni esempi, come le costanti di Lebesgue influenzano l’errore di approssimazione del polinomio di Lagrange Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esempio 1 Consideriamo la funzione 3 f (x) = |x| 2 ∈ C 1 ([−1, 1]) L’errore teorico di approssimazione soddisfa la seguente stima C kRn (X, f )k∞ ≤ log n n dunque tende a 0 per n → +∞ per ogni x ∈ [−1, 1]. Vediamo cosa succede, da un punto di vista numerico, approssimando la funzione f con Ln (E, f ) e Ln (T , f ) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 3 Figure 4: Grafico della funzione |x| 2 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica 1.4 1.2 1 0.8 0.6 0.4 0.2 0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Figure 5: Grafico di L14 (E, f ; x) Se n è pari il punto 0 non è incluso tra i punti di interpolazione. Dal grafico si evince che l’errore di approssimazione è abbastanza elevato intorno ai punti ±1 e 0 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Figure 6: Grafico di L15 (E, f ; x) Se n è dispari il punto 0 è incluso tra i punti di interpolazione. Dal grafico si evince che l’errore di approssimazione è molto elevato intorno ai punti ±1 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Figure 7: Grafico di L14 (T , f : x) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica 1.4 1.2 1 0.8 0.6 0.4 0.2 0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Figure 8: Grafico di L15 (T , f ; x) Utilizzando la matrice di interpolazione ottimale T , sia per n pari che per n dispari, l’errore di approssimazione è dello stesso ordine in tutti i punti dell’intervallo [−1, 1]. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esempio 2 Consideriamo la funzione f (x) = ex ∈ C ∞ ([−1, 1]) Utilizzando il Teorema 5, l’errore teorico di approssimazione Rn (X, f ) tende a 0 molto velocemente per n → +∞ per ogni x ∈ [−1, 1]. Vediamo cosa succede, da un punto di vista numerico, approssimando la funzione f con Ln (E, f ) e Ln (T , f ) n Λn (E) kRn (E, f )k∞ 5 1.46e+0 1.12e-3 10 1.64e+1 3.85e-9 15 2.97e+2 6.39e-14 20 6.44e+3 1.99e-12 30 3.87e+6 1.45e-9 40 2.74e+9 1.11e-6 50 2.12e+12 5.04e-4 80 1.27e+21 3.01e+5 100 1.01e+27 3.50e+11 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica n Λn (T ) kRn (T , f )k∞ 5 1.02 6.40e-4 10 1.47 6.03e-10 15 1.72 2.66e-15 20 1.91 3.11e-15 30 2.17 3.55e-15 40 2.35 4.44e-15 50 2.49 4.00e-15 80 2.79 8.88e-15 100 2.93 7.55e-15 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Interpolazione con funzioni polinomiali a tratti Abbiamo visto che, data una funzione f ∈ C k ([a, b]), k ≥ 1, di cui si conosce l’espressione analitica, e un matrice di nodi X, le cui costanti di Lebesgue hanno ordine ottimale log n, è possibile costruire un processo interpolatorio {Ln (X, f )}n tale che Ln (X, f ) → f per n → +∞, ∀x ∈ [a, b]. La scelta della matrice di nodi X, le cui costanti di Lebesgue hanno ordine ottimale log n, è fondamentale affinchè tale processo interpolatorio sia stabile e convergente. Se, però, non conosciamo l’espressione analitica di f ma conosciamo soltanto i valori che essa assume in alcuni punti x0 , x1 . . . , xn dell’intervallo [a, b], dunque non possiamo scegliere opportunamente i punti di interpolazione, non è consigliabile utilizzare il polinomio interpolante di Lagrange per approssimare la funzione f . Questo è il caso in cui, ad esempio, la funzione f da approssimare descrive l’andamento di alcuni dati sperimentali. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica In questi casi si preferisce utilizzare l’interpolazione con funzioni polinomiali a tratti. Definizione 1 Suddividiamo l’intervallo [a, b] in n sottointervalli con n + 1 nodi xi , i = 0, . . . , n, tali che a = x0 < x1 < . . . < xn = b. Una funzione Sn si dice polinomiale a tratti su [a, b] se sull’i-esimo sottointervallo [xi , xi+1 ] coincide con un polinomio di grado ki . Di solito ki = k ∀i = 0, . . . , n − 1, cioè i polinomi usati nei diversi sottointervalli hanno tutti lo stesso grado k. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica L’esempio più semplice di funzione polinomiale a tratti è la polinomiale lineare. Nell’i−esimo sottointervallo la funzione Sn coincide con il polinomio interpolante della funzione f nei nodi xi e xi+1 , cioè per xi ≤ x ≤ xi+1 si ha Sn (f, x) = L2 (f, x) = (xi+1 − x)f (xi ) + (x − xi )f (xi+1 ) . xi+1 − xi Se f ∈ C 2 ([a, b]) e max |f 00 (x)| < M usando la stima |x|≤1 kR2 (f )k∞ M 2 M kp2 k∞ ≤ h , ≤ 2! 2 dove h := maxi hi = maxi |xi+1 − xi |, si ha kf − Sn (f )k∞ = O(h2 ). Per la sua semplicità questo metodo è usato spesso nella pratica, ma esso non è adatto per una buona rappresentazione grafica della funzione. Infatti, poichè non stabilisce nessuna condizione sulle derivate dei polinomi nei punti xi , i = 1, . . . , n − 1, il raccordo fra due diversi polinomi presenta in generale un punto spigoloso. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esistono tanti altri esempi di funzioni polinomiali a tratti, ma fra di esse, quelle più usate sono le funzioni spline. Funzioni spline Le funzioni spline sono polinomiali che si ottengono imponendo condizioni di continuità delle derivate, senza utilizzare i valori, in generale non disponibili, delle derivate della funzione nei nodi dell’intervallo. Esse sono molto utilizzate nella pratica perché consentono di ottenere ottimi risultati dal punto di vista grafico. Definizione 2 Fissato un intero d ≥ 1, Sd (f, x) è una funzione spline di ordine d associata alla suddivisione a = x0 < x1 < . . . < xn = b dell’intervallo [a, b] se: 1. Sd (f, x) è un polinomio di grado d in ogni intervallo [xi−1 , xi ], i = 1, . . . , n; (k) 2. Sd (f ) è una funzione continua su [a, b] per ogni k = 0, . . . , d − 1. Le funzioni spline più usate sono quelle cubiche, cioè d = 3. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Spline cubiche Assegnati n + 1 punti nell’intervallo [a, b] tali che a = x0 < x1 < . . . < xn = b, la spline cubica S3 (f, x) interpola la funzione y = f (x) in tali punti, cioè S3 (f, xi ) = f (xi ), i = 0, . . . , n. (4) Inoltre, dalla Definizione 2 risulta S3 (f, x) = ai + bi x + ci x2 + di x3 , x ∈ [xi−1 , xi ], (5) i = 1, . . . , n, (k) (k) − S3 (f, x+ i ) = S3 (f, xi ), i = 1, . . . , n − 1, (6) k = 0, 1, 2. Le condizioni (4) e (6) conducono ad un sistema lineare di 4n − 2 equazioni (n + 1 dalla (4) e 3(n − 1) dalla (6)) nelle 4n incognite ai , bi , ci , di definite in (5). Per ottenere un sistema quadrato di ordine 4n, dobbiamo imporre due ulteriori condizioni. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Tuttavia, invece di risolvere un sistema di ordine 4n, imponendo due condizioni aggiuntive opportune, possiamo costruire univocamente S3 (f, x) risolvendo un sistema lineare di ordine al più n + 1, con struttura particolarmente semplice. A tal fine introduciamo le nuove incognite Mi = S300 (f, xi ), i = 0, 1, . . . , n. Poichè S3 (f, x) è in ogni intervallo [xi−1 , xi ] un polinomio di grado 3, la derivata seconda S300 (f, x) è in tali intervalli una funzione lineare della seguente forma S300 (f, x) = (xi − x)Mi−1 + (x − xi−1 )Mi , hi i = 1, . . . , n, (7) dove hi = xi − xi−1 . Osserviamo che la S300 (f, x) cosı̀ definita è continua su tutto [a, b]. Per individuare S3 (f, x) dobbiamo per prima cosa integrare due volte S300 (f, x). Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Integrando la (7) otteniamo −(xi − x)2 Mi−1 + (x − xi−1 )2 Mi = +Ci , i = 1, . . . , n, 2hi (8) e, integrando la (8), abbiamo S30 (f, x) (xi − x)3 Mi−1 + (x − xi−1 )3 Mi S3 (f, x) = +Ci (x−xi−1 )+Di , 6hi (9) i = 1, . . . , n, dove Ci , Di , i = 1, . . . , n, sono costanti arbitrarie. Tuttavia dovendo S3 (f, x) soddisfare le condizioni (4), cioé S3 (f, xi−1 ) = f (xi−1 ) e S3 (f, xi ) = f (xi ), (10) possiamo assegnare alle Ci , Di , i = 1, . . . , n, i seguenti valori h2i Di = f (xi−1 ) − Mi−1 6 e f (xi ) − f (xi−1 ) hi (Mi − Mi−1 ) Ci = − hi 6 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Conseguentemente, le (8) e (9) diventano S30 (f, x) −(xi − x)2 Mi−1 + (x − xi−1 )2 Mi = 2hi f (xi ) − f (xi−1 ) hi (Mi − Mi−1 ) + − hi 6 e (xi − x)3 Mi−1 + (x − xi−1 )3 Mi S3 (f, x) = (11) 6hi ¸ · f (xi ) − f (xi−1 ) hi (Mi − Mi−1 ) − (x − xi−1 ) + hi 6 h2i + f (xi−1 ) − Mi−1 , 6 per x ∈ [xi−1 , xi ] e i = 1, . . . , n. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Osservazione Se S3 (f ) soddisfa le condizioni (10) è anche continua nei punti xi−1 e xi . Finora abbiamo imposto la continuità solo a S300 (f, x) e S3 (f, x). Affinché S3 (f, x) sia una spline cubica è sufficiente determinare le quantità {Mi }i in modo che le condizioni lim S30 (f, x) = lim S30 (f, x), x→x− i x→x+ i i = 1, . . . , n − 1, (12) siano soddisfatte, cosicché anche S30 (f, x) risulti continua in [a, b]. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Dalla S30 (f, x) = + −(xi − x)2 Mi−1 + (x − xi−1 )2 Mi 2hi f (xi ) − f (xi−1 ) hi (Mi − Mi−1 ) − (13) hi 6 deduciamo che nell’intervallo [xi , xi+1 ] la S30 (f, x) ha la seguente espressione S30 (f, x) = + −(xi+1 − x)2 Mi + (x − xi )2 Mi+1 (14) 2hi+1 f (xi+1 ) − f (xi ) hi+1 (Mi+1 − Mi ) − . hi+1 6 Sostituendo le (13) e (14) in (12) otteniamo il seguente sistema lineare hi Mi−1 + 2(hi + hi+1 )Mi + hi+1 Mi+1 = 6 6 = (f (xi+1 ) − f (xi )) − (f (xi ) − f (xi−1 )), hi+1 hi (15) i = 1, . . . , n − 1, di (n − 1) equazioni nelle (n + 1) incognite M0 , M1 , . . . , Mn . Dobbiamo infine imporre altre due condizioni. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Vari criteri possono essere seguiti per individuare queste due condizioni. Le tre possibili scelte più note sono le seguenti: 1. imponiamo le condizioni S30 (f, x0 ) = f 0 (x0 ) e S30 (f, xn ) = f 0 (xn ) (16) che si trasformano nelle seguenti equazioni aggiuntive · ¸ f (x1 ) − f (x0 ) 2h1 M0 + h1 M1 = 6 − f 0 (x0 ) h1 (17) ¸ · f (xn ) − f (xn−1 ) . hn Mn−1 + 2hn Mn = 6 f 0 (xn ) − hn Le funzioni spline che si ottengono con le condizioni aggiuntive (16) si dicono spline complete. L’unione delle (15) e (17) produce il seguente sistema tridiagonale simmetrico a diagonale dominante Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica 2h1 h 1 h1 2(h1 + h2 ) .. . h2 .. hn−1 . 2(hn−1 + hn ) hn hn 2hn M0 M1 .. . M n−1 Mn f (x1 ) − f (x0 ) − f 0 (x0 ) h1 f (x2 ) − f (x1 ) f (x1 ) − f (x0 ) − h2 h1 .. . = (18) = 6 f (xn ) − f (xn−1 ) f (xn−1 ) − f (xn−2 ) − hn hn−1 f (xn ) − f (xn−1 ) 0 f (xn ) − hn 2. Imponiamo le condizioni M0 = f 00 (x0 ) e Mn = f 00 (xn ). (19) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Combinando le (15) con le (19), anche in questo caso perveniamo ad un sistema tridiagonale simmetrico a diagonale dominante, ma il suo ordine è n − 1 2(h1 + h2 ) h2 h2 2(h2 + h3 ) .. . hn−2 M1 h3 M2 . . . .. . Mn−2 2(hn−2 + hn−1 ) hn−1 M n−1 hn−1 2(hn−1 + hn ) (20) f (x2 ) − f (x1 ) f (x1 ) − f (x0 ) h1 00 − − f (x0 ) h h 6 2 1 f (x2 ) − f (x1 ) f (x3 ) − f (x2 ) − h3 h2 .. = 6 . f (xn−1 ) − f (xn−2 ) f (xn−2 ) − f (xn−3 ) − hn−1 hn−2 f (xn ) − f (xn−1 ) f (xn−1 ) − f (xn−2 ) hn 00 − − f (xn ) hn hn−1 6 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Se poniamo M0 = Mn = 0, indipendentemente dai valori f 00 (x0 ) e f 00 (xn ), le spline cubiche corrispondenti vengono denominate spline naturali. 3. Se f è periodica di periodo b − a, cioè f (a) = f (b) imponiamo le seguenti condizioni di periodicità alla spline: S30 (f, x0 ) = S30 (f, xn ) (21) S300 (f, x0 ) = S300 (f, xn ). (22) La funzione spline risultante si dice spline periodica. La condizione (21) produce l’equazione 2h1 M0 + h1 M1 + 2hn Mn + hn Mn−1 = · ¸ f (x1 ) − f (x0 ) f (xn ) − f (xn−1 ) =6 − . h1 hn (23) Poichè f (x0 ) = f (xn ) e la condizione (22) produce l’equazione M0 = Mn , la (23) diventa h1 M1 + hn Mn−1 + 2Mn (h1 + hn ) = · ¸ f (x1 ) − f (xn ) f (xn ) − f (xn−1 ) =6 − . h1 hn (24) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica L’unione delle (15) con la (24) produce il seguente sistema 2(h1 + h2 ) h2 h1 h2 h1 M1 2(h2 + h3 ) h3 M2 .. . . . . .. . Mn−1 hn−1 2(hn−1 + hn ) hn Mn hn 2(h1 + hn ) (25) f (x2 ) − f (x1 ) f (x1 ) − f (xn ) − h2 h1 f (x3 ) − f (x2 ) f (x2 ) − f (x1 ) − h3 h2 .. = 6 . f (xn−1 ) − f (xn−2 ) f (xn ) − f (xn−1 ) − hn hn−1 f (x1 ) − f (xn ) f (xn ) − f (xn−1 ) − h1 hn Il sistema (25) non è più esattamente tridiagonale, ma è ancora simmetrico e a diagonale dominante. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica In tutti e tre i casi illustrati i sistemi sono non singolari, dunque la spline cubica cercata esiste ed è unica. Poichè tutte e tre le matrici sono a diagonale dominante, tali sistemi possono essere risolti con il metodo di Gauss senza pivoting. Una volta determinato il vettore M0 , M1 , . . . , Mn , per calcolare la spline cubica cercata in un punto x ∈ [a, b], si individua il sottointervallo [xi−1 , xi ] di [a, b] a cui x appartiene e si utilizza la formula (xi − x)3 Mi−1 + (x − xi−1 )3 Mi S3 (f, x) = 6hi · ¸ f (xi ) − f (xi−1 ) hi (Mi − Mi−1 ) + − (x − xi−1 ) hi 6 h2i + f (xi−1 ) − Mi−1 . 6 Le spline cubiche sono molto usate nella grafica perché, fra le funzioni con derivata seconda continua che interpolano la funzione f nei nodi x0 , . . . , xn , sono quelle che hanno minima curvatura, cioè oscillano meno. Il minimo assoluto è raggiunto dalle spline naturali. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Per quanto riguarda la convergenza vale il seguente Teorema Sia S3 (f, x) la spline cubica con condizioni agli estremi di tipo (16) o (19) o (21) e (22) se f è periodica. Definiamo con h = max1≤i≤n hi . Se f ∈ C 2 ([a, b]) allora (p) kf (p) − S3 (f )k∞ lim = 0, 2−p h→0 h p = 0, 1, 2. Se, invece, f ∈ C k ([a, b]), k = 3, 4, ed, inoltre, esiste una costante C tale che hhi ≤ C < ∞, allora (p) (p) kf − S 3 (f )k∞ = 0, k=3 lim 3−p h h→0 p = 0, 1, 2, 3 . (p) kf (p) − S3 (f )k∞ lim < +∞, k = 4 h→0 h4−p È stato tuttavia dimostrato che h4 è il massimo ordine di convergenza che possiamo avere con le spline cubiche considerate, ovvero kf − S3 (f )k∞ < +∞ 4 h→0 h lim anche quando f ∈ C k ([a, b]) con k > 4. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Il precedente teorema non solo ci assicura la convergenza uniforme in [a, b] di S3 (f, x) a f (x), ma ci suggerisce che le spline cubiche sono uno strumento efficace per l’approssimazione uniforme in tutto [a, b] anche delle derivate di f. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esempio 1 Sia ¯ ¯9 ¯x − 1 ¯ 2 + sin2 (x) 2 f (x) = , 3 2 (3 + x ) x ∈ [−1, 1] Vogliamo approssimare la funzione f con 8 cifre decimali esatte utilizzando 1. il polinomio di Lagrange Ln (T , f ) che la interpola sugli zeri del polinomio di Chebyshev di prima specie − 21 ,− 12 pn ; 2. la spline cubica S3 (f ) che la interpola sui punti equispaziati nell’intervallo [−1, 1] di passo h = n2 . Poichè f ∈ C 4 ([−1, 1]), da un punto di vista teorico si ha kRn (T , f )k∞ C 1 ≤ 4 log n < 9 n 10 circa per n > 150 kf − S3 (f )k∞ µ ¶4 2 1 ≤C < 9 n 10 circa per n > 210 e Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Dato il vettore di 41 punti equispaziati x = [−1 : 0.0488 : 1] Valutiamo sia Ln (T , f ) che S3 (f ) in tali punti e calcoliamo E1 = max |f (xi ) − Ln (T , f ; xi )| i=1,...,41 E2 = max |f (xi ) − S3 (f, xi )| i=1,...,41 n E1 E2 10 3.01431e-3 3.93337e-2 20 7.61857e-7 5.92261e-3 30 1.07926e-7 9.31007e-4 40 1.74549e-8 2.84846e-5 50 2.73043e-9 9.14160e-5 80 7.45529e-10 1.74995e-6 100 1.49005e-10 4.67514e-7 200 1.13485e-11 3.47576e-8 400 1.28105e-13 3.83087e-9 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica I risultati numerici sono migliori rispetto alle aspettative teoriche, anche perchè, non essendo nota la costante C, il valore di n calcolato teoricamente non è preciso (abbiamo assunto C = 1). I risultati che si ottengono utilizzando il polinomio di Lagrange sono migliori. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esempio 2 Sia (x2 + 2)3 cos x f (x) = , x 1+e x ∈ [−1, 1] Vogliamo approssimiamo la funzione f con 10 cifre decimali esatte utilizzando 1. il polinomio di Lagrange Ln (T , f ) che la interpola sugli zeri del polinomio di Chebyshev di prima specie − 21 ,− 12 pn ; 2. la spline cubica S3 (f ) che la interpola sui punti equispaziati nell’intervallo [−1, 1] di passo h = n2 . Poichè f ∈ C ∞ ([−1, 1]), da un punto di vista teorico si ha 1 1011 circa per n > 10 µ ¶4 2 1 ≤C < 11 n 10 circa per n > 1000 kRn (T , f )k∞ ≤ C 2n−1 n! < e kf − S3 (f )k∞ Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Dato il vettore di 41 punti equispaziati x = [−1 : 0.0488 : 1] Valutiamo sia Ln (T , f ) che S3 (f ) in tali punti e calcoliamo E1 = max |f (xi ) − Ln (T , f ; xi )| i=1,...,41 E2 = max |f (xi ) − S3 (f, xi )| i=1,...,41 n E1 E2 8 8.12140e-4 3.85787e-2 16 2.42840e-10 3.68683e-3 32 7.10542e-15 1.16998e-4 64 1.24344e-14 6.37998e-6 128 2.13162e-14 6.75673e-8 256 2.04281e-14 5.71113e-9 512 4.26325e-14 4.10752e-10 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Come da previsioni teoriche i risultati numerici ottenuti con il polinomio di Lagrange sono molto migliori rispetto a quelli ottenuti con la spline cubica. Anche se la funzione è analitica l’errore della spline cubica è dello stesso ordine del caso in cui la funzione ha solo 4 derivate continue. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Esempio 3 In un giorno del mese di luglio, ad intervalli di 1 ora, per tutte le 24 ore, sono state registrate le seguenti temperature ora temperatura 1 15 2 14 3 15 4 14 5 15 6 16 7 18 8 20 9 21 10 24 11 27 12 30 13 30 14 32 15 32 16 31 17 29 18 28 19 27 20 25 21 23 22 20 23 18 24 17 Utilizzare la spline cubica S3 (f ) per stimare le temperature delle ore 12, 30 e delle ore 19, 30. Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Confrontare i risultati ottenuti con i valori reali riportati nella seguente tabella ora temperatura 12,30 30 19,30 26 Denotato con x il vettore avente per componenti le ore e con y il vettore avente per componenti le corrispondenti temperature, con il comando Matlab yy = spline(x, y, [12.5 19.5]) si ottiene ora temperatura errore 12,30 30.0440 0.0440 19,30 26.0466 0.0466 Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica Valutare, inoltre, la spline S3 (f ) nei punti xx = [1.5 : 24.5] e disegnarne il grafico. 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Figure 9: Grafico della spline S3 (f ) Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis