Многие серьезные физические и научно-технические задачи базируются на решении систем дифференциальных уравнений. Нелинейные дифференциальные уравнения и системы с такими уравнениями, как правило, не имеют аналитических методов решения, и здесь особенно важна возможность их решения численными методами. В большинстве случаев желательно представление решений в графическом виде. Эти возможности системы MathCAD и рассматриваются ниже.
Дифференциальным уравнением называется уравнение, связывающее независимую переменную х, искомую функцию y=f(x) и ее производные y', y'', y''', …, y(n). Символически дифференциальное уравнение записывается
или
.
Если искомая функция y=f(x) есть функция одного независимого переменного, то дифференциальное называется однородным (ОДУ). Решением дифференциального уравнения называется всякая функция y=f(x), которая при подстановке ее вместе с производными в это уравнение обращает последнее в тождество.
Обыкновенное дифференциальное уравнение или система ОДУ имеет единственное решение, если помимо уравнения определенным образом заданы начальные или граничные условия. Имеются два типа задач, которые можно решить с помощью MathCAD:
- задача Коши – для которых определены начальные условия на искомые функции, т.е. заданы значения этих функций в начальной точке интервала интегрирования уравнения;
- краевые задачи – для которых заданы определенные соотношения сразу на обеих границах интервала.
Для численного интегрирования ОДУ в MathCAD имеется выбор:
1. Вычислительный блок Given / Odesolve, состоящий их трех частей:
- Given – ключевое слово;
- ОДУ и начальные или граничные условия;
- Odesolve(х, х1, [, step]) – встроенная функция для решения ОДУ относительно переменной х на интервале (х0, х1) с шагом интегрирования step.
Результатом применения блока Given / Odesolve является функция, определенная на промежутке (х0, х1).
Функция Odesolve решает поставленную задачу методом Рунге-Кутты четвертого порядка с фиксированным шагом. Для решения задачи методом Рунге-Кутты с автоматическим выбором шага необходимо нажатием правой кнопки мыши на области функции вызвать контекстное меню и выбрать в нем пункт Адаптивно.
Встроенная функция Odesolve предназначена для решения дифференциальных уравнений, линейных относительно старшей производной.
2. Встроенные функции, решающие ОДУ различными численными методами:
- rkfixed (y0, х0, х1, P, D) – метод Рунге-Кутты с фиксированным шагом;
- Rkadapt (y0, х0, х1, P, D) – метод Рунге-Кутты с переменным шагом;
- Bulstoer (y0, х0, х1, P, D) – метод Булирша-Штера;
где y0 – вектор начальных условий;
х0, х1 – интервал интегрирования;
P – число шагов интегрирования;
D – векторная функция, задающая систему ОДУ.
Каждая из приведенных функций выдает решение в виде матрицы размером (M+1)´(N+1). В ее левом столбце находятся значения аргумента х, а в остальных столбцах – значения искомой функции y0(х), y1(х), …, yn-1(х), рассчитанные для этих значений аргумента.
Встроенные функции предназначены для решения задачи Коши и граничных задач, для систем обыкновенных дифференциальных уравнений в нормальной форме.
Следует отметить, что в дифференциальных уравнениях символ производной можно ввести как в виде знака дифференциала, так и с помощью штриха.