vuoi
o PayPal
tutte le volte che vuoi
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.
% plotting interattivo con ginput
%fisso gli assi
A=[];
B=[];
axis square
a=imread('ying-yang.jpg');
image(a);
hold on
% lista di nodi iniziale vuota.
% inserimento nodi
disp('bottone sinistro mouse aggiungi un nodo')
disp('bottone destro mouse aggiunge ultimo nodo')
bottone = 1;
while bottone==1 %il ciclo permette di ricopiare più di una curva, arrestandosi solo ad una doppia pressione del tasto destro del mouse
xx = [];
yy=[];
n = 0;
while bottone == 1 %il ciclo prende interattivamente i punti per costruire la curva
[xi,yi,bottone] = ginput(1);
plot(xi,yi,'ro')
n = n+1;
xx=[xx xi];
yy= [yy yi];
end
% Interpola con la spline
t = 1:n;
s = spline(t,[xx;yy]);
tnew = linspace(1,n,100);
xnew = ppval(s(1),tnew);
ynew = ppval(s(2),tnew);
plot(xnew,ynew,'b-')
end
= spline(t,xx);%interpolazione parametrica mediante spline delle ascisse
r = spline(t,yy);%interpolazione parametrica con spline delle ordinate
tt=linspace(t(1),t(n),2000);%vettore dei punti di valutazione per plottare le curve
%valuto le spline
u=ppval(s,tt);
v=ppval(r,tt);
%Le matrici A e B memorizzano tutte le curve interpolate
A=[u,A];
B=[v,B];
% fa il grafico delle splines interpolanti
b=plot(u,v,'b');
disp('Premi il bottone DESTRO per TERMINARE il programma')
disp('Premi il bottone SINISTRO per CONTINUARE e per aggiungere un altra curva')
clc
[xi,yi,bottone] = ginput(1);
end
hold off
plot(A,-B,'b.');%disegna l'immagine
clear all
'Esempio significativo di smoothing dei dati'
'In un esperienza di laboratorio, si osserva il fenomeno del moto uniformemente accelerato. Una slitta 'tirata' da un peso in caduta libera, si sposta lungo una guida via a cuscino d'aria. Mediante l'uso di apposite fotocellule, vengono registrati i seguenti dati,
in 0 0.1500 0.3000 0.4500 0.6000 0.7500 0.9000 1.0500 metri
Il grafico orario viene costruito effettuando lo smoothing dei dati mediante un polinomio di secondo grado, trovandoci nella situazione nota di moto uniformemente accelerato.
p=0:0.15:1.05; %posizione delle fotocellule
es=polyfit(t,p,2); %polinomio dei minimi quadrati di secondo grado
Test delle routine matlab relative al calcolo degli integrali
Integrale di: fun.m
usando la routine quad (quadratura adattativa di Simpson) e con massima precisione possibile
1433•usando la routine quad (quadratura adattativa di Simpson) e con tolleranza uguale a 5[a b]=quad('fun',0,12,5)a =1.791121485716642e+007b =69
Integrale doppio di:fun2.mfunction z=fun2(x,y)z=1./(x+y).^2;•usando la routine dblquad e massima precisione:dblquad('fun2', 0,3,pi,8)ans =0.351900562388246
Integrale doppio di:fun2.mfunction z=fun2(x,y)z=1./(x+y).^2;•usando la routine dblquad e tolleranza uguale a quattro:dblquad('fun2', 0,3,pi,8,4)ans =0.351901420445067
Integrale triplo di:fun3.mfunction w=fun3(x,y,z)w=sqrt(x.^2+y.^2+z.^2);•usando la routine triplequad e massima tolleranza:>> triplequad('fun3', 23,-1,1,3.6,6,7)ans =-8.560982871693459e+002
Integrale triplo di:fun3.mfunction w=fun3(x,y,z)w=sqrt(x.^2+y.^2+z.^2);•usando la routine triplequad e tolleranza uguale a 2