kancboom.ru

Решение систем с помощью метода гаусса. Метод гаусса онлайн. Исход решения с несовместной системой

Метод Гаусса был предложен известнейшим немецким математиком Карлом Фридрихом Гауссом (1777 - 1855) и является одним из наиболее универсальных методов решения СЛАУ. Сущность этого метода состоит в том, что посредством последовательных исключений неизвестных данная система превращается в ступенчатую (в частности, треугольную) систему, равносильную данной. При практическом решении задачи, расширенная матрица системы с помощью элементарных преобразований над ее строками приводится к ступенчатому виду. Далее последовательно находятся все неизвестные, начиная снизу вверх.

Принцип метода Гаусса

Метод Гаусса включает в себя прямой (приведение расширенной матрицы к ступенчатому виду, то есть получение нулей под главной диагональю) и обратный (получение нулей над главной диагональю расширенной матрицы) ходы. Прямой ход и называется методом Гаусса, обратный - методом Гаусса-Жордана, который отличается от первого только последовательностью исключения переменных.

Метод Гаусса идеально подходит для решения систем содержащих больше трех линейных уравнений, для решения систем уравнений, которые не являются квадратными (чего не скажешь про метод Крамера и матричный метод). То есть метод Гаусса - наиболее универсальный метод для нахождения решения любой системы линейных уравнений, он работает в случае, когда система имеет бесконечно много решений или несовместна.

Примеры решения систем уравнений

Пример

Задание. Решить СЛАУ методом Гаусса.

Решение. Выпишем расширенную матрицу системы и при помощи элементарных преобразований над ее строками приведем эту матрицу к ступенчатому виду (прямой ход) и далее выполним обратный ход метода Гаусса (сделаем нули выше главной диагонали). Вначале поменяем первую и вторую строку, чтобы элемент равнялся 1 (это мы делаем для упрощения вычислений):

Все элементы третьей строки делим на два (или, что тоже самое, умножаем на ):

От третьей строки отнимаем вторую, умноженную на 3:

Умножив третью строку на , получаем:

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

Определение и описание метода Гаусса

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

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

Определение 1

Эта часть решения носит название прямого хода решения Гаусса, так как весь процесс осуществляется сверху вниз.

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

Описание алгоритма метода Гаусса

Последовательность действий для общего решения системы уравнения методом Гаусса заключается в поочередном применении прямого и обратного хода к матрице на основе СЛАУ. Пусть исходная система уравнений имеет следующий вид:

$\begin{cases} a_{11} \cdot x_1 +...+ a_{1n} \cdot x_n = b_1 \\ ... \\ a_{m1} \cdot x_1 + a_{mn} \cdot x_n = b_m \end{cases}$

Чтобы решить СЛАУ методом Гаусса, необходимо записать исходную систему уравнений в виде матрицы:

$A = \begin{pmatrix} a_{11} & … & a_{1n} \\ \vdots & … & \vdots \\ a_{m1} & … & a_{mn} \end{pmatrix}$, $b=\begin{pmatrix} b_1 \\ \vdots \\ b_m \end{pmatrix}$

Матрица $A$ называется основной матрицей и представляет собой записанные по порядку коэффициенты при переменных, а $b$ называется столбцом её свободных членов. Матрица $A$, записанная через черту со столбцом свободных членов называется расширенной матрицей:

$A = \begin{array}{ccc|c} a_{11} & … & a_{1n} & b_1 \\ \vdots & … & \vdots & ...\\ a_{m1} & … & a_{mn} & b_m \end{array}$

Теперь необходимо с помощью элементарных преобразований над системой уравнений (или над матрицей, так как это удобнее) привести её к следующему виду:

$\begin{cases} α_{1j_{1}} \cdot x_{j_{1}} + α_{1j_{2}} \cdot x_{j_{2}}...+ α_{1j_{r}} \cdot x_{j_{r}} +... α_{1j_{n}} \cdot x_{j_{n}} = β_1 \\ α_{2j_{2}} \cdot x_{j_{2}}...+ α_{2j_{r}} \cdot x_{j_{r}} +... α_{2j_{n}} \cdot x_{j_{n}} = β_2 \\ ...\\ α_{rj_{r}} \cdot x_{j_{r}} +... α_{rj_{n}} \cdot x_{j_{n}} = β_r \\ 0 = β_(r+1) \\ … \\ 0 = β_m \end{cases}$ (1)

Матрица, полученная из коэффициентов преобразованной системы уравнения (1) называется ступенчатой, вот так обычно выглядят ступенчатые матрицы:

