Lagrange.sce
// Interpolación polinomial de Lagrange
// Ajusta un polinomio de orden n-1 a un
// conjunto de n datos e interpola
// para el valor dado de x
clear
disp("Interpolación polinomial de Lagrange");
// Pedir datos
n=input("Número de datos? n=");
x=zeros(n,1);
y=zeros(x);
disp ("Introduzca los datos:");
for i=1:n
x(i)=input("x"+string(i)+"=");
y(i)=input("y"+string(i)+"=");
end
// Pedir el valor de x para interpolar
xint=input("Valor para interpolar: x=");
// Cálculo de los factores de interpolación
// Se toma valor inicial 1 porque es un producto
L=ones(x);
for i=1:n
for j=1:n
if j<>i then
L(i)=L(i)*(xint-x(j))/(x(i)-x(j));
end
end
end
// Cálculo del valor interpolado
suma=0;
for i=1:n
suma=suma+L(i)*y(i);
end
// Reportar el valor interpolado
disp("y = " + string(suma));