Page 18 - 6416
P. 18
*
Функція linprog повертає оптимальні значення змінних x , j 1,n та значення
j
*
R x
цільової функції .
Початкову задачу лінійного програмування подамо у формі (6.1) – (6.5). Спочатку всі
відношення типу «не менше» замінимо на «не більше». Отже, розв’язується така задача:
min : R x x 3x ,
1
2
x 6x 50 ,
1 2
2x x 23,
1 2
4x x 16,
1 2
x 6x 21,
1 2
0
x , x ,
1 2
яка тотожна початковій задачі. Тепер будемо мати
x
1
min : R 1 3x ,
x 2
1 6 50
2 1 23
x
,
1
4 1 x 2 16
1 6 21
x 0
1
.
0
x 2
1 6 50
1 2 1 23 0
Таким чином, f , A , b , lb .
0
3
4 1 16
1 6 21
Оскільки задача не вміщує обмежень типу рівностей, тому Aeq і beq . Змінні
x і x не обмежені зверху. Тому ub .
1 2
Після зроблених викладок, можемо написати програму розв’язуванні задачі
%=========================================
%Лінійне програмування
%=========================================
%Вхід
%f-вектор коефіцієнтів цільової
%функції при змінних xj
%А-матриця коефіцієнтів при
%змінних xj у лівих частинах
%обмежень-нерівностей
%b-вектор, компоненти якого
%праві частини обмежень-нерівностей
%Вихід
%x-вектор оптимальних змінних xj
%fval-оптимальне значення цільової функції
%-----------------------------------------
f=[1;3];
A=[1 6;2 1;-4 -1;1 -6];
b=[50;23;-16;-21];
lb=zeros(2,1);
[x,fval]=linprog(f,A,b,[],[],lb,[]);
15