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)

조회 수: 1 (최근 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개)

카테고리

Help CenterFile Exchange에서 Geometric Geodesy에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by