
- •Министерство образования и науки Российской Федерации
- •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.2.6 Метод сопряженных градентов
В случае если матрица А симметрична, то очевидно что метод BiCG более простой вид. Метод, который получается за счет упрощений вносимых симметричностью, называется методом сопряженных градиентов (CG). Следует заметить, что метод бисопряженных градиентов исторически появился как обобщение CG на несимметричный случай.
Далее приведен алгоритм метода сопряженных градиентов.
Алгоритм метода CG
Если необходимо построить матрицу предобусловливателя M |
Выбрать начальное приближение x(0) |
Вычислить r(0) = b – A x(0) |
Для i = 1, 2,…до сходимости или до Nitmax |
Найти z(i–1) из системы M z(i–1) = r(i–1) |
i–1 = (r(i–1), z(i–1)) |
Если i = 1 |
p(1) = z(0) |
Иначе |
i–1 = i–1 / i–2 |
p(i) = z(i–1) + i–1 p(i–1) |
q(i) = A p(i) |
i = i–1 / (p(i), q(i)) |
x(i) = x(i–1) + i p(i) |
r(i) = r(i–1) – i q(i) |
Если ||r||2 / ||r(0)||2 tol |
то КОНЕЦ (x(i) – полученное решение) |
увеличить i |