
- •Глава 5. Решение обыкновенных дифференциальных уравнений
- •5.1. Решение оду с помощью решающего блока Given …Odesolve.
- •5.1.1. Решение оду первого порядка.
- •5.1.2. Решение оду n-го порядка с одним неизвестным.
- •5.1.3. Решение системы оду первого порядка
- •5.2. Решение системы оду методом Рунге-Кутта с фиксированным шагом интегрирования (функция rkfixed).
- •5.3. Решение системы оду методом Рунге-Кутта с автоматическим выбором шага интегрирования (Rkadapt).
- •5.4. Решение системы оду методом Булирша – Штера (функция Bulstoer).
- •5.5. Решение системы оду методом Розенброка (функция Radau).
- •5.6. Решение краевых задач для обыкновенных дифференциальных уравнений.
5.1.2. Решение оду n-го порядка с одним неизвестным.
Решение ОДУ с одним неизвестным n-го порядка с помощью блока Given …Odesolve формально не отличается от решения уравнения первого порядка: сначала на рабочем листе записывается ключевое слово Given, далее дифференциальное уравнение с начальными условиями и, на конец, функция Odesolve(t, tend,k) с параметрами. В список параметров входят: t – аргумент искомой функции, tend – правый конец интервала интегрирования уравнения, k – число шагов, за которые происходит вычисление решение уравнения (необязательный параметр, который может в записи функции не указываться).
На рис. 5.2 приведен пример решения ОДУ 3-го порядка с одним неизвестным x(t).
Рис. 5.2. Пример решения ОДУ n-го порядка блоком
Given …Odesolve.
5.1.3. Решение системы оду первого порядка
Использование решающего блока Given …Odesolve является одним из способов решения системы ОДУ первого порядка. На рабочем листе система уравнений должна быть записана с производными слева, порядок записи начальных условий несущественен. Как и ранее правая часть отделяется от левой символом эквивалентности.
Пример решения системы 3-х уравнений приведен на рис. 5.3.
Рис. 5.3. Пример решения системы ОДУ решающим блоком
Given …Odesolve.
5.2. Решение системы оду методом Рунге-Кутта с фиксированным шагом интегрирования (функция rkfixed).
Функция
rkfixed
возвращает матрицу S1 размерности
значений
решения системы
n
- обыкновенных дифференциальных уравнений
на
отрезке [t0,
t1]
изменения аргумента t,
определенного производными в векторе
D(t,Y) и начальными условиями, заданными
вектором Y0,
методом Рунге-Кутта
с постоянным (заданным) шагом изменения
аргумента.
Параметр npoints
задаёт число строк в матрице результата.
Очевидно, чем больше число npoints
, тем точнее аппроксимация решения.
Обращение к функции имеет вид: rkfixed(Y, t0, t1, npoints, D).
Рис. 5.5. Пример решения системы ОДУ с применением функции rkfixed(y, x1, x2, npoints, D) и выводом решения в табличной форме.
Для решения системы уравнений с использованием этой функции необходимо:
- присвоить начальное t0 и конечное значения t1 отрезка интегрирования (аргумента t);
- задать (присвоить) число точек интегрирования (параметр npoints);
- cоздать вектор начальных условий с именем Y0 размерности n;
- создать вектор D(t,Y) правых частей системы уравнений – производных, размерностью n;
- напечатать решение: S1:= rkfixed(Y0, t0,t1, npoints, D).
Решение
системы уравнений представляет собой
матрицу размерности
,
поэтому для просмотра и оформления
результатов необходимо аргументу t
и искомым функциям присвоить значения
соответствующих элементов векторов -
столбцов матрицы решений S1(интерполировать
матрицу системой функций):
- значение вектора аргумента,
- значение первой функции,
- значение второй функции, (5.3)
………………………………..
- значение n-ой функции.