Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математическое моделирование в экологии.doc
Скачиваний:
568
Добавлен:
13.04.2015
Размер:
8.46 Mб
Скачать

11.3.5. Метод Рунге – Кутта

Пусть требуется найти решение дифференциального уравнения

y’ = f (t, y),

удовлетворяющее начальному условию

y’(t0) = y0.

Принцип, на котором основан метод Рунге – Кутта, можно пояснить, как и принцип, на котором основан метод Эйлера, с помощью разложения функции в ряд Тейлора

Чтобы удержать в ряде Тейлора член n-го порядка, необходимо вычислить n-ю производную зависимой переменной. При использовании модифицированного метода Эйлера для получения второй производной в конечно-разност-ной форме достаточно было знать наклон кривой на концах рассматриваемого интервала. Чтобы вычислить третью производную в конечно-разностном виде, необходимо иметь значения второй производной, по меньшей мере, в двух точках. Для этого необходимо дополнительно определить наклон кривой в некоторой промежуточной точке интервала h, т. е. между tn и n 1 t + . Очевидно, чем выше порядок вычисляяемой производной, тем больше дополнительных точек потребуется вычислить внутри интервала. Так как существует несколько способов расположения внутренних точек и выбора относительных весов для найденных производных, то метод Рунге – Кутта, в сущности, объединяет целое семейство методов решения дифференциальных уравнений.

Наиболее распространенным из них является метод четвёртого порядка точности, при котором удерживаются все члены ряда Тейлора, включая h4. Расчеты при использовании этого классического метода производятся по формулам:

где

Метод Эйлера и его модификация по сути дела являются методами Рунге – Кутта первого и второго порядка соответственно. Более высокая точность метода Рунге – Кутта позволяет увеличить шаг интегрирования h. Допустимая погрешность на шаге определяет его максимальную величину. В прикладных пакетах программ выбор шага часто осуществляется автоматически. Для этого проводят вычисления сначала с шагом h, а затем – с шагом h/2.

За оценку погрешности вычислений с шагом h/2 можно принять приближенную формулу

где - вычисленное значение с шагом h/2; yn – вычисленное значение с шагом h. Пример: y’ = xy.

Решение:

При реализации методов Рунге – Кутта на ЭВМ для каждой точки проводят двойной счет. Если полученные при этом значения удовлетворяют выражению (5.4), то для точки t n+1 шаг удваивают, в противном случае уменьшают вдвое. Однако необходимо помнить, что выражение (5.4) приближенное и при неблагоприятных условиях можно получить совершенно ошибочные результаты, хотя в большинстве случаев дело обстоит благополучно.

11.3.6. Метод Рунге – Кутта для систем дифференциальных уравнений

Формулы Рунге - Кутта можно использовать для решения систем дифференциальных уравнений и, следовательно, для решения дифференциальных уравнений более высоких порядков, так как любое дифференциальное уравнение n-го порядка можно свести к n дифференциальным уравнениям первого порядка. Например, в дифференциальном уравнении второго порядка

можно принять

тогда

и получаем два уравнения первого порядка:

Задача Коши в этом случае содержит два начальных условия

y(t0) = y0 и z(t0) = z0.

Формулы Рунге – Кутта для рассматриваемого случая имеют

вид:

где