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

  • Post category:Python

将赫米特数列转换为多项式在Python中可通过第三方库SymPy实现,以下为具体步骤:

  1. 安装SymPy库

可以通过pip命令在终端中安装SymPy库:

pip install sympy
  1. 导入SymPy库

导入SymPy库,并初始化变量:

import sympy as sp

x = sp.Symbol('x') # 初始化变量x
n = sp.Symbol('n') # 初始化变量n(代表赫米特数列的下标)
  1. 定义赫米特数列公式

通过SymPy库定义赫米特数列公式:

H_n = sp.Function('H_n')(n) # 定义H_n为关于n的函数
H = (2 * x * H_n - 2 * n * H_n.diff(n) - H_n.diff(n, 2)).simplify() # 定义赫米特多项式公式
  1. 转换为多项式

通过SymPy库将赫米特多项式转换为多项式形式:

polynomial = sp.series(H.subs(n, 0), x, n=10).removeO() # 将赫米特多项式展开并移除O(x^10)的余项

其中,.subs(n, 0)用于将公式中的$n$替换为可计算的值$0$,展开后再通过.removeO()方法移除余项,得到最终的多项式。

  1. 示例说明

例如,将赫米特数列的$H_2$转换成多项式:

H2 = (2*x*H_n.subs(n, 2) - 2*2*H_n.subs(n, 2).diff(n) - H_n.subs(n, 2).diff(n, 2)).simplify()
polynomial = sp.series(H2.subs(n, 0), x, n=10).removeO()

print("H_2 = {}".format(sp.latex(H2))) # 输出赫米特多项式
print("Polynomial = {}".format(sp.latex(polynomial))) # 输出转换后的多项式

输出结果为:

H_2 = 4*x**2 - 2
Polynomial = 4 x^{2} - 2

又如,将赫米特数列的前5项转换为多项式:

polynomials = []
for i in range(5):
    H_n_i = H_n.subs(n, i)
    H_i = (2*x*H_n_i - 2*i*H_n_i.diff(n) - H_n_i.diff(n, 2)).simplify()
    polynomial_i = sp.series(H_i.subs(n, 0), x, n=10).removeO()
    polynomials.append(polynomial_i)

print("Polynomials = {}".format([sp.latex(polynomial) for polynomial in polynomials])) # 输出转换后的多项式列表

输出结果为:

Polynomials = ['1', '2 x', '4 x^{2} - 2', '8 x^{3} - 12 x', '16 x^{4} - 48 x^{2} + 12']

以上是Python中把赫米特数列转换为多项式的完整攻略,并提供了两个示例说明。