基于Python的光学实验仿真和在医用物理学教学中的应用
2021-05-28张文妙韵陈昭喜
张文妙韵,陈昭喜
(广州中医药大学医学信息工程学院,广州510006)
0 引言
《医用物理学》是高等医药学专业及其相近专业的一门重要基础课程,通过对该课程的学习可以获得专业所需的必要的物理知识,提高医药学相关专业人员的科学素养[1-2]。波动光学是医用物理学中的一个重要章节,主要围绕光的干涉、衍射和偏振等特征进行讲解,是进一步学习激光医学、全息学等专业领域知识的基础。但是由于光学中的概念通常较为抽象,单纯使用传统教学,学生不能很好地理解相关原理和体会实验现象,同时教学过程也较为枯燥。为了探索解决这个问题,本文利用PyCharm软件,基于Python语言及其相应的科学计算库和数据可视化模块Matplotlib进行光学实验的仿真[3],并通过调用tkinter库实现了简单的界面交互,实现杨氏双缝干涉实验、单缝衍射实验和光栅衍射实验的仿真,能够直观地看出参数变化给结果带来的影响,将该仿真实验用于医用物理学的课堂教学中,有助于学生更深刻地理解相关理论知识,改善教学效果。
1 基于实验原理进行仿真
1.1 实验原理
仿真主要是基于屏幕上的光强分布进行,此处以杨氏双缝干涉实验为例进行简要说明。在杨氏双缝实验中(实验示意图如图1所示),处于同一波阵面上的两个狭缝发出两束相干光,这两束相干波在双缝后面放置的屏幕上叠相遇加,形成一系列明暗相间的干涉条纹。条纹的明暗取决于这两束光相遇时的光程差。
图1 杨氏双缝实验示意图
任意分析屏幕上的一点(例如P点),来自两个狭缝的相干光到达该位置时,它们的光程差为:
它们的相位差为:
其中λ为单色相干光的波长。
这两束光在P点相遇合成后的光强为:I1和I2是两束光分别照射时的光强。
如果假设I1和I2都是I0,则合成光强为:
当dsinθ=±kλ(k=0,1,2,…)时,P点显示的将是明纹。而当时,P点显示的将是暗纹。条纹间距为:
1.2 仿真实验
实验仿真的是屏幕上不同位置的光强变化,θ角变化范围为(-π/2,π/2),设定入射光的波长λ和双缝间距d,那么屏幕上的光强分布就只是随着θ角变化的函数(此处sinθ∈(-1:1)),以sinθ为纵坐标,I/I0为横坐标,根据公式(4)可以得到光强的分布情况(如2(b)所示)。进一步将光强赋予灰度值,就可以直观地显示干涉条纹的明暗分布形态(如图2(a)所示)。图2是入射波长为700nm,双缝间距为4μm时双缝干涉实验的仿真效果,从图中可以看出,双缝干涉实验的条纹明暗相间等间距分布,明纹处的光强为单个狭缝入射光强的4倍。为了便于观察入射波长或狭缝间距对干涉条纹的影响,可通过调整这两个参数的设置来观察干涉图样的形态变化,如图3所示为是入射波长为700nm,双缝间距为2μm时双缝干涉实验的仿真效果,可见随着狭缝的变窄,条纹间距变宽,这与公式(5)表示的关系相符。
图2 双缝实验仿真结果(波长700nm,双缝间距4μm)
2 图形界面交互的实现
为了便于学习双缝干涉、单缝衍射和光栅衍射的实验原理,仿真实验结果,并对比这三个实验之间的区别与联系,本文通过调用tkinter库来实现简单的界面交互,提供有两个界面。第一个界面(图4)用于展示双缝干涉实验、单缝衍射实验、光栅衍射实验的光路示意图,在这个界面通过点击“查看仿真结果”按钮可调出第二个界面(图5),第二个界面利用Matplotlib库绘制仿真结果,并将绘制的仿真结果图形嵌入到TK界面里面。在该界面中,仿真不同的实验会显示相应的参数设置控件,如选择“双缝干涉实验”,会显示设置“波长”、“双缝间距”;选择“光栅衍射”,会显示设置“波长”、“狭缝宽度”、“光栅常数”和“光栅数目”,通过设置不同的参数,可以观察到仿真结果(条纹图样和光强分布)的变化(如图5),从而直观地感受到参数变化对实验结果的影响。此外,也可以对比不同实验之间的区别与联系,如在仿真光栅衍射的时候,如果光栅数目为2,狭缝设置的足够小,仿真的结果就类似于双缝干涉实验效果;如果狭缝数目设为1,则可观察到单缝衍射的效果(如图6)。tkinter界面布局有三种几何管理的办法,分别是pack、grid、place,本文采用pack结合place来完成界面中按钮和输入框等控件的布局。
图3 双缝实验仿真结果(波长700nm,双缝间距2μm)
图4 光学仿真实验界面-1
图5 光学仿真实验界面-2-光栅衍射
图6 光栅衍射狭缝设置为1时成了单缝衍射效果
3 结语
本文为了解决医用物理学教学中学生理解部分光学理论存在困难的问题,基于Python语言其相应的科学计算库和数据可视化模块对典型的光学实验进行了仿真,能够让学生直观感受到波长、狭缝宽度等具体参数变化对条纹图样的影响,可以加深学生对光的波动性的理解和认识,进一步激发学生的学习兴趣,同时其操作简单,效果直观,有助于提高课堂教学的效率。