Преобразования жордана гаусса. Решение систем линейных уравнений методом жордана-гаусса

Как известно, метод Жордана-Гаусса, он же метод последовательного исключения неизвестных, является модификацией метода Гаусса решения систем линейных алгебраических уравнений (СЛАУ).

Метод базируется на элементарных преобразованиях (переводящих систему в эквивалентную), к которым относятся:

  • прибавление к обеим частям уравнения системы другого уравнения той же системы, умноженного на число, отличное от нуля;
  • перестановка местами уравнений в системе;
  • удаление из системы уравнений вида 0 = 0.

В отличие от метода Гаусса, на каждом шаге одна переменная исключается из всех уравнений, кроме одного.

Шаг метода состоит в следующем:

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

Алгоритмизировать это можно так:

Для СЛАУ в матричном виде A*x=b (матрица A размерности m*n , совсем необязательно квадратная) составляется следующая таблица:

В таблице выбран разрешающий элемент a r,s ≠0 , тогда r - разрешающая строка, s - разрешающий столбец.

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

1. вычисляются элементы разрешающей строки: a" r,j =a r,j /a r,s - то есть, r-строка таблицы делится на разрешающий элемент;

2. все элементы разрешающего столбца, кроме a r,s , равного единице, становятся равны нулю;

3. элементы вне разрешающих строки и столбца вычисляются по формуле, изображённой ниже:


Легко не запутаться, если увидеть, что числитель этой формулы похож на вычисление определителя матрицы 2 на 2.

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

Возможны следующие случаи:

1. В процессе исключений левая часть уравнения системы обращается в 0, а правая b≠0 , тогда система не имеет решения.

2. Получается тождество 0 = 0 - уравнение является линейной комбинацией остальных и строка нулей может быть вычеркнута из системы.

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

Запрограммируем метод в Excel одной формулой, изменять которую должно быть не слишком трудоёмко. Например, для решения СЛАУ


заполним коэффициентами системы ячейки листа от A1 до D4 включительно, выберем разрешающий элемент a 1,1 =1 , а первый шаг метода сделаем в ячейке A6 , куда загоним "универсальную" формулу для преобразования Жордана-Гаусса:

ЕСЛИ(СТРОКА($A$1)=СТРОКА(A1);A1/$A$1;
ЕСЛИ(СТОЛБЕЦ($A$1)=СТОЛБЕЦ(A1);0;(A1*$A$1-
ДВССЫЛ(АДРЕС(СТРОКА(A1);СТОЛБЕЦ($A$1)))*
ДВССЫЛ(АДРЕС(СТРОКА($A$1);СТОЛБЕЦ(A1))))/$A$1))


На следующем шаге разрешающим элементом может быть, например, a 2,2 =1 (ячейка B7). Нам останется скопировать формулу из A6 в A11 (по пустой строке оставляем, чтоб визуально разделить шаги метода), войти в режим редактирования формулы (двойной щелчок по ячейке или выбрать её и нажать клавишу F2) и поправить (аккуратно перетащить мышкой за границу) все закреплённые ссылки с ячейки A1 на B7 .

Конечно, можно заменить везде в формуле закреплённую ссылку $A$1 на конструкцию вида ДВССЫЛ(ЯЧЕЙКА) , образующую динамический адрес ссылки. Скажем, ДВССЫЛ(F8) , а в ячейке F8 будет автоматически формироваться адрес ячейки разрешающего элемента по заданным пользователем номеру строки и столбца. Тогда для этих номеров строки и столбца придётся предусмотреть отдельные ячейки, например, так:


Увы, всё это ничего не даст - вместо $A$1 мы просто вынуждены будем закрепить в формуле ДВССЫЛ($F$8) и всё равно потом перетаскивать столько же ссылок при копировании формулы. Кроме того, "вручную" введённые номера строки и столбца придётся ещё и проверять на допустимость (хотя бы как на рисунке), так что, не будем умножать сущностей.

Посмотреть метод в работе можно на двух первых листах приложенного файла Excel (2 разных примера).

На преобразовании Жордана-Гаусса основан и такой универсальный метод решения линейных задач оптимизации, как симплекс-метод . Описания его обычно страшны, длинны и перегружены теоремами. Попробуем сделать простое описание и разработать пригодный для расчёта в Excel алгоритм. На самом деле, симплекс-метод уже встроен в стандартную надстройку Пакет анализа, и программировать его "вручную" не нужно, так что наш код имеет, скорее, учебную ценность.

Сначала минимум теории.

Если вектор-столбцы СЛАУ линейно независимы, соответствующие им переменные являются базисными , а остальные – свободными . Например, в СЛАУ


переменные x 2 и x 4 - базисные, а x 1 и x 3 - свободные. Базисные переменные между собой независимы, а свободные можно сделать, например, нулями и получить { x 2 =2, x 4 =1 } – базисное решение системы.

Выбирая различные разрешающие элементы, можно получить решения СЛАУ с различными базисами. Любое неотрицательное базисное решение СЛАУ называется опорным .

Симплекс-метод обеспечивает переход от одного опорного решения к другому, пока не будет достигнуто оптимальное решение, дающее минимум целевой функции.

Алгоритм симплекс-метода состоит в следующем:

1. Задача ЛП преобразуется к каноническому виду:


Это всегда можно сделать следующим образом: к задаче, записанной в стандартной постановке


добавляются дополнительные балансовые переменные , число которых соответствует числу ограничений-неравенств m (ограничения на неотрицательность значений неизвестных не учитываются). После этого неравенства со знаком " ≤ " превращаются в равенства, например, система ограничений вида

2*x 1 +3*x 2 ≤20
3*x 1 +x 2 ≤15
4*x 1 ≤16
3*x 2 ≤12
x 1 ,x 2 ≥0

примет вид

2*x 1 +3*x 2 +x 3 =20
3*x 1 +x 2 +x 4 =15
4*x 1 +x 5 =16
3*x 2 +x 6 =12
x 1 ,x 2 ,...,x 6 ≥0

То есть, "экономический" смысл балансовых переменных очень прост – это "остатки" неиспользованных ресурсов каждого вида.

Если в исходной задаче искался не минимум, а максимум, целевая функция Z заменятся на Z 1 = -Z . Решения задач совпадают, при этом min Z = - max Z 1 . Например, цель

Z(x 1 ,x 2)=2*x 1 +5*x 2 (max)

переписывается в виде

Z 1 (x 1 ,x 2)=-2*x 1 -5*x 2 (min)

Если в исходной задаче были уравнения-неравенства со знаками " ≥ " вместо " ≤ ", обе части каждого такого неравенства умножаются на -1 , а знак неравенства меняется на противоположный, например,

3*x 1 +x 2 +x 4 ≥15

превращается в

3*x 1 -x 2 -x 4 ≤15

Канонический вид модели получен, для него выписывается симплекс-таблица :


В левом столбце записываются базисные переменные (БП), если они ещё не выделены – пусто.

2. С помощью шагов Жордана–Гаусса ищется первоначальный опорный план, т.е. СЛАУ приводится к базисному виду с неотрицательными свободными членами b i >0 . При этом целевая функция Z должна быть выражена только через свободные неизвестные (нулевые коэффициенты в Z-строке стоят только под переменными x i , которые есть в базисе). При выборе разрешающего элемента a r,s в строку r столбца БП выписываем переменную x s , если там уже была переменная – вычеркиваем её (выводим из базиса).

3. Выписываем под столбцами x i опорный план X * : под свободными переменными - нули, под базисными – соответствующие базисной переменной коэффициенты из столбца b .

Ниже выписываем вектор R по правилу: под базисными переменными – нули, под свободными R i =Z i .

Если все R i ≥0 , найдено оптимальное решение X * и значение цели Z min = -q , иначе нужен новый план, а у вас он есть, товарищ Жюков? (п. 4).

4. Для выбора разрешающего столбца s выбираем максимальную по модулю отрицательную компоненту вектора R , разрешающий столбец s выбран. Затем анализируем коэффициенты s-го столбца матрицы системы ограничений. Если все a i,s ≤0 , решения нет и Z min стремится к минус бесконечности, иначе переходим к п.5.

5. Для выбора разрешающей строки r составляем неотрицательные отношения b i /A i,s ≥0 , i=1,2,...,m , и выбираем среди них наименьшее. Если минимум достигается для нескольких строк, за разрешающую можно принять любую из них, при этом, в новом опорном плане значения некоторых базисных переменных станут равными 0, т.е., получаем вырожденный опорный план.

6. Выполняем преобразование Жордана-Гаусса с разрешающим элементом a r,s и переходим к п.3

Геометрически симплекс-методу соответствует кратчайший обход вершин n-мерного выпуклого многогранника, образующего область допустимых решений задачи:


Здесь мы перешли от опорного плана C , представляющего собой одну из вершин многомерного многоугольника, к оптимальному плану E=X * .

Запрограммировать это всё в Excel нелегко, но можно. В прилагаемом документе приведены 3 примера, реализующие решение задач симплекс-методом. Правда, при выполнени шага менять уже придётся 3 формулы, на листе первого примера на симплекс-метод они выделены жёлтым цветом: расчёт отношений для выбора разрешающей строки в ячейке I2 , заполнение столбца БП в ячейке A12 , шаг преобразования Жордана-Гаусса в ячейке B12 . Как и в примере на преобразование Жордана-Гаусса, изменение формул связано только с необходимостью сослаться на новую строку, содержащую адрес ячейки с разрешающим элементом (для первого шага - ячейка C9).

Записывается в виде расширенной матрицы, т.е. в столбец свободных членов помещается в одну матрицу с коэффициентами неизвестных. Аалгоритм заключается в приведении исходной матрицы, характеризующей систему линейных уравнений, к единичной путем эквивалентных преобразований (домножения строки матрицы на константу и сложения с другой строкой матрицы). В качестве константы используется 1/a[i][i] , т.е. число, обратное по отношению к элементу диагонали. Естественно, в ряде случаев возникают проблемы, связанные с делением на ноль, которые решаются перестановкой строк и столбцов:

Весь алгоритм можно представить 10 пунктами:

    В качестве опорной выбираем первую строку матрицы.

    Если элемент опорной строки, индекс которого равен номеру опорной строки, равен нулю, то меняем всю опорную строку на первую попавшуюся строку снизу, в столбце которого нет нуля.

    Все элементы опорной строки делим на первый слева ненулевой элемент этой строки.

    Из оставшихся снизу строк вычитают опорную строку, умноженную на элемент, индекс которого равен номеру опорной строки.

    В качестве опорной строки выбираем следующую строку.

    Повторяем действия 2 – 5 пока номер опорной строки не превысит число строк.

    В качестве опорной выбираем последнюю строку.

    Вычитаем из каждой строки выше опорную строку, умноженную на элемент этой строки с индексом равным номеру опорной строки.

    В качестве опорной строки выбираем строку выше.

    Повторяем 8 – 9 пока номер опорной строки не станет меньше номера первой строки.

Пример расчета 1

Пусть имеется система уравнений:

Запишем расширенную матрицу системы:

и выполним элементарные преобразования ее строк.

Для этого умножим первую строку на 1 и вычитаем из второй строки; затем умножим первую строку на 2 и вычтем из третьей строки.

В результате мы исключим переменную x 1 из всех уравнений, кроме первого. Получим:

Теперь вычтем из строки 3 строку 2, умноженную на 3:

Теперь вычитаем из 1 строки сначала 3 строку, а затем 2 строку:

После преобразований получаем систему уравнений:

Из этого следует, что система уравнений имеет следующее решение:

x1 = 1, x2 = 3 , x3 = -1

Пример расчета 2

    В качестве примера решим систему уравнений, представленную в виде матрицы (Таблица 1), методом Гаусса – Жордана.

Делим первую строку на 3 (элемент первой строки, расположенный на главной диагонали), получим:

4/3

1/3

Умножаем первую строку на 1 и вычитаем из второй строки. Умножаем первую строку на 6 и вычитаем из третьей строки. Получим:

4/3

1/3

17/3

17/3

В первом столбце все элементы кроме диагонального равны нулю, займемся вторым столбцом, для этого выберем вторую строку в качестве опорной. Вторая Делим ее на 17/3:

4/3

1/3

3 /17

Умножаем строку 2 на -6 и вычитаем из третьей строки:

4/3

1/3

3 /17

3 3 /17

Теперь третья строка – опорная, делим ее на -33/17:

4/3

1/3

3 /17

17/3

Умножаем опорную строку на 3/17 и вычитаем ее из второй. Умножаем третью строку на 1 и вычитаем ее из первой

4/3

17/3

Получена треугольная матрица, начинается обратный ход алгоритма (во время которого получим единичную матрицу). Вторая строка становится опорной. Умножаем третью строку на 4/3 и вычитаем ее из первой:

10/3

17/3

Последний столбец матрицы – решение системы уравнений.

4. Метод Жордана - Гаусса.

Схема с выбором главного элемента состоит в том, что требование неравенства нулю диагональных элементов akk, на которые происходит деление в процессе исключения, заменятся более жестким: из всех элементов К-го столба выбрать наибольший по модулю и переставить уравнения так, чтобы этот элемент оказался на месте элемента акк. Выбор главного элемента и связанная с ним перестановка строк необходимы в тех случаях, когда на каком-либо i-ом шаге акк=0 либо же акк очень мало по остальными элементами i- го столбца: при делении на такое «малое» акк будут получаться большие числа с большими абсолютными погрешностями, в результате чего решение может сильно исказиться.

