Метод сопряжённых градиентов (СЛАУ)

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Другие значения

Сравнение методов градиентного спуска(зеленый) и метода сопряженных градиентов для n=2

Метод сопряженных градиентов — численный метод решения систем линейных алгебраических уравнений, является итерационным методом Крыловского типа.

Постановка задачи

Пусть дана система линейных уравнений: Ax=b. Причём матрица системы — это действительная матрица, обладающая следующими свойствами: A=AT>0, то есть это симметричная положительно определённая матрица. Тогда процесс решения СЛАУ можно представить как минимизацию следующего функционала:

(Ax,x)2(b,x)min

За (,) обозначено скалярное произведение. Минимизируя данный функционал, используя подпространства Крылова, получаем алгоритм метода сопряженных градиентов.

Алгоритм

Подготовка перед итерационным процессом
  1. Выберем начальное приближение x0
  2. r0=bAx0
  3. z0=r0
k-я итерация метода[1]
  1. αk=(rk1,rk1)(Azk1,zk1)
  2. xk=xk1+αkzk1
  3. rk=rk1αkAzk1
  4. βk=(rk,rk)(rk1,rk1)
  5. zk=rk+βkzk1
Критерий остановки

Поскольку минимизируемый функционал квадратичный, то процесс должен дать ответ на n-й итерации, однако при реализации метода на компьютере существует погрешность представления вещественных чисел, в результате чего может потребоваться и больше итераций. Так же оценивать точность можно по относительной невязке ||rk||||b||, и прекращать итерационный процесс, когда невязка станет меньше заданного числа.

Алгоритм для предобусловленной системы

Пусть предобусловленная система имеет вид: SAQx=Sb, тогда алгоритм метода для такой системы можно записать следующим образом:

Подготовка перед итерационным процессом
  1. Выберем начальное приближение x0
  2. r0=Q(bSAx0)
  3. z0=r0
  4. x~0=Qx0
k-я итерация метода
  1. αk=(rk1,rk1)(SAQzk1,zk1)
  2. x~k=x~k1+αkzk1
  3. rk=rk1αkSAQzk1
  4. βk=(rk,rk)(rk1,rk1)
  5. zk=rk+βkzk1
После итерационного процесса
  1. x*=Q1x~m, где x* — приближенное решение системы, m — общее число итераций метода.
Критерий остановки

В данном случае можно использовать те же критерии остановки, что и для обычной системы, только с учётом предобуславливания. Например относительная невязка станет вычисляться как: ||r~k||||Sb||, однако можно пользоваться и невязкой исходной системы, которая вычисляется следующим образом: ||rk||||b||=||Q1r~k||||b||

Особенности и обобщения

Как и все методы на подпространствах Крылова, метод сопряженных градиентов от матрицы требует только возможность умножать её на вектор, что приводит к возможности использовать специальные форматы хранения матрицы(такие, как разреженный) и сэкономить память на хранении матрицы.
Метод часто используется для решения конечноэлементых СЛАУ.
У метода есть обобщения: метод бисопряженных градиентов, для работы с несимметричными матрицами. И комплексный метод сопряженных градиентов, где матрица A может содержать комплексные числа, но должна удовлетворять условию: A=A*>0, то есть быть самосопряженной-положительно определённой матрицей.

Примечания

Шаблон:Примечания

Шаблон:Методы решения СЛАУ