把赫米特数列转换为多项式的过程主要通过Hermite多项式实现。具体步骤如下:
步骤1:导入必要的库
在Python中,我们需要导入一些必要的库,其中包括numpy和sympy库。
import numpy as np
from sympy import *
步骤2:定义符号变量和函数
我们需要定义符号变量和函数,然后通过函数来生成赫米特数列。在这里,我们使用sympy库来定义符号变量和函数。
x = symbols('x')
H = Function('H')
步骤3:计算赫米特多项式
接下来,我们要计算赫米特多项式,并把它们存储在一个列表中。
def hermite(n):
if n == 0:
return [1]
elif n == 1:
return [1, 2*x]
else:
Hn_1 = hermite(n-1)
Hn_2 = hermite(n-2)
return [expand(2*x*Hn_1[-1] - 2*(n-1)*Hn_2[-1])] + Hn_1
这个函数将返回一个长度为n+1的列表,其中包含从H0到Hn共n+1个赫米特多项式。
步骤4:将赫米特数列换算为多项式
最后,我们将赫米特数列换算为多项式。
def hermite_poly(n):
Hn = hermite(n)
return sum([Hn[i]*x**i for i in range(n+1)])
这个函数将返回一个n阶多项式,它是由赫米特数列H0,H1,……,Hn生成的。
示例1:将H4转换为多项式
我们可以使用上述代码将H4转换为多项式。首先,我们将n设置为4,然后调用函数hermite_poly(n)将其转换为多项式,代码如下:
n = 4
poly = hermite_poly(n)
print(poly)
这将打印出H4的多项式表示形式。
示例2:绘制Hermite多项式
我们可以使用赫米特多项式来绘制它们的图形。下面的代码演示如何用赫米特多项式绘制前六个的图像。
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 3, figsize=(16, 7))
axs = axs.flatten()
for i in range(6):
poly = hermite_poly(i)
x_vals = np.linspace(-5, 5, 200)
y_vals = np.array([poly.evalf(subs={x: x_val}) for x_val in x_vals])
axs[i].plot(x_vals, y_vals)
axs[i].set_title(f'Hermite Poly {i}')
plt.tight_layout()
plt.show()
这将绘制出前六个赫米特多项式的图像。
以上就是在Python中将赫米特数列转换为多项式的完整攻略。