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