
- •Министерство образования и науки Российской Федерации
- •1. Прямые (точные) методы
- •1.1 Метод исключения Гаусса
- •1.3 Решение слау с помощью lu-разложения матриц
- •1.4 Обращение матриц
- •1.5 Метод исключения Жордана (Гаусса – Жордана)
- •1.6 Контроль точности и уточнение приближенного решения в рамках прямого метода
- •1.7 Вычислительные затраты прямых методов
- •2. Итерационные методы
- •2.1 Классические итерационные методы и релаксация
- •2.1.1 Методы Якоби и Гаусса-Зейделя
- •2.1.2 Ускорение сходимости релаксационных методов
- •2.2 Проекционные методы и подпространства Крылова
- •2.2.1 Общий подход к построению проекционных методов
- •2.2.2 Случай одномерных подпространств k и l
- •2.2.3 Два выбора подпространств
- •2.2.4 Подпространства Крылова
- •2.2.5 Базис подпространства Крылова. Ортогонализация Арнольди
- •2.2.5 Биортогонализация Ланцоша
- •2.3 Предобусловливание
- •2.3.1 Предобусловливание основанное на классических методах
- •2.3.2 Неполное lu-разложение
- •2.3.3 Выбор структуры разреженности
- •2.4 Методы Крыловского типа
- •2.4.1 Метод обобщенных минимальных невязок
- •2.4.2 Метод бисопряженных градиентов
- •2.4.3 Стабилизированный метод бисопряженных градиентов
- •2.4.4 Метод квази-минимальных невязок
- •2.2.5 Квадратичный метод сопряженных градиентов
- •2.2.6 Метод сопряженных градентов
2.3.1 Предобусловливание основанное на классических методах
Ранее было показано, что методы Якоби и Гаусса-Зейделя, а также SOR и SSOR могут быть представлены в виде (2.8). Другой формой этого выражения является
xk+1=Gxk+f, |
(2.44) |
которое получается из (2.14) домножением левой и правой частей на K–1. Проведя аналогию с (2.1) и (2.2), нетрудно увидеть, что (2.44) можно рассматривать как итерационную схему, построенную для решения СЛАУ
(I–G)x=f, |
(2.45) |
в которой
f=K–1b; G=K–1R=K–1(K–A)=I–K–1A. |
Таким образом, система (2.51) эквивалентна системе
K–1Ax=K–1b, |
т.е. предобусловленной СЛАУ (2.1) с матрицей предобусловливания K. Для методов Якоби, Гаусса-Зейделя, SOR и SSOR эти матрицы соответственно, равны (K заменено на M):
MJ=D; |
MGS=D–E; |
MSOR |
MSSOR |
Скалярные
множители
и
при практических реализациях SOR
и SSOR-предобусловливания
обычно не учитываются, так как дают лишь
масштабирование, практически не влияющие
на скорость сходимости.
При =1 получается симметричный метод Гаусса-Зейделя (SGS)
MSGS=(D–E)D–1(D–F). |
Заметив, что (D–E) соответствует нижнетреугольной части матрицы A, а (D–F) верхнетреугольной части, то
MSGS=LU, |
где
L=(D–E)D–1=I–ED–1, U=D–F. |
Таким образом для решения систем вида w=MSGS–1x необходимо последовательно решить
(I–ED–1)z=x, (D–F)w=z. |
2.3.2 Неполное lu-разложение
Исторически предобусловливание, как собственно и итерационные методы вообще, использовалось для решения разреженных СЛАУ большой размерности. Поэтому использование предобусловливания для решения СЛАУ с плотными матрицами необходимо использовать с некоторыми добавлениями о которых речь пойдет позже.
Для систем с разреженными матрицами хорошим предобусловливанием является неполное LU-разложение. Данное разложение заключается в представлении матрицы в виде
M=LU+R, |
(2.46) |
где L и U как и прежде нижне- и верхнетреугольные матрицы, соответственно, а матрица R является матрицей ошибки. Тогда приближенное представление M LU называется неполным LU-разложением матрицы M или коротко её ILU-разложением. Как хорошо известно, в результате реализации стандартного LU-разложения на месте исходной матрицы находится результат разложения, т.е. матрицы L и U, одна из которых имеет единичную диагональ.
Наиболее простым вариантом является ILU(0) разложение. Оно заключается в применении LU-разложения к матрице M, но если mij = 0, то полагается lij = 0 или uij = 0. Поскольку в рассматриваемой задаче матрица M плотная, то применение ILU(0) не целесообразно, без предварительного процесса разрежевания.
С учетом вышесказанного представление матрицы предобусловливания в виде удобном для использования итерационного метода с неявным преобусловливанием (M LU) требует осуществления двух этапов. На первом этапе определяется структура разреженности матрицы М (путем предфильтрации матрицы А), т.е. mij = aij, если пара индексов (i, j) соответствует предписанной структуре и mij = 0 в противном случае (данный этап более подробно рассмотрен ниже). На втором этапе производится собственно само ILU-разложение, в частности ILU(0).
Алгоритм ILU(0) разложения
Для i=1,…N |
w=ai* |
Для k=1,…i–1 и wk0 |
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-разложения.