Calcolo Scientifico e Matematica Numerica Corso di Laurea in Informatica, A.A. 2011-2012 Esercitazione n.

8 Parte I (Interpolazione mediante polinomi)
Data la tabulazione (xi, yi), per i= 0,..n, MatLab permette di costruire il polinomio interpolatore di grado n mediante la funzione predefinita polyfit (se occorre, vedere le specifiche della funzione tramite l’help di MatLab, polyfit si trova nel gruppo polyfun). La funzione polyfit(x,y,n), con x(xi), y(yi) e n il grado del polinomio interpolatore scelto, restituisce un vettore, che indichiamo P nel seguito, i cui elementi sono i coefficienti del polinomio interpolatore. Tale vettore P può essere utilizzato come argomento della funzione predefinita polyval. La funzione polyval(P,z), dove P è il vettore contenente i coefficienti di un polinomio, restituisce i valori del polinomio in z, con z vettore di numeri.

Fissato un intervallo [a,b], e due valori interi positivi m,n, scrivere uno SCRIPT file in MatLab che:
 determini n+1 nodi xi equidistanti nell’intervallo dato e calcoli i valori yi=f(xi), per una assegnata funzione f(x) (quest’ultima va scritta in un FUNCTION file MatLab, vedi suggerimento in calce);  mediante la funzione polyfit, calcoli i coefficienti del polinomio interpolante di grado n nei punti (xi, yi), per i= 0,..n;  calcoli i valori di f(x) in m punti xsj , j= 1,..m, equidistanti nell’intervallo [a,b] (valori indicati con fxsj);  mediante la funzione polyval , calcoli i valori del polinomio interpolante nei punti xsj , j= 1,..m, (valori indicati con pxsj);  usando i valori xsj ed i valori pxsj e fxsj , disegni: (i) i grafici del polinomio interpolante e della funzione f(x); (ii) il grafico della distanza tra i valori pxsj e fxsj. Come funzioni test f(x) si considerino le funzioni:  e-xsen(2x) nell’intervallo [0,4]  (-3x+1.4)*sen(18x) nell’intervallo [0.96609, 1.48907].  1/(1+x2) nell’intervallo [-5, 5]. Per le tre funzioni considerate, cosa si ottiene all’aumentare dei punti di interpolazione? L’approssimazione migliora? I risultati numerici sono in accordo con la teoria? Suggerimento: Usare la definizione di FUNCTION file presente in Matlab per creare il file funz.m contenente la funzione di cui si vuole ottenere la tabulazione. Esempio: function y = funz(x) % calcolo di y y=2*sin(x)+2;
Marco Gaviano (gaviano@unica.it)

per k=1. ….96609. o nella finestra di commando.. per k=1.. …. in modo tale che essa restituisca con una sola chiamata il vettore tabulazione y=[f(x_0). scrivere uno SCRIPT file in MatLab che:  determini n+1 nodi xi equidistanti nell’intervallo dato e calcoli i valori yi=f(xi) per una assegnata funzione f(x) (quest’ultima va scritta in un FUNCTION file MatLab. che..  determini la spline cubica interpolatoria di Matlab tramite i comandi C=spline(x.it) .. data la tabulazione x(xi) e y(yi).4]. La scrittura fun(6) in un programma. Fissato un intervallo [a. A. z=linspace(a.A. Suggerimento: Usare la definizione di FUNCTION file presente in Matlab per creare il file funz.m.b. permette di calcolare e-xsen(2x) nel punto x=6. (-3x+1. restituisce un vettore C i cui elementi rappresentano la spline cubica interpolatoria cercata. ed un valore intero positivo n.101). 6]).. Per consentire alla funzione di accettare in input un vettore x=[x_0. che restituisce i valori sk=s(zk). la funzione f può essere approssimata mediante una spline cubica interpolatoria. f(x_1)..4)*sen(18x) nell’intervallo [0. s=ppval(C.101. 8 Parte II (Interpolazione mediante spline) Data la tabulazione (xi.  tracci il grafico della spline cubica interpolatoria s(x) e della funzione f(x) nei punti zk. 1/(1+x2) (nell’intervallo [-6. di una funzione y=f(x).y). 20]). si utilizza la funzione predefinita di Matlab ppval(C. Marco Gaviano (gaviano@unica.z). occorre modificare opportunamente il corpo della precedente funzione funz().. x_1.n. Esempio: function y = funz(x) % calcolo di y y=exp(-x)*sin(2*pi*x). 1. Si osservi che alla funzione precedente può essere passato in input esclusivamente uno scalare... Una spline cubica interpolatoria s(x) può essere determinata utilizzando la funzione predefinita di Matlab spline(x.m contenente la funzione di cui si vuole ottenere la tabulazione.Calcolo Scientifico e Matematica Numerica Corso di Laurea in Informatica.y) . yi). e-xsen(2x) nell’intervallo [0. 2011-2012 Esercitazione n.48907]. vedi suggerimento in calce). x_n]. f(x_n)].z). Per ottenere i valori di tale spline cubica interpolatoria s(x) in un insieme di nodi z(zk). Come funzioni test f(x) si considerino le funzioni:     2sen(x)+2 (nell’intervallo [-20. per i= 0.b].