La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione al problema Sia assegnata una funzione f(x) di cui sono noti i valori f(x 1 ), f(x 2 ),…,f(x N ) nei punti x 1, x 2, …, x N per semplicità

Presentazioni simili


Presentazione sul tema: "Introduzione al problema Sia assegnata una funzione f(x) di cui sono noti i valori f(x 1 ), f(x 2 ),…,f(x N ) nei punti x 1, x 2, …, x N per semplicità"— Transcript della presentazione:

1

2 Introduzione al problema Sia assegnata una funzione f(x) di cui sono noti i valori f(x 1 ), f(x 2 ),…,f(x N ) nei punti x 1, x 2, …, x N per semplicità supponiamo x 1

3 Un esempio (1) Come esempio consideriamo la seguente funzione: Tale funzione è definita ovunque, eccetto che in x=π, dove si ha: Supponiamo di voler interpolare la funzione f(x) in x=π partendo dai valori di f in alcuni punti abbastanza vicini a x=π

4 Un esempio (2)

5 Un esempio (3) Anche utilizzando un programma di grafica non è facile mettere in evidenza la divergenza di f(x) in x=π Qualsiasi interpolazione basata sui valori di f(x) in punti vicini a x=π fornirà un risultato errato! Nelleffettuare uninterpolazione (o unestrapolazione) solitamente si assume che la funzione in esame sia abbastanza regolare (smooth) la condizione di regolarità (smoothness) in sostanza equivale a richiedere che la f(x) sia continua e che esistano e siano continue le sue derivate f(x), f(x),..., f (N) (x) fino allordine N tanto più grande è N, tanto più la funzione f(x) è regolare (smooth)

6 Strategie di interpolazione Interpolazione mediante fit: si sceglie la funzione interpolatrice g(x), che di solito dipende da un insieme di parametri si effettua il fit degli N punti conosciuti (x i, y i =f(x i )) con la funzione g(x) si calcola il valore della funzione interpolatrice g(x) nel punto x in cui si vuole effettuare linterpolazione e si assume f(x)=g(x) Questo metodo solitamente è poco efficiente dal punto di vista del calcolo ed è soggetto ad errori di arrotondamento Interpolazione per approssimazioni successive: si parte dal valore di f(x i ) nel punto x i più vicino a x si aggiungono a f(x i ) una serie di termini correttivi, sempre più piccoli man mano che si va avanti, che tengono conto dellinformazione contenuta negli altri valori f(x j ) forniti dal problema lultimo termine correttivo fornisce una stima dellerrore su f(x) Questa procedura richiede tipicamente un numero di operazioni ~O(N 2 ) In generale la f(x) (e le derivate di ordine superiore) non è continua

7 Ordine di interpolazione Ordine dellinterpolazione = N-1 (N = numero di punti usati nellinterpolazione) Non sempre aumentare lordine dellinterpolazione ne migliora la precisione In particolare, se i punti aggiunti sono lontani dal punto di interesse x, la funzione interpolante rischia di essere caratterizzata da forti oscillazioni, che non riproducono il comportamento della funzione vera f(x) tipicamente 3-4 punti sono sufficienti per una buona interpolazione

8

9 Formula di Lagrange Dati N punti nel piano cartesiano, esiste un unico polinomio di grado N-1 che passa per tutti i punti assegnati Siano (x 1,y 1 =f(x 1 )), (x 2,y 2 =f(x 2 )),..., (x N,y N =f(x N )) gli N punti assegnati. Il polinomio P(x) di grado N-1 che passa per gli N punti si ottiene con la formula di Lagrange: Il termine i-esimo della somma presente nella formula di Lagrange è così composto: a numeratore la y i a numeratore il prodotto di N-1 termini del tipo (x-x j ) con ji a denominatore il prodotto di N-1 termini del tipo (x i -x j ) con ji Si noti che se x=x i il termine i-esimo della somma vale y i, mentre gli altri sono nulli

10 Algoritmo di Neville (1) Indichiamo con P 1 (x) lunico polinomio di grado zero che passa per il punto (x 1,y 1 ), con P 2 (x) lunico polinomio di grado zero che passa per il punto (x 2,y 2 ) e così via. Nel punto x avremo così N valori: P 1 (x)=y 1, P 2 (x)=y 2,..., P N (x)=y N Indichiamo quindi con P 12 (x) lunico polinomio di primo grado che passa per i punti (x 1,y 1 ) e (x 2,y 2 ), con P 23 (x) lunico polinomio di primo grado che passa per i punti (x 2,y 2 ) e (x 3,y 3 ), e così via. Nel punto x avremo N-1 valori: P 12 (x), P 23 (x),..., P (N-1)N (x) In maniera analoga possiamo continuare a definire i polinomi di grado più alto, fino allunico polinomio di grado N-1 che passa per tutti i punti (x 1,y 1 ),(x 2,y 2 ),..., (x N,y N ), il cui valore in x sarà: P 12...N (x)

