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

  • Post category:Python

在Python中,可以使用scipy.special模块中的eval_hermitenorm函数来评估多维Hermite_e数列。

该函数的一般形式为:scipy.special.eval_hermitenorm(n, x),其中n表示Hermite_e数列的阶数,x表示需要评估的点。当系数为多维时,传入的参数x应该是一个数组或者矩阵,每一行表示一个点。

例如,当系数为二维时,可以使用以下代码评估Hermite_e数列:

import numpy as np
from scipy.special import eval_hermitenorm

# 定义需要评估的点
x = np.array([[0.5, 1.0], [1.5, 2.0]])

# 评估Hermite_e数列
H = eval_hermitenorm([2, 3], x)

print(H)

该代码中,首先定义了一个二维的点数组x,其中第一行表示评估点[0.5, 1.0],第二行表示评估点[1.5, 2.0]。然后使用eval_hermitenorm函数评估了Hermite_e数列,其中参数[2, 3]表示裂项阶数为23,即需要评估二维和三维的Hermite_e数列。最后输出了评估结果。

另外,当需要评估大量的点时,可以使用numpy中的广播机制来提高代码的运行效率,例如:

import numpy as np
from scipy.special import eval_hermitenorm

# 定义需要评估的点
x = np.random.randn(1000, 10)

# 评估Hermite_e数列
H = eval_hermitenorm([5, 6, 7], x)

print(H.shape)

该代码中,首先定义了一个随机生成的1000 x 10的点数组x。然后使用eval_hermitenorm函数评估了Hermite_e数列,其中参数[5, 6, 7]表示裂项阶数为567,即需要评估五维、六维和七维的Hermite_e数列。由于x[5, 6, 7]的维度不同,因此使用了广播机制来自动扩展[5, 6, 7]的维度。最终输出了评估结果的形状,其中第一维表示评估点的数量,第二维表示裂项阶数的数量。