MATLAB在固体物理教学中的应用
摘 要:随着现代教学理念和计算机的不断发展,在固体物理学中引入MATLAB软件对一些基本概念进行定性分析和定量计算,已经得到各大高校教师和学生的广泛认可。本文详细讨论了MATLAB软件在《固体物理学》中的应用,并依靠MATLAB强大的计算和绘图,动画功能计算了固体物理学中晶格振动中的相关数据,并通过动画演示了晶格振动。教学实践表明,引入MATLAB可以有效地改进教学效果,在丰富课堂知识的同时还能检验学生的课外实践能力,培养学生的创新精神。 关键词:MATLAB;固体物理学;晶格振动;教学研究
1 引言
《固体物理学》是研究固体物质的物理性质、微观结构、构成物质的各种粒子的运动形态及其相互关系的科学。它是物理学中内容极丰富、应用极广泛的分支学科。固体物理是微电子技术、光电子学技术、能源技术、材料科学等相关技术学科的基础,通过对该门课程的学习,学生可以更加深刻地认识固体中原子和电子的状态和行为,可以为以后的半导体物理的学习打下坚实的基础。固体物理的理论性强,概念较为抽象,学生对一些基本的概念理解不清晰。同时,学校教学方法单一,注重知识的灌输,只让学生知道固体物理的知识点,而忽视了对学生相关课程设计能力的培养,学生学到的只是死板的书本知识。MATLAB(Matrix Laboratory)是MathWorks公司开发的,目前国际上最流行,应用最广泛的科学与工程计算软件,它广泛用于自动控制,数学运算,信号分析,计算机技术,图像信号处理,财务分析,航天工业等各行各业,也是国内外高校和研究部门进行许多科学研究的重要工具。同时,MATLAB在固体与半导体物理领域中的应用也非常广泛,应用MATLAB可以方便计算固体物理中的各种问题,并对相关问题进行建模分析得到图形化的输出结果。应用MATLAB进行辅助教学,让固体物理学中抽象的概念通过图形化的输出可以加深学生对知识点的理解和掌握,同时可以熟练MATLAB编程。本文主要讨论MATLAB在晶格振动的应用。
2 用MATLAB分析和计算晶格振动情况
晶格具有周期性,因而,晶格的振动具有波的形式,称为格波。格波和一般连续介质波具有共同的波的特征,但也具有它不同的特点。一维单原子链是学习格波的典型例子,它的振动情况最简单又能较为全面地表现格波的基本特点。 图1所示的单原子链可以看作是一个最简单的晶格,在平衡位置时相邻原子间的
图1
距离为a(即原胞体积为a),每个原胞包含一个原子,质量为m,原子限制在沿
链方向运动,偏离格点的唯一用...,un?1,un,un?1,...,如图1中所标明,另外假设只有近邻原子间才存在相互作用,互作用能可以一般地写成
1U(a??)?U(a)???2?高阶项
2 其中?表示对平衡距离a的偏离,按一般小振动近似相互作用能,保留到
?2,即简谐近似,相邻原子间的作用力为
dU???? d?表明存在于原子间的是正比于相对位移的弹性恢复力。
根据牛顿定理用直接解运动方程的方法,求解链的振动。第n个原子受到n-1个原子和n+1个原子的作用力分别为
F??
合力为
F1???????(xn?xn?1)F2???????(xn?xn?1)F??(xn?1?xn?1?2xn)
运动方程为
mxn??(xn?1?xn?1?2xn)
..解运动方程可得
xn?Aei(qna?wt)
其中,A是简谐波的振幅,q为波矢,w为角频率,qna为第n个原子振动的位相因子,qa为相邻原子间的位相差。
用MATLAB软件对该简谐运动进行分析计算: n=1 A=1 w=0.1 a=1 q=1
x=0:.5:200;
y=A*cos(q*a*n-w*x); figure(1)
for k=1:length(x)/2 figure(1)
temp_y=A*cos(q*a*n-w*(x+0.5*k)); plot(x,temp_y); axis([0 40 -1 1]) hold on for l=1:10
h=line(0,l,'color','red','marker','.','markersize',40,'erasemode','xor');
set(h,'xdata',x( (l-1)*10+1 ),'ydata',y( round(k+(l-1)*10+1)) );
end
hold off
pause(0.0055) drawnow end
运行可以得到单原子晶格振动的动画演示,如图2所示。
图2
将运动方程的解带回运动方程,可以轻松得到一维单原子格波的色散关系
1w?wmaxsin(qa)
2其中,wmax?2?m。
用MATLAB进行作图分析 b=2 m=1
q=-pi/a:0.01:pi/a a=1
w=2*(b/m)^(1/2)*abs(sin(1/2*q*a)) plot(q,w)
运行后,得到图像输出,如图3所示。
图3
对于一维双原子晶格振动,我们可以采用类似的思路进行分析,我们以声学波短波极限和光学波短波极限为例进行MATLAB动画演示。
声学波短波极限 n=1 A=1 w=0.1 a=1 q=1
x=0:.5:300;
y=A*cos(q*a*n-w*x); figure(1)
for k=1:length(x)/2 figure(1)
temp_y=A*cos(q*a*n-w*(x+0.5*k)); %plot(x,temp_y); clf
axis([30 100 -1 1]) hold on for l=1:20
h=line(0,l,'color','red','marker','.','markersize',30,'erasemode','xor');
set(h,'xdata',x( (l-1)*10+1 ),'ydata',y( round(1))-0.55 );
h=line(0,l,'color','blue','marker','.','markersize',40,'erasemode','xor');
set(h,'xdata',x( (l+5.5)*10+1 ),'ydata',y( round(k+(l-1)*10+1)) );
end
hold off
pause(0.0055) drawnow end
运行后得到图像输出,如图4所示。