5Simulation systems Лекция 7-9 ОДУ (1014124), страница 6
Текст из файла (страница 6)
Одним из важных практических вопросов, которые встают перед инженером, составляющим программы решения дифференциальных уравнений, является выбор подходящей величины шага. Если шаг слишком мал, то расчет потребует неоправданно много машинного времени, а число ошибок на отдельных шагах, складывающихся в суммарную ошибку, будет весьма велико. Если же, наоборот, шаг выбран слишком большим, то значительной будет локальная погрешность, обусловленная усечением рядов, и накопившаяся суммарная ошибка будет также недопустимо большой.
Обычно, выбирая величину шага, стремятся, чтобы локальная ошибка на шаге была меньше некоторой заданной допустимой величины. Вообще говоря, если порядок точности метода n, то локальная ошибка определяется выражением Chn+1, где С — некоторая постоянная, a h — шаг.
Если используется один из методов прогноза и коррекции, то ошибка на шаге часто определяется величиной последнего члена в формуле коррекции (см., например, раздел, посвященный методу Милна). При использовании же метода Рунге — Кутта локальную ошибку не удается выразить в столь явной форме.
Если для вычисления значения искомой функции yj+1 в точке xj+1 используется шаг h, то разность между истинным и вычисленным значениями равна .
Если уменьшим шаг вдвое и вычислим в точке
, то получим:
Вычитая это выражение из предыдущего, найдем:
Отсюда можно найти локальную погрешность:
Недостатком этого метода является то, что значение приходится вычислять дважды. Так как, для того чтобы вычислить
в точке
, приходится делать два шага, каждый из которых равен половине исходного, объем вычислений увеличивается более чем вдвое. Тем не менее, эта процедура часто включается в вычислительный алгоритм для автоматического изменения шага в процессе вычислений и часто используется в методах Рунге — Кутта. Если же ошибка на шаге при данной его величине слишком велика, то ее можно уменьшить, используя при вычислениях член более высокого порядка. Это, конечно, легче сделать в случае методов прогноза и коррекции.
Главные достоинства методов Рунге — Кутта — простота начала счета и возможность быстрого изменения величины шага в процессе вычислений. С другой стороны, главным достоинством методов прогноза и коррекции является простота оценки ошибки на шаге. Раньше считалось, что эти достоинства нельзя совместить в одном алгоритме. Однако в настоящее время разработаны высокоэффективные алгоритмы, позволяющие использовать преимущества обеих групп вычислительных методов. Такие гибридные методы могут быть весьма полезны при решении инженерных задач.
3.4.4. «Жесткие» задачи
Некоторые обыкновенные дифференциальные уравнения не решаются ни одним из рассмотренных выше методов. Чтобы понять, почему это так, необходимо четко представлять структуру решения дифференциального уравнения. Постоянная времени дифференциального уравнения первого порядка — это промежуток времени, по истечении которого величина нестационарной части решения убывает в e-1 раз. В общем случае дифференциальное уравнение n-порядка имеет n постоянных времени. Если любые две из них сильно отличаются по величине или если одна из постоянных времени достаточно мала по сравнению с интервалом времени, для которого отыскивается решение, то задача называется «жесткой» и ее практически невозможно решить обычными методами. В таких случаях шаг должен быть достаточно мал, чтобы можно было учитывать изменение наиболее быстро изменяющихся членов уравнения даже после того, как их вклад станет практически незаметным. Если не удается сохранить достаточно малую величину шага, то решение становится неустойчивым. Хотя трудности, связанные с обеспечением устойчивости решения «жестких» задач обычными методами, можно временно обойти, уменьшив величину шага, такой подход имеет два недостатка. Во-первых, если величина шага очень мала по сравнению с интервалом, для которого отыскивается решение, то для получения решения потребуется очень много времени. Во-вторых, накапливающиеся в процессе длительных вычислений погрешности округления и усечения могут привести к получению бессмысленного результата.
Так как с «жесткими» задачами мы сталкиваемся при решении важных задач управления, расчета электрических сетей, химических реакций и пр., то в последнее время много внимания уделяется разработке эффективных методов решения и таких задач.
3.5. Краевые задачи и обзор методов их решения
Как отмечалось выше, задача, заключающаяся в решении обыкновенного дифференциального уравнения при дополнительных условиях, поставленных при нескольких значениях независимой переменной, называется краевой.
Для простоты изложение будем вести на примере обыкновенного дифференциального уравнения второго порядка при граничных условиях y(a)=A, y(b)=B.
Уравнения более высоких порядков можно решать теми же методами, которые разобьем на следующие группы:
Методы, основанные на замене решения краевой задачи решением нескольких задач Коши (методы «стрельбы»)
Если обыкновенное дифференциальное уравнение второго порядка является линейным, т. е. имеет вид при дополнительных условиях y(a)=A, y(b)=B, то краевую задачу можно свести к задаче Коши с помощью начальных условий
и получить второе решение
. Если
, причем
, то решение
Удовлетворяет обоим начальным граничным условиям.
Если решается нелинейное обыкновенное дифференциальное уравнение, то решение краевой задачи можно свести к решению нескольких задач Коши, последовательно вводя в начальные условия значения и стремясь найти решение, удовлетворяющее условию y(b)=B. При этом большую помощь может оказать интерполяция, позволяющая построить упорядоченную последовательность а и свести к минимуму объем вычислений. К сожалению, этот метод малоэффективен, и его нельзя рекомендовать для замены более совершенных методов.
Методы, в которых используется конечно-разностная форма дифференциального уравнения.
Достоинство конечно-разностных методов в том, что они позволяют свести решение краевой задачи к решению системы алгебраических уравнений. При решении двухточечной краевой задачи при
интервал
можно разделить на n равных частей:
Где . В точках
, называемых узлами, стремятся получить значение решения
. Зная координаты узлов и пользуясь конечно – разностными выражениями для производных:
Можно представить дифференциальное уравнение в виде разностного уравнения. Отметим, что существуют различные формы конечно-разностных выражений для производных. Если записать это разностное уравнение для при двух краевых условиях, то задача сводится к решению системы n — 1 алгебраических уравнений с п—1 неизвестными
. Если исходное дифференциальное уравнение линейное, то задача будет состоять в решении системы линейных алгебраических уравнений. Если же исходное дифференциальное уравнение нелинейное, задача сводится к решению системы нелинейных алгебраических или трансцендентных уравнений. Хотя методы решения таких линейных и нелинейных уравнений известны, привести решение краевой задачи методом конечных разностей к виду, требуемому стандартной программой, нелегко, так как формулировка каждой задачи зависит от вида рассматриваемого дифференциального уравнения.
-
Методы прогонки.
-
Вариационные методы (Ритца, Галеркина).
-
другие
3.6.Общие рекомендации по решению обыкновенных дифференциальных уравнений.
Сформулировать общие правила выбора наилучшего метода того или иного обыкновенного дифференциального уравнения невозможно. Однако можно рекомендовать руководствоваться при этом следующими соображениями.
-
Рассмотрение типа задачи. Если это задача Коши, то можно воспользоваться одной из готовых подпрограмм, позволяющих получить решение. Если же это краевая задача, то возможно, придется составлять собственную программу.
-
Оценка степени сложности дифференциального уравнения.
Если задача Коши очень сложна, и вычисление f(X,Y) связано с большими трудностями, то обычно отдают предпочтение одному из методов прогноза и коррекции, так как они требуют вычисления лишь двух значений f(X,Y) на шаге вместо четырех, как в методах Рунге-Кутта.
-
Оценка времени, требуемого для решения задачи.
Если в первую очередь приходится учитывать стоимость машинного времени, то лучшим будет метод прогноза и коррекции. Если же определяющим является время подготовки задачи к счету, то следует воспользоваться методом Рунге-Кутта.
-
Оценка требуемой точности.
Вообще говоря, чем выше порядок точности метода, тем более точным будет полученный результат. Это утверждение справедливо лишь до некоторой степени, так как конечно-разностные аналоги производных по мере повышения порядка аппроксимации ведут себя все хуже и хуже. Поэтому погрешность метода при переходе от 5-го порядка к более высоким порядкам точности (что к тому же связано и с дополнительными громоздкими вычислениями) практически не убывает. Поскольку обычно достигается некоторый компромисс между объектом и точностью вычислений, то следует уделять внимание как выбору порядка точности метода, так и выбору величины шага. Поэтому большое распространение получили алгоритмы, в которых автоматически изменяется шаг интегрирования или порядок применяемого метода.
-
Учет имеющегося опыта. Предшествующие успехи или неудачи в применении того или иного метода для решения конкретной задачи могут представить ценный материал для суждения о целесообразности выбора подходящего алгоритма.
Для решения краевых задач наиболее простыми и универсальными являются конечно-разностные методы, заслуженно получившие широкое распространение в практике автоматизированного проектирования. На основе этих методов разработаны достаточно гибкие и универсальные программы широкого назначения. Особенностью конечно-разностных методов является также их приспособленность к решению уравнений в частных производных. Поэтому на конечно-разностных методах необходимо остановиться более подробно, что будет сделано в дальнейшем в разделе, посвящённому методам решения задач математической физики, описываемых уравнениями в частных производных.