1.3.Рішення задачі лінійного програмування
Задачу лінійного програмування можна вирішити за допомогою функції linprog. Знаходити екстремальне рішення доцільно в такому порядку.
Ввести умови завдання лінійного програмування.
У файл програми ввести вектор-стовпець коефіцієнтів цільової функції, матрицю умов, вектор-стовпець ресурсів, вектор-стовпець обмежень.
Задати параметри рішення задачі лінійного програмування:
використання середньомасштабного алгоритму;
виведення діагностичної інформації.
Значення решти параметрів – за умовчанням. Параметри оптимізації задають командою optimset, варіанти використання цієї команди див. help optimset.
Вирішити задачу лінійного програмування за допомогою функції linprog.
Можливий варіант програми:
clear, clc
f = % вектор-стовпець коефіцієнтів цільової функції
A = % матриця умов
b = % вектор-стовпець ресурсів
lb = zeros( ); % вектор-стовпець обмежень
options = optimset(..);
[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb,[],[],options);
fprintf(...)
Використовуйте функцію fprintf для виведення формату значень x і fval.
Запишіть діагностичну інформацію і значення полів структури output.
Побудувати графік області допустимих рішень.
Графіком області допустимих рішень задачі лінійного програмування є замкнутий випуклий багатокутник. Для його побудови потрібно знайти координати точок вершин багатокутника вирішенням систем відповідних пар лінійних рівнянь-обмежень. Систему зручно записати в матричному вигляді
,
де C – матриця коефіцієнтів (розмірності 2х2) при векторі x; d – вектор правих частин системи, розмірності 2х1.
Тоді для її вирішення можна використовувати такий код:
C = [. .;. .]; % матриця коефіцієнтів
d = [.; .]; % вектор правих частин системи
ха = C\d; % вирішення рівняння, вектор
Для побудови області допустимих значень можна використовувати функцію fill. Варіант програми для побудови замкнутої області по координатах вершин точок трикутника ABC має вигляд
X = [ха(1), xb(1), xc(1)];
Y = [ха(2), xb(2), xc(2)];
fill(X,Y,'y'), grid on
axis( )
Команда axis дозволяє встановити зручний діапазон по осях графіка.
Позначити на графіці області допустимих рішень точку отриманого рішення.
Для цього можна використовувати функцію plot і команду hold on
Зробити висновки за завданням.
- 1.Порядок виконання роботи
- 1.1.Визначення екстремумів функцій однієї змінної
- 1.2.Визначення екстремумів функцій декілька змінних
- 1.3.Рішення задачі лінійного програмування
- 2.Вказівки по оформленню роботи
- До записки пояснення повинні бути прикладені файли програми matlab на електронном носієві ксерокопії роботи до захисту не допускаються Література