Interpolazione ed approssimazione di funzioni



Documenti analoghi
Interpolazione e approssimazione di funzioni

Approssimazione polinomiale di funzioni e dati

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Integrazione numerica

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Metodi numerici per la risoluzione di equazioni. Equazioni differenziali ordinarie

Introduzione al MATLAB c Parte 2

MINIMI QUADRATI. REGRESSIONE LINEARE

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

Docente: Anna Valeria Germinario. Università di Bari. A.V.Germinario (Università di Bari) Analisi Matematica ITPS 1 / 22

Studente: SANTORO MC. Matricola : 528

Dimensione di uno Spazio vettoriale

Spline Nurbs. IUAV Disegno Digitale. Camillo Trevisan

LE FUNZIONI A DUE VARIABILI

Esercizi per il corso di Algoritmi e Strutture Dati

Metodi Stocastici per la Finanza

Corso di Analisi Matematica. Polinomi e serie di Taylor

1 Serie di Taylor di una funzione

( x) ( x) 0. Equazioni irrazionali

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

Fondamenti e didattica di Matematica Finanziaria

Corso di Matematica per la Chimica

EQUAZIONI DIFFERENZIALI Esercizi svolti. y = xy. y(2) = 1.

[ Analisi della. concentrazione] di Luca Vanzulli. Pag. 1 di 1

Documentazione esterna al software matematico sviluppato con MatLab

Rendering air show e verifica della sincronizzazione

Esercizi su lineare indipendenza e generatori

Grafico qualitativo di una funzione reale di variabile reale

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito.

Soluzione di equazioni quadratiche

APPLICAZIONI LINEARI

I appello - 24 Marzo 2006

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

Fasi di creazione di un programma

Funzioni in C. Violetta Lonati

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

illuminazione artificiale

09 - Funzioni reali di due variabili reali

Ottimizazione vincolata

Ottimizzazione delle interrogazioni (parte I)

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Parte 2. Determinante e matrice inversa

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

Relazioni statistiche: regressione e correlazione

2 Argomenti introduttivi e generali

Capitolo 13: L offerta dell impresa e il surplus del produttore

1 Applicazioni Lineari tra Spazi Vettoriali

Prof.ssa Paola Vicard

Esercizi svolti. 1. Si consideri la funzione f(x) = 4 x 2. a) Verificare che la funzione F(x) = x 2 4 x2 + 2 arcsin x è una primitiva di

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Metodi di Interpolazione Razionale e Applicazioni

Analisi Numerica I Approssimazione polinomiale

Esercitazione 4. Richiami di Teoria

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)

VARIANZA CAMPIONARIA E DEVIAZIONE STANDARD. Si definisce scarto quadratico medio o deviazione standard la radice quadrata della varianza.

la scienza della rappresentazione e della elaborazione dell informazione

Appunti sul corso di Complementi di Matematica - prof. B.Bacchelli Equazioni differenziali lineari omogenee a coefficienti costanti.

Parte 6. Applicazioni lineari

ESERCIZI SVOLTI Ricerca del dominio di funzioni razionali fratte e irrazionali. novembre 2009

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k

Un po di statistica. Christian Ferrari. Laboratorio di Matematica

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Laboratorio di Matematica Computazionale A.A Laboratorio nr.8

Introduzione allo Scilab Parte 3: funzioni; vettori.

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

Applicazioni lineari

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

RICHIAMI SULLE MATRICI. Una matrice di m righe e n colonne è rappresentata come

Basi di matematica per il corso di micro

