Проблема заполнения разреженной матрицы системы при исключениях

Понятие разреженной матрицы

Разреженной называется матрица, большинство элементов которой – нули. Например,

Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .

Матрицы такого вида возникают, например, при решении дифференциальных уравнений с частными производными конечно-разностными и конечно-элементными методами, с которыми мы ознакомимся в последующих лекциях. Кроме того, существенная часть линейных систем, возникающих в научных и инженерных рассчетах, имеют симметричные положительно определенные разреженные матрицы.

Для разреженных матриц большого размера возникает вопрос: можно ли не хранить нулевые элементы матрицы, а ненулевые хранить в какой-либо специальной структуре данных или генерировать по мере их необходимости? В общем случае ответ на этот вопрос зависит от конкретики той задачи, в которой фигурирует разреженная матрица, и от выбора алгоритма решения рассматриваемой задачи.

Проблема заполнения разреженной матрицы системы при исключениях

Пусть рассматривается задача о решении неоднородной СЛАУ

Проблема заполнения разреженной матрицы системы при исключениях - student2.ru ,

где Проблема заполнения разреженной матрицы системы при исключениях - student2.ru матрица системы Проблема заполнения разреженной матрицы системы при исключениях - student2.ru является разреженной симметричной и положительно определенной. В силу симметричности и положительной определенности Проблема заполнения разреженной матрицы системы при исключениях - student2.ru рассматривую систему имеет смысл решать методом Холесского (см.лекцию 7). Для простоты изложения рассмотрим простой пример.

Пусть требуется решить СЛАУ

Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .

Матрица системы Проблема заполнения разреженной матрицы системы при исключениях - student2.ru разреженная, симметричная, положительно определенная. Построим для нее симметричное разложение:

Проблема заполнения разреженной матрицы системы при исключениях - student2.ru Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .

При проведении симметричного разложения, мы получим:

Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .

Решая систему Проблема заполнения разреженной матрицы системы при исключениях - student2.ru , получаем Проблема заполнения разреженной матрицы системы при исключениях - student2.ru . Затем, решая систему Проблема заполнения разреженной матрицы системы при исключениях - student2.ru находим Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .

Этот пример иллюстрирует очень важный факт, относящийся к применению метода Холесского для системы с разреженной матрицей Проблема заполнения разреженной матрицы системы при исключениях - student2.ru : матрица обычно претерпевает заполнение. Это означает, что Проблема заполнения разреженной матрицы системы при исключениях - student2.ru имеет ненулевые элементы в позициях, где в нижней треугольной части Проблема заполнения разреженной матрицы системы при исключениях - student2.ru стояли нули. Это приводит к тому, что при хранении разреженной матрицы Проблема заполнения разреженной матрицы системы при исключениях - student2.ru ее нули также прийдется хранить, т.к. в процессе исключения эти нули станут ненулевыми элементами и внесут свой вклад при решении СЛАУ.

Предположим теперь, что мы перенумеровали переменные в соответствии с правилом: Проблема заполнения разреженной матрицы системы при исключениях - student2.ru , и переупорядочили уравнения так, чтобы последнее стало первым, второе снизу - вторым сверху и т.д., пока, наконец, бывшее первое уравнение не станет последним. Мы получим СЛАУ, эквивалентную данной:

Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .

Проведенная перенумерация неизвестных и переупорядочение уравнений равносильны симметричной перестановке строк и столбцов матрицы Проблема заполнения разреженной матрицы системы при исключениях - student2.ru (симметричная перестановка строк и столбцов означает: если в матрице Проблема заполнения разреженной матрицы системы при исключениях - student2.ru меняются местами Проблема заполнения разреженной матрицы системы при исключениях - student2.ru -ая и Проблема заполнения разреженной матрицы системы при исключениях - student2.ru -ая строки, то меняются местами также Проблема заполнения разреженной матрицы системы при исключениях - student2.ru -ый и Проблема заполнения разреженной матрицы системы при исключениях - student2.ru -ый столбец. В матричном виде симметричная перестановка будет означать умножение матрицы Проблема заполнения разреженной матрицы системы при исключениях - student2.ru на соответствующую матрицу перестановки справа и слева), причем та же перестановка применяется и к Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .Эту новую систему обозначим Проблема заполнения разреженной матрицы системы при исключениях - student2.ru . Применяя к ней метод Холесского, разложим матрицу Проблема заполнения разреженной матрицы системы при исключениях - student2.ru , где нижний треугольный множитель будет иметь вид:

Проблема заполнения разреженной матрицы системы при исключениях - student2.ru .

Решая системы Проблема заполнения разреженной матрицы системы при исключениях - student2.ru и Проблема заполнения разреженной матрицы системы при исключениях - student2.ru , получим решение Проблема заполнения разреженной матрицы системы при исключениях - student2.ru , которое есть лишь переупорядоченная форма Проблема заполнения разреженной матрицы системы при исключениях - student2.ru . Важнейший момент состоит в том, что переупорядочение уравнений и переменных привело к треугольному множителю Проблема заполнения разреженной матрицы системы при исключениях - student2.ru , который разрежен в точности в той мере, что и нижний треугольник Проблема заполнения разреженной матрицы системы при исключениях - student2.ru . В этом случае нулевые элементы Проблема заполнения разреженной матрицы системы при исключениях - student2.ru можно не хранить, т.к. они останутся нулями и после исключения и не внесут никакого вклада в решение треугольных систем, полученных после проведения разложения Холесского.

Хотя на практике редко удается достигнуть столь полного успеха, для большинства задач с разреженными матрицами разумное упорядочение строк и столбцов матрицы коэффициентов может дать огромное сокращение заполнения и, следовательно, экономию машинного времени и памяти (при условии, что разреженность используется).

Наши рекомендации