Чтение онлайн

ЖАНРЫ

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

6.7.2. Нелинейный метод наименьших квадратов в Maple 10

Большим подспорьем в решении задач нелинейной регрессии стала реализация в Maple 9.5/10 нелинейного метода наименьших квадратов. Для Maple 9.5 эта реализация уже была описана. Рис. 6.9 иллюстрирует применение функции LSSolve для выполнения нелинейной регрессии общего вида. Этот пример также взят из самоучителя по Maple 10.

Рис. 6.9 Пример нелинейной регрессии в Maple

Данные data

представляют собой ординаты зависимости y(i), где i задается целыми числами, начиная от 1 и до значения, равного числу чисел в векторе данных. Исходная функция задана переменной model. Возвращается значение погрешности и вычисленные параметры регрессионной зависимости. Расчет хорошо иллюстрируется графиком этой зависимости и исходными точками.

6.7.3. Глобальная оптимизация и пакет Global Optimization Toolbox

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

Но в Maple 10 есть возможность поиска глобального экстремума с помощью новой функции Global Solve пакета глобальной оптимизации, который можно найти в Интернете на сайте разработчика Maple 10. Пример этого для многоэкстремальной функции двух переменных представлен на рис. 6.10.

Рис. 6.10. Пример глобальной оптимизации многоэкстремальной функции двух переменных

Подлежащая глобальной оптимизации функция представлена значением переменной obj. Ее многоэкстремальный характер обусловлен синусоидальными компонентами. Ограничения заданы переменной constraints.

6.7.4. Применение ассистента оптимизации Maple 10

Для наглядного решения задач оптимизации можно применить маплет-ассистент оптимизации системы Maple 10. Ограничимся примером оптимизации многоэкстремальной функции одной переменной без ограничений — рис. 6.11. Такой вид окно имеет после ввода оптимизируемой функции с помощью кнопки Edit в области Objective Function. Выбор метода и прочие установки осуществлены по умолчанию (за исключением задания поиска максимума опцией Maximize).

Рис. 6.11. Окно ассистента оптимизации с заданной функцией

Чтобы проверить, что же нашел ассистент оптимизации, желательно построить график функции. Для этого достаточно активизировать кнопку 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) запишем дифференциальное уравнение радиоактивного распада атомов (N — число атомов в момент времени t, g=1/c):

> restart: deq:=diff(N(t),t)=-g*N(t);

Используя функцию dsolve, которая более подробно будет описана чуть позже, получим его общее аналитическое решение:

> dsolve(deq, N(t));

N(t)=_C1e(-gtf)

В решении присутствует произвольная постоянная _С1. Но ее можно заметить на постоянную N(0)=N0, означающую начальное число атомов в момент t=0:

> dsolve({deq,N(0)=No},N(t));

N(t)=Noe(-gt)

Если конкретно N0=100 и g=4, то получим:

> No := 100; g:=3;

Nо:=100
g:=3

Хотя dsolve выдает решение N(t) в символьном виде, оно пока недоступно для построения графика этого решения или просто вычисления в любой точке. Однако, используя функции assign или subs можно сделать это решение доступным. Например, используем такую конструкцию:

> s: =dsolve({ deq, N(0) =-No}, N (t)); assign(s);

s: = N(t) = 100 e(-3t)

Теперь мы можем воспользоваться полученной зависимостью N(t) и построить график ее:

Поделиться с друзьями: