Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие_методы решения СЛАУ.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
799.74 Кб
Скачать

2.3.1 Предобусловливание основанное на классических методах

Ранее было показано, что методы Якоби и Гаусса-Зейделя, а также SOR и SSOR могут быть представлены в виде (2.8). Другой формой этого выражения является

xk+1=Gxk+f,

(2.44)

которое получается из (2.14) домножением левой и правой частей на K–1. Проведя аналогию с (2.1) и (2.2), нетрудно увидеть, что (2.44) можно рассматривать как итерационную схему, построенную для решения СЛАУ

(IG)x=f,

(2.45)

в которой

f=K–1b;

G=K–1R=K–1(KA)=IK–1A.

Таким образом, система (2.51) эквивалентна системе

K–1Ax=K–1b,

т.е. предобусловленной СЛАУ (2.1) с матрицей предобусловливания K. Для методов Якоби, Гаусса-Зейделя, SOR и SSOR эти матрицы соответственно, равны (K заменено на M):

MJ=D;

MGS=DE;

MSOR (D–E);

MSSOR (D–E)D–1(D–F).

Скалярные множители и при практических реализациях SOR и SSOR-предобусловливания обычно не учитываются, так как дают лишь масштабирование, практически не влияющие на скорость сходимости.

При =1 получается симметричный метод Гаусса-Зейделя (SGS)

MSGS=(DE)D–1(DF).

Заметив, что (DE) соответствует нижнетреугольной части матрицы A, а (DF) верхнетреугольной части, то

MSGS=LU,

где

L=(DE)D–1=IED–1, U=DF.

Таким образом для решения систем вида w=MSGS–1x необходимо последовательно решить

(IED–1)z=x,

(DF)w=z.

2.3.2 Неполное lu-разложение

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

Для систем с разреженными матрицами хорошим предобусловливанием является неполное LU-разложение. Данное разложение заключается в представлении матрицы в виде

M=LU+R,

(2.46)

где L и U как и прежде нижне- и верхнетреугольные матрицы, соответственно, а матрица R является матрицей ошибки. Тогда приближенное представление  LU называется неполным LU-разложением матрицы M или коротко её ILU-разложением. Как хорошо известно, в результате реализации стандартного LU-разложения на месте исходной матрицы находится результат разложения, т.е. матрицы L и U, одна из которых имеет единичную диагональ.

Наиболее простым вариантом является ILU(0) разложение. Оно заключается в применении LU-разложения к матрице M, но если mij = 0, то полагается lij = 0 или uij = 0. Поскольку в рассматриваемой задаче матрица M плотная, то применение ILU(0) не целесообразно, без предварительного процесса разрежевания.

С учетом вышесказанного представление матрицы предобусловливания в виде удобном для использования итерационного метода с неявным преобусловливанием ( LU) требует осуществления двух этапов. На первом этапе определяется структура разреженности матрицы М (путем предфильтрации матрицы А), т.е. mij = aij, если пара индексов (i, j) соответствует предписанной структуре и mij = 0 в противном случае (данный этап более подробно рассмотрен ниже). На втором этапе производится собственно само ILU-разложение, в частности ILU(0).

Алгоритм ILU(0) разложения

Для i=1,…N

w=ai*

Для k=1,…i–1 и wk0

wk=wk/ukk

Для j=k+1,…N

w=w–wkuk*

Увеличить j

Увеличить k

lij=wj, для j=1,…i-1

uij=wj, для j=i,…N

Увеличить i

Очевидно, что построенная таким образом матрица LU удовлетворяет всем требованиям к матрице предобусловливателя. Действительно, она близка к матрице A; она легко вычислима по приведенному выше не сложному алгоритму; наконец, она легко обратима, так как является произведением двух треугольных матриц. Таким образом, выбор M=LU является достаточно хорошим способом предобусловливания.

В данной версии системы реализовано нахождение матрицы предобусловливания как с помощью ILU(0), так и с помощью стандартного LU-разложения.