А.С. Холодов, А.И. Лобанов, А.В. Евдокимов
РАЗНОСТНЫЕ СХЕМЫ ДЛЯ РЕШЕНИЯ ЖЕСТКИХ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
В ПРОСТРАНСТВЕ
НЕОПРЕДЕЛЕННЫХ КОЭФФИЦИЕНТОВ
Предисловие
Данная книга написана на основе конспекта односеместрового курса лекций, под несколько иным названием читаемого на факультетах управления и прикладной математики (ФУПМ) и аэрофизики и космических исследований (ФАКИ) Московского физико-технического института (на ФУПМ с 1985 года). Лекции поддерживаются лабораторным практикумом из 8 работ по соответствующим разделам курса. В общем “вычислительном” образовании студентов ФУПМ эти лекции стоят между вводным курсом вычислительной математики (в объеме книг [1,2]) и фундаментальным курсом теории разностных схем (в объеме книги [3]). Это обстоятельство, а также естественное желание возможно большего охвата идей и конкретных разностных схем из всего огромного числа разработанных к настоящему времени, определило содержание и характер изложения материала данного курса.
В качестве основного подхода к построению разностных схем для простейших (модельных) уравнений принят известный метод неопределенных коэффициентов (позволяющий рассматривать достаточно обширные семейства схем), дополненный анализом этих семейств в пространстве неопределенных коэффициентов. Анализ разностных схем в пространстве коэффициентов (предложенный в [4]) оказался достаточно универсальным и весьма конструктивным средством не только для качественного сравнения различных схем (типа: устойчива – неустойчива, монотонна – немонотонна, первого – второго порядка аппроксимации и т.п.) но, в определенном смысле, и количественного их сопоставления (например, в смысле “расстояния” между схемами в пространстве неопределенных коэффициентов, если принять достаточно естественную гипотезу о том, что близкие в таком пространстве схемы близки и по своим свойствам).
Поскольку курс в целом ориентирован на методы решения нелинейных дифференциальных уравнений, характерной чертой которых являются разрывные решения, области больших градиентов (“пограничные слои”) и т.п., достаточно большое внимание уделено построению монотонных (мажорантных) схем. При переходе от модельных уравнений к линейным системам и нелинейным уравнениям в курсе активно используются характеристические свойства уравнений гиперболического типа и аналогичные методы расщепления для других типов уравнений, интегро-интерполяционный метод (метод интегрального тождества) и другие эффективные способы обобщения схем с сохранением заложенных в модельные схемы свойств.
Жесткие ОДУ
Линейные однородные уравнения первого порядка
Рассмотрим вначале простейшее уравнение
(1)
на отрезке
(2)
и задачу Коши для (1)
u(0) = u 0 (3)
Решение (1)-(3), очевидно,
(4)
Если , имеем неограниченное (неустойчивое) решение (рис. 1 .1).

|
Рис. 1 .1. |
Рис. 1 .2. |
Рис. 1 .3. |
В этом случае нет ничего, что могло бы в аналогичных, но более сложных случаях (нелинейные системы) облегчить жизнь вычислителю. Надо интегрировать (1) с шагом по времени, обеспечивающим необходимую точность до тех пор, пока это возможно. Если , то решение задачи (1)-(3) ограниченное ( ). С точки зрения вычислителя важна величина отрезка интегрирования T . Если , то имеем обычную ситуацию (рис. 1 .2), можно пользоваться стандартными методами численного интегрирования (Эйлера, Эйлера–Коши, Рунге–Кутты, Адамса и т.д.). Если , то имеем решение типа “пограничного слоя” (рис. 1 .3) с резким изменением u на малом (в масштабе T ) отрезке [0,T 0 ] . В аналогичных, но более сложных ситуациях (когда положение “пограничного слоя” заранее неизвестно и т.д.) при численном интегрировании возникают осложнения, которые и будут рассмотрены позднее. Основная идея заключается в том, чтобы численный метод обеспечивал качественно правильное поведение численного решения на участке “пограничного слоя” (при ), т.е. быстрое затухание, и возможно точнее воспроизводил решение на основном участке интегрирования (вне “пограничного слоя”).
Системы линейных однородных уравнений
Пусть имеется J уравнений (1)
j = 1,…,J (5)
с начальными условиями .
Если обозначить
,
и перейти к векторной форме
, (6)
то, сделав замену , где
,
т.е. полагая , получим вместо (6) однородную линейную систему ОДУ
. (7)
Так как , то или .
Наоборот, если задана система (7), то умножая ее скалярно J раз на левые собственные векторы матрицы A , определяемые, как это следует из (7), с точностью до их длины, из J линейных однородных систем
или (8)
приходим к эквивалентной (7) совокупности уравнений (5), связанных друг с другом только через начальные условия
v(0) = v 0 или . (9)
Здесь – собственные значения матрицы A , т.е. корни характеристического уравнения
, (10)
– многочлен степени J .
Решение каждого из уравнений (5) имеет вид (4), т.е. , а значит, решение задачи Коши (7),(9) есть , т.е. является линейной комбинацией экспонент (если все действительны) или имеет более сложный характер с присутствием гармонических составляющих (если среди будут комплексно-сопряженные корни уравнения (10)).
, , 
( , a, b – константы). Обозначим и введем вектор , тогда
,

или, в векторной форме,
, ,
где – собственные значения матрицы A из (10):
 ,
.
При |a|~|b|~1 , приближенно имеем , ; , . Далее, из (8)
, ,
при .
Тогда, учитывая, что , получаем:
,
.
Если оба действительны, то имеем комбинацию двух экспонент, затухающих при ? 1 <0 и ? 2 <0. Если ? 1 = ? + i ? , ? 2 = ? – i ? , то u ( t ) = e ?t {[( u 1 – ?u 0 ) sin ( ?t )]/ ? + u 0 cos ( ?t )} , и на экспоненту e ?t накладываются гармонические колебания с периодом T * ~1/ ? , т.е. характер поведения решения определяется собственными значениями матрицы A .
В общем случае можно выделить следующие четыре характерных ситуации:

|

|
А |
Б |

|

|
В |
Г |
Рис. 1 .4. Виды спектров матриц систем ОДУ |
Случай А не доставляет вычислителю никаких хлопот, проходят стандартные методы (явные схемы Рунге–Кутты, Адамса т.п.), уже изучавшиеся в курсе вычислительной математики.
Случай Б практически безнадежен (неустойчивые по Ляпунову системы ОДУ).
Случай В довольно часто встречается на практике и для него, в принципе, есть специальные методы, основанные на осреднении быстроосциллирующих гармоник (методы осреднения и т.п.).
Случай Г мы и будем рассматривать (жесткие системы ОДУ). Для матрицы A большой размерности найти все собственные числа (полная спектральная задача) не очень просто из-за ее плохой обусловленности. Действительно, для жесткой системы число обусловленности матрицы A
(11)
или, приближенно, || A ||Т >>1, и отсюда идут все неприятности. Здесь и в дальнейшем || · || – норма матрицы.
Нелинейные жесткие уравнения
Рассмотрим одно сингулярно возмущенное уравнение , ,
, , (12)
В случае если предельное (вырожденное) уравнение (12) при 

при каждом значении t имеет единственное решение
, (13)
и в окрестности этого предельного решения , (условие устойчивости решений (12)), имеем ситуацию, изображенную на рис. 1 .5. Аналогичная ситуация была и в примере 1.1.3 при малых (в том случае предельное уравнение было ). Как и в линейном случае, поведение решения разделяется на два характерных участка: пограничный слой для малых (его длина ), и близкое к предельному решению (13) поведение при . Обычно определяемый “физикой задачи” участок интегрирования .

