评估二维Hermite_e数列与三维数组的系数涉及到多维数列的处理。Python中的NumPy库是处理多维数列的好工具。下面是使用NumPy库在点(x,y)上评估二维Hermite_e数列与三维数组的系数的完整攻略。
评估二维Hermite_e数列
首先我们需要定义一个二维Hermite_e数列。Hermite_e数列是一个重要的数学概念,在概率论、量子力学等领域都有广泛的应用。
import numpy as np
def hermite_e(n, x):
if n == 0:
return np.ones_like(x)
elif n == 1:
return 2 * x
else:
return 2 * x * hermite_e(n-1, x) - 2 * (n-1) * hermite_e(n-2, x)
def two_d_hermite_e(n, m, x, y):
return hermite_e(n, x) * hermite_e(m, y)
上面的代码定义了一个二维Hermite_e数列的函数two_d_hermite_e
,它将两个一维的Hermite_e数列相乘得到一个二维的Hermite_e数列。参数n
和m
分别表示两个Hermite_e数列的次数,x
和y
是要评估的点的坐标。
然后我们可以通过下面的代码评估一个在点(1, 2)
上的二维Hermite_e数列的值:
x = np.array([1])
y = np.array([2])
two_d_hermite_e(3, 2, x, y)
这里我们选择了n=3
和m=2
,表示两个Hermite_e数列的次数分别为3和2。x
和y
分别是点的x和y坐标。这段代码会输出一个由一个数构成的NumPy数组,表示在点(1, 2)
上二维Hermite_e数列的值。
评估三维数组的系数
三维数组是由多个二维数组组成的,每一个二维数组又是由多个一维数组组成的。我们可以使用NumPy库中的einsum
函数来评估三维数组的系数。einsum
函数可以对多个数组进行广义的点积运算,并选择输出的维度。下面是一个使用einsum
函数评估三维数组系数的示例:
import numpy as np
# 定义三维数组
a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
b = np.array([[[8, 7], [6, 5]], [[4, 3], [2, 1]]])
# 使用einsum计算系数
c = np.einsum('ijk,ilk->jl', a, b)
print(c)
上面的代码定义了一个三维数组a
和b
,每个二维数组的形状都是(2, 2)
。我们想要计算这个三维数组的系数,即$C_{jl} = \sum_{i,k} A_{ijk} B_{ilk}$。
最后我们使用einsum
函数进行计算,指定输入的字符串'ijk,ilk->jl'
表示将a
和b
按照上面的公式计算,输出的结果是一个形状为(2, 2)
的二维数组。
输出结果为:
[[132 60]
[100 44]]
这里的结果表示的是在每一个(j, l)
位置上求和的值。