Фирма производит три вида продукции (A, B, C), для выпуска каждого требуется определенное время обработки на всех четырех устройствах.
Библиотека Optimization
Команда linsolve.
Правило Крамера
Команда solve
Линейные уравнения
Систему линейных уравнений
в Maple можно решить тремя способами:
· командой solve
· по правилу Крамера
· командой linsolve
>eq1:=x+y+z=1;

>eq2:=3*x+y=3;

>eq3:=x-2*y-z=0;

>s:=solve({eq1,eq2,eq3},{x,y,z});

Система уравнений
>eq1:=x+y+z=1:
>eq2:=3*x+y=3:
>eq3:=x-2*y-z=0:
Основной определитель
>Delta:=det(matrix([[1,1,1],[3,1,0],[1,-2,-1]]));
Δ:=5
Дополнительные определители
>DeltaX:=det(matrix([[1,1,1],[3,1,0],[0,-2,-1]]));
DeltaX:=-4
>DeltaY:=det(matrix([[1,1,1],[3,3,0],[1,0,-1]]));
DeltaY:=-3
>DeltaZ:=det(matrix([[1,1,1],[3,1,0],[1,-2,-0]]));
DeltaZ:=2
Вычисление неизвестных
>X:=DelyaX/Delta;

>Y:=DelyaY/Delta;

>Z:=DelyaZ/Delta;

Система уравнений
>eq1:=x+y+z=1:
>eq2:=3*x+y=3:
>eq3:=x-2*y-z=0:
Создадим матрицу коэффициентов при неизвестных
>A:=matrix([[1,1,1],[3,1,0],[1,-2,-1]]);

Создадим матрицу свободных членов
>B:=matrix(3,1,[1,3,0]);

Решим уравнение относительно массива X
>X:=linsolve(A,B);

Рассмотрим использование стандартной библиотеки Optimization, которая позволяет отыскивать оптимальные решения для задач следующего вида:
· линейного программирования LPSolve
· квадратического программирования QPSolve
· нелинейного программирования NLPSolve
· среднеквадратического отклонения LSSolve
Решим задачу линейного программирования, сформулированную нами для разбора примера отыскания оптимального решения в электронных таблицах Excel.
Вид продукции
| Время обработки, ч.
| Прибыль, у.е.
|
I
| II
| III
| IV
|
A
|
|
|
|
|
|
B
|
|
|
|
|
|
C
|
|
|
|
|
|
Целевая функция: 
Ограничения:




A, B, C – неотрицательные (> =0)
A, B, C – целочисленные.
Приведем решение в системе Maple:
>restart;
>with(Optimization);
[ImportMPS, Interactive, LPSolve, LSSolve, Maximize, Minimize, NLPSolve, QPSolve]
>func:=3*A+6*B+4*C;
3A+6B+4C
>organ:={1*A+6*B+3*C<=84, 3*A+1*B+3*C<=42, 1*A+3*B+2*C<=21,
2*A+3*B+4*C<=42};
{1A+6B+3C<=84, 3A+1B+3C<=42, 1A+3B+2C<=21, 2A+3B+4C<=42};
>LPSolve(func, organ, assume={nonnegative, integer}, maximize);
[54., [A=12, B=3, C=0]]
Результаты полностью совпадают с результатами, полученными в Excel.