Professional Documents
Culture Documents
clear;
clc
X=input('Ingrese los valores de x=');
Y=input('Ingrese los valores de f(x)=');
DF=input('Ingrese los valores de la derivada de f(x)=');
n=length(X);
Q=zeros(2,n);
%Hermite
%Algoritmo del libro de Burden transcrito en parte por fuente annima
for i=1:n
z(2*i-1)=X(i);
z(2*i)=X(i);
Q(2*i-1,1)=Y(i);
Q(2*i,1)=Y(i);
Q(2*i,2)=DF(i);
if i~=1
Q(2*i-1,2)=(Q(2*i-1,1)-Q(2*i-2,1))/(z(2*i-1)-z(2*i-2));
end
end
for i=3:2*n
for j=3:i
Q(i,j)=(Q(i,j-1)-Q(i-1,j-1))/(z(i)-z(i-j+1));
end
end
syms x
Fx=Q(1,1);
%Diferencias divididas
for p=1:numel(X)-1
L=1;
%Multiplicacin de los polinomios
for k=1:p
L=L*(x-X(k));
end
Fx=Fx+L*Q(p+1,p+1);
end
%Polinomio resultante
Fx
n=length(X);
Q=zeros(2,n);
for i=1:n
z(2*i-1)=X(i);
z(2*i)=X(i);
Q(2*i-1,1)=Y(i);
Q(2*i,1)=Y(i);
Q(2*i,2)=DF(i);
if i~=1
Q(2*i-1,2)=(Q(2*i-1,1)-Q(2*i-2,1))/(z(2*i-1)-z(2*i-2));
end
end
for i=3:2*n
for j=3:i
Q(i,j)=(Q(i,j-1)-Q(i-1,j-1))/(z(i)-z(i-j+1));
end
end
syms x
Fx=Q(1,1);
%Diferencias divididas
for p=1:numel(X)-1
L=1;
for k=1:p
L=L*(x-X(k));
end
Fx=Fx+L*Q(p+1,p+1);
end
val=eval(Fx);
disp(val);