Complementi di Matematica e Calcolo Numerico A.A

Documenti analoghi
Complementi di Matematica e Calcolo Numerico A.A

Laboratorio di Matematica Computazionale A.A Lab. 9

kπ cos, k = 0, 1, 2,, n (NB: sono n +1) n

Calcolo Numerico - A.A Laboratorio 6

Complementi di Matematica e Calcolo Numerico A.A Polinomi e vettori

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

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

Interpolazione e approssimazione di funzioni

Interpolazione e approssimazione di dati

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4-23/3/2015

Interpolazione e approssimazione di dati

Interpolazione composita di Lagrange

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

2. Costruire un M function file di Matlab che calcola il valore del

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3-24/3/2014

Laboratorio di Calcolo Numerico A.A

Complementi di Matematica A.A Laboratorio 10

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

Corso di Calcolo Scientifico

Calcolo Numerico (A.A ) Lab n. 12 Approssimazione

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

Calcolo Numerico A.A Lab. 6

Polinomi. Poiché un polinomio di grado n ha n+1 coefficienti, ad un polinomio di grado n si associa un vettore di lunghezza n+1.

Esercitazione 7: Aggiornamento minimi quadrati.

Corso di Matematica per la Chimica

EQUAZIONI DIFFERENZIALI

Complementi di Matematica e Calcolo Numerico A.A

Minimi quadrati in Matlab

Laboratorio di Calcolo Numerico Approssimazione ai minimi quadrati

Esercizi Elaborato (versione )

Minimi quadrati. Ángeles Martínez Calomardo e Alvise Sommariva. 4 dicembre Università degli Studi di Padova

Il problema lineare dei minimi quadrati

b vettore(termine noto) y* proiezione ortogonale di b

Esercizio 1. Esercizio 2

Approssimazione numerica

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 10

BOZZA BOZZA BOZZA. Funzioni per effettuare delle interpolazioni su dati tabellati: interp1, interp2, interp3.

Approssimazione di dati

Approssimazione di dati

Approssimazione di dati

Metodi Numerici con elementi di Programmazione (A.A )

Lezione 5, 5/11/2014

Equazioni e sistemi non lineari

1 Fit di dati sperimentali: il χ 2. Il metodo dei minimi quadrati.

Fondamenti di Informatica A.A. 2016/17

La media e la mediana sono indicatori di centralità, che indicano un centro dei dati.

Calcolo Numerico. Esercitazioni (A.A ) Lezione n. 16 Approssimazione

Statistica Matematica e Trattamento Informatico dei Dati. Analisi Matematica 3. Esercizi svolti nelle lezioni. V. Del Prete

ISTITUTO DI ISTRUZIONE SUPERIORE A. EINSTEIN PROGETTO LAUREE SCIENTIFICHE

Corso di laurea in Matematica Laboratorio di Programmazione e Calcolo Prof. A. Murli. Esercizi di riepilogo - LABORATORIO

Corso di Analisi Numerica

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Soluzione di Equazioni non lineari

n (x i x j ), det V = i>j

Interpolazione polinomiale a tratti

Lezione 3 Interpolazione Polinomiale.

Interpolazione di dati

La media e la mediana sono indicatori di centralità, che indicano un centro dei dati.

Interpolazione. Corso di Calcolo Numerico, a.a. 2008/2009. Francesca Mazzia. Dipartimento di Matematica Università di Bari.

Corso di Analisi Numerica

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Laboratorio di Matematica Computazionale A.A Lab. 4

Corso di Laurea in Ingegneria Energetica POLINOMI IN MATLAB. Bologna, 13 marzo Fondamenti di Informatica L a.a

Equazioni e sistemi non lineari

Approssimazione di dati e funzioni

Esercizi proposti di Analisi Numerica

1. Calcolo dell indice di condizionamento di una matrice

Analisi Numerica Corso di Laurea in Ingegneria Elettrotecnica

Interpolazione polinomiale. Interpolazione polinomiale

Interpolazione polinomiale.

Corso di Calcolo Numerico

EQUAZIONE DELLA RETTA

INTERPOLAZIONE. Introduzione

Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame

INTERPOLAZIONE POLINOMIALE

Raccolta di compiti degli appelli precedenti

A.A Prof. R. Morandi

Analisi Numerica: quadratura

