logo search
Дифф_ур_в_MathCad

Жесткие системы дифференциальных уравнений

Система дифференциальных уравнений, записанная в матричной форме y=A*X , где А – почти вырожденная матрица, называется жесткой. В этом случае решение, возвращаемое функцией rkfixed может быть неустойчивым. Для решения жестких систем в пакете есть специальные функции: Stiffb, Stiffr, stiffb, stiffr. Функции Stiffb и stiffb используют метод Булирша-Штера соответственно с постоянным и переменным шагом. А функции Stiffr и stiffr используют метод Розенброка соответственно с постоянным и переменным шагом.

Метод Розенброка решения жестких систем дифференциальных уравнений (y и f – векторы, t – независимая переменная) заключается в следующем: 1. На каждом шаге вычисляется матрица производных в точке : ; 2. следующая точка находится из матричного уравнения:

,  в котором постоянные параметры алгоритма имеют, к примеру, такие значения: .

Таким образом, алгоритм Розенброка является одношаговым и явным (не требуется решения нелинейных уравнений на каждом шаге). Однако пересчет каждого шага требует   численного определения производных функции и решения системы линейных уравнений (т.к. искомые компоненты вектора входят в матричное уравнение в линейной комбинации).

Алгоритм Розенброкка, благодаря своей вычислительной простоте, реализован не только в пакете MathCad , но и во многих других математических пакетах.

Вид матрицы, возвращаемой этими функциями, совпадает с возвращаемым функцией rkfixed. Однако эти функции требуют задания дополнительных аргументов.

Функции Stiffb, Stiffr имеют следующие аргументы:

­­– вектор начальных условий размерности , где – порядок дифференциального уравнения или число уравнений в системе ОДУ ( если решается система уравнений);

– граничные точки интервала, на котором ищется решение ДУ. Начальные условия, заданные в векторе , – это значение решения в точке ;

– число точек (не считая начальной), в которых ищется приближенное решение. Этот аргумент определяет число строк в матрице, возвращаемой функциями Stiffb, Stiffr;

– функция, возвращающая значение в виде вектора из элементов, содержащих первые производные неизвестных функций;

– функция, которая возвращает матрицу размером . Первый столбец содержит производные . Остальные строки и столбцы представляют собой матрицу Якоби системы ОДУ. Например, если

, то .

Если надо найти приближенное решение задачи Коши только в конечной точке интервала, то для жестких систем используют функции stiffb, stiffr.

Рассмотрим только те параметры, которых нет в функциях Stiffb, Stiffr:

– параметр, контролирующий точность решения. Малое значение заставляет алгоритм брать меньшие шаги вдоль траектории, что увеличивает точность решения. Значения, близкие к 0.001, дают хорошую точность решения;

– максимальное число промежуточных точек, в которых ищется приближенное решение. Значение ограничивает сверху число строк матрицы, возвращаемой функцией;

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

Работа № 3