![]() |
|
interpolazione in matlab/octave
Per la interpolazione matlab/octave dispongono di una funzione molto
versatile interp1 per la interpolazione monodimensionale e interp2 per
quella bidimensionale.
La interpolazione usa alcune famiglie di polinomi e di splines (cioè polinomi raccordati
in modo da avere una certa regolarità nei punti di raccordo.
Si parte dai dati che si vogliono interpolare, generalmente un vettore x ed uno y; si prende
un nuovo vettore xinterp e si calcola con interp1 un vettore di dati interpolati (o estrapolati
specificando il flag aggiuntivo 'estrap') yinterp, scegliendo tra le varie famiglie a disposizione come:
come esperimento prendiamo la funzione 1/(1 + 25 x^2) e scegliamo 20 punti sul suo grafico e
proviamo ad interpolare 100 dati del suo grafico con interp1
x=linspace(-1,1,20);
y=1./(1+25*x.*x);
xinterp=linspace(-2,2,100);
yinterp=interp1(x,y,xinterp,'spline','extrap');
plot(xinterp, yinterp,x,y,"*");
Si noti che a seconda del metodo di interpolazione scelto il grafico varia notevolmente, sopratutto nella parte estrapolata.
Si provi a disegnare sullo stesso grafico il vero plot di 1/(1 + 25 x^2).
![]() |
|