在Python中把赫米特数列转换为多项式

  • Post category:Python

把赫米特数列转换为多项式的过程主要通过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中将赫米特数列转换为多项式的完整攻略。