INTERPOLAZIONI CON SPLINE

Lezione 4 Quadratura Numerica. Fernando Palombo

Anno accademico

Interpolazione e Smoothing di dati

Analisi Numerica I Approssimazione polinomiale

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Corso di Calcolo Numerico

Metodo dei Minimi Quadrati. Dott. Claudio Verona

COGNOME... NOME... ( π ) ( ) = e Determinare utilizzando una funzione ausiliaria, opportunamente scelta, la soluzione del

Laboratorio di Calcolo Numerico Laboratorio 4: Functions. Soluzione di Equazioni non lineari

Fondamenti di Informatica A.A. 2016/17

RAPPRESENTAZIONE GRAFICA DEI RISULTATI SPERIMENTALI INTERPOLAZIONE E CURVE DI REGRESSIONE

Approssimazione di dati e funzioni

Transcript:

Complementi di Matematica e Calcolo Numerico A.A. 015-01 Laboratorio 5 - Function files, Minimi quadrati e spline FUNCTION-FILES MATLAB Le funzioni matlab sono porzioni di codici scritte in un file indipendente che svolgono un determinato compito e comunicano con lo spazio di lavoro solo attraverso i parametri in ingresso ed in uscita. L intestazione di una function Matlab ha sempre la struttura: function }{{} parola chiave [out1,out,...] }{{} parametri in uscita = nomefun }{{} (in1,in,...) }{{} nome funzione parametri in ingresso L intestazione è seguita dalle istruzioni e la function terminerà con la parola chiave return. Prima di essa, deve essere stato assegnato un valore a ciascuno dei parametri in uscita out1,out,... La funzione nomefun deve essere salvata nel file nomefun.m. Att.ne! Un file può contenere un unica funzione. Le variabili assegnate nel blocco istruzioni interno alla function sono locali, ovvero vengono cancellate dalla memoria al termine della chiamata. Per chiamare una function, ad esempio dallo spazio di lavoro: >> [value1,value,value3]=nomefun(in1,in,in3); Una funzione può richiamare o essere richiamata da altre. A titolo di esempio si riveda la funzione polysum vista nel laboratorio precedente. 1

APPROSSIMAZIONE DI FUNZIONI O DI DATI Consideriamo il problema di valutare una funzione nota soltanto attraverso le misurazioni sperimentali nella tabella seguente, in un punto diverso da quelli tabulati. x 1 3 5 7 8 9 10 y 1.3 3.5. 5.0 7.0 8.8 10.1 1.5 13 15. Con il comando plot(x,y, * ) ottemiano il grafico dei dati. 1 1 1 10 8 0 1 3 5 7 8 9 10 Dal grafico vediamo che la relazione che intercorre tra x ed y è di tipo lineare ma che nessuna retta passa esattamente per tutti i punti misurati, il che non stupisce se si tiene conto del fatto che le misurazioni sperimentali sono affette da inevitabili errori. In questo caso non e più ragionevole pensare di richiedere cha la funzione approssimante interpoli i dati, e quindi passi esattamente per i punti dati, perchè questo introdurrebbe inevitabili oscillazioni. Un miglior approccio al problema sarebbe quello di cercare una retta che passi il più vicino possibile, in qualche senso, ai dati misurati (si veda la figura seguente). In un caso come questo una buona soluzione è fornita dalla retta di regressione. Nella figura sotto a sinistra in rosso il polinomio interpolatore in quella a destra in blu la retta di regressione. 1 1 1 1 1 1 10 10 8 8 0 1 3 5 7 8 9 10 0 1 3 5 7 8 9 10

RETTA DI REGRESSIONE LINEARE Siano (x i,y i ), per i = 0,...,N, N + 1 coppie di dati di origine sperimentale o originati dal campionamento y i = f(x i ) di una funzione f(x). Ricordiamo che si chiama retta di regressione lineare, oppure retta che approssima i dati (x i,y i ) nel senso dei minimi quadrati, la retta y = p 1 (x) = mx+q, che minimizza lo scarto quadratico S = N y i p 1 (x i ) = i=0 N y i (mx i +q), i=0 cioè con coefficienti m e q che risolvono il sistema lineare [ N N i=0 x i i=0 x ]( ) ( i m N i=0 N i=0 x N i i=0 1 = x iy i q N i=0 y i ). Tale sistema si ottiene imponendo a zero le derivate di S rispetto alle variabili m e q. In Matlab la retta di regressione si calcola con il comando polyfit(x,y,1) Esercizio 1. Si considerino i dati x = [ 0 1 3 5 7 8 9 10 ] y = [ 0 1.5.7 3.0 3.77.71 5.91 7.19 8.9 9.1 9.83 ] e si calcoli la retta di regressione lineare con il comando polyfit con grado di approssimazione 1. Si disegni in un grafico la retta di regressione nell intervallo [ 1,11] con una linea nera e si evidenzino i punti (x i,y i ) mediante un cerchietto rosso. Esercizio. 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 Si calcoli inoltre la retta di regressione che approssima i dati nel senso dei minimi quadrati. 3

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 sensibilitià rispetto alle perturbazioni sui dati. Esercizio 3. Assegnati i punti di coordinate >> x=[-5-0.5 1 1.5 3 ]; >> y=[1.5-1.5 1-3]; si calcoli la retta di regressione che approssima i dati nel senso dei minimi quadrati e si disegni il grafico della retta calcolata e dei dati (x, y). Verificare che la retta di regressione lineare passa per il punto che ha per coordinate rispettivamente la media delle ascisse e la media delle ordinate dei dati in tabella. SPLINE LINEARI Dato un insieme di punti (x i,y i ), per i = 0,...,N, una spline lineare interpolante è una funzione s(x) globalmente continua e tale che - su ogni intervallino [x i,x i+1 ] è una retta, ovvero un polinomio di grado 1 - s(x i ) = y i per i = 0,...,N Assegnati i punti di coordinate >> x=[-1 1 3 5]; >> y=[0-1 5 1]; si disegni la spline lineare interpolante ed i punti della tabella evidenziati con un cerchietto. Allo scopo si utilizzi il comando: >> pp = interp1(x,y, linear, pp ) che crea e memorizza la spline in pp-form (N.B. in alcune versioni Matlab x ed y devono essere vettori colonna). Per disegnarne il grafico si valuti la spline in un vettore di punti ausiliari z con il comando ppval prima di utilizzare il comando plot per disegnarla, ovvero >> z=linspace(-1,5); >> ppz = ppval(pp,z); >> plot(z,ppz);

In alternativa il comando >> ppz=interp1(x,y,z, linear ) calcola e valuta la spline lineare interpolante direttamente nei punti del vettore z che deve essere definito in precedenza. Esercizio 1. Approssimare con una spline interpolante lineare la funzione f(x) = 1 1+x nell intervallo [ 5, 5] suddiviso in m sottointervalli di ampiezza H = ampiezza intervallo/m. 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 la funzione f e la spline). Riportare i risultati ottenuti nella sottostante tabella: m 50 500 5000 H=10/m Errore Verificare che: per m che tende all infinito l errore tende a zero; l errore è un O(H ). Esercizio. Ripetere l esercizio precedente con le funzioni ( ) 1 f(x) = xsin in [0.05, 0.5] x f(x) = e x cos(x) in [0,π]. 5

Esercizio 3. Di seguito vengono riportate le variazioni medie della temperatura sulla terra a diverse latitudini in particolari condizioni. A partire dai dati (x i,y i ) memorizzati nei vettori >> x=[-55:10:55]; >> y=-[3.5 3.37 3.35 3. 3.1 3.0 3.0 3.07 3.17 3.3 3.3 3.]; eseguire quanto segue: calcolare il polinomio interpolatore calcolare la spline lineare interpolante, rappresentare graficamente il polinomio, la spline e i dati x e y che sono stati considerati. Quale approssimazione appare piú ragionevole? Esercizio. Nei vettori x e y seguenti sono riportate le coordinate di 17 punti che individuano, con un po di fantasia, la testa di un gattino >> x = [.05.1.15..5..8 3 3. 3. 3.75 3.8 3.85 3.9 3.95 ]; >> y = [1 1.31 1. 1.53 1..3 1.9 1.98 1.98 1.9.3 1. 1.53 1. 1.31 1]; Predisporre un vettore contenente 1000 punti in [, ] e utilizzarlo per disegnare (in due grafici distinti) le ricostruzioni dei dati ottenute calcolando: il polinomio interpolatore la spline lineare interpolante. Confrontare i grafici ottenuti.