$A = \begin{array}{ccc|c} a_{11} & a_{12} & a_{13} & b_1 \\ 0 & a_{22} & a_{23} & b_2\\ 0 & 0 & a_{33} & b_3 \end{array}$

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

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

После получения ступенчатой матрицы необходимо подставить полученные переменные в оставшиеся уравнения (начиная с конца) и получить оставшиеся значения переменных.

Основные правила и разрешаемые преобразования при использовании метода Гаусса

При упрощении матрицы или системы уравнений этим методом нужно использовать только элементарные преобразования.

Таким преобразованиями считаются операции, которые возможно применять к матрице или системе уравнений без изменения её смысла:

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

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

Разбор трёх основных случаев, возникающих при решении линейных уравнений используя метод простых преобразований Гаусса

Различают три возникающих случая при использовании метода Гаусса для решения систем:

  1. Когда система несовместная, то есть у неё нет каких-либо решений
  2. У системы уравнений есть решение, причём единственное, а количество ненулевых строк и столбцов в матрице равно между собой.
  3. Система имеет некое количество или множество возможных решений, а количество строк в ней меньше чем количество столбцов.

Исход решения с несовместной системой

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

$\begin{array}{ccc|c} 2 & -1 & 3 & 0 \\ 1 & 0 & 2 & 0\\ 0 & 0 & 0 & 1 \end{array}$

В последней строчке возникло невыполняемое равенство: $0 \cdot x_{31} + 0 \cdot x_{32} + 0 \cdot x_{33} = 1$.

Система уравнений, у которой есть только одно решение

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

$\begin{cases} x_1 - x_2 = -5 \\ 2 \cdot x_1 + x_2 = -7 \end{cases}$

Запишем её в виде матрицы:

$\begin{array}{cc|c} 1 & -1 & -5 \\ 2 & 1 & -7 \end{array}$

Чтобы привести первую ячейку второй строчки к нулю, домножим верхнюю строку на $-2$ и вычтем её из нижней строчки матрицы, а верхнюю строчку оставим в исходном виде, в итоге имеем следующее:

$\begin{array}{cc|c} 1 & -1 & -5 \\ 0 & 3 & 10 \end{array}$

Этот пример можно записать в виде системы:

$\begin{cases} x_1 - x_2 = -5 \\ 3 \cdot x_2 = 10 \end{cases}$

Из нижнего уравнения выходит следующее значение $x$: $x_2 = 3 \frac{1}{3}$. Подставим это значение в верхнее уравнение: $x_1 – 3 \frac{1}{3}$, получаем $x_1 = 1 \frac{2}{3}$.

Система, обладающая множеством возможных вариантов решений

Для этой системы характерно меньшее количество значащих строк, чем количество столбцов в ней (учитываются строки основной матрицы).

Переменные в такой системе делятся на два вида: базисные и свободные. При преобразовании такой системы содержащиеся в ней основные переменные необходимо оставить в левой области до знака “=”, а остальные переменные перенести в правую часть равенства.

У такой системы есть только некое общее решение.

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

$\begin{cases} 2y_1 + 3y_2 + x_4 = 1 \\ 5y_3 - 4y_4 = 1 \end{cases}$

Запишем её в виде матрицы:

$\begin{array}{cccc|c} 2 & 3 & 0 & 1 & 1 \\ 0 & 0 & 5 & 4 & 1 \\ \end{array}$

Наша задача найти общее решение системы. Для этой матрицы базисными переменными будут $y_1$ и $y_3$ (для $y_1$ - так как он стоит на первом месте, а в случае $y_3$ - располагается после нулей).

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

Оставшиеся переменные называются свободными, через них нам необходимо выразить базисные.

Используя так называемый обратный ход, разбираем систему снизу вверх, для этого сначала выражаем $y_3$ из нижней строчки системы:

$5y_3 – 4y_4 = 1$

$5y_3 = 4y_4 + 1$

$y_3 = \frac{4/5}y_4 + \frac{1}{5}$.

Теперь в верхнее уравнение системы $2y_1 + 3y_2 + y_4 = 1$ подставляем выраженное $y_3$: $2y_1 + 3y_2 - (\frac{4}{5}y_4 + \frac{1}{5}) + y_4 = 1$

Выражаем $y_1$ через свободные переменные $y_2$ и $y_4$:

$2y_1 + 3y_2 - \frac{4}{5}y_4 - \frac{1}{5} + y_4 = 1$

$2y_1 = 1 – 3y_2 + \frac{4}{5}y_4 + \frac{1}{5} – y_4$

