Лекция 10: Численные методы решения жестких систем обыкновенных дифференциальных уравнений
Определение. ([9.3]) Система ОДУ для задачи Коши
![$ \dot {u} = {F}(u), {u}(0) = u_0, t_0 \le t \le t_k $](/sites/default/files/tex_cache/4db7cf26d2a1c294db460a7251d42fd9.png)
называется жесткой, если спектр матрицы Якоби
J ={f'u(u)}
разделяется на две части.
- Жесткий спектр:
(
— собственные значения матрицы Якоби );
-
Мягкий спектр:
При этом
Отношение называется показателем жесткости системы. В дальнейшем будем полагать
Проблему численного решения жестких систем ОДУ рассмотрим на примере модельной линейной системы вида:
![]() |
( 9.1) |
Ее точное решение задается формулой
![]() |
( 9.2) |
где константы интегрирования соответствуют
жесткой и мягкой частям спектра ;
— собственные векторы матрицы Якоби, соответствующие собственным значениям
В этом решении видны две части: первая (жесткая) убывает как на временном интервале
(пограничный слой), вторая заметно изменяется на интервале
(квазистационарный режим).
Если провести аппроксимацию линейной системы ОДУ с помощью явного метода Эйлера
![$ \frac{u_{n + 1} - u_n}{{\tau}} = Bu_n, $](/sites/default/files/tex_cache/c94415a27826ecba888118c7c1041a2f.png)
или
![u_{n + 1} = (E + \tau B)u_{n},](/sites/default/files/tex_cache/7f82291bef4fc0ca92ac00ec8173ba79.png)
то общее решение такой системы разностных уравнений будет иметь вид
![]() |
( 9.3) |
Второе слагаемое в этом решении аппроксимирует второе слагаемое в точном решении (9.2), а первое быстро растет и приводит к абсурдному результату.
Теперь проведем аппроксимацию линейной системы ОДУ (9.1) с помощью неявного метода Эйлера:
![$ \frac{u_{n + 1} - u_n}{{\tau}} = Bu_{n + 1}, $](/sites/default/files/tex_cache/750a5404bbea915f38eaacf38fb5b04c.png)
или
![u_{n + 1} = (E + \tau B)^{ - 1}u_{n}.](/sites/default/files/tex_cache/7bbdee3d471b9df6fde1085af818d0fd.png)
Общее решение такого разностного уравнения имеет следующий вид:
![u_n (t) = \sum\limits_{j = 1}^{N_1 }{c_j (1 - {\tau}\Lambda_j)^{- n}{\Omega }_j} +
\sum\limits_{k = 1}^{N_2 }{\bar c_k (1 - {\tau}\lambda_k)^{- n}{\omega }_k}.](/sites/default/files/tex_cache/c95834901cfaa230eb307c58fac9e919.png)
В этом случае второе слагаемое ведет себя так же, как и точное решение, а первое стремится к нулю как т.е. его поведение качественно совпадает с точным в области пограничного слоя.
В практике численных исследований жестких задач часто не нужно изучать
поведение решения в пограничном слое, и можно воспользоваться неявными методами. Но в случае необходимости исследовать этот слой можно с шагом