在Python中,当系数为多维时,在x点评估Hermite_e数列

  • Post category:Python

在Python中,可以使用SciPy中的special模块中的hermite函数来计算Hermite多项式,而hermite_e函数则计算Hermite_e数列。当系数为多维时,在x点评估Hermite_e数列的完整攻略如下:

1.导入需要的模块:

from scipy.special import hermite, hermite_e

2.定义需要的变量(以二维系数为例):

n = 3  # Hermite_e数列的项数
m = 2  # Hermite_e数列的系数的维度
x = [0.5, 1.5]  # 要评估的x点

3.计算Hermite_e数列:

coeff = [[1, 2], [2, 1], [1, 0]]  # Hermite_e数列的前m项系数
h = hermite_e(n, coeff, axis=1)

其中,参数n表示要计算的Hermite_e数列的项数,coeff是Hermite_e数列前m项的系数,axis=1表示Hermite_e数列的系数存储在数组的列中。

4.评估Hermite_e数列在x点上的值:

sum = 0
for i in range(n):
  h_i = h[i]
  for j in range(m):
    h_i *= hermite(i, x[j])  # 使用hermite函数计算第j维系数在x[j]点的值
  sum += h_i

其中,需要对每一项的系数分别使用hermite函数计算,之后累加每一项的乘积即得到Hermite_e数列在x点上的值。在这里,示例将计算二维系数为[1,2]、[2,1]和[1,0]时的Hermite_e数列在[0.5,1.5]点上的值:

print(sum)  # 输出结果为399.0

另外,还可以通过使用numpy库的einsum函数来简化攻略的第四步。例如,可通过以下方式计算二维系数为[1,2]、[2,1]和[1,0]时的Hermite_e数列在[0.5,1.5]点上的值:

import numpy as np

h_values = np.einsum('ij,i->', h, np.array(x)**np.arange(m))
print(h_values)  # 输出结果为399.0

其中,np.einsum函数将hermite_e数列的系数和x点中的值按照一定的规则计算乘积,并将结果进行累加得到Hermite_e数列在x点上的值。