Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Решение обыкновенных дифференциальных уравнений в системах компьютерной математики. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
11
Рис. 2
Рис. 3
12
Рис. 4
На первой странице имеются строки X-Axes (ось Х) и Primary Y-Axes (Первая ось У), а под ними ряд надписей, левая часть которых относится к оси Х, а правая – к оси У (рис. 4):
Log Scale (Логарифмическая шкала) вводит логарифмический масштаб для соответствующей оси;
Grid lines (Сетка) – ее нажатие вводит сетку на график;
Numbered (Оцифровка) – оцифровка сетки;
Auto scale (Автоматическая оцифровка);
Show markers (Показ маркеров);
Auto grid (Автоматическое разбиение сетки).
В левом нижнем углу страницы имеются точки Boxed (Коробочка), Crossed (Оси), None (Нет). Нажав на первую точку, введем в график оси
координат.
Наличие надписей Enable secondary Y Axes (Возможность второй оси У) и Secondary Y Axes (Вторая ось У) дает возможность формировать графики различного масштаба для различных функций.
На вкладке X-Y Axes текущего диалогового окна для отображения сетки для координатных осей установим свойство Grid lines. В результате получим изображение, представленное на рисунке 5.
13
Рис. 5
На рисунке 6 представлено решение задачи Коши для ОДУ, используя функцию odesolve.
Рис. 6
14
Указанная функция предназначена для решения дифференциальных уравнений, линейных относительно старшей производной и используется в блоке Given (при завершении набора данной команды не нажимайте клавишу пробел, иначе это слово будет просто текстом).Следует отметить, что искомая функция в блоке Given обязательно должна быть с аргументом, конечная точка расчета обязательно должна быть больше начальной точки, число заданных начальных или граничных условий внутри блока должно быть равно порядку уравнения, не допускаются начальные и граничные условия смешанного типа.
Пример 1.6. Решить дифференциальное уравнение четвёртого порядка
󰇛󰇜 с начальными условиями: 󰇛󰇜, 
󰆒󰆒󰆒
󰆒󰇛󰇜 и
󰇛󰇜
 на отрезке [0; 2π].
Рассмотрим решение этого уравнения (рис. 7).
С помощью функции rkfixed выполним замену переменных и приведем дифференциальное уравнение четвертого порядка к четырем дифференциальным уравнениям первого порядка. В результате получим матрицу, количество столбцов которой равно порядку уравнения +1, а количество строк равно параметру D. Первый столбец содержит значения независимой переменной, второй – значение функции, третий – для дифференциальных уравнений 2-го порядка – значение производной искомой функции и т. д. В случае, если решается система двух уравнений первого порядка, то третий столбец будет содержать значения второй функции. Для выделения решений (функций или их производных) можно воспользоваться стандартным оператором вывода столбцов матрицы M
Пример 1.7. Решить дифференциальное уравнение второго порядка
󰆒󰆒 с граничными условиями - 󰇛󰇜 и 󰇛󰇜.
Для решения уравнения применим функцию odesolve и построим график полученного решения (рис. 8). Граничные условия можно задавать лишь в двух точках: в начале и в конце интервала интегрирования.
󰆒
󰇛󰇜
,
< >
.
15
Рис. 7
16
Рис. 8
1.2.2. Решение обыкновенных дифференциальных уравнений в системе Maple
Maple – это система компьютерной математики, имеющая собственный интерпретируемый язык программирования и ориентированная на сложные математические вычисления, моделирование и визуализацию данных.
Для решения ОДУ в Maple используется инструментальный пакет
DEtools и команда dsolve в разных формах записи:
dsolve(ODE );
dsolve(ODE,var,options);
dsolve({ODE, ICs},var,options;
ODE – ОДУ или система ОДУ в виде множества или списка;
var – функция одной переменной, относительно которой ищется
решение;
ICs – выражение, задающее начальные условия;
options– дополнительные опции, например:
17
type=exact (аналитическое решение); type=series (приближенное решение в виде степенного ряда); type=numeric (численное решение); output=basis (фундаментальная система решений); method=laplace (решение с помощью интегральных преобразований); method=classical – классический метод Рунге-Кутты 3-го порядка; method=rkf45 - метод Рунге-Кутты-Фельберга 4-5-го порядка
(установлен по умолчанию);
method=dverk78 – метод Рунге-Кутты 7-8 порядка; method=gear – одношаговый метод Гира; method=mgear – многошаговый метод Гира.
По умолчанию, если дополнительные опции options не указаны, Maple пытается найти аналитическое выражение для неизвестной функции. Если не удается получить явное решение задачи, то решение выводится в неявном виде. Для вывода решения в явном виде следует указать опцию type=explicit либо задать _EnvExplicit:=true перед выполнением команды dsolve.
Иногда в ответах, возвращаемых функцией dsolve, могут появиться интегралы. Они появляются в случаях, если функция int не смогла вычислить возникающие при решении интегралы или оказалось удобным не вычислять их в процессе решения. Используя функцию value, можно запросить вычисление этих интегралов.
Для указания производной при задании уравнения можно использовать функции diff, Diff или оператор D, а для обозначения производной в дополнительных условиях используется только оператор D. Например,
условие 󰇛󰇜 следует записать в виде 󰇛@@󰇜󰇛󰇜󰇛󰇜 или условие
󰇛󰇜 в виде 󰇛󰇜󰇛󰇜. Производная n-го порядка записывается в
󰇛
виде
@@󰇜󰇛
Команда Diff является так называемой отложенной (пассивной) командой, которая не вычисляет производную от выражения, а просто отображает математическую запись операции дифференцирования. Результат действия отложенной команды можно присвоить переменной Maple и при помощи команды value вычислить его значение.
Пример 1.8. Решить дифференциальное уравнение первого порядка
󰆒 при начальном условии 󰇛󰇜 на отрезке [1;5].
Процесс решения данного уравнения приведен ниже (рис.9).
󰇜
.
18
Рис. 9
Каждый оператор или команда должны обязательно завершаться разделительным знаком, которых в Maple два — точка с запятой (;) и двоеточие (:). Если предложение завершается точкой с запятой, то оно вычисляется и в области вывода отображается результат. При использовании в качестве разделителя двоеточия команда выполняется, но результаты ее работы не отображаются в области вывода рабочего листа.
Команды restart открывают новую Maple- сессию. При этом полностью очищается внутреннюю память Maple от всех определений, которые были совершены в процессе работы.
Операция возведения в степень обозначается символом ^ или **,
19
неизменяемая константа π – Pi.
Команда dsolve выдает решение дифференциального уравнения в невычислимом формате. Для того, чтобы с решением можно было бы работать далее (например, построить график решения) следует отделить правую часть полученного решения командой rhs(%), где символ % означает подстановку результата выполнения предыдущей команды, что позволяет упростить запись некоторых команд и отказаться от введения ненужных переменных.
Функция odetest проверяет явные и неявные решения, производя упрощение уравнения относительно данного решения. Если решение имеет место, возвращается "0"; иначе, будет возвращено полученное после упрощения алгебраическое выражение.
Функция имеет формат odetest(sol, ode,y(x)),
где sol — проверяемое решение;
ode — обыкновенное дифференциальное уравнение; y(x) — (необязательный параметр) искомая функция.
Команда plot позволяет рисовать график одной или нескольких функций одной переменной, заданных в явном или параметрическом виде, а также отображать множество точек в декартовой или полярной системе координат. Ниже представлены наиболее часто используемые опции команды plot:
axes – тип отображаемых осей координат:
normal – обычные оси координат, пересекающиеся в точке начала
координат (0,0);
boxed – график заключен в прямоугольник с нанесенными
шкалами по нижней и левой вертикальной граням;
frame – оси с точкой пересечения в левом нижнем углу рисунка; none – оси не отображаются;
color – цвет линии;
font – шрифт текста;
legend – легенда;
linestyle – тип линии (значением этой опции является целое число n):
n=0 – по умолчанию; n=1 – сплошная линия; n=2 –точка; n=3 – пунктир; n=4 – штрих-пунктир;
thickness – толщина линии;
font – шрифт текста;
title – заголовок рисунка.
20
Пример 1.9. Решить дифференциальное уравнение четвёртого порядка
󰇛󰇜 с начальными условиями: 󰇛󰇜, 
󰆒󰆒󰆒
󰆒󰇛󰇜 и
󰇛󰇜
 на отрезке [0; 2π].
Для нахождения численного решения ОДУ команда dsolve вызывается с параметром type=numeric. В результате выполнения будет создана процедура, к которой можно обращаться для вычисления решения при заданном значении переменной и для построения графика на заданном промежутке. График численного решения строится командой odeplot.
Для многих типов ОДУ нельзя найти точное аналитическое решение. В этом случае ОДУ можно решить с помощью приближенных методов, в частности, с помощью разложения в степенной ряд неизвестной функции. Чтобы указать порядок разложения n, следует перед командой dsolve задать Order:=n. Разложение в степенной ряд имеет тип series. Для того, чтобы с решением можно было бы работать далее (например, построить график решения), его следует преобразовать в полином с помощью команды convert(%, polynom), а затем выделить правую часть полученного выражения командой rhs(%).
Пример вычисления и построения точного, численного и приближенного решения данного уравнения приведен ниже (рис. 10).
󰆒
󰇛󰇜
,
Рис. 10 (Начало)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]