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)

4 次查看(过去 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 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by