martes, 12 de agosto de 2025

Polinomios de Laguerre con wxMaxima y Python

Los polinomios de Laguerre son unos polinomios conocidos principalmente (aunque no únicamente) por ser soluciones de la ecuación diferencial

x · y'' + (1 - x) · y' + n · y = 0 

Su nombre se debe al matemático francés Edmond Nicolas Laguerre, quien publicó muchos artículos, principalmente en las áreas de geometría y análisis.


 Una de las formas de calcular los polinomios de Laguerre viene dada por la siguiente expresión:

 

 También se pueden calcular de manera recursiva:

 ;   ;  

En wxMaxima podemos calcular muy fácilmente los polinomios de Laguerre utilizando la función laguerre().

Ejemplo de cálculo de los primeros 5 polinomios de Laguerre:


 En Python también existen maneras de calcular los polinomios de Laguerre, utilizando funciones de las librerías NumPy o SciPy.

A modo de ejemplo, el siguiente código calcula y representa gráficamente los primeros polinomios de Laguerre:

# Cálculo y representación gráfica de los polinomios de Laguerre
# Félix Rodríguez Díaz
# 11 de agosto de 2025

import matplotlib.pyplot as plt
from scipy.special import laguerre
from numpy import arange
from numpy.polynomial.laguerre import lag2poly
from numpy.polynomial import Polynomial

# Definimos la variable n_polinomios con la cantidad de polinomios que
# queremos calcular (desde grado 0 hasta grado n_polinomios-1)
n_polinomios = 5

# Calculamos los polinomios de Laguerre con SciPy
laguerre_scipy = [laguerre(z) for z in range(n_polinomios)]
# Los mostramos por pantalla
print("Polinomios de Laguerre calculados con SciPy")
for lag_s in laguerre_scipy:
    print(lag_s)

# Calculamos los polinomios de Laguerre con SciPy
# Dado que lag2poly devuelve los coeficientes utilizamos Polynomial
# para crear el correspondiente polinomio
laguerre_numpy = [Polynomial(lag2poly([0] * i + [1])) for i in range(n_polinomios)]
# Los mostramos por pantalla
print("\nPolinomios de Laguerre calculados con NumPy")
for lag_n in laguerre_numpy:
    print(lag_n)

# Representamos gráficamente los polinomios
x = arange(-1, 3.5, 0.01)
fig, ax = plt.subplots()
ax.set_title('Polinomios de Laguerre $L_n$')
for n in range(n_polinomios):
    # Utilizamos por ejemplo los calculados con SciPy
    ax.plot(x, laguerre_scipy[n](x), label=f"$L_{n}$")
    # Si quisiéramos utilizar los calculados con NumPy:
    #ax.plot(x, laguerre_numpy[n](x), label=f"$L_{n}$")
plt.legend(loc='best')
plt.grid(True)
plt.show() 

 Este es el resultado de ejecutarlo:

Los polinomios asociados/generalizados de Laguerre se utilizan en campos como por ejemplo la mecánica cuántica.


 

 

 

 

No hay comentarios: