
- •Министерство образования и науки Российской Федерации
- •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.3 Выбор структуры разреженности
Поскольку предобусловливание является способом уменьшения количества арифметических операций при итерационном решении СЛАУ, за счет улучшения сходимости, следовательно, выбор структуры (портрета) разреженности матрицы предобусловливания является одной из важнейших практических задач. Одной из простейших стратегий является выбор заранее известной структуры (структурная предфильтрация), например, ленточной или блочно-диагональной т.е. элементы матрицы М совпадают с ленточной (блочно-диагональной) частью матрицы А, и равны нулю вне данной структуры. Данная предфильтрация характеризуется шириной ленты (k) (размером блока). Другой более часто используемой стратегией является динамическое определение структуры разреженности, основанное на некотором пороге (алгебраическая предфильтрация). Алгебраическая предфильтрация заключается в нахождении определенного порога, с помощью которого происходит отбрасывание (обнуление) малозначащих элементов путем сравнения модуля каждого элемента со значением полученного порога.
Упомянутый порог обнуления, в свою очередь, может быть получен многими способами. В данной версии системы реализована следующие стратегии
mij = 0, если |aij| < i = ||ai*||2 . , |
|
которая основана на построчном нахождении евклидовой нормы строки далее умножением полученного значения на значение задаваемой точности обнуления () получим, собственно, значение порога (i) для определения элементов матрицы М соответствующей строки. Далее следует перейти к следующей строке и осуществить вышеописанные действия, для текущей строки. Процесс закончится, когда все строки будут обработаны подобным образом. Таким образом, при таком подходе, порог обнуления является своим для каждой строки. Также реализовано еще два подхода. Первый способ аналогичен вышеописанному, только вместо строк обрабатываются столбцы матрицы
mij = 0, если |aij| < j = ||a*j||2 . . |
|
Второй способ является более глобальным, поскольку порог обнуления, при таком подходе, является одним для всех элементов матрицы, т.е. первоначально вычисляется, евклидова норма матрицы далее, как и ранее умножением полученного значения на значение задаваемой точности получим искомый порог обнуления (e).
2.4 Методы Крыловского типа
Ранее был построен класс проекционных методов, основой которых служит условие Петрова-Галеркина (2.13) и формула (2.16). Далее были приведены примеры построения нескольких методов для достаточно простого случая одномерных подпространств K и L. Однако выбор m=1, как правило, дает медленную сходимость, и соответствующие методы оказываются пригодными лишь для СЛАУ небольшой размерности. В настоящее время широкое распространение получили проекционные методы, которые в качестве K используют описанные ранее подпространства Крылова размерности больше единицы. Такие методы называются методами крыловского типа.
2.4.1 Метод обобщенных минимальных невязок
Пусть пространства K и L связаны соотношением L=AK, причем в качестве K используется подпространство Крылова Km(1,A) с выбором 1=r0/, =||r0||2. Для построения ортонормированного базиса воспользуемся ортогонализацией Арнольди. Вместо проектирования (2.16) рассмотрим эквивалентную задачу минимизации функционала (x)=||rx||22 на пространстве K. Так как любой вектор x из пространства (x0+Km) может быть записан в виде
x=x0+Vmy, |
где y вектор размера m. Таким образом, задачу минимизации функционала можно переписать как
ym=argminy ||b–A(x0+Vmy)||22. |
Вычислительная схема, построенная с использованием таких предпосылок, называется методом обобщенных минимальных невязок (GMRES).
С использованием определения вектора 1 и соотношений (2.30), (2.32) имеем
r=b–A(x0+Vmy)=Vm+1( e1– y). |
Поскольку матрица Vm+1 составлена из ортонормированных столбцов, справедливо равенство
(y)=(x0+Vmy)=|| e1– y||22. |
(2.47) |
Таким образом, для нахождения коэффициентов линейного комбинирования векторов {i} в GMRES необходимо решить СЛАУ
|
(2.48) |
которая
является переопределенной (так как
матрица
имеет размерность (m+1)m).
Матрица системы (2.48) имеет верхнюю хессенбергову форму. Поэтому (2.48) проще всего решать с помощью предварительного приведения к верхнетреугольному виду; последняя строка при этом обнуляется. С учетом хессенберговой формы наиболее простым вариантом оказываются вращения Гивенса. Всего необходимо m таких вращений G1, G2,…,Gm, причем Gk строится так, чтобы его применение к (hkk,hk+1,k)T обнуляло второй компонент этого вектора.
Структура матриц G1 и G2 имеет вид
|
|
Числа s и c связаны соотношением s2+c2=1 (это позволяет их интерпретировать как синус и косинус некоторого угла) и определяются как:
|
Очевидно, что при программной реализации нет необходимости в непосредственном хранении матриц вращения Gi, так как каждая такая матрица полностью определяется двумя числами – косинусом и синусом угла поворота – и индексами компонент вектора, к которым применяется вращение.
Основной проблемой в GMRES является выбор размерности m пространства K; хранение базисных векторов этого пространства определяет основные затраты памяти при программной реализации метода, составляющие mN чисел. Наиболее распространенной модификацией GMRES является перезапускаемый GMRES или GMRES(m). Выбирается некоторая размерность m<N, определяемая, по существу, лишь доступным объемом памяти, и после обновления решения x=x0+Vmym оно принимается за новое начальное приближение, после чего процесс повторяется.
Далее приведен алгоритм предобусловленного метода GMRES(m) с вращениями Гивенса.
Алгоритм метода GMRES(m) с вращениями Гивенса
Если необходимо построить матрицу предобусловливателя M |
Выбрать m < N и произвольное начальное приближение x(0) |
z = b – A x(0) |
=||z||2 |
Найти r(0) из системы M r(0) =z |
= ||r(0)||2 |
Создать ((m + 1) m) - матрицу H |
Создать вектор (m + 1) - вектор q |
Для Nit =1, 2, … до сходимости или до Nitmax |
H = 0; q = e1 |
1= r(0)/ |
Для i=1,…,m |
z=A(i) |
Найти w из системы Mw=z |
Для k=1,…,i |
hki=(w, (k)) |
w=w–hki(k) |
увеличить k |
hi+1,i=||w||2 |
(i+1)=w/hi+1,i |
Для k=1,…,i–1 |
(h1i,…, hi+1,i)T=Gk(h1i,…, hi+1,i)T |
увеличить k |
Построить Gi так, что [Gih,i]i+1=0 |
q=Giq |
увеличить i |
Решить треугольную СЛАУ H1:p,1:py=q1:p |
|
z=b–Ax(0) |
Найти r0 из системы Mr0=z |
=||r(0)||2 |
Продолжать пока / tol |
Алгоритм начинается с того, что требуется задать произвольное начальное условие x(0) (третий параметр метода). Итерационный процесс продолжается до тех пор, пока не будет получено решение, с точностью определяемое параметром tol (четвертый параметр) или при достижении максимального числа итераций Nitmax (пятый параметр). Также необходимо, чтобы пользователь определил размерности m (шестой параметр). В случае необходимости использовать метод без предобусловливани необходимо инициализировать седьмой параметр нулем. В противном случае необходимо задать:
- 10 в случае использования метода с предобусловливанием, основанном на LU-разложении с выбором структуры разреженности, основанном на норме строки;
- 11 в случае использования метода с предобусловливанием, основанном на LU-разложении с выбором структуры разреженности, основанном на норме столбца;
- 12 в случае использования метода с предобусловливанием, основанном на LU-разложении с выбором структуры разреженности, основанном на норме матрицы;
-20 в случае использования метода с предобусловливанием, основанном на ILU(0) разложении с выбором структуры разреженности, основанном на норме строки;
- 21 в случае использования метода с предобусловливанием, основанном на ILU(0) разложении с выбором структуры разреженности, основанном на норме столбца;
-22 в случае использования метода с предобусловливанием, основанном на ILU(0) разложении с выбором структуры разреженности, основанном на норме матрицы.
Также для использования метода с предобусловливанием необходимо задать точность обнуления () определяемую восьмым параметром.
Пример использования метода GMRES(m) с вращениями Гивенса в системе TALGAT:
- действительный случай: SET "solve" GMRES_r real_m right_r 0. 1.e-8 150 15 10 1.e-4;
- комплексный случай: SET "solve" GMRES complex_m right_c 0. 1.e-8 150 15 10 1.e-4.