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

Метод Гаусса - класичний метод розв'язання системи лінійних алгебраїчних рівнянь (СЛАР). Розглянемо систему лінійних рівнянь з дійсними постійними коефіцієнтами:
або в матричної формі
Метод Гаусса рішення системи лінійних рівнянь включає в себе 2 стадії:
- послідовне (пряме) виключення;
- зворотна підстановка.
послідовне виключення
Винятки Гаусса засновані на ідеї послідовного виключення змінних по одній до тих пір, поки не залишиться тільки одне рівняння з однією змінною в лівій частині. Потім це рівняння вирішується щодо єдиної змінної. Таким чином, систему рівнянь призводять до трикутної (ступінчастою) формі. Для цього серед елементів першого стовпця матриці вибирають ненульовий (а частіше максимальний) елемент і переміщують його на крайнє верхнє положення перестановкою рядків. Потім нормують всі рівняння, розділивши його на коефіцієнт ai1. де i - номер стовпчика.

Потім віднімають вийшла після перестановки перший рядок з інших рядків:

Отримують нову систему рівнянь, в якій замінені відповідні коефіцієнти.
Після того, як зазначені перетворення були здійснені, перший рядок і перший стовпець подумки викреслюють і продовжують вказаний процес для всіх наступних рівнянь поки не залишиться рівняння з однією невідомою:
Зворотній підстановка
Зворотній підстановка передбачає підстановку отриманого на попередньому кроці значення змінної xn в попередні рівняння:

Ця процедура повторюється для всіх, хто лишився рішень:

ілюструє приклад
Нехай дана система рівнянь
або в матричної формі
Вибираємо рядок з максимальним коефіцієнтом ai1 і міняємо її з першої.
Нормуємо рівняння щодо коефіцієнта при x1:

Віднімаємо 1 рівняння з 2 і 3:
Вибираємо рядок з найбільшим коефіцієнтом при ai2 (рівняння 1 не розглядається) і переміщаємо її на місце 2.
Нормуємо 2 і 3 рівняння щодо коефіцієнта при x2
Віднімаємо рівняння 2 з 3
Нормуємо рівняння 3 щодо коефіцієнта при x3
Звідки отримуємо x3 = 2. Підставляємо отримане значення в рівняння 2 і 1 отримуємо
Підставляючи отримане значення x2 = 5 в рівняння 1, знайдемо
Таким чином, рішенням системи рівнянь буде вектор
Реалізація на C ++