any one help me ; how can I insert an array I=[600 400 200 100 0] in my code which solved using runge kutta method (this constant(I) change in my equations)
    2 ビュー (過去 30 日間)
  
       古いコメントを表示
    
%initial condition t(1)=0; Tb(1)=27; Tw(1)=30; Tg(1)=26;
%step size h=1; tfinal=300; N=ceil(tfinal/h);
%update loop for i=1:N
    %update time
    t(i+1)=t(i) + h;
    %update Tb Tw Tg
    k1Tg=fTg(t(i)             ,Tw(i)         ,Tg(i)         );
    k1Tw=fTw(t(i)      ,Tb(i)         ,Tw(i)         ,Tg(i)     );
    k1Tb=fTb(t(i)     ,Tb(i)         ,Tw(i)                 );
    k2Tg=fTg(t(i)+h/2,Tw(i)+h/2*k1Tw,Tg(i)+h/2*k1Tg);
    k2Tw=fTw(t(i)+h/2,Tb(i)+h/2*k1Tb,Tw(i)+h/2*k1Tw,Tg(i)+h/2*k1Tg);
    k2Tb=fTb(t(i)+h/2,Tb(i)+h/2*k1Tb,Tw(i)+h/2*k1Tw);
    k3Tg=fTg(t(i)+h/2,Tw(i)+h/2*k2Tw,Tg(i)+h/2*k2Tg);
    k3Tw=fTw(t(i)+h/2,Tb(i)+h/2*k2Tb,Tw(i)+h/2*k2Tw,Tg(i)+h/2*k2Tg);
    k3Tb=fTb(t(i)+h/2,Tb(i)+h/2*k2Tb,Tw(i)+h/2*k2Tw);
    k4Tg=fTg(t(i)+h  ,Tw(i)+h  *k3Tw,Tg(i)+h  *k3Tg);
    k4Tw=fTw(t(i)+h  ,Tb(i)+h  *k3Tb,Tw(i)+h  *k3Tw,Tg(i)+h  *k3Tg);
    k4Tb=fTb(t(i)+h  ,Tb(i)+h  *k3Tb,Tw(i)+h  *k3Tw);
    Tg(i+1)=Tg(i)+ h/6*(k1Tg + 2*k2Tg +  2*k3Tg + k4Tg);
    Tw(i+1)=Tw(i)+ h/6*(k1Tw + 2*k2Tw +  2*k3Tw + k4Tw);
    Tb(i+1)=Tb(i)+ h/6*(k1Tb + 2*k2Tb +  2*k3Tb + k4Tb);
end
0 件のコメント
回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
