Professional Documents
Culture Documents
NumericoChapra18 22
NumericoChapra18 22
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
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
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.