fox li matlab,求助,求解释,Fox-Li遇到的问题
该楼层疑似违规已被系统折叠隐藏此楼查看此楼clear,clcglobal steps L k alamda=input('波长lamda=');L=input('腔长L=');a=input('镜长a=');eps_u=input('精度=');k=2*pi/lamda;steps=500;x=linspace(-a,a,steps);u_=ones(1,steps);for m=1:30for.
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
clear,clc
global steps L k a
lamda=input('波长lamda=');
L=input('腔长L=');
a=input('镜长a=');
eps_u=input('精度=');
k=2*pi/lamda;
steps=500;
x=linspace(-a,a,steps);
u_=ones(1,steps);
for m=1:30
for mm=1:steps
u0(mm)=QU(x(mm),u_);
end;
u_=u0/max(abs(u0));
u30(m,:)=u0;
end
flag=1; %自再现标志位
u30_flag=1; %判据矩阵维数标记为
N=30;
while(flag==1)
if max(abs(u30(:,steps/4)))-min(abs(u30(:,steps/4)))
flag=0;
else
N=N+1;
for mm=1:steps
u0(mm)=QU(x(mm),u_);
end;
u_=u0/max(abs(u0));
if u30_flag==31
u30_flag=1;
end
u30( u30_flag,:)=u0;
u30_flag=u30_flag+1;
end
end
N
subplot(2,1,1)
plot(x,abs(u0)/abs(u0(steps/2)))
xlabel('x');ylabel('相对振幅');
angle_u0=angle(u0)/pi*180;
angle_u0=angle_u0-angle_u0(steps/2);
subplot(2,1,2)
plot(x,angle_u0)
xlabel('x');ylabel('相对相位');
function y=QU(x,u)
global steps L k a
x_=linspace(-a,a,steps);
step_length=2*a/(steps-1);
y=sqrt(1i/L*exp(-1i*k*L))*sum(exp(-1i*k/2/L*(-x_+x).^2).*u)*step_length;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)