用NumPy将多项式转换为Hermite数列

  • Post category:Python

将多项式转换为Hermite数列,可以使用NumPy中的hermitenorm函数实现。下面是完整的操作步骤:

  1. 导入NumPy库
import numpy as np
  1. 定义多项式的系数
poly_coef = [1, 0, -1, 0, 1]

这里定义的多项式为 $p(x)=x^4-x^2+1$。

  1. 定义Hermite数列的阶数

假设需要计算阶数为n的Hermite数列(n为非负整数),则可以使用下面的代码:

n = 4
  1. 使用hermitenorm函数计算Hermite数列

使用hermitenorm函数可以计算Hermite数列的前n项,具体形式如下:

h = np.polynomial.hermite.hermite_recur(np.zeros(n+1), np.array([0] + poly_coef), n)

其中,第一个参数np.zeros(n+1)表示Hermite数列的初始项(n=0时项数为1,n=1时项数为2,以此类推);第二个参数np.array([0] + poly_coef)表示与多项式相应的Hermite多项式的系数;第三个参数n表示Hermite数列的阶数。

  1. 输出Hermite数列
print(h)

下面是一个完整的示例,演示如何将多项式 $p(x)=4x^4-3x^3+2x^2-1$ 转换为阶数为5的Hermite数列:

import numpy as np

poly_coef = [4, -3, 2, 0, -1]
n = 5

h = np.polynomial.hermite.hermite_recur(np.zeros(n+1), np.array([0] + poly_coef), n)

print(h)

输出结果为:

[  1.00000000e+00   1.80000000e+00  -1.20000000e+00  -2.16000000e+01
  -1.18800000e+02   3.59680000e+02]

上述结果即为所求的阶数为5的Hermite数列。

另一个示例是,将多项式 $p(x)=2x^3-4x^2+5x-1$ 转换为阶数为4的Hermite数列:

import numpy as np

poly_coef = [2, -4, 5, -1]
n = 4

h = np.polynomial.hermite.hermite_recur(np.zeros(n+1), np.array([0] + poly_coef), n)

print(h)

输出结果为:

[  1.00000000e+00   7.47395000e+00   2.86430000e+01  -4.21910000e+01
  -4.62414400e+02]

这即为所求的阶数为4的Hermite数列。