張巖文
(石河子大學, 新疆 石河子 832000)
?
MatlabGUI仿真在原子物理學教學中的應用
張巖文
(石河子大學, 新疆 石河子832000)
摘 要:利用MatlabGUI設計了實驗仿真界面,仿真實驗界面友好直觀、內(nèi)容豐富,可以設定并改變相關參數(shù)動態(tài)顯示仿真結(jié)果,能方便地觀察到實驗現(xiàn)象,并且可以分析各參數(shù)對原子束裂紋條數(shù)的影響,為原子物理學理論分析與教學提供了新的手段。
關鍵詞:原子物理學教學;斯特恩-蓋拉赫實驗;MatlabGUI仿真
史特恩-蓋拉赫實驗是原子物理學中的一個重要實驗,該實驗對電子自旋理論、角動量量子化理論及空間取向的量子化假設都有重要意義。論文以施特恩-蓋拉赫實驗為例,提出了利用計算機仿真軟件MatlabGUI來制作仿真實驗的方法,詳細地說明了MatlabGUI制作仿真實驗的主要過程和技巧。在制作的仿真實驗中明確地顯示該實驗的實驗裝置以及實驗結(jié)果隨實驗參數(shù)的變化,可以自由的設定想要計算的對象,并清楚地給出原子束分裂的實驗結(jié)果,使學生更加形象具體地認識原子在外場中角動量空間取向的量子化現(xiàn)象,同時也將科學技術(shù)運用到課程教學中,達到科學與教學相統(tǒng)一[1-4]。
1施特恩-蓋拉赫實驗基本原理
原子束在通過一個不均勻的磁場區(qū)域,在磁場作用下發(fā)生偏折,最后沉積在屏上,實驗發(fā)現(xiàn)屏上形成了幾條清晰的黑斑,這一實驗表明原子的磁矩只能取幾個特定的方向,從而驗證了原子角動量的投影是量子化的。原子束偏轉(zhuǎn)的距離取決于以下的公式:原子在非均勻磁場中偏轉(zhuǎn):
其中磁量子數(shù)M=J,J-1,J-2,……,-J;μz為原子在z軸方向的磁矩;g為朗德因子; μB為玻爾磁子;M為磁量子數(shù)[5]。
考慮了原子的自旋后,在原子處于某個確定的總角動量J狀態(tài)時,磁量子數(shù)M為2J+1個,就是說原子束通過非均勻磁場后將分裂成2J+1束。
2施特恩-蓋拉赫實驗的MatlabGUI仿真
2.1界面設計
界面設計主要分為三步:一是整體規(guī)劃界面布局,進行控件的選擇和位置的確定;二是是控件的屬性設置;三是對各個控件代碼進行設計。
第一步構(gòu)思草圖、編排控件的布局。界面如圖1所示,界面布局為4個部分,左上方是選擇原子麥克斯韋速率分布曲線以及相關參數(shù)設定部分,1個坐標軸(Axes)對象用來顯示原子的麥克斯韋速率分布曲線;其中3個 靜 態(tài) 文 本 框 (static text),前面2個用于輸入原子量和溫度,后面1個用于顯示最概然速率,右上方是斯特恩-蓋拉赫實驗裝置示意圖;左下方總共有7個靜態(tài)文本框,用于輸入原子狀態(tài)量子數(shù)和實驗相關參數(shù);右下角是原子通過非均勻磁場的偏轉(zhuǎn)實驗結(jié)果顯示圖,用于顯示仿真結(jié)果[6]。
第二步,完成打開matlab程序在file菜 單 中 選 擇new gui 打 開 guide設 計 界 面 模 板,界 面 模 板 左邊的各個控件可以直接用鼠標拖到編輯框,。然后設置各控件的屬性 比如設置各控件的標識(Tag)顏色字體等。
最后一步是對各個控件代碼的進行設計。這一步最關鍵是OpeningFCN(初始界面函數(shù))和控 件的Callback(回 調(diào) 函 數(shù))代碼的設計。初始界面函數(shù)即設定各參數(shù)的初始值,可根據(jù)實際情況設定,回調(diào)函數(shù)是核心,是對界面控件觸發(fā)時的事件響應函數(shù)[6]。
圖1 施特恩-蓋拉赫實驗的MatlabGUI仿真界面布局
2.2功能調(diào)用
控件除了基本屬性的設置外,還有可能具有執(zhí)行或調(diào)用其他控件的屬性值的功能。每個控件的功能設置類似于高級語言編程中的子程序,但在MATLAB的GUI設計中要簡單得多。由于MATLAB語言具有豐富的函數(shù),編寫控件的功能時,只要調(diào)用MATLAB的函數(shù)和必要的控制語句即可,不需對控件的屬性作過多的描述,對于不熟悉語言編程的設計者,亦不難掌握。具體操作是,在屬性窗口中,選擇屬性“callback”,直接輸入調(diào)用語句,即可實現(xiàn),。以下是幾個關鍵的回調(diào)程序。
2.2.1麥克斯韋速率分布曲線:
function calculate_Callback(Object,eventdata,handles)
m=str2num(get(handles.Mmol,'String'))
Mmol=m(1);
t=str2num(get(handles.edit14,'String'))
T=t(1);
syms v ;
k=1.381e-23;
NA=6.022e23;
f=4*pi*(((Mmol*10^(-3))/6.022e23)/(2*pi*k*T))^(3/2)*exp(-((Mmol*10^(-3))/6.022e23)*v^2/(2*k*T))*v^2;
axes(handles.mxwl);
v = 0:10:1500;
fmxwl=4*pi*(((Mmol*10.^(-3))/NA)./(2*pi*k*T)).^(3/2).*exp(-((Mmol*10.^(-3))/NA)*v.^2./(2*k*T)).*v.^2;
plot(v,fmxwl,'b:*')
set(gca,'XTick',0:200:1500)
xlabel('Independent Variable v(m/s)')
ylabel('MXWL function f(v)')
title('f(v)-v','FontName','old english ','FontSize',16)
holdon,grid on,
2.2.2Vp值返回
R=8.31;
vp=1.41*sqrt(R*T/(Mmol*10^(-3)));
set(handles.edit15,'string',num2str(vp));
2.2.3斯特恩-蓋拉赫實驗結(jié)果顯示
% --- Executes on button press in result.
function result_Callback(hObject,eventdata,handles)
m=str2num(get(handles.Mmol,'String'))
Mmol=m(1);
t=str2num(get(handles.edit14,'String'))
T=t(1);
vp=str2num(get(handles.edit15,'String'))
v=vp(1);
i=0;
for j=J:-1:-J
i=i+1;
JJ(i)=j
end
x=JJ.*(1+((J.*(J+1)-L.*(L+1)+S.*(S+1))./(2.*J.*(J+1)))).*6*delB.*v;
cont=1;
y=repmat(cont,size(x));
axes(handles.resultfig);
bar(x,y,0.3,'k','stacked')
axes(handles.axes5);
k=1.381e-23;
NA=6.022e23;
v = [0:10:1500];
SS=0.5*6.022e23*10^3/Mmol.*jj.*(1+((J.*(J+1)-L.*(L+1)+S.*(S+1))./(2.*J.*(J+1)))).*delB.*9.27400915*10^(-24)*L.^2*v^(-2);
dN=N.*4*pi*(((Mmol*10^(-3))/6.022e23)/(2*pi*k*T))^(3/2)*exp(-((Mmol*10^(-3))/6.022e23)*v^2/(2*k*T))*v^2;
plot(dN,SS,'k')
xlabel('粒子數(shù)密度');ylabel('偏轉(zhuǎn)距離');
title('斯特恩蓋拉赫實驗')
holdon,grid on,
2.3仿真結(jié)果和結(jié)果分析
如圖2所示,在量子數(shù)為J=2時,磁量子數(shù)M可以取5個值-2,-1,0,1,2,原子束被分成了5條。
圖2 在量子數(shù)分別為J=2,L=1,S=3時的施特恩-蓋拉赫實驗MatlabGUI 仿真結(jié)果
如圖3所示,改變參數(shù)J,在量子數(shù)為J=3/2時,磁量子數(shù)M可以取4個值-3/2,-1/2,1/2,3/2,原子束被分成了4條。
通過改變其它的參數(shù),還可以得到不同條件下的施特恩-蓋拉赫實驗MatlabGUI仿真結(jié)果。
圖3 在量子數(shù)分別為J=3/2,L=1,S=1時的施特恩-蓋拉赫實驗MatlabGUI仿真結(jié)果
2.4改進的方法及設想
在施特恩-蓋拉赫實驗Matlab GUI仿真過程中,選取了一定溫度下原子氣體最概然速率Vp作為原子束的速率,然后進行的仿真,這與真實的實驗之間還有一定的差距,需要做出修正。修正的設想是,利用泄流分布方程給出原子隨位置的沉積概率公式,從而實現(xiàn)全部氣體分子在不同位置的沉積結(jié)果,這樣就可以更加真實地模擬施特恩-蓋拉赫實驗。
3結(jié)論
利用MatlabGUI進行了施特恩-蓋拉赫實驗的仿真,設計出了直觀的原子物理學實驗仿真界面,并且在界面上可以輸入?yún)?shù),通過改變各個參數(shù)和原子的狀態(tài)量子數(shù),就可以給出相應的實驗結(jié)果。該仿真實驗有利于學生觀察和分析各參數(shù)對實驗的影響,能使原子物理學教學更生動、更高效,提高了學生的學習興趣,也為相關課件的設計提供了新的途徑。
參考文獻:
[1]楊福家.原子物理學[M].3版,北京:高教出版社,2000:157-159.
[2]邱忠安,宋昭朋.堿束施特恩-格拉赫實驗[J].物理實驗,2002,22(11):3-6.
[3]Cohen V W,Ellett A.Velocity Analysis by Means of the Stern-Gerlach Effect[J].Phys Rev,1937,52:502-504.
[4]趙凱華,羅蔚茵.新概念物理教程—熱學[M].北京:高等教育出版社:69-71.
[5]張容.基于MATLAB的弗蘭克赫茲實驗數(shù)據(jù)處理[J].大學物理實驗,2014(5):6-8.
[6]王棟,等.基于Matlab光電效應測量光速的新方法研究[J].大學物理實驗,2014(4):31-32.
MatlabGUI Simulation Application in Atomic Physics Teaching
ZHANG Yan-wen
(Faculty of Science,Shihezi University,Xinjiang Shihezi 832003)
Abstract:The simulation interface is designed using the matlabGUI,simulation experiment has a friendly and intuitive interface,rich in content,can set and change the related parameters of the dynamic display of the simulation results,can be conveniently observed experimental phenomena and can analysis of the influence of various parameters on the number of atomic beam cracks,provides a new method for the analysis of atomic physics theory and teaching.
Key words:atomic physics teaching;Stern Gerlach experiment;MatlabGUI simulation
中圖分類號:O 4-39
文獻標志碼:A
DOI:10.14139/j.cnki.cn22-1228.2016.001.023
文章編號:1007-2934(2016)01-0090-04
基金項目:石河子大學應用基礎研究青年項目(2014ZRKXYQ08)
收稿日期:2015-09-20