www.gusucode.com > Fox-Li模拟谐振腔,含有条形,矩形,圆形腔,并做成GUI可是界面源码程序 > code3/circlestable.m
function circlestable(edit3_button,edit4_button,edit5_button,handles) N=199; A=ones(N+1,1); B=ones(N+1,1); C=ones(N+1,1); a=edit3_button; L=edit4_button; b=edit5_button; k=2*pi/b; m=1:N+1; dr=a/N; dang=2*pi/(N); r=dr*(m-1); ang=dang*(m-1); o=1; e=0.001; while(o>0) for j=1:N+1 B(j)=sum(exp(-i*k*L)*exp(-i*k*(r(j)^2+(r.^2)')/(2*L)).*r'.*(exp(i*k*r(j)*r'*cos(ang)/L)*dang*C).*A); end ma=max(B); if(sum(abs(abs(A)-abs(B/ma)))>e) A=B/ma; axes(handles.axes1) mesh(r'*cos(ang),r'*sin(ang),abs(A)*C') axes(handles.axes2) mesh(r'*cos(ang),r'*sin(ang),angle(A)*C') else msgbox(['The times of iteration=',num2str(o)]) break; end o=o+1; end