Чисельне рішення оптимізаційних задач
Чисельне рішення оптимізаційних задач
та
Пакет оптимізації Optimization Toolbox
2. Пакет оптимізації Optimization Toolbox
2.2. Функція linprog
Функція linprog забезпечує рішення задачі лінійного програмування.
Функція записується у виді:
х = linprog(f,A,b,Aeq,beq),
х = linprog(f,A,b,Aeq,beq,lb,ub),
х = linprog(f,A,b,Aeq,beq,lb,ub,x0),
х = linprog(f,A,b,Aeq,beq,lb,ub,x0,options),
[x,fval] = linprog(...),
[x,fval,exitflag] = linprog(...),
[x,fval,exitflag,output] = linprog(...),
[x,fval,exitflag,output,lambda] = linprog(...).
Приклад.
Цех малого підприємства повинен виготовити 100 виробів трьох типів. Кожного виробу потрібно зробити не менш 20 штук. На вироби іде відповідно 4, 3,4 і
Скільки виробів кожного типу х1 , х2 і х3 треба випустити для одержання максимального випуску в грошовому вираженні, якщо ціна виробу складає по калькуляції 40, 30 і 20 грн?
Задача зводиться до обчислення максимуму функції
f(x1,x2,x3) = 40 x1 + 30 x2 + 20 x3
при наявності обмежень
x1 ≥ 20, x2 ≥ 20, x3 ≥ 20
4 x1 + 3,4 x2 + 2 x3 ≤ 340
4,75 x1 + 11 x2 + 2 x3 ≤ 700
x1 + x2 + x3 = 100
Маємо задачу лінійного програмування.
f=[40;30;20];% вектор коефіцієнтів лінійної цільової функції
% Матриця коефіцієнтів обмежень – нерівностей
A=[4 3.4 2; 4.75 11 2];
b=[340;700]; % вектор обмежень – нерівностей
Aeq=[1 1 1]; % матриця коефіцієнтів обмежень – рівностей
beq=[100]; % вектор обмежень – рівностей
% Задання нижніх границь змінних (нулів)
lb=[20;20;20];
% Пошук рішень, визначення максимум цільової функції
[x, fval, exitflag, output]=linprog(-f, A, b, Aeq, beq, lb)
Optimization terminated successfully
x =
56.0000
20.0000
24.0000
fval =
-3.3200e+003
exitflag =
1
output =
iterations: 5
cgiterations: 0
algorithm: 'lipsol'
Шрифти
Розмір шрифта
Колір тексту
Колір тла