稳定双共轭梯度法

在数值线性代数中，稳定双共轭梯度法（英語：Biconjugate gradient stabilized method，通常简称为BiCGSTAB）是一种由荷兰数学家 H. A. van der Vorst 提出的用于数值求解非对称线性方程组的迭代方法。它是双共轭梯度法（BiCG）的一个变种，比双共轭梯度法本身以及诸如共轭梯度平方法（CGS）等其他变种有更快速和更平滑的收敛性。它是一种 Krylov 子空间方法。 要求解线性方程组 A x = b {\displaystyle {\boldsymbol {Ax}}={\boldsymbol {b}}} ，稳定双共轭梯度法从初始解 x 0 {\displaystyle {\boldsymbol {x}}_{0}} 开始按以下步骤迭代： r 0 = b − A x {\displaystyle {\boldsymbol {r}}_{0}={\boldsymbol {b}}-{\boldsymbol {Ax}}} 任意选择向量 r ^ 0 {\displaystyle {\boldsymbol {\hat {r}}}_{0}\;} 使得 ( r ^ 0 , r 0 ) ≠ 0 {\displaystyle ({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {r}}_{0})\neq 0\;} ，例如， r ^ 0 = r 0 {\displaystyle {\boldsymbol {\hat {r}}}_{0}={\boldsymbol {r}}_{0}\;} ρ 0 = α = ω 0 = 1 {\displaystyle \rho _{0}=\alpha =\omega _{0}=1\;} v 0 = p 0 = 0 {\displaystyle {\boldsymbol {v}}_{0}={\boldsymbol {p}}_{0}={\boldsymbol {0}}} 对 i = 1 , 2 , 3 , … {\displaystyle i=1,2,3,\ldots } ρ i = ( r ^ 0 , r i − 1 ) {\displaystyle \rho _{i}=({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {r}}_{i-1})\;} β = ( ρ i / ρ i − 1 ) ( α / ω i − 1 ) {\displaystyle \beta =(\rho _{i}/\rho _{i-1})(\alpha /\omega _{i-1})\;} p i = r i − 1 + β ( p i − 1 − ω i − 1 v i − 1 ) {\displaystyle {\boldsymbol {p}}_{i}={\boldsymbol {r}}_{i-1}+\beta ({\boldsymbol {p}}_{i-1}-\omega _{i-1}{\boldsymbol {v}}_{i-1})} v i = A p i {\displaystyle {\boldsymbol {v}}_{i}={\boldsymbol {Ap}}_{i}} α = ρ i / ( r ^ 0 , v i ) {\displaystyle \alpha =\rho _{i}/({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {v}}_{i})\;} s = r i − 1 − α v i {\displaystyle {\boldsymbol {s}}={\boldsymbol {r}}_{i-1}-\alpha {\boldsymbol {v}}_{i}} t = A s {\displaystyle {\boldsymbol {t}}={\boldsymbol {As}}} ω i = ( t , s ) / ( t , t ) {\displaystyle \omega _{i}=({\boldsymbol {t}},{\boldsymbol {s}})/({\boldsymbol {t}},{\boldsymbol {t}})} x i = x i − 1 + α p i + ω i s {\displaystyle {\boldsymbol {x}}_{i}={\boldsymbol {x}}_{i-1}+\alpha {\boldsymbol {p}}_{i}+\omega _{i}{\boldsymbol {s}}} 若 x i {\displaystyle {\boldsymbol {x}}_{i}} 足够精确则退出 r i = s − ω i t {\displaystyle {\boldsymbol {r}}_{i}={\boldsymbol {s}}-\omega _{i}{\boldsymbol {t}}} 预处理通常被用来加速迭代方法的收敛。要使用预处理子 K = K 1 K 2 ≈ A {\displaystyle {\boldsymbol {K}}={\boldsymbol {K}}_{1}{\boldsymbol {K}}_{2}\approx {\boldsymbol {A}}} 来求解线性方程组 A x = b {\displaystyle {\boldsymbol {Ax}}={\boldsymbol {b}}} ，预处理稳定双共轭梯度法从初始解 x 0 {\displaystyle {\boldsymbol {x}}_{0}} 开始按以下步骤迭代： r 0 = b − A x {\displaystyle {\boldsymbol {r}}_{0}={\boldsymbol {b}}-{\boldsymbol {Ax}}} 任意选择向量 r ^ 0 {\displaystyle {\boldsymbol {\hat {r}}}_{0}\;} 使得 ( r ^ 0 , r 0 ) ≠ 0 {\displaystyle ({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {r}}_{0})\neq 0\;} ，例如， r ^ 0 = r 0 {\displaystyle {\boldsymbol {\hat {r}}}_{0}={\boldsymbol {r}}_{0}\;} ρ 0 = α = ω 0 = 1 {\displaystyle \rho _{0}=\alpha =\omega _{0}=1\;} v 0 = p 0 = 0 {\displaystyle {\boldsymbol {v}}_{0}={\boldsymbol {p}}_{0}={\boldsymbol {0}}} 对 i = 1 , 2 , 3 , … {\displaystyle i=1,2,3,\ldots } ρ i = ( r ^ 0 , r i − 1 ) {\displaystyle \rho _{i}=({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {r}}_{i-1})\;} β = ( ρ i / ρ i − 1 ) ( α / ω i − 1 ) {\displaystyle \beta =(\rho _{i}/\rho _{i-1})(\alpha /\omega _{i-1})\;} p i = r i − 1 + β ( p i − 1 − ω i − 1 v i − 1 ) {\displaystyle {\boldsymbol {p}}_{i}={\boldsymbol {r}}_{i-1}+\beta ({\boldsymbol {p}}_{i-1}-\omega _{i-1}{\boldsymbol {v}}_{i-1})} y = K − 1 p i {\displaystyle {\boldsymbol {y}}={\boldsymbol {K}}^{-1}{\boldsymbol {p}}_{i}} v i = A y {\displaystyle {\boldsymbol {v}}_{i}={\boldsymbol {Ay}}} α = ρ i / ( r ^ 0 , v i ) {\displaystyle \alpha =\rho _{i}/({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {v}}_{i})\;} s = r i − α v i {\displaystyle {\boldsymbol {s}}={\boldsymbol {r}}_{i}-\alpha {\boldsymbol {v}}_{i}} z = A s {\displaystyle {\boldsymbol {z}}={\boldsymbol {As}}} t = K − 1 z {\displaystyle {\boldsymbol {t}}={\boldsymbol {K}}^{-1}{\boldsymbol {z}}} ω i = ( K 1 − 1 t , K 1 − 1 s ) / ( K 1 − 1 t , K 1 − 1 t ) {\displaystyle \omega _{i}=({\boldsymbol {K}}_{1}^{-1}{\boldsymbol {t}},{\boldsymbol {K}}_{1}^{-1}{\boldsymbol {s}})/({\boldsymbol {K}}_{1}^{-1}{\boldsymbol {t}},{\boldsymbol {K}}_{1}^{-1}{\boldsymbol {t}})} x i = x i − 1 + α y + ω i z {\displaystyle {\boldsymbol {x}}_{i}={\boldsymbol {x}}_{i-1}+\alpha {\boldsymbol {y}}+\omega _{i}{\boldsymbol {z}}} 若 x i {\displaystyle {\boldsymbol {x}}_{i}} 足够精确则退出 r i = s − ω i t {\displaystyle {\boldsymbol {r}}_{i}={\boldsymbol {s}}-\omega _{i}{\boldsymbol {t}}} 这个形式等价于将无预处理的稳定双共轭梯度法应用于显式预处理后的方程组 A ~ x ~ = b ~ {\displaystyle {\boldsymbol {{\tilde {A}}{\tilde {x}}}}={\boldsymbol {\tilde {b}}}} ， 其中 A ~ = K 1 − 1 A K 2 − 1 {\displaystyle {\boldsymbol {\tilde {A}}}={\boldsymbol {K}}_{1}^{-1}{\boldsymbol {AK}}_{2}^{-1}} ， x ~ = K 2 x {\displaystyle {\boldsymbol {\tilde {x}}}={\boldsymbol {K}}_{2}{\boldsymbol {x}}} ， b ~ = K 1 − 1 b {\displaystyle {\boldsymbol {\tilde {b}}}={\boldsymbol {K}}_{1}^{-1}{\boldsymbol {b}}} 。换句话说，左预处理和右预处理都可以通过这个形式实施。 在双共轭梯度法中，搜索方向 p i {\displaystyle {\boldsymbol {p}}_{i}} 和 p ^ i {\displaystyle {\boldsymbol {\hat {p}}}_{i}} 以及残量 r i {\displaystyle {\boldsymbol {r}}_{i}} 和 r ^ i {\displaystyle {\boldsymbol {\hat {r}}}_{i}} 通过以下递推关系更新： p i = r i + β i p i − 1 , {\displaystyle {\boldsymbol {p}}_{i}={\boldsymbol {r}}_{i}+\beta _{i}{\boldsymbol {p}}_{i-1}{\text{,}}} p ^ i = r ^ i + β i p i − 1 , {\displaystyle {\boldsymbol {\hat {p}}}_{i}={\boldsymbol {\hat {r}}}_{i}+\beta _{i}{\boldsymbol {p}}_{i-1}{\text{,}}} r i = r i − 1 − α i A p i , {\displaystyle {\boldsymbol {r}}_{i}={\boldsymbol {r}}_{i-1}-\alpha _{i}{\boldsymbol {Ap}}_{i}{\text{,}}} r ^ i = r ^ i − 1 − α A T p ^ i . {\displaystyle {\boldsymbol {\hat {r}}}_{i}={\boldsymbol {\hat {r}}}_{i-1}-\alpha {\boldsymbol {A}}^{\mathrm {T} }{\boldsymbol {\hat {p}}}_{i}{\text{.}}} 常数 α i {\displaystyle \alpha _{i}\;} 和 β i {\displaystyle \beta _{i}\;} 取值为 α i = ρ i / ( p ^ i , A p i ) , {\displaystyle \alpha _{i}=\rho _{i}/({\boldsymbol {\hat {p}}}_{i},{\boldsymbol {Ap}}_{i}){\text{,}}} β i = ρ i / ρ i − 1 , {\displaystyle \beta _{i}=\rho _{i}/\rho _{i-1}{\text{,}}\;} 其中 ρ i = ( r ^ i − 1 , r i − 1 ) {\displaystyle \rho _{i}=({\boldsymbol {\hat {r}}}_{i-1},{\boldsymbol {r}}_{i-1})} ，使得残量和搜索方向分别满足双正交性和双共轭性，也就是对于 i ≠ j {\displaystyle i\neq j} ， ( r ^ i , r j ) = 0 , {\displaystyle ({\boldsymbol {\hat {r}}}_{i},{\boldsymbol {r}}_{j})=0{\text{,}}} ( p ^ i , A p j ) = 0 . {\displaystyle ({\boldsymbol {\hat {p}}}_{i},{\boldsymbol {Ap}}_{j})=0{\text{.}}} 不难证明， r i = P i ( A ) r 0 , {\displaystyle {\boldsymbol {r}}_{i}=P_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\text{,}}} r ^ i = P i ( A T ) r ^ 0 , {\displaystyle {\boldsymbol {\hat {r}}}_{i}=P_{i}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0}{\text{,}}} p i + 1 = T i ( A ) r 0 , {\displaystyle {\boldsymbol {p}}_{i+1}=T_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\text{,}}} p ^ i + 1 = T i ( A T ) r ^ 0 , {\displaystyle {\boldsymbol {\hat {p}}}_{i+1}=T_{i}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0}{\text{,}}} 其中 P i ( A ) {\displaystyle P_{i}({\boldsymbol {A}})} 和 T i ( A ) {\displaystyle T_{i}({\boldsymbol {A}})} 是关于 A {\displaystyle {\boldsymbol {A}}} 的 i {\displaystyle i\;} 次多项式。这些多项式满足以下递推关系： P i ( A ) = P i − 1 ( A ) − α i A T i − 1 ( A ) , {\displaystyle P_{i}({\boldsymbol {A}})=P_{i-1}({\boldsymbol {A}})-\alpha _{i}{\boldsymbol {A}}T_{i-1}({\boldsymbol {A}}){\text{,}}} T i ( A ) = P i ( A ) − β i + 1 T i − 1 ( A ) . {\displaystyle T_{i}({\boldsymbol {A}})=P_{i}({\boldsymbol {A}})-\beta _{i+1}T_{i-1}({\boldsymbol {A}}){\text{.}}} 双共轭梯度法的残量和搜索方向不是必须显式跟踪的。换句话说，双共轭梯度法的迭代是可以隐式进行的。稳定双共轭梯度法中希望得到 r ~ i = Q i ( A ) P i ( A ) r 0 {\displaystyle {\boldsymbol {\tilde {r}}}_{i}=Q_{i}({\boldsymbol {A}})P_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}} 的递推关系，其中 Q i ( A ) = ( I − ω 1 A ) ( I − ω 1 A ) ⋯ ( I − ω i A ) {\displaystyle Q_{i}({\boldsymbol {A}})=({\boldsymbol {I}}-\omega _{1}{\boldsymbol {A}})({\boldsymbol {I}}-\omega _{1}{\boldsymbol {A}})\cdots ({\boldsymbol {I}}-\omega _{i}{\boldsymbol {A}})} ， ω j {\displaystyle \omega _{j}\;} 为适当选取的常数。以此代替 r i = P i ( A ) {\displaystyle {\boldsymbol {r}}_{i}=P_{i}({\boldsymbol {A}})} 的目的是希望 Q i ( A ) {\displaystyle Q_{i}({\boldsymbol {A}})} 可以使 r ~ i {\displaystyle {\boldsymbol {\tilde {r}}}_{i}} 有比 r i {\displaystyle {\boldsymbol {r}}_{i}} 更快速和更平滑的收敛性。 根据 P i ( A ) {\displaystyle P_{i}({\boldsymbol {A}})} 和 T i ( A ) {\displaystyle T_{i}({\boldsymbol {A}})} 的递推关系以及 Q i ( A ) {\displaystyle Q_{i}({\boldsymbol {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 ) P i − 1 ( A ) r 0 ) . {\displaystyle Q_{i}({\boldsymbol {A}})P_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}=({\boldsymbol {I}}-\omega _{i}{\boldsymbol {A}}){\bigl (}Q_{i-1}({\boldsymbol {A}})P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}-\alpha _{i}{\boldsymbol {A}}Q_{i-1}({\boldsymbol {A}})P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}{\text{.}}} 于是还需要一条关于 Q i ( A ) T i ( A ) r 0 {\displaystyle Q_{i}({\boldsymbol {A}})T_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}} 的递推关系。这同样可以从双共轭梯度法的递推关系中导出： 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 ) T i − 1 ( A ) r 0 . {\displaystyle Q_{i}({\boldsymbol {A}})T_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}=Q_{i}({\boldsymbol {A}})P_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}-\beta _{i+1}({\boldsymbol {I}}-\omega _{i}{\boldsymbol {A}})Q_{i-1}({\boldsymbol {A}})T_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\text{.}}} 类似于 r ~ i {\displaystyle {\boldsymbol {\tilde {r}}}_{i}} ，稳定双共轭梯度法定义 p ~ i + 1 = Q i ( A ) T i ( A ) r 0 . {\displaystyle {\boldsymbol {\tilde {p}}}_{i+1}=Q_{i}({\boldsymbol {A}})T_{i}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\text{.}}} 写成向量形式， p ~ i {\displaystyle {\boldsymbol {\tilde {p}}}_{i}} 和 r ~ i {\displaystyle {\boldsymbol {\tilde {r}}}_{i}} 的递推关系就是 p ~ i = r ~ i − 1 + β i ( I − ω i − 1 A ) p ~ i − 1 , {\displaystyle {\boldsymbol {\tilde {p}}}_{i}={\boldsymbol {\tilde {r}}}_{i-1}+\beta _{i}({\boldsymbol {I}}-\omega _{i-1}{\boldsymbol {A}}){\boldsymbol {\tilde {p}}}_{i-1}{\text{,}}} r ~ i = ( I − ω i A ) ( r ~ i − 1 − α i A p ~ i ) . {\displaystyle {\boldsymbol {\tilde {r}}}_{i}=({\boldsymbol {I}}-\omega _{i}{\boldsymbol {A}})({\boldsymbol {\tilde {r}}}_{i-1}-\alpha _{i}{\boldsymbol {A{\tilde {p}}}}_{i}){\text{.}}} 为了导出 x i {\displaystyle {\boldsymbol {x}}_{i}} 的递推关系，定义 s i = r ~ i − 1 − α i A p ~ i . {\displaystyle {\boldsymbol {s}}_{i}={\boldsymbol {\tilde {r}}}_{i-1}-\alpha _{i}{\boldsymbol {A{\tilde {p}}}}_{i}{\text{.}}} 于是 r ~ i {\displaystyle {\boldsymbol {\tilde {r}}}_{i}} 的递推关系就可以写成 r ~ i = r ~ i − 1 − α i A p ~ i − ω i A s i , {\displaystyle {\boldsymbol {\tilde {r}}}_{i}={\boldsymbol {\tilde {r}}}_{i-1}-\alpha _{i}{\boldsymbol {A{\tilde {p}}}}_{i}-\omega _{i}{\boldsymbol {As}}_{i}{\text{,}}} 这对应于 x i = x i − 1 + α i p ~ i + ω i s i . {\displaystyle {\boldsymbol {x}}_{i}={\boldsymbol {x}}_{i-1}+\alpha _{i}{\boldsymbol {\tilde {p}}}_{i}+\omega _{i}{\boldsymbol {s}}_{i}{\text{.}}} 现在只需确定双共轭梯度法的常数 α i {\displaystyle \alpha _{i}\;} 和 β i {\displaystyle \beta _{i}\;} 以及选择一个合适的 ω i {\displaystyle \omega _{i}\;} 。 在双共轭梯度法中， β i = ρ i / ρ i − 1 {\displaystyle \beta _{i}=\rho _{i}/\rho _{i-1}\;} ， 其中 ρ i = ( r ^ i − 1 , r i − 1 ) = ( P i − 1 ( A T ) r ^ 0 , P i − 1 ( A ) r 0 ) . {\displaystyle \rho _{i}=({\boldsymbol {\hat {r}}}_{i-1},{\boldsymbol {r}}_{i-1})={\bigl (}P_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}{\text{.}}} 由于稳定双共轭梯度法不显式跟踪 r ^ i {\displaystyle {\boldsymbol {\hat {r}}}_{i}} 或 r i {\displaystyle {\boldsymbol {r}}_{i}} ， ρ i {\displaystyle \rho _{i}\;} 不能立即用这条公式计算出来。但是，它可以和标量 ρ ~ i = ( Q i − 1 ( A T ) r ^ 0 , P i − 1 ( A ) r 0 ) = ( r ^ 0 , Q i − 1 ( A ) P i − 1 ( A ) r 0 ) = ( r ^ 0 , r i − 1 ) {\displaystyle {\tilde {\rho }}_{i}={\bigl (}Q_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}={\bigl (}{\boldsymbol {\hat {r}}}_{0},Q_{i-1}({\boldsymbol {A}})P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}=({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {r}}_{i-1})} 关联起来。由于双正交性， r i − 1 = P i − 1 ( A ) r 0 {\displaystyle {\boldsymbol {r}}_{i-1}=P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}} 正交于 U i − 2 ( A T ) r ^ 0 {\displaystyle U_{i-2}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0}} ，其中 U i − 2 ( A T ) {\displaystyle U_{i-2}({\boldsymbol {A}}^{\mathrm {T} })} 是关于 A T {\displaystyle {\boldsymbol {A}}^{\mathrm {T} }} 的任意 i − 2 {\displaystyle i-2\;} 次多项式。因此在点积 ( P i − 1 ( A T ) r ^ 0 , P i − 1 ( A ) r 0 ) {\displaystyle {\bigl (}P_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}} 和 ( Q i − 1 ( A T ) r ^ 0 , P i − 1 ( A ) r 0 ) {\displaystyle {\bigl (}Q_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}} 中只需考虑 P i − 1 ( A T ) {\displaystyle P_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 和 Q i − 1 ( A T ) {\displaystyle Q_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 的最高次项。 P i − 1 ( A T ) {\displaystyle P_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 和 Q i − 1 ( A T ) {\displaystyle Q_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 的最高次项系数分别是 ( − 1 ) i − 1 α 1 α 2 ⋯ α i − 1 {\displaystyle (-1)^{i-1}\alpha _{1}\alpha _{2}\cdots \alpha _{i-1}} 和 ( − 1 ) i − 1 ω 1 ω 2 ⋯ ω i − 1 {\displaystyle (-1)^{i-1}\omega _{1}\omega _{2}\cdots \omega _{i-1}} 。因此 ρ i = ( α 1 / ω 1 ) ( α 2 / ω 2 ) ⋯ ( α i − 1 / ω i − 1 ) ρ ~ i , {\displaystyle \rho _{i}=(\alpha _{1}/\omega _{1})(\alpha _{2}/\omega _{2})\cdots (\alpha _{i-1}/\omega _{i-1}){\tilde {\rho }}_{i}{\text{,}}} 于是 β i = ρ i / ρ i − 1 = ( ρ ~ i / ρ ~ i − 1 ) ( α i − 1 / ω i − 1 ) . {\displaystyle \beta _{i}=\rho _{i}/\rho _{i-1}=({\tilde {\rho }}_{i}/{\tilde {\rho }}_{i-1})(\alpha _{i-1}/\omega _{i-1}){\text{.}}} 关于 α i {\displaystyle \alpha _{i}\;} 的简单公式可以类似地导出。在双共轭梯度法中， α i = ρ i / ( p ^ , A p i ) = ( P i − 1 ( A T ) r ^ 0 , P i − 1 ( A ) r 0 ) / ( T i − 1 ( A T ) r ^ 0 , A T i − 1 ( A ) r 0 ) . {\displaystyle \alpha _{i}=\rho _{i}/({\boldsymbol {\hat {p}}},{\boldsymbol {Ap}}_{i})={\bigl (}P_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}{\big /}{\bigl (}T_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},{\boldsymbol {A}}T_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}{\text{.}}} 类似于上面的情况，由于双正交性和双共轭性，在点积中只需考虑 P i − 1 ( A T ) {\displaystyle P_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 和 T i − 1 ( A T ) {\displaystyle T_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 的最高次项。 P i − 1 ( A T ) {\displaystyle P_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 和 T i − 1 ( A T ) {\displaystyle T_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} 的最高次项系数恰巧是相同的。因此，它们可以在公式中被同时替换为 Q i − 1 ( A T ) {\displaystyle Q_{i-1}({\boldsymbol {A}}^{\mathrm {T} })} ，于是 α i = ( Q i − 1 ( A T ) r ^ 0 , P i − 1 ( A ) r 0 ) / ( Q i − 1 ( A T ) r ^ 0 , A T i − 1 ( A ) r 0 ) = ρ ~ i / ( r ^ 0 , A Q i − 1 ( A ) T i − 1 ( A ) r 0 ) = ρ ~ i / ( r ^ 0 , A p ~ i ) . {\displaystyle \alpha _{i}={\bigl (}Q_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},P_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}{\big /}{\bigl (}Q_{i-1}({\boldsymbol {A}}^{\mathrm {T} }){\boldsymbol {\hat {r}}}_{0},{\boldsymbol {A}}T_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}={\tilde {\rho }}_{i}{\big /}{\bigl (}{\boldsymbol {\hat {r}}}_{0},{\boldsymbol {A}}Q_{i-1}({\boldsymbol {A}})T_{i-1}({\boldsymbol {A}}){\boldsymbol {r}}_{0}{\bigr )}={\tilde {\rho }}_{i}/({\boldsymbol {\hat {r}}}_{0},{\boldsymbol {A{\tilde {p}}}}_{i}){\text{.}}} 最后，稳定双共轭梯度法选择 ω i {\displaystyle \omega _{i}\;} 使得 r ~ i = ( I − ω i A ) s i {\displaystyle {\boldsymbol {\tilde {r}}}_{i}=({\boldsymbol {I}}-\omega _{i}{\boldsymbol {A}}){\boldsymbol {s}}_{i}} 的 2-范数作为 ω i {\displaystyle \omega _{i}\;} 的函数被最小化。这在 ( ( I − ω i A ) s i , A s i ) = 0 {\displaystyle {\bigl (}({\boldsymbol {I}}-\omega _{i}{\boldsymbol {A}}){\boldsymbol {s}}_{i},{\boldsymbol {As}}_{i}{\bigr )}=0} 时达到，因此 ω i {\displaystyle \omega _{i}\;} 的最优值是 ω i = ( A s i , s i ) / ( A s i , A s i ) . {\displaystyle \omega _{i}=({\boldsymbol {As}}_{i},{\boldsymbol {s}}_{i})/({\boldsymbol {As}}_{i},{\boldsymbol {As}}_{i}){\text{.}}} 双共轭梯度法 共轭梯度法 Van der Vorst, H. A. Bi-CGSTAB: A Fast and Smoothly Converging Variant of Bi-CG for the Solution of Nonsymmetric Linear Systems. SIAM Journal on Scientific and Statistical Computing. 1992, 13: 631–644. doi:10.1137/0913035.  Saad, Y. §7.4.2 BICGSTAB. Iterative Methods for Sparse Linear Systems 2nd. SIAM. 2003: 231–234. ISBN 978-0-898715-34-7. doi:10.2277/0898715342.