如何使用numpy计算高维重叠积分

时间:2019-10-02 12:39:31

标签: python numpy

Psi作为ND numpy数组存储在空间网格上(例如,如果N = 2 Psi是2D复数值数组)。使用numpy计算以下积分的最佳方法是什么?

enter image description here

我假设它将是np.tensordotnp.sum的组合,但是我无法找到一种方法,而不必依靠某些繁重的循环(对于大N来说很麻烦)。

1 个答案:

答案 0 :(得分:0)

解决方案是:

NI = 2*(N-1) # number of integrals
tensor = np.multiply.outer(psi, psi.conj())
for i in range(N):
   axis = -1 if i < N/2 else -2
   tensor = np.sum(tensor, axis=axis)
rho = tensor * dx**N