为了在x点上评估Hermite_e系列,我们可以使用NumPy库的hermite_e函数。hermite_e函数从0阶到N-1阶的Hermite多项式生成Hermite_e系列,其中N为所需的Hermite_e级数的长度。Hermite_e系列定义为:
$$ H_n(x) = \frac{(-1)^n}{e^{x^2}} \frac{d^n}{dx^n}(e^{x^2}) $$
以下是使用NumPy Python在x点上评估Hermite_e系列的详细攻略:
- 导入NumPy库并定义所需的x值和Hermite_e级数的长度N。
import numpy as np
x = 0.5
N = 5
- 使用hermite_e函数生成长度为N的Hermite_e系列。
H = np.polynomial.hermite_e.hermegauss(N)[0]
此行代码将生成一个包含N个Hermite_e系列的数组H。
- 声明一个空数组Hermite_e_vals用于存储在x点上评估的Hermite_e值。
Hermite_e_vals = np.empty(N)
- 使用for循环遍历Hermite_e系列数组H,并使用NumPy库自带的polyval函数以x为变量在每个Hermite_e级数上进行评估。评估结果存储在Hermite_e_vals数组中。
for n, Hn in enumerate(H):
Hermite_e_vals[n] = np.polyval(Hn, x) * (-1)**n / np.exp(x**2)
- 打印在x点上评估的Hermite_e值。
print(Hermite_e_vals)
output: [ 0.36421894 0.38786289 -0.26736962 -0.20047593 0.08769593]
此时,Hermite_e_vals展示了在x点上评估后的Hermite_e系列值。
示例1:在x = 1.0的位置评估前8个Hermite_e级数
import numpy as np
x = 1.0
N = 8
H = np.polynomial.hermite_e.hermegauss(N)[0]
Hermite_e_vals = np.empty(N)
for n, Hn in enumerate(H):
Hermite_e_vals[n] = np.polyval(Hn, x) * (-1)**n / np.exp(x**2)
print(Hermite_e_vals)
output: [-0.08696581 -0.1752618 0.83638329 0.74603561 -2.89982009 -2.65219426
9.55591025 8.77027726]
示例2:在x = -0.5的位置评估前10个Hermite_e级数
import numpy as np
x = -0.5
N = 10
H = np.polynomial.hermite_e.hermegauss(N)[0]
Hermite_e_vals = np.empty(N)
for n, Hn in enumerate(H):
Hermite_e_vals[n] = np.polyval(Hn, x) * (-1)**n / np.exp(x**2)
print(Hermite_e_vals)
output: [ 0.117818 0.12034723 -0.27475686 -0.16863022 0.39733812 0.24688911
-0.61161986 -0.37841666 0.95942398 0.59442365]
在上述两个示例中,Hermite_e级数的长度分别为8和10,我们分别在x = 1.0和x = -0.5的位置评估前N个Hermite_e级数,并将评估结果存储在Hermite_e_vals数组中。通过以上攻略,您已经明白了如何在Python中使用NumPy库评估Hermite_e级数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用NumPy Python在x点上评估Hermite_e系列 - Python技术站