Maple 9.5/10 в математике, физике и образовании
Шрифт:
В список параметров функции dsolve можно явным образом включить указание на метод решения, например опция method=dverk78 задает решение непрерывным методом Рунге-Кутта порядка 7 или 8. Вообще говоря, численное решение дифференциальных уравнений можно производить одним из следующих методов:
• classical — одна из восьми версий классического метода, используемого по умолчанию;
• rkf45 — метод Рунге-Кутта 4 или 5 порядка, модифицированный Фелбергом;
• dverk78 — непрерывный метод Рунге-Кутта порядка 7 или 8;
• gear — одна из двух версий одношагового экстраполяционного метода Гира;
• mgear — одна из трех версий многошагового
• lsode — одна из восьми версий Ливенморского решателя жестких дифференциальных уравнений;
• taylorseries — метод разложения в ряд Тейлора.
Обилие используемых методов расширяет возможности решения дифференциальных уравнений в численном виде. Большинство пользователей Maple вполне устроит автоматический выбор метода решения по умолчанию. Однако в сложных случаях, или когда заведомо желателен тот или иной конкретный алгоритм численного решения, возможна прямая установка одного из указанных выше методов.
С помощью параметра 'abserr'=aerr можно задать величину абсолютной погрешности решения, а с помощью 'minerr'=mine — минимальную величину погрешности. В большинстве случаев эти величины, заданные по умолчанию, оказываются приемлемыми для расчетов.
Maple реализует адаптируемые к ходу решения методы, при которых шаг решения h автоматически меняется, подстраиваясь под условия решения. Так, если прогнозируемая погрешность решения становится больше заданной, шаг решения автоматически уменьшается. Более того, система Maple способна автоматически выбирать наиболее подходящий для решаемой задачи метод решения.
Еще один пример решения системы дифференциальных уравнений представлен на рис. 7.9. Здесь на одном графике представлены зависимости y(x) и z(x) представляющие полное решение заданной системы. При этом процедура имеет особый вид listprocedure и для преобразования списка выходных данных в векторы решения Y и Z используется функция subs.
Рис. 7.9. Решение системы дифференциальных уравнений численным методом с выводом всех графиков искомых зависимостей
Для решения достаточно сложных задач полезны специальная структура DESol для решения дифференциальных уравнений и инструментальный пакет SEtools, содержащий самые изысканные средства для графической визуализации результатов решения дифференциальных уравнений. Эти средства мы более подробно рассмотрим в дальнейшем.
При решении некоторых задач физики и радиоэлектроники выбираемый по умолчанию шаг изменения аргумента х или t-h может привести к неустойчивости решения. Неустойчивости можно избежать рядом способов. Можно, например, нормировать уравнения, избегая необходимости использования малого шага. А можно задать заведомо малый шаг. Например, при method=classical для этого служит параметр stepsize=h.
7.3.2. Дифференциальные уравнения с кусочными функциями
Состоящие из ряда кусков кусочные функции широко используются при математическом моделировании различных физических объектов и систем. В основе такого моделирования обычно лежит решение дифференциальных уравнений, описывающих поведение объектов и систем. Покажем возможность применения кусочных функций для решения дифференциальных уравнений.
Ниже представлено задание дифференциального уравнения первого порядка, содержащего кусочную функцию:
Используя функцию dsolve, выполним решение этого дифференциального уравнения:
Нетрудно заметить, что результат получен также в форме кусочной функции, полностью определяющей решение на трех интервалах изменения х.
Приведем пример решения дифференциального уравнения второго порядка с кусочной функцией:
В заключении этого раздела приведем пример решения нелинейного дифференциального уравнения Риккати с кусочной функцией:
В ряде случаев желательна проверка решения дифференциальных уравнений. Ниже показано, как она делается для последнего уравнения:
Как видно из приведенных достаточно простых и наглядных примеров, результаты решения дифференциальных уравнений с кусочными функциями могут быть довольно громоздкими. Это, однако, не мешает эффективному применению функций этого класса.
7.3.3. Структура неявного представления дифференциальных уравнений — DESol
В ряде случаев иметь явное представление дифференциальных уравнений нецелесообразно. Для неявного их представления в Maple введена специальная структура
где exprs — выражение для исходной системы дифференциальных уравнений, vars — заданный в виде опции список переменных (или одна переменная).
Структура DESol образует некоторый объект, дающий представление о дифференциальных уравнениях, чем-то напоминающее RootOf. С этим объектом можно обращаться как с функцией, то есть его можно интегрировать, дифференцировать, получать разложение в ряд и вычислять численными методами.
На рис. 7.10 показаны примеры применения структуры DESol.