Метод Гаусса для решения системы линейных уравнений состоит в приведении матрицы А посредством эквивалентных преобразований к треугольному виду и последующему поиску решений для вновь полученной матрицы. Краткая схема метода Гаусса состоит в следующем.
- Движение по главной диагонали матрицы А. В цикле по переменной I от 1 до N выполняются Шаг 2 - Шаг 8.
- Выбор главного элемента. Полагается R:=A[I, I]. Если R=0, то реализуется процедура поиска главного элемента.
- Преобразование текущей строки матрицы путем деления всех значений ее элементов на главный элемент. В цикле по переменной J от I до N выполняются вычисления A[I, J]:= A[I, J] / R.
- Преобразование правой части системы - вектора b. b[I]:= b[I] / R.
- Вычитание текущей строки из всех ниже расположенных строк с занулением I - ого элемента в каждой из них. В цикле по K от I + 1 до N выполняются Шаг 6 - Шаг 8.
- Полагается R:= A[K, I].
- Вычитание из очередной строки текущей строки. В цикле по J от I до N делаем A[K, J]:= A[K, J] - A[I, J]* R.
- Корректировка правой части системы - вектора b. b[K]:= b[K] - b[I]*R.
- Поиск, начиная с последнего, всех неизвестных системы - элементов вектора x. В цикле по переменной I от N до 1 выполняются Шаг 2 - Шаг 3.
- Задается начальное значение элемента x[I]. x[I]:= b[I] .
- Корректируется искомое значение x[I]. В цикле по J от I+1 до N (в случае, когда I=N, этот шаг не выполняется) производятся вычисления x[I]:= x[I] - x[J]* A[I, J].
go build ./main.go && ./main -a="[[3,-9,3],[2,-4,4],[1,8,-18]]" -b="[-18,-10,35]"
Ответ: 1, 2, -1