В числовая линейная алгебра , то метод сопряженных градиентов  является итерационный метод  для численного решения линейная система 
                              А           Икс          =                   б        { displaystyle { boldsymbol {Ax}} = { boldsymbol {b}}}   куда                               А        { displaystyle { boldsymbol {A}}}   симметричный  положительно определенный . Метод сопряженных градиентов может быть получен с нескольких различных точек зрения, включая специализацию метод сопряженных направлений  за оптимизация , и вариация Арнольди  /Ланцош  итерация для собственное значение  проблемы.
Цель этой статьи - документировать важные этапы этих выводов.
Вывод из метода сопряженных направлений Эта секция 
нуждается в расширении . 
Вы можете помочь добавляя к этому .   (Апрель 2010 г. ) 
Метод сопряженных градиентов можно рассматривать как частный случай метода сопряженных направлений, применяемого для минимизации квадратичной функции
                    ж         (                   Икс          )         =                               Икс                                      Т                      А                    Икс          −         2                               б                                      Т                      Икс                    .        { displaystyle f ({ boldsymbol {x}}) = { boldsymbol {x}} ^ { mathrm {T}} { boldsymbol {A}} { boldsymbol {x}} - 2 { boldsymbol {b }} ^ { mathrm {T}} { boldsymbol {x}} { text {.}}}   Метод сопряженных направлений В методе сопряженных направлений для минимизации
                    ж         (                   Икс          )         =                               Икс                                      Т                      А                    Икс          −         2                               б                                      Т                      Икс                    .        { displaystyle f ({ boldsymbol {x}}) = { boldsymbol {x}} ^ { mathrm {T}} { boldsymbol {A}} { boldsymbol {x}} - 2 { boldsymbol {b }} ^ { mathrm {T}} { boldsymbol {x}} { text {.}}}   каждый начинается с первоначального предположения                                           Икс                        0         { displaystyle { boldsymbol {x}} _ {0}}                                             р                        0           =                   б          −                               А             Икс                        0         { displaystyle { boldsymbol {r}} _ {0} = { boldsymbol {b}} - { boldsymbol {Ax}} _ {0}}   
                                                                                          α                                       я                                  =                                                                                                                               п                                                    я                                                                                Т                                                                            р                                                    я                                                                                                п                                                    я                                                                                Т                                                                            А                           п                                                    я                                        ,                                                                                    Икс                                        я                     +                     1                                  =                                                       Икс                                        я                   +                                   α                                       я                                                         п                                        я                                     ,                                                                                    р                                        я                     +                     1                                  =                                                       р                                        я                   −                                   α                                       я                                                         А                     п                                        я             { displaystyle { begin {align}  alpha _ {i} & = { frac {{ boldsymbol {p}} _ {i} ^ { mathrm {T}} { boldsymbol {r}} _ {i }} {{ boldsymbol {p}} _ {i} ^ { mathrm {T}} { boldsymbol {Ap}} _ {i}}} { text {,}}  { boldsymbol {x} } _ {i + 1} & = { boldsymbol {x}} _ {i} +  alpha _ {i} { boldsymbol {p}} _ {i} { text {,}}  { boldsymbol {r}} _ {i + 1} & = { boldsymbol {r}} _ {i} -  alpha _ {i} { boldsymbol {Ap}} _ {i}  end {align}}}   куда                                           п                        0           ,                               п                        1           ,                               п                        2           ,         …       { displaystyle { boldsymbol {p}} _ {0}, { boldsymbol {p}} _ {1}, { boldsymbol {p}} _ {2},  ldots}   
                                          п                        я                                      Т                                  А             п                        j           =         0       { displaystyle { boldsymbol {p}} _ {i} ^ { mathrm {T}} { boldsymbol {Ap}} _ {j} = 0}   для любого                     я         ≠         j       { displaystyle i  neq j}   
