domingo, 13 de noviembre de 2011



El programa para dibujar al Snoopy es el siguiente:

function [a,b,c,d]=spline3(X)

n=length(X(1,:));

for i=1:n;

a(i)=X(2,i);

end

for i=1:n-1;

h(i)=X(1,i+1)-X(1,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(1,i+1)-X(1,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;

x=X(1,i):0.1:X(1,i+1);

y=a(i)+b(i)*(x-X(1,i))+c(i)*(x-X(1,i)).^2+d(i)*(x-X(1,i)).^3;

hold on;

plot(x,y,'b');

end

for i=1:n;

hold on;

plot (X(1,i),X(2,i),'*','MarkerEdgeColor','r','LineWidth',1);

title('Interpolación por spline');

end

Como enviar los datos en el COMMAND WINDOWS (es en el matlab)

z=[1 2 5 6 7 8 10 13 17 ; 3 3.7 3.9 4.2 5.7 6.6 7.1 6.7 4.5]

[a,b,c,d]=spline3(x)

Explicación

Como ya sabemos enviamos los valores de x e y, en este caso enviamos los puntos de x e y en la variable z, de la siguiente manera:

z=[1 2 5 6 7 8 10 13 17 ; 3 3.7 3.9 4.2 5.7 6.6 7.1 6.7 4.5]

Los puntos de x son : 1 2 5 6 7 8 10 13 17

Los puntos de y son : 3 3.7 3.9 4.2 5.7 6.6 7.1 6.7 4.5

Después llamamos al programa de la siguiente manera

[a,b,c,d]=spline3(x)

donde las variables a,b,c,d son matrices donde se almacenaran los valores de los splines.

y aparecerá una ventana en la cual se dibujan los puntos.

OBSERVACION:

Tenemos que hacer este mismo procedimiento para todas las curvas de la figura, ya que cada curva tendrá sus puntos para ser dibujados.

Datos para dibujar el Snoopy

Los datos que enviaremos son los siguientes:

Para la curva 1 los datos son:

z=[1 2 5 6 7 8 10 13 17 ; 3 3.7 3.9 4.2 5.7 6.6 7.1 6.7 4.5]

Para la curva 2 los datos son:

z=[17 20 23 24 25 27 27.7 ; 4.5 7 6.1 5.6 5.8 5.2 4.1]

Para la curva 3 los datos son:

z=[27.7 28 29 30 ; 4.1 4.3 4.1 3]

Para la curva 4 los datos son:

z=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ; 3 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.3 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.8]

Para la curva 5 los datos son:

z=[17 18 19 20 21 22 23 23.5 24 25 26 27 28 ; 2.8 2.5 2.5 2.5 2.5 2.5 2.5 2.3 2.5 2.5 2.5 2.5 2.8]

Para la curva 6 los datos son:

z=[28 29 30 ; 2.8 2.5 3]


<!--[if gte mso 9]> Normal 0 21 false false false ES-BO X-NONE X-NONE MicrosoftInternetExplorer4

No hay comentarios:

Publicar un comentario