Лекция 9 (1014395), страница 3
Текст из файла (страница 3)
Если это значение производной недостаточно близко к предыдущему, то оно вводится в формулу коррекции и итерационный процесс продолжается. Если же производная изменяется в допустимых пределах, то значение используется для вычисления окончательного значения yn+1, которое и выдается на печать. После этого процесс повторяется — делается следующий шаг, на котором вычисляется уп+2.
Если дифференциальное уравнение y'=f(x, у) проинтегрировано в интервале значений от хп до xn+k, то результат примет вид:
Этот интеграл нельзя вычислить непосредственно, так как зависимость у(х) заранее неизвестна. Приближенное значение интеграла можно найти с помощью одного из конечно-разностных методов. Выбор метода и будет определять метод решения дифференциальных уравнений. На этапе прогноза можно использовать любую формулу численного интегрирования, если в нее не входит предварительное значение у' (xn+1).
Метод Милна
В этом методе на этапе прогноза используется формула Милна:
А на этапе коррекции – формула Симпсона:
Последние члены в обеих формулах в действительности в итерационном процессе не используются и служат лишь для оценки ошибки усечения. Метод Милна относят к методам четвертого порядка точности, так как в нем отбрасываются члены, содержащие h в пятой и более высоких степенях. Может возникнуть вопрос, зачем вообще нужна коррекция, если прогноз имеет четвертый порядок точности. Ответ на этот вопрос дает оценка относительной величины членов, выражающих погрешность. В данном случае погрешность усечения при коррекции в 28 раз меньше и поэтому представляет большой интерес. Вообще итерационные формулы гораздо более точны, чем формулы прогноза, и поэтому их использование оправдано, хотя и связано с дополнительными трудностями. Несмотря на то, что формула Милна содержит меньший числовой коэффициент (1/90) перед отбрасываемым членом, ее используют реже, чем другие (с большими отбрасываемыми членами), так как ей присуща неустойчивость. Это означает, что погрешность распространения может расти экспоненциально, причем этот вывод справедлив для всех формул коррекции, основанных на правиле Симпсона.
Метод Адамса — Башфорта
Этот метод также имеет четвертый порядок точности. Используемая в нем формула прогноза получена интегрированием обратной интерполяционной формулы Ньютона и имеет вид:
На этапе коррекции используется формула:
Расчеты по методу Адамса — Башфорта выполняются так же, как и по методу Милна, однако в отличие от последнего ошибка, внесенная на каком-либо шаге, не имеет тенденции к экспоненциальному росту.
Можно предположить, что поскольку величина отбрасываемого члена известна, то её можно использовать для уточнения скорректированного значения зависимой переменной. Однако это было бы равноценно использованию системы более высокого порядка точности. Так как внесение поправок в корректирующий член может отрицательно сказаться на устойчивости счета, то для повышения точности счета следует прибегать к методам более высоких порядков точности.
Метод Хэмминга
В методе Хэмминга используются следующие формулы:
-
Прогноза
-
Уточнения прогноза
-
Коррекции
Это устойчивый метод четвертого порядка точности, в основе которого лежат следующие формулы прогноза:
И коррекции:
Особенностью метода Хэмминга является то, что он позволяет оценивать погрешности, вносимые на стадиях прогноза и коррекции и устранять их. Благодаря простоте и устойчивости этот метод является одним из наиболее распространенных методов прогноза и коррекции.
Краткая характеристика методов прогноза и коррекции
По сравнению с одношаговыми методами методы прогноза и коррекции имеют ряд особенностей:
-
Для реализации методов прогноза и коррекции необходимо иметь информацию о нескольких предыдущих точках: другими словами, они не относятся к числу «самостартующих» методов. Для получения исходной информации приходится прибегать к какому-либо одношаговому методу. Если в процессе решения дифференциальных уравнений методом прогноза и коррекции изменяется шаг, то обычно приходится временно переходить на одношаговый метод.
-
Поскольку для методов прогноза и коррекции требуются данные о предыдущих точках, то соответственно предъявляются и повышенные требования к объему и памяти компьютера.
-
Одношаговые методы и методы прогноза и коррекции обеспечивают примерно одинаковую точность результатов. Однако вторые в отличие от первых позволяют легко оценить погрешность на шаге. По этой причине, пользуясь одношаговыми методами, величину шага h обычно выбирают несколько меньше, чем это, строго говоря, необходимо, и поэтому методы прогноза и коррекции оказываются более эффективными.
-
Применяя метод Рунге — Кутта четвертого порядка точности, на каждом шаге приходится вычислять четыре значения функции, в то время как для обеспечения сходимости метода прогноза и коррекции того же порядка точности часто достаточно двух значений функции. Поэтому методы прогноза и коррекции требуют почти вдвое меньше машинного времени, чем методы Рунге — Кутта сравнимой точности. Это обстоятельство может оказывать сильное влияние на выбор алгоритма, так как стоимость машинного времени может быть весьма высокой.
Выбор шага
Одним из важных практических вопросов, которые встают перед инженером, составляющим программы решения дифференциальных уравнений, является выбор подходящей величины шага. Если шаг слишком мал, то расчет потребует неоправданно много машинного времени, а число ошибок на отдельных шагах, складывающихся в суммарную ошибку, будет весьма велико. Если же, наоборот, шаг выбран слишком большим, то значительной будет локальная погрешность, обусловленная усечением рядов, и накопившаяся суммарная ошибка будет также недопустимо большой.
Обычно, выбирая величину шага, стремятся, чтобы локальная ошибка на шаге была меньше некоторой заданной допустимой величины. Вообще говоря, если порядок точности метода n, то локальная ошибка определяется выражением Chn+1, где С — некоторая постоянная, a h — шаг.
Если используется один из методов прогноза и коррекции, то ошибка на шаге часто определяется величиной последнего члена в формуле коррекции (см., например, раздел, посвященный методу Милна). При использовании же метода Рунге — Кутта локальную ошибку не удается выразить в столь явной форме.
Если для вычисления значения искомой функции yj+1 в точке xj+1 используется шаг h, то разность между истинным и вычисленным значениями равна .
Если уменьшим шаг вдвое и вычислим в точке
, то получим:
Вычитая это выражение из предыдущего, найдем:
Отсюда можно найти локальную погрешность:
Недостатком этого метода является то, что значение приходится вычислять дважды. Так как, для того чтобы вычислить
в точке
, приходится делать два шага, каждый из которых равен половине исходного, объем вычислений увеличивается более чем вдвое. Тем не менее, эта процедура часто включается в вычислительный алгоритм для автоматического изменения шага в процессе вычислений и часто используется в методах Рунге — Кутта. Если же ошибка на шаге при данной его величине слишком велика, то ее можно уменьшить, используя при вычислениях член более высокого порядка. Это, конечно, легче сделать в случае методов прогноза и коррекции.
Главные достоинства методов Рунге — Кутта — простота начала счета и возможность быстрого изменения величины шага в процессе вычислений. С другой стороны, главным достоинством методов прогноза и коррекции является простота оценки ошибки на шаге. Раньше считалось, что эти достоинства нельзя совместить в одном алгоритме. Однако в настоящее время разработаны высокоэффективные алгоритмы, позволяющие использовать преимущества обеих групп вычислительных методов. Такие гибридные методы могут быть весьма полезны при решении инженерных задач.
«Жесткие» задачи
Некоторые обыкновенные дифференциальные уравнения не решаются ни одним из рассмотренных выше методов. Чтобы понять, почему это так, необходимо четко представлять структуру решения дифференциального уравнения. Постоянная времени дифференциального уравнения первого порядка — это промежуток времени, по истечении которого величина нестационарной части решения убывает в e-1 раз. В общем случае дифференциальное уравнение n-порядка имеет n постоянных времени. Если любые две из них сильно отличаются по величине или если одна из постоянных времени достаточно мала по сравнению с интервалом времени, для которого отыскивается решение, то задача называется «жесткой» и ее практически невозможно решить обычными методами. В таких случаях шаг должен быть достаточно мал, чтобы можно было учитывать изменение наиболее быстро изменяющихся членов уравнения даже после того, как их вклад станет практически незаметным. Если не удается сохранить достаточно малую величину шага, то решение становится неустойчивым. Хотя трудности, связанные с обеспечением устойчивости решения «жестких» задач обычными методами, можно временно обойти, уменьшив величину шага, такой подход имеет два недостатка. Во-первых, если величина шага очень мала по сравнению с интервалом, для которого отыскивается решение, то для получения решения потребуется очень много времени. Во-вторых, накапливающиеся в процессе длительных вычислений погрешности округления и усечения могут привести к получению бессмысленного результата.
Так как с «жесткими» задачами мы сталкиваемся при решении важных задач управления, расчета электрических сетей, химических реакций и пр., то в последнее время много внимания уделяется разработке эффективных методов решения и таких задач.
6