§E20.5連立一次方程式の直接法

最終更新

係数行列が正則であれば連立一次方程式の解は存在してただ一つであり、その解は掃き出しによって有限回の四則演算で求めることができる。しかし計算機での消去は浮動小数点算術で行われ、各演算の結果は丸められる。消去の途中で絶対値の小さな数を除数に用いると、その丸めが後の計算で大きく拡大されることがある。たとえば、第1行が(2−60,1)(2^{-60},1)、第2行が(1,1)(1,1)の係数行列と右辺(1,2)(1,2)からなる方程式を、binary64 の浮動小数点算術で行を入れ替えずに消去すると、解の第1成分は真の値がほぼ11であるのに00と計算される。二つの行を入れ替えてから消去すると、二つの成分の誤差はどちらも1/(260−1)1/(2^{60}-1)になる。

各段で消去する列の成分のうち絶対値が最大のものを選び、その行を入れ替えてから消去する方法を、部分ピボット付き消去という。この消去は、係数行列を行の並べ替えのもとで下三角行列と上三角行列の積に分解し、方程式を二つの三角系の代入に帰着させる。浮動小数点算術での消去が失敗せず、行列の次数nnと単位丸め誤差uuがnu<1nu<1を満たし、消去と代入の各乗算と各除算の厳密な結果が零か正規範囲にあり、各加算と各減算の厳密な結果の絶対値が浮動小数点数の最大元以下であるとき、計算した分解と解は、係数行列を摂動した方程式の厳密な分解と解になっており、その摂動の大きさは、消去の途中で成分がどこまで大きくなるかを表す成長因子によって抑えられる。計算した解と真の解の差は、さらに係数行列の条件数と残差によって評価される。分解は一度計算すれば右辺を替えて繰り返し用いることができ、残差による反復改良もこの分解の上に組み立てられる。

本記事では、部分ピボット付き消去による解法とその誤差について、基本的な性質や代表的な例を解説する。

1 浮動小数点算術と三角系の代入

定義 1.1. 加算・減算・乗算・除算を定められた順序で有限回行って値を定める計算式について、各演算で二つの被演算数に対するその演算の実数としての値を計算することを、計算式を 厳密算術 (exact arithmetic) で実行するという。FFを浮動小数点数系、fl⁡\operatorname{fl}をFFの最近接丸めとし、計算式の入力がFFの元であるとする。各演算x∘yx\circ y(∘∈{+,−,×,/}\circ\in\{+,-,\times,/\})を順にfl⁡(x∘y)\operatorname{fl}(x\circ y)に置き換えて計算することを、計算式をFFとfl⁡\operatorname{fl}の 浮動小数点算術 (floating-point arithmetic) で実行するといい、置き換えた各演算について実数x∘yx\circ yをその演算の厳密な結果という。浮動小数点算術での実行が次の条件を満たすとき、その実行は 範囲条件 (range condition) を満たすという。

  1. 各乗算と各除算の厳密な結果は、00であるかFFの正規範囲にある。
  2. 各加算と各減算の厳密な結果の絶対値は、FFの最大元Nmax⁡N_{\max}以下である。

定義 1.2.n∈N≥1n\in\NNとし、T=(tij)∈Mn(R)T=(t_{ij})\in M_n(\R)を対角成分がすべて00でない三角行列、c=(c1,…,cn)∈Rnc=(c_1,\dots,c_n)\in\R^nとする。

  1. TTが下三角行列であるとき、i=1,…,ni=1,\dots,nの順に次を行う計算式を、Ty=cTy=cの 前進代入 (forward substitution) という。s:=cis:=c_iと置き、m=1,…,i−1m=1,\dots,i-1の順に、乗算timymt_{im}y_mの後に減算を行ってssをs−timyms-t_{im}y_mに置き換え、得たssからyi:=s/tiiy_i:=s/t_{ii}と置く。ただしTTの対角成分がすべて11であるときは、除算を行わずにyi:=sy_i:=sと置く。
  2. TTが上三角行列であるとき、i=n,n−1,…,1i=n,n-1,\dots,1の順に次を行う計算式を、Ty=cTy=cの 後退代入 (back substitution) という。s:=cis:=c_iと置き、m=i+1,…,nm=i+1,\dots,nの順に、乗算timymt_{im}y_mの後に減算を行ってssをs−timyms-t_{im}y_mに置き換え、得たssからyi:=s/tiiy_i:=s/t_{ii}と置く。

2 LU 分解

定義 2.1.n∈N≥1n\in\NN、B∈Mn(R)B\in M_n(\R)とする。対角成分がすべて11の下三角行列LLと上三角行列UUがB=LUB=LUを満たすとき、組(L,U)(L,U)をBBの LU 分解 (LU factorization) という。置換行列PPに対して(L,U)(L,U)がPBPBの LU 分解であるとき、組(P,L,U)(P,L,U)をBBの ピボット付き LU 分解 (pivoted LU factorization) という。

定義 2.2.n∈N≥1n\in\NN、A∈Mn(R)A\in M_n(\R)とする。1≤k≤r≤n1\le k\le r\le nに対し、単位行列の第kk行と第rr行を入れ替えた置換行列をTkrT_{kr}とする(Tkk=IT_{kk}=I)。作業行列W(1):=AW^{(1)}:=Aから始めてk=1,…,nk=1,\dots,nの順に次の段kkを行う計算式を、AAの 部分ピボット付き消去 (Gaussian elimination with partial pivoting) という。

  1. ∣wrk(k)∣=max⁡k≤i≤n∣wik(k)∣\lvert w^{(k)}_{rk}\rvert=\max_{k\le i\le n}\lvert w^{(k)}_{ik}\rvertを満たすr∈{k,…,n}r\in\{k,\dots,n\}のうち最小のものをrkr_kとし、V(k):=TkrkW(k)V^{(k)}:=T_{kr_k}W^{(k)}と置く。行の入れ替えは第11列から第nn列までのすべての成分に施す。
  2. vkk(k)v^{(k)}_{kk}を段kkの ピボット (pivot) という。vkk(k)=0v^{(k)}_{kk}=0ならば計算を終える。このとき消去は段kkで 失敗 (breakdown) するという。
  3. k<nk<nならば、W(k+1)W^{(k+1)}の第ii行を、i≤ki\le kのときV(k)V^{(k)}の第ii行とし、i>ki>kのとき wij(k+1):=vij(k) (j<k),wik(k+1):=vik(k)vkk(k),wij(k+1):=vij(k)−wik(k+1)vkj(k) (j>k)w^{(k+1)}_{ij}:=v^{(k)}_{ij}\ (j<k),\qquad w^{(k+1)}_{ik}:=\frac{v^{(k)}_{ik}}{v^{(k)}_{kk}},\qquad w^{(k+1)}_{ij}:=v^{(k)}_{ij}-w^{(k+1)}_{ik}v^{(k)}_{kj}\ (j>k) で定める。最後の式では、乗算wik(k+1)vkj(k)w^{(k+1)}_{ik}v^{(k)}_{kj}の後に減算を行う。wik(k+1)w^{(k+1)}_{ik}(i>ki>k)を段kkの 乗数 (multiplier) という。

どの段でも失敗しないとき、消去は完了するという。このときW:=V(n)W:=V^{(n)}と置き、i>ji>jの成分がwijw_{ij}、対角成分が11、その他の成分が00の行列をLL、i≤ji\le jの成分がwijw_{ij}、その他の成分が00の行列をUUとし、P:=TnrnTn−1,rn−1⋯T1r1P:=T_{nr_n}T_{n-1,r_{n-1}}\cdots T_{1r_1}と置いて、(P,L,U)(P,L,U)を消去の出力という。(1)で常にrk:=kr_k:=kとする計算式を、AAの ピボット選択なしの消去 (Gaussian elimination without pivoting) といい、その出力を(L,U)(L,U)と書く。

補題 2.3.n∈N≥1n\in\NN、B∈Mn(R)B\in M_n(\R)、1≤k≤n1\le k\le nとし、BBのピボット選択なしの消去を厳密算術で実行して段1,…,k−11,\dots,k-1で失敗しないとする。段kkの作業行列W(k)W^{(k)}について、対角成分が11、j<kj<kかつi>ji>jの(i,j)(i,j)成分がwij(k)w^{(k)}_{ij}、その他の成分が00の行列をL(k)L^{(k)}とし、i<ki<kかつi≤ji\le jの(i,j)(i,j)成分とi,j≥ki,j\ge kの(i,j)(i,j)成分がwij(k)w^{(k)}_{ij}、その他の成分が00の行列をR(k)R^{(k)}とする。このときB=L(k)R(k)B=L^{(k)}R^{(k)}が成り立つ。特に消去が完了するならば、その出力(L,U)(L,U)はBBの LU 分解である。

証明.k=1k=1ではL(1)=IL^{(1)}=I、R(1)=W(1)=BR^{(1)}=W^{(1)}=Bである。k<nk<nとし、B=L(k)R(k)B=L^{(k)}R^{(k)}であって段kkで失敗しないとする。ピボット選択なしの消去ではV(k)=W(k)V^{(k)}=W^{(k)}である。ℓ∈Rn\ell\in\R^nを、i>ki>kの成分が段kkの乗数wik(k+1)w^{(k+1)}_{ik}で、その他の成分が00のベクトルとし、eke_kを第kk基本ベクトルとしてG:=I+ℓekTG:=I+\ell e_k^{\mathsf T}と置く。GR(k+1)GR^{(k+1)}の第ii行は、i≤ki\le kならばR(k+1)R^{(k+1)}の第ii行であり、i>ki>kならばR(k+1)R^{(k+1)}の第ii行に第kk行のwik(k+1)w^{(k+1)}_{ik}倍を加えたものである。W(k+1)W^{(k+1)}の第11行から第kk行はW(k)W^{(k)}のそれに等しいから、i≤ki\le kについてR(k+1)R^{(k+1)}とR(k)R^{(k)}の第ii行は等しい。特にR(k+1)R^{(k+1)}の第kk行は(0,…,0,wkk(k),…,wkn(k))(0,\dots,0,w^{(k)}_{kk},\dots,w^{(k)}_{kn})である。i>ki>kについて、GR(k+1)GR^{(k+1)}の(i,j)(i,j)成分は、j<kj<kならば00、j=kj=kならばwik(k+1)wkk(k)=wik(k)w^{(k+1)}_{ik}w^{(k)}_{kk}=w^{(k)}_{ik}、j>kj>kならばwij(k+1)+wik(k+1)wkj(k)=wij(k)w^{(k+1)}_{ij}+w^{(k+1)}_{ik}w^{(k)}_{kj}=w^{(k)}_{ij}であり、これはR(k)R^{(k)}の(i,j)(i,j)成分である。したがってR(k)=GR(k+1)R^{(k)}=GR^{(k+1)}である。L(k)L^{(k)}の第kk列から第nn列は単位行列の列であり、ℓ\ellの第11成分から第kk成分は00であるからL(k)ℓ=ℓL^{(k)}\ell=\ellである。W(k+1)W^{(k+1)}とW(k)W^{(k)}のj<kj<kの列の成分は等しいので、L(k)G=L(k)+ℓekT=L(k+1)L^{(k)}G=L^{(k)}+\ell e_k^{\mathsf T}=L^{(k+1)}である。よってB=L(k)GR(k+1)=L(k+1)R(k+1)B=L^{(k)}GR^{(k+1)}=L^{(k+1)}R^{(k+1)}であり、kkに関する帰納法により主張が成り立つ。消去が完了するならば、W=V(n)=W(n)W=V^{(n)}=W^{(n)}からL(n)=LL^{(n)}=L、R(n)=UR^{(n)}=Uである。▨

補題 2.4.n∈N≥1n\in\NN、A∈Mn(R)A\in M_n(\R)、1≤k≤n1\le k\le nとする。AAの部分ピボット付き消去を厳密算術または浮動小数点算術で実行して段1,…,k−11,\dots,k-1で失敗しないとし、段jjで選んだ添字をrjr_jとしてΠk:=Tk−1,rk−1⋯T1r1\Pi_k:=T_{k-1,r_{k-1}}\cdots T_{1r_1}(Π1:=I\Pi_1:=I)と置く。ΠkA\Pi_kAのピボット選択なしの消去を同じ算術で実行すると、次が成り立つ。

  1. 段1,…,k−11,\dots,k-1で失敗せず、段j≤k−1j\le k-1のピボットは部分ピボット付き消去の段jjのピボットに等しく、段kkの作業行列は部分ピボット付き消去の段kkの作業行列W(k)W^{(k)}に等しい。段1,…,k−11,\dots,k-1の演算は、二つの実行の間で被演算数ごとに一対一に対応する。
  2. 部分ピボット付き消去が完了し、その出力が(P,L,U)(P,L,U)であるならば、PAPAのピボット選択なしの消去は完了し、その出力は(L,U)(L,U)であって、各段のピボットは部分ピボット付き消去の対応する段のピボットに等しい。

証明.ΠkA\Pi_kAのピボット選択なしの消去の段jjの作業行列をW~(j)\widetilde W^{(j)}とし、1≤j≤k1\le j\le kに対してQj:=Tk−1,rk−1⋯TjrjQ_j:=T_{k-1,r_{k-1}}\cdots T_{jr_j}(Qk:=IQ_k:=I)と置く。j=1j=1ではW~(1)=ΠkA=Q1W(1)\widetilde W^{(1)}=\Pi_kA=Q_1W^{(1)}である。j<kj<kとし、W~(j)=QjW(j)\widetilde W^{(j)}=Q_jW^{(j)}と仮定する。Qj=Qj+1TjrjQ_j=Q_{j+1}T_{jr_j}であるからW~(j)=Qj+1V(j)\widetilde W^{(j)}=Q_{j+1}V^{(j)}である。Qj+1Q_{j+1}はm≥j+1m\ge j+1、rm≥mr_m\ge mを満たすTmrmT_{mr_m}の積であるから、{j+1,…,n}\{j+1,\dots,n\}の置換σ\sigmaが存在して、任意のX∈Mn(R)X\in M_n(\R)についてQj+1XQ_{j+1}Xの第ii行は、i≤ji\le jならばXXの第ii行、i>ji>jならばXXの第σ(i)\sigma(i)行である。したがってW~(j)\widetilde W^{(j)}の第jj行はV(j)V^{(j)}の第jj行であり、二つの消去の段jjのピボットはともにvjj(j)≠0v^{(j)}_{jj}\ne0である。定義 2.2 (3)により、段jjの後の作業行列の第ii行(i>ji>j)は、行交換後の第ii行と第jj行だけから同じ式で計算される。W~(j)\widetilde W^{(j)}の第ii行はV(j)V^{(j)}の第σ(i)\sigma(i)行であるから、W~(j+1)\widetilde W^{(j+1)}の第ii行の計算はW(j+1)W^{(j+1)}の第σ(i)\sigma(i)行の計算と被演算数ごとに一致し、二つの行は等しい。第11行から第jj行は、どちらの消去でも行交換後の行を写す。よってW~(j+1)=Qj+1W(j+1)\widetilde W^{(j+1)}=Q_{j+1}W^{(j+1)}である。jjに関する帰納法により1≤j≤k1\le j\le kについてW~(j)=QjW(j)\widetilde W^{(j)}=Q_jW^{(j)}であり、j=kj=kとしてW~(k)=W(k)\widetilde W^{(k)}=W^{(k)}を得る。これで(1)は示された。

