Mathematica实例——利用Mathematica演示量子力学中的波包演化
1背景介绍
在量子力学中,一个粒子对应一个在时空中演化的波函数
,与经典力学中仅仅具有质量、位置、速度等属性的点粒子有很大不同。这种"波粒二象性"常常给初学者带来理解上的困难。我们利用Mathematica软件对一维情形下的几个经典量子力学问题进行了数值模拟,包括高斯波包在自由空间的传播和扩散、遇到刚性边界时的反射、遇到势垒或势阱时的反射和透射,以及在谐振子势场中的准经典振动。Mathematica具有强大的符号和数值计算功能,以及简单易用的Manipulate控件,这使得我们可以快速实现代码并方便地演示结果。我们将展示量子波包在不同势场中随时间的演化,这有助于对量子力学的物理图像和基本概念的理解,也为更进一步的探索提供启发。
2物理模型和模拟设定
一维空间中,单粒子波函数
的动力学由薛定谔方程
描述。在给定空间势场
和初始波函数
后,波函数的后续演化就完全确定了。为了方便,这里我们取“自然单位”,将方程中的物理常量
和
取为1。这样,方程变成
,取最简单的一阶欧拉格式,可以写出差分方程
,当时间步长
足够小,差分方程的迭代就可以近似给出薛定谔方程的解
。其中,对空间的二阶偏导
也要用差分格式
来代替。公式(2)(3)就是数值模拟用到的核心方程。
在模拟中,我们使用高斯波包作为初始波函数。一个归一化的高斯波包可以写成
。容易看出,
的概率密度
是以
为中心,以
为方差的高斯分布。实际上,其动量表象波函数也具有对称的形式,概率密度|
是以
为中心,以
为方差的高斯分布。因此,高斯波包具有明确的物理意义,我们可以把它大致想成一个具有坐标
,动量
的“准经典”粒子,只是其坐标和动量的分布有一定的弥散,体现了量子力学中的不确定原理。我们可以期待它的演化行为既具有一定的“经典性”,也有一定的“量子性”,从而更好地体会量子力学与经典力学的区别和联系。
为了进行模拟,我们需要合理的边界条件。我们将高斯波包置于区间
中,认为区间之外的波函数为零,这相当于把粒子放在
的一维盒子中。可以预期,当波包的空间局域性较好,且波包中心距离边界较远时,波包的演化与其在自由空间中的演化差别不大,模拟结果也证实了这一点。另外,我们可以对模拟过程涉及的一些特征尺度进行估计。高斯波包具有特征波长
,因此空间离散步长
需要满足
;其特征能量
,在设定势场
时应以
作单位;同时,特征能量也给出一个内禀时间尺度
,时间离散步长
至少要满足
,考虑到一阶欧拉格式的稳定性较差,
需要进一步减小,以迭代稳定为准(可以用波函数是否保持归一化来判断迭代的稳定性)。最后,我们设定波包中心初始位于
,并观察其大致移动到
这个过程,这样一来,时间窗口
,迭代次数
。
3程序设计和代码实现
利用Mathematica,我们可以得到非常简洁的代码实现。值得注意的是,在处理差分方程时,需要把波函数的实部和虚部分开迭代,才能保证稳定性,也就是需要避开复数的计算。我们猜测这与一阶欧拉格式的稳定性较差有关。如果改进差分格式,应该可以直接用复数进行计算。
在上面我们已经得到了一系列波函数概率分布的“快照”(每迭代200步记录一次),使用Mathematica的Manipulate控件,可以很方便地将结果演示出来。
上面的代码会生成一个可以拖动的动态交互控件,我们可以方便地看到不同时刻的波包形态。
4结果演示与讨论
(1)波包在自由空间的传播和展宽
取
,波包就在自由空间传播,演化过程如下图所示。我们可以看到波包基本上呈匀速移动,并且在传播过程中不断展宽。
实际上,自由空间中的
可以严格解出,容易得到波包的中心位置
,波包的方差变化
。我们可以把数值结果与理论解进行比较,可以发现还是符合得比较好的,如下面所示。两者之间的偏差可能来自于边界条件的影响。
(2)波包遇到刚性边界时的反射
在
处设置一个刚性边界,例如取
时
,
时
,可以看到波包在遇到边界时强烈震荡,然后被反射回来。仔细观察可以看出,波包差不多回到原来的位置,说明这个过程中波包的动能没有变化,只是动量反号。
(3)势垒的散射(隧穿效应)
在
处放置一个宽为
,高为
的势垒,可以观察到波包与势垒的散射。可以看到,波包与势垒相互作用后,最终劈裂成了两部分,一部分是透射波包,继续向前传播,另一部分是反射波包,反向传播回来。这就是量子力学中的隧穿效应,粒子有一定几率越过势垒,发生隧穿。如果改变势垒的形状,还可以进一步研究隧穿几率与势垒形状的关系。
(4)势阱的散射
我们将势垒改成势阱,就得到波包与势阱的散射问题。这里是在
处放置了宽为
,深为
的势阱,可以看到,波包遭遇势阱后发生劈裂,最后也是分成透射波包和反射波包。这表明了量子力学的一维散射问题的一般性:不论是势垒还是势阱,对量子波包来说都像一个“障碍物”,有一定的透过率和反射率。这与经典力学是很不相同的,在经典力学里,一个粒子要么动能高于势垒而透过势垒,要么动能不足被势垒反射回来,而势阱则根本不会成为障碍物。
(5)波包在谐振子势中的准经典运动
令
,我们就得到了非常熟悉的谐振子势。非常有意思的是,在谐振子势中,波包表现得很像“真正的”经典粒子:不但在做周期性振动,而且波包本身不再随着时间增加而展宽,其局域性得到了很好的保持,而局域性正是经典粒子的重要特性。这种准经典运动的发生并不是显而易见的,背后有着非平凡的物理,实际上,我们可以认为谐振子势和高斯波包都具有某种特殊性,它们的“因缘际会”才导致了这一现象的发生。
5总结
通过这个简单的模拟,我们可以看到很多有趣的量子物理现象。由于本文的初衷不是要探讨物理问题,这里没有进行深入讨论。实际上可以研究的情形还很多,比如周期性结构对波包的调制(滤波)。总之,Mathematica是非常好用的计算和演示工具,特别适合实验性的探索和快速的原型设计,推荐大家多玩多探讨!
最后,有需要欢迎通过微信公众号联系我们。
Mathematica实例——利用Mathematica演示量子力学中的波包演化相关推荐
- 在wps里面怎么设置触发器_利用WPS演示中的触发器控制板书内容的方法
难道多媒体教学的开展与传统的板书之间的矛盾真的不可调和吗?笔者一直在思考这一问题,并发现巧妙利用WPS演示中的触发器可以灵活控制板书内容的显示与隐藏,使我们在开展多媒体辅助教学的过程中合理兼顾板书,达 ...
- matlab 回退到上一行,对乒乓球回滚的分析与MATLAB模拟-利用 Mathematica 模拟乒乓球滚动 - PS下...
虽然matlab远多于mathematica.工程系本科会有matlab课,但没注意到有mathematica的课.研究生基本都会matlab,但会mathematica的很少.这这并不代表mathe ...
- 利用mathematica制作二维码
利用mathematica制作二维码 今天看到一篇文章讲mma来做二维码的,觉得挺有趣,就重新实现了一下,完善了一下. 主要就是两个函数 BarcodeImage[img,"QR" ...
- Mathematica学习(2)-mathematica命令
转自:http://blog.sina.com.cn/s/blog_5e0430b20101de8j.html Mathematica的内部常数 Pi , 或 π(从基本输入工 ...
- linux tasklet函数,14.9.5 实例:Tasklet演示
14.9.5 实例:Tasklet演示 本节的例子演示了Tasklet的使用方法.虽然Tasklet是Linux中断处理的底半部的一种实现机制.但Tasklet并不一定要和中断一起使用.即使没有中断 ...
- 利用iTextSharp填写中文(中日韩)PDF表单(完整解决方案)
或者说中日韩文)表单填写的问题,本不想回答这类问题,因为相关的注意事项都已经在我的博客里说了,但现在看来还是有必要再啰唆下了,如果再有问题的话,希望带着Money来问,拜托了. 下面这段代码根据iTe ...
- 关于群论在量子力学中的应用
基本上还是接着上一篇总结来写的,上一篇总结了连续群的基本概念,SU(2),SO(3)SU(2),SO(3)SU(2),SO(3)群及其表示,角动量理论,物理涉及的不是很多. 这篇总结大概涉及到平移与旋 ...
- 天问: 量子力学中的波函数到底表示什么?
量子力学中的波函数到底表示什么? 作者:牛四爷 链接:https://www.zhihu.com/people/luck0810 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- html天气插件iframe,HTML_利用iframe在网页中显示天气附效果截图,css: 复制代码代码如下: *{margi - phpStudy...
利用iframe在网页中显示天气附效果截图 css: 复制代码代码如下: *{margin:0;padding:0;list-style-type:none;} a,img{border:0;} bo ...
最新文章
- OpenCV代码提取:Windows上通过DShow获取Camera视频
- Java 类加载体系之 ClassLoader 双亲委托机制
- [转]有关gimbal lock的详细解释(真的好详细)
- VTK:PolyData之NullPoint
- 003 Rabbitmq中交换机的类型
- 自动驾驶中激光雷达如何检测障碍物?
- python替换txt指定内容_python 实现类似sed命令的文件内容替换
- 操作系统 进程(上)
- 2021年道路运输企业安全生产管理人员考试试卷及道路运输企业安全生产管理人员模拟试题
- 我所钟爱的电影之一-文艺片
- HTML生成Word文档,可自定义Word文档页眉、页脚、分页。
- 中小学机器人类竞赛活动2020-2021
- php 硬盘序号_怎么查看电脑硬盘序列号
- #define 喵 int_【吃鸡大作战第三季】第12集 告白小雪喵
- Unity3D——AR小游戏
- windows下安装miniconda详细教程
- 0056-在OpenCV环境下使用混合高斯背景建模提取前景目标
- 线程池和信号量模拟酒店(旅店)预定房间
- 嵌入式相关开源项目、库、资料------持续更新中
- 记录一次xx应用的伪破解(一)(去广告 增加vip功能)
热门文章
- STM32 CAN模块问题:1、CAN收发器断电后重新上电,CAN模块死机(离线)现象;2、过滤器配置完之后没有过滤效果
- 在WSL上编译并运行全志XR806的完全体demo
- 关于微信小程序webview的使用
- 转载——背包九讲(原文链接已不可考)
- 四、【入门篇】官方LIB库、位带操作
- 【搬运】Intel核显Platform ID整理及SMBIOS速查表 By 黑果小兵的部落阁
- 超低延迟直播~毫秒级直播观看体验(实测效果)
- 【Oracle SQL数据库-教学2】--- Oracle数据库基础
- 《Python数据分析与挖掘实战》示例源码免费下载
- Redis遇到的问题Could not resolve type id ** into a subtype解决办法