Maple 9.5/10 в математике, физике и образовании
Шрифт:
В первом случае система дифференциальных уравнений (модель Лотки-Вольтерра) автономна, а во втором случае дифференциальное уравнение не автономно.
7.6.3. Контроль уровня вывода решения ДУ
Для углубленного анализа аналитического решения ДУ (или системы ДУ) можно использовать специальную возможность управления уровнем вывода решения с помощью системной переменной infolevel(dsolve):=level. Значение level=all дает обычный вывод решения без комментариев, уровень 1 зарезервирован для информации, которую может сообщить пользователь, уровень 2 или 3 дает более детальный вывод (включая
Приведем пример аналитического решения ДУ третьего порядка с контролем уровня вывода решения (файл deil):
В данном случае повышение уровня вывода до 4 или 5 бесполезно, поскольку вся информация о решении сообщается уже при уровне 2 (или 3).
7.6.4. Приближенное полиномиальное решение дифференциальных уравнений
Во многих случаях аналитические решения даже простых ДУ оказываются весьма сложными, например, содержат
специальные математические функции. При этом нередко полезна подмена такого решения другим, тоже аналитическим, но приближенным решением. Наиболее распространенным приближенным решением в этом случае может быть полиномиальное решение, то есть замена реального решения полиномом той или иной степени. При этом порядок полинома задается значением системной переменной Order, а для получения такого решения функция dsolve должна иметь параметр series.На рис. 7.21 представлено решение ДУ третьего порядка различными методами: точное аналитическое и приближенное в виде полинома с максимальным заданным порядком 10 и 60. График дает сравнение этих решений для зависимости у(t).
Рис. 7.21. Примеры решения ДУ третьего порядка
Дадим небольшой комментарий. Нетрудно заметить, что точное аналитическое решение весьма сложно и содержит специальные функции Бесселя и гамма-функции. При порядке полинома 8 (он несколько меньше заданного максимального) решение практически совпадает с точным до значений t<2, а при максимальном заданном порядке 60 область совпадения расширяется до значений t<5,5. Затем приближенное решение резко отходит от точного.
Этот пример с одной стороны иллюстрирует хорошо известный факт — быстрое нарастание погрешности полиномиального приближения за пределами области хорошего совпадений решений. С другой стороны он показывает, что степень полинома более 60 (и даже выше) вовсе не так уж бесполезна, как это утверждается во многих статьях и книгах по полиномиальному приближению. Точность полиномиальных вычислений Maple достаточно высока, чтобы обеспечить получение приближенных полиномиальных выражений со степенью порядка десятков и иногда даже сотен. Другое дело, что столь «длинный» полином не всегда удобен для аналитических расчетов, даже несмотря на его структурную простоту.
7.7. Решение дифференциальных уравнений специального вида
7.7.1. Определение жестких систем дифференциальных уравнений
В последнее время особое внимание уделяется решению важного класса систем дифференциальных уравнений — жестких. Если представить систему дифференциальных уравнений в матричном виде у = Ах, то такая система относится к жесткой при выполнении следующих двух условий:
• действительные части всех собственных значений матрицы А отрицательны, т. е. Re(λk)<0 (А = 0, 1, …, n– 1);
• величина s=max|Re(λk) |/min|Re(λk) (k=0, 1, …, n-1), именуемая жесткостью системы, должна быть велика.
Жесткие системы впервые появились при решении систем дифференциальных уравнений химической кинетики. Решение таких систем представляется фрагментами с сильно отличающейся крутизной зависимостей. Нередко это случается и при анализе электрических цепей с резко отличными постоянными времени.
Если шаг решения h сравним или больше наименьшей постоянной времени решения, то применение стандартных методов (например, Рунге-Кутта) с неизменным шагом приводит к большим погрешностям вычислений и даже к к расхождению вычислительного процесса, в ходе которого решение грубо отлично от существующего.
Maple в большинстве случаев дает верное решение даже без указания метода решения. Это связано с тем, что система дифференциальных уравнений при решении его функцией dsolve анализируется и в зависимости от результатов анализа выбирается наиболее подходящий метод решения. Кроме того, большинство методов (например, самый распространенный rkf45) реализуют алгоритмы контроля погрешности вычислений и дробления шага решения, если погрешность оказывается больше заданной.