UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE CIENCIAS PURAS Y NATURALES
CARRERA DE INFORMATICA
DESAFIO
EXTRA
BATMAN
UNIV. NINA HUACANI
STEVE BRANDOM
LIC. BRIGIDA ALEXANDRA
CARBAJAL BLANCO
ANALISIS
NUMERICO
INTERPOLACION POR EL METODO DE SPLINES
Un spline que es definido en un intervalo que es dividido en n subintervalos
nesecitaran 4n constantes para construir un spline cubico interpolador para
una funfion f dada estara definida pr el polinomio:
podemos simplificarla de la siguiente manera
definimos las siguientes matrices
para las demas variables
PROGRAMA EN MATLAB
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
Ingresamos los puntos:
b=[3 5 6 8 10 12 13 13 15 19 22 24 26 25 23 22 19 17 16 15 15 13
11 9 8 7 5 1 0 -4 -6 -8 -10 -11 -12 -13 -14 -17 -18 -22 -24 -25 -27 -25
-23 -21 -19 -15 -12 -10 -7 -4 -1 -1 -2 0 1 2 3 3;3 -1 -2 0 4 8 12 16 15
15 15 15 16 14 10 6 5 3 1 -3 -7 -8 -10 -12 -14 -18 -16 -14 -14 -15 -17
-15 -13 -12 -12 -12 -13 -15 -15 -13 -12 -12 -13 -11 -8 -5 0 -2 -4 -5 -6
-6 -6 -3 1 -1 0 0 1 3]
Grafica: