【正文】
........................................................................................ 9 附錄 激光原理課程設(shè)計 1 一、 設(shè)計 目的 為了加深對激光原理中 FoxLi平行平面腔的迭代解法的理解,學(xué)習(xí) matlab的使用 ,鍛煉運用數(shù)值方法解決專業(yè)問題的能力。在得出的一維圖像的基礎(chǔ)上作出鏡面上光強的二維分布。因此,兩個界面上的場必然是互相關(guān)聯(lián)的:一個鏡面上的場可以視為由另一個鏡面上的場所產(chǎn)生,于是求解鏡面上穩(wěn)態(tài)場的分布問題就歸結(jié)為求解一個積分方程??梢灶A(yù)期:在經(jīng)過足夠多次渡越之后,能形成這樣一種 穩(wěn)態(tài)場:分布不再受衍射的影響,在腔內(nèi)往返一次后能夠“再現(xiàn)”出發(fā)時的場分布,即實現(xiàn)了模的“自再現(xiàn)”,具體過程圖 1所示: 激光原理課程設(shè)計 2 圖 1 開腔中自再現(xiàn)模的形成 光學(xué)中的惠更斯 — 菲涅爾原理是從理論上分析衍射問題的基礎(chǔ),該原理的嚴(yán)格數(shù)學(xué)表示是菲涅爾 — 基爾霍夫衍射積分。(4),( ??? ? 式中, ? 為 ),( yx ?? 與 ),( yx 連線的長度, θ 為 S面上點 ),( yx ?? 處的 法線和上述連線之間的夾角, sd? 為 S 面上的面積元, k為波矢的模。) 1 ( 39。) ( 39。 39。)2( ) ( , 39。( , 39。 雖然是復(fù)數(shù)積分,但其和實數(shù)積分實現(xiàn)方法相同, 即 取一定步長,用矩形面積的和代替函數(shù)的定積分。 L=input(39。鏡長 a=39。)。 u_=ones(1,steps)。 end subplot(2,1,1) 激光原理課程設(shè)計 5 plot(x,abs(u0)/abs(u0(steps/2))) xlabel(39。相對振幅 39。 subplot(2,1,2) plot(x,angle_u0) xlabel(39。相對相位 39。 y=sqrt(1i/L*exp(1i*k*L))*sum(exp(1i*k/2/L*(x_+x).^2).*u)*step_length。用該判據(jù)得到渡越 188 次后可認(rèn)為是自再現(xiàn)模。 L=input(39。鏡長 a=39。)。 u_=ones(1,steps)。 u30(m,:)=u0。 while(flag==1) if max(abs(u30(:,steps/4)))min(abs(u30(:,steps/4)))eps_u %steps/4 為 x=a/2 處,判據(jù)為連續(xù) 30次渡越中最大振幅減去最小振幅 小于 eps_u flag=0。 u_=u0/max(abs(u0))。 end end N subplot(2,1,1) plot(x,abs(u0)/abs(u0(steps/2))) xlabel(39。相對振幅 39。 subplot(2,1,2) plot(x,angle_u0) xlabel(39。相對相位 39。 y=sqrt(1i/L*exp(1i*k*L))*sum(exp(1i*k/2/L*(x_+x).^2).*u)*step_length。而且在計算 積分的時候運用了循環(huán)的嵌套,使得計算效率比較低。CALLBACK39。Value39。gui_Name39。gui_OpeningF39。gui_LayoutF39。 if nargin amp。 else gui_mainf(gui_State, varargin{:})。 激光原理課程設(shè)計 11 axes() LOGO=imread(39。 % hObject handle to figure % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default mand line output from handles structure varargout{1} = 。String39。BackgroundColor39。BackgroundColor39。 end function Length_Callback(hObject, eventdata, handles) % hObject handle to Length (see GCBO) % eventdata reserved to be defined in a future version of MATLAB 激光原理課程設(shè)計 12 % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,39。)) returns contents of Length as a double % Executes during object creation, after setting all properties. function Length_CreateF(hObject, eventdata, handles) % hObject handle to Length (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles empty handles not created until after all CreateFs called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc amp。), get(0,39。,39。String39。amp。defaultUicontrolBackgroundColor39。white39。) returns contents of times as text % str2double(get(hObject,39。 isequal(get(hObject,39。)) set(hObject,39。)。 L=str2num(get(,39。String39。))。 u_=ones(1,steps)。 axes() plot(x,angle_u0) u_=u0/max(abs(u0))。 L=str2num(get(,39。String39。))。 [X,Y]=meshgrid(linspace(a,a,50),linspace(a,a,50))。 Z_A=sqrt((interp1(x,abs_u0,X)).^2+(interp1(x,abs_u0,Y)).^2)。 axes() surf(X,Y,Z_P) axis([a a a a 10 90]) u_=u0/max(abs(u0))。