Maple 9.5/10 в математике, физике и образовании
Шрифт:
Функция feasible может быть задана в трех формах:
Здесь параметр vartype может иметь значения NONNEGATIVE или UNRESTRICTED. Эта функция определяет систему как осуществимую или нет:
Если
Функция pivot(C, х, eqn) конструирует новую систему с заданным главным элементом:
Функция pivoteqn(C, var) возвращает подсистему для заданного диагонального элемента С:
Функция pivotvar(f, List) или pivotvar(f) возвращает список переменных, имеющих положительные коэффициенты в выражении для целевой функции:
Функция ratio(C, х) возвращает список отношений, задающих наиболее жесткие ограничения:
Функция setup может иметь три формы:
Она обеспечивает конструирование множества уравнений с переменными в левой части:
Последняя функция — standartize(C) — конвертирует список уравнений (неравенств) в неравенства типа «меньше или равно»:
6.6. Новый пакет оптимизации Optimization в Maple 9.5
В систему Maple 9.5 был добавлен новый пакет оптимизации Optimization, основанный на новейших существенно улучшенных алгоритмах оптимизации. С его помощью можно решать не только задачи линейного, но и квадратичного и нелинейного программирований с повышенной степенью визуализации.
6.6.1. Доступ к пакету Optimization и его назначение
Пакет оптимизации Optimization вызывается как обычно:
Для получения справки по пакету надо исполнить команду:
Пакет использует при вычислениях алгоритмы группы NAG, которые считаются наиболее эффективными при реализации численных методов вычислений, в частности реализующих алгоритмы оптимизации. Пакет вводит 8 функций. Две из них это переопределенные функции вычисления максимума Maximize и минимума Minimize. Кроме того, пакет имеет 4 решателя уравнений с заданными ограничениями, реализующих следующие методы:
• LPSolve — линейное программирование;
• LSSolve — улучшенная реализация метода наименьших квадратов;
• QPSolve — квадратичное программирование;
• NLPSolve — нелинейное программирование.
Функция ImportMPC обеспечивает ввод данных для оптимизации из файла, а функций Interactive позволяет работать с интерактивным Maplet-окном для оптимизации.
С пакетом Optimization можно познакомиться по его справке. В ее разделе Examples есть довольно обширный документ с примерами применения пакета — дополнительными к тем, которые даются к функциям пакета в справке. Начало этого документа представлено на рис. 6.3. В нем представлены основные задачи, решаемые пакетом Optimization — линейное, квадратичное и нелинейное программирование, а также приближение данных и функциональных зависимостей методом наименьших квадратов (нелинейная регрессия).
Рис. 6.3. Начало документа с примерами применения пакета Optimization
6.6.2. Работа с функциями Minimize и Maximize
Функции Minimize и Maximize служат для поиска минимумов и максимумов математических выражений с учетом ограничений самыми современными численными методами. Функции записываются в виде:
Параметры функций следующие:
• obj — алгебраический объект, целевая функция;
• constr — список с ограничивающими условиями;
• bd — последовательность вида name=range, задающая границы для одной или более переменных;
• opts — равенство или равенства вида option=value, где option одна из опции feasibilitytolerance, infinitebound, initialpoint, iterationlimit или optimalitytolerance, специфицированных в команде Minimize или Maximize.
• opfobj — процедура, целевая функция;
• ineqcon — множество или список процедур с ограничениями типа неравенств;
• eqcon — множество или список процедур с ограничениями типа равенств;
• opfbd — последовательность пределов; границы для всех переменных; Примеры применения этих функций представлены ниже: