Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Решение ОДУ первого порядка | Учебники

Главная > Maple 15 > Решение ОДУ первого порядка


Решение ОДУ первого порядка

Решение ОДУ первого порядка
Начнем рассмотрение практических примеров с решения одиночных обыкновенных дифференциальных уравнений (ОДУ) первого порядка:

Следующие примеры иллюстрируют возможность решения одного и того же дифференциального уравнения ode_L разными методами:

Объем данной книги не позволяет остановиться на всех тонкостях аналитического решения дифференциальных уравнений. Множество примеров такого решения дано в справочной базе данных Maple,. 7- К ней нужно обратиться в случае, если решение того или иного дифференциального уравнения выходит за рамки учебного курса.
Решение дифференциальных уравнений второго порядка
Здесь видно, что для задания производной используется ранее рассмотренная функция diff. С помощью символа $ можно задать производную более высокого порядка. Ниже представлено решение двух дифференциальных уравнений второго порядка:
 

Обратите внимание на решение второго из этих уравнений. Здесь использован прием визуализации исходного дифференциального уравнения, и оно задается значением переменной de. Кроме того, и это особенно важно, решение осуществляется при заданных начальных условиях. Именно поэтому в решении отсутствуют произвольные постоянные вида _СN.

Решение систем дифференциальных уравнений
представлено решение системы из двух дифференциальных уравнений различными методами — в явном виде, в виде разложения в ряд и с использованием преобразования Лапласа. Здесь следует отметить, что решение в виде ряда является приближенным. Поэтому полученные в данном случае аналитические выражения отличаются от явного решения и решения с применением преобразования Лапласа. 
Следует отметить, что, несмотря на обширные возможности Maple 15 в области аналитического решения дифференциальных уравнений, оно возможно далеко не всегда. Поэтому, если не удается получить такое решение, полезно попытаться найти решение в численном виде.

Численное решение дифференциальных уравнений
Большинство нелинейных дифференциальных уравнений не имеет аналитического решения. Кроме того, часто аналитическое решение и не нужно, но требуется получить ответ в виде графических зависимостей.
В таких случаях для решения дифференциальных уравнений в численном виде используется функция dsolve с параметром numeric или type=numeric. При этом решение возвращается в виде специальной процедуры, по умолчанию реализующей широко известный метод решения дифференциальных уравнений Рунге—Кутта—Фелберга порядков 4 и 5 (в зависимости от условий адаптации решения к скорости его изменения). Эта процедура называется rkf45 и символически выводится (без тела) при попытке решения заданной системы дифференциальных уравнений. Последнее достаточно наглядно иллюстрирует.

Указанная процедура возвращает особый тип данных, позволяющих найти решение в любой точке или построить график решения (или решений). Для графического отображения Maple 15 предлагает ряд возможностей, и одна из них представлена — см. последнюю строку ввода. При этом используется функция plot[odeplot] из пакета odeplot, предназначенного для визуализации решений дифференциальных уравнений.
В список параметров функции dsolve можно явным образом включить указание на метод решения, например опция mathod=dverk78 задает решение непрерывным методом Рунге—Кутта порядка 7 или 8. Вообще говоря, численное решение дифференциальных уравнений можно производить одним из следующих методов:

  •  classical — одна из восьми версий классического метода, используемого по умолчанию;
  •  rkf45 — метод Рунге—Кутта 4 или 5 порядка, модифицированный Фелбергом;
  •  dverk78 — непрерывный метод Рунге—Кутта порядка 7 или 8;
  •  gear — одна из двух версий одношагового экстраполяционного метода Гира;
  •  mgear — одна из трех версий многошагового эктраполяционного метода Гира;
  •  lsode — одна из восьми версий Ливенморского решателя жестких дифференциальных уравнений;
  •  taylorseries — метод разложения в ряд Тейлора.

Обилие используемых методов расширяет возможности решения дифференциальных уравнений в численном виде. Большинство пользователей Maple 15 вполне устроит автоматический выбор метода решения по умолчанию. Однако в сложных случаях возможна прямая установка одного из указанных выше методов. С деталями реализации методов можно ознакомиться по справочной системе.
С помощью параметра ‘ abserr’ =аеrr можно задать величину абсолютной погрешности решения, а с помощью ‘minerr’=mine — минимальную величину погрешности. В большинстве случаев эти величины, заданные по умолчанию, оказываются приемлемыми для расчетов.
Maple 15 реализует адаптируемые к ходу решения методы, при которых шаг решения h автоматически меняется, подстраиваясь под условия решения. Так, если прогнозируемая погрешность решения становится больше заданной, шаг решения автоматически уменьшается. Более того, система Maple способна автоматически выбирать наиболее подходящий для решаемой задачи метод решения.
Еще один пример решения системы дифференциальных уравнений представлен. Здесь на одном графике представлены зависимости у(х) и z(х), представляющие полное решение заданной системы. При этом процедура имеет особый вид listprocedure и для преобразования списка выходных данных в векторы решения Y и Z используется функция subs.
Для решения достаточно сложных задач полезны специальная структура DESol для решения дифференциальных уравнений и инструментальный пакет DEtools, содержащий самые изысканные средства для графической визуализации результатов решения дифференциальных уравнений. Эти средства мы более подробно рассмотрим в дальнейшем.

 ВНИМАНИЕ 

При решении некоторых задач физики и радиоэлектроники выбираемый поумолчанию шаг изменения аргументах или t — Л может привести к неустойчивости решения. Неустойчивости можно избежать рядом способов. Можно, например, нормировать уравнения, избегая необходимости использования малого шага. А можно задать заведомо малый шаг. Например, при method=classical для этого служит параметр stepsize-h. Примеры такого подхода будут даны в уроке 17 (см. Решение физических задач и моделирование цепи на туннельном диоде).

Статьи по теме

Комментарии запрещены.