实空间有限差分法求解薛定谔方程

2024-04-28 07:11:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个简单的代码来绘制一个无限量子阱中粒子的本征向量。我用实空间有限差分法。我的代码是:

import matplotlib.pyplot as plt
import numpy as np
import numpy.linalg as la

L=12 #length of the well,unit:Ang
a0=0.52917721 #unit of length in atomic system, given in Ang
k=0 # quantum number

#Atomic unit conversion
L_au=L/a0

n=1000
h=L_au/n

c0=1/(h**2)
c1=-1/(2*h**2)

#kinetic energy
T=c0*np.diag(np.ones(n-1))+c1*np.diag(np.ones(n-2),1) \
            +c1*np.diag(np.ones(n-2),-1)

x=np.arange(0,L_au,h)

#Hamiltonian
H=T
val,vec=la.eigh(H)
plt.plot(x[:-1],vec[:,k])

代码本质上很简单,但当我绘制它时,我并没有得到一个标准化的正弦本征态。输出如下: output

如你所见,它不是标准化的。我想垂直轴应该乘以一个依赖于L的变量,我不知道是否需要任何提示。在

编辑1:让我详细说明一下我所说的“未规范化”是什么意思。在量子物理学中,波函数psi(x)被称为归一化,如果这个条件成立:

Normalization condition

所以为了归一化,我们需要确保波函数在整个空间的平方的积分等于1。但上面的图表并不是这样。我不知道问题出在我的代码还是我对问题的理解上。在

有关详细信息,请参阅this article,第15页。在

编辑2:实际上,如果它想被规范化,那么图的峰值应该是0.46,但在我的例子中,它大约是0.046。所以听起来它需要乘以10才能使它正常化。但我试着改变L,得到了不同的乘法因子。在

我知道这个问题在你们大多数人看来还是很模糊的。但如果我想把所有的细节都讲清楚,我就需要写一本书,这是不可能的。如果你能读懂上面提到的那篇文章的话。在


Tags: 代码importnumpyasnpones量子绘制
1条回答
网友
1楼 · 发布于 2024-04-28 07:11:59

如果不详细查看代码,请记住,单靠微分方程永远不足以完全描述物理模型。边界条件起着非常重要的作用,但往往被低估了。在

例如,在量子系统的情况下(如这里所示),正是因为对于一个物理系统,波函数需要被规范化,薛定谔方程(SE)的一些可能的解在物理上是无效的。因此,正是这种边界条件(规范化波函数)的引入,而不是SE本身,导致了解的离散化。在

换言之,规范化不是内置于SE或任何东西中的,它仍然允许不可规范化的解决方案。(顺便说一句,这在某些模型中实际上是一个有用的属性。)规范化 您必须检查SE的解决方案,而忽略无效的解决方案。在

另外,关于边界条件,你考虑过势阱边缘的条件了吗?在

相关问题 更多 >