1 エネルギー最小化と Krylov 部分空間
補題 1.1.n∈N≥1とし、A∈Rn×nを実対称正定値行列、b∈Rn、x:=A−1bとする。u,v∈Rnに対して⟨u,v⟩A:=uTAv、∥v∥A:=⟨v,v⟩A1/2と置く。WをRnの部分空間とし、x0∈Rnとする。
- ⟨⋅,⋅⟩AはRnの内積であり、∥⋅∥AはRnのノルムである。
- x0+W上の関数y↦∥x−y∥Aの最小値を与える点y∘∈x0+Wがただ一つ存在する。
- 任意のy∈x0+Wについて∥x−y∥A2=∥x−y∘∥A2+∥y−y∘∥A2が成り立つ。
y∈x0+Wについて、次の三条件は同値である。
- y=y∘である。
- 任意のw∈WについてwT(b−Ay)=0である。
- 任意のw∈WについてwTA(x−y)=0である。
証明.(1)を示す。⟨u,v⟩Aはuとvのそれぞれについて線形であり、AT=Aから⟨u,v⟩A=(uTAv)T=vTAu=⟨v,u⟩Aである。Aは正定値であるから、v=0ならば⟨v,v⟩A>0である。したがって⟨⋅,⋅⟩Aは内積である。∥⋅∥Aはこの内積から定まるノルムであるから、§D3.14 系 1.5により∥u+v∥A≤∥u∥A+∥v∥Aである。正定値性と斉次性は内積の性質から従う。
d:=dimWとし、Wの基底に内積⟨⋅,⋅⟩Aについて§D3.14 定理 2.1を適用して、⟨⋅,⋅⟩Aに関するWの正規直交基底w1,…,wdをとる(d=0ならば空の族である)。
y∗:=x0+j=1∑d⟨x−x0,wj⟩Awjと置く。y=x0+∑jcjwj∈x0+Wについて⟨x−y,wi⟩A=⟨x−x0,wi⟩A−ciであるから、yが(3)を満たすことと、任意のiについてci=⟨x−x0,wi⟩Aであること、すなわちy=y∗であることは同値である。y∈x0+Wとするとy∗−y∈Wであり、y∗は(3)を満たすから⟨x−y∗,y∗−y⟩A=0である。x−y=(x−y∗)+(y∗−y)から
∥x−y∥A2=∥x−y∗∥A2+∥y−y∗∥A2である。右辺は∥x−y∗∥A2以上であり、等号は(1)によりy=y∗のときに限る。したがってy∗はx0+W上で最小値を与えるただ一つの点であり、(2)が成り立ってy∘=y∗である。y∘=y∗であるから、上の等式は(3)である。yが(3)を満たすこととy=y∗であることは同値であったから、(1)⇔(3)が成り立つ。Ax=bからA(x−y)=b−Ayであるから、(2)⇔(3)が成り立つ。▨
補題 1.2.n∈N≥1とし、A∈Rn×nを実対称正定値行列、b∈Rn、x:=A−1bとし、∥⋅∥Aを補題 1.1のとおりとする。y∈Rnに対してΦ(y):=21yTAy−bTy(yのエネルギー)と置く。
- 任意のy∈RnについてΦ(y)−Φ(x)=21∥x−y∥A2である。
- ΦはRn上で微分可能であり、任意のy∈Rnについて∇Φ(y)=Ay−bである。すなわち∇Φ(y)は残差b−Ayの符号を変えたものである。
- WをRnの部分空間、x0∈Rnとし、y∘を補題 1.1 (2)の点とする。x0+W上でΦの最小値を与える点はy∘ただ一つである。すなわち、補題 1.1のx0+W上での∥x−y∥Aの最小化は、x0+W上でのΦの最小化である。
証明.(1)を示す。AT=AとAx=bからxTAy=(Ax)Ty=bTy、xTAx=bTxである。したがって
21∥x−y∥A2=21xTAx−xTAy+21yTAy=21yTAy−bTy+21bTxであり、Φ(x)=21bTx−bTx=−21bTxであるから、右辺はΦ(y)−Φ(x)に等しい。
(2)を示す。y,h∈Rnとする。AT=AからhTAy=yTAhであり、
Φ(y+h)−Φ(y)=yTAh+21hTAh−bTh=(Ay−b)Th+21hTAhである。A=(aij)と置くと∣hTAh∣≤∑i,j∣aij∣∣hi∣∣hj∣≤(∑i,j∣aij∣)∥h∥22であるから、h→0のとき21hTAh/∥h∥2→0である。したがってΦはyで微分可能であり、∇Φ(y)=Ay−b=−(b−Ay)である。
(3)を示す。(1)により、y∈x0+WについてΦ(y)=Φ(x)+21∥x−y∥A2である。Φ(x)はyによらないから、y,y′∈x0+WについてΦ(y)≤Φ(y′)であることと∥x−y∥A≤∥x−y′∥Aであることは同値である。したがってx0+W上でΦの最小値を与える点はy↦∥x−y∥Aの最小値を与える点と一致し、補題 1.1 (2)によりそれはy∘ただ一つである。▨
定義 1.3.n∈N≥1とし、A∈Rn×n、b∈Rn、x0∈Rnとし、r0:=b−Ax0と置く。
- Aが実対称正定値であるとき、補題 1.1のノルム∥v∥A=(vTAv)1/2を A-ノルム (A-norm) という。
- k∈N≥1に対してKk:=span{r0,Ar0,…,Ak−1r0}と置き、K0:={0}と置く。KkをAとr0のk次の Krylov 部分空間 (Krylov subspace) という。任意のk∈N≥0についてKk⊂Kk+1かつAKk⊂Kk+1である。
- Aが実対称正定値であるとき、x:=A−1bとし、k∈N≥0に対して、x0+Kk上でy↦∥x−y∥Aの最小値を与えるただ一つの点(補題 1.1 (2))をxkと書く。k=0のとき、この点は与えられたx0である。列(xk)k∈N≥0を、Ax=bに対する初期値x0の 共役勾配法 (conjugate gradient method) の反復という。
- 次の計算式を共役勾配法の算法という。x~0:=x0、p0:=r0と置き、k=0,1,2,…の順に次を行う。rk=0ならば停止し、m:=kを停止段という。rk=0かつpkTApk=0ならば、算法は段kで中断する。rk=0かつpkTApk=0ならば
αk:=pkTApkrkTrk,x~k+1:=x~k+αkpk,rk+1:=rk−αkApk,βk:=rkTrkrk+1Trk+1,pk+1:=rk+1+βkpk
と置き、これを段kの実行という。
2 算法と最小化点の一致
定理 2.1.n∈N≥1とし、A∈Rn×nを実対称正定値行列、b,x0∈Rn、x:=A−1bとする。Kk、xkと、算法のx~k,rk,pkを定義 1.3のとおりとする。
- 整数0≤m≤nが存在して、k<mならばrk=0かつpkTApk>0であり、rm=0である。すなわち、算法は中断せず、停止段mで停止する。
- 0≤j<k≤mならばrkTrj=0かつpkTApj=0である。
- 0≤k≤mならばspan{r0,…,rk−1}=span{p0,…,pk−1}=KkかつdimKk=kである。
- 0≤k≤mならばrk=b−Ax~kかつx~k=xkである。k≥mならばxk=xである。
証明.
主張 2.1.1. 整数k≥0について、算法が段0,…,k−1を実行してx~k,rk,pkを定めたとする(k=0では仮定はない)。このとき次が成り立つ。
- rk=b−Ax~kかつx~k∈x0+span{p0,…,pk−1}である。
- 0≤i<j≤kならばrjTri=0かつpjTApi=0である。
- 0≤j≤kならばspan{r0,…,rj}=span{p0,…,pj}⊂Kj+1である。
- pkTrk=rkTrkである。
証明.k=0では、r0=b−Ax0=b−Ax~0、x~0=x0、p0=r0∈K1であり、四つの主張が成り立つ。k≥0とし、算法が段0,…,kを実行し、kについて主張が成り立つとする。段0,…,kでri=0であるから、0≤i≤kについてαi=0であり、Api=αi−1(ri−ri+1)である。
rk+1=rk−αkApk=b−A(x~k+αkpk)=b−Ax~k+1であり、x~k+1=x~k+αkpk∈x0+span{p0,…,pk}である。したがって主張 2.1.1 (1)はk+1について成り立つ。
k≥1ならば、rk=pk−βk−1pk−1と主張 2.1.1 (2)からpkTArk=pkTApkであり、k=0でもr0=p0からこの等式が成り立つ。0≤i≤kとする。AT=Aから
rk+1Tri=rkTri−αkpkTAriである。i<kならば、主張 2.1.1 (2)によりrkTri=0であり、主張 2.1.1 (3)によりri∈span{p0,…,pi}であるから、主張 2.1.1 (2)によりpkTAri=0である。i=kならば、右辺はrkTrk−αkpkTApk=0である。したがってrk+1Tri=0(0≤i≤k)である。次に
pk+1TApi=αi−1(rk+1Tri−rk+1Tri+1)+βkpkTApiである。i<kならば、i+1≤kであるから右辺の三項はいずれも0である。i=kならば、右辺は−αk−1rk+1Trk+1+βkpkTApk=rk+1Trk+1(−pkTApk+pkTApk)/rkTrk=0である。したがって主張 2.1.1 (2)はk+1について成り立つ。
pk+1−rk+1=βkpkと主張 2.1.1 (3)からspan{r0,…,rk+1}=span{p0,…,pk+1}である。rk,pk∈Kk+1であり、AKk+1⊂Kk+2であるから、rk+1=rk−αkApk∈Kk+2である。したがって主張 2.1.1 (3)はk+1について成り立つ。
pk∈span{r0,…,rk}であり、rk+1はr0,…,rkに直交するから、pk+1Trk+1=rk+1Trk+1+βkpkTrk+1=rk+1Trk+1である。したがって主張 2.1.1 (4)はk+1について成り立つ。kに関する帰納法により、主張は任意のk≥0について成り立つ。▨
(1)を示す。算法が段0,…,k−1を実行し、r0,…,rkがいずれも0でないとする。主張 2.1.1 (4)によりpkTrk=rkTrk>0であるからpk=0であり、Aは正定値であるからpkTApk>0である。したがって算法は段kを実行する。主張 2.1.1 (2)によりr0,…,rkは0でない互いに直交するベクトルであり、一次独立であるからk+1≤nである。k=0,1,2,…の順にこの議論を適用すると、rk=0である限り段kが実行されてk+1≤nであるから、rm=0を満たすm≤nが存在し、k<mならばrk=0かつpkTApk>0である。
(2)は、(1)により算法が段0,…,m−1を実行するので、主張 2.1.1 (2)をk=mに適用したものである。
(3)を示す。k=0ではすべて{0}である。1≤k≤mとする。主張 2.1.1 (3)によりspan{r0,…,rk−1}=span{p0,…,pk−1}⊂Kkである。r0,…,rk−1は0でない互いに直交するベクトルであるから左辺の次元はkであり、Kkはk個のベクトルで張られるからdimKk≤kである。したがって三つの空間は一致し、dimKk=kである。
(4)を示す。0≤k≤mとする。主張 2.1.1 (1)と(3)によりrk=b−Ax~kかつx~k∈x0+Kkであり、(2)と(3)によりrkはKkのすべての元に直交する。補題 1.1をW=Kkに適用すると、x~kは補題 1.1 (2)を満たすので、補題 1.1 (1)⇔(2)によりx~k=xkである。k≥mとする。b−Ax~m=rm=0からxm=x~m=xであり、x∈x0+Km⊂x0+Kkである。∥x−x∥A=0はx0+Kk上の最小値であるから、補題 1.1 (2)の一意性によりxk=xである。▨
例 2.2.A:=diag(1,−1)、b:=(1,1)T、x0:=0とする。Aは実対称で正則であるが正定値でない。r0=p0=(1,1)Tであり、p0TAp0=1−1=0であるから、算法は段0で中断する。vTAv=v12−v22はv=(0,1)Tで−1であり、(vTAv)1/2はR2のノルムを定めない。
A:=(1−111),b:=(10),x0:=0とする。Aは対称でなく、任意のv∈R2でvTAv=v12+v22である。x=A−1b=(1/2,1/2)Tである。算法の値は次のとおりである。
r0=p0=(1,0)T, Ap0=(1,−1)T, α0=1, x~1=(1,0)T, r1=(0,1)T, β0=1, p1=(1,1)T,Ap1=(2,0)T, α1=21, x~2=(23,21)T, r2=(−1,1)T.算法は中断しない。K2=span{(1,0)T,(1,−1)T}=R2であるから、y↦(x−y)TA(x−y)=∥x−y∥22のx0+K2上の最小値を与える点はxであるが、x~2=xである。またr2Tr1=1=0である。
3 Chebyshev 多項式
定義 3.1. 実係数多項式の列(Tk)k∈N≥0を
T0(t):=1,T1(t):=t,Tk+1(t):=2tTk(t)−Tk−1(t)(k≥1)で定め、Tkをk次の Chebyshev 多項式 (Chebyshev polynomial) という。
補題 3.2.k∈N≥0とする。
- Tkは実係数で次数k以下の多項式である。
- 任意のθ∈Rに対してTk(cosθ)=coskθである。
- t∈[−1,1]ならば∣Tk(t)∣≤1である。
- t∈Rが∣t∣≥1を満たすならば
Tk(t)=21((t+t2−1)k+(t−t2−1)k)
である。
証明.(1)を示す。T0とT1の次数はそれぞれ0と1である。k≥1についてTk−1とTkの次数がそれぞれk−1以下とk以下ならば、2tTk−Tk−1の次数はk+1以下である。kに関する帰納法により主張が成り立つ。
(2)を示す。k=0,1では定義から成り立つ。加法定理によりcos(k+1)θ+cos(k−1)θ=2cosθcoskθであるから、k−1とkで主張が成り立てばTk+1(cosθ)=2cosθcoskθ−cos(k−1)θ=cos(k+1)θである。kに関する帰納法により主張が成り立つ。
(3)を示す。t∈[−1,1]ならばθ:=arccostはcosθ=tを満たし、(2)により∣Tk(t)∣=∣coskθ∣≤1である。
(4)を示す。∣t∣≥1ならばs±:=t±t2−1は実数であり、二次方程式s2−2ts+1=0の根である。Sk:=(s+k+s−k)/2と置くと、S0=1、S1=tであり、s±k+1=2ts±k−s±k−1からSk+1=2tSk−Sk−1(k≥1)である。(Sk)と(Tk(t))は同じ初期値と同じ漸化式を満たすから、kに関する帰納法によりSk=Tk(t)である。▨
4 誤差の多項式表示と条件数による上界
補題 4.1. 実数0<λ−<λ+とk∈N≥0に対して、z:=(λ+−λ−)/(λ++λ−)と置く。次数k以下の実係数多項式qであって、q(0)=1を満たし、任意のt∈[λ−,λ+]について∣q(t)∣≤2zkを満たすものが存在する。
証明.σ:=(λ++λ−)/(λ+−λ−)と置くとσ>1であり、σ2−1=4λ+λ−/(λ+−λ−)2から
σ+σ2−1=λ+−λ−(λ++λ−)2=z−1,σ−σ2−1=λ+−λ−(λ+−λ−)2=zである。補題 3.2 (4)によりTk(σ)=(z−k+zk)/2≥z−k/2>0である。
q(t):=Tk(σ)1Tk(λ+−λ−λ++λ−−2t)と置く。補題 3.2 (1)によりqは次数k以下の実係数多項式であり、q(0)=Tk(σ)/Tk(σ)=1である。t∈[λ−,λ+]ならば(λ++λ−−2t)/(λ+−λ−)∈[−1,1]であるから、補題 3.2 (3)により∣q(t)∣≤1/Tk(σ)≤2zkである。▨
定理 4.2.n∈N≥1とし、A∈Rn×nを実対称正定値行列、b,x0∈Rn、x:=A−1b、e0:=x−x0とし、(xk)k∈N≥0を共役勾配法の反復とする。ΛをAの固有値の集合とし、λmin:=minΛ、λmax:=maxΛ、κ:=λmax/λminと置く(λmin>0である)。k∈N≥0に対して、次数k以下でq(0)=1を満たす実係数多項式qの全体をPkと書く。
- 任意のk∈N≥0について、{∥q(A)e0∥A∣q∈Pk}は最小値をもち、∥x−xk∥A=minq∈Pk∥q(A)e0∥Aである。
- 任意の実係数多項式qについて∥q(A)e0∥A≤maxλ∈Λ∣q(λ)∣∥e0∥Aである。
- κ>1ならば、任意のk∈N≥0について
∥x−xk∥A≤2(κ+1κ−1)k∥x−x0∥A
である。
- κ=1ならば、任意のk≥1についてxk=xである。
証明.(1)を示す。r0=b−Ax0=Ae0である。Kkの定義により、y∈x0+Kkであることと、次数k−1以下の実係数多項式p(k=0ではp=0)が存在してy=x0+p(A)r0であることは同値である。このときx−y=e0−p(A)Ae0=q(A)e0、q(t):=1−tp(t)∈Pkである。逆にq∈Pkならばq−1は定数項が0であるから、次数k−1以下の実係数多項式pが存在してq(t)=1−tp(t)である。したがって{x−y∣y∈x0+Kk}={q(A)e0∣q∈Pk}であり、xkの定義により主張が成り立つ。
(2)を示す。§D3.15 定理 3.1により、直交行列PとD=diag(λ1,…,λn)が存在してA=PDPTである。λi∈Λであり、Pの第i列viについてλi=viTAvi>0である。c:=PTe0と置くとq(A)=Pq(D)PTであり、
∥q(A)e0∥A2=cTq(D)Dq(D)c=i=1∑nλiq(λi)2ci2≤λ∈Λmaxq(λ)2i=1∑nλici2=λ∈Λmaxq(λ)2∥e0∥A2である。
(3)を示す。κ>1ならば0<λmin<λmaxであり、(λmax−λmin)/(λmax+λmin)=(κ−1)/(κ+1)である。補題 4.1をλ−=λmin、λ+=λmaxに適用して得るq∈PkはΛ⊂[λmin,λmax]上で∣q∣≤2((κ−1)/(κ+1))kを満たす。(1)と(2)により主張が成り立つ。
(4)を示す。κ=1ならばΛ={λmin}である。q(t):=1−t/λminはP1⊂Pkに属し、Λ上で0である。(2)によりq(A)e0=0であり、(1)により∥x−xk∥A=0、すなわちxk=xである。▨
証明.(1)を示す。r0=0ならば算法は段0で停止し、m=0である。x0=xであるからx∈x0+Kkであり、補題 1.1 (2)の一意性によりxk=xである。
(2)を示す。r0=0であるからd≥1である。ΛをAの固有値の集合とし、π(t):=∏μ∈Λ(t−μ)と置く。§D3.15 定理 3.1により直交行列Pと対角成分がΛに属する対角行列Dが存在してA=PDPTであり、π(A)=Pπ(D)PT=0である。§E3.22 命題 1.2によりAの最小多項式mAはπを割り、§E3.22 命題 3.1によりcはmAを割る。したがってc∣πであり、d≤ℓである。Λの元は正であるからπ(0)=0であり、c(0)=0である。q:=c/c(0)と置くとq∈Pdであり、e0:=x−x0=A−1r0についてq(A)e0=c(0)−1A−1c(A)r0=0である。k≥dならばq∈Pkであるから、定理 4.2 (1)により∥x−xk∥A=0、すなわちxk=xである。逆にxk=xならば、定理 4.2 (1)によりq′∈Pkが存在してq′(A)e0=0であり、q′(A)r0=Aq′(A)e0=0である。§E3.18 命題 3.3によりc∣q′であり、q′(0)=1からq′=0であるので、d≤degq′≤kである。定理 2.1 (4)により、k≤mならばb−Axk=rkである。k<mならばrk=0からxk=xであり、rm=0からxm=xである。したがってmはxk=xを満たす最小のkであり、m=dである。
(3)は、r0=0ならば(1)から、r0=0ならば(2)とd≤ℓから従う。▨
例 4.4.n≥3とし、b∈Rnを成分がすべて0でないベクトル、x0:=0とする。A:=diag(1,100,…,100)、A′:=diag(μ1,…,μn)、μi:=1+99(i−1)/(n−1)と置く。二つの行列はどちらも実対称正定値で、最小固有値1と最大固有値100をもち、定理 4.2 (3)の右辺はどちらの系でも2(9/11)k∥x−x0∥A(∥⋅∥Aはそれぞれの行列のA-ノルム)である。
- Aの相異なる固有値は1と100の二つであるから、系 4.3 (3)により、Aの系の停止段は2以下であり、x2=xである。k=2での上界の係数は2(9/11)2=162/121>1である。
- D=diag(δ1,…,δn)が相異なる正の対角成分をもち、r0の成分がすべて0でないならば、Dとr0について系 4.3 (2)の次数dはnであり、停止段はnである。実際、次数n−1以下の実係数多項式pがp(D)r0=0を満たすならば、各iでp(δi)(r0)i=0からp(δi)=0であり、pは相異なるn点で0になるのでp=0である。したがってd≥nであり、d≤ℓ=nと合わせてd=nである。A′とr0=bはこの仮定を満たすので、A′の系の停止段はnであり、k<nではxk=xである。n=999ならばA′の系の停止段は999であるが、2(9/11)72>10−6>2(9/11)73であるから、相対A′-ノルム誤差∥x−xk∥A′/∥x−x0∥A′を10−6以下にすることを定理 4.2 (3)が保証する最小のkは73である。
例 4.5.n≥2とし、Anを§E20.10 命題 5.1の行列とする。φ:=π/(2(n+1))と置く。
- κ2(An)=cot2φであり、(κ2(An)−1)/(κ2(An)+1)=tan(π/4−φ)である。
- 0<θ<1とする。整数k≥(n+1)log(2/θ)/πならば、任意のb,x0∈Rnについて、Anx=bの共役勾配法の反復は∥x−xk∥An≤θ∥x−x0∥Anを満たす。
- 0<θ<1とし、TをAnの Jacobi 法または Gauss–Seidel 法の反復行列とする。整数k≥0が任意の初期誤差e∈Rnについて∥Tke∥An≤θ∥e∥Anを満たすならば、k≥logθ/logρ(T)である。n→∞のとき、logθ/logρ(T)を(n+1)2で割った値は、Jacobi 法では2log(1/θ)/π2に、Gauss–Seidel 法ではlog(1/θ)/π2に収束する。
(1)を示す。§E20.10 命題 5.1 (2)によりAnの最小固有値はλ1=4sin2φ、最大固有値はλn=4sin2(nπ/(2(n+1)))=4cos2φであり、§E20.5 命題 4.4 (5)によりκ2(An)=cot2φである。κ2(An)=cotφであるから、y:=tanφと置くと(cotφ−1)/(cotφ+1)=(1−y)/(1+y)=tan(π/4−φ)である。
(2)を示す。n≥2から0<φ≤π/6であり、0<y<1である。g(s):=log(1+s)−log(1−s)−2sはg(0)=0、g′(s)=2s2/(1−s2)≥0(0≤s<1)を満たすからg(y)≥0であり、tanφ≥φと合わせて
−logtan(π/4−φ)=log1−y1+y≥2y≥2φ=n+1πである。k≥(n+1)log(2/θ)/πならば2tan(π/4−φ)k≤2e−kπ/(n+1)≤θであり、κ2(An)>1であるから定理 4.2 (3)により主張が成り立つ。
(3)を示す。補題 1.1 (1)により∥⋅∥AnはRnのノルムであるから、前半は§E20.10 命題 5.2 (3)をこのノルムに適用したものである。§E20.10 定理 3.1 (1)により、この二法のk段後の誤差は初期誤差eに対してTkeである。後半は§E20.10 命題 5.2 (2)から従う。
θ=10−6とする。下表は、2tan(π/4−φ)k≤θを満たす最小の整数kと、Jacobi 法と Gauss–Seidel 法のlogθ/logρ(T)以上の最小の整数を、倍精度の浮動小数点計算で求めた値である(ρ(T)は§E20.10 命題 5.2 (1)の値を用いた)。
| n |
κ2(An) |
共役勾配法(十分なk) |
Jacobi 法(必要なk) |
Gauss–Seidel 法(必要なk) |
| 9 |
3.986×101 |
46 |
276 |
138 |
| 99 |
4.052×103 |
462 |
27992 |
13996 |
| 999 |
4.053×105 |
4619 |
2799604 |
1399802 |
第三列は、すべてのb,x0に対してAn-ノルムの誤差をθ倍以下にすることを保証する反復数の上界であり、第四列と第五列は、すべての初期誤差に対して同じ保証を与える反復数の下界である。
5 有限精度での残差と停止条件
命題 5.1.n∈N≥1とし、A=(aij)∈Rn×n、b∈Rnとする。K∈N≥1とし、x^k,r^k,p^k∈Rn(0≤k≤K)とα^k∈R(0≤k<K)を任意にとる。0≤k<Kについて
fk:=x^k+1−x^k−α^kp^k,gk:=r^k+1−r^k+α^kAp^kと置き、0≤k≤Kについてsk:=b−Ax^kと置く。ベクトルと行列の絶対値∣⋅∣と不等号は成分ごとにとる。
- 0≤k≤Kについてsk−r^k=s0−r^0−∑j=0k−1(Afj+gj)が成り立つ。
- Fを浮動小数点数系、uをその単位丸め誤差、flをFの最近接丸めとし、(n+2)u<1とし、j∈{2,n,n+2}についてγj:=ju/(1−ju)と置く。0≤k<Kとし、A∈Fn×n、x^k,r^k,p^k∈Fn、α^k∈Fとする。1≤i≤nについて、wiを積fl(ai1p^k,1),…,fl(ainp^k,n)の逐次和とし、
x^k+1,i:=fl(x^k,i+fl(α^kp^k,i)),r^k+1,i:=fl(r^k,i−fl(α^kwi))
とする。この計算式の浮動小数点算術での実行が範囲条件(§E20.5 定義 1.1)を満たすならば、∣fk∣≤u∣x^k∣+γ2∣α^k∣∣p^k∣かつ∣gk∣≤u∣r^k∣+γn+2∣α^k∣∣A∣∣p^k∣である。
- 1≤k≤Kとし、0≤j<kのすべてのjについて(2)の仮定が成り立つならば、
∣sk−r^k∣≤∣s0−r^0∣+j=0∑k−1(u∣A∣∣x^j∣+u∣r^j∣+(γ2+γn+2)∣α^j∣∣A∣∣p^j∣)
である。
証明.(1)を示す。0≤j<kについてsj+1=b−A(x^j+α^jp^j+fj)=sj−α^jAp^j−Afjであり、r^j+1=r^j−α^jAp^j+gjであるから、sj+1−r^j+1=sj−r^j−Afj−gjである。j=0,…,k−1について和をとる。
(2)を示す。iを固定する。範囲条件により積α^kp^k,iの厳密な結果は0であるか正規範囲にあるので、§E20.1 系 3.2 (1)または§E20.1 系 3.2 (2)により∣δ1∣≤uを満たすδ1が存在してfl(α^kp^k,i)=α^kp^k,i(1+δ1)である。範囲条件により加算の厳密な結果の絶対値はNmax以下であるから、§E20.1 系 3.3により∣δ2∣≤uを満たすδ2が存在してx^k+1,i=(x^k,i+α^kp^k,i(1+δ1))(1+δ2)である。したがって
fk,i=x^k,iδ2+α^kp^k,i((1+δ1)(1+δ2)−1)であり、2u<1から§E20.1 補題 4.1により∣(1+δ1)(1+δ2)−1∣≤γ2であるので、fkの評価が成り立つ。nu<1であるから、§E20.3 命題 5.1を加算木Rnとd=n−1に適用して、∣θj∣≤γnを満たすθ1,…,θnが存在してwi=∑jaijp^k,j(1+θj)である。fkと同じく§E20.1 系 3.2 (1)、§E20.1 系 3.2 (2)、§E20.1 系 3.3(減算は−fl(α^kwi)∈Fとの加算として適用する)により、∣δ3∣,∣δ4∣≤uを満たすδ3,δ4が存在してr^k+1,i=(r^k,i−α^kwi(1+δ3))(1+δ4)である。1+η:=(1+δ3)(1+δ4)と置くと、§E20.1 補題 4.1により∣η∣≤γ2であり、
gk,i=r^k,iδ4−α^kj=1∑naijp^k,j((1+θj)(1+η)−1)である。(1−nu)(1−2u)=1−(n+2)u+2nu2≥1−(n+2)u>0であるから
(1+θj)(1+η)−1≤(1+γn)(1+γ2)−1=(1−nu)(1−2u)1−1≤1−(n+2)u1−1=γn+2であり、gkの評価が成り立つ。
(3)を示す。(1)と三角不等式により∣sk−r^k∣≤∣s0−r^0∣+∑j<k(∣A∣∣fj∣+∣gj∣)であり、(2)の二つの評価を代入する。▨
例 5.2.注意 4.6 (1)の binary64 での計算を考え、丸めた対角成分をもつ行列をA^∈F24×24とし、binary64 で計算したx~k,rk,pk,αkをx^k,r^k,p^k,α^kと書く。x^k+1とr^k+1の更新は命題 5.1 (2)の計算式であり、A^は対角行列であるから、wiはfl(a^iip^k,i)に等しい。漸化式で更新した残差r^kと、計算した近似解x^kに対するA^の真の残差b−A^x^k(有理数で計算した)の2-ノルムは、k=24ではともに2.854×10−1、k=40ではともに1.529×10−11である。k=46では∥r^46∥2=2.96×10−16、∥b−A^x^46∥2=2.67×10−15であり、k=80では∥r^80∥2=6.55×10−30、∥b−A^x^80∥2=2.51×10−15である。40≤k≤200の範囲で真の残差の2-ノルムは2.47×10−15以上である。停止判定∥r^k∥2≤10−15はk=46で初めて成り立つが、そのとき真の残差は10−15を超えている。
命題 5.3.n∈N≥1とし、A∈Rn×nを実対称正定値行列、λminとλmaxをAの最小と最大の固有値、b∈Rn、x:=A−1bとする。任意のx~∈Rnについてr:=b−Ax~と置く。
- ∥x−x~∥A≤λmin−1/2∥r∥2かつ∥x−x~∥2≤λmin−1∥r∥2である。
- b=0ならば∥x−x~∥2/∥x∥2≤(λmax/λmin)∥r∥2/∥b∥2である。
証明.(1)を示す。x−x~=A−1rである。§D3.15 定理 3.1により直交行列PとD=diag(λ1,…,λn)が存在してA=PDPTであり、各λiはλi≥λmin>0を満たす。s:=PTrと置くと∥s∥2=∥r∥2であり、
∥x−x~∥A2=rTA−1r=i=1∑nλisi2≤λmin∥r∥22,∥x−x~∥22=i=1∑nλi2si2≤λmin2∥r∥22である。
(2)は、§E20.5 命題 4.5をRnのノルム∥⋅∥2に適用し、§E20.5 命題 4.4 (5)によりκ2(A)=λmax/λminとしたものである。▨
命題 5.4.Fを浮動小数点数系、uをその単位丸め誤差、flをFの最近接丸めとし、n∈N≥1が(n+1)u<1を満たすとし、γn+1:=(n+1)u/(1−(n+1)u)と置く。A∈Fn×nを実対称正定値行列、b∈Fn、x:=A−1b、x~∈Fnとし、r~∈Fnを§E20.5 系 7.3の計算式でb−Ax~を計算した値とし、その計算の各積の厳密な結果が0であるか正規範囲にあり、各加算の厳密な結果の絶対値がNmax以下であるとする。実数λが0<λ≤λmin(λminはAの最小固有値)を満たすとし、
η:=∥r~∥2+γn+1∣b∣+∣A∣∣x~∣2と置く(絶対値は成分ごとにとる)。このとき∥b−Ax~∥2≤η、∥x−x~∥A≤λ−1/2η、∥x−x~∥2≤λ−1ηである。特に、τ>0についてη≤λ1/2τならば∥x−x~∥A≤τである。
証明.r:=b−Ax~と置く。§E20.5 系 7.3により、各iで∣r~i−ri∣≤γn+1(∣b∣+∣A∣∣x~∣)iである。v,w∈Rnが成分ごとに∣v∣≤∣w∣を満たすならば∥v∥2≤∥w∥2であるから∥r~−r∥2≤γn+1∥∣b∣+∣A∣∣x~∣∥2であり、三角不等式により∥r∥2≤ηである。命題 5.3 (1)とλmin−1≤λ−1により残りの評価が成り立つ。▨
6 演習
問題 6.1.n∈N≥1とし、A∈Rn×nを実対称正定値行列、b,x0∈Rn、x:=A−1bとし、(xk)k∈N≥0を共役勾配法の反復とする。実数0<λ−<λ+≤μがあって、Aの固有値の集合が[λ−,λ+]∪{μ}に含まれるとする。任意のk∈N≥0について
∥x−xk+1∥A≤2(λ++λ−λ+−λ−)k∥x−x0∥Aが成り立つことを示せ。
解答.
補題 4.1をλ−<λ+とkに適用して、次数k以下でq(0)=1を満たし[λ−,λ+]上で∣q∣≤2zk(z:=(λ+−λ−)/(λ++λ−))を満たす実係数多項式qをとる。Q(t):=(1−t/μ)q(t)と置くと、Qは次数k+1以下の実係数多項式でQ(0)=1を満たし、Q(μ)=0である。t∈[λ−,λ+]ならば0<t≤μから0≤1−t/μ<1であり、∣Q(t)∣≤∣q(t)∣≤2zkである。Aの固有値の集合Λは[λ−,λ+]∪{μ}に含まれるからmaxλ∈Λ∣Q(λ)∣≤2zkであり、定理 4.2 (1)と定理 4.2 (2)により∥x−xk+1∥A≤∥Q(A)(x−x0)∥A≤2zk∥x−x0∥Aである。▨