Функции для решения жестких ОДУ



11.5.2. Функции для решения жестких ОДУ

Решение жестких систем дифференциальных уравнений можно осуществить только с помощью встроенных функций, аналогичных по действию семейству рассмотренных выше функций для обычных ОДУ.

  • Radau(y0,t0,t1,M,F) — алгоритм RADAUS для жестких систем ОДУ;
  • stiffb(y0,t0,t1,M,F,j) — алгоритм Булирша-Штера для жестких систем ОДУ;
  • stiffr(y0,t0,t1,M,F,j) — алгоритм Розенброка для жестких систем ОДУ;
    • у0 — вектор начальных значений в точке to;
    • t0.t1 — начальная и конечная точки расчета;
    • M— число шагов численного метода;
    • F — векторная функция F(t,y) размера IXN, задающая систему ОДУ;
    • J- матричная функция J(t,y) размера (N+DXN, составленная из вектора производных функции F(t,y) no t (правый столбец) и ее якобиана (N левых столбцов).

Как Вы можете заметить, для двух последних функций серьезным отличием от функций, решающих нежесткие системы, является добавление к стандартному набору параметров дополнительной матричной функции, задающей якобиан системы ОДУ. Решение выдается в виде матрицы, по форме идентичной аналогичным функциям решения нежестких задач Коши.

Покажем действие этих алгоритмов на том же примере жесткой системы ОДУ химической кинетики (листинг 11.14). Обратите внимание, как следует представлять в данном случае якобиан, сравнив задание матричной функции в предпоследней строке листинга 11.14 с заданием якобиана из листинга 11.13.



Содержание раздела