氢原子的波函数
摘 要:针对量子力学中氢原子波函数概念抽象的特点,利用MATLAB方便地绘制波函数的三维空间分布图,指出MATLAB软件是解决量子力学可视化的有效工具。 关键词:MATLAB;波函数;氢原子;空间分布
0 引言
量子力学是物理专业必修的一门专业课,它主要研究微观尺度下粒子的行为与相互作用。许多概念如波函数、测不准原理、角动量理论等抽象难懂,一些现象如:隧道效应、势垒反射等与宏观现实不相符,再加上无法直接用肉眼观察,使得量子力学中许多问题不易理解。因此,在量子力学中引入多媒体,增加动态直观的演示。针对量子力学计算复杂、物理量具有矩阵形式等特点,我们最终选择了具有强大计算能力同时一又有极强图像处理能力的数学软件—MATLAB。 1 MATLAB软件介绍
MATLAB是美国Math Work公司从1982年开始推出的一套高性能的数值计算和可视化软件。它集数值分析、矩阵运算和图形显示于一体,构成了一个方便的、界面友好的用户环境。MATLAB程序设计语言结构完整,且具有良好的移植性,易学易用。此外,它还提供了解决各类问题的工具箱,MATLAB己成为应用学科、计算机辅助分析、设计、仿真不可缺少的软件。
MATLAB具有强大的图形绘制能力,为科学研究提供了极大的方使。MATLAB可以绘制二维、三维乃至四维图形,而且能对图形进行线型、立体、色彩、光线、视角等控制。用户只须指定绘图方式,并提供充足的绘图数据,用很少的程序指令就可得到直观、形象的图形结果。借助于MATLAB的数值计算和图形处理技术,我们可以方便地绘制氢原子波函数的空间分布图,直观感受微观状态下电子行为,加深对理论、概念的理解。 2 氢原子波函数模型建立
由量子理论知,氢原子体系满足薛定谔方程:
e2 ????????r1,r2??E???r1,r2? (1)
2?12?2r2r12r122
其中r1(x1,y1,z1),r2(x2,y2,z2),?1,?2分别为电子与核的坐标和质量,引入相对坐标和质心坐标
r(x,y,z):r?r1?r2R(X,Y,Z):R??1r1??2r2M (2)
M??1??2为总质量,??3 绘制波函数空间分布图
?1?2为约化质量
?1??2氢原子波函数为四元数据,在三维空间中应用截面图来表示波函数的数值大小。因此我们所绘制的立体图为波函数在过原点的截面上数值的分布图。 取?100,?200,?211,?320,四个氢原子波函数为例,首先利用坐标变换公式
x?rsin?cos?;y?rsin?sin?; z?rcos?
把球坐标变换为直角坐标系,再计算出过原点的截面上的波函数解析解如下:
?100[xoy]??320[xoz]1??a??3/2??x2?y2exp??a??? ???? ????x2?y2122?2a?x?yexp??2a86?????211[xoy]??x2?y21?5/2??a?xexp??2a4z???? ???? ???320[xoz]??x2?y21?7/22?x2??a?2zexp??3a816????利用MATLAB编程语言,可以做出以上四个波函数的空间三维分布图。 如图1-4所示:
0.2 0-5-10-10-50.10.080.060.040.020-0.02200.150.10.0501051050100-10-20-20-1010020图1 图2
0 0.080.060.040.020-0.02-0.042010200-10-20-20-101000.20.10-0.1-0.220102010-10-20-200-10图3 图4
4 总结
MATLAB数学软件操作简单,功能强大,在量子力学研究中充分利用其数值计算和绘图功能,一方面可以加深对抽象概念的理解,另一方面也能培养使用计算机解决复杂物理问题的能力。
参考文献:
[1]何仁斌.MATLAB6工程计算机及应用[M].重庆:重庆大学出版社,2001.137-146 [2]曾谨言.量子力学[M].北京:科学出版社,2000.322-325
[3]周世勋.量子力学教程[M].北京:高等教育出版社,1979.71-77
附录:
程序如下: %wave. m a =0.529;
A=(1/sqrt(pi))*a^(3 /2); B=1/(4*sqrt(2*pi*a));
C=(1/( 4 * sqrt(2*pi)))*a^(-5/2); D=(1/(81*sqrt ( 6*pi)))*a^(-7/2); x=linspace(-10, 10, 100 ); y=linspace(-10, 10, 100 ); [x,y]=meshgrid(x, y);
Z=A*exp(-sqrt(x.^2+y.^2)/a); mesh(x, y, Z); figure(2);
x=linspace(-20,20, 100); y=linspace(-20,20, 100); [x,y]=meshgrid(x, y);
Z=B*(2*a-sqrt(x.^2+y.^2)).*exp(-sqrt(x.^2+y.^2)/(2*a)); mesh(x, y, Z); figure ( 3);
x=linspace(-20, 20, 100); y=linspace(-20, 20, 100); [x,y]=meshgrid(x, y);
Z=C*x.*exp(-sqrt(x.^2+y.^2)/(2*a)); mesh(x, y, Z); figure(4)
x=linspace(-20, 20, 200); z=linspace(-20, 20, 200); [x,z]=meshgrid ( x, z );
Y=D*(2*z.^2-x.^2).*exp(-sqrt(x.^2+z.^2)/(3*a)); mesh ( x, z, Y);