예제 #1
0
def bp(nu, theta, phi, sigma, l, sigmap, lp, i_n, i, delta):
    return (b(l, lp, i_n, i, delta, nu) * legendre(nu, cos(theta)) +
            1/(1 + delta**2) * cos(2 * phi) * assoc_legendre(nu, 2, cos(theta)) *
            (f(l, l, i_n, i, nu) * (-1)**sigma * kappa(nu, l, l) +
             (-1)**(l + lp) * 2 * delta * f(l, lp, i_n, i, nu) *
             (-1)**sigmap * kappa(nu, l, lp) +
             delta**2 * f(lp, lp, i_n, i, nu) *
             (-1)**sigmap * kappa(nu, lp, lp)))
예제 #2
0
def test_special_polynomials():
    assert mcode(hermite(x, y)) == "HermiteH[x, y]"
    assert mcode(laguerre(x, y)) == "LaguerreL[x, y]"
    assert mcode(assoc_laguerre(x, y, z)) == "LaguerreL[x, y, z]"
    assert mcode(jacobi(x, y, z, w)) == "JacobiP[x, y, z, w]"
    assert mcode(gegenbauer(x, y, z)) == "GegenbauerC[x, y, z]"
    assert mcode(chebyshevt(x, y)) == "ChebyshevT[x, y]"
    assert mcode(chebyshevu(x, y)) == "ChebyshevU[x, y]"
    assert mcode(legendre(x, y)) == "LegendreP[x, y]"
    assert mcode(assoc_legendre(x, y, z)) == "LegendreP[x, y, z]"
예제 #3
0
def test_Function():
    assert mcode(sin(x)**cos(x)) == "sin(x).^cos(x)"
    assert mcode(sign(x)) == "sign(x)"
    assert mcode(exp(x)) == "exp(x)"
    assert mcode(log(x)) == "log(x)"
    assert mcode(factorial(x)) == "factorial(x)"
    assert mcode(floor(x)) == "floor(x)"
    assert mcode(atan2(y, x)) == "atan2(y, x)"
    assert mcode(beta(x, y)) == 'beta(x, y)'
    assert mcode(polylog(x, y)) == 'polylog(x, y)'
    assert mcode(harmonic(x)) == 'harmonic(x)'
    assert mcode(bernoulli(x)) == "bernoulli(x)"
    assert mcode(bernoulli(x, y)) == "bernoulli(x, y)"
    assert mcode(legendre(x, y)) == "legendre(x, y)"
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
from matplotlib import animation, rc
from IPython.display import HTML
#init_printing(use_unicode=True)
#x, y, z, u, v, r = symbols('x y z, u, v, r')
from sympy.abc import x, y, r, n, k, m
#k, m, n = symbols('k m n', integer=True)
#f, step, potential = symbols('f step potential', cls=Function)
#var('n m x')
#theta = Symbol("theta")
#phi = Symbol("phi")

## Luego probamos que las definiciones funcionan correctamente con algunos ejemplos:

sp.legendre(3, x)  #sp se refiere a simpy.functions
print(sp.legendre(3, x))

## Podemos por ejemplo integrarlos (o diferenciarlos, o hacer otras operaciones con ellos), por ejemplo:

integrate(sp.legendre(5, x),
          x)  #integrate es una función que importamos desde sympy
print(integrate(sp.legendre(5, x), x))

##  Por ejemplo podemos probar una de las fórmulas más útiles para hacer integrales usando los polinomios de Legendre:dP_(l+1)/dx​​ − dP_(l−1)/dx​​ − l(l+1)P_l ​= 0.
## Solo se puede constatar la fórmula para valores particulares (no la sabe simplificar completamente). Poner cualquier valor entero positivo (>1) para k.

k = 5
diff(sp.legendre(k + 1, x), x) - diff(sp.legendre(k - 1, x),
                                      x) - (2 * k + 1) * sp.legendre(k, x)
#diff es una función importada desde sympy