Está en la página 1de 4

Taller de Interpolación Polinomial de Lagrange

Problema
Es frecuente que en los análisis avanzados de ingeniería surjan funciones de Bessel, como en el estudio
de campos eléctricos. Antiguamente, dichas funciones por lo general no eran susceptibles de evaluarse en
software común y, por ello, no es raro que estén compiladas en tablas matemáticas estándar como la siguiente.

Ajuste polinomios de varios grados para interpolar en valores de x que no estén en la tabla. Consulte la función
de Bessel en Matlab para comparar con los polinomios dados.

Procedimientos
Primero realizando la grafica

format longG
datx = [1.8, 2, 2.2, 2.4, 2.6];
datJ = [0.5815, 0.5767, 0.556, 0.5202, 0.4708];
plot(datx, datJ, "*")

Para cada valor de la abscisa en los datos, una función polinmial que tiene el valor de 1 en ese valor de la
abscisa y cero en los demás.

1
L1 = @(x) (x - datx(2)) .* (x - datx(3)) .* (x - datx(4)) .* (x - datx(5));
L1 = @(x) L1(x) / L1(datx(1));
L2 = @(x) (x - datx(1)) .* (x - datx(3)) .* (x - datx(4)) .* (x - datx(5));
L2 = @(x) L2(x) / L2(datx(2));
L3 = @(x) (x - datx(1)) .* (x - datx(2)) .* (x - datx(4)) .* (x - datx(5));
L3 = @(x) L3(x) / L3(datx(3));
L4 = @(x) (x - datx(1)) .* (x - datx(2)) .* (x - datx(3)) .* (x - datx(5));
L4 = @(x) L4(x) / L4(datx(4));
L5 = @(x) (x - datx(1)) .* (x - datx(2)) .* (x - datx(3)) .* (x - datx(4));
L5 = @(x) L5(x) / L5(datx(5));

Usando las propiedades de cada polinomio recién construido, definimos el polinomio de Lagrange

P = @(x) datJ(1) * L1(x) + datJ(2) * L2(x) + datJ(3) * L3(x) + datJ(4) * ...


L4(x) + datJ(5) * L5(x);
fplot(P, [1.8,2.6])
hold on
plot(datx,datJ,"*")
legend("Polinomio de Lagrange", "Datos")
xlabel("x"); ylabel("J");
grid
hold off

Por lo tanto, para interpolar en valores de x que no estén en la tabla se deben imprimir.

disp(P(1.9))

0.58111015625

2
disp(P(2.15))

0.562633837890625

Haciendo la comparación la función de Bessel, tenemos que:

n=5;
f=@(x) sqrt(2./(pi*x)).*cos(x-n*pi/2-pi/4);
k=0:5;
hold on
fplot(@(x) besselj(n,x),[1,3])
fplot(f,[1,3])
r=(2*k+1)*pi/2+n*pi/2+pi/4; %ceros coseno
plot(r,0,'o','markersize',3,'markeredgecolor','r','markerfacecolor','r')
hold off
legend('J_n(x)','cos(x)')
xlabel('x')
ylabel('J_n(x)')
title('Funciones J_n(x) de Bessel')
grid on
hold off

Conclusión

3
Al hacer la comparación de los polinomios por el Método de Interpolación de la Lagrange con la función de
Bessel los polinomios concuerdan y se puede concluir que

el Método de Interpolación de la Lagrange en este caso es óptimo para determinar cualquier valor de x que no
aparezca en la tabla.

También podría gustarte