猿问

使用 Sympy 进行代数递归

我想获得多项式的代数项,该多项式可以通过使用 SymPy 递归定义。


作为使用 Maple 的示例,将 Hermite 多项式定义为


H(0,x):=1;

H(1,x):=2*x;

for n from 1 to 6 do

    H(n_1,x):= 2*x*H(n,x) - 2*n*H(n-1,x);

    print( simplify(%) );

end do:

这产生了所需的代数项,但是,我在 SymPy 中找不到做同样事情的方法。请问你能帮忙吗?


忽然笑
浏览 175回答 1
1回答

慕村225694

就像在 Maple 中一样,您可以循环,但在这里使用函数似乎是合理的。您可以使用标准的 Python 函数:def coefs(x):    m = Matrix([1, 2*x, 0 ,0, 0, 0])    for k in range(3):        m[k+2] = -2*(k+1)*m[k]+2*x*m[k+1]        print(k)    return m当然,如果您需要,您可以在函数内进行简化。但是,由于这可能导致无法取消的表达式,因此我只会在脚本底部简化一次。
随时随地看视频慕课网APP

相关分类

Python
我要回答