You are on page 1of 3

Se creo el código ILT con el que se realiza una interpolación de Lagrange buscando los mejores

valores para interpolar dentro de una tabla.

Inicialmente, se crea las tablas de los valores de x y f(x) en forma de vectores. Después, dichos
valores se introducen a una función junto con el valor de x que se desea evaluar. La función hace
luego dos procedimientos. Primero, hace un loop hacia abajo en la tabla hasta encontrar el
intervalo en el que se localiza la incógnita. Después se aplica la interpolación de Lagrange para
determinar el valor apropiado de f(x). De igual manera, el código de la función se da cuenta
cuando el usuario pide un valor fuera del rango de las x. En esos casos, la función muestra
mensajes de error. El programa se testeo para f(x) = ln x con los datos x = 1, 2, …, 10.

% Funcion para hacer interpolaciones de Lagrange buscando valores en una tabla : ILT

function suma=ILT(x,y,xi)

suma=0;

n=length(x);

BAJO=0;

ALTO=n+1;

for i=1:n

if xi>x(i)

BAJO=i;

else

%Cuando el primer numero que es mayor que el valor deseado se encuentra el bucle finaliza

ALTO=i;

break;

end

end

%Se chequea que el valor este comprendido en el rango de valores del vector x

if BAJO==0 || ALTO==n+1
printf('Error: valor fuera del rango de valores de x \n');

return;

end

%Se crea el polinomio de interpolacion cubica de Lagrange y se evalua

for i=-1:2

prod=y(BAJO+i);

for j=-1:2

if i~=j

prod=prod*(xi-x(BAJO+j))/(x(BAJO+i)-x(BAJO+j));

end

end

suma=suma+prod;

end

Pantallazos de la prueba

Se crean los dos vectores de datos X y Y

Después, se hace la prueba con un valor de X menor al valor mínimo del vector creado, X=0.3. Se
muestra el siguiente mensaje.
A continuación, se prueba un X mayor al valor máximo del vector creado, X=12. Se muestra el
siguiente mensaje.

Luego, si se prueba un valor de X que este entre los valores máximo y mínimo, X=4.8 resultado

El valor verdadero del logaritmo natural de 4.8 es 1.5686. Así que, el error de la aproximación será
del 0,011 %, lo cual se considera bastante aceptable.

You might also like