$2y_1 = -3y_2 - \frac{1}{5}y_4 + \frac{6}{5}$

$y_1 = -1.5x_2 – 0.1y_4 + 0.6$

Решение готово.

Пример 1

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

$\begin{cases} 4x_1 + 2x_2 – x_3 = 1 \\ 5x_1 + 3x_2 - 2x^3 = 2\\ 3x_1 + 2x_2 – 3x_3 = 0 \end{cases}$

Запишем нашу систему в виде расширенной матрицы:

$\begin{array}{ccc|c} 4 & 2 & -1 & 1 \\ 5 & 3 & -2 & 2 \\ 3 & 2 & -3 & 0\\ \end{array}$

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

Для этого к 1-ой строчке нужно прибавляем строчку из середины, умноженную на $-1$, а саму среднюю строчку записываем как есть, выходит:

$\begin{array}{ccc|c} -1 & -1 & 1 & -1 \\ 5 & 3 & -2 & 2 \\ 3 & 2 & -3 & 0\\ \end{array}$

$\begin{array}{ccc|c} -1 & -1 & 1 & -1 \\ 0 & -2 & 3 & -3 \\ 0 & -1 & 0 & -3\\ \end{array}$

Домножим верхнюю и последнюю строчки на $-1$, а также поменяем местами последнюю и среднюю строки:

$\begin{array}{ccc|c} 1 & 1 & -1 & 1 \\ 0 & 1 & 0 & 3 \\ 0 & -2 & 3 & -3\\ \end{array}$

$\begin{array}{ccc|c} 1 & 1 & -1 & 1 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 3 & 3\\ \end{array}$

И разделим последнюю строчку на $3$:

$\begin{array}{ccc|c} 1 & 1 & -1 & 1 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & 1\\ \end{array}$

Получаем следующую систему уравнений, равносильную исходной:

$\begin{cases} x_1 + x_2 – x_3 = 1\\ x_2 = 3 \\ x_3 = 1 \end{cases}$

Из верхнего уравнения выражаем $x_1$:

$x1 = 1 + x_3 – x_2 = 1 + 1 – 3 = -1$.

Пример 2

Пример решения системы, заданной с помощью матрицы 4 на 4 методом Гаусса

$\begin{array}{cccc|c} 2 & 5 & 4 & 1 & 20 \\ 1 & 3 & 2 & 1 & 11 \\ 2 & 10 & 9 & 7 & 40\\ 3 & 8 & 9 & 2 & 37 \\ \end{array}$.

В начале меняем местами верхнюю исследующую за ней строчки, чтобы получить в левом верхнем углу $1$:

$\begin{array}{cccc|c} 1 & 3 & 2 & 1 & 11 \\ 2 & 5 & 4 & 1 & 20 \\ 2 & 10 & 9 & 7 & 40\\ 3 & 8 & 9 & 2 & 37 \\ \end{array}$.

Теперь умножим верхнюю строчку на $-2$ и прибавим ко 2-ой и к 3-ьей. К 4-ой прибавляем 1-ую строку, домноженную на $-3$:

$\begin{array}{cccc|c} 1 & 3 & 2 & 1 & 11 \\ 0 & -1 & 0 & -1 & -2 \\ 0 & 4 & 5 & 5 & 18\\ 0 & -1 & 3 & -1 & 4 \\ \end{array}$

Теперь к строке с номером 3 прибавляем строку 2, умноженную на $4$, а к строке 4 прибавляем строку 2, умноженную на $-1$.

$\begin{array}{cccc|c} 1 & 3 & 2 & 1 & 11 \\ 0 & -1 & 0 & -1 & -2 \\ 0 & 0 & 5 & 1 & 10\\ 0 & 0 & 3 & 0 & 6 \\ \end{array}$

Домножаем строку 2 на $-1$, а строку 4 делим на $3$ и ставим на место строки 3.

$\begin{array}{cccc|c} 1 & 3 & 2 & 1 & 11 \\ 0 & 1 & 0 & 1 & 2 \\ 0 & 0 & 1 & 0 & 2\\ 0 & 0 & 5 & 1 & 10 \\ \end{array}$

Теперь прибавляем к последней строке предпоследнюю, домноженную на $-5$.

$\begin{array}{cccc|c} 1 & 3 & 2 & 1 & 11 \\ 0 & 1 & 0 & 1 & 2 \\ 0 & 0 & 1 & 0 & 2\\ 0 & 0 & 0 & 1 & 0 \\ \end{array}$

Решаем полученную систему уравнений:

