在Python中使用NumPy将Hermite_e系列提高到一个幂数,可以分为以下步骤:
- 导入NumPy库和Hermite_e函数。
import numpy as np
from sympy.polys.hermite_e import hermite_e
- 定义要提高的Hermite_e系列的幂数n和变量x。
n = 3
x = np.array([1, 2, 3, 4])
- 使用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)
- 验证结果。
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里的多项式函数。