欒國杰
摘要: 本文對光的雙縫干涉進(jìn)行了分析,利用MATLAB與C#混合編程,實(shí)現(xiàn)了光的干涉仿真。
關(guān)鍵詞: MATLABC#混合編程光學(xué)規(guī)律干涉仿真
1.開發(fā)背景
光學(xué)是物理學(xué)教學(xué)和實(shí)驗(yàn)的重要組成部分。而光學(xué)實(shí)驗(yàn)需要用到復(fù)雜貴重的實(shí)驗(yàn)儀器,一般的中學(xué)不具備這樣的實(shí)驗(yàn)條件,另外教師上課時(shí)做演示實(shí)驗(yàn)也不太方便,而利用計(jì)算機(jī)進(jìn)行仿真,就可以解決以上問題,使得一些抽象的概念形象化,更易于學(xué)生接受,具有很好的教學(xué)效果。
MATLAB是由MathWorks公司開發(fā)的一種主要用于數(shù)值計(jì)算及可視化圖形處理的工程語言,是當(dāng)今最優(yōu)秀的科技應(yīng)用軟件之一。它將數(shù)值分析、矩陣運(yùn)算、圖形圖像處理、信號(hào)處理和仿真等諸多強(qiáng)大的功能集成在較易使用的交互式計(jì)算機(jī)環(huán)境中,為科學(xué)研究、工程應(yīng)用提供了一種功能強(qiáng)、效率高的編程工具,但是MATLAB有界面開發(fā)能力較差、執(zhí)行速度不高、局限于MATLAB運(yùn)行環(huán)境等缺點(diǎn)。
C#是針對.NET平臺(tái)而設(shè)計(jì)的,是微軟.NET計(jì)劃中的主要開發(fā)語言。利用C#開發(fā)的系統(tǒng)具有界面友好、執(zhí)行速度快、易維護(hù)和升級(jí)等優(yōu)點(diǎn),能夠生成可執(zhí)行文件,有效地保護(hù)算法和數(shù)據(jù),并可脫離編程環(huán)境運(yùn)行。但是在工程計(jì)算方面和MATLAB相比編程顯得復(fù)雜。
2.數(shù)學(xué)模型
兩束頻率相同的單色光在空間某點(diǎn)相遇時(shí),討論光強(qiáng)和干涉條紋的分布規(guī)律。根據(jù)波的疊加理論,兩束同頻率單色光在空間某一點(diǎn)光矢量的大小為
E=Ecos(ωt+Φ),E=Ecos(ωt+Φ),(1)
其中,E和E分別是兩個(gè)光矢量的振幅,Φ和Φ分別是初相。如果兩個(gè)光矢量的方向相同,合成的光矢量為
E=Ecos(ωt+Φ),(2)
其中,振幅和初相分別為
E=,(3a)
Φ=arctan。(3b)
在一定時(shí)間內(nèi)觀察到的平均光強(qiáng)I與光矢量的平方的平均值成正比
I=a=a[++2EE],(4)
其中a是比例系數(shù)。對于普通光源,兩光波之間的相位差Φ-Φ是隨機(jī)變化的,平均值為零,因此
I=a+a=I+I。(5)
這就是光的非相干疊加,總光強(qiáng)等于兩束光各自照射時(shí)的光強(qiáng)之和。
如果兩束光的相位差恒定,則合成光強(qiáng)為
I=I+I+2cos△Φ,(6a)
其中ΔΦ=Φ-Φ,第三項(xiàng)是干涉項(xiàng)。這就是光的相干疊加。如果I=I,則合成光強(qiáng)為
I=2I(1+cos△Φ)=4Icos。(6b)
當(dāng)兩個(gè)光源的強(qiáng)度相等時(shí),相對光強(qiáng)為
I==2+2cos△Φ=4cos。(7)
3.仿真實(shí)現(xiàn)
(1)首先在MATLAB中寫下Interference.m程序,實(shí)現(xiàn)繪圖。
functionInterference(n,dphi)
%n條紋的最高階數(shù)dphi相差的增量
%兩束相干光的干涉強(qiáng)度和干涉條紋
(2)使用MATLAB的deploytool工具,將m文件編譯成Matlab_Optical.dll文件。
(3)創(chuàng)建C#項(xiàng)目,添加引用MWArray.dll和Matlab_Optical.dll文件。
using Math Works.MATLAB.NET.Utility;
using Math Works.MATLAB.NET.Arrays;
using Matlab_Optical;
仿真代碼:
Optical dr=newOptical();
MWArray n=(MWArray)Convert.ToDouble(textBox1.Text);
MWArray dphi=(MWArray)Convert.ToDouble(textBox2.Text);
dr.Interference(n,dphi);
Bitmap bp=newBitmap("interference.jpg");
this.pictureBox1.Image=bp;
(4)仿真結(jié)果。
4.結(jié)論
本文對光的雙縫干涉進(jìn)行了分析,應(yīng)用C#與MATLAB混合編程,畫出光強(qiáng)的曲線和干涉圖樣,掌握了光的干涉的規(guī)律,計(jì)算機(jī)模擬不但能夠再現(xiàn)實(shí)驗(yàn)過程和結(jié)果,而且有利于理解和掌握光學(xué)規(guī)律。
參考文獻(xiàn):
[1]莊建.基于Matlab的光學(xué)實(shí)驗(yàn)仿真平臺(tái).成都大學(xué)學(xué)報(bào),2006,25(3).
[2]王娟.C#.net與Matlab混合編程的快速實(shí)現(xiàn).科技資訊,2006,33.