(2)を示す。(1)をk=nk=nに適用する。段nnではrn=nr_n=nであるからP=ΠnP=\Pi_nであり、二つの消去の段nnのピボットはともにwnn(n)≠0w^{(n)}_{nn}\ne0である。二つの消去の最後の行列はともにW(n)W^{(n)}であるから、出力は等しい。▨

定理 2.5.n∈N≥1n\in\NNとし、A∈Mn(R)A\in M_n(\R)を正則行列とする。

  1. AAの部分ピボット付き消去を厳密算術で実行すると、どの段でも失敗しない。その出力(P,L,U)(P,L,U)はAAのピボット付き LU 分解であり、LLの成分の絶対値は11以下、UUの対角成分はすべて00でない。
  2. 任意のb∈Rnb\in\R^nに対して、Ly=PbLy=Pbの前進代入とUx=yUx=yの後退代入を厳密算術で実行して得るxxは、Ax=bAx=bのただ一つの解である。
  3. (1)の消去は、n(n−1)/2n(n-1)/2回の除算、(n−1)n(2n−1)/6(n-1)n(2n-1)/6回の乗算、同じ回数の減算を行い、四則演算の回数の合計は2n3/3−n2/2−n/62n^3/3-n^2/2-n/6である。(2)の二つの代入は、合計2n2−n2n^2-n回の四則演算を行う。

証明.(1)を示す。1≤k≤n1\le k\le nとし、段1,…,k−11,\dots,k-1で失敗しないと仮定する。補題 2.4 (1)により、ΠkA\Pi_kAのピボット選択なしの消去は段1,…,k−11,\dots,k-1で失敗せず、そのピボットは部分ピボット付き消去のピボットに等しく、段kkの作業行列はW(k)W^{(k)}である。補題 2.3によりΠkA=L(k)R(k)\Pi_kA=L^{(k)}R^{(k)}である。i<ki<kについて第ii行は段iiの後は変わらないので、R(k)R^{(k)}の(i,i)(i,i)成分は段iiのピボットであり、00でない。R(k)R^{(k)}のi≥k>ji\ge k>jの成分は00であるから、S:=(wij(k))k≤i,j≤nS:=(w^{(k)}_{ij})_{k\le i,j\le n}と置くと、det⁡R(k)\det R^{(k)}は段1,…,k−11,\dots,k-1のピボットの積とdet⁡S\det Sの積である。det⁡(ΠkA)=±det⁡A≠0\det(\Pi_kA)=\pm\det A\ne0であり、det⁡L(k)=1\det L^{(k)}=1であるからdet⁡S≠0\det S\ne0である。したがってSSの第11列は零ベクトルでなく、max⁡k≤i≤n∣wik(k)∣>0\max_{k\le i\le n}\lvert w^{(k)}_{ik}\rvert>0であり、段kkのピボットvkk(k)v^{(k)}_{kk}は00でない。kkに関する帰納法により、消去はどの段でも失敗しない。補題 2.4 (2)によりPAPAのピボット選択なしの消去は完了して出力(L,U)(L,U)を与え、補題 2.3により(L,U)(L,U)はPAPAの LU 分解である。LLのi>ji>jの成分は、段jjの乗数vi′j(j)/vjj(j)v^{(j)}_{i'j}/v^{(j)}_{jj}(i′>ji'>j)のいずれかが以後の行交換で移されたものであり、定義 2.2 (1)により∣vi′j(j)∣≤∣vjj(j)∣\lvert v^{(j)}_{i'j}\rvert\le\lvert v^{(j)}_{jj}\rvertであるから、絶対値は11以下である。UUの(k,k)(k,k)成分は段kkのピボットである。

(2)を示す。前進代入は各iiについてyi=(Pb)i−∑m<ilimymy_i=(Pb)_i-\sum_{m<i}l_{im}y_mを与えるからLy=PbLy=Pbであり、後退代入は各iiについてxi=(yi−∑m>iuimxm)/uiix_i=(y_i-\sum_{m>i}u_{im}x_m)/u_{ii}を与えるからUx=yUx=yである。したがってPAx=LUx=PbPAx=LUx=Pbであり、PPは正則であるからAx=bAx=bである。AAは正則であるから解はただ一つである。

(3)の証明は演習とする(問題 8.1)。▨

3 浮動小数点算術での LU 分解

注意 3.1.F=F(2,53,−1022,1023)F=F(2,53,-1022,1023)、fl⁡\operatorname{fl}を最近接偶数丸めとし、t:=fl⁡(1/3)=6004799503160661⋅2−54t:=\operatorname{fl}(1/3)=6004799503160661\cdot2^{-54}と置く。1/3−t=2−54/31/3-t=2^{-54}/3である。A:=(311t)∈M2(F)A:=\begin{pmatrix}3&1\\1&t\end{pmatrix}\in M_2(F)はdet⁡A=3t−1=−2−54≠0\det A=3t-1=-2^{-54}\ne0を満たし、正則である。AAの部分ピボット付き消去をFFとfl⁡\operatorname{fl}の浮動小数点算術で実行すると、段11ではr1=1r_1=1、乗数はfl⁡(1/3)=t\operatorname{fl}(1/3)=tであり、fl⁡(t⋅1)=t\operatorname{fl}(t\cdot1)=tから段22のピボットはfl⁡(t−t)=0\operatorname{fl}(t-t)=0である。したがって消去は段22で失敗する。同じ消去を厳密算術で実行すると、乗数は1/31/3、段22のピボットはt−1/3=−2−54/3t-1/3=-2^{-54}/3である。

補題 3.2.FFを浮動小数点数系、uuをその単位丸め誤差、fl⁡\operatorname{fl}をFFの最近接丸めとする。整数k≥0k\ge0とc,x1,…,xk,y1,…,yk∈Fc,x_1,\dots,x_k,y_1,\dots,y_k\in Fに対して、s0:=cs_0:=c、sm:=fl⁡(sm−1−fl⁡(xmym))s_m:=\operatorname{fl}\bigl(s_{m-1}-\operatorname{fl}(x_my_m)\bigr)(1≤m≤k1\le m\le k)と置く。各mmについて、厳密な積xmymx_my_mが00であるか正規範囲にあり、厳密な差sm−1−fl⁡(xmym)s_{m-1}-\operatorname{fl}(x_my_m)の絶対値がNmax⁡N_{\max}以下であるとする。整数j≥0j\ge0がju<1ju<1を満たすときγj:=ju/(1−ju)\gamma_j:=ju/(1-ju)と置く。

  1. ku<1ku<1ならば、∣θm∣≤γm\lvert\theta_m\rvert\le\gamma_m(1≤m≤k1\le m\le k)と∣θ′∣≤γk\lvert\theta'\rvert\le\gamma_kを満たす実数θ1,…,θk,θ′\theta_1,\dots,\theta_k,\theta'が存在して c=∑m=1kxmym(1+θm)+sk(1+θ′)c=\sum_{m=1}^kx_my_m(1+\theta_m)+s_k(1+\theta') が成り立つ。
  2. (k+1)u<1(k+1)u<1とし、d∈Fd\in Fがd≠0d\ne0を満たし、厳密な商sk/ds_k/dが00であるか正規範囲にあるとする。z:=fl⁡(sk/d)z:=\operatorname{fl}(s_k/d)と置くと、∣θm∣≤γm\lvert\theta_m\rvert\le\gamma_m(1≤m≤k1\le m\le k)と∣θ′′∣≤γk+1\lvert\theta''\rvert\le\gamma_{k+1}を満たす実数θ1,…,θk,θ′′\theta_1,\dots,\theta_k,\theta''が存在して c=∑m=1kxmym(1+θm)+zd(1+θ′′)c=\sum_{m=1}^kx_my_m(1+\theta_m)+zd(1+\theta'') が成り立つ。

証明.(1)を示す。k=0k=0ならばc=s0c=s_0であり、θ′:=0\theta':=0とすればよい。k≥1k\ge1とする。ku<1ku<1からu<1u<1である。各mmについて、§E20.1 系 3.2 (1)または§E20.1 系 3.2 (2)により∣μm∣≤u\lvert\mu_m\rvert\le uを満たすμm\mu_mが存在してfl⁡(xmym)=xmym(1+μm)\operatorname{fl}(x_my_m)=x_my_m(1+\mu_m)である。−fl⁡(xmym)∈F-\operatorname{fl}(x_my_m)\in Fとsm−1s_{m-1}の和に§E20.1 系 3.3を適用すると、∣αm∣≤u\lvert\alpha_m\rvert\le uを満たすαm\alpha_mが存在してsm=(sm−1−xmym(1+μm))(1+αm)s_m=\bigl(s_{m-1}-x_my_m(1+\mu_m)\bigr)(1+\alpha_m)である。1+αm≥1−u>01+\alpha_m\ge1-u>0であるから

sm−1=sm(1+αm)−1+xmym(1+μm)s_{m-1}=s_m(1+\alpha_m)^{-1}+x_my_m(1+\mu_m)

が成り立つ。m=1m=1としてc=s1(1+α1)−1+x1y1(1+μ1)c=s_1(1+\alpha_1)^{-1}+x_1y_1(1+\mu_1)である。2≤j≤k2\le j\le kについてc=sj−1∏q=1j−1(1+αq)−1+∑m=1j−1xmym(1+μm)∏q=1m−1(1+αq)−1c=s_{j-1}\prod_{q=1}^{j-1}(1+\alpha_q)^{-1}+\sum_{m=1}^{j-1}x_my_m(1+\mu_m)\prod_{q=1}^{m-1}(1+\alpha_q)^{-1}が成り立つならば、sj−1=sj(1+αj)−1+xjyj(1+μj)s_{j-1}=s_j(1+\alpha_j)^{-1}+x_jy_j(1+\mu_j)を代入して、同じ形の等式がjjについて成り立つ。jjに関する帰納法により

c=sk∏q=1k(1+αq)−1+∑m=1kxmym(1+μm)∏q=1m−1(1+αq)−1c=s_k\prod_{q=1}^k(1+\alpha_q)^{-1}+\sum_{m=1}^kx_my_m(1+\mu_m)\prod_{q=1}^{m-1}(1+\alpha_q)^{-1}

が成り立つ。第mm項の因子の個数はmm、sks_kの項の因子の個数はkkである。mu≤ku<1mu\le ku<1であるから、§E20.1 補題 4.1をそれぞれの積に適用して、∣θm∣≤γm\lvert\theta_m\rvert\le\gamma_mを満たすθm\theta_mと∣θ′∣≤γk\lvert\theta'\rvert\le\gamma_kを満たすθ′\theta'を得る。

(2)を示す。(k+1)u<1(k+1)u<1からku<1ku<1とu<1u<1が成り立つ。§E20.1 系 3.2 (1)または§E20.1 系 3.2 (2)により∣φ∣≤u\lvert\varphi\rvert\le uを満たすφ\varphiが存在してz=(sk/d)(1+φ)z=(s_k/d)(1+\varphi)であり、sk=zd(1+φ)−1s_k=zd(1+\varphi)^{-1}である。これを上の等式のsks_kに代入すると、zdzdの項の因子の個数はk+1k+1になる。§E20.1 補題 4.1を適用して∣θ′′∣≤γk+1\lvert\theta''\rvert\le\gamma_{k+1}を満たすθ′′\theta''を得て、θm\theta_mは(1)と同じにとる。▨

定理 3.3.FFを浮動小数点数系、uuをその単位丸め誤差、fl⁡\operatorname{fl}をFFの最近接丸めとし、n∈N≥1n\in\NNが(n−1)u<1(n-1)u<1を満たすとする。0≤j≤n−10\le j\le n-1に対してγj:=ju/(1−ju)\gamma_j:=ju/(1-ju)と置く。行列XXに対して、成分の絶対値を並べた行列を∣X∣\lvert X\rvertと書き、行列の不等式は成分ごとに解釈する。A∈Mn(F)A\in M_n(F)の部分ピボット付き消去をFFとfl⁡\operatorname{fl}の浮動小数点算術で実行すると、どの段でも失敗せず、実行が範囲条件を満たすとし、その出力を(P,L^,U^)(P,\widehat L,\widehat U)とする。ΔA:=L^U^−PA\Delta A:=\widehat L\widehat U-PAと置くとPA+ΔA=L^U^PA+\Delta A=\widehat L\widehat Uであり、任意の1≤i,j≤n1\le i,j\le nに対して

∣Δaij∣≤γmin⁡{i−1,j}∑m=1min⁡{i,j}∣l^im∣∣u^mj∣\lvert\Delta a_{ij}\rvert\le\gamma_{\min\{i-1,j\}}\sum_{m=1}^{\min\{i,j\}}\lvert\widehat l_{im}\rvert\lvert\widehat u_{mj}\rvert

が成り立つ。特に∣ΔA∣≤γn−1∣L^∣∣U^∣\lvert\Delta A\rvert\le\gamma_{n-1}\lvert\widehat L\rvert\lvert\widehat U\rvertである。AAのピボット選択なしの消去を同じ仮定の下で実行した場合も、その出力(L^,U^)(\widehat L,\widehat U)とP=IP=Iについて同じ結論が成り立つ。

証明.B:=PAB:=PAと置く。補題 2.4 (2)により、BBのピボット選択なしの消去を同じ浮動小数点算術で実行すると完了し、出力は(L^,U^)(\widehat L,\widehat U)である。補題 2.4 (1)によりその演算は部分ピボット付き消去の演算と被演算数ごとに一致するので、この実行も範囲条件を満たす。ピボット選択なしの消去の場合はB:=AB:=Aとする。以下、W(m)W^{(m)}をBBのピボット選択なしの消去の作業行列とする。1≤i,j≤n1\le i,j\le nを固定する。定義 2.2 (3)により、作業行列の第11行から第mm行は段mmの後は変わらず、i>mi>mの行の第mm列は段mmで乗数が書き込まれた後は変わらない。したがってu^mj=wmj(m)\widehat u_{mj}=w^{(m)}_{mj}(m≤jm\le j)、l^im=wim(m+1)\widehat l_{im}=w^{(m+1)}_{im}(m<im<i)であり、(i,j)(i,j)成分は

wij(1)=bij,wij(m+1)=fl⁡(wij(m)−fl⁡(l^imu^mj))(1≤m<min⁡{i,j})w^{(1)}_{ij}=b_{ij},\qquad w^{(m+1)}_{ij}=\operatorname{fl}\bigl(w^{(m)}_{ij}-\operatorname{fl}(\widehat l_{im}\widehat u_{mj})\bigr)\quad(1\le m<\min\{i,j\})

を満たす。さらにi≤ji\le jならばu^ij=wij(i)\widehat u_{ij}=w^{(i)}_{ij}であり、i>ji>jならばl^ij=fl⁡(wij(j)/u^jj)\widehat l_{ij}=\operatorname{fl}(w^{(j)}_{ij}/\widehat u_{jj})である。L^\widehat Lは下三角、U^\widehat Uは上三角であるから、ΔA\Delta Aの(i,j)(i,j)成分はΔbij:=∑m=1min⁡{i,j}l^imu^mj−bij\Delta b_{ij}:=\sum_{m=1}^{\min\{i,j\}}\widehat l_{im}\widehat u_{mj}-b_{ij}である。

i≤ji\le jの場合、補題 3.2 (1)をk=i−1k=i-1、c=bijc=b_{ij}、(xm,ym)=(l^im,u^mj)(x_m,y_m)=(\widehat l_{im},\widehat u_{mj})に適用する。(i−1)u≤(n−1)u<1(i-1)u\le(n-1)u<1であり、si−1=u^ijs_{i-1}=\widehat u_{ij}、l^ii=1\widehat l_{ii}=1であるから

Δbij=−∑m=1i−1l^imu^mjθm−l^iiu^ijθ′\Delta b_{ij}=-\sum_{m=1}^{i-1}\widehat l_{im}\widehat u_{mj}\theta_m-\widehat l_{ii}\widehat u_{ij}\theta'

である。m≤i−1m\le i-1ならばγm≤γi−1\gamma_m\le\gamma_{i-1}であるから、∣Δbij∣≤γi−1∑m=1i∣l^im∣∣u^mj∣\lvert\Delta b_{ij}\rvert\le\gamma_{i-1}\sum_{m=1}^{i}\lvert\widehat l_{im}\rvert\lvert\widehat u_{mj}\rvertである。

i>ji>jの場合、補題 3.2 (2)をk=j−1k=j-1、c=bijc=b_{ij}、(xm,ym)=(l^im,u^mj)(x_m,y_m)=(\widehat l_{im},\widehat u_{mj})、d=u^jjd=\widehat u_{jj}に適用する。ju≤(n−1)u<1ju\le(n-1)u<1であり、z=l^ijz=\widehat l_{ij}であるから

Δbij=−∑m=1j−1l^imu^mjθm−l^iju^jjθ′′\Delta b_{ij}=-\sum_{m=1}^{j-1}\widehat l_{im}\widehat u_{mj}\theta_m-\widehat l_{ij}\widehat u_{jj}\theta''

であり、∣Δbij∣≤γj∑m=1j∣l^im∣∣u^mj∣\lvert\Delta b_{ij}\rvert\le\gamma_j\sum_{m=1}^{j}\lvert\widehat l_{im}\rvert\lvert\widehat u_{mj}\rvertである。

i≤ji\le jならばmin⁡{i−1,j}=i−1\min\{i-1,j\}=i-1、i>ji>jならばmin⁡{i−1,j}=j\min\{i-1,j\}=jであるから、主張の評価が成り立つ。γj\gamma_jはjjについて単調非減少であり、min⁡{i−1,j}≤n−1\min\{i-1,j\}\le n-1であるから、∣ΔA∣≤γn−1∣L^∣∣U^∣\lvert\Delta A\rvert\le\gamma_{n-1}\lvert\widehat L\rvert\lvert\widehat U\rvertである。▨

定義 3.4.n∈N≥1n\in\NN、A∈Mn(R)A\in M_n(\R)、A≠0A\ne0とし、AAの部分ピボット付き消去またはピボット選択なしの消去を、厳密算術または浮動小数点算術で実行して完了したとする。その作業行列W(1),…,W(n)W^{(1)},\dots,W^{(n)}について

g:=max⁡1≤k≤nmax⁡k≤i,j≤n∣wij(k)∣max⁡1≤i,j≤n∣aij∣g:=\frac{\max_{1\le k\le n}\max_{k\le i,j\le n}\lvert w^{(k)}_{ij}\rvert}{\max_{1\le i,j\le n}\lvert a_{ij}\rvert}

をその実行の 成長因子 (growth factor) という。分子の最大値は、各段kkの作業行列の第kk行から第nn行、第kk列から第nn列の成分にわたってとり、保存した乗数を含めない。

補題 3.5.n∈N≥1n\in\NNとし、Rn\R^nにノルム∥h∥∞:=max⁡1≤i≤n∣hi∣\lVert h\rVert_\infty:=\max_{1\le i\le n}\lvert h_i\rvertを入れ、X∈Mn(R)X\in M_n(\R)の作用素ノルム(§E20.2 定義 1.1)を∥X∥∞\lVert X\rVert_\inftyと書く。

  1. ∥X∥∞=max⁡1≤i≤n∑j=1n∣xij∣\lVert X\rVert_\infty=\max_{1\le i\le n}\sum_{j=1}^n\lvert x_{ij}\rvertが成り立つ。
  2. X,Y∈Mn(R)X,Y\in M_n(\R)が任意のi,ji,jについて∣xij∣≤yij\lvert x_{ij}\rvert\le y_{ij}を満たすならば、∥X∥∞≤∥Y∥∞\lVert X\rVert_\infty\le\lVert Y\rVert_\inftyである。
  3. 任意の置換行列QQに対して∥QX∥∞=∥X∥∞\lVert QX\rVert_\infty=\lVert X\rVert_\inftyである。

証明.(1)を示す。∥h∥∞=1\lVert h\rVert_\infty=1ならば、各iiについて∣(Xh)i∣≤∑j∣xij∣\lvert(Xh)_i\rvert\le\sum_j\lvert x_{ij}\rvertであるから、∥X∥∞\lVert X\rVert_\inftyは右辺以下である。右辺の最大値をとるiiについて、xij≥0x_{ij}\ge0ならばhj:=1h_j:=1、xij<0x_{ij}<0ならばhj:=−1h_j:=-1と置くと、∥h∥∞=1\lVert h\rVert_\infty=1かつ(Xh)i=∑j∣xij∣(Xh)_i=\sum_j\lvert x_{ij}\rvertである。XXの各行の成分の絶対値の和はYYの対応する行の成分の和以下であり、QXQXの行はXXの行を並べ替えたものであるから、(1)により(2)と(3)が成り立つ。▨

命題 3.6.n∈N≥1n\in\NN、A∈Mn(R)A\in M_n(\R)、A≠0A\ne0とし、amax⁡:=max⁡1≤i,j≤n∣aij∣a_{\max}:=\max_{1\le i,j\le n}\lvert a_{ij}\rvertと置く。

  1. AAの部分ピボット付き消去またはピボット選択なしの消去を、厳密算術または浮動小数点算術で実行して完了したとし、出力の上三角行列をUU、成長因子をggとする。このとき任意のi,ji,jについて∣uij∣≤gamax⁡\lvert u_{ij}\rvert\le ga_{\max}である。
  2. AAが正則ならば、AAの部分ピボット付き消去を厳密算術で実行したときの成長因子は2n−12^{n-1}以下である。
  3. F=F(β,p,emin⁡,emax⁡)F=F(\beta,p,e_{\min},e_{\max})をemin⁡≤0≤emax⁡e_{\min}\le0\le e_{\max}を満たす浮動小数点数系、uuをその単位丸め誤差、fl⁡\operatorname{fl}をFFの最近接丸めとし、A∈Mn(F)A\in M_n(F)とする。AAの部分ピボット付き消去をFFとfl⁡\operatorname{fl}の浮動小数点算術で実行すると完了し、実行が範囲条件を満たすとする。このとき出力の下三角行列の成分の絶対値は11以下であり、成長因子は[(1+u)(2+u)]n−1[(1+u)(2+u)]^{n-1}以下である。
  4. (3)の仮定に加えて(n−1)u<1(n-1)u<1とし、γn−1:=(n−1)u/(1−(n−1)u)\gamma_{n-1}:=(n-1)u/(1-(n-1)u)と置く。出力を(P,L^,U^)(P,\widehat L,\widehat U)、成長因子をgg、ΔA:=L^U^−PA\Delta A:=\widehat L\widehat U-PAとすると、∥ΔA∥∞≤n2γn−1g∥A∥∞\lVert\Delta A\rVert_\infty\le n^2\gamma_{n-1}g\lVert A\rVert_\inftyが成り立つ。

証明. 各実行についてgk:=max⁡k≤i,j≤n∣wij(k)∣g_k:=\max_{k\le i,j\le n}\lvert w^{(k)}_{ij}\rvertと置く。g1=amax⁡g_1=a_{\max}であり、成長因子はmax⁡kgk/amax⁡\max_kg_k/a_{\max}である。V(k)V^{(k)}はW(k)W^{(k)}の第kk行以降の二つの行を入れ替えたものであるから、max⁡k≤i,j≤n∣vij(k)∣=gk\max_{k\le i,j\le n}\lvert v^{(k)}_{ij}\rvert=g_kである。

(1)を示す。第kk行は段kkの後は変わらないので、j≥kj\ge kについてukj=vkj(k)u_{kj}=v^{(k)}_{kj}であり、∣ukj∣≤gk≤gamax⁡\lvert u_{kj}\rvert\le g_k\le ga_{\max}である。

(2)を示す。定理 2.5 (1)により消去は完了する。定義 2.2 (1)によりi>ki>kについて∣vik(k)∣≤∣vkk(k)∣\lvert v^{(k)}_{ik}\rvert\le\lvert v^{(k)}_{kk}\rvertであるから、段kkの乗数の絶対値は11以下である。i,j>ki,j>kについて∣wij(k+1)∣≤∣vij(k)∣+∣vkj(k)∣≤2gk\lvert w^{(k+1)}_{ij}\rvert\le\lvert v^{(k)}_{ij}\rvert+\lvert v^{(k)}_{kj}\rvert\le2g_kであるからgk+1≤2gkg_{k+1}\le2g_kであり、gk≤2k−1g1g_k\le2^{k-1}g_1である。したがって成長因子は2n−12^{n-1}以下である。

(3)を示す。emin⁡≤0≤emax⁡e_{\min}\le0\le e_{\max}であるから1=βp−1s01=\beta^{p-1}s_0はFFの正規化数であり、F=−FF=-Fから−1∈F-1\in Fである。実数zzが∣z∣≤1\lvert z\rvert\le1を満たすとき、fl⁡(z)>1\operatorname{fl}(z)>1ならばz≤1<fl⁡(z)z\le1<\operatorname{fl}(z)から∣1−z∣<∣fl⁡(z)−z∣\lvert1-z\rvert<\lvert\operatorname{fl}(z)-z\rvertとなり、fl⁡(z)\operatorname{fl}(z)がzzの最近接点であることに反する。同様にfl⁡(z)≥−1\operatorname{fl}(z)\ge-1である。段kkの乗数はz=vik(k)/vkk(k)z=v^{(k)}_{ik}/v^{(k)}_{kk}(∣z∣≤1\lvert z\rvert\le1)に対するfl⁡(z)\operatorname{fl}(z)であるから、絶対値は11以下である。出力の下三角行列の成分は乗数を行交換で移したものであり、絶対値は11以下である。i,j>ki,j>kについて、乗数をl^\widehat lと書くと、§E20.1 系 3.2 (1)または§E20.1 系 3.2 (2)により∣fl⁡(l^vkj(k))∣≤(1+u)∣l^∣∣vkj(k)∣≤(1+u)gk\lvert\operatorname{fl}(\widehat lv^{(k)}_{kj})\rvert\le(1+u)\lvert\widehat l\rvert\lvert v^{(k)}_{kj}\rvert\le(1+u)g_kであり、§E20.1 系 3.3により

∣wij(k+1)∣≤(1+u)(∣vij(k)∣+∣fl⁡(l^vkj(k))∣)≤(1+u)(2+u)gk\lvert w^{(k+1)}_{ij}\rvert\le(1+u)\bigl(\lvert v^{(k)}_{ij}\rvert+\lvert\operatorname{fl}(\widehat lv^{(k)}_{kj})\rvert\bigr)\le(1+u)(2+u)g_k

である。kkに関する帰納法によりgk≤[(1+u)(2+u)]k−1g1g_k\le[(1+u)(2+u)]^{k-1}g_1であり、成長因子は[(1+u)(2+u)]n−1[(1+u)(2+u)]^{n-1}以下である。

(4)を示す。定理 3.3により∣ΔA∣≤γn−1∣L^∣∣U^∣\lvert\Delta A\rvert\le\gamma_{n-1}\lvert\widehat L\rvert\lvert\widehat U\rvertである。(3)と(1)により、(∣L^∣∣U^∣)ij=∑m≤min⁡{i,j}∣l^im∣∣u^mj∣≤ngamax⁡(\lvert\widehat L\rvert\lvert\widehat U\rvert)_{ij}=\sum_{m\le\min\{i,j\}}\lvert\widehat l_{im}\rvert\lvert\widehat u_{mj}\rvert\le nga_{\max}である。γn−1∣L^∣∣U^∣\gamma_{n-1}\lvert\widehat L\rvert\lvert\widehat U\rvertの各行の成分の和はn2γn−1gamax⁡n^2\gamma_{n-1}ga_{\max}以下であり、amax⁡a_{\max}はAAのある行の成分の絶対値の和以下であるから、補題 3.5 (1)と補題 3.5 (2)により∥ΔA∥∞≤n2γn−1gamax⁡≤n2γn−1g∥A∥∞\lVert\Delta A\rVert_\infty\le n^2\gamma_{n-1}ga_{\max}\le n^2\gamma_{n-1}g\lVert A\rVert_\inftyである。▨

例 3.7.n≥2n\ge2とし、Wn∈Mn(R)W_n\in M_n(\R)を、対角成分と第nn列の成分が11、狭義下三角成分が−1-1、その他の成分が00の行列とする。

WnW_nの部分ピボット付き消去を厳密算術で実行する。1≤k<n1\le k<nとし、段kkの作業行列のi,j≥ki,j\ge kの成分が

wij(k)={2k−1(j=n),1(i=j<n),−1(j<i, j<n),0(i<j<n)w^{(k)}_{ij}=\begin{cases}2^{k-1}&(j=n),\\1&(i=j<n),\\-1&(j<i,\ j<n),\\0&(i<j<n)\end{cases}

で与えられるとする。第kk列のi≥ki\ge kの成分の絶対値はすべて11であり、最小の添字を選ぶのでrk=kr_k=k、ピボットは11、乗数はすべて−1-1である。i,j>ki,j>kについてwij(k+1)=wij(k)+wkj(k)w^{(k+1)}_{ij}=w^{(k)}_{ij}+w^{(k)}_{kj}であり、wkj(k)w^{(k)}_{kj}はk<j<nk<j<nで00、j=nj=nで2k−12^{k-1}であるから、第nn列の成分は2k−1+2k−1=2k2^{k-1}+2^{k-1}=2^kになり、その他の成分は変わらない。したがって段k+1k+1の作業行列のi,j≥k+1i,j\ge k+1の成分は、上の式のkkをk+1k+1に替えた式で与えられる。W(1)=WnW^{(1)}=W_nの成分はk=1k=1の式で与えられるから、kkに関する帰納法により、すべての段kkで上の式が成り立ち、行交換は起きない。段kkの成分の絶対値の最大値は2k−12^{k-1}、unn=2n−1u_{nn}=2^{n-1}であり、成長因子は2n−12^{n-1}である。行交換が起きないので、この消去はピボット選択なしの消去に一致する。補題 2.3によりWn=LUW_n=LUであり、det⁡Wn=2n−1≠0\det W_n=2^{n-1}\ne0であるからWnW_nは正則であって、命題 3.6 (2)の上界は等号で成り立つ。

F=F(2,p,emin⁡,emax⁡)F=F(2,p,e_{\min},e_{\max})がemin⁡≤0e_{\min}\le0とn−1≤emax⁡n-1\le e_{\max}を満たすとし、fl⁡\operatorname{fl}をFFの任意の最近接丸めとする。上の計算の演算の厳密な結果は、除算−1/1=−1-1/1=-1、乗算(−1)⋅0=0(-1)\cdot0=0と(−1)⋅2k−1(-1)\cdot2^{k-1}、減算wij(k)−0∈{−1,0,1}w^{(k)}_{ij}-0\in\{-1,0,1\}と2k−1−(−2k−1)=2k2^{k-1}-(-2^{k-1})=2^k(1≤k≤n−11\le k\le n-1)であり、0≤j≤n−10\le j\le n-1に対する2j=2p−1sj2^j=2^{p-1}s_jはFFの正規化数であるから、すべてFFの元である。§E20.1 系 3.2 (1)により浮動小数点算術の各演算は厳密であり、実行は範囲条件を満たし、ピボットの選択も厳密算術と同じである。したがって浮動小数点算術の出力は厳密算術の出力に等しく、補題 2.3によりΔA=L^U^−Wn=0\Delta A=\widehat L\widehat U-W_n=0である。さらにFFの単位丸め誤差uuが(n−1)u<1(n-1)u<1を満たすならば、命題 3.6 (4)の右辺は、g=2n−1g=2^{n-1}と∥Wn∥∞=n\lVert W_n\rVert_\infty=nからn3γn−12n−1n^3\gamma_{n-1}2^{n-1}である。

定理 3.8.FFを浮動小数点数系、uuをその単位丸め誤差、fl⁡\operatorname{fl}をFFの最近接丸めとし、n∈N≥1n\in\NNがnu<1nu<1を満たすとする。0≤j≤n0\le j\le nに対してγj:=ju/(1−ju)\gamma_j:=ju/(1-ju)と置く。行列の絶対値と不等式は成分ごとに解釈する。

  1. T∈Mn(F)T\in M_n(F)を対角成分がすべて00でない下三角行列または上三角行列、c∈Fnc\in F^nとし、Ty=cTy=cの前進代入または後退代入をFFとfl⁡\operatorname{fl}の浮動小数点算術で実行すると範囲条件を満たすとする。その計算値をy^\widehat yとすると、∣E∣≤γn∣T∣\lvert E\rvert\le\gamma_n\lvert T\rvertを満たすE∈Mn(R)E\in M_n(\R)が存在して(T+E)y^=c(T+E)\widehat y=cが成り立つ。
  2. A∈Mn(F)A\in M_n(F)と(P,L^,U^)(P,\widehat L,\widehat U)が定理 3.3の仮定を満たすとし、b∈Fnb\in F^nとする。L^y=Pb\widehat Ly=Pbの前進代入の計算値をy^\widehat y、U^x=y^\widehat Ux=\widehat yの後退代入の計算値をx^\widehat xとし、二つの代入をFFとfl⁡\operatorname{fl}の浮動小数点算術で実行すると範囲条件を満たすとする。このとき∣E∣≤(3γn+γn2)∣L^∣∣U^∣\lvert E\rvert\le(3\gamma_n+\gamma_n^2)\lvert\widehat L\rvert\lvert\widehat U\rvertを満たすE∈Mn(R)E\in M_n(\R)が存在して(PA+E)x^=Pb(PA+E)\widehat x=Pbが成り立つ。

証明.(1)を示す。TTが下三角行列であるとし、1≤i≤n1\le i\le nを固定する。前進代入の第ii段は、補題 3.2の漸化式をk=i−1k=i-1、c=cic=c_i、(xm,ym)=(tim,y^m)(x_m,y_m)=(t_{im},\widehat y_m)として計算し、y^i=fl⁡(si−1/tii)\widehat y_i=\operatorname{fl}(s_{i-1}/t_{ii})(対角成分がすべて11のときはy^i=si−1\widehat y_i=s_{i-1})と置くものであり、範囲条件により補題の仮定が満たされる。補題 3.2 (2)(対角成分がすべて11のときは補題 3.2 (1))をd=tiid=t_{ii}として適用すると、∣θim∣≤γm\lvert\theta_{im}\rvert\le\gamma_mと∣θii∣≤γi\lvert\theta_{ii}\rvert\le\gamma_iを満たす実数により

ci=∑m=1i−1timy^m(1+θim)+tiiy^i(1+θii)c_i=\sum_{m=1}^{i-1}t_{im}\widehat y_m(1+\theta_{im})+t_{ii}\widehat y_i(1+\theta_{ii})

が成り立つ。m≤im\le iについてeim:=timθime_{im}:=t_{im}\theta_{im}、m>im>iについてeim:=0e_{im}:=0と置くと、(T+E)y^=c(T+E)\widehat y=cであり、γm≤γi≤γn\gamma_m\le\gamma_i\le\gamma_nから∣E∣≤γn∣T∣\lvert E\rvert\le\gamma_n\lvert T\rvertである。TTが上三角行列の場合は、第ii段に同じ補題をk=n−ik=n-i、(x1,y1),…,(xn−i,yn−i)=(ti,i+1,y^i+1),…,(tin,y^n)(x_1,y_1),\dots,(x_{n-i},y_{n-i})=(t_{i,i+1},\widehat y_{i+1}),\dots,(t_{in},\widehat y_n)として適用する。各項の因子の個数はn−i+1n-i+1以下であり、n−i+1≤nn-i+1\le nであるから、同じ結論を得る。

(2)を示す。Pb∈FnPb\in F^nとy^∈Fn\widehat y\in F^nに(1)を適用すると、∣E1∣≤γn∣L^∣\lvert E_1\rvert\le\gamma_n\lvert\widehat L\rvertと∣E2∣≤γn∣U^∣\lvert E_2\rvert\le\gamma_n\lvert\widehat U\rvertを満たすE1,E2E_1,E_2が存在して(L^+E1)y^=Pb(\widehat L+E_1)\widehat y=Pb、(U^+E2)x^=y^(\widehat U+E_2)\widehat x=\widehat yが成り立つ。定理 3.3のΔA\Delta Aを用いると

Pb=(L^+E1)(U^+E2)x^=(PA+ΔA+E1U^+L^E2+E1E2)x^Pb=(\widehat L+E_1)(\widehat U+E_2)\widehat x=(PA+\Delta A+E_1\widehat U+\widehat LE_2+E_1E_2)\widehat x

である。E:=ΔA+E1U^+L^E2+E1E2E:=\Delta A+E_1\widehat U+\widehat LE_2+E_1E_2と置くと、∣XY∣≤∣X∣∣Y∣\lvert XY\rvert\le\lvert X\rvert\lvert Y\rvertとγn−1≤γn\gamma_{n-1}\le\gamma_nにより∣E∣≤(γn−1+2γn+γn2)∣L^∣∣U^∣≤(3γn+γn2)∣L^∣∣U^∣\lvert E\rvert\le(\gamma_{n-1}+2\gamma_n+\gamma_n^2)\lvert\widehat L\rvert\lvert\widehat U\rvert\le(3\gamma_n+\gamma_n^2)\lvert\widehat L\rvert\lvert\widehat U\rvertである。▨

注意 3.9.F=F(2,53,−1022,1023)F=F(2,53,-1022,1023)、fl⁡\operatorname{fl}を最近接偶数丸めとし、

A:=(2−60111),b:=(12)A:=\begin{pmatrix}2^{-60}&1\\1&1\end{pmatrix},\qquad b:=\begin{pmatrix}1\\2\end{pmatrix}

とする。Ax=bAx=bの解はx=(1/(1−2−60), (1−2−59)/(1−2−60))x=\bigl(1/(1-2^{-60}),\ (1-2^{-59})/(1-2^{-60})\bigr)である。

AAのピボット選択なしの消去を浮動小数点算術で実行すると、乗数はfl⁡(1/2−60)=260\operatorname{fl}(1/2^{-60})=2^{60}であり、段22のピボットはfl⁡(1−fl⁡(260⋅1))=fl⁡(1−260)=−260\operatorname{fl}(1-\operatorname{fl}(2^{60}\cdot1))=\operatorname{fl}(1-2^{60})=-2^{60}である。実際、260−12^{60}-1は区間[259,260)[2^{59},2^{60})にあり、その区間のFFの元は272^7の倍数であるから、260−12^{60}-1の最近接点は2602^{60}である。L^U^−A\widehat L\widehat U-Aは(2,2)(2,2)成分が−1-1でその他の成分が00の行列であり、(∣L^∣∣U^∣)22=261(\lvert\widehat L\rvert\lvert\widehat U\rvert)_{22}=2^{61}である。代入の計算値はy^=(1,fl⁡(2−260))=(1,−260)\widehat y=(1,\operatorname{fl}(2-2^{60}))=(1,-2^{60})、x^2=fl⁡(−260/(−260))=1\widehat x_2=\operatorname{fl}(-2^{60}/(-2^{60}))=1、x^1=fl⁡(fl⁡(1−1)/2−60)=0\widehat x_1=\operatorname{fl}(\operatorname{fl}(1-1)/2^{-60})=0であり、∣x^1−x1∣>1\lvert\widehat x_1-x_1\rvert>1である。

部分ピボット付き消去ではr1=2r_1=2であり、乗数は2−602^{-60}、段22のピボットはfl⁡(1−2−60)=1\operatorname{fl}(1-2^{-60})=1である。L^U^−PA\widehat L\widehat U-PAは(2,2)(2,2)成分が2−602^{-60}でその他の成分が00の行列であり、(∣L^∣∣U^∣)22=1+2−60(\lvert\widehat L\rvert\lvert\widehat U\rvert)_{22}=1+2^{-60}である。代入の計算値はy^=(2,fl⁡(1−2−59))=(2,1)\widehat y=(2,\operatorname{fl}(1-2^{-59}))=(2,1)、x^=(1,1)\widehat x=(1,1)であり、∣x^i−xi∣=1/(260−1)\lvert\widehat x_i-x_i\rvert=1/(2^{60}-1)(i=1,2i=1,2)である。

部分ピボット付き消去の乗数の絶対値は命題 3.6 (3)により11以下であるが、例 3.7の行列ではU^\widehat Uの成分が2n−12^{n-1}に達するので、∣L^∣∣U^∣\lvert\widehat L\rvert\lvert\widehat U\rvertは乗数の条件だけからはAAの成分のnnによらない定数倍で抑えられない。

同じAAとmm個の右辺b(1),…,b(m)b^{(1)},\dots,b^{(m)}に対する方程式は、分解を一度計算して代入だけを繰り返すと、定理 2.5 (3)により合計2n3/3−n2/2−n/6+m(2n2−n)2n^3/3-n^2/2-n/6+m(2n^2-n)回の四則演算で解かれる。浮動小数点算術では、各右辺の計算値が同じL^,U^\widehat L,\widehat Uについて定理 3.8 (2)の評価を満たす。

4 行列の条件数と残差

定義 4.1.n∈N≥1n\in\NN、T∈Mn(C)T\in M_n(\C)とする。det⁡(λI−T)=0\det(\lambda I-T)=0を満たす複素数λ\lambdaの絶対値の最大値をρ(T)\rho(T)と書き、TTの スペクトル半径 (spectral radius) という。実行列A∈Mn(R)A\in M_n(\R)はMn(C)M_n(\C)の元として扱い、ρ(A)\rho(A)を同じ式で定める。

定義 4.2.n∈N≥1n\in\NNとし、T∈Cn×nT\in\C^{n\times n}とする。Cn\C^nにノルム∥⋅∥\lVert\cdot\rVertを固定する。∥T∥:=sup⁡{∥Th∥∣h∈Cn, ∥h∥=1}\lVert T\rVert:=\sup\{\lVert Th\rVert\mid h\in\C^n,\ \lVert h\rVert=1\}を、このノルムに関するTTの作用素ノルムという。∥T∥<∞\lVert T\rVert<\inftyならば、任意のh∈Cnh\in\C^nに対して∥Th∥≤∥T∥∥h∥\lVert Th\rVert\le\lVert T\rVert\lVert h\rVertが成り立つ。実行列T∈Rn×nT\in\R^{n\times n}はCn×n\C^{n\times n}の元として扱う。

定義 4.3.n∈N≥1n\in\NNとし、Rn\R^nにノルム∥⋅∥\lVert\cdot\rVertを固定する。A∈Mn(R)A\in M_n(\R)に対して、定義域と値域にこのノルムを入れた作用素ノルムを∥A∥\lVert A\rVertと書く。AAが正則ならばκ(A):=∥A∥∥A−1∥\kappa(A):=\lVert A\rVert\lVert A^{-1}\rVert、AAが正則でないならばκ(A):=+∞\kappa(A):=+\inftyと置き、κ(A)\kappa(A)をAAの 条件数 (condition number of a matrix) という。Rn\R^nのノルムが∥h∥∞=max⁡i∣hi∣\lVert h\rVert_\infty=\max_i\lvert h_i\rvertのときと Euclid ノルム∥h∥2\lVert h\rVert_2のとき、κ(A)\kappa(A)をそれぞれκ∞(A)\kappa_\infty(A)、κ2(A)\kappa_2(A)と書く。

命題 4.4.n∈N≥1n\in\NNとし、Rn\R^nにノルム∥⋅∥\lVert\cdot\rVertを固定し、A∈Mn(R)A\in M_n(\R)とする。

  1. ρ(A)≤∥A∥\rho(A)\le\lVert A\rVertが成り立つ。
  2. κ(A)≥1\kappa(A)\ge1が成り立つ。
  3. AAが正則であるとし、SA ⁣:Rn→RnS_A\colon\R^n\to\R^nをSA(b):=A−1bS_A(b):=A^{-1}bで定める。b≠0b\ne0ならばκrel(SA,b)=∥A−1∥∥b∥/∥A−1b∥≤κ(A)\kappa_{\mathrm{rel}}(S_A,b)=\lVert A^{-1}\rVert\lVert b\rVert/\lVert A^{-1}b\rVert\le\kappa(A)であり、max⁡b≠0κrel(SA,b)=κ(A)\max_{b\ne0}\kappa_{\mathrm{rel}}(S_A,b)=\kappa(A)である。
  4. AAが正則であり、σ1≥⋯≥σn\sigma_1\ge\dots\ge\sigma_nがAAの特異値であるならば、σn>0\sigma_n>0かつκ2(A)=σ1/σn\kappa_2(A)=\sigma_1/\sigma_nである。
  5. AAが実対称かつ正定値であり、λmax⁡\lambda_{\max}、λmin⁡\lambda_{\min}がAAの最大と最小の固有値であるならば、λmin⁡>0\lambda_{\min}>0かつκ2(A)=λmax⁡/λmin⁡\kappa_2(A)=\lambda_{\max}/\lambda_{\min}である。

証明.(1)を示す。λ∈C\lambda\in\Cがdet⁡(λI−A)=0\det(\lambda I-A)=0を満たすとし、z∈Cn∖{0}z\in\C^n\setminus\{0\}をAz=λzAz=\lambda zを満たすベクトルとする。w∈Cnw\in\C^nの実部をRe⁡w∈Rn\operatorname{Re}w\in\R^nと書き、N(w):=sup⁡θ∈R∥Re⁡(eiθw)∥N(w):=\sup_{\theta\in\R}\lVert\operatorname{Re}(e^{i\theta}w)\rVertと置く。w=x+iyw=x+iy(x,y∈Rnx,y\in\R^n)ならばRe⁡(eiθw)=xcos⁡θ−ysin⁡θ\operatorname{Re}(e^{i\theta}w)=x\cos\theta-y\sin\thetaであるから、N(w)≤∥x∥+∥y∥N(w)\le\lVert x\rVert+\lVert y\rVertであり、θ=0\theta=0とθ=−π/2\theta=-\pi/2からN(w)≥max⁡{∥x∥,∥y∥}N(w)\ge\max\{\lVert x\rVert,\lVert y\rVert\}である。したがってN(z)>0N(z)>0である。AAは実行列であるからRe⁡(eiθAw)=ARe⁡(eiθw)\operatorname{Re}(e^{i\theta}Aw)=A\operatorname{Re}(e^{i\theta}w)であり、§E20.2 補題 1.2 (1)によりN(Aw)≤∥A∥N(w)N(Aw)\le\lVert A\rVert N(w)である。λ=∣λ∣eiφ\lambda=\lvert\lambda\rvert e^{i\varphi}と書くとRe⁡(eiθλw)=∣λ∣Re⁡(ei(θ+φ)w)\operatorname{Re}(e^{i\theta}\lambda w)=\lvert\lambda\rvert\operatorname{Re}(e^{i(\theta+\varphi)}w)であるから、N(λw)=∣λ∣N(w)N(\lambda w)=\lvert\lambda\rvert N(w)である。よって∣λ∣N(z)=N(Az)≤∥A∥N(z)\lvert\lambda\rvert N(z)=N(Az)\le\lVert A\rVert N(z)であり、∣λ∣≤∥A∥\lvert\lambda\rvert\le\lVert A\rVertである。

(2)を示す。AAが正則でなければκ(A)=+∞\kappa(A)=+\inftyである。AAが正則であるとする。X,Y∈Mn(R)X,Y\in M_n(\R)とh∈Rnh\in\R^nについて、§E20.2 補題 1.2 (1)により∥XYh∥≤∥X∥∥Y∥∥h∥\lVert XYh\rVert\le\lVert X\rVert\lVert Y\rVert\lVert h\rVertであるから∥XY∥≤∥X∥∥Y∥\lVert XY\rVert\le\lVert X\rVert\lVert Y\rVertである。∥I∥=1\lVert I\rVert=1であるから1=∥AA−1∥≤∥A∥∥A−1∥1=\lVert AA^{-1}\rVert\le\lVert A\rVert\lVert A^{-1}\rVertである。

(3)を示す。SAS_Aは可逆な線形写像であり、SA−1(h)=AhS_A^{-1}(h)=Ahである。§E20.2 定理 3.5 (1)をSAS_Aとb≠0b\ne0に適用するとκrel(SA,b)=∥A−1∥∥b∥/∥A−1b∥\kappa_{\mathrm{rel}}(S_A,b)=\lVert A^{-1}\rVert\lVert b\rVert/\lVert A^{-1}b\rVertであり、§E20.2 定理 3.5 (2)により、これは∥SA∥∥SA−1∥=∥A−1∥∥A∥\lVert S_A\rVert\lVert S_A^{-1}\rVert=\lVert A^{-1}\rVert\lVert A\rVert以下であって、最大値∥A−1∥∥A∥\lVert A^{-1}\rVert\lVert A\rVertをとるb≠0b\ne0が存在する。

(4)を示す。§D3.18 定理 1.2により、直交行列U,VU,VとΣ=diag⁡(σ1,…,σn)\Sigma=\operatorname{diag}(\sigma_1,\dots,\sigma_n)が存在してA=UΣVTA=U\Sigma V^{\mathsf T}であり、§D3.18 命題 2.1によりσ1,…,σn\sigma_1,\dots,\sigma_nはこの分解によらない。AAの階数はnnであるからσn>0\sigma_n>0である。直交行列は∥⋅∥2\lVert\cdot\rVert_2を保つので∥Ah∥2=∥ΣVTh∥2\lVert Ah\rVert_2=\lVert\Sigma V^{\mathsf T}h\rVert_2、∥VTh∥2=∥h∥2\lVert V^{\mathsf T}h\rVert_2=\lVert h\rVert_2であり、∥A∥2=∥Σ∥2\lVert A\rVert_2=\lVert\Sigma\rVert_2である。∥Σk∥22=∑iσi2ki2≤σ12∥k∥22\lVert\Sigma k\rVert_2^2=\sum_i\sigma_i^2k_i^2\le\sigma_1^2\lVert k\rVert_2^2であり、kkを第11基本ベクトルとすると等号が成り立つから、∥Σ∥2=σ1\lVert\Sigma\rVert_2=\sigma_1である。A−1=VΣ−1UTA^{-1}=V\Sigma^{-1}U^{\mathsf T}とΣ−1=diag⁡(1/σ1,…,1/σn)\Sigma^{-1}=\operatorname{diag}(1/\sigma_1,\dots,1/\sigma_n)に同じ議論を適用して∥A−1∥2=1/σn\lVert A^{-1}\rVert_2=1/\sigma_nである。

(5)を示す。§D3.15 定理 3.1により、直交行列QQと実数λ1≥⋯≥λn\lambda_1\ge\dots\ge\lambda_nが存在してA=Qdiag⁡(λ1,…,λn)QTA=Q\operatorname{diag}(\lambda_1,\dots,\lambda_n)Q^{\mathsf T}である。QQの第ii列qiq_iについてλi=qiTAqi>0\lambda_i=q_i^{\mathsf T}Aq_i>0であるから、λmin⁡=λn>0\lambda_{\min}=\lambda_n>0である。A=∑iλiqiqiTA=\sum_i\lambda_iq_iq_i^{\mathsf T}は§D3.18 定理 1.2の形の分解であるから、§D3.18 命題 2.1によりAAの特異値はλ1,…,λn\lambda_1,\dots,\lambda_nであり、(4)によりκ2(A)=λ1/λn\kappa_2(A)=\lambda_1/\lambda_nである。▨

命題 4.5.n∈N≥1n\in\NNとし、Rn\R^nにノルム∥⋅∥\lVert\cdot\rVertを固定する。A∈Mn(R)A\in M_n(\R)を正則行列、b∈Rnb\in\R^nをb≠0b\ne0を満たすベクトル、x:=A−1bx:=A^{-1}bとする。任意のx^∈Rn\widehat x\in\R^nに対して、r:=b−Ax^r:=b-A\widehat xと置くと

∥x−x^∥∥x∥≤κ(A)∥r∥∥b∥\frac{\lVert x-\widehat x\rVert}{\lVert x\rVert}\le\kappa(A)\frac{\lVert r\rVert}{\lVert b\rVert}

が成り立つ。

証明.b≠0b\ne0からx≠0x\ne0である。x−x^=A−1(b−Ax^)=A−1rx-\widehat x=A^{-1}(b-A\widehat x)=A^{-1}rであるから、§E20.2 補題 1.2 (1)により∥x−x^∥≤∥A−1∥∥r∥\lVert x-\widehat x\rVert\le\lVert A^{-1}\rVert\lVert r\rVertであり、∥b∥=∥Ax∥≤∥A∥∥x∥\lVert b\rVert=\lVert Ax\rVert\le\lVert A\rVert\lVert x\rVertである。二つの不等式から∥x−x^∥/∥x∥≤∥A−1∥∥A∥∥r∥/∥b∥\lVert x-\widehat x\rVert/\lVert x\rVert\le\lVert A^{-1}\rVert\lVert A\rVert\lVert r\rVert/\lVert b\rVertである。▨

注意 4.6.命題 4.5の記号で、SA(b′)=A−1b′S_A(b')=A^{-1}b'と置く。SA(b+Δb)=x^S_A(b+\Delta b)=\widehat xを満たすΔb∈Rn\Delta b\in\R^nは−r-rだけであるから、x^\widehat xのSAS_Aに関する相対後退誤差は∥r∥/∥b∥\lVert r\rVert/\lVert b\rVertである。命題 4.5の右辺は、AAだけで定まるκ(A)\kappa(A)と、x^\widehat xの後退誤差の積である。

0<ε≤10<\varepsilon\le1とし、

A:=(1111+ε),b:=(22+ε),x^:=(20)A:=\begin{pmatrix}1&1\\1&1+\varepsilon\end{pmatrix},\qquad b:=\begin{pmatrix}2\\2+\varepsilon\end{pmatrix},\qquad\widehat x:=\begin{pmatrix}2\\0\end{pmatrix}

とする。x=(1,1)x=(1,1)、r=(0,ε)r=(0,\varepsilon)であり、∥r∥∞/∥b∥∞=ε/(2+ε)\lVert r\rVert_\infty/\lVert b\rVert_\infty=\varepsilon/(2+\varepsilon)、∥x−x^∥∞/∥x∥∞=1\lVert x-\widehat x\rVert_\infty/\lVert x\rVert_\infty=1である。A−1=ε−1(1+ε−1−11)A^{-1}=\varepsilon^{-1}\begin{pmatrix}1+\varepsilon&-1\\-1&1\end{pmatrix}であり、補題 3.5 (1)によりκ∞(A)=(2+ε)2/ε\kappa_\infty(A)=(2+\varepsilon)^2/\varepsilonである。命題 4.5の右辺は2+ε2+\varepsilonである。命題 4.4 (3)の式により、このbbではκrel(SA,b)=∥A−1∥∞∥b∥∞/∥x∥∞=κ∞(A)\kappa_{\mathrm{rel}}(S_A,b)=\lVert A^{-1}\rVert_\infty\lVert b\rVert_\infty/\lVert x\rVert_\infty=\kappa_\infty(A)であり、右辺(0,1)(0,1)ではA−1(0,1)=ε−1(−1,1)A^{-1}(0,1)=\varepsilon^{-1}(-1,1)からκrel(SA,(0,1))=2+ε\kappa_{\mathrm{rel}}(S_A,(0,1))=2+\varepsilonである。ε=10−8\varepsilon=10^{-8}では∥r∥∞/∥b∥∞<5⋅10−9\lVert r\rVert_\infty/\lVert b\rVert_\infty<5\cdot10^{-9}であり、∥x−x^∥∞/∥x∥∞=1\lVert x-\widehat x\rVert_\infty/\lVert x\rVert_\infty=1である。

定理 3.8 (2)の仮定と記号の下で、計算値x^\widehat xの残差r:=b−Ax^r:=b-A\widehat xはPr=Pb−PAx^=Ex^Pr=Pb-PA\widehat x=E\widehat xを満たすので、補題 3.5により∥r∥∞≤(3γn+γn2)∥∣L^∣∣U^∣∥∞∥x^∥∞\lVert r\rVert_\infty\le(3\gamma_n+\gamma_n^2)\bigl\lVert\lvert\widehat L\rvert\lvert\widehat U\rvert\bigr\rVert_\infty\lVert\widehat x\rVert_\inftyである。

5 Cholesky 分解

定義 5.1.n∈N≥1n\in\NN、A∈Mn(R)A\in M_n(\R)とする。

  1. 対角成分がすべて11の下三角行列LLと対角行列DDがA=LDLTA=LDL^{\mathsf T}を満たすとき、組(L,D)(L,D)をAAの LDLTLDL^{\mathsf T}分解 (LDLT factorization) という。
  2. 対角成分がすべて正の下三角行列CCがA=CCTA=CC^{\mathsf T}を満たすとき、CCをAAの Cholesky 因子 (Cholesky factor) といい、等式A=CCTA=CC^{\mathsf T}をAAの Cholesky 分解 (Cholesky factorization) という。

定理 5.2.n∈N≥1n\in\NNとし、A∈Mn(R)A\in M_n(\R)を実対称行列とする。1≤k≤n1\le k\le nに対して、AAの左上k×kk\times k部分の行列式をΔk\Delta_kとし、Δ0:=1\Delta_0:=1と置く。

  1. AAが正定値ならば、AAのピボット選択なしの消去を厳密算術で実行するとどの段でも失敗せず、段kkのピボットはdk=Δk/Δk−1>0d_k=\Delta_k/\Delta_{k-1}>0である。
  2. AAが正定値ならば、(1)の消去の出力(L,U)(L,U)とD:=diag⁡(d1,…,dn)D:=\operatorname{diag}(d_1,\dots,d_n)についてU=DLTU=DL^{\mathsf T}であり、(L,D)(L,D)はAAのLDLTLDL^{\mathsf T}分解である。
  3. AAが正定値ならば、C:=Ldiag⁡(d1,…,dn)C:=L\operatorname{diag}(\sqrt{d_1},\dots,\sqrt{d_n})はAAの Cholesky 因子であり、AAの Cholesky 因子はCCだけである。
  4. AAが Cholesky 因子をもつならば、AAは正定値である。
  5. AAが正定値ならば、AAの Cholesky 因子CCの成分は、j=1,…,nj=1,\dots,nの順に cjj=(ajj−∑m=1j−1cjm2)1/2,cij=1cjj(aij−∑m=1j−1cimcjm)(i>j)c_{jj}=\Bigl(a_{jj}-\sum_{m=1}^{j-1}c_{jm}^2\Bigr)^{1/2},\qquad c_{ij}=\frac{1}{c_{jj}}\Bigl(a_{ij}-\sum_{m=1}^{j-1}c_{im}c_{jm}\Bigr)\quad(i>j) で与えられ、根号の中は正である。この式による計算はn3/3+n2/2−5n/6n^3/3+n^2/2-5n/6回の四則演算とnn回の平方根で行われる。

証明.(1)を示す。§E3.40 定理 3.1によりΔk>0\Delta_k>0(1≤k≤n1\le k\le n)である。1≤k≤n1\le k\le nとし、段1,…,k−11,\dots,k-1で失敗せず、段m<km<kのピボットがdm=Δm/Δm−1d_m=\Delta_m/\Delta_{m-1}であると仮定する。補題 2.3によりA=L(k)R(k)A=L^{(k)}R^{(k)}である。L(k)L^{(k)}は下三角行列であるから、AAの左上k×kk\times k部分はL(k)L^{(k)}とR(k)R^{(k)}の左上k×kk\times k部分の積である。前者は対角成分が11の下三角行列であり、後者は対角成分がd1,…,dk−1,wkk(k)d_1,\dots,d_{k-1},w^{(k)}_{kk}の上三角行列であるから、

Δk=d1⋯dk−1wkk(k)=Δk−1wkk(k)\Delta_k=d_1\cdots d_{k-1}w^{(k)}_{kk}=\Delta_{k-1}w^{(k)}_{kk}

である。したがって段kkのピボットはwkk(k)=Δk/Δk−1>0w^{(k)}_{kk}=\Delta_k/\Delta_{k-1}>0であり、kkに関する帰納法により主張が成り立つ。

(2)を示す。

主張 5.2.1.L1,L2L_1,L_2を対角成分が11の下三角行列、U1,U2U_1,U_2を対角成分が11の上三角行列、D1,D2D_1,D_2を正則な対角行列とする。L1D1U1=L2D2U2L_1D_1U_1=L_2D_2U_2ならばL1=L2L_1=L_2、D1=D2D_1=D_2、U1=U2U_1=U_2である。

証明.L1D1U1=L2D2U2L_1D_1U_1=L_2D_2U_2の両辺に左からL2−1L_2^{-1}、右からU1−1U_1^{-1}を掛けるとL2−1L1D1=D2U2U1−1L_2^{-1}L_1D_1=D_2U_2U_1^{-1}であり、左辺は下三角行列、右辺は上三角行列であるから、両辺は対角行列である。L2−1L1L_2^{-1}L_1は対角成分が11の下三角行列であるから、左辺の対角成分はD1D_1の対角成分であり、左辺はD1D_1に等しい。D1D_1は正則であるからL2−1L1=IL_2^{-1}L_1=Iである。同様に右辺の対角成分はD2D_2の対角成分であり、D2U2U1−1=D1D_2U_2U_1^{-1}=D_1からD2=D1D_2=D_1、U2U1−1=IU_2U_1^{-1}=Iである。▨

(1)と補題 2.3によりA=LUA=LUであり、UUの対角成分はd1,…,dnd_1,\dots,d_nである。U1:=D−1UU_1:=D^{-1}Uは対角成分が11の上三角行列であり、A=LDU1A=LDU_1である。AT=AA^{\mathsf T}=AからU1TDLT=LDU1U_1^{\mathsf T}DL^{\mathsf T}=LDU_1であり、主張 5.2.1によりU1=LTU_1=L^{\mathsf T}である。したがってU=DLTU=DL^{\mathsf T}、A=LDLTA=LDL^{\mathsf T}である。

(3)を示す。D1/2:=diag⁡(d1,…,dn)D^{1/2}:=\operatorname{diag}(\sqrt{d_1},\dots,\sqrt{d_n})と置くと、C=LD1/2C=LD^{1/2}は対角成分dk>0\sqrt{d_k}>0の下三角行列であり、CCT=LD1/2D1/2LT=ACC^{\mathsf T}=LD^{1/2}D^{1/2}L^{\mathsf T}=Aである。C′C'をAAの Cholesky 因子とし、Γ:=diag⁡(c11′,…,cnn′)\Gamma:=\operatorname{diag}(c'_{11},\dots,c'_{nn})、L′:=C′Γ−1L':=C'\Gamma^{-1}と置くと、L′L'は対角成分が11の下三角行列であり、A=L′Γ2L′TA=L'\Gamma^2L'^{\mathsf T}である。主張 5.2.1をA=LDLTA=LDL^{\mathsf T}と比べて適用するとL′=LL'=L、Γ2=D\Gamma^2=Dであり、ckk′>0c'_{kk}>0からΓ=D1/2\Gamma=D^{1/2}、C′=CC'=Cである。

(4)を示す。CCをAAの Cholesky 因子とする。CTC^{\mathsf T}は対角成分が正の上三角行列であるから正則であり、x∈Rn∖{0}x\in\R^n\setminus\{0\}に対してxTAx=∥CTx∥22>0x^{\mathsf T}Ax=\lVert C^{\mathsf T}x\rVert_2^2>0である。

(5)を示す。A=CCTA=CC^{\mathsf T}の(i,j)(i,j)成分(i≥ji\ge j)を比べると、CCが下三角行列であるからaij=∑m=1jcimcjma_{ij}=\sum_{m=1}^{j}c_{im}c_{jm}である。i=ji=jとしてcjj2=ajj−∑m<jcjm2c_{jj}^2=a_{jj}-\sum_{m<j}c_{jm}^2であり、cjj>0c_{jj}>0から式の第一式と根号の中が正であることを得る。i>ji>jとして第二式を得る。右辺はjj列より左のCCの成分だけを含むので、j=1,…,nj=1,\dots,nの順に計算することができる。演算回数の証明は演習とする(問題 8.2)。▨

6 三重対角行列

定理 6.1.n∈N≥1n\in\NNとし、A∈Mn(R)A\in M_n(\R)を、(i,i)(i,i)成分がbib_i、(i,i−1)(i,i-1)成分がaia_i(2≤i≤n2\le i\le n)、(i,i+1)(i,i+1)成分がcic_i(1≤i≤n−11\le i\le n-1)、その他の成分が00の三重対角行列とし、a1:=0a_1:=0、cn:=0c_n:=0と置く。d1:=b1d_1:=b_1とし、di−1≠0d_{i-1}\ne0である限りdi:=bi−aici−1/di−1d_i:=b_i-a_ic_{i-1}/d_{i-1}(2≤i≤n2\le i\le n)と置く。

  1. AAのピボット選択なしの消去を厳密算術で実行して段1,…,k−11,\dots,k-1で失敗しないならば、段kkのピボットはdkd_kである。d1,…,dnd_1,\dots,d_nがすべて00でないならば、消去は完了し、出力(L,U)(L,U)は、LLの00でない非対角成分が(i,i−1)(i,i-1)成分li:=ai/di−1l_i:=a_i/d_{i-1}(2≤i≤n2\le i\le n)だけであり、UUの00でない成分が(i,i)(i,i)成分did_iと(i,i+1)(i,i+1)成分cic_iだけである。このときAAは正則であり、任意のf∈Rnf\in\R^nに対して y1:=f1,yi:=fi−liyi−1 (2≤i≤n),xn:=yndn,xi:=yi−cixi+1di (i=n−1,…,1)y_1:=f_1,\quad y_i:=f_i-l_iy_{i-1}\ (2\le i\le n),\qquad x_n:=\frac{y_n}{d_n},\quad x_i:=\frac{y_i-c_ix_{i+1}}{d_i}\ (i=n-1,\dots,1) で定まるxxはAx=fAx=fのただ一つの解である。lil_i、did_iとxxの計算は合計8n−78n-7回の四則演算で行われる。
  2. 任意のiiについて∣bi∣>∣ai∣+∣ci∣\lvert b_i\rvert>\lvert a_i\rvert+\lvert c_i\rvertならば、d1,…,dnd_1,\dots,d_nは定まり、任意のiiについて∣di∣>∣ci∣\lvert d_i\rvert>\lvert c_i\rvertである。特にdi≠0d_i\ne0であり、(1)の結論が成り立つ。
  3. AAが実対称かつ正定値ならば、d1,…,dnd_1,\dots,d_nは定まり、定理 5.2 (1)のΔk\Delta_kについてdk=Δk/Δk−1>0d_k=\Delta_k/\Delta_{k-1}>0である。特に(1)の結論が成り立つ。

証明.(1)を示す。1≤k<n1\le k<nとし、段kkの作業行列のi,j≥ki,j\ge kの成分が、(k,k)(k,k)成分がdkd_kであることを除いてAAの成分に等しく、段kkで失敗しないとする。作業行列の第kk列のi>ki>kの成分は、i=k+1i=k+1でak+1a_{k+1}、i≥k+2i\ge k+2で00であるから、段kkの乗数は第k+1k+1行でak+1/dka_{k+1}/d_k、その他の行で00である。第kk行のj>kj>kの成分は、j=k+1j=k+1でckc_k、j≥k+2j\ge k+2で00である。したがってi,j>ki,j>kの成分のうち段kkで変わるものは(k+1,k+1)(k+1,k+1)成分だけであり、その値はbk+1−ak+1ck/dk=dk+1b_{k+1}-a_{k+1}c_k/d_k=d_{k+1}であって、段k+1k+1の作業行列も同じ性質をもつ。W(1)=AW^{(1)}=A、d1=b1d_1=b_1であるから、kkに関する帰納法により、段1,…,k−11,\dots,k-1で失敗しないとき段kkのピボットはdkd_kであり、段m<km<kの乗数は第m+1m+1行でam+1/dma_{m+1}/d_m、その他の行で00である。d1,…,dnd_1,\dots,d_nがすべて00でないならば、消去は完了する。第kk行は段kkの後は変わらないので、UUの第kk行の00でない成分はdkd_kとckc_kであり、LLの成分は上の乗数である。補題 2.3によりA=LUA=LUであり、det⁡A=d1⋯dn≠0\det A=d_1\cdots d_n\ne0である。主張のyyはLy=fLy=fを、xxはUx=yUx=yを満たすから、Ax=LUx=fAx=LUx=fであり、AAは正則であるから解はただ一つである。lil_iとdid_i(2≤i≤n2\le i\le n)の計算は3(n−1)3(n-1)回、yyの計算は2(n−1)2(n-1)回、xxの計算は3(n−1)+13(n-1)+1回の四則演算を行い、合計は8n−78n-7回である。

(2)を示す。∣d1∣=∣b1∣>∣c1∣\lvert d_1\rvert=\lvert b_1\rvert>\lvert c_1\rvertである。2≤i≤n2\le i\le nとし、∣di−1∣>∣ci−1∣\lvert d_{i-1}\rvert>\lvert c_{i-1}\rvertと仮定すると、di−1≠0d_{i-1}\ne0であるからdid_iが定まり、∣ci−1∣/∣di−1∣<1\lvert c_{i-1}\rvert/\lvert d_{i-1}\rvert<1から

∣di∣≥∣bi∣−∣ai∣∣ci−1∣∣di−1∣≥∣bi∣−∣ai∣>∣ci∣\lvert d_i\rvert\ge\lvert b_i\rvert-\lvert a_i\rvert\frac{\lvert c_{i-1}\rvert}{\lvert d_{i-1}\rvert}\ge\lvert b_i\rvert-\lvert a_i\rvert>\lvert c_i\rvert

である。iiに関する帰納法により主張が成り立つ。

(3)を示す。定理 5.2 (1)により、AAのピボット選択なしの消去はどの段でも失敗せず、段kkのピボットはΔk/Δk−1>0\Delta_k/\Delta_{k-1}>0である。(1)により、kkに関する帰納法でdkd_kが定まり、段kkのピボットに等しい。▨

命題 6.2.n∈N≥1n\in\NNとし、A=(aij)∈Mn(R)A=(a_{ij})\in M_n(\R)が

δ:=min⁡1≤i≤n(∣aii∣−∑j≠i∣aij∣)>0\delta:=\min_{1\le i\le n}\Bigl(\lvert a_{ii}\rvert-\sum_{j\ne i}\lvert a_{ij}\rvert\Bigr)>0

を満たすとする。このときAAは正則であり、∥A−1∥∞≤1/δ\lVert A^{-1}\rVert_\infty\le1/\deltaが成り立つ。特に、b∈Rnb\in\R^n、x:=A−1bx:=A^{-1}b、x^∈Rn\widehat x\in\R^nに対して∥x−x^∥∞≤∥b−Ax^∥∞/δ\lVert x-\widehat x\rVert_\infty\le\lVert b-A\widehat x\rVert_\infty/\deltaである。

証明.h∈Rnh\in\R^nとし、∣hi∣=∥h∥∞\lvert h_i\rvert=\lVert h\rVert_\inftyを満たすiiをとる。

∣(Ah)i∣≥∣aii∣∣hi∣−∑j≠i∣aij∣∣hj∣≥(∣aii∣−∑j≠i∣aij∣)∥h∥∞≥δ∥h∥∞\lvert(Ah)_i\rvert\ge\lvert a_{ii}\rvert\lvert h_i\rvert-\sum_{j\ne i}\lvert a_{ij}\rvert\lvert h_j\rvert\ge\Bigl(\lvert a_{ii}\rvert-\sum_{j\ne i}\lvert a_{ij}\rvert\Bigr)\lVert h\rVert_\infty\ge\delta\lVert h\rVert_\infty

であるから、∥Ah∥∞≥δ∥h∥∞\lVert Ah\rVert_\infty\ge\delta\lVert h\rVert_\inftyである。δ>0\delta>0であるからAAは単射であり、正則である。v∈Rnv\in\R^nにh:=A−1vh:=A^{-1}vを適用して∥A−1v∥∞≤∥v∥∞/δ\lVert A^{-1}v\rVert_\infty\le\lVert v\rVert_\infty/\deltaを得る。x−x^=A−1(b−Ax^)x-\widehat x=A^{-1}(b-A\widehat x)に適用して最後の不等式を得る。▨

例 6.3.n≥3n\ge3とし、定理 6.1でbi=4b_i=4(1≤i≤n1\le i\le n)、ai=1a_i=1(2≤i≤n2\le i\le n)、ci=1c_i=1(1≤i≤n−11\le i\le n-1)とする。各行で∣bi∣=4>2≥∣ai∣+∣ci∣\lvert b_i\rvert=4>2\ge\lvert a_i\rvert+\lvert c_i\rvertであるから定理 6.1 (2)が適用される。n=5n=5ではd1,…,d5d_1,\dots,d_5は4, 15/4, 56/15, 209/56, 780/2094,\ 15/4,\ 56/15,\ 209/56,\ 780/209であり、いずれも絶対値が11より大きい。命題 6.2のδ\deltaはmin⁡{4−1, 4−2}=2\min\{4-1,\ 4-2\}=2であるから、∥A−1∥∞≤1/2\lVert A^{-1}\rVert_\infty\le1/2であり、任意のf,x^∈Rnf,\widehat x\in\R^nとx:=A−1fx:=A^{-1}fについて∥x−x^∥∞≤∥f−Ax^∥∞/2\lVert x-\widehat x\rVert_\infty\le\lVert f-A\widehat x\rVert_\infty/2である。補題 3.5 (1)により∥A∥∞=6\lVert A\rVert_\infty=6であるからκ∞(A)≤3\kappa_\infty(A)\le3である。n=1000n=1000では、定理 6.1 (1)の計算は8n−7=79938n-7=7993回の四則演算で解を与える。同じAAをMn(R)M_n(\R)の行列として定理 2.5の消去と二つの代入で解くと、定理 2.5 (3)により2n3/3−n2/2−n/6+2n2−n=6681655002n^3/3-n^2/2-n/6+2n^2-n=668165500回の四則演算を行う。

7 残差による反復改良

命題 7.1.n∈N≥1n\in\NNとし、Rn\R^nにノルム∥⋅∥\lVert\cdot\rVertを固定し、Mn(R)M_n(\R)の元にその作用素ノルムを入れる。A∈Mn(R)A\in M_n(\R)を正則行列、b∈Rnb\in\R^n、x:=A−1bx:=A^{-1}b、M∈Mn(R)M\in M_n(\R)とし、q:=∥I−MA∥q:=\lVert I-MA\rVertと置く。

  1. x0∈Rnx_0\in\R^nとし、k≥0k\ge0についてxk+1:=xk+M(b−Axk)x_{k+1}:=x_k+M(b-Ax_k)と置く。ek:=x−xke_k:=x-x_kとすると、ek+1=(I−MA)eke_{k+1}=(I-MA)e_kであり、∥ek∥≤qk∥e0∥\lVert e_k\rVert\le q^k\lVert e_0\rVertが成り立つ。
  2. (xk)k≥0(x_k)_{k\ge0}と(r^k)k≥0(\widehat r_k)_{k\ge0}をRn\R^nの任意の列とし、ek:=x−xke_k:=x-x_k、ηk:=r^k−(b−Axk)\eta_k:=\widehat r_k-(b-Ax_k)、ρk:=xk+1−xk−Mr^k\rho_k:=x_{k+1}-x_k-M\widehat r_kと置く。このときek+1=(I−MA)ek−Mηk−ρke_{k+1}=(I-MA)e_k-M\eta_k-\rho_kであり、 ∥ek+1∥≤q∥ek∥+∥M∥∥ηk∥+∥ρk∥\lVert e_{k+1}\rVert\le q\lVert e_k\rVert+\lVert M\rVert\lVert\eta_k\rVert+\lVert\rho_k\rVert が成り立つ。
  3. (2)の記号で、q<1q<1であり、実数τ≥0\tau\ge0が任意のk≥0k\ge0について∥M∥∥ηk∥+∥ρk∥≤τ\lVert M\rVert\lVert\eta_k\rVert+\lVert\rho_k\rVert\le\tauを満たすならば、任意のk≥0k\ge0について∥ek∥≤qk∥e0∥+τ/(1−q)\lVert e_k\rVert\le q^k\lVert e_0\rVert+\tau/(1-q)が成り立つ。

証明.(2)を示す。xk+1=xk+Mr^k+ρk=xk+M(b−Axk)+Mηk+ρkx_{k+1}=x_k+M\widehat r_k+\rho_k=x_k+M(b-Ax_k)+M\eta_k+\rho_kであり、b−Axk=A(x−xk)=Aekb-Ax_k=A(x-x_k)=Ae_kであるから、ek+1=ek−MAek−Mηk−ρke_{k+1}=e_k-MAe_k-M\eta_k-\rho_kである。§E20.2 補題 1.2 (1)と三角不等式により評価が成り立つ。

(1)を示す。(2)をr^k:=b−Axk\widehat r_k:=b-Ax_kに適用すると、ηk=0\eta_k=0、ρk=0\rho_k=0であるからek+1=(I−MA)eke_{k+1}=(I-MA)e_kであり、∥ek+1∥≤q∥ek∥\lVert e_{k+1}\rVert\le q\lVert e_k\rVertである。kkに関する帰納法により評価が成り立つ。

(3)を示す。(2)により∥ek+1∥≤q∥ek∥+τ\lVert e_{k+1}\rVert\le q\lVert e_k\rVert+\tauであるから、kkに関する帰納法により∥ek∥≤qk∥e0∥+τ∑j=0k−1qj≤qk∥e0∥+τ/(1−q)\lVert e_k\rVert\le q^k\lVert e_0\rVert+\tau\sum_{j=0}^{k-1}q^j\le q^k\lVert e_0\rVert+\tau/(1-q)である。▨

命題 7.2.n∈N≥1n\in\NNとし、Rn\R^nにノルム∥⋅∥\lVert\cdot\rVertを固定し、Mn(R)M_n(\R)の元にその作用素ノルムを入れる。A∈Mn(R)A\in M_n(\R)を正則行列、PPを置換行列、L^,U^∈Mn(R)\widehat L,\widehat U\in M_n(\R)をL^U^\widehat L\widehat Uが正則となる行列とし、E:=P−1L^U^−AE:=P^{-1}\widehat L\widehat U-A、M:=(L^U^)−1PM:=(\widehat L\widehat U)^{-1}Pと置く。

  1. A+EA+Eは正則であり、I−MA=(A+E)−1EI-MA=(A+E)^{-1}Eが成り立つ。
  2. c:=∥A−1∥∥E∥<1c:=\lVert A^{-1}\rVert\lVert E\rVert<1ならば∥I−MA∥≤c/(1−c)\lVert I-MA\rVert\le c/(1-c)である。
  3. Rn\R^nのノルムを∥⋅∥∞\lVert\cdot\rVert_\inftyとし、A∈Mn(F)A\in M_n(F)と(P,L^,U^)(P,\widehat L,\widehat U)が定理 3.3の仮定と記号を満たすとする。ε:=γn−1∥∣L^∣∣U^∣∥∞/∥A∥∞\varepsilon:=\gamma_{n-1}\bigl\lVert\lvert\widehat L\rvert\lvert\widehat U\rvert\bigr\rVert_\infty/\lVert A\rVert_\inftyがκ∞(A)ε<1\kappa_\infty(A)\varepsilon<1を満たすならば、∥I−MA∥∞≤κ∞(A)ε/(1−κ∞(A)ε)\lVert I-MA\rVert_\infty\le\kappa_\infty(A)\varepsilon/(1-\kappa_\infty(A)\varepsilon)である。さらに任意のv∈Rnv\in\R^nに対して、L^y=Pv\widehat Ly=Pvの前進代入とU^z=y\widehat Uz=yの後退代入を厳密算術で実行して得るzzはMvMvに等しい。

証明.(1)を示す。A+E=P−1L^U^A+E=P^{-1}\widehat L\widehat Uは正則行列の積であるから正則である。I−MA=(L^U^)−1(L^U^−PA)=(L^U^)−1PE=(P−1L^U^)−1E=(A+E)−1EI-MA=(\widehat L\widehat U)^{-1}(\widehat L\widehat U-PA)=(\widehat L\widehat U)^{-1}PE=(P^{-1}\widehat L\widehat U)^{-1}E=(A+E)^{-1}Eである。

(2)を示す。v∈Rnv\in\R^nとし、y:=(I−MA)v=(A+E)−1Evy:=(I-MA)v=(A+E)^{-1}Evと置く。(A+E)y=Ev(A+E)y=Evからy=A−1E(v−y)y=A^{-1}E(v-y)であり、§E20.2 補題 1.2 (1)により∥y∥≤c(∥v∥+∥y∥)\lVert y\rVert\le c(\lVert v\rVert+\lVert y\rVert)である。c<1c<1から∥y∥≤c∥v∥/(1−c)\lVert y\rVert\le c\lVert v\rVert/(1-c)である。

(3)を示す。L^\widehat Lは対角成分が11の下三角行列、U^\widehat Uは対角成分が段ごとのピボットで00でない上三角行列であるから、L^U^\widehat L\widehat Uは正則である。E=P−1ΔAE=P^{-1}\Delta Aであり、∣E∣=P−1∣ΔA∣≤γn−1P−1∣L^∣∣U^∣\lvert E\rvert=P^{-1}\lvert\Delta A\rvert\le\gamma_{n-1}P^{-1}\lvert\widehat L\rvert\lvert\widehat U\rvertであるから、補題 3.5 (2)と補題 3.5 (3)により∥E∥∞≤ε∥A∥∞\lVert E\rVert_\infty\le\varepsilon\lVert A\rVert_\inftyである。したがってc≤κ∞(A)ε<1c\le\kappa_\infty(A)\varepsilon<1であり、t↦t/(1−t)t\mapsto t/(1-t)は[0,1)[0,1)で増加するから、(2)により評価が成り立つ。前進代入のyyはL^y=Pv\widehat Ly=Pvを、後退代入のzzはU^z=y\widehat Uz=yを満たすから、z=(L^U^)−1Pv=Mvz=(\widehat L\widehat U)^{-1}Pv=Mvである。▨

系 7.3.FFを浮動小数点数系、uuをその単位丸め誤差、fl⁡\operatorname{fl}をFFの最近接丸めとし、n∈N≥1n\in\NNが(n+1)u<1(n+1)u<1を満たすとする。γn+1:=(n+1)u/(1−(n+1)u)\gamma_{n+1}:=(n+1)u/(1-(n+1)u)と置く。A∈Mn(F)A\in M_n(F)、b,x∈Fnb,x\in F^nとし、各iiについて、bib_iを初項とし、積fl⁡(ai1(−x1)),…,fl⁡(ain(−xn))\operatorname{fl}(a_{i1}(-x_1)),\dots,\operatorname{fl}(a_{in}(-x_n))をこの順に加える逐次和として計算した値をr~i\widetilde r_iとする。各積の厳密な結果が00であるか正規範囲にあり、各加算の厳密な結果の絶対値がNmax⁡N_{\max}以下であるとする。r:=b−Axr:=b-Axと置くと、任意のiiに対して

∣r~i−ri∣≤γn+1(∣bi∣+∑j=1n∣aij∣∣xj∣)\lvert\widetilde r_i-r_i\rvert\le\gamma_{n+1}\Bigl(\lvert b_i\rvert+\sum_{j=1}^n\lvert a_{ij}\rvert\lvert x_j\rvert\Bigr)

が成り立ち、∥r~−r∥∞≤γn+1(∥b∥∞+∥A∥∞∥x∥∞)\lVert\widetilde r-r\rVert_\infty\le\gamma_{n+1}(\lVert b\rVert_\infty+\lVert A\rVert_\infty\lVert x\rVert_\infty)である。

証明.F=−FF=-Fであるから−xj∈F-x_j\in Fである。iiを固定する。各jjについて、§E20.1 系 3.2 (1)または§E20.1 系 3.2 (2)により∣εj∣≤u\lvert\varepsilon_j\rvert\le uを満たすεj\varepsilon_jが存在してfl⁡(aij(−xj))=−aijxj(1+εj)\operatorname{fl}(a_{ij}(-x_j))=-a_{ij}x_j(1+\varepsilon_j)である。r~i\widetilde r_iは(bi,fl⁡(ai1(−x1)),…,fl⁡(ain(−xn)))∈Fn+1(b_i,\operatorname{fl}(a_{i1}(-x_1)),\dots,\operatorname{fl}(a_{in}(-x_n)))\in F^{n+1}の逐次和であり、§E20.3 系 1.4 (1)によりRn+1R_{n+1}における第11成分の深さはnn、第j+1j+1成分の深さはn−j+1n-j+1である。§E20.3 定理 1.3 (1)により、∣δj,l∣≤u\lvert\delta_{j,l}\rvert\le uを満たす実数δj,l\delta_{j,l}(0≤j≤n0\le j\le n)が存在して

r~i=bi∏l=1n(1+δ0,l)−∑j=1naijxj(1+εj)∏l=1n−j+1(1+δj,l)\widetilde r_i=b_i\prod_{l=1}^{n}(1+\delta_{0,l})-\sum_{j=1}^na_{ij}x_j(1+\varepsilon_j)\prod_{l=1}^{n-j+1}(1+\delta_{j,l})

である。bib_iの項の因子の個数はnn、aijxja_{ij}x_jの項の因子の個数はn−j+2≤n+1n-j+2\le n+1であり、(n+1)u<1(n+1)u<1であるから、§E20.1 補題 4.1とk↦ku/(1−ku)k\mapsto ku/(1-ku)の単調性により、∣θj∣≤γn+1\lvert\theta_j\rvert\le\gamma_{n+1}(0≤j≤n0\le j\le n)を満たす実数θ0,…,θn\theta_0,\dots,\theta_nが存在してr~i=bi(1+θ0)−∑j=1naijxj(1+θj)\widetilde r_i=b_i(1+\theta_0)-\sum_{j=1}^na_{ij}x_j(1+\theta_j)である。ri=bi−∑jaijxjr_i=b_i-\sum_ja_{ij}x_jであるから∣r~i−ri∣≤γn+1(∣bi∣+∑j∣aij∣∣xj∣)\lvert\widetilde r_i-r_i\rvert\le\gamma_{n+1}(\lvert b_i\rvert+\sum_j\lvert a_{ij}\rvert\lvert x_j\rvert)である。補題 3.5 (1)によりmax⁡i∑j∣aij∣∣xj∣≤∥A∥∞∥x∥∞\max_i\sum_j\lvert a_{ij}\rvert\lvert x_j\rvert\le\lVert A\rVert_\infty\lVert x\rVert_\inftyである。▨

例 7.4.Fℓ:=F(2,24,−126,127)F_\ell:=F(2,24,-126,127)、Fh:=F(2,53,−1022,1023)F_h:=F(2,53,-1022,1023)とし、それぞれの最近接偶数丸めをfl⁡ℓ\operatorname{fl}_\ell、fl⁡h\operatorname{fl}_h、単位丸め誤差をuℓ=2−24≈5.96×10−8u_\ell=2^{-24}\approx5.96\times10^{-8}、uh=2−53u_h=2^{-53}とする。FℓF_\ellの00でない元はm2em2^{e}(m,e∈Zm,e\in\Z、1≤∣m∣<2241\le\lvert m\rvert<2^{24}、−149≤e≤104-149\le e\le104)の形であり、FhF_hのse+52=2es_{e+52}=2^{e}について§E20.1 補題 1.3 (1)を適用してFℓ⊂FhF_\ell\subset F_hを得る。n∈{4,6,8}n\in\{4,6,8\}に対して、A:=(fl⁡ℓ(1/(i+j−1)))1≤i,j≤n∈Mn(Fℓ)A:=\bigl(\operatorname{fl}_\ell(1/(i+j-1))\bigr)_{1\le i,j\le n}\in M_n(F_\ell)、b:=(1,…,1)∈Fℓnb:=(1,\dots,1)\in F_\ell^n、x:=A−1bx:=A^{-1}bとする。AAの部分ピボット付き消去をFℓF_\ellとfl⁡ℓ\operatorname{fl}_\ellの浮動小数点算術で実行して出力(P,L^,U^)(P,\widehat L,\widehat U)を得て、M:=(L^U^)−1PM:=(\widehat L\widehat U)^{-1}P、q:=∥I−MA∥∞q:=\lVert I-MA\rVert_\inftyと置く。x0:=0x_0:=0とし、k≥0k\ge0について次を順に行う。

  1. bb、AA、xkx_kから系 7.3のr~\widetilde rを計算し、その各成分をfl⁡ℓ\operatorname{fl}_\ellで丸めてr^k∈Fℓn\widehat r_k\in F_\ell^nとする。r~\widetilde rの計算は、FhF_hとfl⁡h\operatorname{fl}_hの浮動小数点算術で実行する場合と、FℓF_\ellとfl⁡ℓ\operatorname{fl}_\ellの浮動小数点算術で実行する場合の二通りとする。
  2. L^y=Pr^k\widehat Ly=P\widehat r_kの前進代入とU^z=y\widehat Uz=yの後退代入をFℓF_\ellとfl⁡ℓ\operatorname{fl}_\ellの浮動小数点算術で実行し、計算値d^k\widehat d_kを得る。
  3. xk+1:=(fl⁡ℓ(xk,i+d^k,i))1≤i≤nx_{k+1}:=\bigl(\operatorname{fl}_\ell(x_{k,i}+\widehat d_{k,i})\bigr)_{1\le i\le n}と置く。

二通りの計算は残差の算法を実行する数系だけが異なり、PP、L^\widehat L、U^\widehat U、MM、qqとx1x_1は共通である。命題 7.2 (3)によりMr^kM\widehat r_kは(2)の代入を厳密算術で実行した値に等しい。命題 7.1 (2)をこのMMと列(xk)(x_k)、(r^k)(\widehat r_k)に適用すると、ηk=r^k−(b−Axk)\eta_k=\widehat r_k-(b-Ax_k)は残差の計算と丸めによる差であり、ρk=xk+1−xk−Mr^k\rho_k=x_{k+1}-x_k-M\widehat r_kは(2)と(3)の丸めによる差である。

有理数による厳密な模擬計算で、すべての浮動小数点算術の実行が範囲条件を満たすことを確かめ、次の値を得た。κ∞(A)\kappa_\infty(A)とqqは、n=4n=4で2.84×1042.84\times10^4と1.96×10−51.96\times10^{-5}、n=6n=6で2.81×1072.81\times10^7と7.72×10−27.72\times10^{-2}、n=8n=8で3.30×1093.30\times10^9と1.691.69である。相対誤差∥x−xk∥∞/∥x∥∞\lVert x-x_k\rVert_\infty/\lVert x\rVert_\inftyは次のとおりである。

nn r~\widetilde rの数系 k=1k=1 k=2k=2 k=3k=3 k=4k=4 k=8k=8
44 FhF_h 1.7×10−51.7\times10^{-5} 7.8×10−97.8\times10^{-9} 7.8×10−97.8\times10^{-9} 7.8×10−97.8\times10^{-9} 7.8×10−97.8\times10^{-9}
44 FℓF_\ell 1.7×10−51.7\times10^{-5} 4.6×10−54.6\times10^{-5} 2.2×10−52.2\times10^{-5} 4.6×10−54.6\times10^{-5} 4.6×10−54.6\times10^{-5}
66 FhF_h 1.4×10−21.4\times10^{-2} 1.7×10−41.7\times10^{-4} 2.1×10−62.1\times10^{-6} 3.0×10−83.0\times10^{-8} 3.0×10−83.0\times10^{-8}
66 FℓF_\ell 1.4×10−21.4\times10^{-2} 5.4×10−25.4\times10^{-2} 1.6×10−21.6\times10^{-2} 8.6×10−38.6\times10^{-3} 3.6×10−23.6\times10^{-2}
88 FhF_h 5.5×10−15.5\times10^{-1} 5.9×10−15.9\times10^{-1} 4.6×10−14.6\times10^{-1} 4.3×10−14.3\times10^{-1} 2.4×10−12.4\times10^{-1}
88 FℓF_\ell 5.5×10−15.5\times10^{-1} 8.3×10−18.3\times10^{-1} 5.6×10−15.6\times10^{-1} 3.2×10−13.2\times10^{-1} 5.6×10−15.6\times10^{-1}

n=4,6n=4,6ではq<1q<1であり、1≤k≤71\le k\le7について次が観察された。r~\widetilde rをFhF_hで計算した場合、∥M∥∞∥ηk∥∞/∥x∥∞≤9.0×10−10\lVert M\rVert_\infty\lVert\eta_k\rVert_\infty/\lVert x\rVert_\infty\le9.0\times10^{-10}、∥ρk∥∞/∥x∥∞≤3.2×10−8\lVert\rho_k\rVert_\infty/\lVert x\rVert_\infty\le3.2\times10^{-8}であり、相対誤差はn=4n=4で7.8×10−9≈0.13uℓ7.8\times10^{-9}\approx0.13u_\ell、n=6n=6で3.0×10−8≈0.50uℓ3.0\times10^{-8}\approx0.50u_\ellまで下がって止まる。r~\widetilde rをFℓF_\ellで計算した場合、∥M∥∞∥ηk∥∞/∥x∥∞\lVert M\rVert_\infty\lVert\eta_k\rVert_\infty/\lVert x\rVert_\inftyはn=4n=4で1.3×10−41.3\times10^{-4}、n=6n=6で7.8×10−27.8\times10^{-2}から1.8×10−11.8\times10^{-1}の範囲にあり、k≥2k\ge2の相対誤差はn=4n=4で2.2×10−52.2\times10^{-5}以上、n=6n=6で2.3×10−32.3\times10^{-3}以上である。n=8n=8ではq>1q>1であり、命題 7.1 (3)は適用されない。r~\widetilde rをFhF_hで計算した場合も、x8x_8の相対誤差は0.240.24である。

8 演習

問題 8.1.定理 2.5 (3)の証明を完成させよ。

解答.

段kk(1≤k≤n−11\le k\le n-1)では、i>ki>kの各行で除算を11回行い、i,j>ki,j>kの各成分で乗算と減算を11回ずつ行う。段nnでは四則演算を行わない。除算の回数は∑k=1n−1(n−k)=n(n−1)/2\sum_{k=1}^{n-1}(n-k)=n(n-1)/2、乗算と減算の回数はそれぞれ∑k=1n−1(n−k)2=∑m=1n−1m2=(n−1)n(2n−1)/6\sum_{k=1}^{n-1}(n-k)^2=\sum_{m=1}^{n-1}m^2=(n-1)n(2n-1)/6である。合計は

n(n−1)2+(n−1)n(2n−1)3=2n33−n22−n6\frac{n(n-1)}{2}+\frac{(n-1)n(2n-1)}{3}=\frac{2n^3}{3}-\frac{n^2}{2}-\frac n6

である。LLの対角成分は11であるから、Ly=PbLy=Pbの前進代入の第ii段は乗算と減算をi−1i-1回ずつ行い、合計∑i=1n2(i−1)=n(n−1)\sum_{i=1}^n2(i-1)=n(n-1)回である。PbPbの計算は成分の並べ替えであり、四則演算を行わない。Ux=yUx=yの後退代入の第ii段は乗算と減算をn−in-i回ずつと除算を11回行い、合計∑i=1n(2(n−i)+1)=n2\sum_{i=1}^n(2(n-i)+1)=n^2回である。二つの代入の合計は2n2−n2n^2-n回である。▨

問題 8.2.定理 5.2 (5)の式による計算がn3/3+n2/2−5n/6n^3/3+n^2/2-5n/6回の四則演算とnn回の平方根で行われることを示せ。

解答.

第jj列の計算では、cjjc_{jj}に乗算と減算をj−1j-1回ずつと平方根を11回用い、i>ji>jの各cijc_{ij}に乗算と減算をj−1j-1回ずつと除算を11回用いる。四則演算の回数は

∑j=1n(2(j−1)+(n−j)(2j−1))=n(n−1)+(n33−n22+n6)=n33+n22−5n6\sum_{j=1}^n\bigl(2(j-1)+(n-j)(2j-1)\bigr)=n(n-1)+\Bigl(\frac{n^3}{3}-\frac{n^2}{2}+\frac n6\Bigr)=\frac{n^3}{3}+\frac{n^2}{2}-\frac{5n}{6}

である。ここで∑j=1n(n−j)(2j−1)=2n∑jj−n2−2∑jj2+∑jj=n2(n+1)−n2−n(n+1)(2n+1)/3+n(n+1)/2=n3/3−n2/2+n/6\sum_{j=1}^n(n-j)(2j-1)=2n\sum_jj-n^2-2\sum_jj^2+\sum_jj=n^2(n+1)-n^2-n(n+1)(2n+1)/3+n(n+1)/2=n^3/3-n^2/2+n/6を用いた。平方根は各列で11回、合計nn回である。▨

問題 8.3.n∈N≥1n\in\NNとし、A∈Mn(R)A\in M_n(\R)を正則行列とする。任意のjjについて∣ajj∣≥∑i≠j∣aij∣\lvert a_{jj}\rvert\ge\sum_{i\ne j}\lvert a_{ij}\rvertが成り立つならば、AAの部分ピボット付き消去を厳密算術で実行すると、どの段でもrk=kr_k=kであり、成長因子は22以下であることを示せ。

解答.

定理 2.5 (1)により消去はどの段でも失敗しない。段kkの作業行列W(k)W^{(k)}に対する次の二条件を (a)、(b) と呼ぶ。 (a) 段1,…,k−11,\dots,k-1でrm=mr_m=mであり、j≥kj\ge kについて∣wjj(k)∣≥∑i≥k, i≠j∣wij(k)∣\lvert w^{(k)}_{jj}\rvert\ge\sum_{i\ge k,\,i\ne j}\lvert w^{(k)}_{ij}\rvertである。 (b)j≥kj\ge kについて∑i≥k∣wij(k)∣≤∑i=1n∣aij∣\sum_{i\ge k}\lvert w^{(k)}_{ij}\rvert\le\sum_{i=1}^n\lvert a_{ij}\rvertである。k=1k=1では (a) と (b) は仮定そのものである。段k<nk<nで (a) と (b) が成り立つとする。(a) をj=kj=kに用いるとi>ki>kについて∣wkk(k)∣≥∣wik(k)∣\lvert w^{(k)}_{kk}\rvert\ge\lvert w^{(k)}_{ik}\rvertであるから、最小の添字を選ぶ規則によりrk=kr_k=kであり、V(k)=W(k)V^{(k)}=W^{(k)}である。段kkの乗数をli:=wik(k)/wkk(k)l_i:=w^{(k)}_{ik}/w^{(k)}_{kk}(i>ki>k)と書くと、(a) により∑i>k∣li∣≤1\sum_{i>k}\lvert l_i\rvert\le1である。j>kj>kとする。wij(k+1)=wij(k)−liwkj(k)w^{(k+1)}_{ij}=w^{(k)}_{ij}-l_iw^{(k)}_{kj}(i>ki>k)であるから

∑i>k∣wij(k+1)∣≤∑i>k∣wij(k)∣+∣wkj(k)∣∑i>k∣li∣≤∑i≥k∣wij(k)∣\sum_{i>k}\lvert w^{(k+1)}_{ij}\rvert\le\sum_{i>k}\lvert w^{(k)}_{ij}\rvert+\lvert w^{(k)}_{kj}\rvert\sum_{i>k}\lvert l_i\rvert\le\sum_{i\ge k}\lvert w^{(k)}_{ij}\rvert

であり、(b) から段k+1k+1の (b) が成り立つ。また

∑i>k, i≠j∣wij(k+1)∣≤∑i>k, i≠j∣wij(k)∣+∣wkj(k)∣(1−∣lj∣)=∑i≥k, i≠j∣wij(k)∣−∣lj∣∣wkj(k)∣\sum_{i>k,\,i\ne j}\lvert w^{(k+1)}_{ij}\rvert\le\sum_{i>k,\,i\ne j}\lvert w^{(k)}_{ij}\rvert+\lvert w^{(k)}_{kj}\rvert(1-\lvert l_j\rvert)=\sum_{i\ge k,\,i\ne j}\lvert w^{(k)}_{ij}\rvert-\lvert l_j\rvert\lvert w^{(k)}_{kj}\rvert

であり、段kkの (a) により右辺は∣wjj(k)∣−∣lj∣∣wkj(k)∣≤∣wjj(k+1)∣\lvert w^{(k)}_{jj}\rvert-\lvert l_j\rvert\lvert w^{(k)}_{kj}\rvert\le\lvert w^{(k+1)}_{jj}\rvert以下であるから、段k+1k+1の (a) が成り立つ。kkに関する帰納法により、すべての段で (a) と (b) が成り立つ。段kkの成分wij(k)w^{(k)}_{ij}(i,j≥ki,j\ge k)について、(b) と仮定により∣wij(k)∣≤∑i′=1n∣ai′j∣≤2∣ajj∣≤2max⁡p,q∣apq∣\lvert w^{(k)}_{ij}\rvert\le\sum_{i'=1}^n\lvert a_{i'j}\rvert\le2\lvert a_{jj}\rvert\le2\max_{p,q}\lvert a_{pq}\rvertであるから、成長因子は22以下である。▨

前提記事