concavefalt01.m

来自「平凹腔激光模式计算程序」· M 代码 · 共 64 行

M
64
字号
clear  %方形平凹镜腔边界元法(平面镜光场分布、远场分布、本征值)
L=140;  %腔长
a=1;  %镜宽
R1=500;   %凹镜曲率半径
W=10.6e-4;  %波长
N=a^2/(W*L)  %菲涅尔数
e=100;  %本征值个数
M=200;  %分元数
K=2*pi/W;  %波数
G1X=zeros(M);   %X方向凹镜向平镜度越矩阵
G2X=zeros(M);    %X方向平镜向凹镜度越矩阵
for m=1:M
   for n=1:M
      G1X(n,m)=(2*a/M)*sqrt((i/(W*L))*exp(-i*K*L))*exp(-i*K*(((-a+2*a*n/M)-(-a+2*a*m/M))^2/(2*L)-(-a+2*a*m/M)^2/(2*R1)));
      G2X(m,n)=(2*a/M)*sqrt((i/(W*L))*exp(-i*K*L))*exp(-i*K*(((-a+2*a*m/M)-(-a+2*a*n/M))^2/(2*L)-(-a+2*a*m/M)^2/(2*R1)));
   end
end
G1Y=G1X;   %Y方向凹镜向平镜度越矩阵
G2Y=G2X;   %Y方向平镜向凹镜度越矩阵
GX=G1X*G2X;   %X方向平镜-凹镜-平镜度越矩阵
GY=G1Y*G2Y;   %Y方向平镜-凹镜-平镜度越矩阵
%save 0000 G1X G2X G1Y G2Y
clear G1X G1Y G2X G2Y
%save 0001 GX GY
[eigenvectorGX,eigenvalueGX]=eig(GX);   %X方向的本征值和本征矢。
[eigenvectorGY,eigenvalueGY]=eig(GY);   %Y方向的本征值和本征矢。
clear GX GY
indexx=zeros(M);   %光场分布坐标
 indexy=zeros(M);   %光场分布坐标
for m1=1:M
    indexx(m1)=-a+2*a*m1/M;
    indexy(m1)=indexx(m1);
end
save 0006 eigenvectorGX eigenvectorGY indexx indexy
clear eigenvectorGX eigenvectorGY
evGX=zeros(e,1);
evGY=zeros(1,e);
for i=1:e
    evGX(i,1)=eigenvalueGX(i,i);
    evGY(1,i)=eigenvalueGY(i,i);
end
%save 0003 eigenvalueGX eigenvalueGY
clear eigenvalueGX eigenvalueGY
    sumEIG=evGX*evGY;
    msumEIG=abs(sumEIG);
    for m2=1:M
    for n2=1:M
        QXG(m2,n2)=(2*a/M)*exp(-i*K*((-15*W/(2*a)+15*2*W*m2/(2*a*M))*(-a+2*a*n2/M)))*sqrt(exp(-i*K*D));
        QYG(m2,n2)=(2*a/M)*exp(-i*K*((-15*W/(2*a)+15*2*W*m2/(2*a*M))*(-a+2*a*n2/M)))*sqrt(exp(-i*K*D));
    end
end
indexxf=zeros(1,M);   %远场分布坐标
 indexyf=zeros(1,M);   %远场分布坐标
for m1=1:M
    indexxf(m1)=-15+15*m2/M;
    indexyf(m1)=indexx;
end
save 0007  indexxf indexyf QXG QYG
save 0002 msumEIG
%save 0005 sumEIG
%clear msumEIG sumEIG
%以上是部分总本征值的模。
%save 9999 L a R1 W M K
clear L a R1 W M K

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?