11 Algoritmo di Neville (2) Con tutti i valori così calcolati si può costruire una tabella. Per esempio, se N=4 la tabella avrà la forma seguente: Lalgoritmo di Neville permette di riempire la tabella sfruttando le relazioni ricorsive tra i polinomi: y 1 =P 1 P 12 P 123 P 1234 y 2 =P 2 P 23 y 3 =P 3 P 234 P 34 y 4 =P 4

12 Dimostrazione della formula di Neville (1) Partiamo dalla formula di Lagrange scritta in forma compatta:

13 Dimostrazione della formula di Neville (2) Sostituiamo quindi nel secondo membro della formula di Neville le espressioni di P i(i+1)...(i+m-1) e P (i+1)(i+2)...(i+m) : Dobbiamo a questo punto verificare che vale effettivamente luguaglianza tra i due membri A tal fine isoliamo dalla prima sommatoria il termine con lindice j=i e dalla seconda sommatoria il termine con lindice j=i+m

14 Dimostrazione della formula di Neville (3) Si ha quindi: 12 3

15 Dimostrazione della formula di Neville (4) I termini (1) e (2) nellequazione precedente possono essere riscritti come segue: In sostanza i termini (1) e (2) sono il primo e lultimo termine nella sommatoria che compare nella formula di Lagrange per P i(i+1)...(i+m)

16 Dimostrazione della formula di Neville (5) Esaminiamo ora il termine (3): Mettendo in evidenza i termini comuni si ha:

17 Dimostrazione della formula di Neville (6) Il termine (3) pertanto diventa: Raggruppando i termini (1), (2) e (3) abbiamo quindi trovato tutti i termini nella sommatoria che compare nello sviluppo di Lagrange di P i(i+1)...(i+m)

18 Algoritmo di Neville (3) Nel costruire la tabella dei valori con lalgoritmo di Neville possiamo definire le differenze tra genitori e figli nel modo seguente: I termini C m,i e D m,i rappresentano le correzioni che occorre apportare per aumentare di una unità lordine di interpolazione Valgono le seguenti relazioni ricorsive:

19 Dimostrazione delle formule ricorsive (1) La dimostrazione sfrutta la formula di Neville:

20 Dimostrazione delle formule ricorsive (2) La dimostrazione sfrutta la formula di Neville:

21 Algoritmo di Neville (4) Partendo da uno dei valori P i, e aggiungendo le correzioni date dai coefficienti C m,i e D m,i, seguendo la mappa si può arrivare allordine di interpolazione desiderato y 1 =P 1 y 2 =P 2 y 3 =P 3 y 4 =P 4 P 12 P 23 P 34 P 123 P 234 P 1234 C 1,1 D 1,1 C 1,2 D 1,2 C 1,3 D 1,3 C 2,1 D 2,1 C 2,2 D 2,2 C 3,1 D 3,1 Ordine di interpolazione 0123

22 Un esempio di applicazione dellalgoritmo di Neville xy

23

24 Interpolazione con funzioni razionali Alcune funzioni possono non essere ben approssimate da polinomi In questi casi si può utilizzare una funzione razionale, cioè un rapporto tra polinomi Le funzioni razionali costituiscono una buona approssimazione quando la funzione f(x) che si vuole interpolare presenta dei poli (limite infinito) Indichiamo con R i(i+1)...(i+m) una generica funzione razionale che passa per i gli m+1 punti (x i,y i ),(x i+1,y i+1 ),...,(x i+m,y i+m ): Il grado del polinomio a numeratore e di quello a denominatore, μ e ν, sono arbitrari, ma si deve tener conto di un vincolo: nellespressione di R i(i+1)...(i+m) ci sono μ+ν+1 incognite (q 0 è arbitraria) R i(i+1)...(i+m) deve passare per m+1 punti assegnati ne consegue che deve essere μ+ν+1 = m+1

25 Algoritmo di Burlisch e Stoer (1) Si tratta di un algoritmo simile a quello di Neville per costruire delle funzioni razionali che interpolino i dati Le funzioni razionali prodotte dallalgoritmo di Burlisch e Stoer hanno: numeratore e denominatore di grado uguale se m+1 è dispari grado del denominatore maggiore di una unità rispetto al grado del numeratore se m+1 è pari Come nellalgoritmo di Neville, le funzioni razionali R i(i+1)...(i+m) sono generate a partire da una relazione ricorsiva in questo caso la relazione ricorsiva non deriva da alcuna formula (mentre nellalgoritmo di Neville deriva dalla formula di Lagrange) Anche in questo caso si costruisce una tabella che permette di passare da un ordine di interpolazione al successivo

26 Algoritmo di Burlisch e Stoer (2) Come nellalgoritmo di Neville si parte dalle funzioni costanti R 1 (x)=y 1, R 2 (x)=y 2,..., R N (x)=y N (R i =y i ) si pone inoltre R=[R i(i+1)...(i+m) con m=-1]=0 la relazione ricorsiva che definisce le R i(i+1)...(i+m) è: Analogamente allalgoritmo di Neville, si pone: e si verifica che:

27 Dimostrazione della relazione tra i coefficienti C e D La dimostrazione segue dalle definizioni:

28 Algoritmo di Burlisch e Stoer (3) La relazione precedente permette di dimostrare le seguenti formule ricorsive:

29 Dimostrazione delle formule ricorsive (1)

30 Dimostrazione delle formule ricorsive (2)

31 Algoritmo di Burlisch e Stoer (4) Come nellalgoritmo di Neville, si parte da uno dei valori R i e, aggiungendo le correzioni date dai coefficienti C m,i e D m,i, seguendo la mappa si può arrivare allordine di interpolazione desiderato y 1 =R 1 y 2 =R 2 y 3 =R 3 y 4 =R 4 R 12 R 23 R 34 R 123 R 234 R 1234 C 1,1 D 1,1 C 1,2 D 1,2 C 1,3 D 1,3 C 2,1 D 2,1 C 2,2 D 2,2 C 3,1 D 3,1 Ordine di interpolazione 0123

32 Un esempio di applicazione dellalgoritmo di Burlisch e Stoer xy

33

34 Il punto di partenza: la formula di Lagrange Sia data una funzione y(x) tabulata in N punti Indichiamo con (x i, y i ) i punti tabulati Applicando la formula di Lagrange nellintervallo [x j,x j+1 ], la funzione y(x) può essere approssimata linearmente nel modo seguente: dove:

35 La funzione spline cubica Indichiamo ora con y i i valori delle derivate seconde della y(x) nei punti x i e cerchiamo di migliorare lapprossimazione lineare tra x j e x j+1 ponendo: con: La funzione y(x) così costruita è un polinomio di terzo grado in x la x compare in A (e in B) al primo grado, e i termini di grado massimo in A e B sono di terzo grado

36 Derivata prima della funzione spline Calcoliamo preliminarmente le derivate di A,B,C,D: Ne segue:

37 Derivata seconda della funzione spline Derivando ulteriormente si ha: se x=x j si ha A=1 e B=0 e quindi y(x j )=y j se x=x j+1 si ha A=0 e B=1 e quindi y(x j+1 )=y j+1 Questo risultato dimostra che i coefficienti A,B,C,D sono definiti in maniera corretta I valori delle y i in genere non sono noti, e potrebbero, in principio, essere assegnati arbitrariamente In generale, però, si preferisce assegnare i valori delle y i in modo da garantire la continuità della derivata prima della funzione spline

38 Continuità della derivata prima (1) Derivata prima della spline tra x j e x j+1 : in x=x j è A=1 e B=0 per cui: Derivata prima della spline tra x j-1 e x j : i coefficienti A e B sono diversi dai precedenti! in x=x j stavolta è A=0 e B=1 per cui:

39 Continuità della derivata prima (2) Imponendo che le due espressioni della derivata prima in x j siano uguali si ha: Si ottengono così N-2 equazioni nelle N incognite y i per cui occorre fissare due di queste incognite per risolvere il sistema si può porre y 1 =0 e y N =0 in questo caso si parla di spline cubica naturale alternativamente, si possono determinare y 1 e y N se sono noti i valori della derivata prima negli estremi dellintervallo

40 Alcuni esempi di spline cubiche xy

41

42 Interpolazione multidimensionale Il problema generale è quello di valutare una funzione y(x 1,x 2,...x n )=y(x) a partire da una griglia di N valori assegnati y 1 =y(x 1 ), y 2 =y(x 2 ),..., y N =y(x N ) Per semplicità studieremo il problema nel solo caso bidimensionale Assumeremo inoltre che siano assegnati i valori della funzione da interpolare in corrispondenza dei vertici di una griglia rettangolare

43 Interpolazione in due dimensioni Supponiamo che siano assegnati i valori della funzione z=f(x,y) in corrispondenza degli M N vertici di una griglia indichiamo con x 1,x 2,...,x M e con y 1,y 2,...,y N le ascisse e le ordinate dei vertici del reticolo indichiamo con z jk =z(x j,y k ) i valori della funzione in corrispondenza dei vertici del reticolo y x x1x1 x2x2 x3x3 xMxM y1y1 y2y2 yNyN

44 Interpolazione bilineare Dato il punto (x,y), indichiamo con j e k gli indici per cui si ha x j


Scaricare ppt "Introduzione al problema Sia assegnata una funzione f(x) di cui sono noti i valori f(x 1 ), f(x 2 ),…,f(x N ) nei punti x 1, x 2, …, x N per semplicità"

Presentazioni simili


Annunci Google