Grupo de

matemáticas
aplicadas e
ingeniería
Algoritmo en MATLAB para trazador cúbico.

Por: Carlos Armando De Castro P.

El siguiente algoritmo recibe un número arbitrario de pares de datos en la forma de una matriz de 2*n,
donde las abcisas se encuentran en la primera fila (o renglón) y las ordenadas en la segunda fila de la
matriz, devolviendo los coeficientes de los polinomios cúbicos que interpolan a los datos y además entrega
la gráfica del trazador cúbico ("spline" de orden 3):
 
 
function [a,b,c,d]=spline3(X)
%Pasos básicos del algoritmo obtenidos del libro Análisis Numérico de
%Richard Burden, 2a. Edición, Grupo Editorial Iberoamérica.
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;

https://sites.google.com/site/matematicasingenieria/spline_orden_3

Page 1 / 2

'LineWidth'.1371 4.(6.X(2.3).(7.6455 8.2).'MarkerEdgeColor'.(5.9196 -3.8495 1.4).i).0567 -4.     title('Interpolación por "splines" de orden 3.b]=spline3(X) Y el programa entrega los resultados: a = 0 3 4 -6 2 4 0 4 3 b = 2.(8.3)}.4). para los datos {(1.9398 c = 0 1. end     Por ejemplo.0969 10.9097 0 d = 0.6388 -5.0). >>[m.google.7826 0.'*'.6194 -5.3357 -1.(2.i).4326 18.8582 -13.    plot (X(1.1). se escribe en el Command Window: >>X=[1 2 3 4 5 6 7 8 9.9699       Análisis Numérico   Sign in | Report Abuse | Print Page | Remove Access | Powered By Google Sites https://sites.3806 4.4281 -4.').(9.2107 2.com/site/matematicasingenieria/spline_orden_3 Page 2 / 2 .0).(3.(4.8960 8.'r'.9763 1.7683 -8.4). 0 3 4 -6 2 4 0 4 3].-6).2388 -7.8723 -8.

Sign up to vote on this title
UsefulNot useful