薛定谔方程中的哈密顿矩阵大小

计算科学 量子力学
2021-12-10 15:37:04

我正在尝试使用 Scipy(在http://www.physics.buffalo.edu/phy410-505/2011/topic4/app2/index.html的帮助下)解决盒中粒子问题。起初,我使用 16x16 矩阵来模拟哈密顿量,就像链接一样,我的结果与他们的一致。但是,当我使用更大的矩阵 (50x50) 时,由于矩阵尺寸更大,我在结果中发现了许多无关的特征值。

为什么 16x16 矩阵会产生完全正确的特征态,而更大的矩阵会产生无关的特征态?当使用更大的矩阵时(我认为由于省略了较少的基本元素会提高模拟的准确性),我如何判断哪些元素对应于实际的本征态,哪些是无关的?

我的代码如下:

from scipy import linalg, mat, matrix

def Sfun(m,n):
    if (m+n)%2==0:
        v1 = 2/(m+n+5)
        v2 = 4/(m+n+3)
        v3 = 2/(m+n+1)
        return v1 - v2 + v3
    else:
        return 0

def Hfun(m,n):
    if (m+n)%2==0:
        return -8*(1-m-n-2*m*n)/((m+n+3)*(m+n+1)*(m+n-1))
    else:
        return 0

Slist = []
Hlist = []

for m in range(0,16):
    tlist = []
    for n in range(0,16):
        tlist.append(Sfun(m,n))
    Slist.append(tlist)

for m in range(0,16):
    tlist = []
    for n in range(0,16):
        tlist.append(Hfun(m,n))
    Hlist.append(tlist)

Smat = matrix(Slist)
Hmat = matrix(Hlist)

vals,vecs = linalg.eig(Hmat, Smat)

for i in range(0,16):
    print('Vector: ', end="")
    print(vecs[i], end="")
    print("                     Value: ", end="")
    print(vals[i])
0个回答
没有发现任何回复~