lunes, 14 de noviembre de 2011

Spline Snoopy


programa
function splinem(mx,my,nk)
m=length(nk);
for z=1:m
for t=1:nk(z)
x(t)=mx(z,t);
y(t)=my(z,t);
end
n=nk(z);

for i=1:n;
a(i)=y(i);
end

for i=1:n-1;
h(i)=x(i+1)-x(i);
end

for i=2:n-1;
alfa(i)=3/h(i)*(a(i+1)-a(i))-3/h(i-1)*(a(i)-a(i-1));
end

l(1)=1;
mu(1)=0;
z(1)=0;

for i=2:n-1;
l(i)=2*(x(i+1)-x(i-1))-h(i-1)*mu(i-1);
mu(i)=h(i)/l(i);
z(i)=(alfa(i)-h(i-1)*z(i-1))/l(i);
end

l(n)=1;
z(n)=0;
c(n)=0;

for i=n-1:-1:1;
c(i)=z(i)-mu(i)*c(i+1);
b(i)=(a(i+1)-a(i))/h(i)-h(i)*(c(i+1)+2*c(i))/3;
d(i)=(c(i+1)-c(i))/(3*h(i));
end

for i=1:n-1;
xf=x(i):0.1:x(i+1);
yf=a(i)+b(i)*(xf-x(i))+c(i)*(xf-x(i)).^2+d(i)*(xf-x(i)).^3;
%if(x(i)<=x0 & x0<=x(i+1))
% y0=y(i)+b(i)*(x0-x(i))+c(i)*((x0-x(i))^2)+d(i)*((x0-x(i))^3);
%end
hold on;
plot(xf,yf,'b');
end

for i=1:n;
hold on;
plot (x(i),y(i),'b','MarkerEdgeColor','r','LineWidth',1);
end
end
p=0:0.1:0.5;
h=p.*20;
plot(p,h,'.');
plot(23,4.6,'.');
end
LA MATRIZ QUE GUARDA LOS DATOS DEL SNOOPY
function [mx,my,nk]=snopyb()
mx(1,:)=[1.3 1.6 2.6 0 0];
mx(2,:)=[2.6 5.1 0 0 0];
mx(3,:)=[5.1 6.2 7.8 11 0];
mx(4,:)=[11 13 15.5 17 0];
mx(5,:)=[17 19 22 23.8 0];
mx(6,:)=[23.8 25.3 28 0 0];
mx(7,:)=[1.3 1.6 2 0 0];
mx(8,:)=[2 7.3 0 0 0];
mx(9,:)=[7.3 8 8.7 0 0];
mx(10,:)=[8 8.4 8.7 0 0];
mx(11,:)=[8 8.9 10.2 11.4 13.1];
mx(12,:)=[13.1 13.4 13.8 0 0];
mx(13,:)=[13.8 14.2 14.6 0 0];
mx(14,:)=[14.6 17.3 0 0 0];
mx(15,:)=[17.3 17.8 18.7 0 0];
mx(16,:)=[18.7 22.4 23.5 0 0];
mx(17,:)=[23.5 23.9 24.1 0 0];
mx(18,:)=[24.1 24.6 25 0 0];
mx(19,:)=[25 26.2 27 27.6 28];
mx(20,:)=[28 28.5 28.8 0 0];
mx(21,:)=[27.6 28.4 28.8 0 0];
mx(22,:)=[27.8 29.2 29.9 0 0];
mx(23,:)=[29.2 29.6 29.9 0 0];
mx(24,:)=[28.8 29.1 29.2 0 0];
mx(25,:)=[28.3 28.7 29.2 0 0];
mx(26,:)=[26.6 28.6 0 0 0];
mx(27,:)=[27 29 0 0 0];
mx(28,:)=[27 28.6 0 0 0];
mx(29,:)=[26.6 28 0 0 0];
mx(30,:)=[26.6 27.8 0 0 0];
mx(31,:)=[24.9 25 25.1 0 0];
mx(32,:)=[23.9 24 24.1 0 0];
mx(33,:)=[23 23.4 23.5 0 0];
mx(34,:)=[19.8 21.6 23.4 24.6 24.9];
mx(35,:)=[17 19 20.6 0 0];
mx(36,:)=[20.2 20.3 20.6 0 0];
mx(37,:)=[20.2 20.4 20.5 0 0];
mx(38,:)=[18.7 19.4 20.2 20.5 0];
mx(39,:)=[17 16.8 16.9 17.3 0];
mx(40,:)=[14.6 14.7 14.8 0 0];
mx(41,:)=[13.6 13.7 13.8 0 0];
mx(42,:)=[12.8 13 13.1 0 0];
mx(43,:)=[11.5 12.7 14 14.8 0];
mx(44,:)=[11.5 11.6 12.1 12.7 0];
mx(45,:)=[11.1 11.2 12.5 12.7 0];
mx(46,:)=[6.2 11.1 12.7 0 0];
mx(47,:)=[22.6 23 23.5 23.8 0];
mx(48,:)=[22.4 22.8 23.5 24.1 0];
mx(49,:)=[22.2 22.9 23.6 24.2 0];
mx(50,:)=[22.4 22.8 23.1 0 0];
mx(51,:)=[22.4 23.2 23.7 0 0];
mx(52,:)=[23.1 23.2 23.3 0 0];
mx(53,:)=[22.6 22.8 23.1 0 0];
mx(54,:)=[15 16.3 16.8 0 0] ;
mx(55,:)=[14.4 14.7 15 0 0];
mx(56,:)=[14.8 14.6 14.4 0 0];




