24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 739  |  回复: 1

cdg234

新虫 (初入文坛)

[求助] DFB激光器分析程序运算耗时太久

写了个1/4相移激光器的程序,但运算太慢,一个循环要40几秒,要循环121次,如果while判断eps>10e-14为真还要改变初始值,重新做循环,所以不知道还要多久,看网上说可以向量化节省时间,但弄了一下午也没弄好,因为向量化过程中出现四维乘三维矩阵,老是报错,附上部分未向量化代码,求各位大神支招,主要是将两个for循环向量化,同时考虑两个子方程的适应性。叫改用其他软件编程就算了,本科学的编程少,matlab也是初学。只有5个金币了,请见谅。



------------

    lambda=linspace(lambda00-detl,lambda00+detl,11);
    CC=linspace(C00-detC,C00+detC,11);
    E=zeros(2,s+1);
    T=zeros(2,2,s);
    P=zeros(2,2);
    AA=zeros(11,11);
    N=zeros(1,s+1);
    neff=zeros(1,s+1);
    S=zeros(1,s+1);
    for m=1:11
        for n=1:11
            n1=neffth;
            detn=1;
             E(1,1)=0;E(2,1)=1;
            while detn>1e-15
                N(1,1)=RateEquation(lambda(n),CC(m),J,ath,detth,E(1,1),E(2,1));
                g=A0*(N(1,1)-N0)-A1*(lambda(n)-(lambda0-A2*(N(1,1)-N0)))^2;
                a=L*(Tao*g-aloss)/2;
                neff(1,1)=n0+Tao*dn*N(1,1);
                S(1,1)=2*VP*neff(1,1)*ng*lambda(n)*CC(m)^2*(abs(E(1,1))^2+abs(E(2,1))^2)/(h*c);
                detn=abs(neff-n1);
                n1=neff(1,1);
            end
                det=L*(2*pi*neff(1,1)/lambda(n)-2*pi*ng*(lambda(n)-lambdaB)/(lambda(n)*lambdaB)-pi/period);
                T(:,:,1)=Matrix(kL,a,det,ritio/R1);
                for i=2:R1
                    E(:,i)=T(:,:,i-1)*E(:,i-1);
                    N(1,i)=RateEquation(lambda(n),CC(m),J,ath,detth,E(1,i),E(2,i));
                    g=A0*(N(1,i)-N0)-A1*(lambda(n)-(lambda0-A2*(N(1,i)-N0)))^2;
                    a=L*(Tao*g-aloss)/2;
                    neff(1,i)=n0+Tao*dn*N(1,i);
                    S(1,i)=2*VP*neff(1,i)*ng*lambda(n)*CC(m)^2*(abs(E(1,i))^2+abs(E(2,i))^2)/(h*c);
                    det=L*(2*pi*neff(1,i)/lambda(n)-2*pi*ng*(lambda(n)-lambdaB)/(lambda(n)*lambdaB)-pi/period);
                    T(:,:,i)=Matrix(kL,a,det,ritio/R1);
                    
                end
                P(1,1)=exp(-1i*theta);P(1,2)=0;P(2,1)=0;P(2,2)=exp(1i*theta);
                E(:,R1+1)=T(:,:,R1)*E(:,R1);
                E(:,R1+1)=P*E(:,R1+1);
                N(1,R1+1)=RateEquation(lambda(n),CC(m),J,ath,detth,E(1,R1+1),E(2,R1+1));
                g=A0*(N(1,R1+1)-N0)-A1*(lambda(n)-(lambda0-A2*(N(1,R1+1)-N0)))^2;
                a=L*(Tao*g-aloss)/2;
                neff(1,R1+1)=n0+Tao*dn*N(1,R1+1);
                S(1,R1+1)=2*VP*neff(1,R1+1)*ng*lambda(n)*CC(m)^2*(abs(E(1,R1+1))^2+abs(E(2,R1+1))^2)/(h*c);
                det=L*(2*pi*neff(1,R1+1)/lambda(n)-2*pi*ng*(lambda(n)-lambdaB)/(lambda(n)*lambdaB)-pi/period);
                T(:,:,R1+1)=Matrix(kL,a,det,(1-ritio)/(s-R1));
                for i=(R1+2):s
                    E(:,i)=T(:,:,i-1)*E(:,i-1);
                    N(1,i)=RateEquation(lambda(n),CC(m),J,ath,detth,E(1,i),E(2,i));
                    g=A0*(N(1,i)-N0)-A1*(lambda(n)-(lambda0-A2*(N(1,i)-N0)))^2;
                    a=L*(Tao*g-aloss)/2;
                    neff(1,i)=n0+Tao*dn*N(1,i);
                    S(1,i)=2*VP*neff(1,i)*ng*lambda(n)*CC(m)^2*(abs(E(1,i))^2+abs(E(2,i))^2)/(h*c);
                    det=L*(2*pi*neff(1,i)/lambda(n)-2*pi*ng*(lambda(n)-lambdaB)/(lambda(n)*lambdaB)-pi/period);
                    T(:,:,i)=Matrix(kL,a,det,(1-ritio)/(s-R1));
                end  
                E(:,s+1)=T(:,:,s)*E(:,s);
                AA(m,n)=abs(E(2,s+1));
               
        end
    end
    eps=min(min(AA));
  

