0.2 Miscelânea — Geração dos Coeficientes do Polinômio de Legendre

Os Polinômios de Legendre, também conhecidos como coeficientes de Legendre, são os elementos de um conjunto formado pelas soluções da equação diferencial de Legendre. Os primeiros polinômios de Legendre são:

n \(P_n(x)\,\)
0 \(1\,\)
1 \(x\,\)
2 \(\begin{matrix}\frac12\end{matrix} (3x^2-1) \,\)
3 \(\begin{matrix}\frac12\end{matrix} (5x^3-3x) \,\)
4 \(\begin{matrix}\frac18\end{matrix} (35x^4-30x^2+3)\,\)
5 \(\begin{matrix}\frac18\end{matrix} (63x^5-70x^3+15x)\,\)
6 \(\begin{matrix}\frac1{16}\end{matrix} (231x^6-315x^4+105x^2-5)\,\)
7 \(\begin{matrix}\frac1{16}\end{matrix} (429x^7-693x^5+315x^3-35x)\,\)
8 \(\begin{matrix}\frac1{128}\end{matrix} (6435x^8-12012x^6+6930x^4-1260x^2+35)\,\)
9 \(\begin{matrix}\frac1{128}\end{matrix} (12155x^9-25740x^7+18018x^5-4620x^3+315x)\,\)
10 \(\begin{matrix}\frac1{256}\end{matrix} (46189x^{10}-109395x^8+90090x^6-30030x^4+3465x^2-63)\,\)

Esses polinômios podem ser gerados pela seguinte fórmula recursiva:

\(P_0(x) = 1\)
\(P_1(x) = x\)
\((n+1) P_{n+1}(x) = (2n+1) x P_n(x) – n P_{n-1}(x)\)


ou pela seguinte definição explícita:
\(P_n(x) = \sum_{k=0}^n a_k \cdot x^k\)

onde o coeficiente do polinômio \(a_n\) é
\(a_k = 2^n \cdot \binom{n}{k} \cdot \binom{\frac{n+k-1}2}{n}\)

Os primeiros polinômios de Legendre são ilustrados no gráfico abaixo

numerical

Implementação

def compute_legendre_polynomials_coeficients(n):
    """
    Compute the coefficients of the nth Legendre polynomial.
 
    [coefficients] = compute_legendre_polynomials_coeficients(n)
 
    INPUT:
      * n: order of the Legendre polynomial
 
    return: a list containing the polynomial coefficients of nth Legendre
            polynomial (ordered from the highest to lowest)
 
    Author: Pedro Garcia [sawp@sawp.com.br]
    see: http://www.sawp.com.br
 
    License: Creative Commons
             http://creativecommons.org/licenses/by-nc-nd/2.5/br/
 
    Jul 2012
    """
    b = 2.0 ** n
    B = binomial_coefficients
    a = [b * B(n, k) * B((n + k - 1) / 2.0, n) for k in xrange(0, n + 1)]
    a.reverse()
    return a

Disponível para download em http://www.sawp.com.br/code/misc/legendre_coefficients_generator.py

 

Copyright

Este documento é disponível sob a licença Creative Commons. As regras dos direitos de cópia deste conteúdo estão acessíveis em http://creativecommons.org/licenses/by-nc-nd/2.5/br/.

References

[1] http://mathworld.wolfram.com/LegendrePolynomial.html