МАТЕМАТИЧЕСКИЕ МЕТОДЫ, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ - РАЗРАБОТКА И ПРИНЯТИЕ УПРАВЛЕНЧЕСКОГО РЕШЕНИЯ
Контрольная работа 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
хО - стартовая точка используется, если не наложены границы - нижняя и верхняя;
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. Представить индивидуальные решения системы линейных уравнений и задач линейного программирования.