КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Опишите процесс решения задач линейного программирования с использованием программного обеспечения MATLAB
В состав MATLAB входит Optimization Toolbox, предназначенный для решения линейных и нелинейных оптимизационных задач. Задача линейного программирования состоит в нахождении вектора x, который минимизирует целевую линейную функцию fTx при условии AX≤B ; X≥0, где с=(с1, c2,…,cn) представляет собой n-мерный вектор, соствленный из коэффициентов целевой функции, причем cT – транспонированная вектор- строка; x=(x1 . xn) – n –мерный вектор переменных решений, B=[b1 b2 m-мерный вектор свободных членов bm] Beq=[beq1 … beqr] ограничения в виде равенств; двусторонние покомпонентные ограничения в векторной форме lb≤x≤ub A= Пример: задача состваления рациона питания Имеются 3 продукта П1, П2 и П3 разной цены, каждый из которых содержит определенное количество питательных ингридиентов И1, И2, И3, И4. Известно, что в день требуется : И1не менее 250, И2 не менее 60, И3 не менее 100 и И4 не менее 220. Требуется минимизировать затраты на приобретение продуктов. Очевидно, что количество приобретаемых процессов не может быть отрицательным.. Записываем целевую функцию, матрицу A, векторы b и lb в соответствии с требованиями Toolbox, обозначив искомые количества продуктов через x1, x2 и x3 соответственно. Поскольку линейные ограничения содержат «меньшк или равно», а количество ингредиентов в рационе не может быть менее заданных величин, то следует изменить знаки обеих частей системы.При вызове программы linprog вместо неиспользуемых ограничение (нет ограничений в виде равенств) задайте пустые массивы, обозначаемые в MATLAB пустыми скобками. Программа ration % задание матрицы и вектора правой части системы неравенств A=[4 6 15 2 2 0 5 3 4 7 3 12] A=-A; b=[250 60 100 220]; b=-b; % Определение коэффициентов целеой функции f=[44; 35; 100]; % Задание ограничений снизу на переменные lb=[0; 0; 0]; % решение и вывод результата в командное окно x=linprog(f,A,b,[],[],lb)
|