Ниже излагается алгоритм полного исключения неизвестных или метод Жордана – Гаусса. Суть метода состоит в том, что, рассмотрев первое уравнение, в нем неизвестное с коеффициэнтом, отличным от нуля (в дальнейшем разрешающий элемент), и разделив первое уравнение на этот коэффициент, с помощью первого уравнения исключают это неизвестное из всех уравнений, кроме первого. Выбрав во втором уравнении неизвестное с коэффициентом, отличным от нуля, и разделив на него второе уравнение, с помощью второго исключают другие неизвестные из всех уравнений, кроме второго и т.д., т.е. с помощью одного уравнения производят полное исключение одного неизвестного. Процесс продолжается до тех пор, пока не будут использованы все уравнения.

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

1. В процессе исключений левая часть I –го уравнения системы обращается в нуль, а правая часть равна некоторому числу, отличному от нуля. т.е. 02+=bc0.

Это означает, что система не имеет решений, так как I – му уравнению не могут удовлетворять никакие значения неизвестных;

2. Левая и правая части I – го уравнения обращаются в нуль. Это означает, что I – ое уравнение является линейной комбинацией остальных, ему удовлетворяет любое найденное решение системы, поэтому оно может быть отброшено. В системе количество неизвестных больше количества уравнений и, следовательно, такая система имеет множество решений;

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

Таким образом, конечной целью преобразований Жордана-Гаусса является получение из заданной линейной системы

a11x1 + a12x2 + … + a1nxn = b1,n+1

a21x1 + a22x2 + … + a2nxn = b2,n+1

am1x1 + am2x2 + … + amnxn = bm.n+1

Здесь x1, x2, …, xn - неизвестные, которые надо определить. a11, a12, …, amn - коэффициенты системы - и b1, b2, … bm - свободные члены - предполагаются известными. Индексы коэффициентов (aij) системы обозначают номера уравнения (i) и неизвестного (j), при котором стоит этот коэффициент, соответственно.

Система (1) называется однородной, если все её свободные члены равны нулю (b1 = b2 = … = bm = 0), иначе - неоднородной.

Система (1) называется квадратной, если число m уравнений равно числу n неизвестных.

Решение системы (1) - совокупность n чисел c1, c2, …, cn, таких что подстановка каждого ci вместо xi в систему (1) обращает все ее уравнения в тождества.

Система (1) называется совместной, если она имеет хотя бы одно решение, и несовместной, если у нее нет ни одного решения.

Совместная система вида (1) может иметь одно или более решений.

Решения c1(1), c2(1), …, cn(1) и c1(2), c2(2), …, cn(2) совместной системы вида (1) называются различными, если нарушается хотя бы одно из равенств:

c1(1) = c1(2), c2(1) = c2(2), …, cn(1) = cn(2).

Совместная система вида (1) называется определенной, если она имеет единственное решение; если же у нее есть хотя бы два различных решения, то она называется неопределенной. Если уравнений больше, чем неизвестных, она называется переопределённой.

Решим следующую систему уравнений:

Запишем её в виде матрицы 3×4, где последний столбец является свободным членом:

Проведём следующие действия:

· К строке 2 добавим: -4 * Строку 1.

· К строке 3 добавим: -9 * Строку 1.

· К строке 3 добавим: -3 * Строку 2.

· Строку 2 делим на -2

· К строке 1 добавим: -1 * Строку 3.

· К строке 2 добавим: -3/2 * Строку 3.

· К строке 1 добавим: -1 * Строку 2.

В правом столбце получаем решение:

.

В методе Ньютона наблюдается ускорение сходимости процесса приближений. 5. Метод касательных (метод Ньютона) Метод касательных, связанный с именем И. Ньютона, является одним из наиболее эффективных численных методов решения уравнений. Идея метода очень проста. Возьмём производную точку x0 и запишем в ней уравнение касательной к графику функции f(x): y=f(x0)+ f ¢(x) (x-x0) (1.5) Графики...

Решения от численных методов расчёта. Для определения корней уравнения не требуется знания теорий групп Абеля, Галуа, Ли и пр. и применения специальной математической терминологии: колец, полей, идеалов, изоморфизмов и т.д. Для решения алгебраического уравнения n - ой степени нужно только умение решать квадратные уравнения и извлекать корни из комплексного числа. Корни могут быть определены с...



Математики тригонометрической подстановки и проверка эффективности разработанной методики преподавания. Этапы работы: 1. Разработка факультативного курса на тему: «Применение тригонометрической подстановки для решения алгебраических задач» с учащимися классов с углубленным изучением математики. 2. Проведение разработанного факультативного курса. 3. Проведение диагностирующей контрольной...

... «проявляется» лишь в процессе преобразований. Очевидность и «завуалированность» новой переменной мы рассмотрим на конкретных примерах во второй главе данной работы. 2. Возможности применения метода замены неизвестного при решении алгебраических уравнений В этой главе выявим возможности применения метода замены неизвестного при решении алгебраических уравнений в стандартных и нестандартных...



Понравилась статья? Поделиться с друзьями: