Fitting di dati
La temperatura T in prossimità del suolo varia al variare della concentrazione k dell'acido carbonico e della latitudine L. Per k=1.5 la temperatura al suolo subisce una variazione dipendente dalla latitudine secondo la seguente tabella:
| Latitudine (L) | -55 | -45 | -35 | -25 | -15 | -5 | 5 | 15 | 25 | 35 | 45 | 55 | 65 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Temperatura (T) | 3.7 | 3.7 | 3.52 | 3.27 | 3.2 | 3.15 | 3.15 | 3.25 | 3.47 | 3.52 | 3.65 | 3.67 | 3.52 |
Si vuole costruire un modello che descriva la legge T=T(L) anche per latitudini non misurate. Ad esempio si vuole valutare la variazione di temperatura a Roma (L=42°).
Fitting.m
L = [-55 -45 -35 -25 -15 -5 5 15 25 35 45 55 65]; % Latitudine
T = [3.7 3.7 3.52 3.27 3.2 3.15 3.15 3.25 3.47 3.52 3.65 3.67 3.52]; % Temperatura
t = [min(L):0.1:max(L)]; % Vettore in cui valutare la spline interpolante per costruire il grafico della funzione
s = spline(L,T); % Interpolazione con spline cubica not-a knot, costruisco la pp-representation
p = csape(L,T); % Interpolazione sugli stessi dati per mezzo di una spline cubica naturale, costruisco la pp-representation
q = interp1(L,T,t); % Interpolazione a tratti
yy = ppval(s,t); % Costruisco il vettore ordinate della spline not-a knot per il grafico, valutando la pp-form s in t
yp = ppval(p,t); % Costruisco il vettore ordinate della spline naturale per il grafico, valutando la pp-form p in t
x = 42; % Ascissa per la valutazione della variazione di temperatura a Roma (L=42°)
y = ppval(s,x); % Valutazione di x per la spline s
y1 = ppval(p,x); % Valutazione di x per la spline p
y2 = interp1(L,T,x); % Interpolazione a tratti con valutazione in x
subplot(2,2,1); plot(L,T,'*',x,y,'ro', t, yy, 'r-'); title('Spline not-a knot') % Rappresentazione della spline not-a knot che approssima i dati
subplot(2,2,2); plot(L,T,'*',t,yp, 'b-.', x,y1,'yo'); title('Spline naturale') % Rappresentazione della spline naturale che approssima i dati
subplot(2,2,3); plot(L,T,'*',t,q, 'b', x,y2,'ko'); title('Interpolazione a tratti') % Rappresentazione del polinomio interpolante a tratti
s = polyfit(L,T,5); % Polinomio dei minimi quadrati di grado 5
yy = polyval(s,t); % Valuto il polinomio per la costruzione del grafico
y = polyval(s,x);
subplot(2,2,4); plot(L,T,'*',x,y,'ro', t, yy,'-'); title('Polinomio minimi quadrati di grado 5')
Spline parametrica e fitting interattivo
Lo script che segue ricopia i contorni di un'immagine mediante l'uso del fitting interattivo. L'uso dello script consiste nel segnare mediante l'uso del mouse, alcuni punti di contorno dell'immagine. Le curve sono poi ricostruite da spline interpolanti i nodi scelti.