Sunteți pe pagina 1din 3

Legendre

x=input('ingrese el vector:')
y=input('ingrese el vectot:')
inc=input('ingrese el valor a interpolar')
n=length(x)
val=inc
valy=0
for i=1:n
producto=y(i)
for j=1:n
if i<>j
producto=producto*(val-x(j))/((x(i)-x(j))*(val-x(i)))
end
end
valy=valy+-(producto)

end
printf('f aproximado sera %6.2f',valy)

legendre 2
x=input('ingrese el vector:')
y=input('ingrese el vectot:')
inc=input('ingrese el valor a interpolar')
n=length(x)
val=inc
valy=0
for i=1:n
producto=y(i)
for j=1:n
if i<>j
producto=producto*(val-x(i))/((x(j)-x(i)))
end
valy=y(1)+(producto)
end
end
printf('f aproximado sera %6.2f',valy)

legendre 3
function [p]=lagrange(X, Y)
X=input('ingrese el vector:')
Y=input('ingrese el vector:')
inc=input('ingrese el valor a interpolar')
n=length(X)
x=poly(0,"x");p=0;
for i=1:n; L=1;
for j=[1:i-1,1+1:n];
L=L*[x-X(j)]/[X(i)-X(j)];
end
p=p+L*Y(i);
end
endfunction
segmentaria cubica
function [a, b, c, d]=spline3Original_Consultar(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.5:X(1,i+1);
m=length(x);
fprintf('Siguientes %1.0f nodos de x \n',m);
disp(x)
y=a(i)+b(i)*(x-X(1,i))+c(i)*(x-X(1,i)).^2+d(i)*(x-X(1,i)).^3;
fprintf('Imagenes de los %1.0f nodos de x \n',m);
disp(y)

hold on;
grid on;
plot(x,y,'b'); %Plotea todos los segmentos
end

for i=1:n;
hold on;
plot (X(1,i),X(2,i),'*','MarkerEdgeColor','r','LineWidth',1);
title('Interpolación por "splines" de orden 3.');
end
newton progesiva
clc
function newtonprogresiva()
endfunction
x=input('ingrese valores de x');
y=input('ingrese valores de y');
val=input('ingrese el valor para interpolar');
n=length(x);
for i=1:n
if x(i+1)>val then
m=(val-x(i))/(x(i+1)-x(i));
valy=y(i)+m*(y(i+1)-y(i))+(m*(m-1)*(y(i+2)-2*y(i+1)+y(i)))/2;
disp(i+1,i,valy)
break
end
end

S-ar putea să vă placă și