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

Назовем элементарными операциями следующие действия с матрицами:
  1. перестановка строк;
  2. умножение строки на число, отличное от нуля;
  3. сложение строки с другой строкой, умноженной на число.

Отметим, что при решении системы уравнений, в отличие от вычисления определителя и нахождения ранга, нельзя оперировать со столбцами.
Читатель легко проверит, что если по матрице, полученной из выполнением элементарной операции, восстановить систему уравнений, то новая система будет равносильна исходной.
Цель алгоритма -- с помощью применения последовательности элементарных операций к матрице добиться, чтобы каждая строка, кроме, быть может, первой, начиналась с нулей, и число нулей до первого ненулевого элемента в каждой следующей строке было больше, чем в предыдущей.
Шаг алгоритма заключается в следующем. Находим первый ненулевой столбец в матрице . Пусть это будет столбец с номером i. Находим в нем ненулевой элемент и строку с этим элементом меняем местами с первой строкой. Чтобы не нагромождать дополнительных обозначений, будем считать, что такая смена строк в матрице
уже произведена, то есть . Тогда ко второй строке прибавим первую, умноженную на число , к третьей строке прибавим первую, умноженную на число , и т.д. В результате получим матрицу

(Первые нулевые столбцы, как правило, отсутствуют.)
Если в матрице встретилась строка с номером k, в которой все элементы равны нулю, а , то выполнение алгоритма останавливаем и делаем вывод, что система несовместна. Действительно, восстанавливая систему уравнений по расширенной матрице, получим, что k-ое уравнение будет иметь вид

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

где

По отношению к матрице выполняем описанный шаг алгоритма. Получаем матрицу

где , . Эту матрицу снова можно записать в виде

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

Далее выполняется так называемый обратный ход метода Гаусса. По матрице составляем систему уравнений. В левой части оставляем неизвестные с номерами, соответствующими первым ненулевым элементам в каждой строке, то есть . Заметим, что . Остальные неизвестные переносим в правую часть. Считая неизвестные в правой части некоторыми фиксированными величинами, несложно выразить через них неизвестные левой части.
Теперь, придавая неизвестным в правой части произвольные значения и вычисляя значения переменных левой части, мы будем находить различные решения исходной системы . Чтобы записать общее решение, нужно неизвестные в правой части обозначить в каком-либо порядке буквами , включая и те неизвестные, которые явно не выписаны в правой части из-за нулевых коэффициентов, и тогда столбец неизвестных можно записать в виде столбца, где каждый элемент будет линейной комбинацией произвольных величин (в частности, просто произвольной величиной ). Эта запись и будет общим решением системы.
Если система была однородной, то получим общее решение однородной системы. Коэффициенты при , взятые в каждом элементе столбца общего решения, составят первое решение из фундаментальной системы решений, коэффициенты при -- второе решение и т.д.
Фундаментальную систему решений однородной системы можно получить и другим способом. Для этого одному переменному, перенесенному в правую часть, нужно присвоить значение 1, а остальным -- нули. Вычислив значения переменных в левой части, получим одно решение из фундаментальной системы. Присвоив другому переменному в правой части значение 1, а остальным -- нули, получим второе решение из фундаментальной системы и т.д.