$\begin{cases} m = 0 \\ g = 2\\ y + m = 2\ \ x + 3y + 2g + m = 11\end{cases}$

Сегодня разбираемся с методом Гаусса для решения систем линейных алгебраических уравнений. О том, что это за системы, можно почитать в предыдущей статье, посвященной решению тех же СЛАУ методом Крамера. Метод Гаусса не требует каких-то специфических знаний, нужна лишь внимательность и последовательность. Несмотря на то что с точки зрения математики для его применения хватит и школьной подготовки, у студентов освоение этого метода часто вызывает сложности. В этой статье попробуем свести их на нет!

Метод Гаусса

Метод Гаусса – наиболее универсальный метод решения СЛАУ (за исключением ну уж очень больших систем). В отличие от рассмотренного ранее , он подходит не только для систем, имеющих единственное решение, но и для систем, у которых решений бесконечное множество. Здесь возможны три варианта.

  1. Система имеет единственное решение (определитель главной матрицы системы не равен нулю);
  2. Система имеет бесконечное множество решений;
  3. Решений нет, система несовместна.

Итак, у нас есть система (пусть у нее будет одно решение), и мы собираемся решать ее методом Гаусса. Как это работает?

Метод Гаусса состоит из двух этапов – прямого и обратного.

Прямой ход метода Гаусса

Сначала запишем расширенную матрицу системы. Для этого в главную матрицу добавляем столбец свободных членов.

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

Что можно делать:

  1. Можно переставлять строки матрицы местами;
  2. Если в матрице есть одинаковые (или пропорциональные) строки, можно удалить их все, кроме одной;
  3. Можно умножать или делить строку на любое число (кроме нуля);
  4. Нулевые строки удаляются;
  5. Можно прибавлять к строке строку, умноженную на число, отличное от нуля.

Обратный ход метода Гаусса

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

Когда интернет всегда под рукой, можно решить систему уравнений методом Гаусса онлайн . Достаточно лишь вбить в онлайн-калькулятор коэффициенты. Но согласитесь, гораздо приятнее осознавать, что пример решен не компьютерной программой, а Вашим собственным мозгом.

Пример решения системы уравнений методом Гаусс

А теперь - пример, чтобы все стало наглядно и понятно. Пусть дана система линейных уравнений, и нужно решить ее методом Гаусса:

Сначала запишем расширенную матрицу:

Теперь займемся преобразованиями. Помним, что нам нужно добиться треугольного вида матрицы. Умножим 1-ую строку на (3). Умножим 2-ую строку на (-1). Добавим 2-ую строку к 1-ой и получим:

Затем умножим 3-ую строку на (-1). Добавим 3-ую строку к 2-ой:

Умножим 1-ую строку на (6). Умножим 2-ую строку на (13). Добавим 2-ую строку к 1-ой:

Вуаля - система приведена к соответствующему виду. Осталось найти неизвестные:

Система в данном примере имеет единственное решение. Решение систем с бесконечным множеством решений мы рассмотрим в отдельной статье. Возможно, сначала Вы не будете знать, с чего начать преобразования матрицы, но после соответствующей практики набьете руку и будете щелкать СЛАУ методом Гаусса как орешки. А если Вы вдруг столкнетесь со СЛАУ, которая окажется слишком крепким орешком, обращайтесь к нашим авторам! вы можете, оставив заявку в Заочнике. Вместе мы решим любую задачу!

Дана система линейных алгебраических уравнений (СЛАУ) с неизвестными. Требуется решить эту систему: определить, сколько решений она имеет (ни одного, одно или бесконечно много), а если она имеет хотя бы одно решение, то найти любое из них.

Формально задача ставится следующим образом: решить систему:

где коэффициенты и известны, а переменные — искомые неизвестные.

Удобно матричное представление этой задачи:

где — матрица , составленная из коэффициентов , и — векторы-столбцы высоты .

Стоит отметить, что СЛАУ может быть не над полем действительных чисел, а над полем по модулю какого-либо числа , т.е.:

— алгоритм Гаусса работает и для таких систем тоже (но этот случай будет рассмотрен ниже в отдельном разделе).

Алгоритм Гаусса

Строго говоря, описываемый ниже метод правильно называть методом "Гаусса-Жордана" (Gauss-Jordan elimination), поскольку он является вариацией метода Гаусса, описанной геодезистом Вильгельмом Жорданом в 1887 г. (стоит отметить, что Вильгельм Жордан не является автором ни теоремы Жордана о кривых, ни жордановой алгебры — всё это три разных учёных-однофамильца; кроме того, по всей видимости, более правильной является транскрипция "Йордан", но написание "Жордан" уже закрепилось в русской литературе). Также интересно заметить, что одновременно с Жорданом (а по некоторым данным даже раньше него) этот алгоритм придумал Класен (B.-I. Clasen).

