logo
КР_ОПТ_с12

1.3.Рішення задачі лінійного програмування

Задачу лінійного програмування можна вирішити за допомогою функції linprog. Знаходити екстремальне рішення доцільно в такому порядку.

  1. Ввести умови завдання лінійного програмування.

У файл програми ввести вектор-стовпець коефіцієнтів цільової функції, матрицю умов, вектор-стовпець ресурсів, вектор-стовпець обмежень.

  1. Задати параметри рішення задачі лінійного програмування:

Значення решти параметрів – за умовчанням. Параметри оптимізації задають командою optimset, варіанти використання цієї команди див. help optimset.

  1. Вирішити задачу лінійного програмування за допомогою функції 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.

  1. Побудувати графік області допустимих рішень.

Графіком області допустимих рішень задачі лінійного програмування є замкнутий випуклий багатокутник. Для його побудови потрібно знайти координати точок вершин багатокутника вирішенням систем відповідних пар лінійних рівнянь-обмежень. Систему зручно записати в матричному вигляді

,

де 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 дозволяє встановити зручний діапазон по осях графіка.

  1. Позначити на графіці області допустимих рішень точку отриманого рішення.

Для цього можна використовувати функцію plot і команду hold on

  1. Зробити висновки за завданням.