高等光學例題解析_第1頁
高等光學例題解析_第2頁
高等光學例題解析_第3頁
高等光學例題解析_第4頁
高等光學例題解析_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

高等光學----第三章例題講解clearcloseallbesselj1=@(x)besselj(1,x);forn=1:10z(n)=fzero(besselj1,[(n-1)n]*pi);endx=0:pi/100:10*pi;y=besselj(1,x);plot(z,zeros(1,10),'o',x,y,'-')line([010*pi],[00],'color','black')axis([010*pi-0.51.0])xlabel('U')ylabel('J_1(U)')[(1:n)'z']MATLAB程序:例3.1求解一階貝塞爾函數(shù)前10個零點并標注,做函數(shù)曲線1.匿名函數(shù)直接調(diào)用格式besselj1=@(x)besselj(1,x);2.for循環(huán)體Forindex=[matrix](定義索引矩陣)

commandstobeexecuted(執(zhí)行命令)End3.fzero查找一元連續(xù)函數(shù)的零點x=fzero(f,x0)%查找f函數(shù)在x0附近的零點4.zeros返回一個零矩陣zeros(n,m)返回一個n行m列的零矩陣5.line畫線函數(shù)line([X1X2],[Y1Y2],S),就是在點A(X1,Y1)和點B(X2Y2)之間畫一條直線,S為其它屬性(顏色,線的粗細等)。6.axis(x1x2y1y2)設(shè)置坐標軸范圍知識點講解:結(jié)果顯示:一階貝塞爾函數(shù)零點數(shù)值解:一階貝塞爾函數(shù)曲線及其標注零點:functionxp=FindZeroOfBesselj(m,n)xp=zeros(n,1);x0=m+2.5;xp(1)=fzero(@(x)besselj(m,x),x0);

if(n>1.5)xp(2)=fzero(@(x)besselj(m,x),xp(1)+pi);end

if(n>2.5)forii=3:nxp(ii)=fzero(@(x)besselj(m,x),2*xp(ii-1)-xp(ii-2));endendx=linspace(0,ceil(xp(end)),1000);y=besselj(m,x);plot(xp,zeros(1,n),'o',x,y,'-')%`作出m階貝賽爾函數(shù)曲線并標記其零點`line([0ceil(xp(end))],[00],'color','black')axis([0ceil(xp(end))-0.51.0])xlabel('U')ylabel('J(U)')title(['m='num2str(m)',n='num2str(n)])求解m階貝塞爾函數(shù)的前n個根MATLAB程序1.Function用來定義一個函數(shù),Xp是輸出變量,(m,n)是輸入變量,F(xiàn)indZeroOfBesselj是函數(shù)名,在MATLAB的命令窗口中調(diào)用FindZeroOfBesselj(m,n)就可得到對應(yīng)解。2.根據(jù)表3.5知道m(xù)階貝塞爾函數(shù)的第1個根在哪個數(shù)值附近,再用fzero求精確的貝塞爾函數(shù)的根,根據(jù)求的前n個根不同,所以需要確定在不同的x值附近求精確的貝塞爾函數(shù)的根3.

Linespace(x1,x2,N)用于產(chǎn)生x1,x2之間的N點行矩陣4.Ceil函數(shù)是在朝正無窮的方向取整知識點講解:結(jié)果顯示:10階貝塞爾函數(shù)曲線及其前15個標注零點:10階貝塞爾函數(shù)零點數(shù)值解:例3.2MATLAB程序:clearcloseallticVmax=10;N=100;forj=1:NV(j)=j/N*Vmax;Vtemp=V(j);Utemp=NaN;i=0;while(isnan(Utemp)&&i<N+1)

init=Vtemp*(i+1)/N-eps;

tryUtemp=fzero(@(Utemp)...besselj(0,Utemp)/(Utemp*besselj(1,Utemp))-...besselk(0,sqrt(Vtemp^2-Utemp^2))/...(sqrt(Vtemp^2-Utemp^2)*besselk(1,sqrt(Vtemp^2-Utemp^2))),init);catchendi=i+1;

end

U(j)=Utemp;end求解零LP01模的特征方程,做V-U、V-W的關(guān)系曲線W=sqrt(V.^2-U.^2);Ymax=ceil(max([U,W]));figuresubplot(1,2,1)plot(V,U,'r');axisequalaxis([0Vmax0Ymax])xlabel('V')ylabel('U')title('LP_{01}V-U')MATLAB程序:subplot(1,2,2)plot(V,W,'r');axisequalaxis([0Vmax0Ymax])xlabel('V')ylabel('W')title('LP_{01}V-W')toc知識點:1.NaN是NotaNunmber的意思,相當于將空值賦值給Utemp2.Isnan函數(shù)返回一個與A相同維數(shù)的數(shù)組,若A的元素為NaN(非數(shù)值),在對應(yīng)位置上返回邏輯1(真),否則返回邏輯0(假)3.&&邏輯運算符,相當于與運算4.eps(a)是|a|與大于|a|的最小的浮點數(shù)之間的距離,距離越小表示精度越高。init=Vtemp*(i+1)/N-eps,

此處用-eps表示要將后面的小數(shù)點去掉5.try的作用是讓Matlab嘗試執(zhí)行一些語句,執(zhí)行過程中如果出錯,則執(zhí)行catch部分的語句try

嘗試執(zhí)行語句塊catch

出錯后執(zhí)行語句塊LP模的本征方程:數(shù)理知識點:V、U、W之間的關(guān)系:結(jié)果顯示:程序運行的時間結(jié)果:V-U和V-W曲線LP01模對應(yīng)的V、U、W的數(shù)值解例3.3根據(jù)3.2得到的結(jié)果,擬合區(qū)間的V和W線性關(guān)系式,并給出擬合得到數(shù)值最大的誤差MATLAB程序:NN=15:24;x=V(NN);y=W(NN);p=polyfit(x,y,1);f=polyval(p,x);maxerr=max(y-f);figureplot(x,y,'o',x,f,'-')xlabel('V')ylabel('W')1.polyfit函數(shù)用作線性擬合polyfit(x,y,1)其中x表示源數(shù)據(jù)點對應(yīng)的橫坐標,y表示源數(shù)據(jù)點對應(yīng)的縱坐標,1表示擬合階數(shù)2.polyval函數(shù)用作求擬合得到的數(shù)值polyval返回n次多項式p在x處的值polyval(p,x)3.max表示返回數(shù)組中的最大值知識點:結(jié)果顯示:V和W線性擬合曲線:擬合系數(shù)和最大誤差:例3.4在MATLAB中作圖,給出LP01模在V分別是0.8、1.6、2.4時,電場分量E相對歸一化直徑Ra的歸一化曲線MATLAB程序:clearcloseallV=[0.80001.60002.4000];U=[0.79741.36701.6453];W=[0.06400.83151.7473];Ra1=-1:0.01:1;Ra2=[-5:0.01:-1];Ra3=[1:0.01:5];E1=zeros(length(V),length(Ra1));E2=zeros(length(V),length(Ra2));E3=zeros(length(V),length(Ra3));fori=1:length(V)E1(i,:)=besselj(0,U(i)*Ra1);E2(i,:)=besselj(0,U(i)).*besselk(0,W(i).*abs(Ra2))./besselk(0,W(i));E3(i,:)=besselj(0,U(i)).*besselk(0,W(i).*abs(Ra3))./besselk(0,W(i));endR=[Ra2Ra1Ra3];E=[E2E1E3];plot(R,E)xlabel('R_a=r/a')ylabel('E')holdonplot([-1-1],[01],'b--',[11],[0,1],'b--')知識點:1.Length求數(shù)組長度函數(shù)Length(x)求x行或者列中最大長度2.E1(I,:)

MATLAB中":"的使用非常靈活,簡單的說就是代表矩陣中的全行或全列元素.E1矩陣的第i行的所有元素。數(shù)理知識點:1.LP01模在纖芯區(qū)和包層區(qū)的歸一化電場分布結(jié)果顯示:電場E相對歸一化直徑Ra的歸一化曲線V=0.8V=1.6V=2.4例3.5clearcloseallV=2.4000;U=1.6453;W=1.7473;Npoint=21;Rx=2;Ry=2;x=linspace(-Rx,Rx,Npoint);y=linspace(-Ry,Ry,Npoint);X=meshgrid(x,y);Y=meshgrid(y,x);Y=Y';R=sqrt(X.^2+Y.^2);E1=besselj(0,U*R);E2=besselj(0,U).*besselk(0,W.*R)./besselk(0,W);E=E1;pos=find(R>=1);E(pos)=E2(pos);imagesc(x,y,E);colormap(gray),colorbarxlabel('x'),ylabel('y'),title('E')figurecontour(x,y,E),colorbaraxisequalxlabel('x'),ylabel('y'),title('E')figure[px,py]=gradient(E);contour(X,Y,E),holdonquiver(X,Y,px,py),holdoffaxisequalMATLAB程序:LP01模在V=2.4時,歸一化電場分量E相對歸一化直徑Ra的二維分布圖知識點:Meshgrid數(shù)據(jù)集成繪圖meshgrid(x,y)的作用是分別產(chǎn)生以向量x為行,向量y為列的兩個大小相同的矩陣2.Find函數(shù)用于返回所需要元素的所在位置find(R>=1)返回R>=1的數(shù)值位置3.imagesc(x,y,A)x,y分別為二維向量,Matlab會在[x1,x2]*[y1,y2]范圍內(nèi)染色。4.用colormap來定義圖像顯示用的顏色查找表,比如用colormap(pink),可以把黑白圖像顯示成帶粉紅色的圖像,很有趣的5.[Fx,Fy]=gradient(F),其中Fx為其水平方向上的梯度,F(xiàn)y為其垂直方向上的梯度,F(xiàn)x的第一列元素為原矩陣第二列與第一列元素之差,F(xiàn)x的第二列元素為原矩陣第三列與第一列元素之差除以2,以此類推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列則為最后兩列之差。同理,可以得到Fy。6.contour是等高線繪制函數(shù)contour(X,Y,Z),contour(X,Y,Z,n),contour(X,Y,Z,v)繪制Z的等高線。X,Y限制在x,y軸上的范圍。7.

quiver(x,y,u,v)該函數(shù)使用箭頭來直觀的顯示

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論