Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММСиП Лекция 5 Решение обыкновенных дифференциа....doc
Скачиваний:
35
Добавлен:
22.12.2018
Размер:
579.07 Кб
Скачать

15

Глава 5. Решение обыкновенных дифференциальных уравнений

Одним из основных блоков решения обыкновенных дифференциальных уравнений (ОДУ) в Mathcad является блок Given…Odesolve. Этот решающий блок используется для решения обыкновенных дифференциальных уравнений с заданными начальными условиями (задача Коши). Блок применим как для решения линейных и нелинейных уравнений n –го порядка с одним неизвестным, так и для систем уравнений первого порядка с n неизвестными.

Кроме блока Given…Odesolve в Mathcad имеется ещё несколько функций, реализующих классические алгоритмы численного решения задачи Коши для систем обыкновенных дифференциальных уравнений. Важнейшими из них , по нашему мнению, являются методы Рунге-Кутта интегрирования уравнений с фиксированным (rkfixed) шагом и с переменным шагом (Rkadapt), которые практически всегда приводят к решению. Аналогичные задачи позволяет решать и метод Булирша-Штера( Bulirsch-Stoer) с переменным и фиксированным шагом (функция Bulstoer), который в некоторых случаях даёт более точное решение при меньших затратах машинного времени. Для решения систем с вырожденной матрицей ОДУ предназначена функция Radau.

В Mathcad имеется возможность решения краевой задачи с помощью функции sbval, реализующей «метод прогонки».

Для решения в Mathcad системы уравнений любым из перечисленных выше методов исходная, т.е. записанная в математической форме система уравнений:

, (5.1)

где - аргумент(обычно подразумевается время),

- заданная функция своих аргументов,

должна быть преобразована к виду:

, (5.2)

где вектор (матрица-столбец) искомых функций,

вектор (матрица- столбец) значений производных – вектор правых частей системы уравнений в любой точке решения, представленного в виде матрицы-столбца (t, Y).

5.1. Решение оду с помощью решающего блока Given …Odesolve.

5.1.1. Решение оду первого порядка.

В случае уравнения первого порядка задаётся одно начальное условие на левом конце интервала интегрирования, т.е. в виде . Решение уравнения разыскивается на отрезке времени: .

На рабочем листе алгоритм решения уравнения (5.1) записывается следующим образом ( рис. 5.1):

- задаётся имя правой части уравнения, например f(t,y), которому присваивается её выражение;

- печатается оператор Given;

- печатается дифференциальное уравнение;

- записывается начальное условие;

- решение записывается в виде: y:= Odesolve(t, t1).

Рис. 5.1. Пример решения дифференциального уравнения 1-го порядка блоком Given…Odesolve

Примечание: 1. Для ввода главного символа производной «'» необходимо после имени функции напечатать [Ctrl] +F7 .

2. Внутри блока Given…Odesolve левая и правая части в записи уравнения и начального условия отделяются только знаком эквивалентности, который вводится комбинацией клавиш [Ctrl] + =(равно) или щелчком мыши на панели Boolean.