Базовая схема

Кратко говоря, алгоритм заключается в последовательном исключении переменных из каждого уравнения до тех пор, пока в каждом уравнении не останется только по одной переменной. Если , то можно говорить, что алгоритм Гаусса-Жордана стремится привести матрицу системы к единичной матрице — ведь после того как матрица стала единичной, решение системы очевидно — решение единственно и задаётся получившимися коэффициентами .

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

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

В итоге, по окончании первого шага первый столбец матрицы станет единичным (т.е. будет содержать единицу в первой строке и нули в остальных).

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

Поиск опорного элемента (pivoting)

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

Чтобы сделать алгоритм работающим в таких случаях, как раз и существует процесс выбора опорного элемента (на английском языке это называется одним словом "pivoting"). Он заключается в том, что производится перестановка строк и/или столбцов матрицы, чтобы в нужном элементе оказалось ненулевое число.

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

К счастью, для корректности метода достаточно одних только обменов строк (т.н. "partial pivoting", в отличие от "full pivoting", когда обмениваются и строки, и столбцы). Но какую же именно строку следует выбирать для обмена? И правда ли, что поиск опорного элемента надо делать только тогда, когда текущий элемент нулевой?

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

Иными словами, перед выполнением -ой фазы алгоритма Гаусса-Жордана с эвристикой partial pivoting необходимо найти в -ом столбце среди элементов с индексами от до максимальный по модулю, и обменять строку с этим элементом с -ой строкой.

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

Без этой эвристики, даже если система такова, что на каждой -ой фазе — алгоритм Гаусса-Жордана отработает, но в итоге накапливающаяся погрешность может оказаться настолько огромной, что даже для матриц размера около погрешность будет превосходить сам ответ.

Вырожденные случаи

Итак, если останавливаться на алгоритме Гаусса-Жордана с partial pivoting, то, утверждается, если и система невырождена (т.е. имеет ненулевой определитель, что означает, что она имеет единственное решение), то описанный выше алгоритм полностью отработает и придёт к единичной матрице (доказательство этого, т.е. того, что ненулевой опорный элемент всегда будет находиться, здесь не приводится).

Рассмотрим теперь общий случай — когда и не обязательно равны. Предположим, что опорный элемент на -ом шаге не нашёлся. Это означает, что в -ом столбце все строки, начиная с текущей, содержат нули. Утверждается, что в этом случае эта -ая переменная не может быть определена, и является независимой переменной (может принимать произвольное значение). Чтобы алгоритм Гаусса-Жордана продолжил свою работу для всех последующих переменных, в такой ситуации надо просто пропустить текущий -ый столбец, не увеличивая при этом номер текущей строки (можно сказать, что мы виртуально удаляем -ый столбец матрицы).

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

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

Впрочем, проще это проверить явной подстановкой найденного решения: всем независимыми переменным присвоить нулевые значения, зависимым переменным присвоить найденные значения, и подставить это решение в текущую СЛАУ.

Реализация

Приведём здесь реализацию алгоритма Гаусса-Жордана с эвристикой partial pivoting (выбором опорного элемента как максимума по столбцу).

На вход функции передаётся сама матрица системы . Последний столбец матрицы — это в наших старых обозначениях столбец свободных коэффициентов (так сделано для удобства программирования — т.к. в самом алгоритме все операции со свободными коэффициентами повторяют операции с матрицей ).

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

int gauss (vector < vector< double > > a, vector< double > & ans) { int n = (int ) a.size () ; int m = (int ) a[ 0 ] .size () - 1 ; vector< int >< m && row< n; ++ col) { int sel = row; for (int i= row; i< n; ++ i) if (abs (a[ i] [ col] ) > abs (a[ sel] [ col] ) ) sel = i; if (abs (a[ sel] [ col] ) < EPS) continue ; for (int i= col; i<= m; ++ i) swap (a[ sel] [ i] , a[ row] [ i] ) ; where[ col] = row; for (int i= 0 ; i< n; ++ i) if (i ! = row) { double c = a[ i] [ col] / a[ row] [ col] ; for (int j= col; j<= m; ++ j) a[ i] [ j] - = a[ row] [ j] * c; } ++ row; } ans.assign (m, 0 ) ; for (int i= 0 ; i< m; ++ i) if (where[ i] ! = - 1 ) ans[ i] = a[ where[ i] ] [ m] / a[ where[ i] ] [ i] ; for (int i= 0 ; i< n; ++ i) { double sum = 0 ; for (int j= 0 ; j< m; ++ j) sum + = ans[ j] * a[ i] [ j] ; if (abs (sum - a[ i] [ m] ) > EPS) return 0 ; } for (int i= 0 ; i< m; ++ i) if (where[ i] == - 1 ) return INF; return 1 ; }

