势垒隧穿含时演化的Julia数值模拟
发布时间:2026-01-23 14:56:23

  势垒隧穿是初等量子力学中的一个重要模型,但由于求解其波函数涉及超越方程,因此在许多初等量子力学教材中往往着重对透射系数的讲解,很少提及其波函数演化,在部分教材中虽有提及,但往往采用图解法,不利于初学者对该过程的理解。本文针对这一问题,提出了一种便于初学者理解的数值计算方法。该方法根据矩阵力学的向量化思想,将薛定谔方程中的波函数与算符分别以向量和矩阵的形式进行离散化,并利用 Julia 编程对几种势垒情况下的波函数隧穿的含时演化进行数值模拟。

  势垒隧穿是量子力学中的一种独特现象,在大量领域都有重要应用,已经成为当今凝聚态物理、材料物理、纳米物理及微电子器件制造领域的一个重要问题[1]。

  许多量子力学教材也将势垒隧穿现象作为一维定态问题中的一个重要模型进行讲解。由于势垒隧穿过程中的散射波函数是不可归一化的,在求解薛定谔方程的过程中涉及超越方程,因此大多数教材对势垒隧穿的讨论仅仅集中在透射系数和反射系数上,没有涉及波函数的含时演化问题[2-6];在一些涉及波函数含时演化的量子力学或计算物理教材中,常常采用图解法[7]或打靶法[8]来计算,但这两种计算过程,并不具有物理意义,使得初学者对势垒隧穿过程中波函数的演化行为不甚了解。

  本文借助了矩阵力学中“波函数 对应于列向量 〉,算符则对应于作用于这些向量的矩阵”的思想,将波函数离散为坐标表象下的离散列矢量,通过构建时间演化算符的矩阵形式,对势垒隧穿过程中波函数的含时演化进行数值计算,以帮助初学者进一步理解势垒隧穿过程中波函数的行为和理解如何对量子系统进行数值计算。

  本文的计算过程在 jupyter notebook 环境下,以 Julia 语言编程实现。Julia 内置的高效线代运算库、优秀的符号特性以及绘图库也有助于激发初学者的兴趣。

  势垒隧穿也称为“隧道效应”。文献[9]中给出了方势垒情况下的透射系数与反射系数,但其波函数涉及超越代数方程组无法给出解析解,在教学中,往往采用图解法近似计算[7]。

  在数值模拟中,一个重要的误差来源就是四舍五入带来的舍入误差,一般为了减少舍入误差会给参数选择合适的单位,使参数处在同一数量级[8]。但由于本文仅面向初学者进行介绍,为使问题简化,本文取自然单位制,令粒子质量与约化普朗克常数为 1,在实际的数值模拟中,应当通过选择单位或构建无量纲参数的方法减少舍入误差。

  在狄拉克符号下,t 时刻 x 位置的波函数值 (x,t) 表示为〈x (t)〉,其中, (t)〉为 t 时刻下的波函数,称为态矢; x〉为态矢的一个基矢。对采用 x〉表示的态矢称为 x 表象。含时薛定谔方程为

  是以势函数值为本征值的对角阵,利用 Julia 中的 Diagonal 函数可以快速构造势能算符。

  在势场不显含时间 t 时,薛定谔方程存在下列形式的特解,即 (r,t) 可以分离变量

  哈密顿算符,其矩阵形式通过将式(9)、式(11)代入式(6)获得,有如下形式

  取初始波函数的动能期望值略低于势垒高度,对三种势垒下隧穿现象的数值模拟结果如图 3 所示(势垒仅作示意,并对方势垒、三角势垒右侧的透射波概率密度进行了放大)。

  本文根据矩阵力学的物理思想,基于开箱即用的高级语言 Julia,以数值模拟方法计算了势垒隧穿过程中的波函数的含时演化。一方面,使学生初步了解数值计算在量子力学模型中的应用及流程,接受“函数即向量,算符即矩阵”的思想;另一方面,在数值计算过程中,学生可以十分直观地认识到势垒隧穿过程中波函数的演化行为,加深了对势垒隧穿的理解。

  [4]陈鄂生. 量子力学基础教程[M]. 济南: 山东大学出版社, 2002.

  基金项目:山东省研究生教育优质课程项目(SDYKC19083)、山东省山东科技大学-海信(山东)冰箱有限公司研究生教育联合培养基地项目(SDYJD18027)资助。

  通讯作者:徐岩,男,山东科技大学教授,研究方向为凝聚态物理与计算材料学,计算机视觉、图像识别与信号处理等,

  吴国祯教授:我的国外研究生经历印象——应清华大学物理系“基科班20年·学堂班10年纪念活动”而写

  《物理与工程》期刊是专注于物理教育教学研究的学术期刊,是中国科技核心期刊,1981年创刊,欢迎踊跃投稿,期刊投审稿采编平台:

  本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问。