Метод Гаусса для решения систем линейных алгебраических уравнений
Рассмотрим систему линейных алгебраических уравнений
где – вектор неизвестных; – вектор свободных членов; , – невырожденная матрица размерами . В силу невырожденности матрицы для однородной системы уравнений с вектором правых частей имеем единственное тривиальное решение . Для неоднородной системы имеем единственное решение , где – матрица, обратная . Алгоритм метода исключения неизвестных был изобретен в 3 веке до нашей эры, хотя и носит имя Гаусса. Идея алгоритма состоит в приведении СЛАУ к эквивалентной ей системе с треугольной матрицей (прямой ход исключения), а затем к нахождению неизвестных последовательными подстановками (обратный ход). Данный метод требует числа арифметических операций порядка . Он используется для решения СЛАУ с размерностью . Объединим матрицу и вектор в расширенную матрицу. размерами , которая содержит всю известную информацию о системе (3.1). Опишем вначале прямой ход, первый шаг которого состоит в обнулении всех элементов первого столбца матрицы , кроме того, что находится в первой строке. Введем обозначение . C матрицей можно обращаться так же, как с исходной системой (3.1), например, осуществлять элементарные преобразования. В качестве последних будем использовать перестановки строк, прибавление к элементам данной строки элементов какой-либо другой строки, умноженных на одно и то же число. Найдем ненулевой элемент в первом столбце матрицы . Такой элемент найдется всегда ибо, в противном случае, весь первый столбец состоит из нулей и матрица – вырожденная. Пусть , тогда поменяем местами строки номера и . Если , то, естественно, перестановка не требуется. Затем вычтем из каждой строки номера первую строку, умноженную на число , где
. В результате все элементы -й строки изменят свои значения и станут равными
Здесь мы предполагаем, что хотя перестановка строк и могла состояться, однако нумерация элементов матрицы осталась прежней. Введем обозначения
С учетом введенных обозначений (3.2) и (3.3) матрица преобразуется к матрице и станет равной
Тот же алгоритм может быть применен на втором шаге к матрице, которая получается из , если убрать в ней первую строку и первый столбец. Применение этого алгоритма раз приводит к матрице : В матрице полученные нули располагаются в столбцах с номерами от до ниже диагонали. Эти нули сохраняются во время следующих шагов алгоритма. В результате применения алгоритма раз система (3.1), в конечном счете, преобразуется в систему вида
где – верхняя (правая) треугольная матрица, т.е.
Значения неизвестных можно вычислить из (3.6) по формулам
Процесс приведения системы (3.1) к треугольному виду (3.6) называется прямым ходом, а нахождение неизвестных по формулам (3.7) называется обратным ходом. Произведем подсчет числа арифметических операций в методе Гаусса. Число арифметических операций, необходимое для реализации прямого хода в методе Гаусса для решения систем уравнений порядка , равно
При обратном ходе
Из формул (3.8) и (3.9) получаем оценку общего числа арифметических действий: . Если имеется систем вида (3.1) с одинаковыми матрицами и разными правыми частями ,то целесообразно прямой ход осуществлять для всех систем одновременно, для чего следует вместо одной правой части, задаваемой вектором-столбцом, производить операции над правыми частями (матрицей порядка ). Количество арифметических операций, необходимое для реализации прямого метода Гаусса с учетом (3.8) и (3.9), есть
. Количество арифметических операций, необходимое для реализации обратных ходов (для систем) методом Гаусса, есть . Откуда следует, что общее количество арифметических операций, необходимое для реализации систем с разными правыми частями, равно . Алгоритм LU-разложения Данный алгоритм можно рассматривать как конкретную форму метода Гаусса. Алгоритм LU-разложения используется не только для решения СЛАУ, но и также для обращения матрицы, т.е. вычисления матрицы, обратной данной. Пусть и будем искать представление в виде
где и – соответственно нижняя и верхняя треугольные матрицы вида . Известно, что если все угловые миноры матрицы отличны от нуля, т.е. то разложение вида (3.10) существует и единственно. Для того чтобы получить расчётные формулы, поступим следующим образом. Обозначим произведение -ой строки матрицы на -й столбец матрицы , причём будем считать вначале, что . Тогда . Выразим из последней формулы :
Как это принято, будем считать в формуле (3.11) и далее, что сумма вида равна нулю, если значение верхней границы индекса суммирования меньше нижней границы. В случае имеем Учитывая, что , и выражая из последнего соотношения , получаем:
Наконец, при получаем откуда, с учетом того, что , приходим к формуле
Итак, расчетные формулы (3.11) – (3.13) получены. Для того чтобы при их применении не использовались неизвестные (не вычисленные) величины, необходимо выбрать соответствующий порядок вычисления элементов матриц и . Например, можно рекомендовать порядок расчета элементов матриц и , схематически изображенный на рис. 3.1. На нем цифры слева для матрицы и сверху – для матрицы означают, что на первом шаге рассчитывается по формуле (3.12), затем вычисляется элемент по формуле (3.11). Далее (3 шаг) определяются элементы второй строки матрицы в порядке, указанном стрелкой: и (по формулам (3.13) и (3.12) соответственно). На 4 шаге выполняется расчет элементов 3 столбца матрицы в порядке, обозначенном стрелкой: (формулы (3.11)) и т.д. Рис. 3.1. Порядок расчета элементов матриц и
Рассмотрим теперь применение LU-разложения для решения СЛАУ вида , где . Введем вспомогательный вектор :
Тогда исходную систему можно записать так
В силу формул (3.14) и (3.15) решение исходной СЛАУ сводится к последовательному решению систем (3.15) и (3.14) соответственно с верхней и нижней треугольной матрицами. Метод прогонки Метод прогонки представляет собой вариант метода Гаусса, примененный к специальным системам линейных алгебраических уравнений и учитывающий ленточную структуру матрицы системы. Пусть имеем СЛАУ со специальной трехдиагональной формой матрицы:
или в матричной форме: , где – вектор неизвестных; – вектор правых частей; – квадратная матрица: Системы вида (3.16) возникают при конечно-разностной аппроксимации краевых задач математической физики, описываемых обыкновенными дифференциальными уравнениями второго порядка с постоянными и переменными коэффициентами, а также уравнениями в частных производных. Ставится задача разработать экономичные методы решения задач вида (3.16), число арифметических операций для которых пропорционально числу неизвестных. Таким методом для системы (3.16) является метод прогонки. Специфика матрицы состоит в расположении ненулевых элементов, матрица – разреженная матрица, из элементов которой ненулевыми являются не более элементов. Это позволяет получить для решения СЛАУ простые расчетные формулы. Будем искать решение (3.16) в виде
с неопределенными коэффициентами . Выражение подставим в (3.16): , c учетом (3.17) имеем . Это равенство имеет место для любых , если , . Отсюда получаем рекуррентные формулы для определения :
Коэффициенты , называются прогоночными. Если коэффициенты и известны, а также известно , то, двигаясь справа налево (от к ) последовательно определяем все . Задача нахождения по формулам (3.18), (3.19) решается слева направо (от к ). Начальные значения прогоночных коэффициентов можно определить следующим образом. Полагаем в формуле (3.17) , имеем , а из первого уравнения (3.16) , откуда
Значение определяется следующим образом. Полагаем в формуле (3.17) , имеем , а из последнего уравнения (3.18) –
, откуда
Расчетные формулы (3.17) – (3.21) можно получить также из (3.16), если применить метод исключения Гаусса. Прямой ход метода заключается в том, что на первом шаге из всех уравнений системы (3.16) при помощи первого уравнения исключается , затем из преобразованных уравнений для при помощи уравнения, соответствующего , исключается и т.д. В результате получим одно уравнение относительно . На этом прямой ход метода прогонки заканчивается. На обратном ходе для находятся . Порядок счета в методе прогонки следующий: 1) исходя из значений , вычисленных по формулам (3.20), все остальные коэффициенты для определяются последовательно по формулам (3.18) и (3.19); 2) исходя из значения , рассчитанного по формуле (3.21), все остальные неизвестные , определяются последовательно по формуле (3.17). Изложенный метод поэтому называется правой прогонкой. Аналогично выводятся формулы левой прогонки:
Здесь находятся последовательно для значений ; ход вычислений – слева направо. В случае, если необходимо найти только одно неизвестное, например, () или группу идущих подряд неизвестных, целесообразно комбинировать правую и левую прогонки. При этом получается метод встречных прогонок. Произведем подсчет числа арифметических действий для метода правой прогонки. Анализ формул (3.17)-(3.21) показывает, что общее число арифметических операций есть . Коэффициенты не зависят от правой части СЛАУ (3.16) и определяются только элементами матрицы . Поэтому, если требуется решить серию задач (3.16) с различными правыми частями, то прогоночные коэффициенты вычисляются только для первой серии. Для каждой последующей серии задач определяются только коэффициенты и решение , причем используются ранее найденные . На решение первой из серии задач расходуется операций, а на решение каждой следующей задачи – операций. Число арифметических операций, необходимое для решения СЛАУ (3.16) методом левой прогонки и методом встречных прогонок, такое же, т.е. . Метод правой прогонки будем называть корректным, если при . Решение находится по рекуррентной формуле (3.17). Эта формула может порождать накопление ошибок округления результатов арифметических операций. Пусть прогоночные коэффициенты и найдены точно, а при вычислении допущена ошибка , т.е. . При вычислениях с помощью формулы (3.17) мы получаем
Вычитая из (3.25) значение yi по формуле (3.17), имеем для погрешности с заданным . Отсюда ясно, что если по модулю больше единицы и если достаточно велико, то вычисленное значение будет значительно отличаться от искомого решения . В этом случае говорят, что алгоритм прогонки неустойчив.
Определение. Алгоритм прогонки называется устойчивым, если . Условия корректности и устойчивости алгоритма правой прогонки определяются следующей теоремой. Теорема. Пусть коэффициенты системы (3.16) действительны и удовлетворяют условиям: , , , , , , ;
причем хотя бы в одном из неравенств (3.26) и (3.27) выполняется строгое неравенство, т.е. матрица А имеет диагональное преобладание. Тогда для алгоритма (3.17) – (3.21) имеют место неравенства: , , т.е. алгоритм метода правой прогонки корректен и устойчив. Условия (3.26) и (3.27) теоремы обеспечивают также корректность и устойчивость алгоритмов левой и встречных прогонок. Эти условия сохраняются и для случая системы (3.16) с комплексными коэффициентами . Легко показать, что при выполнении условий (3.26) – (3.27) теоремы система (3.16) имеет единственное решение при любой правой части.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|