Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转

代码:

clc
clear all
close all
%%
N = 500;                %采样点数
A = 1;                  %振幅
lambda = 632e-9;        %波长632nm
row = linspace(-5,5,N);     col = row;
[x,y] = meshgrid(row,col);
b = 2;      c = 1;
w_c = (b^2+c^2)/(2*b^2*c^2);    %临界角速度
THETA_c = (b^2-c^2)/(2*b^2*c^2);%临界交叉相位系数
w = w_c;
theta = THETA_c;
T = 2*pi/w;                       %旋转周期

figure;%文献中图一
for z = 0:T/6:T/2
    r = 1;
    Z = z;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    E = A*(G_bc.*exp(1i*theta*X.*Y+1i*lambda*Z)-r*G_cb.*exp(-1i*theta*X.*Y+1i*lambda*Z));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(2,4,6*z/T+1)
    %二维光强图
    h1 = pcolor(x,y,I);
    %colorbar;
    set(h1,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
    %三维光强图图
    %mesh(x,y,I)
    %set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
    %xlabel('x','fontname','times new roman','fontsize',16);
    %ylabel('y','fontname','times new roman','fontsize',16);
    %zlabel('归一化强度','fontname','华文中宋','fontsize',16);
    E_phase = angle(E);
    E_phase = E_phase/max(max(E_phase));
    subplot(2,4,6*z/T+5)
    %二维相位图
    h2 = pcolor(x,y,E_phase);
    %colorbar;
    set(h2,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
end
suptitle('孤子强度(第一行)和相位(第二行) r = 1,P_0 = P_c,\Theta =\Theta_c');

figure;%文献中图2
for r = 0.5:0.5:2
    z = 0;
    Z = z;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    E = A*(G_bc.*exp(1i*theta*X.*Y+1i*lambda*Z)-r*G_cb.*exp(-1i*theta*X.*Y+1i*lambda*Z));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(2,4,r*2)
    %二维光强图
    h3 = pcolor(x,y,I);
    %colorbar;
    set(h3,'edgecolor','none','facecolor','interp');
    title(['r = ',num2str(r)]);
    axis square;
    %三维光强图图
    %mesh(x,y,I)
    %set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
    %xlabel('x','fontname','times new roman','fontsize',16);
    %ylabel('y','fontname','times new roman','fontsize',16);
    %zlabel('归一化强度','fontname','华文中宋','fontsize',16);
    E_phase = angle(E);
    E_phase = E_phase/max(max(E_phase));
    subplot(2,4,r*2+4)
    %二维相位图
    h4 = pcolor(x,y,E_phase);
    %colorbar;
    set(h4,'edgecolor','none','facecolor','interp');
    title(['r = ',num2str(r)]);
    axis square;
end
suptitle('每个图上方标有r的不同值的强度(第一行)和相位(第二行)');

figure;%文献中图3
for r = 0.4:0.2:2
    z = 0;
    Z = z;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    E = A*(G_bc.*exp(1i*theta*X.*Y+1i*lambda*Z)-r*G_cb.*exp(-1i*theta*X.*Y+1i*lambda*Z));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(3,3,r*5-1)
    %二维光强图
    h5 = pcolor(x,y,I);
    %colorbar;
    set(h5,'edgecolor','none','facecolor','interp');
    title(['r = ',num2str(r)]);
    axis square;
    %三维光强图图
    %mesh(x,y,I)
    %set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
    %xlabel('x','fontname','times new roman','fontsize',16);
    %ylabel('y','fontname','times new roman','fontsize',16);
    %zlabel('归一化强度','fontname','华文中宋','fontsize',16);
end

figure;%文献中图4
for z = 0:T/6:T/2
    r = 1.3;
    Z = z;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    E = A*(G_bc.*exp(1i*theta*X.*Y+1i*lambda*Z)-r*G_cb.*exp(-1i*theta*X.*Y+1i*lambda*Z));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(2,4,6*z/T+1)
    %二维光强图
    h6 = pcolor(x,y,I);
    %colorbar;
    set(h6,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
    %三维光强图图
    %mesh(x,y,I)
    %set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
    %xlabel('x','fontname','times new roman','fontsize',16);
    %ylabel('y','fontname','times new roman','fontsize',16);
    %zlabel('归一化强度','fontname','华文中宋','fontsize',16);
    E_phase = angle(E);
    E_phase = E_phase/max(max(E_phase));
    subplot(2,4,6*z/T+5)
    %二维相位图
    h7 = pcolor(x,y,E_phase);
    %colorbar;
    set(h7,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
end
suptitle('孤子强度(第一行)和相位(第二行) r = 1.3,P_0 = P_c,\Theta =\Theta_c');


gamma = 1;      %材料常数
P_c = (b^2+c^2)^2/(4*b^4*c^4*gamma);
P_0 = 1.5*P_c;
T = 2*pi/sqrt(P_0)*gamma;
figure;%文献中图5
for z = 0:T/6:T/2
    r = 1;
    Z = z;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    E = A*(G_bc.*exp(1i*theta*X.*Y+1i*lambda*Z)-r*G_cb.*exp(-1i*theta*X.*Y+1i*lambda*Z));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(2,4,6*z/T+1)
    %二维光强图
    h8 = pcolor(x,y,I);
    %colorbar;
    set(h8,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
    %三维光强图图
    %mesh(x,y,I)
    %set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
    %xlabel('x','fontname','times new roman','fontsize',16);
    %ylabel('y','fontname','times new roman','fontsize',16);
    %zlabel('归一化强度','fontname','华文中宋','fontsize',16);
    E_phase = angle(E);
    E_phase = E_phase/max(max(E_phase));
    subplot(2,4,6*z/T+5)
    %二维相位图
    h9 = pcolor(x,y,E_phase);
    %colorbar;
    set(h9,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
end
suptitle('孤子强度(第一行)和相位(第二行) r = 1,P_0 = 1.5P_c,\Theta =\Theta_c');

figure;%文献中图6
T = 2*pi/w;                       %旋转周期
for z = 0:T/6:T/2
    r = 1;
    Z = z;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    theta = 0.5*THETA_c;
    E = A*(G_bc.*exp(1i*theta*X.*Y+1i*lambda*Z)-r*G_cb.*exp(-1i*theta*X.*Y+1i*lambda*Z));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(2,4,6*z/T+1)
    %二维光强图
    h10 = pcolor(x,y,I);
    %colorbar;
    set(h10,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
    %三维光强图图
    %mesh(x,y,I)
    %set(gca,'fontname','times new roman','fontsize',16);    %设置图形对象属性
    %xlabel('x','fontname','times new roman','fontsize',16);
    %ylabel('y','fontname','times new roman','fontsize',16);
    %zlabel('归一化强度','fontname','华文中宋','fontsize',16);
    theta = 1.5*THETA_c;
    E = A*(G_bc.*exp(1i*theta*X.*Y+1i*lambda*Z)-r*G_cb.*exp(-1i*theta*X.*Y+1i*lambda*Z));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(2,4,6*z/T+5)
    %二维光强图
    h11 = pcolor(x,y,I);
    %colorbar;
    set(h11,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(6*z/T) ,'*T/6']);
    axis square;
end
suptitle('r = 1,P_0 = P_c,\Theta =0.5\Theta_c(第一行),\Theta =1.5\Theta_c(第二行)');

figure;%文献中图7
theta = 3/8;
for z = 0:0.36:1.08
    Z = z;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    r = 0.7;
    E = A*(G_bc-r*G_cb).*exp(1i*theta.*x.*y);
    I = E.*conj(E);     I = I/max(max(I));
    subplot(3,4,z*25/9+1)
    %二维光强图
    h1 = pcolor(x,y,I);
    set(h1,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(z)]);
    axis square;
    
    r = 1;
    E = A*(G_bc-r*G_cb).*exp(1i*theta.*x.*y);
    I = E.*conj(E);     I = I/max(max(I));
    subplot(3,4,z*25/9+5)
    %二维光强图
    h12 = pcolor(x,y,I);
    set(h12,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(z)]);
    axis square;
    
    r = 1.3;
    E = A*(G_bc-r*G_cb).*exp(1i*theta.*x.*y);
    I = E.*conj(E);     I = I/max(max(I));
    subplot(3,4,z*25/9+9)
    %二维光强图
    h13 = pcolor(x,y,I);
    set(h13,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(z)]);
    axis square;
end
suptitle('r = 0.7(第一行)、1(第二行)、1.3(第三行),P_0 = P_c,\Theta =\Theta_c');

figure;%文献图8
for z = 0:0.18:0.54
    r = 1;
    Z = z;
    theta_1 = 3/4;  theta_2 = 1/8;
    X = x.*cos(w*z)+y.*sin(w*z);      %旋转坐标
    Y = -x.*sin(w*z)+y.*cos(w*z);     %旋转坐标
    G_bc = exp(-X.^2/(2*b^2)-Y.^2/(2*c^2)); %二维高斯函数
    G_cb = exp(-X.^2/(2*c^2)-Y.^2/(2*b^2));
    E = A*(G_bc.*exp(1i*theta_1.*x.*y)-r*G_cb.*exp(1i*theta_2.*x.*y));
    I = E.*conj(E);     I = I/max(max(I));
    subplot(1,4,z*50/9+1)
    %二维光强图
    h1 = pcolor(x,y,I);
    set(h1,'edgecolor','none','facecolor','interp');
    title(['z = ',num2str(z)]);
    axis square;
end

结果:
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第1张图片
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第2张图片
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第3张图片
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第4张图片
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第5张图片
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第6张图片
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第7张图片
Matlab:非局部非线性介质中两个同轴螺旋椭圆光束对光学图案的旋转_第8张图片
对该文章进行了复算,但是图7图8感觉跟文献对不上,暂时不知道啥原因。
参考文献:
[1]Liang G . Revolving and spinning of optical patterns by two coaxial spiraling elliptic beams in nonlocal nonlinear media[J]. Optics Express, 2019, 27(10):14667.

你可能感兴趣的:(matlab)