定态薛定谔方程的数值求解
A) 先用猜测的本征值Eg进行迭代,迭代到V = 时波函数必然发散,停止,记录发散方向。
1
B) 将Eg增加一个变化E,迭代,若发散方向与上次迭代结果不同,说明Eg与E + E间有能 量本征值存在(因为边界条件要求V = 是波函数为0)。 利用二分法,使E = ¡E / 2。 重复此过程。
迭代停止的判断条件不要设置为判断E绝对值的大小,因为有时E很小并不代表导数匹 配了,停止条件应设为d Ljxm¡d Rjxm的绝对值小于一个很小的值。
下面给出计算的结果
图 6. Eg = ¡3; E = 0.5,基态波函数
图中已将势能曲线和波函数放缩至同等量级,基态能量结果的正确性可以对比教材结果,另外后 面的变分-蒙特卡洛方法也验证了结果的正确性。 同样我们可以观察其匹配的过程
现在我们利用打靶法求解一维无限深方势阱中的定态薛定谔方程
¡
~2 2m
d2 d x2
+
V
(x)
=E
(1)
当x 2 (¡1; 1)时,V (x) = 0,对其它x值V (x) = 1(我们计算时取V=1000)。 考虑势场的对称性,
我们可以先求解[0,1.3]中的波函数,首先将区间分成很多个小区间,每个区间长x, 则 n = (nx).
2 一维定态薛定谔方程
2.1 打靶法(Shooting method)
在教材第二章中我们曾研究过加农炮飞行轨迹,当改变初始条件让其击中某个目标时,其轨 迹唯一确定。 而在定态薛定谔方程的求解中,系统的能量E相当于初始条件,方程满足的边界条件 相当于靶子。 我们不断调节能量E,使利用差分法计算出的波函数满足边界条件,这样得到的波函 数即为方程的解。
匹配点不要选在波函数很小的地方,这里由Lennard-Jones势的特点,可以将匹配点选在势 能最低点xm 1.12(因为粒子出现概率最大)。
3
匹配前两边可能没有相交的点(取决于初始条件),因此要将 l和 R进行放缩(常数乘波 函数不改变其是否是方程的解,之后要归一化),使其相交,然后再比较导数的值。 这里 我用的方法是使两边在匹配点的函数值都为1来进行放缩。
当我们的势场具有对称性时, 我们可以猜测波函数也具有对称性, 从而可以从对称轴确定 奇,偶初始条件。 但如果是没有对称的势场,我们的初始条件将不容易确定,这时我们采用从边 界开始迭代的方法。 即从两边开始“打靶”,选一个靶点,利用波函数的连续性,调节能量E的 值,使其在靶点的函数值与导数值均连续,这样得到的能量和波函数即为本征能量和本征函数。 这种从两边打靶的方法叫做匹配法,靶点叫做匹配点。 但要注意的一点是这里的边界需满足波函 数为0或很小的条件,以便我们容易确定初始条件。
姓名 李尚书
学号 2014301020084
班级 物基一班
选题
论述
结论
总分
定态薛定谔方程的数值求解
李尚书 物基一班 2014301020084
摘要:本期末作业主要利用各种有限差分方法数值求解定态薛定谔方程,实现算法所用语言 为Python。利用打靶法求得了无限深方势阱中的波函数。利用匹配法求解了Lennard-Jones势场下 的薛定谔方程,并研究了方势阱底部受微扰情况下的波函数。 最后利用量子力学基本变分原理与 蒙特卡罗方法,求得了二维谐振子势下的二维定态波函数,讨论了运算效率及加速问题
图 7. Lennard-Jones势匹配过程
下面给出几个激发态的计算结果 4
改写方程为有限差分形式来自¡~2 2m
n+1 + n¡1 ¡ 2 (x)2
n
= (E ¡ Vn)
n
(2)
为简洁取单位制~ = 1; m = 1。整理可得
n+1 = 2 n ¡ n¡1 ¡ 2(x)2(E ¡ Vn) n
(3)
取初始条件 0 = 1; 1 = 1,从n=1进行迭代可得偶函数形式的波函数,取 0 = ¡x; 1 = 0可得奇函 数形式的波函数。具体打靶的方法:
关键字:Python;薛定谔方程;有限差分法
1 引言
量子力学中的薛定谔方程是个二阶偏微分方程,其形式取决于所处势场。 但迄今为止,能 解析求解的势场形式非常少,大多都还没有或不能求得解析解。 随着计算机技术的发展,偏微 分方程已经发展出很多数值解法。 有限差分方法即为其中很有效的方法,如解一阶微分方程的 Euler法,解二阶微分方程的Crank-Nicholson方法及Runge-Kutta法等。 这些都可以求解薛定谔方 程。 而定态薛定谔方程分离了时间变量,形式更简单,利用有限差分方法可以很快求解。 本文即 讨论其中的几种简单快捷的方法,并给出计算机模拟结果,相关代码在附录连接
C) 观察E的绝对值,若其小到一定程度,则可认为本征值已经找到,方程的解亦已找到。 下面给出求解结果(图1)
图 1. 一维无限深方势阱,Eg = 0; E = 0.5; n = 130; x = 0.01,偶初始条件
可以看到我们数值计算的本征值与理论本征值吻合的很好,波函数的形状也符合理论。 我们也可很方便的在程序中实现观察迭代的过程,展示如图2
2.2.1 Lennard-Jones势
现在我们利用匹配法来求解Lennard-Jones势下的薛定谔方程,Lennard-Jones势函数如下
V
(x)
=
h 4
2
¡
2
i
(4)
x
x
其中取 = 10; = 1
同样将我们需求解的区间[0.7,5]格点化,取x = 0.01; N = 430。分别从两边开始迭代,得到波函 数 L; R。初始条件 0 = ¡0.0001x; 1 = 0; 429 = 0; 430 = 0.0001x,这样取是因为在边界波函 数几乎为零。具体的匹配算法和2.1节中的打靶法类似。其中需要注意以下几点:
图 2. “打靶”的过程
改变猜测能量Eg的大小,我们会得到不同的能级的波函数 2
图 3. Eg = 0; E = 0.5; n = 130; x = 0.01,奇初始条件
图 4. Eg = 5; E = 0.5,偶初始条件
图 5. Eg = 10; E = 0.5,奇初始条件
2.2 匹配法(Matching method)