5Simulation systems Лекция 7-9 ОДУ (1014124), страница 5
Текст из файла (страница 5)
Пример
Пусть требуется решить уравнение , при начальном условии y(0)= 1, 0 < x < 1 и h = 0, 1. Это — линейное уравнение, имеющее следующее точное решение:
Которое поможет нам сравнить относительную точность, обеспечиваемую разными методами.
Результаты расчета представлены в приведенной ниже таблице, из которой хорошо видны преимущества метода Рунге — Кутта по сравнению с обычным и модифицированным методами Эйлера.
xn | Метод Эйлера | Модифицированный метод Эйлера | Метод Рунге — Кутта | Точное решение |
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 ,4923 | 1 ,4977 | 1 ,4977 |
0,3 | 1 ,7384 | 1,8284 | 1 ,8432 | 1 ,8432 |
0,4 | 2,1041 | 2,2466 | 2,2783 | 2,2783 |
0,5 | 2,5569 | 2,7680 | 2,8274 | 2,8274 |
0,6 | 3,1183 | 3,4176 | 3,5201 | 3,5202 |
0,7 | 3,8139 | 4,2257 | 4,3927 | 4,3928 |
0,8 | 4,6747 | 5,2288 | 5.4894 | 5,4895 |
0,9 | 5,7376 | 6,4704 | 6,8643 | 6,8645 |
1,0 | 7,0472 | 8,0032 | 8,5834 | 8,5836 |
Методы Рунге — Кутта для системы дифференциальных уравнений
Любую из формул Рунге — Кутта можно использовать для решения систем дифференциальных уравнений и, следовательно, для решения дифференциальных уравнений более высоких порядков, так как любое дифференциальное уравнение n-го порядка можно свести к n дифференциальным уравнениям первого порядка. Например, в дифференциальном уравнении второго порядка:
Можно принять z=dy/dx. Тогда dzldx=d2y/dx2 и получаем два уравнения первого порядка:
Задача Коши в этом случае содержит два начальных условия: .
Формулы Рунге — Кутта для рассматриваемого случая имеют вид:
Где:
Здесь:
Общая характеристика одношаговых методов
Всем одношаговым методам присущи определенные общие черты:
-
Чтобы получить информацию в новой точке, надо иметь данные лишь в одной предыдущей точке. Это свойство можно назвать «самостартованием» (self-starting behavior).
-
В основе всех одношаговых методов лежит разложение функции в ряд Тейлора, в котором сохраняются члены, содержащие h в степени до k включительно. Целое число k называется порядком метода. Погрешность на шаге имеет порядок k+1.
-
Все одношаговые методы не требуют действительного вычисления производных — вычисляется лишь сама функция, однако могут потребоваться ее значения в нескольких промежуточных точках. Это влечет за собой, конечно, дополнительные затраты времени и усилий.
-
Свойство «самостартования» позволяет легко менять величину шага h.
3.4.2. Методы прогноза и коррекции
В этих методах для вычисления положения новой точки используется информация о нескольких ранее полученных точках. Для этого применяются две формулы, называемые соответственно формулами прогноза и коррекции. Схемы алгоритмов для всех таких методов примерно одинаковы, а сами методы отличаются лишь формулами.
Далее представлена схема алгоритма метода прогноза и коррекции для решения дифференциального уравнения вида y'(x)=f(x, у).
Так как в рассматриваемых методах используется информация о нескольких ранее полученных точках, то в отличие от одношаговых методов они не обладают свойством «самостартования». Поэтому, прежде чем применять метод прогноза и коррекции, приходится вычислять исходные данные с помощью какого-либо одношагового метода. Часто для этого прибегают к методу Рунге — Кутта. Вычисления производят следующим образом. Сначала по формуле прогноза и исходным значениям переменных определяют значение Верхний индекс (0) означает, что прогнозируемое значение является одним из последовательности значений yn+1, располагающихся в порядке возрастания точности. По прогнозируемому значению
с помощью приведенного выше дифференциального уравнения находят производную
.
Если это значение производной недостаточно близко к предыдущему, то оно вводится в формулу коррекции и итерационный процесс продолжается. Если же производная изменяется в допустимых пределах, то значение используется для вычисления окончательного значения yn+1, которое и выдается на печать. После этого процесс повторяется — делается следующий шаг, на котором вычисляется уп+2.
Если дифференциальное уравнение y'=f(x, у) проинтегрировано в интервале значений от хп до xn+k, то результат примет вид:
Этот интеграл нельзя вычислить непосредственно, так как зависимость у(х) заранее неизвестна. Приближенное значение интеграла можно найти с помощью одного из конечно-разностных методов. Выбор метода и будет определять метод решения дифференциальных уравнений. На этапе прогноза можно использовать любую формулу численного интегрирования, если в нее не входит предварительное значение у' (xn+1).
Метод Милна
В этом методе на этапе прогноза используется формула Милна:
А на этапе коррекции – формула Симпсона:
Последние члены в обеих формулах в действительности в итерационном процессе не используются и служат лишь для оценки ошибки усечения. Метод Милна относят к методам четвертого порядка точности, так как в нем отбрасываются члены, содержащие h в пятой и более высоких степенях. Может возникнуть вопрос, зачем вообще нужна коррекция, если прогноз имеет четвертый порядок точности. Ответ на этот вопрос дает оценка относительной величины членов, выражающих погрешность. В данном случае погрешность усечения при коррекции в 28 раз меньше и поэтому представляет большой интерес. Вообще итерационные формулы гораздо более точны, чем формулы прогноза, и поэтому их использование оправдано, хотя и связано с дополнительными трудностями. Несмотря на то, что формула Милна содержит меньший числовой коэффициент (1/90) перед отбрасываемым членом, ее используют реже, чем другие (с большими отбрасываемыми членами), так как ей присуща неустойчивость. Это означает, что погрешность распространения может расти экспоненциально, причем этот вывод справедлив для всех формул коррекции, основанных на правиле Симпсона.
Метод Адамса — Башфорта
Этот метод также имеет четвертый порядок точности. Используемая в нем формула прогноза получена интегрированием обратной интерполяционной формулы Ньютона и имеет вид:
На этапе коррекции используется формула:
Расчеты по методу Адамса — Башфорта выполняются так же, как и по методу Милна, однако в отличие от последнего ошибка, внесенная на каком-либо шаге, не имеет тенденции к экспоненциальному росту.
Можно предположить, что поскольку величина отбрасываемого члена известна, то её можно использовать для уточнения скорректированного значения зависимой переменной. Однако это было бы равноценно использованию системы более высокого порядка точности. Так как внесение поправок в корректирующий член может отрицательно сказаться на устойчивости счета, то для повышения точности счета следует прибегать к методам более высоких порядков точности.
Метод Хэмминга
В методе Хэмминга используются следующие формулы:
-
Прогноза
-
Уточнения прогноза
-
Коррекции
Это устойчивый метод четвертого порядка точности, в основе которого лежат следующие формулы прогноза:
И коррекции:
Особенностью метода Хэмминга является то, что он позволяет оценивать погрешности, вносимые на стадиях прогноза и коррекции и устранять их. Благодаря простоте и устойчивости этот метод является одним из наиболее распространенных методов прогноза и коррекции.
Краткая характеристика методов прогноза и коррекции
По сравнению с одношаговыми методами методы прогноза и коррекции имеют ряд особенностей:
-
Для реализации методов прогноза и коррекции необходимо иметь информацию о нескольких предыдущих точках: другими словами, они не относятся к числу «самостартующих» методов. Для получения исходной информации приходится прибегать к какому-либо одношаговому методу. Если в процессе решения дифференциальных уравнений методом прогноза и коррекции изменяется шаг, то обычно приходится временно переходить на одношаговый метод.
-
Поскольку для методов прогноза и коррекции требуются данные о предыдущих точках, то соответственно предъявляются и повышенные требования к объему и памяти компьютера.
-
Одношаговые методы и методы прогноза и коррекции обеспечивают примерно одинаковую точность результатов. Однако вторые в отличие от первых позволяют легко оценить погрешность на шаге. По этой причине, пользуясь одношаговыми методами, величину шага h обычно выбирают несколько меньше, чем это, строго говоря, необходимо, и поэтому методы прогноза и коррекции оказываются более эффективными.
-
Применяя метод Рунге — Кутта четвертого порядка точности, на каждом шаге приходится вычислять четыре значения функции, в то время как для обеспечения сходимости метода прогноза и коррекции того же порядка точности часто достаточно двух значений функции. Поэтому методы прогноза и коррекции требуют почти вдвое меньше машинного времени, чем методы Рунге — Кутта сравнимой точности. Это обстоятельство может оказывать сильное влияние на выбор алгоритма, так как стоимость машинного времени может быть весьма высокой.
Выбор шага