В функции поддерживаются два указателя — на текущий столбец и текущую строку .

Также заводится вектор , в котором для каждой переменной записано, в какой строке должна она получиться (иными словами, для каждого столбца записан номер строки, в которой этот столбец отличен от нуля). Этот вектор нужен, поскольку некоторые переменные могли не "определиться" в ходе решения (т.е. это независимые переменные, которым можно присвоить произвольное значение — например, в приведённой реализации это нули).

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

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

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

Асимптотика

Оценим асимптотику полученного алгоритма. Алгоритм состоит из фаз, на каждой из которых происходит:

Очевидно, первый пункт имеет меньшую асимптотику, чем второй. Заметим также, что второй пункт выполняется не более раз — столько, сколько может быть зависимых переменных в СЛАУ.

Таким образом, итоговая асимптотика алгоритма принимает вид .

При эта оценка превращается в .

Заметим, что когда СЛАУ рассматривается не в поле действительных чисел, а в поле по модулю два, то систему можно решать гораздо быстрее — об этом см. ниже в разделе "Решение СЛАУ по модулю".

Более точная оценка числа действий

Как мы уже знаем, время работы всего алгоритма фактически определяется временем, затрачиваемым на исключение текущего уравнения из остальных.

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

Дополнения

Ускорение алгоритма: разделение его на прямой и обратный ход

Добиться двукратного ускорения алгоритма можно, рассмотрев другую его версию, более классическую, когда алгоритм разбивается на фазы прямого и обратного хода.

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

Система с треугольной матрицей решается тривиально — сначала из последнего уравнения сразу находится значение последней переменной, затем найденное значение подставляется в предпоследнее уравнение и находится значение предпоследней переменной, и так далее. Этот процесс и называется обратным ходом алгоритма Гаусса.

Прямой ход алгоритма Гаусса — это алгоритм, аналогичный описанному выше алгоритму Гаусса-Жордана, за одним исключением: текущая переменная исключается не из всех уравнений, а только из уравнений после текущего. В результате этого действительно получается не диагональная, а треугольная матрица.

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

Таким образом, если , то данный алгоритм будет делать уже операций — что в два раза меньше алгоритма Гаусса-Жордана.

Решение СЛАУ по модулю

Для решения СЛАУ по модулю можно применять описанный выше алгоритм, он сохраняет свою корректность.

Разумеется, теперь становится ненужным использовать какие-то хитрые техники выбора опорного элемента — достаточно найти любой ненулевой элемент в текущем столбце.

Если модуль простой, то никаких сложностей вообще не возникает — происходящие по ходу работы алгоритма Гаусса деления не создают особых проблем.

Особенно замечателен модуль, равный двум : для него все операции с матрицей можно производить очень эффективно. Например, отнимание одной строки от другой по модулю два — это на самом деле их симметрическая разность ("xor"). Таким образом, весь алгоритм можно значительно ускорить, сжав всю матрицу в битовые маски и оперируя только ими. Приведём здесь новую реализацию основной части алгоритма Гаусса-Жордана, используя стандартный контейнер C++ "bitset":

int gauss (vector < bitset< N> > a, int n, int m, bitset< N> & ans) { vector< int > where (m, - 1 ) ; for (int col= 0 , row= 0 ; col< m && row< n; ++ col) { for (int i= row; i< n; ++ i) if (a[ i] [ col] ) { swap (a[ i] , a[ row] ) ; break ; } if (! a[ row] [ col] ) continue ; where[ col] = row; for (int i= 0 ; i< n; ++ i) if (i ! = row && a[ i] [ col] ) a[ i] ^ = a[ row] ; ++ row; }

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

Если модуль произвольный (не обязательно простой), то всё становится несколько сложнее. Понятно, что пользуясь Китайской теоремой об остатках , мы сводим задачу с произвольным модулем только к модулям вида "степень простого". [ дальнейший текст был скрыт, т.к. это непроверенная информация — возможно, неправильный способ решения ]

Наконец, рассмотрим вопрос числа решений СЛАУ по модулю . Ответ на него достаточно прост: число решений равно , где — модуль, — число независимых переменных.

Немного о различных способах выбора опорного элемента

Как уже говорилось выше, однозначного ответа на этот вопрос нет.

Эвристика "partial pivoting", которая заключалась в поиске максимального элемента в текущем столбце, работает на практике весьма неплохо. Также оказывается, что она даёт практически тот же результат, что и "full pivoting" — когда опорный элемент ищется среди элементов целой подматрицы — начиная с текущей строки и с текущего столбца.

Но интересно отметить, что обе эти эвристики с поиском максимального элемента, фактически, очень зависят от того, насколько были промасштабированы исходные уравнения. Например, если одно из уравнений системы умножить на миллион, то это уравнение почти наверняка будет выбрано в качестве ведущего на первом же шаге. Это кажется достаточно странным, поэтому логичен переход к немного более сложной эвристике — так называемому "implicit pivoting" .

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

Улучшение найденного ответа

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

В связи с этим, полученный алгоритмом Гаусса-Жордана ответ можно улучшить, применив к нему какой-либо простой численный метод — например, метод простой итерации.

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

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

Литература

  • William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery. Numerical Recipes: The Art of Scientific Computing
  • Anthony Ralston, Philip Rabinowitz. A first course in numerical analysis

Будут и задачи для самостоятельного решения, к которым можно посмотреть ответы.

Понятие метода Гаусса

Чтобы сразу же понять суть метода Гаусса, остановите ненадолго взгляд на анимации ниже. Почему одни буквы постепенно исчезают, другие окрашиваются в зелёный цвет, то есть становятся известными, а числа сменяются другими числами? Подсказка: из последнего уравнения совершенно точно известно, чему равна переменная z .

Догадались? В такой системе, называемой трапециевидной, последнее уравнение содержит только одну переменную и её значение можно однозначно найти. Затем значение этой переменной подставляют в предыдущее уравнение (обратный ход метода Гаусса , далее - просто обратный ход), из которого находят предыдущую переменную, и так далее.

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

В трапециевидной (треугольной) системе, как видим, третье уравнение уже не содержит переменных y и x , а второе уравнение - переменной x .

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

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

Преимущества метода:

  1. при решении систем линейных уравнений с числом уравнений и неизвестных более трёх метод Гаусса не такой громоздкий, как метод Крамера , поскольку при решении методом Гаусса необходимо меньше вычислений;
  2. методом Гаусса можно решать неопределённые системы линейных уравнений, то есть, имеющие общее решение (и мы разберём их на этом уроке), а, используя метод Крамера, можно лишь констатировать, что система неопределённа;
  3. можно решать системы линейных уравнений, в которых число неизвестных не равно числу уравнений (также разберём их на этом уроке);
  4. метод основан на элементарных (школьных) методах - методе подстановки неизвестных и методе сложения уравнений, которых мы коснулись в соответствующей статье.

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

Пример 1. Решить систему линейных уравнений, применяя обратный ход:

Решение. В данной трапециевидной системе переменная z однозначно находится из третьего уравнения. Подставляем её значение во второе уравнение и получаем значение переменой y :

Теперь нам известны значения уже двух переменных - z и y . Подставляем их в первое уравнение и получаем значение переменной x :

Из предыдущих шагов выписываем решение системы уравнений:

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

Элементарные преобразования системы линейных уравнений

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

На анимации выше показано, как система уравнений постепенно превращается в трапециевидную. То есть такую, которую вы видели на самой первой анимации и сами убедились в том, что из неё просто найти значения всех неизвестных. О том, как выполнить такое превращение и, конечно, примеры, пойдёт речь далее.

При решении систем линейных уравнений с любым числом уравнений и неизвестных в системе уравнений и в расширенной матрице системы можно :

  1. переставлять местами строки (это и было упомянуто в самом начале этой статьи);
  2. если в результате других преобразований появились равные или пропорциональные строки, их можно удалить, кроме одной;
  3. удалять "нулевые" строки, где все коэффициенты равны нулю;
  4. любую строку умножать или делить на некоторое число;
  5. к любой строке прибавлять другую строку, умноженное на некоторое число.

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

Алгоритм и примеры решения методом Гаусса системы линейных уравнений с квадратной матрицей системы

Рассмотрим сначала решение систем линейных уравений, в которых число неизвестных равно числу уравнений. Матрица такой системы - квадратная, то есть в ней число строк равно числу столбцов.

Пример 2. Решить методом Гаусса систему линейных уравнений

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

Для упрощения внешнего вида решения составим расширенную матрицу системы :

В этой матрице слева до вертикальной черты расположены коэффициенты при неизвестных, а справа после вертикальной черты - свободные члены.

Для удобства деления коэффициентов при переменных (чтобы получить деление на единицу) переставим местами первую и вторую строки матрицы системы . Получим систему, эквивалентную данной, так как в системе линейных уравнений можно переставлять местами уравнения:

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

Это возможно, так как

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

В результате получим матрицу эквивалентную данной системе новой системы уравнений, в которой все уравнения, начиная со второго не содержат переменнную x :

Для упрощения второй строки полученной системы умножим её на и получим вновь матрицу системы уравнений, эквивалентной данной системе:

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

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

В результате вновь получим матрицу системы, эквивалентной данной системе линейных уравнений:

Мы получили эквивалентную данной трапециевидную систему линейных уравнений:

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

Решение найдём "с конца" - обратный ход . Для этого из последнего уравнения определим z :
.
Подставив это значение в предшествующее уравнение, найдём y :

Из первого уравнения найдём x :

Ответ: решение данной системы уравнений - .

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

Решить систему линейных уравнений методом Гаусса самостоятельно, а затем посмотреть решение

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

Пример 4. Решить систему линейных уравнений методом Гаусса:

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

Проведём теперь собственно исключение переменной из третьего и четвёртого уравнений. Для этого к третьей строке прибавим вторую, умноженную на , а к четвёртой - вторую, умноженную на .

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

Получили систему уравнений, которой эквивалентна заданная система:

Следовательно, полученная и данная системы являются совместными и определёнными. Окончательное решение находим «с конца». Из четвёртого уравнения непосредственно можем выразить значение переменной "икс четвёртое":

Это значение подставляем в третье уравнение системы и получаем

,

,

Наконец, подстановка значений

В первое уравнение даёт

,

откуда находим "икс первое":

Ответ: данная система уравнений имеет единственное решение .

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

Решение методом Гаусса прикладных задач на примере задачи на сплавы

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

Пример 5. Три куска сплава имеют общую массу 150 кг. Первый сплав содержит 60% меди, второй - 30%, третий - 10%. При этом во втором и третьем сплавах вместе взятых меди на 28,4 кг меньше, чем в первом сплаве, а в третьем сплаве меди на 6,2 кг меньше, чем во втором. Найти массу каждого куска сплава.

Решение. Составляем систему линейных уравнений:

Умножаем второе и третье уравнения на 10, получаем эквивалентную систему линейных уравнений:

Составляем расширенную матрицу системы:

Внимание, прямой ход. Путём сложения (в нашем случае - вычитания) одной строки, умноженной на число (применяем два раза) с расширенной матрицей системы происходят следующие преобразования:

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

Применяем обратный ход. Находим решение с конца. Видим, что .

Из второго уравнения находим

Из третьего уравнения -

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

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

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

С помощью метода Гаусса можно установить, совместна или несовместна любая система n линейных уравнений с n переменными.

Метод Гаусса и системы линейных уравнений, имеющие бесконечное множество решений

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

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

Если во всех уравнениях имеющих вид

Свободные члены равны нулю, то это означает, что система неопределённа, то есть имеет бесконечное множество решений, а уравнения этого вида – «лишние» и их исключаем из системы.

Пример 6.

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

Теперь вторую строку прибавим к третьей и четвёртой.

В результате приходим к системе

Последние два уравнения превратились в уравнения вида . Эти уравнения удовлетворяются при любых значениях неизвестных и их можно отбросить.

Чтобы удовлетворить второму уравнению, мы можем для и выбрать произвольные значения , тогда значение для определится уже однозначно: . Из первого уравнения значение для также находится однозначно: .

Как заданная, так и последняя системы совместны, но неопределённы, и формулы

при произвольных и дают нам все решения заданной системы.

Метод Гаусса и системы линейных уравнений, не имеющие решений

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

Как уже говорилось в связи с первым примером, после выполнения преобразований в расширенной матрице системы могли появиться строки вида

соответствующие уравнению вида

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

Пример 7. Решить методом Гаусса систему линейных уравнений:

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

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

Для исключения из третьего и четвёртого уравнения к третьей строке прибавим вторую, умноженную на , а к четвёртой - вторую, умноженную на .

Теперь с помощью третьего уравнения исключим переменную из четвёртого уравнения. Для этого к четвёртой строке прибавим третью, умноженную на .

Заданная система эквивалентна, таким образом, следующей:

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

Загрузка...