写一个递归函数来查找hermite多项式

时间:2016-11-21 20:44:24

标签: python-2.7 recursion

#我有Hermite多项式的递归关系:

Hn+1(x)=2xHn(x)−2nHn−1(x), n≥1,

H0(x)=1, H1(x)=2x.

我需要使用python 2.7为任何Hermite多项式Hn(x)写def hermite(x,n)

并在区间x∈[-1,1]上绘制H5(x)图。

3 个答案:

答案 0 :(得分:1)

这里递归很简单,因为公式给出了它。只是一个小陷阱:你计算Hn(x),而不是Hn + 1(x)所以将1减去所有n次出现:

def hermite(x,n):
    if n==0:
        return 1
    elif n==1:
        return 2*x
    else:
        return 2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2)

小测试:

for i in range(0,5):
    print(hermite(1,i))

1
2
2
-4
-20

答案 1 :(得分:0)

"main": "app.js",

请随时提出任何问题...

答案 2 :(得分:0)

import math
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import hermite



def HERMITE(X,N):
    HER = hermite(N)
    sn  = HER(X)
    return sn
xvals = np.linspace(-1.0,1.0,1000)
for n in np.arange(0,7,1):
    sol = HERMITE(xvals,n)
    plt.plot(xvals,sol,"-.",label = "n = " + str(n),linewidth=2)
plt.xticks(fontsize=14,fontweight="bold")
plt.yticks(fontsize=14,fontweight="bold")
plt.grid()
plt.legend()
plt.show()