А) Метод Гаусса для решения систем линейных уравнений
Пусть требуется решить систему п линейных алгебраических уравнений с п неизвестными:
(3.9)
Прямой ходметода Гаусса преобразует систему (3.9) к треугольному виду исключением соответствующих неизвестных. Пусть a11 ¹ 0 . Первый шаг заключается в исключении переменной x1с помощью первого уравнения из остальных уравнений. Разделим первое уравнение на a11:
; . (3.10)
Затем от второго уравнения вычтем первое уравнение, умноженное на a21. В результате, на месте второго уравнения получим уравнение, не содержащее х1. Чтобы исключить х1 из третьего уравнения, вычтем из первое уравнение, умноженное на a31. Аналогично исключаем х1из четвертого и последующих уравнений. Для исключения х1из i-го уравнения (i = 2, 3, ... , п)применим формулы
; . (3.11)
В результате этих вычислений получим систему вида
(3.12)
На втором шаге исключаем переменную х2с помощью второго уравнения из третьего и последующих уравнений. Предположим, что ¹ 0. Разделим второе уравнение на :
; . (3.13)
Затем в системе (3.12) с помощью второй строки исключим
х2 из i-го уравнения (i = 3, 4, ... , n), применяя формулы:
; . (3.14)
Система (3.12) преобразуется к следующему виду:
(3.15)
1. В общем случае на шаге т для т = 1, 2,..., n - 1,
делим сначала т-е уравнение на :
; , (3.16)
а затем исключаем переменную xm c помощью m-го уравнения из i-го, где
i = m +1,..., n:
; . (3.17)
Здесь предполагается, что на каждом шаге выполняется условие ¹ 0.
В результате (n - 1)-го шага система (3.9) приобретает вид
(3.18)
2.Обратный ход метода Гауссавычисляет неизвестные xiв обратном порядке. Из последнего уравнения в (3.18) находим
хп =(3.19)
Неизвестные xiопределяем по следующим формулам:
xi =i = n - 1,n - 2,..., 1.(3.20)
Метод Гаусса предполагает, что на т-мшаге выполняется условие ¹ 0. Если это условие не выполняется, то алгоритм перестанет работать, так как столкнется с делением на 0. Кроме этого, в случае выполнения условия ¹ 0, может возникнуть ситуация, когда ведущий элемент близок к нулю, что также может привести к неприятностям в виде больших погрешностей.
Чтобы избежать этих трудностей, применяют метод Гаусса с выбором главного элемента.Одним из вариантов этого метода является метод Гаусса с выбором главного элемента по столбцам.В качестве ведущего элемента на каждом шаге выбирают наибольший по модулю элемент столбца и переставляют соответствующую строку с другой строкой так, чтобы найденный элемент стал диагональным, затем исключают соответствующую переменную. Так как при этих перестановках переменные в уравнениях остаются на своих местах, решение преобразованной системы совпадает с решением исходной системы уравнений.
Метод Гаусса с выбором главного элемента по столбцамотличается от алгоритма (3.16) – (3.20) только тем, что перед преобразованием (3.16) нужно выполнить поиск максимального по модулю элемента в т-мстолбце и переставить строки системы уравнений так, чтобы максимальный элемент стал диагональным элементом матрицы коэффициентов.
б) Алгоритм метода Гаусса свыбором главного элемента
1. Для т = 1, 2, ... , п - 1 выполним преобразования: Найдем максимальный по абсолютной величине элемент в т-м столбце. Пусть это будет элемент aim.Если i ¹ т, то меняем местами i-ю и т-юстроки:
r =, = , = r , j = 1, ... , п;
r = bi, bi = bт, bт= r.
Элементы матрицы и вектора-столбца свободных членов после преобразования на т-м шаге обозначим , , причем = , = bi.
Делим т-е уравнение на ведущий элемент :
; ,
затем исключаем переменную хтс помощью m-го уравнения из i-го, где
i = т + 1,..., п:
; .
2.Вычисляем неизвестные xiв обратном порядке:
хп =; xi =i = n - 1,n - 2,..., 1.
Приведенный вариант метода Гаусса дает решение и тогда, когда обычный метод Гаусса перестает работать из-за деления на 0.
При реализации метода Гаусса на каком-либо языке программирования удобно использовать исходные матрицу a и вектор bдля хранения промежуточных результатов преобразований. Приведенные формулы преобразований записываются как операторы присваивания, т. е. имена переменных aijи bi записываются без верхних индексов.
В методеГаусса с выбором главного элемента по строкамна каждом шаге выбирают наибольший по модулю элемент строки и переставляют столбцы так, чтобы ведущий элемент находился на диагонали. В этом варианте в уравнениях неизвестные переменные меняются местами и в алгоритме необходимо думать о том, чтобы запомнить эти перестановки.
В общем случае метода Гаусса с выбором главного элемента на шаге т ищется максимальный по модулю элемент во всей матрице коэффициентов и производится перестановка строк и столбцов так, чтобы этот элемент стал диагональным.
Отметим, что последний вариант с выбором главного элемента считается лучшим.
Общее число операций для решения системы уравнений методом Гаусса составляет приблизительно 2n3/3 + 2n2, при этом большая часть, т. е. 2п3/3, операций приходится на прямой ход.