Проблемно-ориентированная информатика химико-технологических процессов. Кравцов А.В - 54 стр.

UptoLike

writeln(f2,' А B С D ');
REPEAT
ca:=ca0+h*((-1*(k1+k4))*ca0+k3*cd0);
cb:=cb0+h*(k1*ca0-k2*cb0);
cc:=cc0+h*k2*cb0;
cd:=cd0+h*((k4*ca0)-(k3*cb0));
writeln(f2,' ',t0:8:4,' ',ca:8:4,' ',cb:8:4,' ',cc:8:4,' ',cd:8:4,' ');
ca0:=ca; cb0:=cb; cc0:=cc; cd0:=cd; t0:=t0+h;
UNTIL t0>=tk;
writeln(f2,' ',t0:8:4,' ',ca:8:4,' ',cb:8:4,' ',cc:8:4,' ',cd:8:4,' ');
close(f2);
END.
4.3.2. Метод Рунге-Кутта
Дальнейшее улучшение точности решения ОДУ первого порядка
возможно за счет увеличения точности приближенного вычисления ин-
теграла в выражении.
Воспользовавшись формулой Симпсона, можно получить еще бо-
лее точную формулу для решения ОДУ первого порядкашироко ис-
пользуемого в вычислительной практике метода Рунге-Кутта.
В формуле Симпсона для приближенного вычисления определен-
ного интеграла используются значения подинтегрального выражения в
трех точках. В интеграле их всего две, поэтому введем дополнительную
точку в середине отрезка [
x
i+1
x
i
].
1
2
,
2
i
i
h
xx
+
=
+
тогда можно переписать так:
() ()
11
22
2
, 4 , ,
3
ii ii hh ii
ii
h
yy Fxy Fxy Fxy
++
++
⎡⎤
⎛⎞
=+ + +
⎢⎥
⎜⎟
⎢⎥
⎝⎠
⎣⎦
1+
Полученное выражение является неявным, так как в правой части
содержатся еще не определенные значения функции
y
i+h/2
и y
i+1
. Чтобы
воспользоваться этой формулой, надо использовать некоторое прибли-
жение для вычисления этих значений
() ()
11
22
, 4 , ,
6
ii ii hh ii
ii
h
y y Fx y Fx y Fx y
++
++
⎡⎤
⎛⎞
=+ + +
⎢⎥
⎜⎟
⎢⎥
⎝⎠
⎣⎦
1+
54