Polinomios de Laguerre

Definición

Los Polinomios de Laguerre son las soluciones a la ecuación diferencial:

$$xy'' + (1 - x)y' + ny = 0$$

donde n es un entero positivo (para obtener soluciones no singulares). Alternativamente, se define con la ecuación $$L_n(x) = \frac{e^x}{n!} \frac{d^n(x^ne^{-x})}{dx^n} \text{ con } n = 0, 1, 2, 3...$$

Donde cada $L_n$ es un polinomio de Laguerre y una de las soluciones a la ecuación diferencial arriba descrita. Los primeros polinomios de Laguerre son:

$$\begin{array}{rl} L_0 &= 0 \\ L_1 &= -x + 1 \\ L_2 &= \frac{1}{2}(x^2-4x+2) \\ L_3 &= \frac{1}{6}(-x^3+9x^2-18x+6) \\ L_4 &= \frac{1}{24}(x^4 -16x^3+72x^2-96x+24) \end{array}$$

Los polinomios de Laguerre son ortogonales en el rango $(0, \infty)$ con la función de peso $e^{-x}$. Es decir:

$$ \int\limits_0^\infty e^{ – x}L_m(x) L_n(x) dx = \begin{cases} 0, & \text{si } m \ne n \\ 1, & \text{si } m = n \end{cases} $$

Polinomios ortogonales

Sean $p(x)$ y $q(x)$ polinomios definidos en el intervalo $[a, b]$. Estos polinomios son ortogonales si cumplen

$$ \int\limits_a^b p(x) \: q(x) \: w(x) \: dx = 0 $$

Donde $w(x)$ es una función de peso.

Función de peso, definición informal:

Una función de peso es una herramienta matemática usada al ejecutar una suma, integración o promedio para darle a algunos elementos más peso o influencia sobre el resultado que otros elementos del mismo conjunto. El resultado de la aplicación de dicha función de peso es una suma ponderada o promedio ponderado.

Ejemplo en código


In [2]:
# Ejemplo tomado de:
# http://www.physics.nyu.edu/pine/pymanual/html/chap9/chap9_scipy.html

import numpy as np
import matplotlib.pyplot as plt
import scipy.special # Note to self: leer documentación

fig = plt.figure(1, figsize=(25,14))

x = np.linspace(-5, 8, 256) # Crea un vector de 256 elementos entre -5 y 8

# numpy.polyval genera un polinomio con valores específicos
#
# For example, if
#     p = [2.0, 5.0, 1.0]
# polyval(p, x) generates the following quadratic polynomial: 
#     2x^2 + 5x +1
#
# SciPy’s special.legendre(n) and special.laguerre(n) functions 
# output the coefficients p needed in polyval to produce the 
# n-th-order Legendre and Laguerre polynomials, respectively.
#
# Documentación completa de numpy.polyval
# https://docs.scipy.org/doc/numpy/reference/generated/numpy.polyval.html#numpy.polyval

lg0 = np.polyval(scipy.special.laguerre(0),x)
lg1 = np.polyval(scipy.special.laguerre(1),x)
lg2 = np.polyval(scipy.special.laguerre(2),x)  
lg3 = np.polyval(scipy.special.laguerre(3),x)


ax6 = fig.add_subplot(326)
ax6.plot(x,lg0, x,lg1, x,lg2, x,lg3)
ax6.axhline(color="grey", ls="--", zorder=-1)
ax6.axvline(color="grey", ls="--", zorder=-1)
ax6.set_xlim(-5,8)
ax6.set_ylim(-5,10)
ax6.text(0.5, 0.9,'Polinomios de Laguerre', ha='center', va='top',
transform = ax6.transAxes)
ax6.text(7.0, 1.7, 'L0', ha='right', va='top')
ax6.text(4.0, -2.0, 'L1', ha='right', va='top', rotation=-20)
ax6.text(6.0, 6.0, 'L2', ha='right', va='top', rotation=45)
ax6.text(4.0, 3.0, 'L3', ha='right', va='top', rotation=20)
plt.show()


Enlaces externos