Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 83 84 85 86 87 88 89 90 91 ... 125
Перейти на страницу:

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) реализуют алгоритмы контроля погрешности вычислений и дробления шага решения, если погрешность оказывается больше заданной.

В связи с указанным решение жестких систем дифференциальных уравнении средствами системы Maple не вызывает особых трудностей и может быть осуществлено даже при выборе не вполне удачного метода. Однако при этом возможны следующие ситуации:

• может резко возрасти время вычислений из за чрезмерно сильного уменьшения шага решения;

• может оказаться превышенным число итераций в ходе дробления шага;

• для «особо жестких» систем адаптивный выбор шага может не помочь и погрешность решения будет большой.

Во избежание этого рекомендуется при решении жестких систем дифференциальных уравнений все же пользоваться специально для них созданными методами, например методом Розенброка (опция method=rosenbrock для функции dsolve).

7.7.2. Примеры решения жестких систем дифференциальных уравнений

В качестве первого примера исследуем и решим следующую систему дифференциальных уравнений (файл sdes):

> deq2 := diff(u(t),t) = -11*u(t)+9*v(t), diff(v(t),t) = 9*u(t)-11*v(t);

Загрузив пакет linalg вычислим собственные значения матрицы данной системы дифференциальных уравнений:

> with(linalg): M:=matrix(2,2, [-11,9,9,-11]);

> ge:=eigenvalues(M);

ge := - 2, -20

Они оказались отрицательными. Кроме того, очевидно, что значение жесткости данной системы s=10. Его трудно назвать очень большим, но в целом условия жесткости для данной системы выполняются. Теперь решим эту систему методом Розенберга. Решение представлено на рис. 7.22. Обратите внимание на то, что представлены две точки и график решения. К достоинствам реализации примененного метода относится отсутствие необходимости в составлении матрицы Якоби, которую приходится задавать при использовании ряда функций системы Mathcad, имеющихся для решения жестких систем дифференциальных уравнений [9].

Рис. 7.22. Задание и решение жесткой системы дифференциальных уравнений (пример 1)

Еще один пример задания и решения жесткой системы дифференциальных уравнений представлен на рис. 7.23. Собственные значения матрицы этой системы равны -2 и -1000, а жесткость системы s=500 (проверьте сами по аналогии с ранее приведенным примером). Таким образом, эта система намного жестче, чем система из первого примера. Обратите внимание на то, что она решается без задания метода решения, но с опцией stiff=true, вынуждающей Maple выбирать метод для решения жестких систем дифференциальных уравнений.

Рис. 7.23. Задание и решение жесткой системы дифференциальных уравнений (пример 2)

7.7.3. Пример решения системы жестких дифференциальных уравнений химической кинетики

Жесткие системы дифференциальных уравнений, часто описывают кинетику химических процессов, например, растворение веществ в растворах или смешивание газов.

На рис. 7.24 показано решение жесткой системы из трех дифференциальных уравнений, описывающих один из типовых химических процессов — какой именно в данном случае не важно.

Рис. 7.24. Решение жесткой системы дифференциальных уравнений, описывающей кинетику химического процесса

7.7.4. Решение дифференциального уравнения Ван-Дер Поля

Классическим примером нелинейного дифференциального уравнения второго порядка, относящегося к жесткому типу по большом значении некоторого параметра mu, относится уравнение Ван-Дер Поля. Важность этого уравнения заключается в том, что к нему довольно просто сводятся дифференциальные уравнения, описывающие динамику развития колебаний в различных колебательных системах, например, автогенераторах на электронных лампах, полевых и биполярных транзисторах.

Пример задания и решения дифференциального уравнения Ван-Дер Поля при сравнительно малом mu=1 (и при выборе метода решения по умолчанию) представлен на рис. 7.25. Нетрудно заметить, что выбор Maple пал на метод rkf45 и что этот метод не очень удачен даже для этого метода с mu=1. Хотя общая форма колебаний (близкая к синусоидальной, но все же заметно искаженная) в интервале t от 0 до 20 просматривается, уже в данном случае видна нестабильность колебаний. При увеличен максимального значения t до 100 и более, нестабильность колебаний становится весьма заметна (проверьте это сами).

Рис. 7.25 Задание и решение дифференциального уравнения Ван-Дер Поля при сравнительно малом mu=1

Задание и решение дифференциального уравнения Ван-Дер Поля при большом mu=2000 (рис. 7.26) демонстрирует существенное изменение формы временной зависимости колебаний и их параметров. Теперь отчетливо виден разрывный характер колебаний, типичный для релаксационных колебаний. Моделирование колебаний в этом случае методом rkf45 уже невозможно и потому для решения задана опция stiff=true. При этом Maple взял за основу метод Розенброка. Он обеспечивает более качественное моделирование в системе Ван-Дер Поля.

Рис. 7.26. Задание и решение дифференциального уравнения Ван-Дер Поля при большом mu=2000

Дополнительные примеры на решение жестких систем дифференциальных уравнений можно найти в разделах справки по решению таких уравнений.

7.7.5. Решение дифференциальных уравнении с двумя краевыми условиями

В решении ряда математических задач нужно найти решение дифференциального уравнения с двумя краевыми условиями. Например, в физике это задача стрельбы по летящей цели. Обычно такая задача решается методом пристрелки, при котором методом проб с итерационным уточнением рассчитывается ряд вариантов решения и выбирается тот, у которого соблюдается начальное условие в начале решения и начальное условие в конце решения с заданной (в частности по умолчанию) погрешностью.

Для такого решения используется функция dsolve в следующем виде:

dsolve(odesys, numeric, vars, options)

Здесь:

• odesys — множество или список обыкновенных дифференциальных уравнений и двойных граничных условии;

• numeric — опция, задающая решение в численном виде;

• vars — опционально заданный параметр, задающий имя переменной в odesys;

• options — опционально заданные равенства (в форме keyword=value), определяющие краевые условия.

Пример решения дифференциального уравнения второго порядка с двумя граничными условиями представлен на рис. 7.27. Отчетливо видно, что найденная зависимость точно удовлетворяет краевым условиям.

Рис. 7.27. Пример решения дифференциального уравнения второго порядка с двумя граничными условиями

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

7.8.1. Функция pdsolve

В Maple 9.5 имеется функция pdsolve для решения дифференциальных уравнений с частными производными. Она может использоваться в следующих формах записи:

pdsolve(PDE, f, HINT, INTEGRATE, build)

pdsolve(PDE_system, funcs, HINT, other_options)

pdsolve(PDE_system, conds, numeric, other_options)

1 ... 83 84 85 86 87 88 89 90 91 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии