Среди динамических систем имеется класс так называемых жестких (stiff) систем ОДУ, для которых стандартные методы (Рунге-Кутты и т.п.) практически неприменимы, поскольку их решение требует исключительно малого значения шага численного метода. Исторически, интерес к жестким системам возник в середине XX века при изучении уравнений химической кинетики с одновременным присутствием очень медленно и очень быстро протекающих химических реакций. Тогда неожиданно оказалось, что, как считалось, исключительно надежные методы стали давать сбой при расчете этих задач. Про жесткие ОДУ см. разд. ОДУ > Задачи Коши > жесткие ОДУ.
Рассмотрим классическую модель
каталитического химического взаимодействия трех веществ (Робертсон,
1966).
Пусть в реакции участвуют три вещества.
Вещество "0" медленно превращается в "1": "0"-->"1" (со скоростью 0.1), вещество "1" при каталитическом воздействии самого себя превращается очень быстро в вещество "2": "1"+"1"-->"2"+"1"
(103). И, наконец подобным образом (но со средней скоростью) реагируют вещества "2" и "1": "1"+"2"-->"0"+"2"
(102). Система ОДУ, описывающая динамику концентрации реагентов,
приведена
ниже.
Бросается в глаза сильно различающийся порядок коэффициентов при разных слагаемых. Именно степень этого различия чаще всего и определяет жесткость системы ОДУ.
Для приведенного примера стандартным методом Рунге-Кутты все-таки удается найти решение. Однако, для этого требуется очень большое число шагов, M=20000, что делает расчеты очень медленными. Расчеты по специальным алгоритмам показывают, что для получения того же результата (см. рис. 1) достаточно в тысячу раз меньшего количества шагов численного алгоритма, чем для стандартного метода Рунге-Кутты! Примерно во столько же раз требуется меньше компьютерного времени на проведение расчетов. Стоит ли говорить, что, если Вы имеете дело с жесткими (в той или иной степени) системами, применение этих алгоритмов просто необходимо.
Рис. 1. Решение системы ОДУ
химической кинетики методом Розенброка
Важно заметить, что до сих пор мы имели дело с примером не очень жесткой системы. Попробуйте вместо скоростей упомянутых химических реакций, 0.1, 103 и 102 взять другие числа, например 0.05, 104 и 107 соответственно. Заметим, что такое соотношение скоростей часто встречается в прикладных задачах химической кинетики и определяет куда более жесткую систему ОДУ. Ее уже никак не удается решить стандартными методами, поскольку число шагов численного метода нужно брать просто гигантским. А между тем, алгоритмы для жестких ОДУ справляются с этой задачей с легкостью (рис. 2), причем практически при тех же значениях шага, что были взяты в предыдущем примере.
Рис. 2. Решение более жесткой системы ОДУ
химической кинетики методом Розенброка
Обратите внимание, что порядки величины
решений для концентраций различных
веществ на рис. 2 различаются еще сильнее,
чем в предыдущем (менее жестком) примере.
Замечание
Это еще раз доказывает, что одна и та же
система ОДУ с различными коэффициентами
может быть жесткой в разной степени. В
частности, приведенный выше пример
генератора Ван дер Поля с
параметром 5000 - это уже пример жесткой
задачи.