[Trenogin_V.A.]_Obueknovennuee_differencialnuee_ur(BookZZ.org)
.pdf
272 Доп. II. Приложения MATHCAD к задачам для обыкновенных ДУ
Рис. 78
Рис. 79
Данная система ДУ была исследована в Дополнении I. В системе координат (u, v) фазовые траектории при некоторых начальных значениях задачи являются замкнутыми кривыми вокруг положения равновесия. Одна из них и вычисляется в данной задаче (рис. 79). Меняя в некоторых пределах начальные данные, можно получать различные траектории из семейства этих траекторий.
Уменьшение числа хищников u(t) ведет к увеличению числа жертв v(t), что в свою очередь ведет к увеличению числа хищников (рис. 78)
идальнейшему периодическому чередованию численностей хищников
ижертв.
§10. Пример задачи с релаксационным колебанием
Пр и м е р. Используя блок решения с функцией Odesolve(), найти решение начальной задачи x¨ + x − k · (1 − x2) · x˙ = 0, x(0) = 1, x˙ (0) = 1 на отрезке [a, b]. Построить график интегральной кривой.
Поставленная для численного решения задача Коши для ДУ — задача Ван дер Поля с параметром k — имеет различные приложения (см. Дополнение I).
274 Доп. II. Приложения MATHCAD к задачам для обыкновенных ДУ
Рис. 81
Промежутки релаксации — это промежутки, где скорость почти равна нулю (от −2 до −1 и от 1 до 2 на рис. 82).
Рис. 82
§ 11. Численное моделирование задачи о тепловом взрыве
Математическая модель теплового взрыва, принадлежащая лауреату Нобелевской премии академику Н. Н. Семёнову, была рассмотрена в Дополнении I.
П р и м е р. Найти решение начальной задачи θ˙ = exp |
θ |
|
− |
θ |
, |
1 + βθ |
k |
θ(0) = 0 на отрезке [a, b], используя блок решения с функцией Odesolve(). Построить график интегральной кривой.
Р е ш е н и е. Частные случаи решения задачи, когда β = 1/8 при различных величинах k, выбор которых далее мотивирован поведением правой части дифференциального уравнения, являются типичными для
276 Доп. II. Приложения MATHCAD к задачам для обыкновенных ДУ
На рис. 84, а наблюдается низкотемпературный режим химической реакции при малых значениях параметра k. Когда параметр k переходит через критическое (бифуркационное) значение k*, температура скачком поднимается до очень больших значений (рис. 84, б). На рис. 84, в наблюдается явление теплового взрыва.
Рис. 84
З а м е ч а н и е. Значения θ ≈ 1,3729 и k ≈ 0,4253 получены в прикладной программе MATHCAD как решение системы уравнений
|
|
exp |
θ |
|
|
= |
θ |
|
|
|
|||||
f(θ) = y(θ), |
|
|
|
|
, |
|
|
|
|
||||||
т. е |
1 + βθ |
k |
= 1 . |
||||||||||||
f (θ) = y (θ), |
|
|
1 |
|
|
exp |
|
|
θ |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1 + βθ)2 |
|
|
1 + βθ |
|
k |
||||||||
Д о п о л н е н и е III
РЕШЕНИЕ ЗАДАЧ ДЛЯ ОБЫКНОВЕННЫХ ДУ С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ КОМПЬЮТЕРНОЙ АЛГЕБРЫ MATHEMATICA
Н. И. Земцова, В. А. Треногин
Система компьютерной алгебры Mathematica, разработанная американской компанией Wolfram Research Inc., является одним из универсальных программных средств, предназначенных в первую очередь для выполнения технических расчетов. В настоящее время время она с успехом используется не только в физике и математике, но и в таких областях, как кибернетика, биология, химия, экономика, финансовое и банковское дело, социология. Этому во многом способствовали не только исключительно мощные вычислительные возможности системы, но и простота и удобство работы с ней. Цель данной главы — познакомить читателя с применением системы символьных вычислений Mathematica для решения основных типов обыкновенных дифференциальных уравнений. Аналогичные задачи решаются в других современных компьютерных системах, таких, как Maple, MatLab, Maxima.
§ 1. Структура системы Mathematica
Система состоит из двух основных частей: вычислительное ядро (The Kernel) и оболочка (The Front End). Ядро представляет собой программное обеспечение, непосредственно выполняющее вычисления и работающее одинаково на всех типах компьютеров. Оболочка обеспечивает взаимодействие между ядром и пользователем. При этом вычислительное ядро и оболочка могут находиться как на одном, так и на разных компьютерах; в последнем случае связь между ними осуществляется по сети.
Наиболее общей и удобной для пользователей является оболочка, используемая при работе в операционной системе Windows. Она позволяет работать с ядром в интерактивном режиме, при котором команды, предназначенные для выполнения, и получаемые результаты изображаются на экране монитора.
278 Доп. III. Решение задач с использованием системы Mathematica
Окно системы Mathematica 5 при ее запуске показано на рис. 85.
Рис. 85
Окно редактирования, называемое блокнотом или ноутбуком, состоит, как видно из рисунка, из команд пользователя и результатов, выводимых системой. Вводимые команды пользователя и выводимые результаты объединены в так называемые ячейки, отмеченные в правой части главного окна редактирования характерными квадратными скобками. Особенностью документов, создаваемых в системе Mathematica, является возможность соединять в них различные элементы, такие, как текст, команды, выполняемые ядром, получаемые при этом результаты в виде чисел, выражений, таблиц, графиков, звуков, а также рисунки. В простейшем случае работа с системой напоминает работу с обычным калькулятором и представляет собой диалог, состоящий из пар:
In[n] := Команда, вводимая пользователем Out[n] = Результат, выводимый системой
При этом команда пользователя сводится либо к выражению, которое нужно вычислить, либо к применению какой-либо встроенной функции, число которых в системе Mathematica превышает тысячу. Для выполнения команды достаточно набрать необходимое математическое выражение и одновременно нажать клавиши Shift + Enter. Для набора
§ 2. Простейшие численные и символьные вычисления |
279 |
команд и редактирования введенной информации можно использовать весь спектр возможностей клавиатуры и мыши, включая копирование (Copy), вырезание (Cut), вставки (Paste), удаление (Delete) и т. п. Кроме того, можно использовать инструментальные панели с множеством пиктограмм ввода математических символов, что позволяет представлять формулы в виде, близком к традиционным математическим обозначениям. Например, следующие два выражения эквивалентны:
y Sum i^2 1 , i, 1, 10
10
y i2 1
i 1
§2. Простейшие численные и символьные вычисления
всистеме Mathematica
2.1. Численные расчеты
Mathematica выполняет все известные операции с числами, производя вычисления с максимально возможной точностью. Рассмотрим несколько примеров.
а) Арифметические вычисления:
2 + 3/4
N[2 + 3/4]
11
4
2.75
100!
933262154439441526816992388562667004907159682643816214
685929638952175999932299156089414639761565182862536979
20827223758251185210916864000000000000000000000000
2.187143 {157}
2.29465 × 1053
б) Решение алгебраического уравнения:
NSolve[x6 – 3x4 + 17x – 3 == 0, x]
x 2.18311 , x 0.643543 1.40029 , x 0.643543 1.40029 ,x 0.176641 , x 1.64678 0.750866 , x 1.64678 0.750866
в) Нахождение минимального значения функции в заданной области:
NMinimize[Cos[x y] + x, x2 + y2 < = 10, x, y]
{-3.99011, {x → -2.99809, y → 1.0057} }
280 Доп. III. Решение задач с использованием системы Mathematica
г) Численное интегрирование функции:
NIntegrate[Sin[x2] / x2, {x, 0, 1 }]
0.967577
2.2. Символьные вычисления
Mathematica позволяет обрабатывать выражения, содержащие переменные или символы.
а) Преобразование алгебраических выражений:
(a - 2b)5 // Expand
a5 - 10a4b + 40a3b2 - 80a2b3 + 80ab4 - 32b5
б) Разложение в ряд Тейлора:
Series[ Cos[x2+3x] , {x,0,5}] x2+1
1 - |
11x2 |
- 3x3+ |
67x4 |
- |
15x5 |
+ O[x]6 |
|
2 |
8 |
2 |
|||||
|
|
|
|
в) Вычисление неопределенного интеграла:
Integrate[ |
|
x |
|
,x] |
|
|
|
|
|
|
|
|
|
||
3 |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
x +1 |
√ |
|
|
|
|
|
|
|
|
|
|||
|
ArcTan[(- 1 + 2x)/ |
3 |
] |
- |
1 |
Log[1 - x]+ |
1 |
Log[1 - x - x |
2 |
] |
|||||
|
√ |
|
|
|
|
|
|
|
|||||||
|
|
3 |
6 |
|
|||||||||||
|
3 |
|
|
|
|
||||||||||
§ 3. Запись дифференциальных уравнений в системе Mathematica и их решение на примере простейших задач
Дифференциальное уравнение можно записать несколькими спосо-
бами. Суть от этого не меняется. Например y = |
y |
можно записать |
1 + ex |
||
следующими способами: |
|
|
y’[x] == y[x](1 + Exp[x]), |
|
|
или |
|
|
D[y[x], x] == y[x]/(1 + ex), |
|
|
или |
|
|
∂x y[x] == y[x](1 + ex) |
|
|
(символ ∂ можно ввести с палитры BasicInput).
Как видим, искомая функция y и ее производные записываются с аргументом, заключенным в квадратные скобки: y[x], y [x], . . ..
3.1. Решение дифференциальных уравнений в символьном виде
Для решения в символьном виде используются следующие функции:
