Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
23.11.2018
Размер:
1.97 Кб
Скачать
function [T,P1,P2,P3,P4]=RungeKutta_14(t0,t1,p10,p20,p30,p40,N)
dt=(t1-t0)/N;
t(1)=t0;
p1(1)=p10;
p2(1)=p20;
p3(1)=p30;
p4(1)=p40;
for i=1:N
t(i+1)=t(1)+dt*i;
kp11=dt*F1_14(t(i),p1(i),p2(i),p3(i),p4(i));
kp21=dt*F2_14(t(i),p1(i),p2(i),p3(i),p4(i));
kp31=dt*F3_14(t(i),p1(i),p2(i),p3(i),p4(i));
kp41=dt*F4_14(t(i),p1(i),p2(i),p3(i),p4(i));
kp12=dt*F1_14(t(i)+dt/2,p1(i)+kp11/2,p2(i)+kp21/2,p3(i)+kp31/2,p4(i)+kp41/2);
kp22=dt*F2_14(t(i)+dt/2,p1(i)+kp11/2,p2(i)+kp21/2,p3(i)+kp31/2,p4(i)+kp41/2);
kp32=dt*F3_14(t(i)+dt/2,p1(i)+kp11/2,p2(i)+kp21/2,p3(i)+kp31/2,p4(i)+kp41/2);
kp42=dt*F4_14(t(i)+dt/2,p1(i)+kp11/2,p2(i)+kp21/2,p3(i)+kp31/2,p4(i)+kp41/2);
kp13=dt*F1_14(t(i)+dt/2,p1(i)+kp12/2,p2(i)+kp22/2,p3(i)+kp32/2,p4(i)+kp42/2);
kp23=dt*F2_14(t(i)+dt/2,p1(i)+kp12/2,p2(i)+kp22/2,p3(i)+kp32/2,p4(i)+kp42/2);
kp33=dt*F3_14(t(i)+dt/2,p1(i)+kp12/2,p2(i)+kp22/2,p3(i)+kp32/2,p4(i)+kp42/2);
kp43=dt*F3_14(t(i)+dt/2,p1(i)+kp12/2,p2(i)+kp22/2,p3(i)+kp32/2,p4(i)+kp42/2);
kp14=dt*F1_14(t(i)+dt,p1(i)+kp13,p2(i)+kp23,p3(i)+kp33,p4(i)+kp43);
kp24=dt*F2_14(t(i)+dt,p1(i)+kp13,p2(i)+kp23,p3(i)+kp33,p4(i)+kp43);
kp34=dt*F3_14(t(i)+dt,p1(i)+kp13,p2(i)+kp23,p3(i)+kp33,p4(i)+kp43);
kp44=dt*F4_14(t(i)+dt,p1(i)+kp13,p2(i)+kp23,p3(i)+kp33,p4(i)+kp43);
p1(i+1)=p1(i)+1/6*(kp11+2*kp12+2*kp13+kp14);
p2(i+1)=p2(i)+1/6*(kp21+2*kp22+2*kp23+kp24);
p3(i+1)=p3(i)+1/6*(kp31+2*kp32+2*kp33+kp34);
p4(i+1)=p4(i)+1/6*(kp41+2*kp42+2*kp43+kp44);
end;
T=t;
P1=p1;
P2=p2;
P3=p3;
P4=p4;

function z=F1_14(t,p1,p2,p3,p4)
z=-0.7*p1+2.3*p2;

function z=F2_14(t,p1,p2,p3,p4)
z=0.7*p1+1.8*p2+4.6*p3;

function z=F3_14(t,p1,p2,p3,p4)
z=0.7*p2+1.8*p3+6.9*p4;

function z=F4_14(t,p1,p2,p3,p4)
z=0.7*p3-6.9*p4;
Соседние файлы в папке 14