www.gusucode.com > Fox-Li模拟谐振腔,含有条形,矩形,圆形腔,并做成GUI可是界面源码程序 > code3/juxingstable.m
function juxingstable(edit1_button,edit2_button,edit4_button,edit5_button,handles) N=200; A=ones(N+1,1); B=zeros(N+1,1); C=ones(N+1,1); D=zeros(N+1,1); z=ones(N+1,N+1); a=edit1_button; a1=edit2_button; L=edit4_button; b=edit5_button; k=2*pi/b; c=sqrt(i*exp(-i*k*L)/(b*L)); delta=2*a/N; delta1=2*a1/N; m=1:N+1; j=1; o=1; e=0.001; while(o>0) while j<N+2 B(j)=c*exp(-i*k*(delta*(j-m)).^2/(2*L))*A*delta; D(j)=c*exp(-i*k*(delta1*(j-m)).^2/(2*L))*C*delta1; j=j+1; end j=1; for p=1:N+1; for q=1:N+1 z(p,q)=B(p)*D(q); end end ma=max(B); ma1=max(abs(D)); if(sum(abs(abs(A)-abs(B/ma)))>e||sum(abs(abs(C)-abs(D/ma1)))>e) A=B/ma; C=D/ma1; x=-a+(m-1)*delta; y=-a1+(m-1)*delta1; z=z/max(max(z)); axes(handles.axes1) mesh(x,y,abs(z)) axes(handles.axes2) mesh(x,y,angle(z)) else msgbox(['The times of iteration=',num2str(o)]) break; end o=o+1; end