Пример
жесткой системы ~ Условие
жесткости системы
В вычислительной практике часто встречаются
системы дифференциальных уравнений, которые
принято называть жесткими.
Не приводя точного определения жесткой системы,
проиллюстрируем содержание этого понятия и
возникающие проблемы на примере
жесткой линейной системы двух
дифференциальных уравнений с постоянными
коэффициентами.
Пусть требуется численно
решить задачу Коши
y'1 = -2y1 - 998 y2
,
y'2 = - 1000y2
,
y1 (0) = 2, y2 (0)=1.
Эту задачу можно записать в матричной форме в
виде:

где

искомое решение,

матрица системы,

значение решения в начальной точке x = 0 —
начальное условие.
Легко видеть, что точное решение системы имеет
вид:
y1 (x) = exp(-2x) + exp(-1000x),
y2 (x) = exp(-1000x).
Слагаемое
exp(-1000x)
убывает очень быстро,
а слагаемое exp(-2x) — гораздо медленнее.
Попытаемся найти решение этой задачи методом Рунге-Кутты с
различными шагами. Графики полученных решений и
графики точного решения приведены ниже (график
точного решения - справа).



Видно, что полученные приближенные решения уже
на первых шагах содержат большие ошибки. Для
получения правдоподобного результата на отрезке
[0, 0.1] нужно выбирать шаг, меньший 0.003. Это
означает, что для достаточно большого интервала
интегрирования потребуется выполнить
вычисления для очень большого числа шагов.
Казалось бы, можно избежать интегрирования на
всем промежутке с малым шагом: вести вычисления с
малым шагом до тех пор, пока компонента
exp(-1000x)
станет пренебрежимо малой, а затем увеличить шаг
и до конца промежутка интегрирования вести
вычисления с большим шагом. Оказывается, что на
самом деле это совсем не так. Вторая компонента
заставляет вести интегрирование с малым шагом на
всем промежутке интегрирования. Это и означает,
что система жесткая. Жесткость системы
проявляется тогда, когда длина промежутка
интегрирования T удовлетворяет соотношению

где lmax — наибольшее по
абсолютной величине собственное число матрицы
системы A. Для интегрирования жестких систем
необходимо применять специально разработанные
методы.
ПРИМЕР 1. Интегрирование
жесткой системы дифференциальных уравнений.
В примере рассмотрена линейная жесткая
система. Однако специальные методы решения
жестких систем, как правило, универсальны, т.е.
применяются для решения как линейных так и
нелинейных систем.

|