Для повышения точности вычисления значений функции требуется проведение дополнительных вычислений внутри интервала h, то есть между xiи xi+1. Метод Рунге-Кутта даёт набор формул для расчёта координат внутренних точек, требуемых для достижения точности, то есть ошибки на каждом шаге, порядка h4. Расчёты при использовании этого метода производятся по формуле:
,
где k0=hf(xi,yi), k1=hf(xi+h/2, yi+k0/2), k2=hf(xi+h/2, yi+k1/2), k3=hf(xi+h, yi+k2).
Метод Эйлера и его модификация по сути дела являются методами Рунге-Кутта первого и второго порядка соответственно. По сравнению с ними метод Рунге-Кутта обеспечивает более высокую точность, что позволяет увеличить шаг интегрирования h. Допустимая погрешность на шаге определяет его максимальную величину.
Пример 3.Приведём фрагмент программы для решения дифференциального уравнения из примера 1 методом Рунге-Кутта:
Дать сравнительную оценку результатов решения дифференциального уравнения из примера 1 y¢=2x2+2y при начальном условии y(0)=1; 0£ x£1 и h=0,1 обычным и модифицированным методами Эйлера и методом Рунге-Кутта. Для проверки использовать точное решение этого уравнения y=1,5e2x - x2 - x - 0,5. Составить программу, выполняющую вычисления с использованием массивов. Результаты расчёта представить в виде таблицы и вывести её на экран и принтер:
x
Метод Эйлера
Модифицированный метод Эйлера
Метод Рунге-Кутта
Точное решение
0.0
1.0000
1.0000
1.0000
1.0000
0.1
1.2000
1.2210
1.2221
1.2221
0.2
1.4420
1.4948
1.4977
1.4977
0.3
1.7384
1.8375
1.8432
1.8432
0.4
2.1041
2.2685
2.2783
2.2783
0.5
2.5569
2.8118
2.8274
2.8274
0.6
3.1183
3.4964
3.5201
3.5202
0.7
3.8139
4.3578
4.3927
4.3928
0.8
4.6747
5.4393
5.4894
5.4895
0.9
5.7376
6.7938
6.8643
6.8645
1.0
7.0472
8.4856
8.5834
8.5836
Приложение
Приведём адреса, по которым в Интернете можно найти информацию по программированию на языке Паскаль. Это примеры и исходные тексты программ, учебники и статьи, посвященные обсуждению различных вопросов программирования.