Рис. 1 .5. Поле решений уравнения (12)
Пример: сингулярно возмущенная нелинейная система второго порядка
Рассмотрим следующую автономную (правая часть не зависит от времени) систему двух нелинейных уравнений:
, , , , ,
, . (14)
Убедимся, что система жесткая. Записав (14) в векторной форме u={x,y} , , , имеем:
или
.
Если мало, то , . Видно, что , при , поэтому ? 2 называют нормальной частью спектра, а ? 1 – жесткой частью спектра.
Предельное уравнение:
или ,
, . (15)
В случае уравнения Ван дер Поля
; (16)
(которое важно во многих приложениях, например, в радиотехнике), получаем предельное уравнение и поле решений в фазовой плоскости, изображённое на рис. 1 .6.

Рис. 1 .6. Поле решений уравнения Ван дер Поля
Вдали от линии имеем почти горизонтальное поле направлений , на самой линии выделяются две устойчивые ветви AB и CD и одна неустойчивая ветвь BC . При любых начальных значениях траектория этой системы – замкнутая кривая BB?CC? .
1) На участке траектория почти горизонтальна и приближенно определяется уравнениями:
, , (17)
(пограничный слой).
2) При и система описывается предельными уравнениями (16) (квазистационарный режим вплоть до точки B ). Если и после т. B пользоваться предельными уравнениями (16), то мы бы двигались по BC . Но реальная система на этом участке неустойчива и система сходит с этой ветви на ветвь DB?C . На этом участке и решение определяется поведением .
3) Опять пограничный слой (17) при , за ним квазистационарное движение на участке B?C при , пограничный слой и т.д. (все повторяется).

Рис. 1 .7. Компоненты решения уравнения
Ван дер Поля в зависимости от времени.
Произвольная система нелинейных уравнений
В случае задачи Коши для общей системы нелинейных уравнений
, , ,
, (18)
поведение ее решения вблизи некоторой точки определяется матрицей Якоби A .
Определение 1 . 1 . Система называется жесткой, если для всех t,v (т.е. на решениях (18)), собственные значения матрицы A удовлетворяют условиям:
, ,
, .
(т.е. расположены как на рис. 1 .4Г). Для оценки можно взять легко вычисляемую величину нормы матрицы A , для оценки – величину следа матрицы ; можно заменить на величину 1/Т, определяемую обычно из физики задачи. То есть простейшим критерием жесткости системы могут служить неравенства Т || A ||>>1, Sр( A )<<–1 (иногда ограничиваются даже одним условием (11)), однако надежных простых способов нет, и поэтому нужны численные методы, работающие без проверок на жесткость.
Примеры простейших разностных схем для жестких ОДУ
Способы построения схем
При численном решении задачи (18) с помощью разностных схем в некоторой последовательности точек вычисляются значения . Способов вычисления (разностных схем) изобретено множество, однако, не очень сильно отличаясь по качеству получаемого численного решения в стандартном случае (рис. 1 .4А), далеко не все из них пригодны для расчета жестких систем ОДУ (рис. 1 .4Г). В идейном плане можно выделить три основных подхода к их построению.
Одношаговые (двухточечные) методы типа Рунге–Кутты (схемы с пересчетом или схемы предиктор-корректор), пожалуй, наиболее популярны. Многие неявные варианты этих схем пригодны и для жестких систем. Здесь для вычисления v n требуется знание только v n+1 . Для неявных вариантов методов типа Рунге–Кутты косвенно используется матрица Якоби (несущая информацию о свойствах системы). В этих методах легко меняется шаг интегрирования в необходимых случаях. Могут быть построены методы достаточно высокого порядка точности. Вместе с тем требуется многократное вычисление правой части f в промежуточных точках , которые при переходе к новой точке не используются.
Многошаговые линейные методы (тоже могут быть и явными и неявными). При использовании этих методов не пропадает впустую информация в предыдущих точках , т.е. эти методы требуют меньшего числа вычислений f . Как и в одношаговых методах, в случае неявных схем косвенно используется информация о матрице Якоби A . Однако эти методы требуют “разгона” (вычисления дополнительных “начальных” значений в точках , получаемых другими методами). Для явных схем плохо с устойчивостью, возникают трудности с изменением шага интегрирования в процессе счета.
Не очень распространенный, но перспективный (в том числе для жестких систем) подход, связанный с переходом к продолженным системам :
(19)
Вводя расширенный искомый вектор u={v,w}, получаем для него уравнение
u t = B(t,v)u + r(t,v) , где

( r = 0, если f явно не зависит от t , т.е. в случае автономной системы). Увеличивая размерность u (т.е. вычисляя в точках t= t n не только v , v t = f , но и и т.д.), этот процесс можно продолжить (конечно, если f задается аналитически и соответствующие производные от f не очень громоздки).
Всевозможные гибриды из 1 , 2 , 3 и ряд других подходов.
Требования к численным методам решения жёстких систем ОДУ
Каким же условиям должны удовлетворять разностные схемы для решения жестких систем? Разберем на примере системы (14) два простейших метода – явный и неявный методы ломаных, называемые также схемами Эйлера.
На участке пограничного слоя (его протяженность ) для воспроизведения решения пригоден практически любой обеспечивающий необходимую точность численный метод с шагом . Например, даже для явной схемы Эйлера в линейном случае (7)

имеем из условия устойчивости . Для примера (14),(16) (уравнение Ван дер Поля) , что не является здесь обременительным. Общее число шагов по времени ~10?100 тоже вполне приемлемо. Однако это ограничение на шаг интегрирования действует и на участках квазистационарного решения (С?B, B?C) и для прохождения таких участков потребуется уже шагов! А это уже неприемлемо при очень малых . Возможный выход – переход к решению предельной системы (15), в которой уже не фигурирует, а условие устойчивости (конечно, линеаризованное, т.е. действующее в небольшой окрестности кривой C?BB?CC?) или вполне приемлемо.
При численном решении на участках С?B и BС? полной системы (14), (16) хорошо работает неявный метод Эйлера

Для решения получающейся на каждом шаге по t нелинейной относительно v n+1 системы

используется какой-либо итерационный метод (например, метод Ньютона).
В случае линейной системы (7) в неявном методе Эйлера
(20)
условие устойчивости выполняется для любых при . Поэтому при использовании метода (20) для задачи (14),(16) на участках С?B, BС? нет проблем, исключая, конечно, тот факт, что матрица A плохо обусловлена для жестких систем и при обращении матрицы ( E – A ) могут возникнуть трудности при больших . Проведённый анализ показывает, (да и просто по графику x(t) на рис. 1 .7 видно), что шаг интегрирования на разных участках следует выбирать разным , и численный метод должен позволять это делать достаточно просто. Это первая характерная особенность жестких систем. То есть надо уметь предсказывать момент появления пограничных слоев, а это определяется собственными значениями матрицы Якоби. Отметим также, что в неявном методе Эйлера для системы (14)
,
,
т.е. приближенно мы как бы решаем предельную систему (15), так как .
Менять шаг интегрирования в процессе счета можно, но далеко не всегда нас интересует детальное поведение решения в пределах пограничного слоя. В таких случаях можно брать и по неявной схеме проходить пограничный слой за один шаг по времени.
Посмотрим еще, что будет происходить в неявной схеме вблизи точки B (или С) на примере уравнения Ван дер Поля (14), (16). Имеем:

,
.
Вблизи точки B с координатами {x n ,y n } имеем
, т.е. кубическое относительно искомого x n+1 уравнение, решения которого изображены на рис. 1 .8.

Рис. 1 .8. К алгоритму расчёта уравнения Ван дер Поля по неявной схеме Эйлера
Выбор в итерационном методе в качестве начального приближения {x n ,y n } при решении этого кубического уравнения может не дать сходимости. Это следствие вырождения исходной системы (14), и за этим надо следить (варьируя и т.п.). Например, задается некоторая точность сходимости итерационного процесса и минимально ( m ) и максимально ( M ) допустимые числа итераций. Если за M итераций процесс не сходится, уменьшают, если сходится за меньшее, чем m число итераций, то увеличивают и т.д.
|