Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Описание пакета Optimization






Пакет Optimization, входящий в состав Maple, предназначен для решения оптимизационных задач. Он загружается в память с помощью команды

[> with(Optimization);

Как видно, в состав этого пакета входят 8 процедур и функций. Описание наиболее важных из них приведено в табл. 4.1.

Таблица 4.1.

Название процедуры, функции Назначение процедуры, функции
Interactive Решение оптимизационной задачи с выводом процесса решения в интерактивном виде
LPSolve Решение задачи линейного программирования. Процедура равносильна решению задачи с использованием пакета simplex(см. §5)
Maximize Процедура вычисления максимума целевой функции
Minimize Процедура вычисления минимума целевой функции
NLPSolve Решение задачи нелинейного программирования
QPSolve Решение задачи квадратичного программирования

Пусть даны целевая функция переменной ( – управляющие переменные, ) и система из ограничений, выраженных неравенствами (равенствами)

(4.1)

Ниже приведены варианты использования процедуры Maximize при решении различных оптимизационных задач:

[> Maximize(object_function);

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

[> Maximize(object_function, { constr});

процедура нахождения наибольшего значения целевой функции при выполнении системы ограничений {constr} (решается задача на условный экстремум: , , );

[> Maximize(object_function, { constr}, assume=nonnegative);

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

Здесь object_function – целевая функция , {constr} – список ограничений вида (4.1), параметр assume=nonnegative означает, что задача решается в области неотрицательных значений управляющих переменных.

Процедура NLPSolve во многих случаях описывается одним из следующих способов:

[> NLPSolve(object_function, initialpoint={x[1]=a1, x[2]=a2,

…, x[n]=an}, maximize );

решается задача нелинейного программирования на максимум целевой функции (безусловный максимум): , ;

[> NLPSolve(object_function, initialpoint={x[1]=a1, x[2]=a2,

…, x[n]=an}, maximize, assume=nonnegative);

решается задача нелинейного программирования на максимум целевой функции (безусловный максимум): , ;

[> NLPSolve(object_function, {constr}, initialpoint={x[1]=a1,

x[2]=a2, …, x[n]=an}, maximize );

решается задача нелинейного программирования на максимум целевой функции (условный максимум): , , ;

[> NLPSolve(object_function, {constr}, initialpoint={x[1]=a1,

x[2]=a2, …, x[n]=an}, maximize, assume=nonnegative);

решается задача нелинейного программирования на максимум целевой функции (условный максимум): , , .

Здесь обязательный параметр

initialpoint={x[1]=a1, x[2]=a2, …, x[n]=an}

означает точку начального приближения , где заданные числа.

Пример 4.1. Исследовать на безусловный экстремум функцию

.

Решение. Данная функция подробно исследована в примере 2.3. Приведем текст рабочего листа с применением пакета Optimization.

[> restart; with(Optimization); Digits: =6: [> object_function: =2*x[1]^2-4*x[1]*x[2]+2*x[2]^2-x[1]^4-x[2]^4; [> Maximize(object_function, {x[1]> =-3, x[1]< =3, x[2]> =-3, x[2]< =3}); [> NLPSolve(object_function, initialpoint={x[1]=-1, x[2]=1}, maximize); [> NLPSolve(object_function[1], initialpoint={x[1]=1, x[2]=-1}, maximize);

Пример 4.2. Найти точку условного экстремума функции

,

где переменные удовлетворяют уравнениям связи

Решение. Данная задача была решена в примере 2.4. Приведем текст рабочего листа с применением пакета Optimization.

[> restart; with(Optimization): [> object_function: =x[1]*x[2]*x[3]; constr: ={x[1]+x[2]+x[3]-4=0, x[1]*x[2]+x[1]*x[3]+x[2]*x[3]-5=0}; [> NLPSolve(object_function, constr, initialpoint={x[1]=1, x[2]=2, x[3]=3}, maximize); [> NLPSolve(object_function, constr, initialpoint={x[1]=4, x[2]=6, x[3]=1}, maximize); [> NLPSolve(object_function, constr, initialpoint={x[1]=2, x[2]=2, x[3]=1}, maximize);

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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал