Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В численной линейной алгебре метод двусопряженной градиентной стабилизации , часто обозначаемый аббревиатурой BiCGSTAB , представляет собой итерационный метод, разработанный HA van der Vorst для численного решения несимметричных линейных систем . Это вариант метода двусопряженных градиентов (BiCG), который имеет более быструю и плавную сходимость, чем исходный BiCG, а также другие варианты, такие как метод квадрата сопряженных градиентов (CGS). Это метод подпространств Крылова .

Алгоритмические шаги [ править ]

Безусловный BiCGSTAB [ править ]

Чтобы решить линейную систему Ax = b , BiCGSTAB начинает с первоначального предположения x 0 и действует следующим образом:

  1. r 0 = b - Ax 0
  2. Выберем произвольный вектор 0 такой, что ( 0 , r 0 ) ≠ 0 , например, 0 = r 0 . ( x , y ) обозначает скалярное произведение векторов ( x , y ) = x T y
  3. ρ 0 = α = ω 0 = 1
  4. v 0 = p 0 = 0
  5. Для i = 1, 2, 3,…
    1. ρ i = ( 0 , r i −1 )
    2. β = ( ρ i / ρ i −1 ) ( α / ω i −1 )
    3. p i = r i −1 + β ( p i −1 - ω i −1 v i −1 )
    4. v i = Ap i
    5. α = ρ i / ( 0 , v i )
    6. h = x i −1 + α p i
    7. Если h достаточно точное, установите x i = h и выйдите
    8. s = r i −1 - α v i
    9. t = Как
    10. ω i = ( t , s ) / ( t , t )
    11. x i = h + ω i s
    12. Если x i достаточно точен, то выйти
    13. r i = s - ω i t

Предварительно подготовленный BiCGSTAB [ править ]

Предобуславливатели обычно используются для ускорения сходимости итерационных методов. Чтобы решить линейную систему Ax = b с предварительным условием K = K 1 K 2A , предварительное кондиционирование BiCGSTAB начинается с исходного предположения x 0 и выполняется следующим образом:

  1. r 0 = b - Ax 0
  2. Выберем произвольный вектор 0 такой, что ( 0 , r 0 ) ≠ 0 , например, 0 = r 0
  3. ρ 0 = α = ω 0 = 1
  4. v 0 = p 0 = 0
  5. Для i = 1, 2, 3,…
    1. ρ i = ( 0 , r i −1 )
    2. β = ( ρ i / ρ i −1 ) ( α / ω i −1 )
    3. p i = r i −1 + β ( p i −1 - ω i −1 v i −1 )
    4. у = К −1
      2
       
      п я
    5. v i = Ay
    6. α = ρ i / ( 0 , v i )
    7. h = x i −1 + α y
    8. Если h достаточно точно, то x i = h и выйти
    9. s = r i −1 - α v i
    10. z = K −1
      2
       
      s
    11. t = Az
    12. ω i = ( K −1
      1
       
      т , К −1
      1
       
      с ) / ( К −1
      1
       
      т , К −1
      1
       
      т )
    13. х я = h + ω я z
    14. Если x i достаточно точен, выйдите
    15. r i = s - ω i t

Эта формулировка эквивалентна применению безусловного BiCGSTAB к явно предварительно подготовленной системе.

Ãx̃ =

с Ã = K −1
1
 
А К −1
2
 
, = K 2 x и = K −1
1
 
б
. Другими словами, с этой формулировкой возможны как левое, так и правое предварительное кондиционирование.

Вывод [ править ]

BiCG в полиномиальной форме [ править ]

В BiCG направления поиска p i и i и остатки r i и i обновляются с использованием следующих рекуррентных соотношений :

р я = г я -1 + β я п я -1 ,
i =i −1 + β i i −1 ,
r i = r i −1 - α i Ap i ,
i =i −1 - α i A T i .

Константы α i и β i выбраны равными

α i = ρ i / ( i , Ap i ) ,
β i = ρ i / ρ i −1

где ρ i = ( i −1 , r i −1 ), так что остатки и направления поиска удовлетворяют биортогональности и двусопряженности соответственно, т. е. для ij ,

( i , r j ) = 0 ,
( i , Ap j ) = 0 .

Несложно показать, что

r i = P i ( A ) r 0 ,
i = P i ( A T ) 0 ,
р я +1 знак равно Т я ( А ) г 0 ,
i +1 знак равно T i ( A T ) 0

где Р я ( ) и Т я ( ) являются I - й степени-многочлены A . Эти многочлены удовлетворяют следующим рекуррентным соотношениям:

P i ( A ) = P i −1 ( A ) - α i A T i −1 ( A ) ,
Т я ( А ) = Р я ( А ) + β я +1 Т я -1 ( А ) .

Получение BiCGSTAB от BiCG [ править ]

Нет необходимости явно отслеживать остатки и направления поиска BiCG. Другими словами, итерации BiCG могут выполняться неявно. В BiCGSTAB желательно иметь рекуррентные соотношения для

i = Q i ( A ) P i ( A ) r 0

где Q i ( A ) = ( I - ω 1 A ) ( I - ω 2 A ) ⋯ ( I - ω i A ) с подходящими константами ω j вместо r i = P i ( A ) в надежде, что Q i ( A ) обеспечит более быструю и плавную сходимость по i, чем по r i .

Из рекуррентных соотношений для P i ( A ) и T i ( A ) и определения Q i ( A ) следует, что

Q i ( A ) P i ( A ) r 0 = ( I - ω i A ) ( Q i −1 ( A ) P i −1 ( A ) r 0 - α i A Q i −1 ( A ) T i −1 ( A ) r 0 ) ,

что влечет за собой необходимость рекуррентного соотношения для Q i ( A ) T i ( A ) r 0 . Это также может быть получено из отношений BiCG:

Q i ( A ) T i ( A ) r 0 = Q i ( A ) P i ( A ) r 0 + β i +1 ( I - ω i A ) Q i −1 ( A ) P i −1 ( A ) г 0 .

Аналогично определению i , BiCGSTAB определяет

я +1 знак равно Q я ( А ) Т я ( А ) г 0 .

Записанные в векторной форме рекуррентные соотношения для i и i имеют вид

i =i −1 + β i ( I - ω i −1 A )i −1 ,
i = ( I - ω i A ) (i −1 - α i A i ).

Чтобы вывести рекуррентное соотношение для x i , определим

s i =i −1 - α i A i .

Тогда рекуррентное соотношение для i можно записать как

i =i −1 - α i A i - ω i As i ,

что соответствует

х я знак равно х я -1 + α я п ̃ я + ω я с я .

Определение констант BiCGSTAB [ править ]

Теперь осталось определить константы BiCG α i и β i и выбрать подходящий ω i .

В BiCG β i = ρ i / ρ i −1 с

ρ i = ( i −1 , r i −1 ) = ( P i −1 ( A T ) 0 , P i −1 ( A ) r 0 ) .

Поскольку BiCGSTAB явно не отслеживает i или r i , ρ i не вычисляется сразу по этой формуле. Однако это может быть связано со скалярным

ρ̃ i = ( Q i −1 ( A T ) 0 , P i −1 ( A ) r 0 ) = ( 0 , Q i −1 ( A ) P i −1 ( A ) r 0 ) = ( 0 , r i −1 ) .

Благодаря биортогональности, г я -1 = Р я -1 ( ) г 0 ортогонален U я -2 ( Т ) Г 0 , где U я -2 ( Т ) является любой многочлен степени я - 2 в А T . Следовательно, только члены высшего порядка P i −1 ( A T ) и Q i −1 ( AT ) имеют значение в скалярных произведениях ( P i −1 ( A T ) 0 , P i −1 ( A ) r 0 ) и ( Q i −1 ( A T ) 0 , P i −1 ( A ) r 0 ) . Старшие коэффициенты P i −1 ( A T ) и Q i−1 ( A T ) равны (−1) i −1 α 1 α 2α i −1 и (−1) i −1 ω 1 ω 2ω i −1 соответственно. Следует, что

ρ i = ( α 1 / ω 1 ) ( α 2 / ω 2 ) ⋯ ( α i −1 / ω i −1 ) ρ̃ i ,

и поэтому

β i = ρ i / ρ i −1 = ( ρ̃ i / ρ̃ i −1 ) ( α i −1 / ω i −1 ) .

Аналогичным образом может быть получена простая формула для α i . В BiCG,

α i = ρ i / ( i , Ap i ) = ( P i −1 ( A T ) 0 , P i −1 ( A ) r 0 ) / ( T i −1 ( A T ) 0 , A T i −1 ( A ) r 0 ) .

Как и в случае выше, только члены высшего порядка P i -1 ( A T ) и T i -1 ( A T ) имеют значение в скалярных произведениях благодаря биортогональности и двусопряженности. Бывает, что P i −1 ( A T ) и T i −1 ( A T ) имеют одинаковый старший коэффициент. Таким образом, их можно заменить одновременно на Q i −1 ( A T ) в формуле, что приводит к

α i = ( Q i −1 ( A T ) 0 , P i −1 ( A ) r 0 ) / ( Q i −1 ( A T ) 0 , A T i −1 ( A ) r 0 ) = ρ̃ i / ( 0 , A Q i −1 ( A ) T i −1 (А ) r 0 ) = ρ̃ i / ( 0 , Ap̃ i ).

Наконец, BiCGSTAB выбирает ω i, чтобы минимизировать i = ( I - ω i A ) s i в 2- норме как функцию от ω i . Это достигается, когда

(( I - ω i A ) s i , As i ) = 0 ,

давая оптимальное значение

ω i = ( As i , s i ) / ( As i , As i ) .

Обобщение [ править ]

BiCGSTAB можно рассматривать как комбинацию BiCG и GMRES, где за каждым шагом BiCG следует шаг GMRES ( 1 ) (т.е. GMRES перезапускается на каждом шаге) для исправления нерегулярного поведения конвергенции CGS, в качестве улучшения которого был разработан BiCGSTAB . Однако из-за использования полиномов минимальной остаточной степени один такое исправление может быть неэффективным, если матрица A имеет большие комплексные собственные пары. В таких случаях BiCGSTAB, вероятно, будет стагнировать, что подтверждается численными экспериментами.

Можно ожидать, что минимальные остаточные многочлены более высокой степени могут лучше справиться с этой ситуацией. Это дает начало алгоритмам, включая BiCGSTAB2 [1] и более общий BiCGSTAB ( l ) [2] . В BiCGSTAB ( l ) шаг GMRES ( l ) следует за каждыми l шагами BiCG. BiCGSTAB2 эквивалентен BiCGSTAB ( l ) с l = 2 .

См. Также [ править ]

Ссылки [ править ]

  • Ван дер Ворст, HA (1992). «Bi-CGSTAB: быстрый и плавно сходящийся вариант Bi-CG для решения несимметричных линейных систем». SIAM J. Sci. Стат. Comput. 13 (2): 631–644. DOI : 10.1137 / 0913035 . hdl : 10338.dmlcz / 104566 .
  • Саад, Ю. (2003). «§7.4.2 BICGSTAB» . Итерационные методы для разреженных линейных систем (2-е изд.). СИАМ. С.  231–234 . DOI : 10.2277 / 0898715342 . ISBN 978-0-89871-534-7.
  • ^ Гуткнехт, MH (1993). «Варианты BICGSTAB для матриц с комплексным спектром». SIAM J. Sci. Comput. 14 (5): 1020–1033. DOI : 10.1137 / 0914062 .
  • ^ Sleijpen, GLG; Фоккема, Д.Р. (ноябрь 1993 г.). «BiCGstab ( l ) для линейных уравнений, включающих несимметричные матрицы со сложным спектром» (PDF) . Электронные транзакции по численному анализу . Кент, Огайо: Государственный университет Кента. 1 : 11–32. ISSN 1068-9613 . Архивировано из оригинального (PDF) 06.06.2011 . Проверено 7 февраля 2010 .