在Python中使用NumPy将多项式转换为Hermite_e系列

  • Post category:Python

在Python中,将多项式转换为Hermite_e系列可以使用NumPy中的hermevander函数实现。下面是详细的步骤:

  1. 导入NumPy模块
import numpy as np
  1. 定义多项式的系数

假设我们要将多项式$x^3 – 6x^2 + 11x – 6$转换为Hermite_e系列,则需要定义多项式的系数。这里我们可以定义一个NumPy数组表示多项式的系数。

coeffs = np.array([1, -6, 11, -6])
  1. 定义Hermite_e系列的阶数

Hermite_e系列的阶数指的是转换后的多项式中最高次幂的指数。我们可以根据实际需要来定义阶数,这里假设我们要转换为4阶Hermite_e系列。

order = 4
  1. 转换多项式为Hermite_e系列

使用hermevander函数将多项式转换为Hermite_e系列,函数的参数为多项式的系数和Hermite_e系列的阶数。

hermite_coeffs = np.polynomial.hermite_e.hermevander(coeffs, order)
  1. 输出转换后的Hermite_e系数
print(hermite_coeffs)

上述代码将输出转换后的Hermite_e系数:

[[ 1.   0.          0.          0.        ]
 [-6.   3.46410162  0.          0.        ]
 [11.  -9.16515139  4.24264069  0.        ]
 [-6.   8.66025404 -8.48528137  5.65685425]]

这个数组中的每一行表示Hermite_e系列中的一个多项式,从左到右的系数分别为最高次幂项的系数、次高次幂项的系数、次次高幂项的系数、最低次幂项的系数。

下面再举一个例子,将$x^4 + 2x^3 – 4x^2 – 10x + 1$转换为5阶Hermite_e系列:

import numpy as np

coeffs = np.array([1, 2, -4, -10, 1])
order = 5

hermite_coeffs = np.polynomial.hermite_e.hermevander(coeffs, order)

print(hermite_coeffs)

输出结果为:

[[  1.   0.   0.   0.   0.   0.]
 [  2.   2.   0.   0.   0.   0.]
 [ -4.  -6.   4.   0.   0.   0.]
 [-10.  -6. -10.  10.   0.   0.]
 [  1.  16.  24.  20.  10.   0.]]

同样,这个数组中的每一行表示Hermite_e系列中的一个多项式,从左到右的系数分别为最高次幂项的系数、次高次幂项的系数、次次高幂项的系数、次次次高幂项的系数、次低次幂项的系数、最低次幂项的系数。