WikiDer > Метод двусопряженной градиентной стабилизации

Biconjugate gradient stabilized method

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

Алгоритмические шаги

Без предварительной подготовки BiCGSTAB

Решить линейную систему Топор = б, BiCGSTAB начинается с первоначального предположения Икс0 и происходит следующее:

  1. р0 = бТопор0
  2. Выберите произвольный вектор р0 такой, что (р0, р0) ≠ 0, например, р0 = р0 . (Икс,y) обозначает скалярное произведение векторов (Икс,y) = ИксТ y
  3. ρ0 = α = ω0 = 1
  4. v0 = п0 = 0
  5. За я = 1, 2, 3, …
    1. ρя = (р0, ря−1)
    2. β = (ρя/ρя−1)(α/ωя−1)
    3. пя = ря−1 + β(пя−1ωя−1vя−1)
    4. vя = Apя
    5. α = ρя/(р0, vя)
    6. час = Икся−1 + αпя
    7. Если час достаточно точно, затем установите Икся = час и выйти
    8. s = ря−1αvя
    9. т = В качестве
    10. ωя = (т, s)/(т, т)
    11. Икся = час + ωяs
    12. Если Икся достаточно точный, затем выйти
    13. ря = sωят

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

Прекондиционеры обычно используются для ускорения сходимости итерационных методов. Решить линейную систему Топор = б с прекондиционером K = K1K2А, предварительно подготовленный BiCGSTAB начинается с первоначального предположения Икс0 и происходит следующее:

  1. р0 = бТопор0
  2. Выберите произвольный вектор р0 такой, что (р0, р0) ≠ 0, например, р0 = р0
  3. ρ0 = α = ω0 = 1
  4. v0 = п0 = 0
  5. За я = 1, 2, 3, …
    1. ρя = (р0, ря−1)
    2. β = (ρя/ρя−1)(α/ωя−1)
    3. пя = ря−1 + β(пя−1ωя−1vя−1)
    4. y = K −1
      2
       
      пя
    5. vя = Ау
    6. α = ρя/(р0, vя)
    7. час = Икся−1 + αy
    8. Если час достаточно точно Икся = час и выйти
    9. s = ря−1αvя
    10. z = K −1
      2
       
      s
    11. т = Аз
    12. ωя = (K −1
      1
       
      т, K −1
      1
       
      s)/(K −1
      1
       
      т, K −1
      1
       
      т)
    13. Икся = час + ωяz
    14. Если Икся достаточно точен, тогда брось
    15. ря = sωят

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

Ãx̃ =

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

Вывод

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

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

пя = ря−1 + βяпя−1,
пя = ря−1 + βяпя−1,
ря = ря−1αяApя,
ря = ря−1αяАТпя.

Константы αя и βя выбраны быть

αя = ρя/(пя, Apя),
βя = ρя/ρя−1

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

(ря, рj) = 0,
(пя, Apj) = 0.

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

ря = пя(А)р0,
ря = пя(АТ)р0,
пя+1 = Тя(А)р0,
пя+1 = Тя(АТ)р0

куда пя(А) и Тя(А) находятся ямногочлены степени от А. Эти многочлены удовлетворяют следующим рекуррентным соотношениям:

пя(А) = пя−1(А) − αяАТя−1(А),
Тя(А) = пя(А) + βя+1Тя−1(А).

Получение BiCGSTAB из BiCG

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

ря = Qя(А)пя(А)р0

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

Из рекуррентных соотношений для пя(А) и Тя(А) и определение Qя(А) который

Qя(А)пя(А)р0 = (яωяА)(Qя−1(А)пя−1(А)р0αяАQя−1(А)Тя−1(А)р0),

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

Qя(А)Тя(А)р0 = Qя(А)пя(А)р0 + βя+1(яωяА)Qя−1(А)пя−1(А)р0.

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

пя+1 = Qя(А)Тя(А)р0.

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

пя = ря−1 + βя(яωя−1А)пя−1,
ря = (яωяА)(ря−1αяАпя).

Чтобы вывести рекуррентное соотношение для Икся, определять

sя = ря−1αяАпя.

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

ря = ря−1αяАпяωяВ качествея,

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

Икся = Икся−1 + αяпя + ωяsя.

Определение констант BiCGSTAB

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

В BiCG, βя = ρя/ρя−1 с

ρя = (ря−1, ря−1) = (пя−1(АТ)р0, пя−1(А)р0).

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

ρ̃я = (Qя−1(АТ)р0, пя−1(А)р0) = (р0, Qя−1(А)пя−1(А)р0) = (р0, ря−1).

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

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

и поэтому

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

Простая формула для αя можно получить аналогично. В BiCG,

αя = ρя/(пя, Apя) = (пя−1(АТ)р0, пя−1(А)р0)/(Тя−1(АТ)р0, АТя−1(А)р0).

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

αя = (Qя−1(АТ)р0, пя−1(А)р0)/(Qя−1(АТ)р0, АТя−1(А)р0) = ρ̃я/(р0, АQя−1(А)Тя−1(А)р0) = ρ̃я/(р0, Ap̃я).

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

((яωяА)sя, В качествея) = 0,

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

ωя = (В качествея, sя)/(В качествея, В качествея).

Обобщение

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

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

Смотрите также

Рекомендации

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