Сделай Сам Свою Работу на 5

Порядок аппроксимирующей функции

2-я цифра варианта 0, 5 1, 6 2, 7 3, 8 4, 9 a, f b, e c, d
Значения m 1, 3, 5 2, 4, 5 1, 2, 4 3, 4, 5 2, 4, 5 1, 3, 4 2, 3, 5 1, 3, 4

 

Таблица 2.1.3

Таблица «невязок»

m      
     

Решение задачи линейного программирования средствами MatLab

Задача поиска условного экстремума функции многих переменных часто встречаются в экономических расчётах для минимизации затрат, максимализации прибыли и т. п. При этом экономическая задача описывается системами линейных уравнений и неравенств и относится к задачам линейного программирования. Типичным примером является так называемая задача производственного планирования, которая решает проблему оптимального выпуска товаров, дающего максимально возможный доход.

Пример. Рассмотрим производство столов и стульев. Сведения о затратах ресурсов на единицу продукции, их наличии и о доходе от производимой продукции отражены в таблице 2.2.1.

 

Таблица 2.2.1.

Затраты ресурсов

Наименование ресурса Продукция Ограничения по ресурсу
Стул Стол
Древесина (кг/шт.)
Кожа (м2/шт.) 0.5
Клей (г/шт.)
Трудозатраты (чел. час/шт.)
Доход (руб./шт.)  

 

Доход (обозначим его символом ), очевидно, равен , где и − искомые (вместе с ) значения количества стульев и столов соответственно. Математическая модель сформулированной задачи состоит в поиске максимума функции при наличии следующих ограничений:

,

,

,

,

.

Для решения задач линейного программирования в MatLab используется функция linprog, которая ищет минимум для целевой функции при наличии ограничений

,

,

.

Простейшие две формы обращения к ней состоят в следующем:

x = linprog(f,A,b),

x = linprog(f,A,b,Aeq,beq,lb,ub),

[x,fv] = linprog(f,A,b,Aeq,beq,lb,ub),

где

fвектор коэффициентов целевой функции − для нашего примера f=[10; 20];

Aматрица коэффициентов системы линейных неравенств A*x b для нашего примера A=[5 25;0.5 0;100 250;10 10];

bвектор свободных членов системы линейных неравенств A*x bдля нашего примера b=[500; 15; 7500; 400];



Aeqматрица коэффициентов системы линейных равенств Aeq*x=beq для нашего примера её нет (ставят пару пустых прямоугольных скобок []);

beqвектор свободных членов системы линейных равенств A*x=bдля нашего примера её нет (ставят пару пустых прямоугольных скобок []);

lb и ubвектора той же размерности, что и вектор xограничения на координаты lb x ubдля нашего примера lb=[0; 0], а вместо ub ставят пару пустых скобок [];

xискомый вектор оптимальных значений параметров;

fv значение целевой функции при оптимальном векторе параметров.

Командное окно для решения нашей задачи имеет вид

>> f=[10; 20];

>> A=[5 25;0.5 0;100 250;10 10];

>> b=[500; 15; 7500; 400];

>> lb=[0; 0];

>> [x,fv]=linprog(-f,A,b,[],[],lb)

Optimization terminated.

x =

25.0000

15.0000

fv =

-550.0000

>>

Так как функция linprog находит минимум, а нам необходимо найти максимум, то перед символом f в вызове функции поставлен знак минус.

Таким образом, оптимальнее всего изготовить 25 стульев и 15 столов, при этом доход составит 550 руб.

Задание.В соответствии с заданным вариантом (см. таблицу 2.2.2) найти оптимальное решение задачи производственного планирования.

 

Таблица 2.2.2

Варианты заданий



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.