---------------

   
            

function N=RateEquation(lambda,CC,J,ath,detth,E1,E2)
             syms x;
             L=250e-6;
             N0=1.5e24;aloss=4e3;A0=2.7e-20;Tao=0.35;
             n0=3.41351524;dn=-1.8e-26;
             c=3e8; ng=3.7;period=227.039e-9;
             lambdaB=2*n0*period;
             A2=2.7e-32;A1=1.5e-21;non=1.5e-23;
             to=4e-9;q=1.60217733e-19;d=0.12e-6;B=1e-16;
             C=3e-41;
             VP=8.854e-12; h=6.6260693e-34;
             Nth=N0+(aloss+2*ath)/(A0*Tao);  
             neffth=n0+Tao*dn*Nth;
             lambdath=2*pi*lambdaB*(neffth+ng)/(detth*lambdaB+2*pi*ng+lambdaB*pi/period);
             lambda0=lambdath+A2*(Nth-N0);
             %稳态解
             g=A0*(x-N0)-A1*(lambda-(lambda0-A2*(x-N0)))^2;
             neff=n0+Tao*dn*x;
             S=2*VP*neff*ng*lambda*CC^2*(abs(E1)^2+abs(E2)^2)/(h*c);
             f=(1+non*S)*J/(q*d)-((x/to+B*x^2+C*x^3)*(1+non*S)+c*g*S/ng);
             F=sym2poly(f);            
             Nroots1=roots(F);
             NN=Nroots1==real(Nroots1);
             Nroots2=Nroots1(NN);
             Nroots2(Nroots2<0)=[];
             N=min(Nroots2);
            
function T=Matrix(k,a,d,ritio)
T=zeros(2,2);
r=((a-1i*d)^2+k^2)^0.5;
T(1,1)=cosh(r*ritio)+(a-1i*d)*sinh(r*ritio)/r;
T(1,2)=-1i*k*sinh(r*ritio)/r;
T(2,1)=1i*k*sinh(r*ritio)/r;
T(2,2)=cosh(r*ritio)-(a-1i*d)*sinh(r*ritio)/r;
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cdg234

新虫 (初入文坛)

大神帮忙啊
2楼2014-02-13 08:58:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cdg234 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿0817化学工程与技术,求调剂 +3 我不是只因 2026-04-02 4/200 2026-04-02 21:50 by barlinike
[考研] 283分材料与化工求调剂 +13 罗KAKA 2026-04-02 13/650 2026-04-02 21:16 by dongzh2009
[考研] 一志愿北京工业大学,324分求调剂 +7 零八# 2026-03-28 7/350 2026-04-02 21:09 by 1104338198
[考研] 295求调剂 +5 愿旅途永远坦然 2026-04-02 5/250 2026-04-02 20:59 by 18828373951
[考研] 求调剂,一志愿郑州大学材料与化工专硕,英二数二342分,求老师收留 +8 v12abo 2026-04-02 8/400 2026-04-02 20:53 by 1104338198
[考研] 化工调剂303分,过四级 +11 栖梧待风 2026-04-02 11/550 2026-04-02 20:15 by dongzh2009
[考研] 085801 总分275 本科新能源 求调剂 +18 bradoner 2026-04-01 22/1100 2026-04-02 19:25 by 帕尔马拉特
[考研] 一志愿南昌大学324求调剂 +12 hanamiko 2026-04-01 12/600 2026-04-02 14:51 by 5896
[考研] 材料专硕322分 +11 哈哈哈吼吼吼哈 2026-04-01 11/550 2026-04-02 10:52 by lnilvy
[考研] 377求调剂 +3 RASKIN 2026-04-02 3/150 2026-04-02 09:45 by zzchen2000
[考研] 286求调剂 +16 PolarBear11 2026-03-26 16/800 2026-04-01 21:31 by 七度不信任
[考研] 085600 一志愿9 总分351 求调剂学校 +7 czhcz 2026-03-31 9/450 2026-04-01 19:24 by 无际的草原
[考研] 333求调剂 +4 阿科逸 2026-03-31 4/200 2026-04-01 09:11 by jp9609
[考研] 0856调剂 +7 曲听筠 2026-03-30 7/350 2026-04-01 08:51 by JourneyLucky
[考研] 本2一志愿C9-333分,材料科学与工程,求调剂 +9 升升不降 2026-03-31 9/450 2026-03-31 18:01 by 无际的草原
[考研] 346求调剂 一志愿070303有机化学 +11 萝卜炖青菜 2026-03-28 12/600 2026-03-31 17:54 by xhai2011
[考研] 求化学调剂 +12 wulanna 2026-03-28 12/600 2026-03-31 16:38 by 690616278
[考研] 材料与化工272求调剂 +25 阿斯蒂芬2004 2026-03-28 25/1250 2026-03-31 16:27 by hypershenger
[考研] 物理学调剂 +4 小羊36 2026-03-30 4/200 2026-03-31 16:16 by lishahe
[考研] 生物考研337分求调剂 +4 cgxin 2026-03-30 6/300 2026-03-31 14:18 by 记事本2026
信息提示
请填处理意见