[[0, 0], [2, -1], [1, 1]]
Для определения констант для системы линейных уравнений или неравенств служит функция cterm(C):
> cterm([2*х+y<=6,7*y-z-3=4]);
[6, 7]
Функция define zero(C) возвращает ближайшее ненулевое значение, зависящее от установки переменной Digits:
> define_zero();
.1000000000 10 -7
> Digits:=40;
Digits := 40
> define_zero();
.1000000000000000000000000000000000000000 10 -37
> define_zero(1*10^(-10));
.1000000000000000000000000000000000000000 10 -9
Функция display(C) имеет еще и форму display(C,[x, у, z]). Она задает вывод линейных уравнений и неравенств в матричной форме:
> display({2*x+5*y-z<= 0, 2*w-4*y-z<=2});
Функция dual(f, С, у) имеет следующие параметры: f — линейное выражение, С — множество неравенств и у — имя. Эта функция возвращает сопряженное с f выражение:
> dual(х-y,{2*х+3*y<=5,3*х+6*y<=15}, z);
15z1+5z2, {1 ≤ 3z1+2z2, -1 ≤ 6z1+3z2}
Функция feasible может быть задана в трех формах:
feasible(С)
feasible(С,vartype)
feasible(С,vartype,'NewC','Transform')
Здесь параметр vartype может иметь значения NONNEGATIVE или UNRESTRICTED. Эта функция определяет систему как осуществимую или нет:
> feasible({2*х+3*y<=5, 3*х+6*y<=15), NONNEGATIVE);
true
> feasible({2*х+3*y<=5, 3*х+6*y<=-15}, NONNEGATIVE);
false
Если функция возвращает логическое значение true, то заданная система осуществима, а если false — неосуществима, то есть ни при каких значениях переменных не способна удовлетворить записанным неравенствам и равенствам.
Функция pivot(C, х, eqn) конструирует новую систему с заданным главным элементом:
> pivot({_SL1=5-4*x-3*y,_SL2=4-3*x-4*y),х,[_SL1=5-4*x-3*y]);
Функция pivoteqn(C, var) возвращает подсистему для заданного диагонального элемента С:
> pivoteqn((_SL1 = 5-3*х-2*y, _SL2 = 4-2*х-2*y}, х);
[_SL1 = 5 - 3х - 2y]
Функция pivotvar(f, List) или pivotvar(f) возвращает список переменных, имеющих положительные коэффициенты в выражении для целевой функции:
> pivotvar(x1-2*x2+3*x3-x4);
x1
> pivotvar(x1+2*х3-3*х4, [x4,x3,x1]);
x3
Функция ratio(C, х) возвращает список отношений, задающих наиболее жесткие ограничения:
> ratio([SL1=10-3*x-2*y, SL2=8-2*x-4*y], x);
Функция setup может иметь три формы:
setup(С)
setup(С, NONNEGATIVE)
setup(С, NONNEGATIVE, 't')
Она обеспечивает конструирование множества уравнений с переменными в левой части:
> setup({2*х+3*y<=5,3*х+5*y=15));
Последняя функция — standartize(C) — конвертирует список уравнений (неравенств) в неравенства типа «меньше или равно»:
> standardize({2*х+3*у<=5,3*х+5*у=15});
{2 х + 3 y ≤ 5, 3х + 5у ≤ 15, -3х -5y ≤ -15}
6.6. Новый пакет оптимизации Optimization в Maple 9.5
В систему Maple 9.5 был добавлен новый пакет оптимизации Optimization, основанный на новейших существенно улучшенных алгоритмах оптимизации. С его помощью можно решать не только задачи линейного, но и квадратичного и нелинейного программирований с повышенной степенью визуализации.
6.6.1. Доступ к пакету Optimization и его назначение
Пакет оптимизации Optimization вызывается как обычно:
> with(Optimization);
[ImportМPS, Interactive, LPSolve, LSSolve, Maximize, Minimize, NLPSolve, QPSolve]
Warning, the name changecoords has been redefined
Для получения справки по пакету надо исполнить команду:
> help(Optimization);
Пакет использует при вычислениях алгоритмы группы NAG, которые считаются наиболее эффективными при реализации численных методов вычислений, в частности реализующих алгоритмы оптимизации. Пакет вводит 8 функций. Две из них это переопределенные функции вычисления максимума Maximize и минимума Minimize. Кроме того, пакет имеет 4 решателя уравнений с заданными ограничениями, реализующих следующие методы:
Читать дальше
Конец ознакомительного отрывка
Купить книгу