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

Для решения дифференциальных уравнений Mathcad имеет ряд встроенных функций, в частности, функцию rkfixed, реализующую метод Рунге–Кутты четвертого порядка с фиксированным шагом. Фактически эта функция предназначена для решения систем дифференциальных уравнений первого порядка.

Функция rkfixed(y, x1, x2, npoints, D) возвращает матрицу. Первый столбец этой матрицы содержит точки, в которых получено решение, а остальные столбцы – решения и его первые производные.

Аргументы функции:

· y – вектор начальных значений (n элементов).

· x1 и x2 – границы интервала, на котором ищется решение дифференциального уравнения.

· npoints – число точек внутри интервала (x1,x2), в которых ищется решение. Функция rkfixed возвращает матрицу, состоящую из 1+npoints строк.

· D – вектор, состоящий из n элементов, который содержит первые производные искомой функции.

В качестве примера рассмотрим решение системы Вольтерры–Лотки. Эта система описывает динамику численности хищников и жертв на замкнутом ареале и является одной из базовых моделей экологии.

Для решения систем дифференциальных уравнений используются функция rkfixed.

Внимание! В этом примере установлено значение ORIGIN=1, то есть нумерация элементов массива начинается с 1, а не с 0, как это принято в Mathcad 'е по умолчанию.

Пусть в начальный момент времени число хищников и число жертв

Задаем вектор начальных значений

параметры системы

интервал времени и количество точек, в которых будет вычислено решение

и вектор правых частей системы. (Поскольку исходная система не зависит явно от времени t, функция D так же не зависит от времени явно хотя и содержит его в числе своих аргументов.)

Решаем систему с помощью встроенной функции

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

и зависимость числа жертв от числа хищников

Можно использовать обозначения или – это одно и то же.

Поскольку дифференциальное уравнение порядка выше первого может быть преобразовано к системе дифференциальных уравнений первого порядка, функция rkfixed может быть использована и для решения дифференциальных уравнений


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: