Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Решение обыкновенных дифференциальных уравнений в системах компьютерной математики. Учебное пособие
.pdf
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 (Начало)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
