Матричные вычисления в Mathcad


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



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



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

  • Radau(y0,t0,t1,M,F) — алгоритм RADAUS для жестких систем ОДУ;
  •  stiffb(y0,t0,1,M,F, J) — алгоритм Булирша—Штера для жестких систем ОДУ;
  •  stiffr (y0, t0, t1,M, F, J) — алгоритм Розенброка для жестких систем ОДУ:

  •  у0 — вектор начальных значений в точке to;
  •  t0,t1 — начальная и конечная точки расчета;
  •  M — число шагов численного метода;
  •  F — векторная функция F(t, у) размера 1xN, задающая систему ОДУ;
  •  J — матричная функция j(t,y) размера (N+1)xN, составленная из вектора производных функции F(t,y) no t (правый столбец) и ее якобиана (N левых столбцов).


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

Примечание 1
Примечание 1


Встроенная функция Radau, которая не требует явного задания якобиана системы уравнений, появилась в версии Mathcad 2001I, а остальные две — в Mathcad 2001.



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









Начало  Назад  Вперед


Книжный магазин