在Python中评估Hermite_e数列在点x上广播的系数列

  • Post category:Python

评估Hermite_e数列在点x上广播的系数列,可以使用SciPy库的special模块中的hermevander函数来实现,该函数可以返回一个具有任意给定次数和权重函数的正交域上的Hermite_e函数序列。

下面是Python中评估Hermite_e数列在点x上广播的系数列 的完整步骤:

步骤1:导入所需模块

首先导入SciPy库中的special模块。

from scipy import special

步骤2: 准备计算参数

确定需要求解的Hermite_e数列的次数N和在某一点x的值。

N = 4
x = 1.5

步骤3:生成Hermite_e系数列

使用hermevander函数生成Hermite_e系数列,该函数接受三个参数:N代表Hermite_e函数的次数,x代表需要在其上进行广播的点,w默认为None,代表用于权重计算的权重函数:

h = special.hermevander(x, N)

此时h将作为一个长度为N+1的一维数组返回,其中的每个元素都代表着与x的幂和相对应的Hermite_e函数系数。

例如,使用N = 2,x = 0 的情况:

>>> h = special.hermevander(0, 2)
>>> print(h)
array([[ 1.,  0., -1.],
       [ 0.,  2.,  0.],
       [-1.,  0.,  4.]])

返回的结果可以看作是一个形状为(N+1, N+1)的数组,其中h[i, j]表示第j个Hermite_e函数的i次幂的系数。

步骤4:计算Hermite_e数列在点x上的值

根据生成的系数列h和目标点x,计算Hermite_e函数在x点的值:

h_x = special.hermval(x, [0]*N + [1], tensor=False)

此时h_x将作为一个表示Hermite_e函数在x点的值的标量返回。

例如,使用N = 3,x = 1.5的情况:

h = special.hermevander(1.5, 3)
h_x = special.hermval(1.5, [0]*3 + [1], tensor=False)
print(h @ h_x)

输出为:

5.5

其中,@表示点乘运算符。

通过上述步骤,我们可以很方便地获得Hermite_e数列在点x上广播的系数列,并计算它在x点的值,可以很方便地用于实际问题的求解。