Laboratorio di Matematica Computazionale A.A. 2007-2008 Lab. 9 Spline interpolanti lineari (interp1) e cubiche (spline) Esercizio 1 Assegnati i punti di coordinate x -1 1 2 3 5 y 0-1 5 2 1 si disegnino, in due grafici distinti: la spline interpolante lineare e i punti della tabella evidenziati con un cerchietto; la spline interpolante cubica e i punti della tabella evidenziati con un cerchietto. Allo scopo si utilizzino rispettivamente i comandi: pp = interp1(x,y, linear, pp ) (NB : x e y vettori colonna) pp = spline(x, y) che creano e memorizzano le spline in pp-form. Valutare le spline per il grafico con il comando ppval. Con il comando unmkpp estrarre ogni campo delle due strutture pp spiegandone il significato. Con il comando ppder si calcolino le derivate prima, seconda e terza della spline cubica sopra ottenuta. Se ne esegua il grafico: che cosa si osserva? Eliminare una colonna dalla tabella sopra assegnata e ricalcolare la spline cubica. Verificare che coincide con il polinomio che interpola gli stessi dati calcolato con polyfit. Perché? Esercizio 2
Approssimare con una spline interpolante lineare la funzione f(x) =1/(1+x 2 ) nell intervallo [-5, 5] suddiviso in m sottointervalli di ampiezza H. Definire 10000 punti equidistanti ausiliari in [-5, 5] e usarli: per disegnare sullo stesso grafico la funzione e la spline; per calcolare l errore di approssimazione (massimo modulo della differenza tra f e la spline). Riportare i risultati ottenuti nella sottostante tabella: m H=10/m Errore 50 500 5000 Verificare che: per m che tende all infinito l errore tende a zero; l errore è un O(H 2 ). Esercizio 3 Ripetere l esercizio precedente con m = 10, 100, 1000 approssimando f con una spline cubica. Verificare che: per m che tende all infinito l errore tende a zero; l errore è un O(H 4 ). Esercizio 4 Ripetere i due esercizi precedenti con le funzioni f(x) = x sen(1/x) in [0.05, 0.5] f(x) = e x cos(4x) in [0, π]
Esercizio 1 Approssimazione ai minimi quadrati (polyfit) Assegnati i punti di coordinate: x -5-2 0.5 1 1.5 3 6 y 1.5 2-1 2.5 1-2 3 si calcoli il polinomio dei minimi quadrati di grado n. Si disegnino sullo stesso grafico il polinomio (linea continua) e i punti usati per calcolarlo (cerchietti). Si provi per n = 1, 2, 3. Che accade per n = 6? Verificare che la retta di regressione lineare (n = 1) passa per il punto che ha per coordinate rispettivamente la media delle ascisse e la media delle ordinate dei dati in tabella. Esercizio 2 In un esperimento di laboratorio viene misurata la posizione di un corpo che cade soggetto alla forza di gravità. Le misurazioni vengono effettuate ad intervalli di tempo uniformi e i dati sono riportati nel M-script gravita.m (da scaricare alla pagina web del corso). Si costruisca il polinomio T2 di grado 2 che approssima i dati sperimentali nel senso dei minimi quadrati. Si rappresentino sul medesimo grafico i dati e il polinomio T2. Ricordando che la legge di moto che assegna la posizione del corpo in funzione del tempo è data da d(t) = d 0 + v 0 t +gt 2 /2 dove d 0 è la posizione iniziale, v 0 è la velocità iniziale e g l'accelerazione di gravità, sulla base dell'espressione di T2, si approssimi il valore dell'accelerazione di gravità g. Si compari il valore che si calcola in questo modo con il valore esatto g = 9.80665 m/s 2.
Esercizio 3 Si considerino le coppie di dati definiti come >> x=linspace(0,1,10); >> y=10*x+rand(size(x)); Si calcoli il polinomio p 9 (x) di grado 9 che interpola i dati assegnati (perchè abbiamo preso proprio grado 9?). Si calcoli inoltre la retta di regressione che approssima i dati nel senso dei minimi quadrati. Si confrontino graficamente i polinomi calcolati rispetto ai dati assegnati. Se si ripete il calcolo dei dati, il vettore rand cambia e quindi anche i valori delle ordinate. Si commentino le proprietà rispettive dell'approssimazione ai minimi quadrati e dell'interpolazione di Lagrange in termini di sensibilità rispetto alle perturbazioni sui dati. Esercizi aggiuntivi 1. I dati della tabella seguente riportano le aspettative di vita per gli abitanti dell Europa occidentale in diversi anni 1975 1980 1985 1990 72.8 74.2 75.2 76.4 Si trovi la retta dei minimi quadrati che approssima questi dati e la si usi per stimare l aspettativa di vita della popolazione nel 1970, 1983 e 1998. Si verifichi poi che la retta passa per il punto che ha per coordinate i valori medi delle ascisse e delle ordinate dei dati in tabella. 2. Nella tabella seguente sono riportate le misure della densità r dell acqua di mare (in Kg/m 3 ) in funzione della temperatura T (in gradi Celsius) T 4 8 12 16 20 r 1000.779 1000.642 1000.2805 999.7165 998.9700 4 7 A partire da tali dati si calcolino i polinomi dei minimi quadrati di grado 1, 2, 3. Si considerino quindi le seguenti misurazioni e si deduca se le approssimazioni trovate sono ragionevoli o meno: T 6 10 14 18 r 1000.7408 1000.488 1000.0224 999.3650
8 2