logo
ОиАСУ / Лабораторная работа 3

2. Решение систем дифференциальных уравнений численными методами в среде MathCad

Mathcad предоставляет пользователю библиотеку встроенных функций Differential Equation Solving, предназначенных для численного решения систем дифференциальных уравнений. В состав ее входят функции Mathcad, предназначенные для решения задачи Коши и граничных задач для нормальных систем обыкновенных дифференциальных уравнений. Задачи для уравнений высших порядков сводятся к соответствующим задачам для нормальных систем.

Рассмотрим задачу Коши:

(3.10)

Система (3.10) называется нормальной системой дифференциальных уравнений. Численное решение задачи Коши состоит в построении таблицы приближенных значений xi,1 , xi,2 , ..., xi,N решения x1 (t), x2 (t), ..., xN (t) на отрезке [t0 , tN ] в точках t1 , t2 , ..., tN, которые называются узлами сетки. Обозначив

,

,

,

где– искомое решение,– вектор начальных условий, а– вектор правых частей, запишем систему дифференциальных уравнений в векторной форме:

, .

В Mathcad решить задачу Коши для такой системы можно с помощью следующих функций:

Смысл параметров для всех функций одинаков и определяется математической постановкой задачи:

x0 – вектор начальных условий;

t0, tn – начальная и конечная точки отрезка интегрирования системы (левая и правая границы интервала времени);

n — число точек в интервале [t0, tn];

F — имя вектора-функции правых частей.

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

Когда известно, что решение является гладкой функцией, более точное решение даёт функция Bulstoer,которая использует методБулирша-Штера, и имеет те же аргументы, что иrkfixed.