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

на главную - закладки

Жанры

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

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

Шрифт:

> Minimize(sin(х)/х, initialpoint={x=5});

[-0.217233628211221636 , [х=4.49340945792364720 ]]

> Maximize(sin(x*y*z));

[1., [x=1.16244735150962364, z=1.16244735150962364, y=1.16244735150962364]]

> Minimize(2*х+3*y, {3*х-y<=9, х+y>=2}, assume=nonnegative);

[4., [х=2., y=0.]]

Из этих примеров видно, что результаты вычислений представляются в виде чисел с плавающей точкой

с так называемой двойной точностью (правильнее было бы сказать с двойной длиной или разрядностью). При вычислениях используются алгоритмы группы NAG и решатели, описанные ниже.

6.6.3. Линейное программирование — LPSolve

Для решения задач линейного программирования в пакете Optimization введена функция:

LPSolve(obj [, constr, bd, opts])

Она имеет следующие параметры:

• obj — алгебраическое выражений, целевая функция;

• constr — множество или список линейных ограничений;

• bd — последовательность вида name=range, задающая границы одной или многих переменных;

• opts — равенство или равенства в форме option=value, где option одна из опций assume, feasibilitytolerance, infinitebound, initialpoint, iterationlimit или maximize, специализированных для команды LPSolve.

Пример на решение задачи линейного программирования дан на рис. 6.4. Здесь оптимизируется целевая функция -3x-2у, которая линейно зависит от переменных х и у. В этом примере интересна техника графической визуализации решения.

Рис. 6.4. Пример решения задачи линейного программирования

Эта функция может задаваться также в матричной форме:

LPSolve(c [, lc, bd, opts])

Здесь с вектор, задающий целевую функция, остальные параметры были определены выше. Пример применения функции LPSolve в матричном виде представлен ниже:

> с := Vector([-1,4,-2], datatype=float):

bl := Vector([2,3,1], datatype=float):

bu := Vector([5,8,2.5], datatype=float):

LPSolve(с, [], [bl, bu]);

┌ ┌ ┐┐

│ │ 5. ││

│ │ ││

│2.,│ 3. ││

│ │ ││

│ │ ││

└ └2.50000000000000000┘┘

Ряд других подобных примеров применения функции LPSolve можно найти в справке по этой функции.

6.6.4. Квадратичное программирование — QPSolve

Для реализации квадратичного программирования служит функция

QPSolve(obj, constr, bd, opts)

С

параметрами, описанными выше для функции LPSolve. Пример реализации квадратичного программирования представлен на рис. 6.5. Здесь оптимизируется выражение -3х²-2y², которое квадратично зависит от переменных x и у. Здесь также интересна техника визуализации квадратичного программирования.

Рис. 6.5. Пример квадратичного программирования

Эта функция также может быть записана в матричной форме:

QPSolve(obj, lc, bd, opts)

Пример применения этой функции дан ниже:

> с := Vector([2, 5.1 , datatype=float):

H := Matrix([[6, 3], [3, 4]], datatype=float):

A := Matrix([[-1,1]], datatype=float):

b := Vector([-2], datatype=float): QPSolve([с, H], [A, b]);

┌ ┌0.46666666666666564┐┐

│-3.5333333333333,│ ││

│ │-1.6000000000000030││

└ └ ┘┘

Ряд подобных примеров можно найти в справке по данной функции.

6.6.5. Нелинейное программирование — NLPSolve

Нелинейное программирование позволяет решать задачи оптимизации при нелинейных зависимостях целевой функции от ее аргументов. Для этого в пакете Optimization имеется функция:

NLPSolve(obj, constr, bd, opts)

NLPSolve(opfobj, ineqcon, eqcon, opfbd, opts)

Ее параметры те же, что и у ранее описанных функций. В связи с этим ограничимся парой примеров ее применения при целевых функциях одной и двух переменных:

> NLESolve(х*ехр(-х), х=0..6, maximize);

[0.367879441171442278, [х=0.99999998943752966]]

> NLPSolve(х*y*ехр(-х)*ехр(-y), х=0..6, y=0..6,maximize);

[0.135335283236612674, [х=0.99999999994630706, y=1.00000000003513966]]

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

Возможна и матричная форма функции:

NLPSolve(n, р, nc, nlc, lc, bd, opts)

NLPSolve(n, р, lc, bd, opts)

Примеры на ее применение можно найти в справке по функции NLPSolve.

Поделиться:
Популярные книги

Измена. Тайный наследник

Лаврова Алиса
1. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник

Невеста вне отбора

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
7.33
рейтинг книги
Невеста вне отбора

Сердце для стража

Каменистый Артем
5. Девятый
Фантастика:
фэнтези
боевая фантастика
9.20
рейтинг книги
Сердце для стража

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Зеркало силы

Кас Маркус
3. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Зеркало силы

Темный Лекарь 2

Токсик Саша
2. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 2

Старая дева

Брэйн Даниэль
2. Ваш выход, маэстро!
Фантастика:
фэнтези
5.00
рейтинг книги
Старая дева

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Ты не мой BOY

Рам Янка
5. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты не мой BOY

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Попаданка в семье драконов

Свадьбина Любовь
Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.37
рейтинг книги
Попаданка в семье драконов

Проданная Истинная. Месть по-драконьи

Белова Екатерина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Проданная Истинная. Месть по-драконьи