Метод сопряженных направлений неточен в том смысле, что не даются формулы для выбора направлений.                                           п                        0           ,                               п                        1           ,                               п                        2           ,         …       { displaystyle { boldsymbol {p}} _ {0}, { boldsymbol {p}} _ {1}, { boldsymbol {p}} _ {2},  ldots}   Гауссово исключение .
Вывод из итерации Арнольди / Ланцоша Метод сопряженных градиентов можно также рассматривать как вариант итерации Арнольди / Ланцоша, применяемой для решения линейных систем.
Общий метод Арнольди В итерации Арнольди каждый начинается с вектора                                           р                        0         { displaystyle { boldsymbol {r}} _ {0}}   ортонормированный  основа                     {                               v                        1           ,                               v                        2           ,                               v                        3           ,         …         }       { displaystyle  {{ boldsymbol {v}} _ {1}, { boldsymbol {v}} _ {2}, { boldsymbol {v}} _ {3},  ldots }}   Крыловское подпространство 
                                          K           (                   А          ,                               р                        0           )         =                   s           п           а           п          {                               р                        0           ,                               А             р                        0           ,                               А                        2                                 р                        0           ,         …         }       { displaystyle { mathcal {K}} ({ boldsymbol {A}}, { boldsymbol {r}} _ {0}) =  mathrm {span}  {{ boldsymbol {r}} _ {0} , { boldsymbol {Ar}} _ {0}, { boldsymbol {A}} ^ {2} { boldsymbol {r}} _ {0},  ldots }}   определяя                                           v                        я           =                               ш                        я                     /          ‖                               ш                        я                     ‖                       2         { displaystyle { boldsymbol {v}} _ {i} = { boldsymbol {w}} _ {i} /  lVert { boldsymbol {w}} _ {i}  rVert _ {2}}   
                                          ш                        я           =                               {                                                                                                       р                                            0                                                          если                    я                   =                   1                                       ,                                                                                              А                       v                                            я                       −                       1                     −                                       ∑                                           j                       =                       1                                            я                       −                       1                     (                                                             v                                            j                                                                    Т                                                                А                       v                                            я                       −                       1                     )                                                             v                                            j                                                          если                    я                   >                   1                                       .                         { displaystyle { boldsymbol {w}} _ {i} = { begin {case} { boldsymbol {r}} _ {0} & { text {if}} i = 1 { text {,}}  { boldsymbol {Av}} _ {i-1} -  sum _ {j = 1} ^ {i-1} ({ boldsymbol {v}} _ {j} ^ { mathrm {T}} { boldsymbol {Av}} _ {i-1}) { boldsymbol {v}} _ {j} & { text {if}} i> 1 { text {.}}  end {case}}}   Другими словами, для                     я         >         1       { displaystyle i> 1}                                             v                        я         { displaystyle { boldsymbol {v}} _ {i}}   Ортогонализация по Граму-Шмидту                                            А             v                        я             −             1         { displaystyle { boldsymbol {Av}} _ {i-1}}                       {                               v                        1           ,                               v                        2           ,         …         ,                               v                        я             −             1           }       { displaystyle  {{ boldsymbol {v}} _ {1}, { boldsymbol {v}} _ {2},  ldots, { boldsymbol {v}} _ {i-1} }}   
В матричной форме итерация описывается уравнением
                                          А             V                        я           =                               V                        я             +             1                                                               ЧАС                 ~                          я         { displaystyle { boldsymbol {AV}} _ {i} = { boldsymbol {V}} _ {i + 1} { boldsymbol { tilde {H}}} _ {i}}   куда
                                                                                                              V                                        я                                  =                                                       [                                                                                                                                                       v                                                            1                                                                                                                v                                                            2                                                      ⋯                                                                                                              v                                                            я                          ]                                     ,                                                                                                                                  ЧАС                         ~                                          я                                  =                                                       [                                                                                                                         час                                                           11                                                                                  час                                                           12                                                                                  час                                                           13                                                      ⋯                                                                                час                                                           1                               ,                               я                                                                                                         час                                                           21                                                                                  час                                                           22                                                                                  час                                                           23                                                      ⋯                                                                                час                                                           2                               ,                               я                                                                                                         час                                                           32                                                                                  час                                                           33                                                      ⋯                                                                                час                                                           3                               ,                               я                                                                             ⋱                                                    ⋱                                                    ⋮                                                                                                       час                                                           я                               ,                               я                               −                               1                                                                                  час                                                           я                               ,                               я                                                                                                         час                                                           я                               +                               1                               ,                               я                          ]                   =                                                       [                                                                                                                                                       ЧАС                                                            я                                                                                                         час                                                           я                               +                               1                               ,                               я                                                                                       е                                                            я                                                                                            Т                           ]             { displaystyle { begin {align} { boldsymbol {V}} _ {i} & = { begin {bmatrix} { boldsymbol {v}} _ {1} & { boldsymbol {v}} _ {2 } &  cdots & { boldsymbol {v}} _ {i}  end {bmatrix}} { text {,}}  { boldsymbol { tilde {H}}} _ {i} & = { begin {bmatrix} h_ {11} & h_ {12} & h_ {13} &  cdots & h_ {1, i}  h_ {21} & h_ {22} & h_ {23} &  cdots & h_ {2, i}  & h_ {32} & h_ {33} &  cdots & h_ {3, i}  &&  ddots &  ddots &  vdots  &&& h_ {i, i-1} & h_ {i, i}  &&&& h_ {i + 1, i}  end {bmatrix}} = { begin {bmatrix} { boldsymbol {H}} _ {i}  h_ {i + 1, i} { boldsymbol {e}} _ {i} ^ { mathrm {T}}  end {bmatrix}}  end {align}}}   с
                              час                       j             я           =                               {                                                                                                       v                                            j                                                                    Т                                                                А                       v                                            я                                                          если                    j                   ≤                   я                                       ,                                                    ‖                                                             ш                                            я                       +                       1                                         ‖                                           2                                                          если                    j                   =                   я                   +                   1                                       ,                                                    0                                                        если                    j                   >                   я                   +                   1                                       .                         { displaystyle h_ {ji} = { begin {case} { boldsymbol {v}} _ {j} ^ { mathrm {T}} { boldsymbol {Av}} _ {i} & { text {если }} j  leq i { text {,}}  lVert { boldsymbol {w}} _ {i + 1}  rVert _ {2} & { text {if}} j = i + 1 {  text {,}}  0 & { text {if}} j> i + 1 { text {.}}  end {case}}}   Применяя итерацию Арнольди к решению линейных систем, начинают с                                           р                        0           =                   б          −                               А             Икс                        0         { displaystyle { boldsymbol {r}} _ {0} = { boldsymbol {b}} - { boldsymbol {Ax}} _ {0}}                                             Икс                        0         { displaystyle { boldsymbol {x}} _ {0}}                                             у                        я           =                               ЧАС                        я                        −             1           (         ‖                               р                        0                     ‖                       2                                 е                        1           )       { displaystyle { boldsymbol {y}} _ {i} = { boldsymbol {H}} _ {i} ^ {- 1} ( lVert { boldsymbol {r}} _ {0}  rVert _ {2 } { boldsymbol {e}} _ {1})}                                             Икс                        я           =                               Икс                        0           +                               V                        я                                 у                        я         { displaystyle { boldsymbol {x}} _ {i} = { boldsymbol {x}} _ {0} + { boldsymbol {V}} _ {i} { boldsymbol {y}} _ {i}}   
Прямой метод Ланцоша В дальнейшем мы предполагаем, что                               А        { displaystyle { boldsymbol {A}}}                                 А        { displaystyle { boldsymbol {A}}}   верхняя матрица Гессенберга                                            ЧАС                        я           =                               V                        я                                      Т                                  А             V                        я         { displaystyle { boldsymbol {H}} _ {i} = { boldsymbol {V}} _ {i} ^ { mathrm {T}} { boldsymbol {AV}} _ {i}}   
                                          ЧАС                        я           =                               [                                                                                 а                                           1                                                          б                                           2                                                                         б                                           2                                                          а                                           2                                                          б                                           3                                                     ⋱                                    ⋱                                    ⋱                                                                       б                                           я                       −                       1                                                          а                                           я                       −                       1                                                          б                                           я                                                                         б                                           я                                                          а                                           я                  ]                     .        { displaystyle { boldsymbol {H}} _ {i} = { begin {bmatrix} a_ {1} & b_ {2}  b_ {2} & a_ {2} & b_ {3}  &  ddots &  ddots &  ddots  && b_ {i-1} & a_ {i-1} & b_ {i}  &&& b_ {i} & a_ {i}  end {bmatrix}} { text {.}}}   Это дает возможность кратковременного трехкратного повторения                                           v                        я         { displaystyle { boldsymbol {v}} _ {i}}   
С                               А        { displaystyle { boldsymbol {A}}}                                             ЧАС                        я         { displaystyle { boldsymbol {H}} _ {i}}                                             ЧАС                        я         { displaystyle { boldsymbol {H}} _ {i}}   LU факторизованный  без частичный поворот  в
                                          ЧАС                        я           =                               L                        я                                 U                        я           =                               [                                                             1                                                                       c                                           2                                      1                                                   ⋱                                    ⋱                                                                       c                                           я                       −                       1                                      1                                                                       c                                           я                                      1                ]                                 [                                                                                 d                                           1                                                          б                                           2                                                                         d                                           2                                                          б                                           3                                                     ⋱                                    ⋱                                                                       d                                           я                       −                       1                                                          б                                           я                                                                         d                                           я                  ]         { displaystyle { boldsymbol {H}} _ {i} = { boldsymbol {L}} _ {i} { boldsymbol {U}} _ {i} = { begin {bmatrix} 1  c_ {2 } & 1  &  ddots &  ddots  && c_ {i-1} & 1  &&& c_ {i} & 1  end {bmatrix}} { begin {bmatrix} d_ {1} & b_ {2}  & d_ { 2} & b_ {3}  &&  ddots &  ddots  &&& d_ {i-1} & b_ {i}  &&&& d_ {i}  end {bmatrix}}}   с удобными повторами для                               c                       я         { displaystyle c_ {i}}                                 d                       я         { displaystyle d_ {i}}   
                                                                                          c                                       я                                  =                                   б                                       я                                     /                                    d                                       я                     −                     1                                     ,                                                                d                                       я                                  =                                                       {                                                                                                                         а                                                           1                                                                                  если                            я                           =                           1                                                       ,                                                                                                        а                                                           я                             −                                                       c                                                           я                                                         б                                                           я                                                                                  если                            я                           >                           1                                                       .                                     { displaystyle { begin {align} c_ {i} & = b_ {i} / d_ {i-1} { text {,}}  d_ {i} & = { begin {cases} a_ {1 } & { text {if}} i = 1 { text {,}}  a_ {i} -c_ {i} b_ {i} & { text {if}} i> 1 { text {. }}  end {case}}  end {align}}}   Переписать                                           Икс                        я           =                               Икс                        0           +                               V                        я                                 у                        я         { displaystyle { boldsymbol {x}} _ {i} = { boldsymbol {x}} _ {0} + { boldsymbol {V}} _ {i} { boldsymbol {y}} _ {i}}   
                                                                                                              Икс                                        я                                  =                                                       Икс                                        0                   +                                                       V                                        я                                                         ЧАС                                        я                                        −                     1                   (                 ‖                                                       р                                        0                                     ‖                                       2                                                         е                                        1                   )                                             =                                                       Икс                                        0                   +                                                       V                                        я                                                         U                                        я                                        −                     1                                                         L                                        я                                        −                     1                   (                 ‖                                                       р                                        0                                     ‖                                       2                                                         е                                        1                   )                                             =                                                       Икс                                        0                   +                                                       п                                        я                                                         z                                        я             { displaystyle { begin {align} { boldsymbol {x}} _ {i} & = { boldsymbol {x}} _ {0} + { boldsymbol {V}} _ {i} { boldsymbol {H }} _ {i} ^ {- 1} ( lVert { boldsymbol {r}} _ {0}  rVert _ {2} { boldsymbol {e}} _ {1})  & = { boldsymbol {x}} _ {0} + { boldsymbol {V}} _ {i} { boldsymbol {U}} _ {i} ^ {- 1} { boldsymbol {L}} _ {i} ^ {- 1} ( lVert { boldsymbol {r}} _ {0}  rVert _ {2} { boldsymbol {e}} _ {1})  & = { boldsymbol {x}} _ {0} + { boldsymbol {P}} _ {i} { boldsymbol {z}} _ {i}  end {align}}}   с
                                                                                                              п                                        я                                  =                                                       V                                        я                                                         U                                        я                                        −                     1                                     ,                                                                                    z                                        я                                  =                                                       L                                        я                                        −                     1                   (                 ‖                                                       р                                        0                                     ‖                                       2                                                         е                                        1                   )                                   .            { displaystyle { begin {align} { boldsymbol {P}} _ {i} & = { boldsymbol {V}} _ {i} { boldsymbol {U}} _ {i} ^ {- 1} {  text {,}}  { boldsymbol {z}} _ {i} & = { boldsymbol {L}} _ {i} ^ {- 1} ( lVert { boldsymbol {r}} _ {0 }  rVert _ {2} { boldsymbol {e}} _ {1}) { text {.}}  end {align}}}   Теперь важно заметить, что
                                                                                                              п                                        я                                  =                                                       [                                                                                                                                                       п                                                            я                               −                               1                                                                                                                п                                                            я                          ]                                     ,                                                                                    z                                        я                                  =                                                       [                                                                                                                                                       z                                                            я                               −                               1                                                                                                         ζ                                                           я                          ]                                     .            { displaystyle { begin {align} { boldsymbol {P}} _ {i} & = { begin {bmatrix} { boldsymbol {P}} _ {i-1} & { boldsymbol {p}} _ {i}  end {bmatrix}} { text {,}}  { boldsymbol {z}} _ {i} & = { begin {bmatrix} { boldsymbol {z}} _ {i-1}  zeta _ {i}  end {bmatrix}} { text {.}}  end {align}}}   Фактически, есть короткие повторения для                                           п                        я         { displaystyle { boldsymbol {p}} _ {i}}                                 ζ                       я         { displaystyle  zeta _ {я}}   
                                                                                                              п                                        я                                  =                                                       1                                           d                                               я                     (                                                       v                                        я                   −                                   б                                       я                                                         п                                        я                     −                     1                   )                                   ,                                                                ζ                                       я                                  =                 −                                   c                                       я                                     ζ                                       я                     −                     1                                     .            { displaystyle { begin {align} { boldsymbol {p}} _ {i} & = { frac {1} {d_ {i}}} ({ boldsymbol {v}} _ {i} -b_ { i} { boldsymbol {p}} _ {i-1}) { text {,}}  zeta _ {i} & = - c_ {i}  zeta _ {i-1} { text { .}}  end {выровнены}}}   С этой формулировкой мы приходим к простому возвращению для                                           Икс                        я         { displaystyle { boldsymbol {x}} _ {i}}   
                                                                                                              Икс                                        я                                  =                                                       Икс                                        0                   +                                                       п                                        я                                                         z                                        я                                               =                                                       Икс                                        0                   +                                                       п                                        я                     −                     1                                                         z                                        я                     −                     1                   +                                   ζ                                       я                                                         п                                        я                                               =                                                       Икс                                        я                     −                     1                   +                                   ζ                                       я                                                         п                                        я                                     .            { displaystyle { begin {align} { boldsymbol {x}} _ {i} & = { boldsymbol {x}} _ {0} + { boldsymbol {P}} _ {i} { boldsymbol {z }} _ {i}  & = { boldsymbol {x}} _ {0} + { boldsymbol {P}} _ {i-1} { boldsymbol {z}} _ {i-1} +  zeta _ {i} { boldsymbol {p}} _ {i}  & = { boldsymbol {x}} _ {i-1} +  zeta _ {i} { boldsymbol {p}} _ {i } { текст {.}}  конец {выровнено}}}   Приведенные выше соотношения напрямую приводят к прямому методу Ланцоша, который оказывается несколько более сложным.
Метод сопряженных градиентов от наложения ортогональности и сопряженности Если мы позволим                                           п                        я         { displaystyle { boldsymbol {p}} _ {i}}   
                                                                                                              Икс                                        я                                  =                                                       Икс                                        я                     −                     1                   +                                   α                                       я                     −                     1                                                         п                                        я                     −                     1                                     ,                                                                                    р                                        я                                  =                                                       р                                        я                     −                     1                   −                                   α                                       я                     −                     1                                                         А                     п                                        я                     −                     1                                     ,                                                                                    п                                        я                                  =                                                       р                                        я                   +                                   β                                       я                     −                     1                                                         п                                        я                     −                     1                                     .            { displaystyle { begin {align} { boldsymbol {x}} _ {i} & = { boldsymbol {x}} _ {i-1} +  alpha _ {i-1} { boldsymbol {p} } _ {i-1} { text {,}}  { boldsymbol {r}} _ {i} & = { boldsymbol {r}} _ {i-1} -  alpha _ {i-1 } { boldsymbol {Ap}} _ {i-1} { text {,}}  { boldsymbol {p}} _ {i} & = { boldsymbol {r}} _ {i} +  beta _ {i-1} { boldsymbol {p}} _ {i-1} { text {.}}  end {align}}}   В качестве предпосылки для упрощения выводим теперь ортогональность                                           р                        я         { displaystyle { boldsymbol {r}} _ {i}}                                             п                        я         { displaystyle { boldsymbol {p}} _ {i}}                       я         ≠         j       { displaystyle i  neq j}   
                                                                                                              р                                        я                                                              Т                                                          р                                        j                                  =                 0                                   ,                                                                                    п                                        я                                                              Т                                                          А                     п                                        j                                  =                 0                                   .            { displaystyle { begin {align} { boldsymbol {r}} _ {i} ^ { mathrm {T}} { boldsymbol {r}} _ {j} & = 0 { text {,}}   { boldsymbol {p}} _ {i} ^ { mathrm {T}} { boldsymbol {Ap}} _ {j} & = 0 { text {.}}  end {align}}}   Остатки взаимно ортогональны, потому что                                           р                        я         { displaystyle { boldsymbol {r}} _ {i}}                                             v                        я             +             1         { displaystyle { boldsymbol {v}} _ {я + 1}}                       я         =         0       { displaystyle i = 0}                                             р                        0           =         ‖                               р                        0                     ‖                       2                                 v                        1         { displaystyle { boldsymbol {r}} _ {0} =  lVert { boldsymbol {r}} _ {0}  rVert _ {2} { boldsymbol {v}} _ {1}}                       я         >         0       { displaystyle i> 0}   
                                                                                                              р                                        я                                  =                                   б                  −                                                       А                     Икс                                        я                                               =                                   б                  −                                   А                  (                                                       Икс                                        0                   +                                                       V                                        я                                                         у                                        я                   )                                             =                                                       р                                        0                   −                                                       А                     V                                        я                                                         у                                        я                                               =                                                       р                                        0                   −                                                       V                                        я                     +                     1                                                                                                       ЧАС                         ~                                          я                                                         у                                        я                                               =                                                       р                                        0                   −                                                       V                                        я                                                         ЧАС                                        я                                                         у                                        я                   −                                   час                                       я                     +                     1                     ,                     я                   (                                                       е                                        я                                                              Т                                                          у                                        я                   )                                                       v                                        я                     +                     1                                               =                 ‖                                                       р                                        0                                     ‖                                       2                                                         v                                        1                   −                                                       V                                        я                   (                 ‖                                                       р                                        0                                     ‖                                       2                                                         е                                        1                   )                 −                                   час                                       я                     +                     1                     ,                     я                   (                                                       е                                        я                                                              Т                                                          у                                        я                   )                                                       v                                        я                     +                     1                                               =                 −                                   час                                       я                     +                     1                     ,                     я                   (                                                       е                                        я                                                              Т                                                          у                                        я                   )                                                       v                                        я                     +                     1                                     .            { displaystyle { begin {align} { boldsymbol {r}} _ {i} & = { boldsymbol {b}} - { boldsymbol {Ax}} _ {i}  & = { boldsymbol {b }} - { boldsymbol {A}} ({ boldsymbol {x}} _ {0} + { boldsymbol {V}} _ {i} { boldsymbol {y}} _ {i})  & = { boldsymbol {r}} _ {0} - { boldsymbol {AV}} _ {i} { boldsymbol {y}} _ {i}  & = { boldsymbol {r}} _ {0} - { boldsymbol {V}} _ {i + 1} { boldsymbol { tilde {H}}} _ {i} { boldsymbol {y}} _ {i}  & = { boldsymbol {r}} _ {0} - { boldsymbol {V}} _ {i} { boldsymbol {H}} _ {i} { boldsymbol {y}} _ {i} -h_ {i + 1, i} ({ boldsymbol {e}} _ {i} ^ { mathrm {T}} { boldsymbol {y}} _ {i}) { boldsymbol {v}} _ {i + 1}  & =  lVert { boldsymbol {r}} _ {0}  rVert _ {2} { boldsymbol {v}} _ {1} - { boldsymbol {V}} _ {i} ( lVert { boldsymbol {r}} _ { 0}  rVert _ {2} { boldsymbol {e}} _ {1}) - h_ {i + 1, i} ({ boldsymbol {e}} _ {i} ^ { mathrm {T}} {  boldsymbol {y}} _ {i}) { boldsymbol {v}} _ {i + 1}  & = - h_ {i + 1, i} ({ boldsymbol {e}} _ {i} ^ { mathrm {T}} { boldsymbol {y}} _ {i}) { boldsymbol {v}} _ {i + 1} { text {.}}  end {align}}}   Чтобы увидеть сопряжение                                           п                        я         { displaystyle { boldsymbol {p}} _ {i}}                                             п                        я                                      Т                                  А             п                        я         { displaystyle { boldsymbol {P}} _ {i} ^ { mathrm {T}} { boldsymbol {AP}} _ {i}}   
                                                                                                              п                                        я                                                              Т                                                          А                     п                                        я                                  =                                                       U                                        я                                        −                                           Т                                                          V                                        я                                                              Т                                                          А                     V                                        я                                                         U                                        я                                        −                     1                                               =                                                       U                                        я                                        −                                           Т                                                          ЧАС                                        я                                                         U                                        я                                        −                     1                                               =                                                       U                                        я                                        −                                           Т                                                          L                                        я                                                         U                                        я                                                         U                                        я                                        −                     1                                               =                                                       U                                        я                                        −                                           Т                                                          L                                        я             { displaystyle { begin {align} { boldsymbol {P}} _ {i} ^ { mathrm {T}} { boldsymbol {AP}} _ {i} & = { boldsymbol {U}} _ { i} ^ {-  mathrm {T}} { boldsymbol {V}} _ {i} ^ { mathrm {T}} { boldsymbol {AV}} _ {i} { boldsymbol {U}} _ { i} ^ {- 1}  & = { boldsymbol {U}} _ {i} ^ {-  mathrm {T}} { boldsymbol {H}} _ {i} { boldsymbol {U}} _ {i} ^ {- 1}  & = { boldsymbol {U}} _ {i} ^ {-  mathrm {T}} { boldsymbol {L}} _ {i} { boldsymbol {U}} _ {i} { boldsymbol {U}} _ {i} ^ {- 1}  & = { boldsymbol {U}} _ {i} ^ {-  mathrm {T}} { boldsymbol {L} } _ {i}  end {выровнены}}}   является симметричным и нижним треугольником одновременно и, следовательно, должен быть диагональным.
Теперь мы можем получить постоянные множители                               α                       я         { displaystyle  alpha _ {я}}                                 β                       я         { displaystyle  beta _ {я}}                                             п                        я         { displaystyle { boldsymbol {p}} _ {i}}                                             р                        я         { displaystyle { boldsymbol {r}} _ {i}}                                             п                        я         { displaystyle { boldsymbol {p}} _ {i}}   
Из-за ортогональности                                           р                        я         { displaystyle { boldsymbol {r}} _ {i}}                                             р                        я             +             1                                      Т                                  р                        я           =         (                               р                        я           −                   α                       я                                 А             п                        я                     )                                     Т                                  р                        я           =         0       { displaystyle { boldsymbol {r}} _ {i + 1} ^ { mathrm {T}} { boldsymbol {r}} _ {i} = ({ boldsymbol {r}} _ {i} -  альфа _ {i} { boldsymbol {Ap}} _ {i}) ^ { mathrm {T}} { boldsymbol {r}} _ {i} = 0}   
                                                                                          α                                       я                                  =                                                                                                                               р                                                    я                                                                                Т                                                                            р                                                    я                                                                                                р                                                    я                                                                                Т                                                                            А                           п                                                    я                                                  =                                                                                                                               р                                                    я                                                                                Т                                                                            р                                                    я                                              (                                                                         п                                                    я                         −                                               β                                                   я                           −                           1                                                                           п                                                    я                           −                           1                                                 )                                                                               Т                                                                            А                           п                                                    я                                                  =                                                                                                                               р                                                    я                                                                                Т                                                                            р                                                    я                                                                                                п                                                    я                                                                                Т                                                                            А                           п                                                    я                                        .            { displaystyle { begin {align}  alpha _ {i} & = { frac {{ boldsymbol {r}} _ {i} ^ { mathrm {T}} { boldsymbol {r}} _ {i }} {{ boldsymbol {r}} _ {i} ^ { mathrm {T}} { boldsymbol {Ap}} _ {i}}}  & = { frac {{ boldsymbol {r}} _ {i} ^ { mathrm {T}} { boldsymbol {r}} _ {i}} {({ boldsymbol {p}} _ {i} -  beta _ {i-1} { boldsymbol { p}} _ {i-1}) ^ { mathrm {T}} { boldsymbol {Ap}} _ {i}}}  & = { frac {{ boldsymbol {r}} _ {i} ^ { mathrm {T}} { boldsymbol {r}} _ {i}} {{ boldsymbol {p}} _ {i} ^ { mathrm {T}} { boldsymbol {Ap}} _ {i }}} { text {.}}  end {выровнены}}}   Точно так же из-за сопряженности                                           п                        я         { displaystyle { boldsymbol {p}} _ {i}}                                             п                        я             +             1                                      Т                                  А             п                        я           =         (                               р                        я             +             1           +                   β                       я                                 п                        я                     )                                     Т                                  А             п                        я           =         0       { displaystyle { boldsymbol {p}} _ {i + 1} ^ { mathrm {T}} { boldsymbol {Ap}} _ {i} = ({ boldsymbol {r}} _ {i + 1} +  beta _ {i} { boldsymbol {p}} _ {i}) ^ { mathrm {T}} { boldsymbol {Ap}} _ {i} = 0}   
                                                                                          β                                       я                                  =                 −                                                                                                                               р                                                    я                           +                           1                                                                                Т                                                                            А                           п                                                    я                                                                                                п                                                    я                                                                                Т                                                                            А                           п                                                    я                                                  =                 −                                                                                                                               р                                                    я                           +                           1                                                                                Т                          (                                                                         р                                                    я                         −                                                                         р                                                    я                           +                           1                         )                                                                    α                                                   я                                                                           п                                                    я                                                                                Т                                                                            А                           п                                                    я                                                  =                                                                                                                               р                                                    я                           +                           1                                                                                Т                                                                            р                                                    я                           +                           1                                                                                                р                                                    я                                                                                Т                                                                            р                                                    я                                        .            { displaystyle { begin {align}  beta _ {i} & = - { frac {{ boldsymbol {r}} _ {i + 1} ^ { mathrm {T}} { boldsymbol {Ap}} _ {i}} {{ boldsymbol {p}} _ {i} ^ { mathrm {T}} { boldsymbol {Ap}} _ {i}}}  & = - { frac {{ boldsymbol {r}} _ {i + 1} ^ { mathrm {T}} ({ boldsymbol {r}} _ {i} - { boldsymbol {r}} _ {i + 1})} { alpha _ {i} { boldsymbol {p}} _ {i} ^ { mathrm {T}} { boldsymbol {Ap}} _ {i}}}  & = { frac {{ boldsymbol {r}} _ {i + 1} ^ { mathrm {T}} { boldsymbol {r}} _ {i + 1}} {{ boldsymbol {r}} _ {i} ^ { mathrm {T}} { boldsymbol {r}} _ {i}}} { text {.}}  end {выравнивается}}}   На этом вывод завершен.
Рекомендации Гестенес, М. ; Штифель, Э.  (Декабрь 1952 г.). «Методы сопряженных градиентов для решения линейных систем»  (PDF) . Журнал исследований Национального бюро стандартов . 49  (6).Саад, Ю. (2003). "Глава 6: Методы подпространства Крылова, часть I". Итерационные методы для разреженных линейных систем ISBN   978-0-89871-534-7  Ключевые идеи Проблемы Аппаратное обеспечение Программного обеспечения