
384
Рис. A.30 – Решение системы дифференциальных уравнений с применением
функции rkfixed
Если решение системы дифференциальных уравнений имеет вид гладких
функций, то вместо функции rkfixed, описанной ранее, целесообразно применять
функцию Bulstoer(y, x1, x2, n, F), реализующую метод Булирша—Штера.
Система дифференциальных уравнений, записанная в матричной форме y = A
x,
где A – почти вырожденная матрица, называется жесткой. Для решения систем
жестких дифференциальных уравнений в последние версии Mathcad введен ряд
функций: bulstoer(y, x1, x2, acc, n, F, k, s), Stiffb(y, x1, x2, n, F, J), stiffb(y, x1, x2, acc,
n, F, J, k, s), Stiffr(y, x1, x2, n, F, J) и stiffr(y, x1, x2, acc, n, F, J, k, s). Они
возвращают матрицу решения в интервале от x2 до x2, векторе начальных
условий y и других, отмеченных выше параметров. Используется метод Булириш-
Штера и Розенброка (последний требует определения Якобиана J). В
приведенных функциях:
acc – погрешность решения (рекомендуется порядка 0.001),
k – максимальное число промежуточных точек,
s – минимально-допустимый интервал между точками, в которых ищется решение.
Функции, начинающиеся с малой буквы, дают решения только для конечной точки.
Пример решения жесткой системы дифференциальных уравнений дан на рисунке
A.31.