MATLAB在量子力学中的应用.docx
《MATLAB在量子力学中的应用.docx》由会员分享,可在线阅读,更多相关《MATLAB在量子力学中的应用.docx(16页珍藏版)》请在冰豆网上搜索。
MATLAB在量子力学中的应用
MATLAB在量子力学中的应用
《MATLAB语言》课程论文
MATLAB在量子力学中的应用
姓名:
魏祎
学号:
12011243989
专业:
通信工程
班级:
2011级通信工程
指导老师:
汤全武
学院:
物理电气信息学院
完成日期:
2012-12-11
的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。
MATLAB语言在各国高校与研究单位起着重大的作用,它是一种集数值运算、符号运算、可视化建模、仿真和图形处理等多种功能。
在量子力学中,可以利用其帮助初学者理解量子力学与经典力学截然不同的思维方式和观念,理解微观粒子的波粒二象性。
下面将以一维势阱问题,波函数和概率密度曲线问题为例讲述MATLAB在量子力学中的应用。
二、用MATLAB语言求解一维无限深势阱问题
如图1所示,设想一粒子处在势能为
的力场中,并沿x轴作一维运动。
粒子的势能
满足下述边界条件:
(1)当粒子在
范围内时,
=0;
(2)当
及
时,
。
这就是说粒子只能在宽度为a的两个无限高势垒壁之间自由运动,就像一小球被限制在无限深的平底深谷中运动那样,我们理想化了得势阱曲线叫无限深方形势阱。
因为粒子只限于沿x轴方向运动,故这个势阱为一维无限深的方形势阱,简称一维方势阱。
有上述边界条件已知,粒子在势阱中得势能
(x)与时间无关,且
=0.因此,由一般的薛定谔方程
(1),粒子在无限深方势阱中得定态薛定谔方程为
(1)
式中m为粒子的质量,E为粒子的总能量。
如令k为
(2)
则上式可写成
(3)
根据边界条件,x=0时,
,则可以利用MATLAB求解微分方程。
利用MATLAB语言求解此方程程序如下:
y=dsolve('D2y+k^2*y','y(0)=0','x')%%求方程(16)
0ax
图1一维无限深方势阱中得粒子
运行结果:
y=
C1*sin(k*x)
又根据边界条件,x=a时,
,此时式(16)的解为
(4)
一般说来,A可不为零,故
,有
n=1,2,3…,上式也可写成
将上式与式(4)相比较,可得势中粒子可能的能量值为
(5)
式中n为量子数,表明粒子的能量只能取离散的值,当n=1时,势阱中粒子的能量为
,n=2,3,4…时,4
,9
,16
。
这就是说,一维无限深方势阱中粒子的能量是量子化的。
下面在来确定常数
,由于粒子被限制在
和
的势阱中,因此,按归一化条件,粒子在此区间内出现的概率总和为1,即
(6)
或
(7)
令
则上式左侧积分为
(8)
于是,可得
这样,式(7)所表现得波函数即为
,
(9)
由此可得,能量为E所表示的粒子在势阱中得概率密度为
下面用MATLAB语言求解电子的各能级能量、波函数曲线和概率密度曲线。
程序如下:
functionE=shor(m,a)%建立函数文件
n=1:
10;%量子数n
h=6.63*1e-34;%普朗克常量
E=n.^2*h^2/(8*m*a^2);%n能级的能量值
x=0:
1.0*1e-12:
a;%x的值
subplot(4,2,1)%分割绘图区域,第一个子图
y1=sqrt(2/a)*sin(pi*x/a);%n=1的波函数
plot(x,y1);%绘制n=1的波函数图象
title('n=1');%给n=1的破函数曲线加标题
subplot(4,2,3)%分割绘图区域,第三个子图
y1=sqrt(2/a)*sin(2*pi*x/a);%n=2的波函数
plot(x,y1);%绘制n=2的波函数图象
title('n=2');%给n=2的破函数曲线加标题
subplot(4,2,5)%分割绘图区域,第五个子图
y1=sqrt(2/a)*sin(3*pi*x/a);%n=3的波函数
plot(x,y1);%绘制n=3的波函数图象
title('n=3');%给n=3的破函数曲线加标题
subplot(4,2,7)%分割绘图区域,第七个子图
y1=sqrt(2/a)*sin(4*pi*x/a);%n=4的波函数
plot(x,y1)%绘制n=4的波函数图象
title('n=4');%给n=4的波函数曲线加标题
subplot(4,2,2)%分割绘图区域,第二个子图
y2=2/a*sin(pi*x/a).^2;%n=1的概率密度曲线
plot(x,y2);%绘制n=1的概率密度曲线
title('n=1');%给n=1的概率函数曲线加标题
subplot(4,2,4)%分割绘图区域,第四个子图
y2=(2/a)*sin(2*pi*x/a).^2;%n=2的概率密度函数
plot(x,y2);%绘制n=2的概率密度曲线
title('n=2');%给n=2的概率函数曲线加标题
subplot(4,2,6)%分割绘图区域,第六个子图
y2=2/a*sin(3*pi*x/a).^2;%n=3的概率密度函数
plot(x,y2);%绘制n=3的概率密度曲线
title('n=3');%给n=3的概率函数曲线加标题
subplot(4,2,8)%分割绘图区域,第八个子图
y2=2/a*sin(3*pi*x/a).^2;%n=4的概率密度函数
plot(x,y2);%绘制n=4的概率密度曲线
title('n=4');%给n=4的概率函数曲线加标题
假如有一电子在宽度为0.02nm的一维方势阱中,则其
,调用shor函数求解其各能级能量、波函数曲线和概率密度曲线
程序如下:
a=0.2*1e-9;%a为势阱的宽度
m=9.1*1e-31;%粒子的质量
E=shor(m,a)%调用shor函数
运行结果如下;
E=
1.0e-015*
0.00150.00600.01360.02420.03770.05430.07400.09660.12230.1510
运行结果的图像如图2所示:
图2在一维无限深方势阱中,粒子的能级、波函数和概率密度
通过以上程序对粒子在一维无限深方势阱中运动的图形描述,数据分析,我们发现,一维无限深方势阱中粒子的能量是量子化的,为1.0e-015*0.00151.0e-015*0.00601.0e-015*0.01361.0e-015*0.0242……一些列量子化的能量值;粒子在势阱各处的概率密度并不是均匀分布的,随量子数而改变,当量子数n=1时,粒子在势阱中部x=a/2附近出现得概率最大,而在两端出现的概率为零。
随着量子数n的增大,概率密度分布曲线的峰值个数也增多,例如n=2有两个峰值;n=3有三个峰值……而且两相邻峰值间的距离将缩小得很小,彼此靠的很近,非常接近粒子在势阱中各处概率处处相等的情况。
下面我们再来求解一个一维运动粒子的波函数和概率密度曲线问题
三、用MATLAB语言求解一维运动粒子的波函数曲线,概率密度曲线
已知一维运动粒子的波函数为
有归一化条件:
或
(12)
上式积分可得:
(13)
于是可得:
(14)
这样,式(12)表示的波函数即为
(15)
由此可得,一维运动粒子的概念密度函数为
(16)
下面用MATLAB语言求解一维运动粒子的波函数曲线和概率密度曲线
程序如下:
r=input('pleaseinputr');%输入r的值
a=input('pleaseinputa');%请输入a的值
x=0:
0.0001:
a;%设置位置变量x的值
y1=4*r^3*x.^2.*exp(-2*r*x);%x>=0的概率密度函数
y2=2*sqrt(r^3)*x.*exp(-r*x);%x>=0的波函数
y3=max(y1)%求概率密度最大值
x1=x(find(y1==y3))%求概率密度最大值对应的x值
subplot(1,2,1)%分割绘图区域,第一个子图
plot(x,y1,x1,y3,'p');%绘制概率密度曲线,并标记最大概率点
title('概率密度曲线')
subplot(1,2,2)%分割绘图区域,第二个子图
plot(x,y2);%绘制波函数曲线
title('波函数曲线')
运行结果如下:
当
=1时的运行结果如下,图像如图3所示:
pleaseinputr2
pleaseinputa6
y3=
1.0827
x1=
0.5000
当
=0.5时的运行结果如下,运行图像如图4所示:
pleaseinputr0.5
pleaseinputa20
y3=
0.2707
x1=
2
由以上程序的数据分析和图形显示可知,当
=1时,粒子在x=1处出现的概率最大,概率为0.5413,当当
=0.5时,粒子在x=2处出现的概率最大,概率为0.2707,给定一个
(
)就能求出一个概率最大值和概率最大的x值,再次说明一维运动的粒子在空间各处出现的概率密度是不均匀的,随
的改变而改变,
越大,最大概率密度峰值也远大,这与经典力学很不相同,按照经典力学粒子在空间各处运动是不受限制的,粒子在空间各处出现的概率亦应是相等的,但在量子力学中,这样的结论明显不成立,空间粒子在各处出现的概率明显不均匀,从图3和图4我们可以看出,空间粒子只有可能出现在某一小区域内,在其它区域出现的概率为零。
图3
=1时一维运动粒子的波函数曲线和概率密度曲线
图4
=0.5时一维运动粒子的波函数曲线和概率密度曲线
四、结论
从以上利用MATLAB语言对两个以为运动粒子波函数和概率密度曲线的分析我们不难得出以下结论:
1、MATLAB语言强大的绘图功能可以很有效地帮助我们理解量子力学,理解一维运动粒子
的波粒二象性,在研究一维运动粒子问题时,使用的绘图函数为plot(x,y);这种高层绘图操作简单便捷,方便实用。
2、MATLAB语言具有丰富的符号运算,对于求解一些复杂的微分方程带来了很大的便捷,本文采用了符号函数dslove求解一维薛定谔方程的解析解.
3、MATLAB语言具有强大的矩阵运算功能,在作一些较繁杂的数学运算时,能给我们带来极大的方便,节约时间和精力。
本文用之求粒子的能级快捷准确,而且求出的能级数巨多,达到了手工无法达到的计算效果。
五、课程体会
经过一学期紧张而有序的课程学习,我收获良多,我深刻体会到MATLAB对于我们通信专业的重要性,MATLAB语言相对与同类程序语言具有功能强,效率高,简单易学等特点,在许多领域得到广泛应用。
目前最流行的几种科学计算机软件各具特点,而且都在不断地发展,版本不断涌现,但其中影响最大、流行最广的当属MATLAB语言。
因此学好MATLAB语言实属必要之举,但学校开的MATLAB的课程课时较少,我们课后花费了大量时间学习。
经过短时间的学习,我知道了MATLAB有很好的编辑环境,其有MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器等工具可以方便的使用MATLAB的函数和文件。
它有简单的易用的程序语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
它有强大的科学计算机数据处理能力,它是是一个包含大量计算算法的集合。
它有出色的图形处理功能,MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图可用于科学计算和工程绘图等特点。
下面我具体叙述我的学习体会,在第二章,我们学习了MATLAB数据及其运算,MATLAB数据类型比其他语言更为丰富,除数值型,字符型等基本数据类型外,还有结构体、单元体等更为复杂的对象。
丰富的数据类型,增强了MATLAB的数据表达能力,给应用带来了很大的方便,并且MATLAB在运用数据时能自动判别数据类型,不用先定义后使用,又减少了编程的难度和工作量,因此学习起来倍感轻松。
在第三章,我们学习了MATLAB矩阵分析与处理,MATLAB的矩阵运算功能非常丰富,应用也非常广泛,许多含有矩阵运算的复杂计算问题,在MATLAB中很容易得到解决。
在学习这一章时,深刻体会到MATLAB的计算功能只巨强,在学习线性代数时,许许多多的计算特别繁琐,并且手工计算容易出错,有了MATLAB之后,矩阵的运算就简单多了。
在第四章我们学习了MATLAB一些简单的程序设计,知道MATLAB有循环结构,选择结构和顺序结构。
其中选择结构有if……else结构,if结构,多分支if语句,switch语句,try语句;循环结构中有for语句和while语句。
这些语言的语法规则虽然和其它语言有所区别,但其逻辑思维最基本相同,我们还学习了MATLAB的向量运算,这种运算可以代替循环结构,使程序更简短,降低了编程的工作量。
在这一章,我们还学习了函数文件和命令文件,这些都是MATLAB的功能更完备。
第五章我们学习了MATLAB一系列的绘图函数,用户不需考虑绘图细节,只需给出一些基本参数就能得到所需图形,这一类高层绘图操作刚开始学时,让我们感觉很神奇,很不可思议,以前学习SolidWorks时用命令按钮可以绘制三维曲线已经觉得计算机太厉害了,而MATLAB却能用程序绘制三维图形,实在太让我瞠目结舌了。
我们还可以通过图形句柄进行低层绘图操作,这类操作将图形的每个图形元素看做是一个独立的对象,系统给每个图形分配一个句柄,以后可以通过该句柄进行操作,而不影响图形的其他部分。
这又给用户更加自主地绘制图形创造了条件,丰富了MATLAB的绘图功能。
前五章是我们学习的重点,之后课程还给我们介绍了MATLAB的数值计算和符号计算以及MATLABsimulink仿真等内容。
MATLAB语言的学习过程中,我不但学到了知识和技能,而且磨练了意志,好几次写程序写到深夜一点多。
常常因一小点语法问题和逻辑错误会浪费一个小时,这些都在告诉我细节决定成败,只有注意细节的程序员才能成功。
只有具有坚强意志的人,才能成就一番事业,对于通信工程的学生,接触的软件和硬件都比较多,更应具有顽强的意志和恒心,坚持学习和获取新知识,永不懈怠。
总之MATLAB让我收获颇多,成长良多。
[参考文献]
[1]刘卫国.MATLB程序设计与应用(第二版)[M].北京:
高等教育出版社,2006.
[2]马文蔚.物理学(上册)(第四版)[M],北京:
高等教育出版社,1999.