24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 740  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂 +11 张zz111 2026-03-27 12/600 2026-04-02 22:47 by JourneyLucky
[考研] 材料调剂 +8 一样YWY 2026-04-02 8/400 2026-04-02 22:03 by 科研小专家
[考研] 0856材料与化工调剂,339 +14 10213207 2026-03-31 14/700 2026-04-02 21:01 by 1104338198
[考研] 285求调剂 +8 AZMK 2026-04-02 11/550 2026-04-02 20:16 by yulian1987
[考研] 085601一志愿中山大学深圳材料工程330求调剂 +8 pipiver 2026-03-30 8/400 2026-04-02 12:01 by ms629
[考研] 292分,材料与化工,申请调剂 +19 程晴之 2026-04-01 23/1150 2026-04-02 11:59 by 程晴之
[考研] 求调剂,一志愿 南京航空航天大学 ,080500材料科学与工程学硕,总分289分 +11 @taotao 2026-03-29 11/550 2026-04-02 10:04 by realme321
[考研] 土木304求调剂 +6 兔突突突, 2026-03-31 7/350 2026-04-02 09:06 by coolminer
[考研] 一志愿346上海大学生物学 +3 上海大学346调剂 2026-04-01 3/150 2026-04-02 08:36 by w虫虫123
[考研] 建环,能源,土木老师路过看一看!!! +4 嘿嘿uu 2026-04-01 4/200 2026-04-01 20:42 by 无懈可击111
[考研] 285求调剂 +7 AZMK 2026-03-30 13/650 2026-04-01 17:00 by 七度不信任
[考研] 309求调剂 +19 谁不是少年 2026-03-29 19/950 2026-04-01 15:47 by jp9609
[考研] 求调剂,一志愿北林食品与营养095500,301分,已过六级,有科研经历 +4 快乐储蓄罐 2026-03-31 4/200 2026-04-01 09:26 by JourneyLucky
[考研] 333求调剂 +4 阿科逸 2026-03-31 4/200 2026-04-01 09:11 by jp9609
[考研] 277跪求调剂 +8 1915668 2026-03-27 13/650 2026-03-31 14:58 by 王亮_大连医科大
[考研] 274求调剂 +6 xiao爱同学 2026-03-30 6/300 2026-03-31 10:04 by cal0306
[考研] 293分求调剂,外语为俄语 +5 加一一九 2026-03-31 5/250 2026-03-31 09:39 by zhshch
[考研] 22408 359分调剂 +4 Qshers 2026-03-27 8/400 2026-03-31 08:53 by Qshers
[考研] 材料专硕 085600求调剂 +7 BBQ233 2026-03-30 7/350 2026-03-30 17:44 by oooqiao
[考研] 296求调剂 +10 彼岸t 2026-03-29 10/500 2026-03-30 10:50 by 探123
信息提示
请填处理意见