
- •Глава 6. Численные методы алгебры. Решение систем лИнейных уравнений
- •6.1. Линейные уравнения. Теоретическое и практическое решения линейных уравнений с одним неизвестным
- •6.2. Системы линейных уравнений. Основные понятия
- •6.3. Необходимое и достаточное условие существования решения системы линейных уравнений. Методы решения
- •6.4. Прямые методы решения систем линейных уравнений. Метод с использованием обратной матрицы и метод Крамера
- •6.5. Прямые методы решения систем линейных уравнений с исключением неизвестных. Метод Гаусса
- •6.5.1.Метод Гаусса.
- •6.6. Метод Гаусса-Жордана решения систем линейных уравнений
- •6.7.Решение систем линейных уравнений с использованием lu-разложения матрицы системы
- •6.7.1. Идея использования lu-разложения и алгоритм прямого метода расчета
- •6.7.2. Критерии существования lu-разложения. Трудоемкость и сложность его алгоритма
- •6.7.3. Решение системы линейных уравнений с использованием результатов lu-разложения ее матрицы.
- •6.8. Алгоритм расчета определителей с использованием исключения неизвестных
6.6. Метод Гаусса-Жордана решения систем линейных уравнений
Данный метод является модификацией метода исключения. Он также имеет прямой и обратный ходы.
Задачей прямого хода является выяснение существования решения системы и при положительном ответе - приведение ее матрицы к верхнему треугольному виду с единичной диагональю. Для этого на прямом ходе для всех значений i (i = 1,…,n) производится обработка элементов аij (j = i,…,n) ведущей строки i и соответствующего элемента bi вектораB, а также обнуление элементов ведущего столбца i под главной диагональю. Вначале проверяют для диагонального элемента условие аii = 0.
Если равенство выполняется, заменяют всю строку i расширенной матрицы на нижележащую k (k > i), у которой элемент столбца i не равен нулю: аki 0. В том случае, если такой строки нет, то в рассматриваемой подматрице системы путем эквивалентных преобразований получен нулевой столбец, следовательно, ее определитель равен нулю и у нее и у всей исходной системы не существует единственного решения. Для уменьшения погрешности расчетов желательно при обмене выбирать такую нижележащую строку k (k > i), у которой элемент аki столбца i имеет максимальный модуль.
Если диагональный элемент аii 0, то все элементы строки i расширенной матрицы делятся на него. После такого преобразования элемент на главной диагонали аii будет равен 1. Обнуление элементов столбца i под главной диагональю производится аналогично методу Гаусса - к каждой нижележащей строке k (k > i),прибавляется строка i расширенной матрицы, все элементы которой умножены на коэффициент (-аki).
Задачей обратного хода является приведение матрицы системы к диагональному виду. Он выполняется аналогично методу Гаусса. Поскольку перестановок неизвестных не производится и во всех строках уже выполнено деление на диагональный элемент, то решение исходной системы уравнений равно свободному вектору расширенной системы, полученной в результате обратного хода.
Пример 1. Применить метод Гаусса-Жордана для решения той же системы уравнений, что и в примере 1.
Решение. Расширенная матрица системы Ap имеет тот же вид.
Прямой ход.
1. Обработка строки 1. Так как а11= 4 0, то все элементы строки 1 расширенной матрицы делятся на него. Полученная матрица обозначена Ap1. Для обнуления элементов столбца 1 под главной диагональю вторую строку расширенной матрицы складываем с первой, умноженной на коэффициент (-а21) = 5; третью складываем с первой, умноженной на коэффициент (-а31) = 6. В результате получим новый вид расширенной матрицы Ap1:
2. Обработка строки 2. Диагональный элемент а22= 3/4 0, все элементы строки 2 расширенной матрицы делим на него. Полученная матрица обозначена Ap2. Для обнуления элементов столбца 3 под главной диагональю третью строку расширенной матрицы складываем со второй, умноженной на коэффициент (-а32) = (-1/2). В результате получим новый вид расширенной матрицы Ap2:
3. Обработка строки 3. Диагональный элемент а33= -28/3 0, все элементы строки 3 делим на него. Поскольку прямой ход завершен, матрицу обозначим Aпр:
Обратный ход. Выполняется аналогично методу Гаусса. В итоге в свободном векторе полученной матрицы Aобр сразу получим искомое решение:
Ответ: х1= 2; х2=1; х3=-1.
Алгоритм метода Гаусса-Жордана несколько упрощен по сравнению с методом Гаусса. В нем исключен поиск главного элемента ведущей строки и смена мест переменных, при которой меняются местами столбцы в матрице системы и необходимо запоминать их порядок в специальном векторе. Однако пересылки элементов выполняются быстро, а операция сравнения все равно используется при проверке элементов на главной диагонали. Отказ от поиска максимального элемента в ведущем столбце может привести к увеличению погрешностей расчетов при делении элементов расширенной строки на малый элемент.
При обнулении элементов в столбце i под главной диагональю для каждой нижележащей строки k (k > i) одно деление сокращается (исключен расчет коэффициента (-аki/аii)). При этом устраняется (n-i) делений, однако столько же делений затрачивается на преобразование элементов строки i расширенной матрицы, лежащих правее главной диагонали.
Также устранены деления при расчете коэффициентов для обнуления элементов ведущих столбцов над главной диагональю и в конце обратного хода, а также перестановки неизвестных в соответствии с вектором порядка Р.
Выполненный анализ показывает, что трудоемкость метода Гаусса-Жордана примерно совпадает с трудоемкостью метода Гаусса. Сложности их алгоритмов одинаковы.
Вопросы для проверки знаний.
1. Каким образом в методе Гаусса-Жордана обеспечивается ненулевая величина диагонального элемента ведущей строки ?
2. В чем отличие матрицы, получаемой после прямого хода в методе Гаусса-Жордана от аналогичной матрицы в методе Гаусса ?
3. Почему в свободном векторе расширенной матрицы системы после обратного хода сразу получают решение системы ?
Практическое задание.
1. Решить методом Гаусса-Жордана систему линейных уравнений: