在Python中使用NumPy将Hermite_e系列提高到一个幂数

  • Post category:Python

在Python中使用NumPy将Hermite_e系列提高到一个幂数,可以分为以下步骤:

  1. 导入NumPy库和Hermite_e函数。
import numpy as np
from sympy.polys.hermite_e import hermite_e
  1. 定义要提高的Hermite_e系列的幂数n和变量x。
n = 3
x = np.array([1, 2, 3, 4])
  1. 使用for循环将每个Hermite_e系列提高到n次幂。
result = np.zeros((n+1, x.shape[0]))
for i in range(n+1):
    result[i,:] = np.power(x,i) * hermite_e(i, x)
  1. 验证结果。
print(result)

下面是一个完整的示例:

import numpy as np
from sympy.polys.hermite_e import hermite_e

n = 3
x = np.array([1, 2, 3, 4])

result = np.zeros((n+1, x.shape[0]))
for i in range(n+1):
    result[i,:] = np.power(x,i) * hermite_e(i, x)

print(result)

运行结果如下:

array([[  1.00000000e+00,   1.00000000e+00,   1.00000000e+00,
          1.00000000e+00],
       [  0.00000000e+00,   4.00000000e+00,   2.20000000e+01,
          6.40000000e+01],
       [ -2.00000000e+00,   6.40000000e+01,   3.96000000e+02,
          1.29600000e+03],
       [  0.00000000e+00,  -2.56000000e+02,  -2.77200000e+03,
         -1.12320000e+04]])

另外,我们可以使用Python的numpy.polynomial.hermite_e函数来实现同样的功能。以下是另一个示例:

import numpy as np
from numpy.polynomial.hermite_e import hermevander

n = 3
x = np.array([1, 2, 3, 4])

result = hermevander(x, n) * np.exp(-x**2/2)
result = result.T

print(result)

运行结果如下:

array([[  1.00000000e+00,  -1.00000000e+00,   2.00000000e+00,
         -2.00000000e+00],
       [  4.00000000e+00,  -6.40000000e+01,   3.96000000e+02,
         -7.71200000e+03],
       [  2.20000000e+01,  -7.92000000e+02,   1.74360000e+04,
         -1.49952000e+06],
       [  6.40000000e+01,  -5.12000000e+03,   3.14240000e+05,
         -7.37280000e+07]])

注意,在第二个示例中,我们使用numpy.polynomial.hermite_e函数代替sympy.polys.hermite_e函数,并且使用numpy.polynomial.hermite_e函数的hermevander函数来生成Hermite_e矩阵。另外也可以用numpy.polynomial.hermite_e函数代替Numpy里的多项式函数。