Для этого достаточно активизировать кнопку Plot в окне рис. 6.11. Будет построен график в области оптимизации. Расширив область графика до значений x от 0 до 6 получим график, представленный на рис. 6.12. Нетрудно заметить, что найден глобальный максимум в точке, отмеченной кружком.
Рис. 6.12. График функции с помеченной точкой глобального максимума
Глава 7
Решение дифференциальных уравнений
Дифференциальные уравнения лежат в основе математического моделирования различных, в том числе физических, систем и устройств [1, 38, 46]. Решению таких уравнений посвящена эта глава. В ней рассмотрено как аналитическое, так и численное решение дифференциальных уравнений различного вида — линейных и нелинейных, классических и специальных, например, в частных производных и с учетом двухсторонних граничных условий. Описание сопровождается множеством наглядных примеров, реализованных в СКМ Maple 9.5/10.
7.1. Введение в решение дифференциальных уравнений
7.1.1. Дифференциальные уравнения первого порядка
Простейшее дифференциальное уравнение первого порядка
(7.1)
в общем случае имеет множество решений в виде зависимостей y(х). Однако можно получить единственное решение, если задать начальные условия в виде начальных значений х0 и у0= у(х0). Это решение может быть аналитическим, конечно-разностным или численным.
7.1.2. Решение дифференциального уравнения радиоактивного распада
В качестве примера аналитического решения дифференциального уравнения первого порядка (файл der) запишем дифференциальное уравнение радиоактивного распада атомов (
> restart: deq:=diff(N(t),t)=-g*N(t);
Используя функцию dsolve, которая более подробно будет описана чуть позже, получим его общее аналитическое решение:
> dsolve(deq, N(t));
В решении присутствует произвольная постоянная _С1. Но ее можно заметить на постоянную N(0) =N0, означающую начальное число атомов в момент t=0:
> dsolve({deq,N(0)=No},N(t));
Если конкретно
> No := 100; g:=3;
Хотя dsolve выдает решение N(t) в символьном виде, оно пока недоступно для построения графика этого решения или просто вычисления в любой точке. Однако, используя функции assign или subs можно сделать это решение доступным. Например, используем такую конструкцию:
> s: =dsolve({ deq, N(0) =-No}, N (t)); assign(s);
Теперь мы можем воспользоваться полученной зависимостью N(t) и построить граф
> plot(N(t),t=0..3,color=black);
Этот график, который читатель может просмотреть сам, описывает хорошо известным апериодическим экспоненциальный закон уменьшения числа атомов вещества в ходе его радиоактивного распада. Подобные зависимости, кстати, характерны для напряжения на конденсаторе
7.1.3. Модели популяций Мальтуса и Ферхюльса-Пирла
Еще одним классическим примером применения дифференциального уравнения первого порядка является давно известная и довольно грубая модель популяции Мальтуса. Не вдаваясь в хорошо известное описание этой модели, отметим, что она описывает численность особей или их биомассу
Представим задание дифференциального уравнения динамики популяций по модели Мальтуса и его решение в аналитическом виде:
> restart:deq := diff(х(t),t) - k*x(t)=0;
> dsol1 := dsolve({deq,x(0)=N});
Нетрудно заметить, что решение этого уравнения аналогично решению дифференциального уравнения радиоактивного распада и описывается также экспоненциальной функций. Однако, в зависимости от того, какой фактор (рождаемость или смертность) преобладает наблюдается либо экспоненциальный рост, либо экспоненциальный спад биомассы популяций.