Scilab: I Polinomi - Input/Output - I file Script

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni.

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ ρσ1 σ 2 ) = (σ 1

I sistemi di numerazione

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Analisi di dati di frequenza

FORMULE: Operatori matematici

Funzioni con dominio in R n

LE FIBRE DI UNA APPLICAZIONE LINEARE

Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : = y

l insieme Y è detto codominio (è l insieme di tutti i valori che la funzione può assumere)

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Come costruire una distribuzione di frequenze per caratteri quantitativi continui

Capitolo 1 ANALISI COMPLESSA

Equazioni non lineari

Laboratorio teorico-pratico per la preparazione alle gare di matematica

ISTITUTO D'ISTRUZIONE SUPERIORE A. MOTTI PROGRAMMAZIONE ANNUALE ANNO SCOLASTICO 2014 /2015

Luigi Piroddi

Spazi lineari - PARTE II - Felice Iavernaro. Dipartimento di Matematica Università di Bari. 9 e 16 Marzo 2007

Informatica. Rappresentazione dei numeri Numerazione binaria

SCOMPOSIZIONE IN FATTORI DI UN POLINOMIO

La trasformata Zeta. Marco Marcon

Funzione reale di variabile reale

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

PROBLEMI TRADIZIONALI SIMULAZIONE DELLA PROVA DI MATEMATICA

Lezione 9: Cambio di base

Transcript:

Interpolazione ed approssimazione di funzioni Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 9 novembre 2007

Outline 1 Polinomi Valutazione di un polinomio Algoritmo di Horner Ruffini 2 Interpolazione Polinomio interpolatore Errore di approssimazione Nodi di Chebyshev 3 Interpolazione a tratti Interpolazione a tratti Spline 4 Minimiquadrati lineari

Polinomi Un polinomio di grado n, con n intero non negativo, è una funzione del tipo n p(x) = a 0 + a 1 x + a 2 x 2 + + a n x n = a i x i dove a i R, per i = 0, 1, 2,..., n, sono i coefficienti del polinomio. Il polinomio è individuato dai coefficienti che devono essere memorizzati in un vettore. Nota bene In MATLAB i coefficienti devono essere ordinati a partire da quello corrispondente al termine di grado più elevato fino a quello di grado zero. I coefficienti nulli vanno esplicitati. Ad esempio al polinomio p(x) = 1 2x + 4x 3 si associa il vettore p=[4 0-2 1]. i=0

Algoritmo di Horner Ruffini L algoritmo di Horner Ruffini permette di calcolare il valore di un polinomio in un punto ad un costo computazionale inferiore rispetto all uso della formula n p(x) = a 0 + a 1 x + a 2 x 2 + + a n x n = a i x i. Consideriamo il polinomio p(x) = 1 2x + 5x 2 + 4x 3 ; questo si può scrivere anche nella forma seguente: p(x) = 1 + x ( 2 + x(5 + 4x)). i=0 Contiamo le operazioni Nel primo caso: 6 (1+2+3) moltiplicazioni + 3 somme per ciascuna componente di x Nel secondo caso: 3 moltiplicazioni + 3 somme per ciascuna componente di x

Algoritmo di Horner Ruffini In generale il polinomio p(x) = a 0 + a 1 x + a 2 x 2 + + a n x n può essere scritto nella forma di Horner: p(x) = a 0 + x (a 1 + x (a 2 + x ( (a n 1 + a n x)))). Numero di operazioni Nel primo caso: n(n + 1)/2 (1 + 2 + + n) moltiplicazioni + n somme per ciascuna componente di x Totale n (n + 3)N se N è il numero delle componenti di x 2 Nel secondo caso: n moltiplicazioni + n somme per ciascuna componente di x Totale 2nN se N è il numero delle componenti di x

polyval La function polyval valuta il valore di un polinomio in una griglia di punti usando l algoritmo di Horner Ruffini. y=polyval(p,x) restituisce il vettore y contenente i valori di un polinomio di grado n calcolati nei punti x. Il vettore p di n + 1 componenti deve contenere i coefficienti del polinomio corrispondenti alle potenze in ordine decrescente. Quindi per calcolare il valore del polinomio p(x) = 1 + 2x 4x 3 nei punti x distribuiti in maniera equispaziata nell intervallo [a, b] si può usare la seguente sequenza di comandi: >> x=linspace(-1,1,101); >> p=[-4 0 2 1]; >> y=polyval(p,x);

Esercizi Esercizio 1 Riportare in una stessa figura il grafico dei seguenti due polinomi: p 1 (x) = 1 3x 4x 2 + 2x 5 x [ 3/2, 3/2] p 2 (x) = 2 + 3x 2x 3 3x 4 x [ 3/2, 3/2] Esercizio 2 Sia x il vettore che contiene i punti dell intervallo [0.995, 1.005] equispaziati a distanza 10 4 (usare x=.995:1.e-4:1.005). Fare il grafico del polinomio: p(x) = x 6 6x 5 + 15x 4 20x 3 + 15x 2 6x + 1. Confrontare il grafico ottenuto con quello della funzione f (x) = (x 1) 6 nello stesso intervallo.

Interpolazione Problema Dati n + 1 punti (x i, f (x i )) per i = 0, 1,..., n si cerca un polinomio P n : R R tale che P n (x i ) = f (x i ) per i = 0, 1,, n. (1) Il polinomio P n è detto polinomio interpolatore di f e le condizioni (1) sono dette condizioni di interpolazione. Teorema di esistenza ed unicità del polinomio interpolatore Per ogni insieme di punti (x i, f (x i )) per i = 0, 1,, n, con gli x i distinti tra loro, esiste un unico polinomio di grado n, che indicheremo con P n f, tale che P n f (x i ) = f (x i ) per i = 0, 1,, n. Esso viene detto polinomio interpolatore dei valori f (x i ) nei nodi x i.

polyfit La function polyfit fornisce i coefficienti del polinomio interpolatore. La sintassi di polyfit è: p=polyfit(x,y,n) dove x contiene i nodi x i, y contiene i valori della funzione y i e n è il grado del polinomio interpolatore. Ad esempio: >> p=polyfit(nodi,y,4) p = 1.0417-13.0833 57.4583-102.4167 66.0000

Esercizio Calcolo dei coefficienti del polinomio interpolatore e sua rappresentazione Si consideri la funzione f (x) = (1 x 2 ) arctan x + e x nell intervallo [ 4, 4]. Dati i nodi x=[-3-1 2 3 ];, usare il comando polyfit per trovare i coefficienti del polinomio interpolatore. Riportare in una stessa figura il grafico del polinomio interpolatore e della funzione f. Suggerimento Per ottenere il grafico valutare il polinomio (usare il comando polyval) e la funzione in un numero appropriato di punti equispaziati nell intervallo dato (usare il comando linspace).

Errore di approssimazione Teorema: stima dell errore di interpolazione Dati n + 1 nodi di interpolazione x i per i = 0, 1,, n. Sia f una funzione derivabile con continuità n + 1 volte in un intervallo I contenente tutti i nodi di interpolazione e sia Π n il polinomio interpolatore nei nodi x i, allora per ogni x I, esiste un punto ξ I tale che E n (x) = f (x) P n (x) = f (n+1) (ξ) (n + 1)! n (x x i ). i=0

Funzione di Runge Si consideri la funzione di Runge f (x) = 1, x [ 1, 1]. 1 + 25x 2 Esercizio Interpolare con polinomi di grado n=2:2:12, la funzione data, usando n + 1 punti equispaziati nell intervallo [ 1, 1]. Confrontare il grafico di ciascun polinomio interpolatore con quello della funzione data. Calcolare per ciascun valore di n l errore commesso ossia E n = max a x b f (x) P n(x) Costruire un vettore contenente gli errori ottenuti per ciascun valore di n e riportare gli errori in un grafico in scala semilogaritmica semilogy(n,e).

Traccia per la risoluzione dell esercizio 1. Assegnare un vettore che contiene i valori di n. 2. Costruire il vettore xx dei punti per valutare tutti i polinomi. 3. Valutare la funzione in xx (risultato yy). 4. Per ogni valore di n (for i=1:length(n)) eseguire la seguente sequenza: Costruire il vettore x dei nodi con il comando linspace. Valutare la funzione nei nodi. Trovare i coefficienti del polinomio con il comando polyfit. Valutare il polinomio nei punti xx con il comando polyval (risultato py). Plottare la funzione e il polinomio di grado n (inserire una pausa pause). Calcolare l errore E(i)=norm(yy-py,inf)/norm(yy,inf). 5. Plottare l errore con il comando semilogy(n,e).

Interpolazione di Chebyshev Il fenomeno di Runge può essere evitato utilizzando opportune distribuzioni di nodi. Nell intervallo [a, b] consideriamo i nodi x i dati da: x i = a + b 2 + b a ˆx i 2 I punti ˆx i [ 1, 1] si dicono nodi di Chebyshev. Teorema di Bernstein con ˆx i = cos( πi ), i = 0,..., n. n Sia f : [a, b] R una funzione di classe C 1. Sia C n il polinomio interpolatore di grado n costruito usando i nodi di Chebyshev. Allora lim f C n = 0. n

Esercizio Esercizio Data una funzione f : [a, b] R. Scrivere una function per calcolare il valore del polinomio interpolatore C n di grado n di f, usando i nodi di Chebyshev. function[y]=chebyshev(f,a,b,n,x) Input: Output: f nome della funzione che si vuole interpolare a,b estremi dell intervallo in cui è definita la funzione n grado del polinomio x vettore dei punti in cui si deve valutare il polinomio y vettore dei valori del polinomio

Traccia per la risoluzione dell esercizio Costruire il vettore xh dei punti ˆx nell intervallo [ 1, 1] con il comando xh=-cos(pi*(0:n)/n). Costruire il vettore xc dei nodi di Chebyshev nell intervallo [a, b] con il comando xc=(a+b)/2+(b-a)*xh/2. Valutare la funzione nei nodi xc. Trovare i coefficienti del polinomio con il comando polyfit. Valutare il polinomio nei punti xx con il comando polyval (risultato y).

Esercizio Esercizio Interpolare con polinomi di grado n=2:2:12, la funzione di Runge, usando n + 1 punti di Chebyshev nell intervallo [ 1, 1]. Confrontare il grafico di ciascun polinomio interpolatore con quello della funzione data. Calcolare per ciascun valore di n l errore commesso ossia E n = max a x b f (x) C n(x) Costruire un vettore contenente gli errori ottenuti per ciascun valore di n e riportare gli errori in un grafico in scala semilogaritmica semilogy(n,e).

Traccia per la risoluzione dell esercizio 1 Assegnare un vettore che contiene i valori di n. 2 Costruire il vettore xx dei punti in cui si vorranno valutare tutti i polinomi. 3 Valutare la funzione in xx (risultato yy). 4 Per ogni valore di n (for i=1:length(n)) eseguire la seguente sequenza: Valutare il polinomio nei punti xx usando la function Chebyshev costruita in precedenza (risultato yc); Plottare la funzione e il polinomio di grado n. Calcolare l errore E(i)=norm(yy-yc,inf)/norm(yy,inf). 5 Plottare l errore con il comando semilogy(n,e).

Interpolazione a tratti Dato un intervallo I = [a, b], si introduce una partizione mediante un numero finito di punti a = x 0 < x 1 < < x m = b; I k = [x k 1, x k ], k = 1,, m indica il k-esimo sottointervallo. Definizione Si definisce polinomio a tratti una funzione g : [a, b] R tale che g(x) = p n (x) x I k, essendo p n (x) un polinomio di grado n.

Interpolazione lineare a tratti Sia f : [a, b] R una funzione sufficientemente regolare. Problema costruire un polinomio lineare a tratti che interpoli la funzione f nei nodi x i, i = 0,..., n. Consideriamo la partizione dell intervallo [x 0, x n ] data dai nodi x i. Quindi su ciascun intervallino [x i 1, x i ] i = 1,..., n il polinomio interpolatore a tratti è g(x) = f (x i 1 ) x x i + f (x i ) x x i 1 x i 1 x i x i x i 1

Stima dell errore di approssimazione Sia H = max 1 i n (x i x i 1 ). Sia f una funzione continua insieme alle sue derivate prima e seconda. Sia g il polinomio lineare a tratti definito prima. Per ogni i = 1,, n esiste un punto η i [x i 1, x i ] tale che f (x) g(x) = f (η i ) (x x i 1 )(x x i ) per x [x i 1, x i ], 2 da cui segue la seguente maggiorazione: max 1 i n max f (x) g(x) x i 1 x x i (x i x i 1 ) 2 max max f (x) H2 1 i n 2 x i 1 x x i 8 max f (x). a x b

interp1 >> yi=interp1(x,y,xi,metodo) x, y specificano le coordinate dei punti di interpolazione. xi sono i punti in cui si vuole valutare il valore interpolato. metodo è una stringa di caratteri che specifica il metodo da utilizzare: metodo= nearest si sceglie il valore nel nodo di interpolazione più vicino; metodo= linear interpolazione lineare a tratti; metodo= spline interpolazione con spline cubica; metodo= pchip o metodo= cubic interpolazione di Hermite cubica a tratti.

Spline Siano x i, per i = 0,, n, n + 1 nodi distinti e ordinati sull intervallo [a, b], tali che a = x 0 < x 1 < < x n = b. Definizione La funzione s m : [a, b] R è una funzione spline di grado m relativa ai nodi x i se s m (x) per x [x i 1, x i ], i = 1,, n, è un polinomio di grado m. La funzione s m è continua sull intervallo [a, b] insieme alle sue derivate fino all ordine m 1. La spline s 1 è una funzione lineare a tratti continua. La spline più usata è la spline cubica s 3. spline s=spline(x,y,xx) valuta nei punti xx, la spline cubica che passa per i punti di ascissa x e ordinata y.

Esercizio Esercizio Usare la function spline per interpolare la funzione di Runge nell intervallo [ 1, 1], usando n + 1 punti equidistribuiti nell intervallo dato essendo n=2:2:12. Confrontare il grafico di ciascun polinomio interpolatore con quello della funzione data. Calcolare per ciascun valore di n l errore commesso ossia E n = max f (x) s(x) a x b Costruire un vettore contenente gli errori ottenuti per ciascun valore di n e riportare gli errori in un grafico in scala semilogaritmica semilogy(n,e). Confrontare i risultati ottenuti con quelli relativi all interpolazione polinomiale con nodi equidistanti e con nodi di Chebyshev.

Le funzioni MATLAB per l interpolazione Funzione Significato interp1 Interpolazione in una tabella di punti (1D). interp1q Interpolazione lineare (1D). interpft Interpolazione mediante il metodo FFT. interp2 Interpolazione in una tabella di punti (2D). interp3 Interpolazione in una tabella di punti (3D). spline Spline cubica interpolante. griddata Interpolazione e fitting per superfici.

Minimi quadrati lineari in Matlab Per calcolare il polinomio di grado n che approssima i punti (x i, y i ) per i = 1,..., m nel senso dei minimi quadrati lineari si usa la function polyfit con il comando p=polyfit(x,y,n)

Approssimazione di dati Esercizio Il file FIAT.m contiene le quotazioni in borsa delle azioni Fiat relative all anno 2004. Nella prima colonna è contenuto il valore all apertura, nella seconda e nella terza il valore più alto e più basso, rispettivamente, della giornata, nella quarta colonna il valore alla chiusura. Per 1 n 10, calcolare il polinomio di grado n che dà la miglior approssimazione nel senso dei mininimi quadrati lineari relativamente a una delle 4 valutazioni. Per quale grado si ottiene l approssimazione migliore?