基于MATLAB的凸透镜成像规律的仿真*
2016-01-20李月梅徐晓梅
郑 颖 李月梅 徐晓梅
( 云南师范大学物理与电子信息学院 云南 昆明 650500)
基于MATLAB的凸透镜成像规律的仿真*
郑 颖李月梅徐晓梅
( 云南师范大学物理与电子信息学院云南 昆明650500)
摘 要:基于MATLAB GUI平台对凸透镜成像的规律及动态变化进行计算机仿真,得到不同物距下凸透镜的成像图像,动态地呈现出像距与物距和焦距之间的变化关系.仿真为中学凸透镜成像规律教学提供了直观的教学辅助手段.
关键词:凸透镜成像MATLAB计算机仿真
凸透镜成像规律是中学生需要掌握的重点内容之一.在初高中物理教学中探究凸透镜的成像规律,主要是在测得凸透镜焦距的条件下,运用蜡烛作为光源,通过实验测定与焦距相关的物像位置关系,实验现象客观、真实.但是在教学实施时,某些学校由于实验设备、仪器、场地等不足,加之课时的限制及实验所需的严格要求,凸透镜成像规律实验教学的有效和高效实施或受到影响.故此,许多教师就会偏向于选择直接讲授的形式来使学生理解这个内容.物理学是一门以实验为基础的学科,如果仅用讲授的方式教学,并不能很好地让学生理解物理现象及规律.课堂教学中,在实验演示基础上,如果能利用MATLAB进行定量分析,实现计算机对凸透镜成像规律的仿真,辅助课堂实验教学的有效开展。这样不仅可以最大限度地缓解仪器、场地、时间不足的困扰,还可以巧妙地把现代教育技术理念和课堂教学结合起来,有效、高效地帮助学生加深对这一物理现象及规律的理解.
文献调研反映出,在探究“凸透镜成像的规律”时,为了保证在实验现象明显、可观的条件下,许多人尝试了改善教材中的实验装置来达到效果,或采用多媒体动画来呈现实验结果,但利用MATLAB来仿真凸透镜成像规律的不多,有的也是侧重于利用MATLAB来呈现凸透镜成像的实验结果[1].本文主要是从理论上根据凸透镜的焦距公式,利用MATLAB GUI平台仿真出凸透镜成像的规律;仿真过程中只需改变相应的参数即可动态地呈现出像距与物距和焦距之间的变化关系.
1凸透镜成像规律
高中物理教材中在测得凸透镜焦距大小的条件下,可以用实验确定在光屏上像的位置;在凸透镜的焦距已知时,也可以确定入射光线束的成像位置,利用透镜成像作图法[2],如图1所示.根据某一点B所发出的3条特殊光线中的任意两条在透镜后面的相交点就是入射光线束的像点.
还可以利用透镜成像公式
(1)
如果已知透镜的焦距f和物距u,便能确定像的位置,得到像距v[2].
图1 作图法探究凸透镜的成像规律
这里以折射率为n的双凸透镜(可看作是两个平凸透镜的组合)为例,在满足近轴光线条件下,凸透镜的厚度是可以忽略不计的,按符号规定双凸透镜的两个曲率半径分别为r1>0,r2<0,因此,该透镜焦距的公式为[3]
(2)
另外,在“探究凸透镜成像的规律”的实验结果中证明,凸透镜的成像规律与物距和像距之间的关系有关,不同物像关系下的成像规律有所不同,具体成像规律如表1所示.
表1 不同物距下的凸透镜成像规律
根据公式(1)和(2),本文利用MATLAB强大的数据处理和图像处理GUI平台,通过运行程序改变物距u的参数值来实现对表1所示的凸透镜成像规律的计算机仿真实验.
2凸透镜成像规律的仿真
2.1MATLAB GUI平台的建立
MATLAB作为新兴的编程语言和可视化工具,除了能进行科学计算,还具有强大的图形图像处理功能.其中GUI(Graphical User Interfaces)是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面.它可以很好地提供应用程序或某种技术、方法的演示[4].
在MATLAB主窗口中,选择File菜单下的New菜单项,再选择其中的GUI命令,在出现的图形用户界面的设计模板中选中BlankGUI(空白模板),然后用鼠标选择左侧栏面板中相应的交互控件(坐标抽、按钮、文本框等),添加到设计区域,通过调整工具调整控件的大小和位置,如图2所示.
图2 控件调整最终界面
双击控件设置各个控件属性,在函数加载完成以后,运行程序得到如图3所示的初始化界面.
图3 初始运行界面
在满足近轴光线的条件下,利用折射率为n的薄凸透镜的焦距公式,即公式(2),结合物理知识,构造实际数学模型,编写程序进行具体的数值计算.以下给出模拟凸透镜成像规律所用到的主要程序:
set(handles.title_text,′string′,[strcat(′凸透镜成像matlab仿真′)]);%初始交互界面
yb=sqrt(a*(2*r-a));
%根据球面方程绘制双凸透镜
程序中r已设定成具体数值,其绝对值大小与透镜的曲率半径相同.确定好光心O后,计算机根据透镜的焦距公式(2)进行数值计算,得到焦距的大小,再由光心到焦点的距离为焦距确定焦点F和F′的位置.接下来输入物距u,程序代码如下:
u=str2num(get(handles.u_edit,′string′));
%输入物距u
在物距对应坐标位置绘制物体AB.之后,由计算机判断物距与一倍焦距和二倍焦距之间的关系,运用透镜成像公式(1)算出像距v的大小,确定像的大小、正倒和虚实.但由于MATLAB接近书写计算公式的思维方式,允许以数字形式的语言来编写程序,为简单直接地比较凸透镜在不同物距下的成像规律,本文在程序中设定了凸透镜的两个曲率半径的绝对值均为1,折射率为1.5,运行程序时读者可在物距控件框中输入任何符合条件的物距u的参数值来得到凸透镜成像的规律图.用MATLAB GUI仿真出来的凸透镜成像规律如下:
(1)当u>2f时,为使规律图完整清晰地呈现在图形界面中,在物距控件框中分别输入u=2.2和u=3.5,运行程序
set(handles.result_text,′string′,[′物距大于2倍焦距,成倒立缩小的实像′]);
在图形界面框中显示如图4所示的运行结果,图中AB表示实物,A′B′表示凸透镜成的像.此时成倒立缩小的实像;对比图4(a)中u=2.2和图4(b)中u=3.5两种情况下的规律图可见,物体离透镜越远,所成的像越小;
(a)u=2.2时凸透镜成像规律
(b)u=3.5时凸透镜成像规律
(2)当u=2f时,在物距控件框中输入u=2,运行程序
set(handles.result_text,′string′,[′物距等于2倍焦距,成倒立等大的实像′]);
在图形界面框中显示如图5所示的运行结果,此时成倒立等大的实像,像距v=2f;
图5 u=2时凸透镜成像规律
(3)当f
set(handles.result_text,′string′,[′物距大于1倍焦距小于2倍焦距,成倒立放大的实像′]);
在图形界框中显示如图6所示的运行结果,此时成倒立放大的实像;对比图6(a)中u=1.5和图6(b)中u=1.8两种情况下的规律图可见物体离焦点F′越近,所成的像越大;
(a)u=1.5时凸透镜成像规律
(b)u=1.8时凸透镜成像规律
(4)当u=f时,在物距控件框中输入u=1,运行程序
set(handles.result_text,′string′,[′物距等于1倍焦距,不能成像′]);
在图形界面框中如图7所示的运行结果,此时凸透镜不能成像,光线经透镜折射后成为平行光;
图7 u=1时凸透镜成像规律
(5)当u set(handles.result_text,′string′,[′物距小于1倍焦距,成正立放大的虚像′]); (a)u=0.4时凸透镜成像规律 (b)u=0.6时凸透镜成像规律 在图形界面框中显示如图8所示的运行结果,此时成正立放大的虚像,在物距小于一倍焦距的情况下,经透镜折射的光线不能相交成实像,但折射光线的反向延长线能相交,在物体的同侧可以看到正立、放大的虚像;对比图8(a)u=0.4和图8(b)中u=0.6两种情况下的规律图可见物体越接近焦点F′,所见的虚像越大. 仿真结果表明在不需要任何光学仪器的情况下,通过MATLAB改变参数来得到凸透镜在不同物距下的成像规律的仿真,仿真结果与理论推导及物理实验所得结论是吻合的;而且仿真成像迅速、准确,可以直观、精确地显示物理量间的变化规律. MATLAB辅助教学可以将一些抽象、难做的实验规律通过仿真实验生动地描绘出来,把复杂的物理过程可视化,通过学生视觉体验的结合,降低了实验教学难度,提高教学、学习效率.需要注意的是,MATLAB作为一种教学辅助工具,一是需要教师熟练掌握功能和实用技巧;二是教学设计和教学实施中,要处理好与演示实验、学生动手实验、教师讲解等有机融合及整合,切记不能为仿真而仿真,将教师自己的教学“偏离”位置. 参 考 文 献 1张建强,张亚萍.凸透镜成像的计算机模拟.曲阜师范大学学报,2012,38(1):71~72 2张大昌.普通高中课程标准实验教科书物理(选修2-3).北京:人民教育出版社,2011.10~18 3章志鸣,沈元华,陈慧芬.光学(第三版).北京:高等教育出版社,2009.55~57 4陈垚光等.精通MATLAB GUI设计(第3版).北京:电子工业出版社,2013.228~241 通讯作者:徐晓梅(1963-),女,副教授,研究生导师,主要从事大学物理教学及物理课程与教学论研究. 作者简介:郑颖(1995-),女,在读硕士研究生,从事物理学科教学研究. 收稿日期:*国家级专业(物理专业)综合改革试点项目.