Доброго времени суток!!!
Помогите пожалуйста решить задачу Коши для системы дифференциальных уравнений методом Рунге-Кутта 4-ого порядка с автоматическим выбором шага в среде Mathematica 7.
Есть решение одного уравнения, но я никак не могу понять как поступать с системой. Высчитывать отдельно по каждому уравнению или каким-то образом вместе. Помогите разобраться, пожалуйста.
Код:
a=1;
b=1.5;
x0=1;
y0=0.;
h=0.05;
eps=0.0001;
n=(b-a)/h;
epsh=eps/n;
kmax=5;
xr=List[x0];
yr=List[y0];
While[b-x0 > 10^-12 ,
err=1;
kd=0;
yh=y0 + rng[h, x0, y0];
While [err>epsh && kd<=kmax,
h=h/2;
kd++;
ypr = y0 + rng[ h, x0, y0];
yh2 = ypr + rng[ h, x0+h, ypr];
err = Abs[(yh-yh2)]/7.;
yh=yh2;
];
h=2 h;
x1=x0+h;
y1=yh2;
AppendTo[xr,x1];
AppendTo[yr,y1];
Print ["x= ", x1, " y ~ ", y1, " y точное= ", yt[x1], " h= ",h ,
" Количество дроблений на шаге= ", kd ];
Print["Погрешность по Рунге = ",err,
" Погрешность истинная = " , Abs[y1-yt[x1]]];
If[ err> eps && kd > kmax,
Print["!!! Точность на шаге не достигнута !!!"] ];
Print[""];
x0=x1;
y0=y1;
If [ err < eps/16. , h=2 h];
If [h > b-x0 , h = b-x0];
];
Заранее спасибо.