Maple 9.5/10 в математике, физике и образовании
Шрифт:
Из этих примеров видно, что результаты вычислений представляются в виде чисел с плавающей точкой
6.6.3. Линейное программирование — LPSolve
Для решения задач линейного программирования в пакете Optimization введена функция:
Она имеет следующие параметры:
• obj — алгебраическое выражений, целевая функция;
• constr — множество или список линейных ограничений;
• bd — последовательность вида name=range, задающая границы одной или многих переменных;
• opts — равенство или равенства в форме option=value, где option одна из опций assume, feasibilitytolerance, infinitebound, initialpoint, iterationlimit или maximize, специализированных для команды LPSolve.
Пример на решение задачи линейного программирования дан на рис. 6.4. Здесь оптимизируется целевая функция -3x-2у, которая линейно зависит от переменных х и у. В этом примере интересна техника графической визуализации решения.
Рис. 6.4. Пример решения задачи линейного программирования
Эта функция может задаваться также в матричной форме:
Здесь с вектор, задающий целевую функция, остальные параметры были определены выше. Пример применения функции LPSolve в матричном виде представлен ниже:
Ряд других подобных примеров применения функции LPSolve можно найти в справке по этой функции.
6.6.4. Квадратичное программирование — QPSolve
Для реализации квадратичного программирования служит функция
С
Рис. 6.5. Пример квадратичного программирования
Эта функция также может быть записана в матричной форме:
Пример применения этой функции дан ниже:
Ряд подобных примеров можно найти в справке по данной функции.
6.6.5. Нелинейное программирование — NLPSolve
Нелинейное программирование позволяет решать задачи оптимизации при нелинейных зависимостях целевой функции от ее аргументов. Для этого в пакете Optimization имеется функция:
Ее параметры те же, что и у ранее описанных функций. В связи с этим ограничимся парой примеров ее применения при целевых функциях одной и двух переменных:
В оптимизируемых функциях этих примеров присутствует экспоненциальная зависимость, что и указывает на решение задачи нелинейного программирования. Однако следует отметить, что ограничения должны быть линейными — в противном случае возвращается сообщение об ошибке с указанием на необходимость обеспечения линейности ограничивающих условий.
Возможна и матричная форма функции:
Примеры на ее применение можно найти в справке по функции NLPSolve.