МАТЕМАТИЧЕСКИЕ МЕТОДЫ, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ - РАЗРАБОТКА И ПРИНЯТИЕ УПРАВЛЕНЧЕСКОГО РЕШЕНИЯ

Контрольная работа 3. Система линейных уравнений и ее решение

Практика решения системы линейных уравнений включает три задания.

Задание 1. Решение системы линейных уравнений тремя методами: по методу Гаусса, формулам Крамера и по методу обратной матрицы (раздел 3.1).

а) Решение по методу Гаусса.

Шаг 1. Исключим переменную X! из 2-го и 3-го уравнений системы (1).

Шаг 2. Исключим переменную Хг из 3-го уравнения системы (2), преобразовав второе уравнение (2) к виду: Х2 + 8/7 Хз = 22/7.

б) Решение по формулам Крамера;

Определитель 3-го порядка вычислим посредством метода алгебраических дополнений.

  • в) Решение по методу обратной матрицы.
  • 1. Вычисляется определитель квадратной матрицы А системы (2.1.4). Д= 11.
  • 2. Вычисляем алгебраические дополнение Ау, к каждому элементу

3., 4. Построим матрицы А , А'.

5. Вычислим обратную матрицу А"1:

6. Вычислим переменные х, Х2, *з-

Результаты всех трех методов идентичны.

2. Решение систем линейных уравнений в системе Matlab В качестве методики для решения системы линейных уравнений в системе Matlab использовалась [59, 60]. Решение системы линейных уравнений покажем на примере (1).

Для этого в системе Matlab формируется матрица а: а =[2.0 3.0 4.0;

  • 3.0 1.0 2.0;
  • 1.0 2.0 1.0];

и вектор b: b = [16; 13; 8];

Обращение к функции, решающей систему линейных уравнений, представлено в виде:

В результате решения получим: а = 2 3 4; Ь= 16; х= 3.0000;

  • 3 1 2; 13; 2.0000;
  • 12 1; 8; 1.0000.

Вопросы для самостоятельной подготовки занятия 3.

1. Тестовые примеры систем линейных уравнений

Задание 1. Решить системы линейных уравнений: по методу Гаусса; по формулам Крамера; по методу обратной матрицы в соответствии с вариантом решения.

Задание 2. Решить ниже приведенные системы линейных уравнений в системе Matlab.

Контрольная работа 4. Решение в системе Matlab задачи линейного программирования

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

1. Методика решения ЗЛП в системе Matlab Рассмотрим решение задачи линейного программирования следующего вида:

Для решения задачи (2.1)-(2.2) используется функция linprog, где реализован так называемый прямо-двойственный алгоритм, при использовании которого одновременно решается как данная задача, так и двойственная к ней. [30, 66].

Обращение к функции (function):

[x,fval,exitflag, output, lambda]=linprog(f, A, В ,Aeq,Beq, lb, ub,x0, options) где (f,A,B,Aeq,Beq,lb,ub,xO,options) - входные параметры: f- коэффициенты целевой функции (критерий);

А - матрица условий неравенств задачи;

В - вектор столбец ограничений, в совокупности с А образуют систему неравенств задачи АХ<В;

Aeq - матрица условий линейных уравнений;

Beq - вектор столбец в уравнениях задачи, в совокупности образующие ограничения типа равенств в задаче AeqX=Beq;

lb, ub - нижняя и верхняя граница, накладываемая на X - вектор переменных: lbЕсли lb, ub - отсутствуют (пустое множество), то на переменные не наложены ограничения;

хО - стартовая точка используется, если не наложены границы - нижняя и верхняя;

options - опция, определяющая условия решения задачи.

% option is only available with the active-set algorithm. The default

interior point algorithm will ignore any non-empty starting point. (x,fval,exitflag,output,lambda) - выходные параметры: x- точка оптимума- вектор переменных дающий максимум (минимум) целевой функции;

fval - величина целевой функции в точке оптимума: fval=f*x exitflag - значение признака, если exitflag= 1, то решение найдено - ('Optimization terminated successfully.'), если = 2, то решение невозможно - ('Optimization completed.'), если = 0, то количество итераций превышает допустимое - ('Maximum number of iterations exceeded'), output - определяет число итераций решения задачи; lambda - характеризует множители Лагранжа.

2. Решение в Matlab тестовых задач линейного программирования (ЗЛП)

Решение задачи линейного программирования (2.1)-(2.2) покажем на примере:

В задаче (2.3)-(2.7) формулируется следующее: требуется найти неотрицательное решение в системе неравенств (2.4)-(2.7) такое, при котором функция F принимает максимальное значение.

Покажем это в системе Matlab в соответствии с алгоритмом решения ЗЛП (Симплекс-методом).

Пример 1. (Решение ЗЛП (2.2)-(2.7) с первым критерием)

Для решения ЗЛП в системе Matlab формируется сначала исходные данные в виде m-файла (см. Приложение к разделу 2.2):

критерий (целевая функция) в виде вектора: f = [-4. -5. -9. -11.]; матрица линейных ограничений а = [1 1 1 1;

  • 7 5 3 2;
  • 3 5 10 15];

Вектор ограничений (bj): b=[15. 120. 100.]; ограничения типа равенства: Aeq=[]; Beq=[]; начальные условия - вектор: Х0=[0 0 0 0];

вектор, содержащий нижний (Ы) и верхний (bu) пределы изменения переменных (xj): bl = [0.0 0.0 0.00]; bu = [40.0 40.0 40.0];

вектор начальных условий: хО = [0. 0. 0. 0.]. Примечание, если используется нижняя и верхняя граница bl, bu, то хО не используется.

Решение задачу линейного программирования представляет обращение к функции linprog:

где л:1 - вектор неизвестных переменных; /1 - величина целевой функции.

Как результат решения получим - оптимальные значения переменных:

оптимальное значение критерия (целевой функции): F=f х =99.2860.

Проверка Flxl=fl *xl подтверждает этот результат.

Пример 2. (Решение ЗЛП (2.3)-(2.7) со вторым критерием:

Аналогично решается ЗЛП в системе Matlab и с другими критериями, например: f2=[0. -2. -10. -6. -20.].

[х2, F2 ]=linprog(f, a, b,Aeq, beq,x0)

В результате решения получим: оптимальные значения переменных:

оптимальное значение целевой функции: F2=f* =175.

Проверка: F2x2=f2*x2

Пример 3. (Решение двойственной ЗЛП (2.3)-(2.7)).

Двойственная ЗЛП в системе Matlab решается с исходными данными, представленными в примере 1.

[yl,gl]=linprog(b,-a',fl,Aeq,Beq,yO,[],[],OPTIONS).

В результате решения получим: оптимальные значения переменных: yl=Y * ={уi=l.8571, у2=0, у3=0.7143};

оптимальное значение целевой функции: gl=g , =99.286.

Проверка: G2y2=g2*y2

Приложение к разделу 2.2. М-файл решения ЗЛП.

Вопросы для самостоятельной подготовки занятия 41.

1. Индивидуальное задание. Решение ЗЛИ в системе Matlab 1. Решить геометрически ЗЛП последовательно с критериями: а) и б), т. е. построить на плоскости область допустимых точек системы линейных неравенств и найти наибольшее значение.

2. Решить задачу линейного программирования в Mat lab. Использовать область, представленную ограничениями:

определить максимальное и минимальное значение следующих линейных функций:

3. Представить индивидуальные решения системы линейных уравнений и задач линейного программирования.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >