You are on page 1of 3

clear all;

x=input('Ingrese los valores de x=');


F=input('Ingrese los valores de F(x)=');
DF=input('ingrese la derivada de F(x)=');
n=length(x);
Q=zeros(2,n);
for i=1:n
z(2i-1)=x(i);
z(2i)=x(i);
Q(2i-1,1)=F(x(i));
Q(2i,1)=F(x(i));
Q(2i,2)=DF(x(i));
if i~=1
Q(2i-1,2)=(Q(2i-1,1)-Q(2i-2,1))/(z(i)-z(i-j+1));
end
end
for i=3:2n
j=3:i
Q(i,j)=(Q(i,j-1)-Q(i-1,j-1))/(z(i)-z(i-j+1));
end
x(i)=x(i)';
[x(i),Q]

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

X=input('Ingrese los valores de x='); % en forma de vector

Y=input('Ingrese los valores de f(x)='); % en forma de vector

DF=input('Ingrese los valores de la derivada de f(x)='); % en forma de vector

x=input(Ingrese el valor a interpolar = );

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;

%Multiplicacin de los polinomios

for k=1:p

L=L*(x-X(k));

end

Fx=Fx+L*Q(p+1,p+1);

end

%Aproximacion del Polinomio resultante

val=eval(Fx);

disp(val);

You might also like