my(1,:)=[3.5 3.8 4 0 0];
my(2,:)=[4 4.1 0 0 0];
my(3,:)=[4.1 4.4 6.1 7.5 0];
my(4,:)=[7.5 7 5.7 5.1 0];
my(5,:)=[5.1 7 7 5.7 0];
my(6,:)=[5.7 5.9 4 0 0];
my(7,:)=[3.5 3.1 3 0 0];
my(8,:)=[3 3.1 0 0 0];
my(9,:)=[3.1 3.3 3.5 0 0];
my(10,:)=[2.4 2.9 3.5 0 0];
my(11,:)=[2.4 1.9 2.1 2.2 1.9];
my(12,:)=[1.9 1.8 1.9 0 0];
my(13,:)=[1.9 1.8 2 0 0];
my(14,:)=[2 2.1 0 0 0];
my(15,:)=[2.1 1.6 1.9 0 0];
my(16,:)=[1.9 1.4 1.5 0 0];
my(17,:)=[1.5 1.4 1.5 0 0];
my(18,:)=[1.5 1.4 1.6 0 0];
my(19,:)=[1.6 1.6 2 2.5 4];
my(20,:)=[4.3 4 3.4 0 0];
my(21,:)=[2.4 2.7 3.4 0 0];
my(22,:)=[4.6 4 3 0 0];
my(23,:)=[2.6 2.7 3 0 0];
my(24,:)=[3.2 2.9 2.6 0 0];
my(25,:)=[2.6 2.4 2.6 0 0];
my(26,:)=[4 5.8 0 0 0];
my(27,:)=[4 5.4 0 0 0];
my(28,:)=[3.5 2.5 0 0 0];
my(29,:)=[3.4 2.1 0 0 0];
my(30,:)=[3 1.8 0 0 0];
my(31,:)=[2.5 2 1.6 0 0];
my(32,:)=[2 1.7 1.5 0 0];
my(33,:)=[1.8 1.6 1.5 0 0];
my(34,:)=[2.8 2.67 2.8 2.9 2.5];
my(35,:)=[4.9 6.6 7 0 0];
my(36,:)=[6 6.6 7 0 0];
my(37,:)=[6 5.5 4.8 0 0];
my(38,:)=[1.9 2.4 3.6 4.8 0];
my(39,:)=[4.9 4.2 2.9 2.1 0];
my(40,:)=[2 2.3 2.7 0 0];
my(41,:)=[2.7 2.4 1.9 0 0];
my(42,:)=[2.6 2.3 1.9 0 0];
my(43,:)=[3.1 3.3 3.2 2.6 0];
my(44,:)=[3.1 3.6 4.1 4.8 0];
my(45,:)=[6.4 6.3 5.7 4.8 0];
my(46,:)=[4.4 6.4 4.8 0 0];
my(47,:)=[4 3.8 3.9 4.4 0];
my(48,:)=[3.8 3.6 3.7 4.2 0];
my(49,:)=[3.6 3.2 3.4 4 0];
my(50,:)=[4.7 5.5 5.6 0 0];
my(51,:)=[4.7 4.9 5.3 0 0];
my(52,:)=[4.3 4.6 4.9 0 0];
my(53,:)=[4.7 4.4 4.3 0 0];
my(54,:)=[4.6 4.4 5.1 0 0];
my(55,:)=[5.1 4.9 4.5 0 0];
my(56,:)=[6 5.6 5.1 0 0];

nk=[3 2 4 4 4 3 3 2 3 3 5 3 3 2 3 3 3 3 5 3 3 3 3 3 3 2 2 2 2 2 3 3 3 5 3 3 3 4 4 3 3 3 4 4 1 3 4 4 4 3 3 3 3 3 3 3];

end

No hay comentarios:

Publicar un comentario