在数值线性代数 中,稳定双共轭梯度法 (英语: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{.}}}
相关主题
参考文献