在 Sympy 中生成勒让德多项式
Generating Legendre Polynomials in Sympy
我有一个项目,我想在其中使用一组关联的勒让德多项式。我想到了使用 sympy 为一组学位和订单生成代码。
我可以像文档中解释的那样计算特定值:http://docs.sympy.org/dev/modules/mpmath/functions/orthogonal.html#legenp
我无法获得多项式的系数。
>>> from sympy import Symbol
x
>>> x = Symbol('x')
>>> from sympy.mpmath import *
>>> legenp(1, 0, x)
TypeError: cannot create mpf from x
我对 sympy 或其他 CAS 都不是很有经验,所以我想一定有一种我不知道的方法可以做到这一点。
你的做法是错误的。来自 the documentation
勒让德多项式的系数可以使用 n 次泰勒展开来恢复:
>>> for n in range(5):
... nprint(chop(taylor(lambda x: legendre(n, x), 0, n)))
...
[1.0]
[0.0, 1.0]
[-0.5, 0.0, 1.5]
[0.0, -1.5, 0.0, 2.5]
[0.375, 0.0, -3.75, 0.0, 4.375]
我有一个项目,我想在其中使用一组关联的勒让德多项式。我想到了使用 sympy 为一组学位和订单生成代码。
我可以像文档中解释的那样计算特定值:http://docs.sympy.org/dev/modules/mpmath/functions/orthogonal.html#legenp
我无法获得多项式的系数。
>>> from sympy import Symbol
x
>>> x = Symbol('x')
>>> from sympy.mpmath import *
>>> legenp(1, 0, x)
TypeError: cannot create mpf from x
我对 sympy 或其他 CAS 都不是很有经验,所以我想一定有一种我不知道的方法可以做到这一点。
你的做法是错误的。来自 the documentation
勒让德多项式的系数可以使用 n 次泰勒展开来恢复:
>>> for n in range(5):
... nprint(chop(taylor(lambda x: legendre(n, x), 0, n)))
...
[1.0]
[0.0, 1.0]
[-0.5, 0.0, 1.5]
[0.0, -1.5, 0.0, 2.5]
[0.375, 0.0, -3.75, 0.0, 4.375]