Численное решение систем линейных алгебраических уравнений
2.4.2. Модификация метода Гаусса для случая линейных систем с трехдиагональными матрицами — метод прогонки
В приложениях часто возникают системы линейных уравнений с матрицами специального вида. В дальнейшем, например, при интерполяции функции сплайнами, при решении задачи Штурма-Лиувилля, при численном решении уравнений теплопроводности, уравнений Лапласа и Пуассона придется иметь дело с системами, матрицы которых имеют ненулевые элементы лишь на главной диагонали и еще на двух диагоналях — одной под главной, одной над главной. Такие матрицы называются трехдиагональными. Для решения систем с трехдиагональными матрицами существует экономичный (требующий малого количества памяти и арифметических действий) вариант метода Гаусса — прогонка. В англоязычной литературе метод прогонки называется алгоритмом Томаса. Подробнее о свойствах метода прогонки речь пойдет в "Численное решение краевых задач для систем обыкновенных дифференциальных уравнений" в связи с решением разностными методами задачи Штурма-Лиувилля.
2.4.3. LU-разложение
Среди прямых методов численного решения СЛАУ широко используется также LU-разложение матрицы и метод Холецкого (или метод квадратного корня).
Если матрица представима в виде произведений матриц , то СЛАУ может быть представлена в виде
( 2.13) |
Перепишем (2.13), вводя вспомогательный вектор , в следующем виде
( 2.14) |
Решение СЛАУ свелось к последовательному решению двух систем с треугольными матрицами. Первый этап решения системы :
откуда можно вычислить все vk последовательно по формулам
Далее рассмотрим систему или
решение которой находится в обратном порядке, т.е. при k = n - 1, ..., 1 по очевидным формулам Условия существования такого разложения даются следующей теоремой [2.5] (без доказательства).
Теорема. Если все главные миноры квадратной матрицы отличны от нуля, то существуют единственные нижняя и верхняя треугольные матрицы и такие, что При этом все диагональные коэффициенты матрицы фиксированы и равны единице.
Опишем алгоритм нахождения элементов lijdij матриц Выписав равенство в компонентах, получим
Выполнив умножение матриц, приходим к системе линейных уравнений размером n x n:
относительно неизвестных d11, d12, ..., d1n, l21, d22, ..., d2n, ln1, ln2, ..., dnn.
Специфика этой системы позволяет решить ее последовательно. Из первой строки находим d1j= a1j(j = 1, ..., n).
Из уравнений, входящих в первый столбец приведенной выше системы, находим li1= ai1/d11, i = 1, ...dots, n. Теперь можно из уравнений второй строки найти d2j= a2j- l21d1j, j = 2, ..., n, а из уравнений, входящих во второй столбец, получим и так далее. Последним вычисляется элемент
Можно выписать общий вид этих формул:
Приведение матриц к треугольному виду аналогично приведению матрицы в методе Гаусса и также требует количества арифметических действий порядка O(n3), точнее,
2.4.4. Метод Холецкого (метод квадратного корня)
Пусть матрица рассматриваемой линейной системы — симметричная, т.е. aij = aji, положительная матрица. Тогда она представима в виде , где
Далее, как и в случае LU-разложения, решение СЛАУ сводится к последовательному решению двух линейных систем с треугольными матрицами , , для решения которых требуется примерно 2n2 арифметических действий.
Первая из этих линейных систем
она легко решается. Для решения получаем очевидные формулы
Вторая система уравнений есть
l11u1 + l12u2 + ... + l1nun = v1 , l22u2 + ... + l2nun = v2, ... lnnun = vn.
Из нее находим значения переменных ui в обратном порядке по формуле
Определенной опасностью при реализации этого метода являются возможная близость к нулю lii и отрицательность подкоренных выражений при вычислении lii (последнего не должно быть при симметричной положительной матрице )
Элементы матрицы находим из уравнения , приравнивая соответствующие элементы матриц и В результате получим систему уравнений
Решение этой системы легко находится:
Метод также называется методом квадратного корня.
Внимание! Не следует путать матрицу (оператор) с оператором — квадратным корнем из самосопряженного положительного оператора.