1 浮動小数点算術と三角系の代入
定義 1.1. 加算・減算・乗算・除算を定められた順序で有限回行って値を定める計算式について、各演算で二つの被演算数に対するその演算の実数としての値を計算することを、計算式を 厳密算術 (exact arithmetic ) で実行するという。F F F を浮動小数点数系、fl \operatorname{fl} fl をF F F の最近接丸めとし、計算式の入力がF F F の元であるとする。各演算x ∘ y x\circ y x ∘ y (∘ ∈ { + , − , × , / } \circ\in\{+,-,\times,/\} ∘ ∈ { + , − , × , / } )を順にfl ( x ∘ y ) \operatorname{fl}(x\circ y) fl ( x ∘ y ) に置き換えて計算することを、計算式をF F F とfl \operatorname{fl} fl の 浮動小数点算術 (floating-point arithmetic ) で実行するといい、置き換えた各演算について実数x ∘ y x\circ y x ∘ y をその演算の厳密な結果という。浮動小数点算術での実行が次の条件を満たすとき、その実行は 範囲条件 (range condition ) を満たすという。
各乗算と各除算の厳密な結果は、0 0 0 であるかF F F の正規範囲にある。
各加算と各減算の厳密な結果の絶対値は、F F F の最大元N max N_{\max} N m a x 以下である。
定義 1.2. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、T = ( t i j ) ∈ M n ( R ) T=(t_{ij})\in M_n(\R) T = ( t ij ) ∈ M n ( R ) を対角成分がすべて0 0 0 でない三角行列、c = ( c 1 , … , c n ) ∈ R n c=(c_1,\dots,c_n)\in\R^n c = ( c 1 , … , c n ) ∈ R n とする。
T T T が下三角行列であるとき、i = 1 , … , n i=1,\dots,n i = 1 , … , n の順に次を行う計算式を、T y = c Ty=c T y = c の 前進代入 (forward substitution ) という。s : = c i s:=c_i s := c i と置き、m = 1 , … , i − 1 m=1,\dots,i-1 m = 1 , … , i − 1 の順に、乗算t i m y m t_{im}y_m t im y m の後に減算を行ってs s s をs − t i m y m s-t_{im}y_m s − t im y m に置き換え、得たs s s からy i : = s / t i i y_i:=s/t_{ii} y i := s / t ii と置く。ただしT T T の対角成分がすべて1 1 1 であるときは、除算を行わずにy i : = s y_i:=s y i := s と置く。
T T T が上三角行列であるとき、i = n , n − 1 , … , 1 i=n,n-1,\dots,1 i = n , n − 1 , … , 1 の順に次を行う計算式を、T y = c Ty=c T y = c の 後退代入 (back substitution ) という。s : = c i s:=c_i s := c i と置き、m = i + 1 , … , n m=i+1,\dots,n m = i + 1 , … , n の順に、乗算t i m y m t_{im}y_m t im y m の後に減算を行ってs s s をs − t i m y m s-t_{im}y_m s − t im y m に置き換え、得たs s s からy i : = s / t i i y_i:=s/t_{ii} y i := s / t ii と置く。
2 LU 分解
定義 2.1. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、B ∈ M n ( R ) B\in M_n(\R) B ∈ M n ( R ) とする。対角成分がすべて1 1 1 の下三角行列L L L と上三角行列U U U がB = L U B=LU B = LU を満たすとき、組( L , U ) (L,U) ( L , U ) をB B B の LU 分解 (LU factorization ) という。置換行列P P P に対して( L , U ) (L,U) ( L , U ) がP B PB P B の LU 分解であるとき、組( P , L , U ) (P,L,U) ( P , L , U ) をB B B の ピボット付き LU 分解 (pivoted LU factorization ) という。
定義 2.2. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) とする。1 ≤ k ≤ r ≤ n 1\le k\le r\le n 1 ≤ k ≤ r ≤ n に対し、単位行列の第k k k 行と第r r r 行を入れ替えた置換行列をT k r T_{kr} T k r とする(T k k = I T_{kk}=I T k k = I )。作業行列W ( 1 ) : = A W^{(1)}:=A W ( 1 ) := A から始めてk = 1 , … , n k=1,\dots,n k = 1 , … , n の順に次の段k k k を行う計算式を、A A A の 部分ピボット付き消去 (Gaussian elimination with partial pivoting ) という。
∣ w r k ( k ) ∣ = max k ≤ i ≤ n ∣ w i k ( k ) ∣ \lvert w^{(k)}_{rk}\rvert=\max_{k\le i\le n}\lvert w^{(k)}_{ik}\rvert ∣ w r k ( k ) ∣ = max k ≤ i ≤ n ∣ w ik ( k ) ∣ を満たすr ∈ { k , … , n } r\in\{k,\dots,n\} r ∈ { k , … , n } のうち最小のものをr k r_k r k とし、V ( k ) : = T k r k W ( k ) V^{(k)}:=T_{kr_k}W^{(k)} V ( k ) := T k r k W ( k ) と置く。行の入れ替えは第1 1 1 列から第n n n 列までのすべての成分に施す。
v k k ( k ) v^{(k)}_{kk} v k k ( k ) を段k k k の ピボット (pivot ) という。v k k ( k ) = 0 v^{(k)}_{kk}=0 v k k ( k ) = 0 ならば計算を終える。このとき消去は段k k k で 失敗 (breakdown ) するという。
k < n k<n k < n ならば、W ( k + 1 ) W^{(k+1)} W ( k + 1 ) の第i i i 行を、i ≤ k i\le k i ≤ k のときV ( k ) V^{(k)} V ( k ) の第i i i 行とし、i > k i>k i > k のとき
w i j ( k + 1 ) : = v i j ( k ) ( j < k ) , w i k ( k + 1 ) : = v i k ( k ) v k k ( k ) , w i j ( k + 1 ) : = v i j ( k ) − w i k ( k + 1 ) v k j ( 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) w ij ( k + 1 ) := v ij ( k ) ( j < k ) , w ik ( k + 1 ) := v k k ( k ) v ik ( k ) , w ij ( k + 1 ) := v ij ( k ) − w ik ( k + 1 ) v k j ( k ) ( j > k )
で定める。最後の式では、乗算w i k ( k + 1 ) v k j ( k ) w^{(k+1)}_{ik}v^{(k)}_{kj} w ik ( k + 1 ) v k j ( k ) の後に減算を行う。w i k ( k + 1 ) w^{(k+1)}_{ik} w ik ( k + 1 ) (i > k i>k i > k )を段k k k の 乗数 (multiplier ) という。
どの段でも失敗しないとき、消去は完了するという。このときW : = V ( n ) W:=V^{(n)} W := V ( n ) と置き、i > j i>j i > j の成分がw i j w_{ij} w ij 、対角成分が1 1 1 、その他の成分が0 0 0 の行列をL L L 、i ≤ j i\le j i ≤ j の成分がw i j w_{ij} w ij 、その他の成分が0 0 0 の行列をU U U とし、P : = T n r n T n − 1 , r n − 1 ⋯ T 1 r 1 P:=T_{nr_n}T_{n-1,r_{n-1}}\cdots T_{1r_1} P := T n r n T n − 1 , r n − 1 ⋯ T 1 r 1 と置いて、( P , L , U ) (P,L,U) ( P , L , U ) を消去の出力という。(1) で常にr k : = k r_k:=k r k := k とする計算式を、A A A の ピボット選択なしの消去 (Gaussian elimination without pivoting ) といい、その出力を( L , U ) (L,U) ( L , U ) と書く。
補題 2.3. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、B ∈ M n ( R ) B\in M_n(\R) B ∈ M n ( R ) 、1 ≤ k ≤ n 1\le k\le n 1 ≤ k ≤ n とし、B B B のピボット選択なしの消去を厳密算術で実行して段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗しないとする。段k k k の作業行列W ( k ) W^{(k)} W ( k ) について、対角成分が1 1 1 、j < k j<k j < k かつi > j i>j i > j の( i , j ) (i,j) ( i , j ) 成分がw i j ( k ) w^{(k)}_{ij} w ij ( k ) 、その他の成分が0 0 0 の行列をL ( k ) L^{(k)} L ( k ) とし、i < k i<k i < k かつi ≤ j i\le j i ≤ j の( i , j ) (i,j) ( i , j ) 成分とi , j ≥ k i,j\ge k i , j ≥ k の( i , j ) (i,j) ( i , j ) 成分がw i j ( k ) w^{(k)}_{ij} w ij ( k ) 、その他の成分が0 0 0 の行列をR ( k ) R^{(k)} R ( k ) とする。このときB = L ( k ) R ( k ) B=L^{(k)}R^{(k)} B = L ( k ) R ( k ) が成り立つ。特に消去が完了するならば、その出力( L , U ) (L,U) ( L , U ) はB B B の LU 分解である。
証明. k = 1 k=1 k = 1 ではL ( 1 ) = I L^{(1)}=I L ( 1 ) = I 、R ( 1 ) = W ( 1 ) = B R^{(1)}=W^{(1)}=B R ( 1 ) = W ( 1 ) = B である。k < n k<n k < n とし、B = L ( k ) R ( k ) B=L^{(k)}R^{(k)} B = L ( k ) R ( k ) であって段k k k で失敗しないとする。ピボット選択なしの消去ではV ( k ) = W ( k ) V^{(k)}=W^{(k)} V ( k ) = W ( k ) である。ℓ ∈ R n \ell\in\R^n ℓ ∈ R n を、i > k i>k i > k の成分が段k k k の乗数w i k ( k + 1 ) w^{(k+1)}_{ik} w ik ( k + 1 ) で、その他の成分が0 0 0 のベクトルとし、e k e_k e k を第k k k 基本ベクトルとしてG : = I + ℓ e k T G:=I+\ell e_k^{\mathsf T} G := I + ℓ e k T と置く。G R ( k + 1 ) GR^{(k+1)} G R ( k + 1 ) の第i i i 行は、i ≤ k i\le k i ≤ k ならばR ( k + 1 ) R^{(k+1)} R ( k + 1 ) の第i i i 行であり、i > k i>k i > k ならばR ( k + 1 ) R^{(k+1)} R ( k + 1 ) の第i i i 行に第k k k 行のw i k ( k + 1 ) w^{(k+1)}_{ik} w ik ( k + 1 ) 倍を加えたものである。W ( k + 1 ) W^{(k+1)} W ( k + 1 ) の第1 1 1 行から第k k k 行はW ( k ) W^{(k)} W ( k ) のそれに等しいから、i ≤ k i\le k i ≤ k についてR ( k + 1 ) R^{(k+1)} R ( k + 1 ) とR ( k ) R^{(k)} R ( k ) の第i i i 行は等しい。特にR ( k + 1 ) R^{(k+1)} R ( k + 1 ) の第k k k 行は( 0 , … , 0 , w k k ( k ) , … , w k n ( k ) ) (0,\dots,0,w^{(k)}_{kk},\dots,w^{(k)}_{kn}) ( 0 , … , 0 , w k k ( k ) , … , w k n ( k ) ) である。i > k i>k i > k について、G R ( k + 1 ) GR^{(k+1)} G R ( k + 1 ) の( i , j ) (i,j) ( i , j ) 成分は、j < k j<k j < k ならば0 0 0 、j = k j=k j = k ならばw i k ( k + 1 ) w k k ( k ) = w i k ( k ) w^{(k+1)}_{ik}w^{(k)}_{kk}=w^{(k)}_{ik} w ik ( k + 1 ) w k k ( k ) = w ik ( k ) 、j > k j>k j > k ならばw i j ( k + 1 ) + w i k ( k + 1 ) w k j ( k ) = w i j ( k ) w^{(k+1)}_{ij}+w^{(k+1)}_{ik}w^{(k)}_{kj}=w^{(k)}_{ij} w ij ( k + 1 ) + w ik ( k + 1 ) w k j ( k ) = w ij ( k ) であり、これはR ( k ) R^{(k)} R ( k ) の( i , j ) (i,j) ( i , j ) 成分である。したがってR ( k ) = G R ( k + 1 ) R^{(k)}=GR^{(k+1)} R ( k ) = G R ( k + 1 ) である。L ( k ) L^{(k)} L ( k ) の第k k k 列から第n n n 列は単位行列の列であり、ℓ \ell ℓ の第1 1 1 成分から第k k k 成分は0 0 0 であるからL ( k ) ℓ = ℓ L^{(k)}\ell=\ell L ( k ) ℓ = ℓ である。W ( k + 1 ) W^{(k+1)} W ( k + 1 ) とW ( k ) W^{(k)} W ( k ) のj < k j<k j < k の列の成分は等しいので、L ( k ) G = L ( k ) + ℓ e k T = L ( k + 1 ) L^{(k)}G=L^{(k)}+\ell e_k^{\mathsf T}=L^{(k+1)} L ( k ) G = L ( k ) + ℓ e k T = L ( k + 1 ) である。よってB = L ( k ) G R ( k + 1 ) = L ( k + 1 ) R ( k + 1 ) B=L^{(k)}GR^{(k+1)}=L^{(k+1)}R^{(k+1)} B = L ( k ) G R ( k + 1 ) = L ( k + 1 ) R ( k + 1 ) であり、k k k に関する帰納法により主張が成り立つ。消去が完了するならば、W = V ( n ) = W ( n ) W=V^{(n)}=W^{(n)} W = V ( n ) = W ( n ) からL ( n ) = L L^{(n)}=L L ( n ) = L 、R ( n ) = U R^{(n)}=U R ( n ) = U である。▨
補題 2.4. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) 、1 ≤ k ≤ n 1\le k\le n 1 ≤ k ≤ n とする。A A A の部分ピボット付き消去を厳密算術または浮動小数点算術で実行して段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗しないとし、段j j j で選んだ添字をr j r_j r j としてΠ k : = T k − 1 , r k − 1 ⋯ T 1 r 1 \Pi_k:=T_{k-1,r_{k-1}}\cdots T_{1r_1} Π k := T k − 1 , r k − 1 ⋯ T 1 r 1 (Π 1 : = I \Pi_1:=I Π 1 := I )と置く。Π k A \Pi_kA Π k A のピボット選択なしの消去を同じ算術で実行すると、次が成り立つ。
段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗せず、段j ≤ k − 1 j\le k-1 j ≤ k − 1 のピボットは部分ピボット付き消去の段j j j のピボットに等しく、段k k k の作業行列は部分ピボット付き消去の段k k k の作業行列W ( k ) W^{(k)} W ( k ) に等しい。段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 の演算は、二つの実行の間で被演算数ごとに一対一に対応する。
部分ピボット付き消去が完了し、その出力が( P , L , U ) (P,L,U) ( P , L , U ) であるならば、P A PA P A のピボット選択なしの消去は完了し、その出力は( L , U ) (L,U) ( L , U ) であって、各段のピボットは部分ピボット付き消去の対応する段のピボットに等しい。
証明. Π k A \Pi_kA Π k A のピボット選択なしの消去の段j j j の作業行列をW ~ ( j ) \widetilde W^{(j)} W ( j ) とし、1 ≤ j ≤ k 1\le j\le k 1 ≤ j ≤ k に対してQ j : = T k − 1 , r k − 1 ⋯ T j r j Q_j:=T_{k-1,r_{k-1}}\cdots T_{jr_j} Q j := T k − 1 , r k − 1 ⋯ T j r j (Q k : = I Q_k:=I Q k := I )と置く。j = 1 j=1 j = 1 ではW ~ ( 1 ) = Π k A = Q 1 W ( 1 ) \widetilde W^{(1)}=\Pi_kA=Q_1W^{(1)} W ( 1 ) = Π k A = Q 1 W ( 1 ) である。j < k j<k j < k とし、W ~ ( j ) = Q j W ( j ) \widetilde W^{(j)}=Q_jW^{(j)} W ( j ) = Q j W ( j ) と仮定する。Q j = Q j + 1 T j r j Q_j=Q_{j+1}T_{jr_j} Q j = Q j + 1 T j r j であるからW ~ ( j ) = Q j + 1 V ( j ) \widetilde W^{(j)}=Q_{j+1}V^{(j)} W ( j ) = Q j + 1 V ( j ) である。Q j + 1 Q_{j+1} Q j + 1 はm ≥ j + 1 m\ge j+1 m ≥ j + 1 、r m ≥ m r_m\ge m r m ≥ m を満たすT m r m T_{mr_m} T m r m の積であるから、{ j + 1 , … , n } \{j+1,\dots,n\} { j + 1 , … , n } の置換σ \sigma σ が存在して、任意のX ∈ M n ( R ) X\in M_n(\R) X ∈ M n ( R ) についてQ j + 1 X Q_{j+1}X Q j + 1 X の第i i i 行は、i ≤ j i\le j i ≤ j ならばX X X の第i i i 行、i > j i>j i > j ならばX X X の第σ ( i ) \sigma(i) σ ( i ) 行である。したがってW ~ ( j ) \widetilde W^{(j)} W ( j ) の第j j j 行はV ( j ) V^{(j)} V ( j ) の第j j j 行であり、二つの消去の段j j j のピボットはともにv j j ( j ) ≠ 0 v^{(j)}_{jj}\ne0 v j j ( j ) = 0 である。定義 2.2 (3) により、段j j j の後の作業行列の第i i i 行(i > j i>j i > j )は、行交換後の第i i i 行と第j j j 行だけから同じ式で計算される。W ~ ( j ) \widetilde W^{(j)} W ( j ) の第i i i 行はV ( j ) V^{(j)} V ( j ) の第σ ( i ) \sigma(i) σ ( i ) 行であるから、W ~ ( j + 1 ) \widetilde W^{(j+1)} W ( j + 1 ) の第i i i 行の計算はW ( j + 1 ) W^{(j+1)} W ( j + 1 ) の第σ ( i ) \sigma(i) σ ( i ) 行の計算と被演算数ごとに一致し、二つの行は等しい。第1 1 1 行から第j j j 行は、どちらの消去でも行交換後の行を写す。よってW ~ ( j + 1 ) = Q j + 1 W ( j + 1 ) \widetilde W^{(j+1)}=Q_{j+1}W^{(j+1)} W ( j + 1 ) = Q j + 1 W ( j + 1 ) である。j j j に関する帰納法により1 ≤ j ≤ k 1\le j\le k 1 ≤ j ≤ k についてW ~ ( j ) = Q j W ( j ) \widetilde W^{(j)}=Q_jW^{(j)} W ( j ) = Q j W ( j ) であり、j = k j=k j = k としてW ~ ( k ) = W ( k ) \widetilde W^{(k)}=W^{(k)} W ( k ) = W ( k ) を得る。これで(1) は示された。
(2) を示す。(1) をk = n k=n k = n に適用する。段n n n ではr n = n r_n=n r n = n であるからP = Π n P=\Pi_n P = Π n であり、二つの消去の段n n n のピボットはともにw n n ( n ) ≠ 0 w^{(n)}_{nn}\ne0 w nn ( n ) = 0 である。二つの消去の最後の行列はともにW ( n ) W^{(n)} W ( n ) であるから、出力は等しい。▨
定理 2.5. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) を正則行列とする。
A A A の部分ピボット付き消去を厳密算術で実行すると、どの段でも失敗しない。その出力( P , L , U ) (P,L,U) ( P , L , U ) はA A A のピボット付き LU 分解であり、L L L の成分の絶対値は1 1 1 以下、U U U の対角成分はすべて0 0 0 でない。
任意のb ∈ R n b\in\R^n b ∈ R n に対して、L y = P b Ly=Pb L y = P b の前進代入とU x = y Ux=y U x = y の後退代入を厳密算術で実行して得るx x x は、A x = b Ax=b A x = b のただ一つの解である。
(1) の消去は、n ( n − 1 ) / 2 n(n-1)/2 n ( n − 1 ) /2 回の除算、( n − 1 ) n ( 2 n − 1 ) / 6 (n-1)n(2n-1)/6 ( n − 1 ) n ( 2 n − 1 ) /6 回の乗算、同じ回数の減算を行い、四則演算の回数の合計は2 n 3 / 3 − n 2 / 2 − n / 6 2n^3/3-n^2/2-n/6 2 n 3 /3 − n 2 /2 − n /6 である。(2) の二つの代入は、合計2 n 2 − n 2n^2-n 2 n 2 − n 回の四則演算を行う。
証明. (1) を示す。1 ≤ k ≤ n 1\le k\le n 1 ≤ k ≤ n とし、段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗しないと仮定する。補題 2.4 (1) により、Π k A \Pi_kA Π k A のピボット選択なしの消去は段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗せず、そのピボットは部分ピボット付き消去のピボットに等しく、段k k k の作業行列はW ( k ) W^{(k)} W ( k ) である。補題 2.3 によりΠ k A = L ( k ) R ( k ) \Pi_kA=L^{(k)}R^{(k)} Π k A = L ( k ) R ( k ) である。i < k i<k i < k について第i i i 行は段i i i の後は変わらないので、R ( k ) R^{(k)} R ( k ) の( i , i ) (i,i) ( i , i ) 成分は段i i i のピボットであり、0 0 0 でない。R ( k ) R^{(k)} R ( k ) のi ≥ k > j i\ge k>j i ≥ k > j の成分は0 0 0 であるから、S : = ( w i j ( k ) ) k ≤ i , j ≤ n S:=(w^{(k)}_{ij})_{k\le i,j\le n} S := ( w ij ( k ) ) k ≤ i , j ≤ n と置くと、det R ( k ) \det R^{(k)} det R ( k ) は段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 のピボットの積とdet S \det S det S の積である。det ( Π k A ) = ± det A ≠ 0 \det(\Pi_kA)=\pm\det A\ne0 det ( Π k A ) = ± det A = 0 であり、det L ( k ) = 1 \det L^{(k)}=1 det L ( k ) = 1 であるからdet S ≠ 0 \det S\ne0 det S = 0 である。したがってS S S の第1 1 1 列は零ベクトルでなく、max k ≤ i ≤ n ∣ w i k ( k ) ∣ > 0 \max_{k\le i\le n}\lvert w^{(k)}_{ik}\rvert>0 max k ≤ i ≤ n ∣ w ik ( k ) ∣ > 0 であり、段k k k のピボットv k k ( k ) v^{(k)}_{kk} v k k ( k ) は0 0 0 でない。k k k に関する帰納法により、消去はどの段でも失敗しない。補題 2.4 (2) によりP A PA P A のピボット選択なしの消去は完了して出力( L , U ) (L,U) ( L , U ) を与え、補題 2.3 により( L , U ) (L,U) ( L , U ) はP A PA P A の LU 分解である。L L L のi > j i>j i > j の成分は、段j j j の乗数v i ′ j ( j ) / v j j ( j ) v^{(j)}_{i'j}/v^{(j)}_{jj} v i ′ j ( j ) / v j j ( j ) (i ′ > j i'>j i ′ > j )のいずれかが以後の行交換で移されたものであり、定義 2.2 (1) により∣ v i ′ j ( j ) ∣ ≤ ∣ v j j ( j ) ∣ \lvert v^{(j)}_{i'j}\rvert\le\lvert v^{(j)}_{jj}\rvert ∣ v i ′ j ( j ) ∣ ≤ ∣ v j j ( j ) ∣ であるから、絶対値は1 1 1 以下である。U U U の( k , k ) (k,k) ( k , k ) 成分は段k k k のピボットである。
(2) を示す。前進代入は各i i i についてy i = ( P b ) i − ∑ m < i l i m y m y_i=(Pb)_i-\sum_{m<i}l_{im}y_m y i = ( P b ) i − ∑ m < i l im y m を与えるからL y = P b Ly=Pb L y = P b であり、後退代入は各i i i についてx i = ( y i − ∑ m > i u i m x m ) / u i i x_i=(y_i-\sum_{m>i}u_{im}x_m)/u_{ii} x i = ( y i − ∑ m > i u im x m ) / u ii を与えるからU x = y Ux=y U x = y である。したがってP A x = L U x = P b PAx=LUx=Pb P A x = LU x = P b であり、P P P は正則であるからA x = b Ax=b A x = b である。A A A は正則であるから解はただ一つである。
(3) の証明は演習とする(問題 8.1 )。▨
3 浮動小数点算術での LU 分解
補題 3.2. F F F を浮動小数点数系、u u u をその単位丸め誤差、fl \operatorname{fl} fl をF F F の最近接丸めとする。整数k ≥ 0 k\ge0 k ≥ 0 とc , x 1 , … , x k , y 1 , … , y k ∈ F c,x_1,\dots,x_k,y_1,\dots,y_k\in F c , x 1 , … , x k , y 1 , … , y k ∈ F に対して、s 0 : = c s_0:=c s 0 := c 、s m : = fl ( s m − 1 − fl ( x m y m ) ) s_m:=\operatorname{fl}\bigl(s_{m-1}-\operatorname{fl}(x_my_m)\bigr) s m := fl ( s m − 1 − fl ( x m y m ) ) (1 ≤ m ≤ k 1\le m\le k 1 ≤ m ≤ k )と置く。各m m m について、厳密な積x m y m x_my_m x m y m が0 0 0 であるか正規範囲にあり、厳密な差s m − 1 − fl ( x m y m ) s_{m-1}-\operatorname{fl}(x_my_m) s m − 1 − fl ( x m y m ) の絶対値がN max N_{\max} N m a x 以下であるとする。整数j ≥ 0 j\ge0 j ≥ 0 がj u < 1 ju<1 j u < 1 を満たすときγ j : = j u / ( 1 − j u ) \gamma_j:=ju/(1-ju) γ j := j u / ( 1 − j u ) と置く。
k u < 1 ku<1 k u < 1 ならば、∣ θ m ∣ ≤ γ m \lvert\theta_m\rvert\le\gamma_m ∣ θ m ∣ ≤ γ m (1 ≤ m ≤ k 1\le m\le k 1 ≤ m ≤ k )と∣ θ ′ ∣ ≤ γ k \lvert\theta'\rvert\le\gamma_k ∣ θ ′ ∣ ≤ γ k を満たす実数θ 1 , … , θ k , θ ′ \theta_1,\dots,\theta_k,\theta' θ 1 , … , θ k , θ ′ が存在して
c = ∑ m = 1 k x m y m ( 1 + θ m ) + s k ( 1 + θ ′ ) c=\sum_{m=1}^kx_my_m(1+\theta_m)+s_k(1+\theta') c = m = 1 ∑ k x m y m ( 1 + θ m ) + s k ( 1 + θ ′ )
が成り立つ。
( k + 1 ) u < 1 (k+1)u<1 ( k + 1 ) u < 1 とし、d ∈ F d\in F d ∈ F がd ≠ 0 d\ne0 d = 0 を満たし、厳密な商s k / d s_k/d s k / d が0 0 0 であるか正規範囲にあるとする。z : = fl ( s k / d ) z:=\operatorname{fl}(s_k/d) z := fl ( s k / d ) と置くと、∣ θ m ∣ ≤ γ m \lvert\theta_m\rvert\le\gamma_m ∣ θ m ∣ ≤ γ m (1 ≤ m ≤ k 1\le m\le k 1 ≤ m ≤ k )と∣ θ ′ ′ ∣ ≤ γ k + 1 \lvert\theta''\rvert\le\gamma_{k+1} ∣ θ ′′ ∣ ≤ γ k + 1 を満たす実数θ 1 , … , θ k , θ ′ ′ \theta_1,\dots,\theta_k,\theta'' θ 1 , … , θ k , θ ′′ が存在して
c = ∑ m = 1 k x m y m ( 1 + θ m ) + z d ( 1 + θ ′ ′ ) c=\sum_{m=1}^kx_my_m(1+\theta_m)+zd(1+\theta'') c = m = 1 ∑ k x m y m ( 1 + θ m ) + z d ( 1 + θ ′′ )
が成り立つ。
証明. (1) を示す。k = 0 k=0 k = 0 ならばc = s 0 c=s_0 c = s 0 であり、θ ′ : = 0 \theta':=0 θ ′ := 0 とすればよい。k ≥ 1 k\ge1 k ≥ 1 とする。k u < 1 ku<1 k u < 1 からu < 1 u<1 u < 1 である。各m m m について、§E20.1 系 3.2 (1) または§E20.1 系 3.2 (2) により∣ μ m ∣ ≤ u \lvert\mu_m\rvert\le u ∣ μ m ∣ ≤ u を満たすμ m \mu_m μ m が存在してfl ( x m y m ) = x m y m ( 1 + μ m ) \operatorname{fl}(x_my_m)=x_my_m(1+\mu_m) fl ( x m y m ) = x m y m ( 1 + μ m ) である。− fl ( x m y m ) ∈ F -\operatorname{fl}(x_my_m)\in F − fl ( x m y m ) ∈ F とs m − 1 s_{m-1} s m − 1 の和に§E20.1 系 3.3 を適用すると、∣ α m ∣ ≤ u \lvert\alpha_m\rvert\le u ∣ α m ∣ ≤ u を満たすα m \alpha_m α m が存在してs m = ( s m − 1 − x m y m ( 1 + μ m ) ) ( 1 + α m ) s_m=\bigl(s_{m-1}-x_my_m(1+\mu_m)\bigr)(1+\alpha_m) s m = ( s m − 1 − x m y m ( 1 + μ m ) ) ( 1 + α m ) である。1 + α m ≥ 1 − u > 0 1+\alpha_m\ge1-u>0 1 + α m ≥ 1 − u > 0 であるから
s m − 1 = s m ( 1 + α m ) − 1 + x m y m ( 1 + μ m ) s_{m-1}=s_m(1+\alpha_m)^{-1}+x_my_m(1+\mu_m) s m − 1 = s m ( 1 + α m ) − 1 + x m y m ( 1 + μ m ) が成り立つ。m = 1 m=1 m = 1 としてc = s 1 ( 1 + α 1 ) − 1 + x 1 y 1 ( 1 + μ 1 ) c=s_1(1+\alpha_1)^{-1}+x_1y_1(1+\mu_1) c = s 1 ( 1 + α 1 ) − 1 + x 1 y 1 ( 1 + μ 1 ) である。2 ≤ j ≤ k 2\le j\le k 2 ≤ j ≤ k についてc = s j − 1 ∏ q = 1 j − 1 ( 1 + α q ) − 1 + ∑ m = 1 j − 1 x m y m ( 1 + μ m ) ∏ q = 1 m − 1 ( 1 + α q ) − 1 c=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} c = s j − 1 ∏ q = 1 j − 1 ( 1 + α q ) − 1 + ∑ m = 1 j − 1 x m y m ( 1 + μ m ) ∏ q = 1 m − 1 ( 1 + α q ) − 1 が成り立つならば、s j − 1 = s j ( 1 + α j ) − 1 + x j y j ( 1 + μ j ) s_{j-1}=s_j(1+\alpha_j)^{-1}+x_jy_j(1+\mu_j) s j − 1 = s j ( 1 + α j ) − 1 + x j y j ( 1 + μ j ) を代入して、同じ形の等式がj j j について成り立つ。j j j に関する帰納法により
c = s k ∏ q = 1 k ( 1 + α q ) − 1 + ∑ m = 1 k x m y m ( 1 + μ m ) ∏ q = 1 m − 1 ( 1 + α q ) − 1 c=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} c = s k q = 1 ∏ k ( 1 + α q ) − 1 + m = 1 ∑ k x m y m ( 1 + μ m ) q = 1 ∏ m − 1 ( 1 + α q ) − 1 が成り立つ。第m m m 項の因子の個数はm m m 、s k s_k s k の項の因子の個数はk k k である。m u ≤ k u < 1 mu\le ku<1 m u ≤ k u < 1 であるから、§E20.1 補題 4.1 をそれぞれの積に適用して、∣ θ m ∣ ≤ γ m \lvert\theta_m\rvert\le\gamma_m ∣ θ m ∣ ≤ γ m を満たすθ m \theta_m θ m と∣ θ ′ ∣ ≤ γ k \lvert\theta'\rvert\le\gamma_k ∣ θ ′ ∣ ≤ γ k を満たすθ ′ \theta' θ ′ を得る。
(2) を示す。( k + 1 ) u < 1 (k+1)u<1 ( k + 1 ) u < 1 からk u < 1 ku<1 k u < 1 とu < 1 u<1 u < 1 が成り立つ。§E20.1 系 3.2 (1) または§E20.1 系 3.2 (2) により∣ φ ∣ ≤ u \lvert\varphi\rvert\le u ∣ φ ∣ ≤ u を満たすφ \varphi φ が存在してz = ( s k / d ) ( 1 + φ ) z=(s_k/d)(1+\varphi) z = ( s k / d ) ( 1 + φ ) であり、s k = z d ( 1 + φ ) − 1 s_k=zd(1+\varphi)^{-1} s k = z d ( 1 + φ ) − 1 である。これを上の等式のs k s_k s k に代入すると、z d zd z d の項の因子の個数はk + 1 k+1 k + 1 になる。§E20.1 補題 4.1 を適用して∣ θ ′ ′ ∣ ≤ γ k + 1 \lvert\theta''\rvert\le\gamma_{k+1} ∣ θ ′′ ∣ ≤ γ k + 1 を満たすθ ′ ′ \theta'' θ ′′ を得て、θ m \theta_m θ m は(1) と同じにとる。▨
定理 3.3. F F F を浮動小数点数系、u u u をその単位丸め誤差、fl \operatorname{fl} fl をF F F の最近接丸めとし、n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 が( n − 1 ) u < 1 (n-1)u<1 ( n − 1 ) u < 1 を満たすとする。0 ≤ j ≤ n − 1 0\le j\le n-1 0 ≤ j ≤ n − 1 に対してγ j : = j u / ( 1 − j u ) \gamma_j:=ju/(1-ju) γ j := j u / ( 1 − j u ) と置く。行列X X X に対して、成分の絶対値を並べた行列を∣ X ∣ \lvert X\rvert ∣ X ∣ と書き、行列の不等式は成分ごとに解釈する。A ∈ M n ( F ) A\in M_n(F) A ∈ M n ( F ) の部分ピボット付き消去をF F F とfl \operatorname{fl} fl の浮動小数点算術で実行すると、どの段でも失敗せず、実行が範囲条件を満たすとし、その出力を( P , L ^ , U ^ ) (P,\widehat L,\widehat U) ( P , L , U ) とする。Δ A : = L ^ U ^ − P A \Delta A:=\widehat L\widehat U-PA Δ A := L U − P A と置くとP A + Δ A = L ^ U ^ PA+\Delta A=\widehat L\widehat U P A + Δ A = L U であり、任意の1 ≤ i , j ≤ n 1\le i,j\le n 1 ≤ i , j ≤ n に対して
∣ Δ a i j ∣ ≤ γ min { i − 1 , j } ∑ m = 1 min { i , j } ∣ l ^ i m ∣ ∣ u ^ m j ∣ \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 ij ∣ ≤ γ m i n { i − 1 , j } m = 1 ∑ m i n { i , j } ∣ l im ∣ ∣ u mj ∣ が成り立つ。特に∣ Δ A ∣ ≤ γ n − 1 ∣ L ^ ∣ ∣ U ^ ∣ \lvert\Delta A\rvert\le\gamma_{n-1}\lvert\widehat L\rvert\lvert\widehat U\rvert ∣ Δ A ∣ ≤ γ n − 1 ∣ L ∣ ∣ U ∣ である。A A A のピボット選択なしの消去を同じ仮定の下で実行した場合も、その出力( L ^ , U ^ ) (\widehat L,\widehat U) ( L , U ) とP = I P=I P = I について同じ結論が成り立つ。
証明. B : = P A B:=PA B := P A と置く。補題 2.4 (2) により、B B B のピボット選択なしの消去を同じ浮動小数点算術で実行すると完了し、出力は( L ^ , U ^ ) (\widehat L,\widehat U) ( L , U ) である。補題 2.4 (1) によりその演算は部分ピボット付き消去の演算と被演算数ごとに一致するので、この実行も範囲条件を満たす。ピボット選択なしの消去の場合はB : = A B:=A B := A とする。以下、W ( m ) W^{(m)} W ( m ) をB B B のピボット選択なしの消去の作業行列とする。1 ≤ i , j ≤ n 1\le i,j\le n 1 ≤ i , j ≤ n を固定する。定義 2.2 (3) により、作業行列の第1 1 1 行から第m m m 行は段m m m の後は変わらず、i > m i>m i > m の行の第m m m 列は段m m m で乗数が書き込まれた後は変わらない。したがってu ^ m j = w m j ( m ) \widehat u_{mj}=w^{(m)}_{mj} u mj = w mj ( m ) (m ≤ j m\le j m ≤ j )、l ^ i m = w i m ( m + 1 ) \widehat l_{im}=w^{(m+1)}_{im} l im = w im ( m + 1 ) (m < i m<i m < i )であり、( i , j ) (i,j) ( i , j ) 成分は
w i j ( 1 ) = b i j , w i j ( m + 1 ) = fl ( w i j ( m ) − fl ( l ^ i m u ^ m j ) ) ( 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\}) w ij ( 1 ) = b ij , w ij ( m + 1 ) = fl ( w ij ( m ) − fl ( l im u mj ) ) ( 1 ≤ m < min { i , j }) を満たす。さらにi ≤ j i\le j i ≤ j ならばu ^ i j = w i j ( i ) \widehat u_{ij}=w^{(i)}_{ij} u ij = w ij ( i ) であり、i > j i>j i > j ならばl ^ i j = fl ( w i j ( j ) / u ^ j j ) \widehat l_{ij}=\operatorname{fl}(w^{(j)}_{ij}/\widehat u_{jj}) l ij = fl ( w ij ( j ) / u j j ) である。L ^ \widehat L L は下三角、U ^ \widehat U U は上三角であるから、Δ A \Delta A Δ A の( i , j ) (i,j) ( i , j ) 成分はΔ b i j : = ∑ m = 1 min { i , j } l ^ i m u ^ m j − b i j \Delta b_{ij}:=\sum_{m=1}^{\min\{i,j\}}\widehat l_{im}\widehat u_{mj}-b_{ij} Δ b ij := ∑ m = 1 m i n { i , j } l im u mj − b ij である。
i ≤ j i\le j i ≤ j の場合、補題 3.2 (1) をk = i − 1 k=i-1 k = i − 1 、c = b i j c=b_{ij} c = b ij 、( x m , y m ) = ( l ^ i m , u ^ m j ) (x_m,y_m)=(\widehat l_{im},\widehat u_{mj}) ( x m , y m ) = ( l im , u mj ) に適用する。( i − 1 ) u ≤ ( n − 1 ) u < 1 (i-1)u\le(n-1)u<1 ( i − 1 ) u ≤ ( n − 1 ) u < 1 であり、s i − 1 = u ^ i j s_{i-1}=\widehat u_{ij} s i − 1 = u ij 、l ^ i i = 1 \widehat l_{ii}=1 l ii = 1 であるから
Δ b i j = − ∑ m = 1 i − 1 l ^ i m u ^ m j θ m − l ^ i i u ^ i j θ ′ \Delta b_{ij}=-\sum_{m=1}^{i-1}\widehat l_{im}\widehat u_{mj}\theta_m-\widehat l_{ii}\widehat u_{ij}\theta' Δ b ij = − m = 1 ∑ i − 1 l im u mj θ m − l ii u ij θ ′ である。m ≤ i − 1 m\le i-1 m ≤ i − 1 ならばγ m ≤ γ i − 1 \gamma_m\le\gamma_{i-1} γ m ≤ γ i − 1 であるから、∣ Δ b i j ∣ ≤ γ i − 1 ∑ m = 1 i ∣ l ^ i m ∣ ∣ u ^ m j ∣ \lvert\Delta b_{ij}\rvert\le\gamma_{i-1}\sum_{m=1}^{i}\lvert\widehat l_{im}\rvert\lvert\widehat u_{mj}\rvert ∣ Δ b ij ∣ ≤ γ i − 1 ∑ m = 1 i ∣ l im ∣ ∣ u mj ∣ である。
i > j i>j i > j の場合、補題 3.2 (2) をk = j − 1 k=j-1 k = j − 1 、c = b i j c=b_{ij} c = b ij 、( x m , y m ) = ( l ^ i m , u ^ m j ) (x_m,y_m)=(\widehat l_{im},\widehat u_{mj}) ( x m , y m ) = ( l im , u mj ) 、d = u ^ j j d=\widehat u_{jj} d = u j j に適用する。j u ≤ ( n − 1 ) u < 1 ju\le(n-1)u<1 j u ≤ ( n − 1 ) u < 1 であり、z = l ^ i j z=\widehat l_{ij} z = l ij であるから
Δ b i j = − ∑ m = 1 j − 1 l ^ i m u ^ m j θ m − l ^ i j u ^ j j θ ′ ′ \Delta b_{ij}=-\sum_{m=1}^{j-1}\widehat l_{im}\widehat u_{mj}\theta_m-\widehat l_{ij}\widehat u_{jj}\theta'' Δ b ij = − m = 1 ∑ j − 1 l im u mj θ m − l ij u j j θ ′′ であり、∣ Δ b i j ∣ ≤ γ j ∑ m = 1 j ∣ l ^ i m ∣ ∣ u ^ m j ∣ \lvert\Delta b_{ij}\rvert\le\gamma_j\sum_{m=1}^{j}\lvert\widehat l_{im}\rvert\lvert\widehat u_{mj}\rvert ∣ Δ b ij ∣ ≤ γ j ∑ m = 1 j ∣ l im ∣ ∣ u mj ∣ である。
i ≤ j i\le j i ≤ j ならばmin { i − 1 , j } = i − 1 \min\{i-1,j\}=i-1 min { i − 1 , j } = i − 1 、i > j i>j i > j ならばmin { i − 1 , j } = j \min\{i-1,j\}=j min { i − 1 , j } = j であるから、主張の評価が成り立つ。γ j \gamma_j γ j はj j j について単調非減少であり、min { i − 1 , j } ≤ n − 1 \min\{i-1,j\}\le n-1 min { i − 1 , j } ≤ n − 1 であるから、∣ Δ A ∣ ≤ γ n − 1 ∣ L ^ ∣ ∣ U ^ ∣ \lvert\Delta A\rvert\le\gamma_{n-1}\lvert\widehat L\rvert\lvert\widehat U\rvert ∣ Δ A ∣ ≤ γ n − 1 ∣ L ∣ ∣ U ∣ である。▨
定義 3.4. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) 、A ≠ 0 A\ne0 A = 0 とし、A A A の部分ピボット付き消去またはピボット選択なしの消去を、厳密算術または浮動小数点算術で実行して完了したとする。その作業行列W ( 1 ) , … , W ( n ) W^{(1)},\dots,W^{(n)} W ( 1 ) , … , W ( n ) について
g : = max 1 ≤ k ≤ n max k ≤ i , j ≤ n ∣ w i j ( k ) ∣ max 1 ≤ i , j ≤ n ∣ a i j ∣ 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} g := max 1 ≤ i , j ≤ n ∣ a ij ∣ max 1 ≤ k ≤ n max k ≤ i , j ≤ n ∣ w ij ( k ) ∣ をその実行の 成長因子 (growth factor ) という。分子の最大値は、各段k k k の作業行列の第k k k 行から第n n n 行、第k k k 列から第n n n 列の成分にわたってとり、保存した乗数を含めない。
補題 3.5. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、R n \R^n R n にノルム∥ h ∥ ∞ : = max 1 ≤ i ≤ n ∣ h i ∣ \lVert h\rVert_\infty:=\max_{1\le i\le n}\lvert h_i\rvert ∥ h ∥ ∞ := max 1 ≤ i ≤ n ∣ h i ∣ を入れ、X ∈ M n ( R ) X\in M_n(\R) X ∈ M n ( R ) の作用素ノルム(§E20.2 定義 1.1 )を∥ X ∥ ∞ \lVert X\rVert_\infty ∥ X ∥ ∞ と書く。
∥ X ∥ ∞ = max 1 ≤ i ≤ n ∑ j = 1 n ∣ x i j ∣ \lVert X\rVert_\infty=\max_{1\le i\le n}\sum_{j=1}^n\lvert x_{ij}\rvert ∥ X ∥ ∞ = max 1 ≤ i ≤ n ∑ j = 1 n ∣ x ij ∣ が成り立つ。
X , Y ∈ M n ( R ) X,Y\in M_n(\R) X , Y ∈ M n ( R ) が任意のi , j i,j i , j について∣ x i j ∣ ≤ y i j \lvert x_{ij}\rvert\le y_{ij} ∣ x ij ∣ ≤ y ij を満たすならば、∥ X ∥ ∞ ≤ ∥ Y ∥ ∞ \lVert X\rVert_\infty\le\lVert Y\rVert_\infty ∥ X ∥ ∞ ≤ ∥ Y ∥ ∞ である。
任意の置換行列Q Q Q に対して∥ Q X ∥ ∞ = ∥ X ∥ ∞ \lVert QX\rVert_\infty=\lVert X\rVert_\infty ∥ QX ∥ ∞ = ∥ X ∥ ∞ である。
証明. (1) を示す。∥ h ∥ ∞ = 1 \lVert h\rVert_\infty=1 ∥ h ∥ ∞ = 1 ならば、各i i i について∣ ( X h ) i ∣ ≤ ∑ j ∣ x i j ∣ \lvert(Xh)_i\rvert\le\sum_j\lvert x_{ij}\rvert ∣( X h ) i ∣ ≤ ∑ j ∣ x ij ∣ であるから、∥ X ∥ ∞ \lVert X\rVert_\infty ∥ X ∥ ∞ は右辺以下である。右辺の最大値をとるi i i について、x i j ≥ 0 x_{ij}\ge0 x ij ≥ 0 ならばh j : = 1 h_j:=1 h j := 1 、x i j < 0 x_{ij}<0 x ij < 0 ならばh j : = − 1 h_j:=-1 h j := − 1 と置くと、∥ h ∥ ∞ = 1 \lVert h\rVert_\infty=1 ∥ h ∥ ∞ = 1 かつ( X h ) i = ∑ j ∣ x i j ∣ (Xh)_i=\sum_j\lvert x_{ij}\rvert ( X h ) i = ∑ j ∣ x ij ∣ である。X X X の各行の成分の絶対値の和はY Y Y の対応する行の成分の和以下であり、Q X QX QX の行はX X X の行を並べ替えたものであるから、(1) により(2) と(3) が成り立つ。▨
命題 3.6. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) 、A ≠ 0 A\ne0 A = 0 とし、a max : = max 1 ≤ i , j ≤ n ∣ a i j ∣ a_{\max}:=\max_{1\le i,j\le n}\lvert a_{ij}\rvert a m a x := max 1 ≤ i , j ≤ n ∣ a ij ∣ と置く。
A A A の部分ピボット付き消去またはピボット選択なしの消去を、厳密算術または浮動小数点算術で実行して完了したとし、出力の上三角行列をU U U 、成長因子をg g g とする。このとき任意のi , j i,j i , j について∣ u i j ∣ ≤ g a max \lvert u_{ij}\rvert\le ga_{\max} ∣ u ij ∣ ≤ g a m a x である。
A A A が正則ならば、A A A の部分ピボット付き消去を厳密算術で実行したときの成長因子は2 n − 1 2^{n-1} 2 n − 1 以下である。
F = F ( β , p , e min , e max ) F=F(\beta,p,e_{\min},e_{\max}) F = F ( β , p , e m i n , e m a x ) をe min ≤ 0 ≤ e max e_{\min}\le0\le e_{\max} e m i n ≤ 0 ≤ e m a x を満たす浮動小数点数系、u u u をその単位丸め誤差、fl \operatorname{fl} fl をF F F の最近接丸めとし、A ∈ M n ( F ) A\in M_n(F) A ∈ M n ( F ) とする。A A A の部分ピボット付き消去をF F F とfl \operatorname{fl} fl の浮動小数点算術で実行すると完了し、実行が範囲条件を満たすとする。このとき出力の下三角行列の成分の絶対値は1 1 1 以下であり、成長因子は[ ( 1 + u ) ( 2 + u ) ] n − 1 [(1+u)(2+u)]^{n-1} [( 1 + u ) ( 2 + u ) ] n − 1 以下である。
(3) の仮定に加えて( n − 1 ) u < 1 (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) γ n − 1 := ( n − 1 ) u / ( 1 − ( n − 1 ) u ) と置く。出力を( P , L ^ , U ^ ) (P,\widehat L,\widehat U) ( P , L , U ) 、成長因子をg g g 、Δ A : = L ^ U ^ − P A \Delta A:=\widehat L\widehat U-PA Δ A := L U − P A とすると、∥ Δ A ∥ ∞ ≤ n 2 γ n − 1 g ∥ A ∥ ∞ \lVert\Delta A\rVert_\infty\le n^2\gamma_{n-1}g\lVert A\rVert_\infty ∥ Δ A ∥ ∞ ≤ n 2 γ n − 1 g ∥ A ∥ ∞ が成り立つ。
証明. 各実行についてg k : = max k ≤ i , j ≤ n ∣ w i j ( k ) ∣ g_k:=\max_{k\le i,j\le n}\lvert w^{(k)}_{ij}\rvert g k := max k ≤ i , j ≤ n ∣ w ij ( k ) ∣ と置く。g 1 = a max g_1=a_{\max} g 1 = a m a x であり、成長因子はmax k g k / a max \max_kg_k/a_{\max} max k g k / a m a x である。V ( k ) V^{(k)} V ( k ) はW ( k ) W^{(k)} W ( k ) の第k k k 行以降の二つの行を入れ替えたものであるから、max k ≤ i , j ≤ n ∣ v i j ( k ) ∣ = g k \max_{k\le i,j\le n}\lvert v^{(k)}_{ij}\rvert=g_k max k ≤ i , j ≤ n ∣ v ij ( k ) ∣ = g k である。
(1) を示す。第k k k 行は段k k k の後は変わらないので、j ≥ k j\ge k j ≥ k についてu k j = v k j ( k ) u_{kj}=v^{(k)}_{kj} u k j = v k j ( k ) であり、∣ u k j ∣ ≤ g k ≤ g a max \lvert u_{kj}\rvert\le g_k\le ga_{\max} ∣ u k j ∣ ≤ g k ≤ g a m a x である。
(2) を示す。定理 2.5 (1) により消去は完了する。定義 2.2 (1) によりi > k i>k i > k について∣ v i k ( k ) ∣ ≤ ∣ v k k ( k ) ∣ \lvert v^{(k)}_{ik}\rvert\le\lvert v^{(k)}_{kk}\rvert ∣ v ik ( k ) ∣ ≤ ∣ v k k ( k ) ∣ であるから、段k k k の乗数の絶対値は1 1 1 以下である。i , j > k i,j>k i , j > k について∣ w i j ( k + 1 ) ∣ ≤ ∣ v i j ( k ) ∣ + ∣ v k j ( k ) ∣ ≤ 2 g k \lvert w^{(k+1)}_{ij}\rvert\le\lvert v^{(k)}_{ij}\rvert+\lvert v^{(k)}_{kj}\rvert\le2g_k ∣ w ij ( k + 1 ) ∣ ≤ ∣ v ij ( k ) ∣ + ∣ v k j ( k ) ∣ ≤ 2 g k であるからg k + 1 ≤ 2 g k g_{k+1}\le2g_k g k + 1 ≤ 2 g k であり、g k ≤ 2 k − 1 g 1 g_k\le2^{k-1}g_1 g k ≤ 2 k − 1 g 1 である。したがって成長因子は2 n − 1 2^{n-1} 2 n − 1 以下である。
(3) を示す。e min ≤ 0 ≤ e max e_{\min}\le0\le e_{\max} e m i n ≤ 0 ≤ e m a x であるから1 = β p − 1 s 0 1=\beta^{p-1}s_0 1 = β p − 1 s 0 はF F F の正規化数であり、F = − F F=-F F = − F から− 1 ∈ F -1\in F − 1 ∈ F である。実数z z z が∣ z ∣ ≤ 1 \lvert z\rvert\le1 ∣ z ∣ ≤ 1 を満たすとき、fl ( z ) > 1 \operatorname{fl}(z)>1 fl ( z ) > 1 ならばz ≤ 1 < fl ( z ) z\le1<\operatorname{fl}(z) z ≤ 1 < fl ( z ) から∣ 1 − z ∣ < ∣ fl ( z ) − z ∣ \lvert1-z\rvert<\lvert\operatorname{fl}(z)-z\rvert ∣ 1 − z ∣ < ∣ fl ( z ) − z ∣ となり、fl ( z ) \operatorname{fl}(z) fl ( z ) がz z z の最近接点であることに反する。同様にfl ( z ) ≥ − 1 \operatorname{fl}(z)\ge-1 fl ( z ) ≥ − 1 である。段k k k の乗数はz = v i k ( k ) / v k k ( k ) z=v^{(k)}_{ik}/v^{(k)}_{kk} z = v ik ( k ) / v k k ( k ) (∣ z ∣ ≤ 1 \lvert z\rvert\le1 ∣ z ∣ ≤ 1 )に対するfl ( z ) \operatorname{fl}(z) fl ( z ) であるから、絶対値は1 1 1 以下である。出力の下三角行列の成分は乗数を行交換で移したものであり、絶対値は1 1 1 以下である。i , j > k i,j>k i , j > k について、乗数をl ^ \widehat l l と書くと、§E20.1 系 3.2 (1) または§E20.1 系 3.2 (2) により∣ fl ( l ^ v k j ( k ) ) ∣ ≤ ( 1 + u ) ∣ l ^ ∣ ∣ v k j ( k ) ∣ ≤ ( 1 + u ) g k \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 ∣ fl ( l v k j ( k ) )∣ ≤ ( 1 + u ) ∣ l ∣ ∣ v k j ( k ) ∣ ≤ ( 1 + u ) g k であり、§E20.1 系 3.3 により
∣ w i j ( k + 1 ) ∣ ≤ ( 1 + u ) ( ∣ v i j ( k ) ∣ + ∣ fl ( l ^ v k j ( k ) ) ∣ ) ≤ ( 1 + u ) ( 2 + u ) g k \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 ∣ w ij ( k + 1 ) ∣ ≤ ( 1 + u ) ( ∣ v ij ( k ) ∣ + ∣ fl ( l v k j ( k ) )∣ ) ≤ ( 1 + u ) ( 2 + u ) g k である。k k k に関する帰納法によりg k ≤ [ ( 1 + u ) ( 2 + u ) ] k − 1 g 1 g_k\le[(1+u)(2+u)]^{k-1}g_1 g k ≤ [( 1 + u ) ( 2 + u ) ] k − 1 g 1 であり、成長因子は[ ( 1 + u ) ( 2 + u ) ] n − 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 ∣ Δ A ∣ ≤ γ n − 1 ∣ L ∣ ∣ U ∣ である。(3) と(1) により、( ∣ L ^ ∣ ∣ U ^ ∣ ) i j = ∑ m ≤ min { i , j } ∣ l ^ i m ∣ ∣ u ^ m j ∣ ≤ n g a max (\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} (∣ L ∣ ∣ U ∣ ) ij = ∑ m ≤ m i n { i , j } ∣ l im ∣ ∣ u mj ∣ ≤ n g a m a x である。γ n − 1 ∣ L ^ ∣ ∣ U ^ ∣ \gamma_{n-1}\lvert\widehat L\rvert\lvert\widehat U\rvert γ n − 1 ∣ L ∣ ∣ U ∣ の各行の成分の和はn 2 γ n − 1 g a max n^2\gamma_{n-1}ga_{\max} n 2 γ n − 1 g a m a x 以下であり、a max a_{\max} a m a x はA A A のある行の成分の絶対値の和以下であるから、補題 3.5 (1) と補題 3.5 (2) により∥ Δ A ∥ ∞ ≤ n 2 γ n − 1 g a max ≤ n 2 γ n − 1 g ∥ 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 ∥ Δ A ∥ ∞ ≤ n 2 γ n − 1 g a m a x ≤ n 2 γ n − 1 g ∥ A ∥ ∞ である。▨
例 3.7. n ≥ 2 n\ge2 n ≥ 2 とし、W n ∈ M n ( R ) W_n\in M_n(\R) W n ∈ M n ( R ) を、対角成分と第n n n 列の成分が1 1 1 、狭義下三角成分が− 1 -1 − 1 、その他の成分が0 0 0 の行列とする。
W n W_n W n の部分ピボット付き消去を厳密算術で実行する。1 ≤ k < n 1\le k<n 1 ≤ k < n とし、段k k k の作業行列のi , j ≥ k i,j\ge k i , j ≥ k の成分が
w i j ( k ) = { 2 k − 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} w ij ( k ) = ⎩ ⎨ ⎧ 2 k − 1 1 − 1 0 ( j = n ) , ( i = j < n ) , ( j < i , j < n ) , ( i < j < n ) で与えられるとする。第k k k 列のi ≥ k i\ge k i ≥ k の成分の絶対値はすべて1 1 1 であり、最小の添字を選ぶのでr k = k r_k=k r k = k 、ピボットは1 1 1 、乗数はすべて− 1 -1 − 1 である。i , j > k i,j>k i , j > k についてw i j ( k + 1 ) = w i j ( k ) + w k j ( k ) w^{(k+1)}_{ij}=w^{(k)}_{ij}+w^{(k)}_{kj} w ij ( k + 1 ) = w ij ( k ) + w k j ( k ) であり、w k j ( k ) w^{(k)}_{kj} w k j ( k ) はk < j < n k<j<n k < j < n で0 0 0 、j = n j=n j = n で2 k − 1 2^{k-1} 2 k − 1 であるから、第n n n 列の成分は2 k − 1 + 2 k − 1 = 2 k 2^{k-1}+2^{k-1}=2^k 2 k − 1 + 2 k − 1 = 2 k になり、その他の成分は変わらない。したがって段k + 1 k+1 k + 1 の作業行列のi , j ≥ k + 1 i,j\ge k+1 i , j ≥ k + 1 の成分は、上の式のk k k をk + 1 k+1 k + 1 に替えた式で与えられる。W ( 1 ) = W n W^{(1)}=W_n W ( 1 ) = W n の成分はk = 1 k=1 k = 1 の式で与えられるから、k k k に関する帰納法により、すべての段k k k で上の式が成り立ち、行交換は起きない。段k k k の成分の絶対値の最大値は2 k − 1 2^{k-1} 2 k − 1 、u n n = 2 n − 1 u_{nn}=2^{n-1} u nn = 2 n − 1 であり、成長因子は2 n − 1 2^{n-1} 2 n − 1 である。行交換が起きないので、この消去はピボット選択なしの消去に一致する。補題 2.3 によりW n = L U W_n=LU W n = LU であり、det W n = 2 n − 1 ≠ 0 \det W_n=2^{n-1}\ne0 det W n = 2 n − 1 = 0 であるからW n W_n W n は正則であって、命題 3.6 (2) の上界は等号で成り立つ。
F = F ( 2 , p , e min , e max ) F=F(2,p,e_{\min},e_{\max}) F = F ( 2 , p , e m i n , e m a x ) がe min ≤ 0 e_{\min}\le0 e m i n ≤ 0 とn − 1 ≤ e max n-1\le e_{\max} n − 1 ≤ e m a x を満たすとし、fl \operatorname{fl} fl をF F F の任意の最近接丸めとする。上の計算の演算の厳密な結果は、除算− 1 / 1 = − 1 -1/1=-1 − 1/1 = − 1 、乗算( − 1 ) ⋅ 0 = 0 (-1)\cdot0=0 ( − 1 ) ⋅ 0 = 0 と( − 1 ) ⋅ 2 k − 1 (-1)\cdot2^{k-1} ( − 1 ) ⋅ 2 k − 1 、減算w i j ( k ) − 0 ∈ { − 1 , 0 , 1 } w^{(k)}_{ij}-0\in\{-1,0,1\} w ij ( k ) − 0 ∈ { − 1 , 0 , 1 } と2 k − 1 − ( − 2 k − 1 ) = 2 k 2^{k-1}-(-2^{k-1})=2^k 2 k − 1 − ( − 2 k − 1 ) = 2 k (1 ≤ k ≤ n − 1 1\le k\le n-1 1 ≤ k ≤ n − 1 )であり、0 ≤ j ≤ n − 1 0\le j\le n-1 0 ≤ j ≤ n − 1 に対する2 j = 2 p − 1 s j 2^j=2^{p-1}s_j 2 j = 2 p − 1 s j はF F F の正規化数であるから、すべてF F F の元である。§E20.1 系 3.2 (1) により浮動小数点算術の各演算は厳密であり、実行は範囲条件を満たし、ピボットの選択も厳密算術と同じである。したがって浮動小数点算術の出力は厳密算術の出力に等しく、補題 2.3 によりΔ A = L ^ U ^ − W n = 0 \Delta A=\widehat L\widehat U-W_n=0 Δ A = L U − W n = 0 である。さらにF F F の単位丸め誤差u u u が( n − 1 ) u < 1 (n-1)u<1 ( n − 1 ) u < 1 を満たすならば、命題 3.6 (4) の右辺は、g = 2 n − 1 g=2^{n-1} g = 2 n − 1 と∥ W n ∥ ∞ = n \lVert W_n\rVert_\infty=n ∥ W n ∥ ∞ = n からn 3 γ n − 1 2 n − 1 n^3\gamma_{n-1}2^{n-1} n 3 γ n − 1 2 n − 1 である。
定理 3.8. F F F を浮動小数点数系、u u u をその単位丸め誤差、fl \operatorname{fl} fl をF F F の最近接丸めとし、n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 がn u < 1 nu<1 n u < 1 を満たすとする。0 ≤ j ≤ n 0\le j\le n 0 ≤ j ≤ n に対してγ j : = j u / ( 1 − j u ) \gamma_j:=ju/(1-ju) γ j := j u / ( 1 − j u ) と置く。行列の絶対値と不等式は成分ごとに解釈する。
T ∈ M n ( F ) T\in M_n(F) T ∈ M n ( F ) を対角成分がすべて0 0 0 でない下三角行列または上三角行列、c ∈ F n c\in F^n c ∈ F n とし、T y = c Ty=c T y = c の前進代入または後退代入をF F F とfl \operatorname{fl} fl の浮動小数点算術で実行すると範囲条件を満たすとする。その計算値をy ^ \widehat y y とすると、∣ E ∣ ≤ γ n ∣ T ∣ \lvert E\rvert\le\gamma_n\lvert T\rvert ∣ E ∣ ≤ γ n ∣ T ∣ を満たすE ∈ M n ( R ) E\in M_n(\R) E ∈ M n ( R ) が存在して( T + E ) y ^ = c (T+E)\widehat y=c ( T + E ) y = c が成り立つ。
A ∈ M n ( F ) A\in M_n(F) A ∈ M n ( F ) と( P , L ^ , U ^ ) (P,\widehat L,\widehat U) ( P , L , U ) が定理 3.3 の仮定を満たすとし、b ∈ F n b\in F^n b ∈ F n とする。L ^ y = P b \widehat Ly=Pb L y = P b の前進代入の計算値をy ^ \widehat y y 、U ^ x = y ^ \widehat Ux=\widehat y U x = y の後退代入の計算値をx ^ \widehat x x とし、二つの代入をF F F とfl \operatorname{fl} fl の浮動小数点算術で実行すると範囲条件を満たすとする。このとき∣ E ∣ ≤ ( 3 γ n + γ n 2 ) ∣ L ^ ∣ ∣ U ^ ∣ \lvert E\rvert\le(3\gamma_n+\gamma_n^2)\lvert\widehat L\rvert\lvert\widehat U\rvert ∣ E ∣ ≤ ( 3 γ n + γ n 2 ) ∣ L ∣ ∣ U ∣ を満たすE ∈ M n ( R ) E\in M_n(\R) E ∈ M n ( R ) が存在して( P A + E ) x ^ = P b (PA+E)\widehat x=Pb ( P A + E ) x = P b が成り立つ。
証明. (1) を示す。T T T が下三角行列であるとし、1 ≤ i ≤ n 1\le i\le n 1 ≤ i ≤ n を固定する。前進代入の第i i i 段は、補題 3.2 の漸化式をk = i − 1 k=i-1 k = i − 1 、c = c i c=c_i c = c i 、( x m , y m ) = ( t i m , y ^ m ) (x_m,y_m)=(t_{im},\widehat y_m) ( x m , y m ) = ( t im , y m ) として計算し、y ^ i = fl ( s i − 1 / t i i ) \widehat y_i=\operatorname{fl}(s_{i-1}/t_{ii}) y i = fl ( s i − 1 / t ii ) (対角成分がすべて1 1 1 のときはy ^ i = s i − 1 \widehat y_i=s_{i-1} y i = s i − 1 )と置くものであり、範囲条件により補題の仮定が満たされる。補題 3.2 (2) (対角成分がすべて1 1 1 のときは補題 3.2 (1) )をd = t i i d=t_{ii} d = t ii として適用すると、∣ θ i m ∣ ≤ γ m \lvert\theta_{im}\rvert\le\gamma_m ∣ θ im ∣ ≤ γ m と∣ θ i i ∣ ≤ γ i \lvert\theta_{ii}\rvert\le\gamma_i ∣ θ ii ∣ ≤ γ i を満たす実数により
c i = ∑ m = 1 i − 1 t i m y ^ m ( 1 + θ i m ) + t i i y ^ i ( 1 + θ i i ) c_i=\sum_{m=1}^{i-1}t_{im}\widehat y_m(1+\theta_{im})+t_{ii}\widehat y_i(1+\theta_{ii}) c i = m = 1 ∑ i − 1 t im y m ( 1 + θ im ) + t ii y i ( 1 + θ ii ) が成り立つ。m ≤ i m\le i m ≤ i についてe i m : = t i m θ i m e_{im}:=t_{im}\theta_{im} e im := t im θ im 、m > i m>i m > i についてe i m : = 0 e_{im}:=0 e im := 0 と置くと、( T + E ) y ^ = c (T+E)\widehat y=c ( T + E ) y = c であり、γ m ≤ γ i ≤ γ n \gamma_m\le\gamma_i\le\gamma_n γ m ≤ γ i ≤ γ n から∣ E ∣ ≤ γ n ∣ T ∣ \lvert E\rvert\le\gamma_n\lvert T\rvert ∣ E ∣ ≤ γ n ∣ T ∣ である。T T T が上三角行列の場合は、第i i i 段に同じ補題をk = n − i k=n-i k = n − i 、( x 1 , y 1 ) , … , ( x n − i , y n − i ) = ( t i , i + 1 , y ^ i + 1 ) , … , ( t i n , 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) ( x 1 , y 1 ) , … , ( x n − i , y n − i ) = ( t i , i + 1 , y i + 1 ) , … , ( t in , y n ) として適用する。各項の因子の個数はn − i + 1 n-i+1 n − i + 1 以下であり、n − i + 1 ≤ n n-i+1\le n n − i + 1 ≤ n であるから、同じ結論を得る。
(2) を示す。P b ∈ F n Pb\in F^n P b ∈ F n とy ^ ∈ F n \widehat y\in F^n y ∈ F n に(1) を適用すると、∣ E 1 ∣ ≤ γ n ∣ L ^ ∣ \lvert E_1\rvert\le\gamma_n\lvert\widehat L\rvert ∣ E 1 ∣ ≤ γ n ∣ L ∣ と∣ E 2 ∣ ≤ γ n ∣ U ^ ∣ \lvert E_2\rvert\le\gamma_n\lvert\widehat U\rvert ∣ E 2 ∣ ≤ γ n ∣ U ∣ を満たすE 1 , E 2 E_1,E_2 E 1 , E 2 が存在して( L ^ + E 1 ) y ^ = P b (\widehat L+E_1)\widehat y=Pb ( L + E 1 ) y = P b 、( U ^ + E 2 ) x ^ = y ^ (\widehat U+E_2)\widehat x=\widehat y ( U + E 2 ) x = y が成り立つ。定理 3.3 のΔ A \Delta A Δ A を用いると
P b = ( L ^ + E 1 ) ( U ^ + E 2 ) x ^ = ( P A + Δ A + E 1 U ^ + L ^ E 2 + E 1 E 2 ) 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 P b = ( L + E 1 ) ( U + E 2 ) x = ( P A + Δ A + E 1 U + L E 2 + E 1 E 2 ) x である。E : = Δ A + E 1 U ^ + L ^ E 2 + E 1 E 2 E:=\Delta A+E_1\widehat U+\widehat LE_2+E_1E_2 E := Δ A + E 1 U + L E 2 + E 1 E 2 と置くと、∣ X Y ∣ ≤ ∣ X ∣ ∣ Y ∣ \lvert XY\rvert\le\lvert X\rvert\lvert Y\rvert ∣ X Y ∣ ≤ ∣ X ∣ ∣ Y ∣ とγ n − 1 ≤ γ n \gamma_{n-1}\le\gamma_n γ n − 1 ≤ γ n により∣ E ∣ ≤ ( γ n − 1 + 2 γ n + γ n 2 ) ∣ L ^ ∣ ∣ U ^ ∣ ≤ ( 3 γ n + γ n 2 ) ∣ 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 ∣ E ∣ ≤ ( γ n − 1 + 2 γ n + γ n 2 ) ∣ L ∣ ∣ U ∣ ≤ ( 3 γ n + γ n 2 ) ∣ L ∣ ∣ U ∣ である。▨
4 行列の条件数と残差
定義 4.1. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、T ∈ M n ( C ) T\in M_n(\C) T ∈ M n ( C ) とする。det ( λ I − T ) = 0 \det(\lambda I-T)=0 det ( λ I − T ) = 0 を満たす複素数λ \lambda λ の絶対値の最大値をρ ( T ) \rho(T) ρ ( T ) と書き、T T T の スペクトル半径 (spectral radius ) という。実行列A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) はM n ( C ) M_n(\C) M n ( C ) の元として扱い、ρ ( A ) \rho(A) ρ ( A ) を同じ式で定める。
定義 4.2. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、T ∈ C n × n T\in\C^{n\times n} T ∈ C n × n とする。C n \C^n C n にノルム∥ ⋅ ∥ \lVert\cdot\rVert ∥ ⋅ ∥ を固定する。∥ T ∥ : = sup { ∥ T h ∥ ∣ h ∈ C n , ∥ h ∥ = 1 } \lVert T\rVert:=\sup\{\lVert Th\rVert\mid h\in\C^n,\ \lVert h\rVert=1\} ∥ T ∥ := sup {∥ T h ∥ ∣ h ∈ C n , ∥ h ∥ = 1 } を、このノルムに関するT T T の作用素ノルムという。∥ T ∥ < ∞ \lVert T\rVert<\infty ∥ T ∥ < ∞ ならば、任意のh ∈ C n h\in\C^n h ∈ C n に対して∥ T h ∥ ≤ ∥ T ∥ ∥ h ∥ \lVert Th\rVert\le\lVert T\rVert\lVert h\rVert ∥ T h ∥ ≤ ∥ T ∥ ∥ h ∥ が成り立つ。実行列T ∈ R n × n T\in\R^{n\times n} T ∈ R n × n はC n × n \C^{n\times n} C n × n の元として扱う。
定義 4.3. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、R n \R^n R n にノルム∥ ⋅ ∥ \lVert\cdot\rVert ∥ ⋅ ∥ を固定する。A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) に対して、定義域と値域にこのノルムを入れた作用素ノルムを∥ A ∥ \lVert A\rVert ∥ A ∥ と書く。A A A が正則ならばκ ( A ) : = ∥ A ∥ ∥ A − 1 ∥ \kappa(A):=\lVert A\rVert\lVert A^{-1}\rVert κ ( A ) := ∥ A ∥ ∥ A − 1 ∥ 、A A A が正則でないならばκ ( A ) : = + ∞ \kappa(A):=+\infty κ ( A ) := + ∞ と置き、κ ( A ) \kappa(A) κ ( A ) をA A A の 条件数 (condition number of a matrix ) という。R n \R^n R n のノルムが∥ h ∥ ∞ = max i ∣ h i ∣ \lVert h\rVert_\infty=\max_i\lvert h_i\rvert ∥ h ∥ ∞ = max i ∣ h i ∣ のときと Euclid ノルム∥ h ∥ 2 \lVert h\rVert_2 ∥ h ∥ 2 のとき、κ ( A ) \kappa(A) κ ( A ) をそれぞれκ ∞ ( A ) \kappa_\infty(A) κ ∞ ( A ) 、κ 2 ( A ) \kappa_2(A) κ 2 ( A ) と書く。
命題 4.4. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、R n \R^n R n にノルム∥ ⋅ ∥ \lVert\cdot\rVert ∥ ⋅ ∥ を固定し、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) とする。
ρ ( A ) ≤ ∥ A ∥ \rho(A)\le\lVert A\rVert ρ ( A ) ≤ ∥ A ∥ が成り立つ。
κ ( A ) ≥ 1 \kappa(A)\ge1 κ ( A ) ≥ 1 が成り立つ。
A A A が正則であるとし、S A : R n → R n S_A\colon\R^n\to\R^n S A : R n → R n をS A ( b ) : = A − 1 b S_A(b):=A^{-1}b S A ( b ) := A − 1 b で定める。b ≠ 0 b\ne0 b = 0 ならばκ r e l ( S A , b ) = ∥ A − 1 ∥ ∥ b ∥ / ∥ A − 1 b ∥ ≤ κ ( A ) \kappa_{\mathrm{rel}}(S_A,b)=\lVert A^{-1}\rVert\lVert b\rVert/\lVert A^{-1}b\rVert\le\kappa(A) κ rel ( S A , b ) = ∥ A − 1 ∥ ∥ b ∥ / ∥ A − 1 b ∥ ≤ κ ( A ) であり、max b ≠ 0 κ r e l ( S A , b ) = κ ( A ) \max_{b\ne0}\kappa_{\mathrm{rel}}(S_A,b)=\kappa(A) max b = 0 κ rel ( S A , b ) = κ ( A ) である。
A A A が正則であり、σ 1 ≥ ⋯ ≥ σ n \sigma_1\ge\dots\ge\sigma_n σ 1 ≥ ⋯ ≥ σ n がA A A の特異値であるならば、σ n > 0 \sigma_n>0 σ n > 0 かつκ 2 ( A ) = σ 1 / σ n \kappa_2(A)=\sigma_1/\sigma_n κ 2 ( A ) = σ 1 / σ n である。
A A A が実対称かつ正定値であり、λ max \lambda_{\max} λ m a x 、λ min \lambda_{\min} λ m i n がA A A の最大と最小の固有値であるならば、λ min > 0 \lambda_{\min}>0 λ m i n > 0 かつκ 2 ( A ) = λ max / λ min \kappa_2(A)=\lambda_{\max}/\lambda_{\min} κ 2 ( A ) = λ m a x / λ m i n である。
証明. (1) を示す。λ ∈ C \lambda\in\C λ ∈ C がdet ( λ I − A ) = 0 \det(\lambda I-A)=0 det ( λ I − A ) = 0 を満たすとし、z ∈ C n ∖ { 0 } z\in\C^n\setminus\{0\} z ∈ C n ∖ { 0 } をA z = λ z Az=\lambda z A z = λ z を満たすベクトルとする。w ∈ C n w\in\C^n w ∈ C n の実部をRe w ∈ R n \operatorname{Re}w\in\R^n Re w ∈ R n と書き、N ( w ) : = sup θ ∈ R ∥ Re ( e i θ w ) ∥ N(w):=\sup_{\theta\in\R}\lVert\operatorname{Re}(e^{i\theta}w)\rVert N ( w ) := sup θ ∈ R ∥ Re ( e i θ w )∥ と置く。w = x + i y w=x+iy w = x + i y (x , y ∈ R n x,y\in\R^n x , y ∈ R n )ならばRe ( e i θ w ) = x cos θ − y sin θ \operatorname{Re}(e^{i\theta}w)=x\cos\theta-y\sin\theta Re ( e i θ w ) = x cos θ − y sin θ であるから、N ( w ) ≤ ∥ x ∥ + ∥ y ∥ N(w)\le\lVert x\rVert+\lVert y\rVert N ( w ) ≤ ∥ x ∥ + ∥ y ∥ であり、θ = 0 \theta=0 θ = 0 とθ = − π / 2 \theta=-\pi/2 θ = − π /2 からN ( w ) ≥ max { ∥ x ∥ , ∥ y ∥ } N(w)\ge\max\{\lVert x\rVert,\lVert y\rVert\} N ( w ) ≥ max {∥ x ∥ , ∥ y ∥} である。したがってN ( z ) > 0 N(z)>0 N ( z ) > 0 である。A A A は実行列であるからRe ( e i θ A w ) = A Re ( e i θ w ) \operatorname{Re}(e^{i\theta}Aw)=A\operatorname{Re}(e^{i\theta}w) Re ( e i θ A w ) = A Re ( e i θ w ) であり、§E20.2 補題 1.2 (1) によりN ( A w ) ≤ ∥ A ∥ N ( w ) N(Aw)\le\lVert A\rVert N(w) N ( A w ) ≤ ∥ A ∥ N ( w ) である。λ = ∣ λ ∣ e i φ \lambda=\lvert\lambda\rvert e^{i\varphi} λ = ∣ λ ∣ e i φ と書くとRe ( e i θ λ w ) = ∣ λ ∣ Re ( e i ( θ + φ ) w ) \operatorname{Re}(e^{i\theta}\lambda w)=\lvert\lambda\rvert\operatorname{Re}(e^{i(\theta+\varphi)}w) Re ( e i θ λ w ) = ∣ λ ∣ Re ( e i ( θ + φ ) w ) であるから、N ( λ w ) = ∣ λ ∣ N ( w ) N(\lambda w)=\lvert\lambda\rvert N(w) N ( λ w ) = ∣ λ ∣ N ( w ) である。よって∣ λ ∣ N ( z ) = N ( A z ) ≤ ∥ A ∥ N ( z ) \lvert\lambda\rvert N(z)=N(Az)\le\lVert A\rVert N(z) ∣ λ ∣ N ( z ) = N ( A z ) ≤ ∥ A ∥ N ( z ) であり、∣ λ ∣ ≤ ∥ A ∥ \lvert\lambda\rvert\le\lVert A\rVert ∣ λ ∣ ≤ ∥ A ∥ である。
(2) を示す。A A A が正則でなければκ ( A ) = + ∞ \kappa(A)=+\infty κ ( A ) = + ∞ である。A A A が正則であるとする。X , Y ∈ M n ( R ) X,Y\in M_n(\R) X , Y ∈ M n ( R ) とh ∈ R n h\in\R^n h ∈ R n について、§E20.2 補題 1.2 (1) により∥ X Y h ∥ ≤ ∥ X ∥ ∥ Y ∥ ∥ h ∥ \lVert XYh\rVert\le\lVert X\rVert\lVert Y\rVert\lVert h\rVert ∥ X Y h ∥ ≤ ∥ X ∥ ∥ Y ∥ ∥ h ∥ であるから∥ X Y ∥ ≤ ∥ X ∥ ∥ Y ∥ \lVert XY\rVert\le\lVert X\rVert\lVert Y\rVert ∥ X Y ∥ ≤ ∥ X ∥ ∥ Y ∥ である。∥ I ∥ = 1 \lVert I\rVert=1 ∥ I ∥ = 1 であるから1 = ∥ A A − 1 ∥ ≤ ∥ A ∥ ∥ A − 1 ∥ 1=\lVert AA^{-1}\rVert\le\lVert A\rVert\lVert A^{-1}\rVert 1 = ∥ A A − 1 ∥ ≤ ∥ A ∥ ∥ A − 1 ∥ である。
(3) を示す。S A S_A S A は可逆な線形写像であり、S A − 1 ( h ) = A h S_A^{-1}(h)=Ah S A − 1 ( h ) = A h である。§E20.2 定理 3.5 (1) をS A S_A S A とb ≠ 0 b\ne0 b = 0 に適用するとκ r e l ( S A , b ) = ∥ A − 1 ∥ ∥ b ∥ / ∥ A − 1 b ∥ \kappa_{\mathrm{rel}}(S_A,b)=\lVert A^{-1}\rVert\lVert b\rVert/\lVert A^{-1}b\rVert κ rel ( S A , b ) = ∥ A − 1 ∥ ∥ b ∥ / ∥ A − 1 b ∥ であり、§E20.2 定理 3.5 (2) により、これは∥ S A ∥ ∥ S A − 1 ∥ = ∥ A − 1 ∥ ∥ A ∥ \lVert S_A\rVert\lVert S_A^{-1}\rVert=\lVert A^{-1}\rVert\lVert A\rVert ∥ S A ∥ ∥ S A − 1 ∥ = ∥ A − 1 ∥ ∥ A ∥ 以下であって、最大値∥ A − 1 ∥ ∥ A ∥ \lVert A^{-1}\rVert\lVert A\rVert ∥ A − 1 ∥ ∥ A ∥ をとるb ≠ 0 b\ne0 b = 0 が存在する。
(4) を示す。§D3.18 定理 1.2 により、直交行列U , V U,V U , V とΣ = diag ( σ 1 , … , σ n ) \Sigma=\operatorname{diag}(\sigma_1,\dots,\sigma_n) Σ = diag ( σ 1 , … , σ n ) が存在してA = U Σ V T A=U\Sigma V^{\mathsf T} A = U Σ V T であり、§D3.18 命題 2.1 によりσ 1 , … , σ n \sigma_1,\dots,\sigma_n σ 1 , … , σ n はこの分解によらない。A A A の階数はn n n であるからσ n > 0 \sigma_n>0 σ n > 0 である。直交行列は∥ ⋅ ∥ 2 \lVert\cdot\rVert_2 ∥ ⋅ ∥ 2 を保つので∥ A h ∥ 2 = ∥ Σ V T h ∥ 2 \lVert Ah\rVert_2=\lVert\Sigma V^{\mathsf T}h\rVert_2 ∥ A h ∥ 2 = ∥ Σ V T h ∥ 2 、∥ V T h ∥ 2 = ∥ h ∥ 2 \lVert V^{\mathsf T}h\rVert_2=\lVert h\rVert_2 ∥ V T h ∥ 2 = ∥ h ∥ 2 であり、∥ A ∥ 2 = ∥ Σ ∥ 2 \lVert A\rVert_2=\lVert\Sigma\rVert_2 ∥ A ∥ 2 = ∥ Σ ∥ 2 である。∥ Σ k ∥ 2 2 = ∑ i σ i 2 k i 2 ≤ σ 1 2 ∥ k ∥ 2 2 \lVert\Sigma k\rVert_2^2=\sum_i\sigma_i^2k_i^2\le\sigma_1^2\lVert k\rVert_2^2 ∥ Σ k ∥ 2 2 = ∑ i σ i 2 k i 2 ≤ σ 1 2 ∥ k ∥ 2 2 であり、k k k を第1 1 1 基本ベクトルとすると等号が成り立つから、∥ Σ ∥ 2 = σ 1 \lVert\Sigma\rVert_2=\sigma_1 ∥ Σ ∥ 2 = σ 1 である。A − 1 = V Σ − 1 U T A^{-1}=V\Sigma^{-1}U^{\mathsf T} A − 1 = V Σ − 1 U T とΣ − 1 = diag ( 1 / σ 1 , … , 1 / σ n ) \Sigma^{-1}=\operatorname{diag}(1/\sigma_1,\dots,1/\sigma_n) Σ − 1 = diag ( 1/ σ 1 , … , 1/ σ n ) に同じ議論を適用して∥ A − 1 ∥ 2 = 1 / σ n \lVert A^{-1}\rVert_2=1/\sigma_n ∥ A − 1 ∥ 2 = 1/ σ n である。
(5) を示す。§D3.15 定理 3.1 により、直交行列Q Q Q と実数λ 1 ≥ ⋯ ≥ λ n \lambda_1\ge\dots\ge\lambda_n λ 1 ≥ ⋯ ≥ λ n が存在してA = Q diag ( λ 1 , … , λ n ) Q T A=Q\operatorname{diag}(\lambda_1,\dots,\lambda_n)Q^{\mathsf T} A = Q diag ( λ 1 , … , λ n ) Q T である。Q Q Q の第i i i 列q i q_i q i についてλ i = q i T A q i > 0 \lambda_i=q_i^{\mathsf T}Aq_i>0 λ i = q i T A q i > 0 であるから、λ min = λ n > 0 \lambda_{\min}=\lambda_n>0 λ m i n = λ n > 0 である。A = ∑ i λ i q i q i T A=\sum_i\lambda_iq_iq_i^{\mathsf T} A = ∑ i λ i q i q i T は§D3.18 定理 1.2 の形の分解であるから、§D3.18 命題 2.1 によりA A A の特異値はλ 1 , … , λ n \lambda_1,\dots,\lambda_n λ 1 , … , λ n であり、(4) によりκ 2 ( A ) = λ 1 / λ n \kappa_2(A)=\lambda_1/\lambda_n κ 2 ( A ) = λ 1 / λ n である。▨
命題 4.5. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、R n \R^n R n にノルム∥ ⋅ ∥ \lVert\cdot\rVert ∥ ⋅ ∥ を固定する。A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) を正則行列、b ∈ R n b\in\R^n b ∈ R n をb ≠ 0 b\ne0 b = 0 を満たすベクトル、x : = A − 1 b x:=A^{-1}b x := A − 1 b とする。任意のx ^ ∈ R n \widehat x\in\R^n x ∈ R n に対して、r : = b − A x ^ r:=b-A\widehat x r := b − A 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} ∥ x ∥ ∥ x − x ∥ ≤ κ ( A ) ∥ b ∥ ∥ r ∥ が成り立つ。
証明. b ≠ 0 b\ne0 b = 0 からx ≠ 0 x\ne0 x = 0 である。x − x ^ = A − 1 ( b − A x ^ ) = A − 1 r x-\widehat x=A^{-1}(b-A\widehat x)=A^{-1}r x − x = A − 1 ( b − A 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 ∥ x − x ∥ ≤ ∥ A − 1 ∥ ∥ r ∥ であり、∥ b ∥ = ∥ A x ∥ ≤ ∥ A ∥ ∥ x ∥ \lVert b\rVert=\lVert Ax\rVert\le\lVert A\rVert\lVert x\rVert ∥ b ∥ = ∥ A x ∥ ≤ ∥ A ∥ ∥ x ∥ である。二つの不等式から∥ 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 ∥ x − x ∥ / ∥ x ∥ ≤ ∥ A − 1 ∥ ∥ A ∥ ∥ r ∥ / ∥ b ∥ である。▨
5 Cholesky 分解
定義 5.1. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) とする。
対角成分がすべて1 1 1 の下三角行列L L L と対角行列D D D がA = L D L T A=LDL^{\mathsf T} A = L D L T を満たすとき、組( L , D ) (L,D) ( L , D ) をA A A の L D L T LDL^{\mathsf T} L D L T 分解 (LDLT factorization ) という。
対角成分がすべて正の下三角行列C C C がA = C C T A=CC^{\mathsf T} A = C C T を満たすとき、C C C をA A A の Cholesky 因子 (Cholesky factor ) といい、等式A = C C T A=CC^{\mathsf T} A = C C T をA A A の Cholesky 分解 (Cholesky factorization ) という。
定理 5.2. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) を実対称行列とする。1 ≤ k ≤ n 1\le k\le n 1 ≤ k ≤ n に対して、A A A の左上k × k k\times k k × k 部分の行列式をΔ k \Delta_k Δ k とし、Δ 0 : = 1 \Delta_0:=1 Δ 0 := 1 と置く。
A A A が正定値ならば、A A A のピボット選択なしの消去を厳密算術で実行するとどの段でも失敗せず、段k k k のピボットはd k = Δ k / Δ k − 1 > 0 d_k=\Delta_k/\Delta_{k-1}>0 d k = Δ k / Δ k − 1 > 0 である。
A A A が正定値ならば、(1) の消去の出力( L , U ) (L,U) ( L , U ) とD : = diag ( d 1 , … , d n ) D:=\operatorname{diag}(d_1,\dots,d_n) D := diag ( d 1 , … , d n ) についてU = D L T U=DL^{\mathsf T} U = D L T であり、( L , D ) (L,D) ( L , D ) はA A A のL D L T LDL^{\mathsf T} L D L T 分解である。
A A A が正定値ならば、C : = L diag ( d 1 , … , d n ) C:=L\operatorname{diag}(\sqrt{d_1},\dots,\sqrt{d_n}) C := L diag ( d 1 , … , d n ) はA A A の Cholesky 因子であり、A A A の Cholesky 因子はC C C だけである。
A A A が Cholesky 因子をもつならば、A A A は正定値である。
A A A が正定値ならば、A A A の Cholesky 因子C C C の成分は、j = 1 , … , n j=1,\dots,n j = 1 , … , n の順に
c j j = ( a j j − ∑ m = 1 j − 1 c j m 2 ) 1 / 2 , c i j = 1 c j j ( a i j − ∑ m = 1 j − 1 c i m c j m ) ( 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) c j j = ( a j j − m = 1 ∑ j − 1 c j m 2 ) 1/2 , c ij = c j j 1 ( a ij − m = 1 ∑ j − 1 c im c j m ) ( i > j )
で与えられ、根号の中は正である。この式による計算はn 3 / 3 + n 2 / 2 − 5 n / 6 n^3/3+n^2/2-5n/6 n 3 /3 + n 2 /2 − 5 n /6 回の四則演算とn n n 回の平方根で行われる。
証明. (1) を示す。§E3.40 定理 3.1 によりΔ k > 0 \Delta_k>0 Δ k > 0 (1 ≤ k ≤ n 1\le k\le n 1 ≤ k ≤ n )である。1 ≤ k ≤ n 1\le k\le n 1 ≤ k ≤ n とし、段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗せず、段m < k m<k m < k のピボットがd m = Δ m / Δ m − 1 d_m=\Delta_m/\Delta_{m-1} d m = Δ m / Δ m − 1 であると仮定する。補題 2.3 によりA = L ( k ) R ( k ) A=L^{(k)}R^{(k)} A = L ( k ) R ( k ) である。L ( k ) L^{(k)} L ( k ) は下三角行列であるから、A A A の左上k × k k\times k k × k 部分はL ( k ) L^{(k)} L ( k ) とR ( k ) R^{(k)} R ( k ) の左上k × k k\times k k × k 部分の積である。前者は対角成分が1 1 1 の下三角行列であり、後者は対角成分がd 1 , … , d k − 1 , w k k ( k ) d_1,\dots,d_{k-1},w^{(k)}_{kk} d 1 , … , d k − 1 , w k k ( k ) の上三角行列であるから、
Δ k = d 1 ⋯ d k − 1 w k k ( k ) = Δ k − 1 w k k ( k ) \Delta_k=d_1\cdots d_{k-1}w^{(k)}_{kk}=\Delta_{k-1}w^{(k)}_{kk} Δ k = d 1 ⋯ d k − 1 w k k ( k ) = Δ k − 1 w k k ( k ) である。したがって段k k k のピボットはw k k ( k ) = Δ k / Δ k − 1 > 0 w^{(k)}_{kk}=\Delta_k/\Delta_{k-1}>0 w k k ( k ) = Δ k / Δ k − 1 > 0 であり、k k k に関する帰納法により主張が成り立つ。
(2) を示す。
主張 5.2.1. L 1 , L 2 L_1,L_2 L 1 , L 2 を対角成分が1 1 1 の下三角行列、U 1 , U 2 U_1,U_2 U 1 , U 2 を対角成分が1 1 1 の上三角行列、D 1 , D 2 D_1,D_2 D 1 , D 2 を正則な対角行列とする。L 1 D 1 U 1 = L 2 D 2 U 2 L_1D_1U_1=L_2D_2U_2 L 1 D 1 U 1 = L 2 D 2 U 2 ならばL 1 = L 2 L_1=L_2 L 1 = L 2 、D 1 = D 2 D_1=D_2 D 1 = D 2 、U 1 = U 2 U_1=U_2 U 1 = U 2 である。
証明. L 1 D 1 U 1 = L 2 D 2 U 2 L_1D_1U_1=L_2D_2U_2 L 1 D 1 U 1 = L 2 D 2 U 2 の両辺に左からL 2 − 1 L_2^{-1} L 2 − 1 、右からU 1 − 1 U_1^{-1} U 1 − 1 を掛けるとL 2 − 1 L 1 D 1 = D 2 U 2 U 1 − 1 L_2^{-1}L_1D_1=D_2U_2U_1^{-1} L 2 − 1 L 1 D 1 = D 2 U 2 U 1 − 1 であり、左辺は下三角行列、右辺は上三角行列であるから、両辺は対角行列である。L 2 − 1 L 1 L_2^{-1}L_1 L 2 − 1 L 1 は対角成分が1 1 1 の下三角行列であるから、左辺の対角成分はD 1 D_1 D 1 の対角成分であり、左辺はD 1 D_1 D 1 に等しい。D 1 D_1 D 1 は正則であるからL 2 − 1 L 1 = I L_2^{-1}L_1=I L 2 − 1 L 1 = I である。同様に右辺の対角成分はD 2 D_2 D 2 の対角成分であり、D 2 U 2 U 1 − 1 = D 1 D_2U_2U_1^{-1}=D_1 D 2 U 2 U 1 − 1 = D 1 からD 2 = D 1 D_2=D_1 D 2 = D 1 、U 2 U 1 − 1 = I U_2U_1^{-1}=I U 2 U 1 − 1 = I である。▨
(1) と補題 2.3 によりA = L U A=LU A = LU であり、U U U の対角成分はd 1 , … , d n d_1,\dots,d_n d 1 , … , d n である。U 1 : = D − 1 U U_1:=D^{-1}U U 1 := D − 1 U は対角成分が1 1 1 の上三角行列であり、A = L D U 1 A=LDU_1 A = L D U 1 である。A T = A A^{\mathsf T}=A A T = A からU 1 T D L T = L D U 1 U_1^{\mathsf T}DL^{\mathsf T}=LDU_1 U 1 T D L T = L D U 1 であり、主張 5.2.1 によりU 1 = L T U_1=L^{\mathsf T} U 1 = L T である。したがってU = D L T U=DL^{\mathsf T} U = D L T 、A = L D L T A=LDL^{\mathsf T} A = L D L T である。
(3) を示す。D 1 / 2 : = diag ( d 1 , … , d n ) D^{1/2}:=\operatorname{diag}(\sqrt{d_1},\dots,\sqrt{d_n}) D 1/2 := diag ( d 1 , … , d n ) と置くと、C = L D 1 / 2 C=LD^{1/2} C = L D 1/2 は対角成分d k > 0 \sqrt{d_k}>0 d k > 0 の下三角行列であり、C C T = L D 1 / 2 D 1 / 2 L T = A CC^{\mathsf T}=LD^{1/2}D^{1/2}L^{\mathsf T}=A C C T = L D 1/2 D 1/2 L T = A である。C ′ C' C ′ をA A A の Cholesky 因子とし、Γ : = diag ( c 11 ′ , … , c n n ′ ) \Gamma:=\operatorname{diag}(c'_{11},\dots,c'_{nn}) Γ := diag ( c 11 ′ , … , c nn ′ ) 、L ′ : = C ′ Γ − 1 L':=C'\Gamma^{-1} L ′ := C ′ Γ − 1 と置くと、L ′ L' L ′ は対角成分が1 1 1 の下三角行列であり、A = L ′ Γ 2 L ′ T A=L'\Gamma^2L'^{\mathsf T} A = L ′ Γ 2 L ′ T である。主張 5.2.1 をA = L D L T A=LDL^{\mathsf T} A = L D L T と比べて適用するとL ′ = L L'=L L ′ = L 、Γ 2 = D \Gamma^2=D Γ 2 = D であり、c k k ′ > 0 c'_{kk}>0 c k k ′ > 0 からΓ = D 1 / 2 \Gamma=D^{1/2} Γ = D 1/2 、C ′ = C C'=C C ′ = C である。
(4) を示す。C C C をA A A の Cholesky 因子とする。C T C^{\mathsf T} C T は対角成分が正の上三角行列であるから正則であり、x ∈ R n ∖ { 0 } x\in\R^n\setminus\{0\} x ∈ R n ∖ { 0 } に対してx T A x = ∥ C T x ∥ 2 2 > 0 x^{\mathsf T}Ax=\lVert C^{\mathsf T}x\rVert_2^2>0 x T A x = ∥ C T x ∥ 2 2 > 0 である。
(5) を示す。A = C C T A=CC^{\mathsf T} A = C C T の( i , j ) (i,j) ( i , j ) 成分(i ≥ j i\ge j i ≥ j )を比べると、C C C が下三角行列であるからa i j = ∑ m = 1 j c i m c j m a_{ij}=\sum_{m=1}^{j}c_{im}c_{jm} a ij = ∑ m = 1 j c im c j m である。i = j i=j i = j としてc j j 2 = a j j − ∑ m < j c j m 2 c_{jj}^2=a_{jj}-\sum_{m<j}c_{jm}^2 c j j 2 = a j j − ∑ m < j c j m 2 であり、c j j > 0 c_{jj}>0 c j j > 0 から式の第一式と根号の中が正であることを得る。i > j i>j i > j として第二式を得る。右辺はj j j 列より左のC C C の成分だけを含むので、j = 1 , … , n j=1,\dots,n j = 1 , … , n の順に計算することができる。演算回数の証明は演習とする(問題 8.2 )。▨
6 三重対角行列
定理 6.1. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) を、( i , i ) (i,i) ( i , i ) 成分がb i b_i b i 、( i , i − 1 ) (i,i-1) ( i , i − 1 ) 成分がa i a_i a i (2 ≤ i ≤ n 2\le i\le n 2 ≤ i ≤ n )、( i , i + 1 ) (i,i+1) ( i , i + 1 ) 成分がc i c_i c i (1 ≤ i ≤ n − 1 1\le i\le n-1 1 ≤ i ≤ n − 1 )、その他の成分が0 0 0 の三重対角行列とし、a 1 : = 0 a_1:=0 a 1 := 0 、c n : = 0 c_n:=0 c n := 0 と置く。d 1 : = b 1 d_1:=b_1 d 1 := b 1 とし、d i − 1 ≠ 0 d_{i-1}\ne0 d i − 1 = 0 である限りd i : = b i − a i c i − 1 / d i − 1 d_i:=b_i-a_ic_{i-1}/d_{i-1} d i := b i − a i c i − 1 / d i − 1 (2 ≤ i ≤ n 2\le i\le n 2 ≤ i ≤ n )と置く。
A A A のピボット選択なしの消去を厳密算術で実行して段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗しないならば、段k k k のピボットはd k d_k d k である。d 1 , … , d n d_1,\dots,d_n d 1 , … , d n がすべて0 0 0 でないならば、消去は完了し、出力( L , U ) (L,U) ( L , U ) は、L L L の0 0 0 でない非対角成分が( i , i − 1 ) (i,i-1) ( i , i − 1 ) 成分l i : = a i / d i − 1 l_i:=a_i/d_{i-1} l i := a i / d i − 1 (2 ≤ i ≤ n 2\le i\le n 2 ≤ i ≤ n )だけであり、U U U の0 0 0 でない成分が( i , i ) (i,i) ( i , i ) 成分d i d_i d i と( i , i + 1 ) (i,i+1) ( i , i + 1 ) 成分c i c_i c i だけである。このときA A A は正則であり、任意のf ∈ R n f\in\R^n f ∈ R n に対して
y 1 : = f 1 , y i : = f i − l i y i − 1 ( 2 ≤ i ≤ n ) , x n : = y n d n , x i : = y i − c i x i + 1 d i ( 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) y 1 := f 1 , y i := f i − l i y i − 1 ( 2 ≤ i ≤ n ) , x n := d n y n , x i := d i y i − c i x i + 1 ( i = n − 1 , … , 1 )
で定まるx x x はA x = f Ax=f A x = f のただ一つの解である。l i l_i l i 、d i d_i d i とx x x の計算は合計8 n − 7 8n-7 8 n − 7 回の四則演算で行われる。
任意のi i i について∣ b i ∣ > ∣ a i ∣ + ∣ c i ∣ \lvert b_i\rvert>\lvert a_i\rvert+\lvert c_i\rvert ∣ b i ∣ > ∣ a i ∣ + ∣ c i ∣ ならば、d 1 , … , d n d_1,\dots,d_n d 1 , … , d n は定まり、任意のi i i について∣ d i ∣ > ∣ c i ∣ \lvert d_i\rvert>\lvert c_i\rvert ∣ d i ∣ > ∣ c i ∣ である。特にd i ≠ 0 d_i\ne0 d i = 0 であり、(1) の結論が成り立つ。
A A A が実対称かつ正定値ならば、d 1 , … , d n d_1,\dots,d_n d 1 , … , d n は定まり、定理 5.2 (1) のΔ k \Delta_k Δ k についてd k = Δ k / Δ k − 1 > 0 d_k=\Delta_k/\Delta_{k-1}>0 d k = Δ k / Δ k − 1 > 0 である。特に(1) の結論が成り立つ。
証明. (1) を示す。1 ≤ k < n 1\le k<n 1 ≤ k < n とし、段k k k の作業行列のi , j ≥ k i,j\ge k i , j ≥ k の成分が、( k , k ) (k,k) ( k , k ) 成分がd k d_k d k であることを除いてA A A の成分に等しく、段k k k で失敗しないとする。作業行列の第k k k 列のi > k i>k i > k の成分は、i = k + 1 i=k+1 i = k + 1 でa k + 1 a_{k+1} a k + 1 、i ≥ k + 2 i\ge k+2 i ≥ k + 2 で0 0 0 であるから、段k k k の乗数は第k + 1 k+1 k + 1 行でa k + 1 / d k a_{k+1}/d_k a k + 1 / d k 、その他の行で0 0 0 である。第k k k 行のj > k j>k j > k の成分は、j = k + 1 j=k+1 j = k + 1 でc k c_k c k 、j ≥ k + 2 j\ge k+2 j ≥ k + 2 で0 0 0 である。したがってi , j > k i,j>k i , j > k の成分のうち段k k k で変わるものは( k + 1 , k + 1 ) (k+1,k+1) ( k + 1 , k + 1 ) 成分だけであり、その値はb k + 1 − a k + 1 c k / d k = d k + 1 b_{k+1}-a_{k+1}c_k/d_k=d_{k+1} b k + 1 − a k + 1 c k / d k = d k + 1 であって、段k + 1 k+1 k + 1 の作業行列も同じ性質をもつ。W ( 1 ) = A W^{(1)}=A W ( 1 ) = A 、d 1 = b 1 d_1=b_1 d 1 = b 1 であるから、k k k に関する帰納法により、段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 で失敗しないとき段k k k のピボットはd k d_k d k であり、段m < k m<k m < k の乗数は第m + 1 m+1 m + 1 行でa m + 1 / d m a_{m+1}/d_m a m + 1 / d m 、その他の行で0 0 0 である。d 1 , … , d n d_1,\dots,d_n d 1 , … , d n がすべて0 0 0 でないならば、消去は完了する。第k k k 行は段k k k の後は変わらないので、U U U の第k k k 行の0 0 0 でない成分はd k d_k d k とc k c_k c k であり、L L L の成分は上の乗数である。補題 2.3 によりA = L U A=LU A = LU であり、det A = d 1 ⋯ d n ≠ 0 \det A=d_1\cdots d_n\ne0 det A = d 1 ⋯ d n = 0 である。主張のy y y はL y = f Ly=f L y = f を、x x x はU x = y Ux=y U x = y を満たすから、A x = L U x = f Ax=LUx=f A x = LU x = f であり、A A A は正則であるから解はただ一つである。l i l_i l i とd i d_i d i (2 ≤ i ≤ n 2\le i\le n 2 ≤ i ≤ n )の計算は3 ( n − 1 ) 3(n-1) 3 ( n − 1 ) 回、y y y の計算は2 ( n − 1 ) 2(n-1) 2 ( n − 1 ) 回、x x x の計算は3 ( n − 1 ) + 1 3(n-1)+1 3 ( n − 1 ) + 1 回の四則演算を行い、合計は8 n − 7 8n-7 8 n − 7 回である。
(2) を示す。∣ d 1 ∣ = ∣ b 1 ∣ > ∣ c 1 ∣ \lvert d_1\rvert=\lvert b_1\rvert>\lvert c_1\rvert ∣ d 1 ∣ = ∣ b 1 ∣ > ∣ c 1 ∣ である。2 ≤ i ≤ n 2\le i\le n 2 ≤ i ≤ n とし、∣ d i − 1 ∣ > ∣ c i − 1 ∣ \lvert d_{i-1}\rvert>\lvert c_{i-1}\rvert ∣ d i − 1 ∣ > ∣ c i − 1 ∣ と仮定すると、d i − 1 ≠ 0 d_{i-1}\ne0 d i − 1 = 0 であるからd i d_i d i が定まり、∣ c i − 1 ∣ / ∣ d i − 1 ∣ < 1 \lvert c_{i-1}\rvert/\lvert d_{i-1}\rvert<1 ∣ c i − 1 ∣ / ∣ d i − 1 ∣ < 1 から
∣ d i ∣ ≥ ∣ b i ∣ − ∣ a i ∣ ∣ c i − 1 ∣ ∣ d i − 1 ∣ ≥ ∣ b i ∣ − ∣ a i ∣ > ∣ c i ∣ \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 ∣ d i ∣ ≥ ∣ b i ∣ − ∣ a i ∣ ∣ d i − 1 ∣ ∣ c i − 1 ∣ ≥ ∣ b i ∣ − ∣ a i ∣ > ∣ c i ∣ である。i i i に関する帰納法により主張が成り立つ。
(3) を示す。定理 5.2 (1) により、A A A のピボット選択なしの消去はどの段でも失敗せず、段k k k のピボットはΔ k / Δ k − 1 > 0 \Delta_k/\Delta_{k-1}>0 Δ k / Δ k − 1 > 0 である。(1) により、k k k に関する帰納法でd k d_k d k が定まり、段k k k のピボットに等しい。▨
命題 6.2. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、A = ( a i j ) ∈ M n ( R ) A=(a_{ij})\in M_n(\R) A = ( a ij ) ∈ M n ( R ) が
δ : = min 1 ≤ i ≤ n ( ∣ a i i ∣ − ∑ j ≠ i ∣ a i j ∣ ) > 0 \delta:=\min_{1\le i\le n}\Bigl(\lvert a_{ii}\rvert-\sum_{j\ne i}\lvert a_{ij}\rvert\Bigr)>0 δ := 1 ≤ i ≤ n min ( ∣ a ii ∣ − j = i ∑ ∣ a ij ∣ ) > 0 を満たすとする。このときA A A は正則であり、∥ A − 1 ∥ ∞ ≤ 1 / δ \lVert A^{-1}\rVert_\infty\le1/\delta ∥ A − 1 ∥ ∞ ≤ 1/ δ が成り立つ。特に、b ∈ R n b\in\R^n b ∈ R n 、x : = A − 1 b x:=A^{-1}b x := A − 1 b 、x ^ ∈ R n \widehat x\in\R^n x ∈ R n に対して∥ x − x ^ ∥ ∞ ≤ ∥ b − A x ^ ∥ ∞ / δ \lVert x-\widehat x\rVert_\infty\le\lVert b-A\widehat x\rVert_\infty/\delta ∥ x − x ∥ ∞ ≤ ∥ b − A x ∥ ∞ / δ である。
証明. h ∈ R n h\in\R^n h ∈ R n とし、∣ h i ∣ = ∥ h ∥ ∞ \lvert h_i\rvert=\lVert h\rVert_\infty ∣ h i ∣ = ∥ h ∥ ∞ を満たすi i i をとる。
∣ ( A h ) i ∣ ≥ ∣ a i i ∣ ∣ h i ∣ − ∑ j ≠ i ∣ a i j ∣ ∣ h j ∣ ≥ ( ∣ a i i ∣ − ∑ j ≠ i ∣ a i j ∣ ) ∥ 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 ∣( A h ) i ∣ ≥ ∣ a ii ∣ ∣ h i ∣ − j = i ∑ ∣ a ij ∣ ∣ h j ∣ ≥ ( ∣ a ii ∣ − j = i ∑ ∣ a ij ∣ ) ∥ h ∥ ∞ ≥ δ ∥ h ∥ ∞ であるから、∥ A h ∥ ∞ ≥ δ ∥ h ∥ ∞ \lVert Ah\rVert_\infty\ge\delta\lVert h\rVert_\infty ∥ A h ∥ ∞ ≥ δ ∥ h ∥ ∞ である。δ > 0 \delta>0 δ > 0 であるからA A A は単射であり、正則である。v ∈ R n v\in\R^n v ∈ R n にh : = A − 1 v h:=A^{-1}v h := A − 1 v を適用して∥ A − 1 v ∥ ∞ ≤ ∥ v ∥ ∞ / δ \lVert A^{-1}v\rVert_\infty\le\lVert v\rVert_\infty/\delta ∥ A − 1 v ∥ ∞ ≤ ∥ v ∥ ∞ / δ を得る。x − x ^ = A − 1 ( b − A x ^ ) x-\widehat x=A^{-1}(b-A\widehat x) x − x = A − 1 ( b − A x ) に適用して最後の不等式を得る。▨
例 6.3. n ≥ 3 n\ge3 n ≥ 3 とし、定理 6.1 でb i = 4 b_i=4 b i = 4 (1 ≤ i ≤ n 1\le i\le n 1 ≤ i ≤ n )、a i = 1 a_i=1 a i = 1 (2 ≤ i ≤ n 2\le i\le n 2 ≤ i ≤ n )、c i = 1 c_i=1 c i = 1 (1 ≤ i ≤ n − 1 1\le i\le n-1 1 ≤ i ≤ n − 1 )とする。各行で∣ b i ∣ = 4 > 2 ≥ ∣ a i ∣ + ∣ c i ∣ \lvert b_i\rvert=4>2\ge\lvert a_i\rvert+\lvert c_i\rvert ∣ b i ∣ = 4 > 2 ≥ ∣ a i ∣ + ∣ c i ∣ であるから定理 6.1 (2) が適用される。n = 5 n=5 n = 5 ではd 1 , … , d 5 d_1,\dots,d_5 d 1 , … , d 5 は4 , 15 / 4 , 56 / 15 , 209 / 56 , 780 / 209 4,\ 15/4,\ 56/15,\ 209/56,\ 780/209 4 , 15/4 , 56/15 , 209/56 , 780/209 であり、いずれも絶対値が1 1 1 より大きい。命題 6.2 のδ \delta δ はmin { 4 − 1 , 4 − 2 } = 2 \min\{4-1,\ 4-2\}=2 min { 4 − 1 , 4 − 2 } = 2 であるから、∥ A − 1 ∥ ∞ ≤ 1 / 2 \lVert A^{-1}\rVert_\infty\le1/2 ∥ A − 1 ∥ ∞ ≤ 1/2 であり、任意のf , x ^ ∈ R n f,\widehat x\in\R^n f , x ∈ R n とx : = A − 1 f x:=A^{-1}f x := A − 1 f について∥ x − x ^ ∥ ∞ ≤ ∥ f − A x ^ ∥ ∞ / 2 \lVert x-\widehat x\rVert_\infty\le\lVert f-A\widehat x\rVert_\infty/2 ∥ x − x ∥ ∞ ≤ ∥ f − A x ∥ ∞ /2 である。補題 3.5 (1) により∥ A ∥ ∞ = 6 \lVert A\rVert_\infty=6 ∥ A ∥ ∞ = 6 であるからκ ∞ ( A ) ≤ 3 \kappa_\infty(A)\le3 κ ∞ ( A ) ≤ 3 である。n = 1000 n=1000 n = 1000 では、定理 6.1 (1) の計算は8 n − 7 = 7993 8n-7=7993 8 n − 7 = 7993 回の四則演算で解を与える。同じA A A をM n ( R ) M_n(\R) M n ( R ) の行列として定理 2.5 の消去と二つの代入で解くと、定理 2.5 (3) により2 n 3 / 3 − n 2 / 2 − n / 6 + 2 n 2 − n = 668165500 2n^3/3-n^2/2-n/6+2n^2-n=668165500 2 n 3 /3 − n 2 /2 − n /6 + 2 n 2 − n = 668165500 回の四則演算を行う。
7 残差による反復改良
命題 7.1. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、R n \R^n R n にノルム∥ ⋅ ∥ \lVert\cdot\rVert ∥ ⋅ ∥ を固定し、M n ( R ) M_n(\R) M n ( R ) の元にその作用素ノルムを入れる。A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) を正則行列、b ∈ R n b\in\R^n b ∈ R n 、x : = A − 1 b x:=A^{-1}b x := A − 1 b 、M ∈ M n ( R ) M\in M_n(\R) M ∈ M n ( R ) とし、q : = ∥ I − M A ∥ q:=\lVert I-MA\rVert q := ∥ I − M A ∥ と置く。
x 0 ∈ R n x_0\in\R^n x 0 ∈ R n とし、k ≥ 0 k\ge0 k ≥ 0 についてx k + 1 : = x k + M ( b − A x k ) x_{k+1}:=x_k+M(b-Ax_k) x k + 1 := x k + M ( b − A x k ) と置く。e k : = x − x k e_k:=x-x_k e k := x − x k とすると、e k + 1 = ( I − M A ) e k e_{k+1}=(I-MA)e_k e k + 1 = ( I − M A ) e k であり、∥ e k ∥ ≤ q k ∥ e 0 ∥ \lVert e_k\rVert\le q^k\lVert e_0\rVert ∥ e k ∥ ≤ q k ∥ e 0 ∥ が成り立つ。
( x k ) k ≥ 0 (x_k)_{k\ge0} ( x k ) k ≥ 0 と( r ^ k ) k ≥ 0 (\widehat r_k)_{k\ge0} ( r k ) k ≥ 0 をR n \R^n R n の任意の列とし、e k : = x − x k e_k:=x-x_k e k := x − x k 、η k : = r ^ k − ( b − A x k ) \eta_k:=\widehat r_k-(b-Ax_k) η k := r k − ( b − A x k ) 、ρ k : = x k + 1 − x k − M r ^ k \rho_k:=x_{k+1}-x_k-M\widehat r_k ρ k := x k + 1 − x k − M r k と置く。このときe k + 1 = ( I − M A ) e k − M η k − ρ k e_{k+1}=(I-MA)e_k-M\eta_k-\rho_k e k + 1 = ( I − M A ) e k − M η k − ρ k であり、
∥ e k + 1 ∥ ≤ q ∥ e k ∥ + ∥ 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 ∥ e k + 1 ∥ ≤ q ∥ e k ∥ + ∥ M ∥ ∥ η k ∥ + ∥ ρ k ∥
が成り立つ。
(2) の記号で、q < 1 q<1 q < 1 であり、実数τ ≥ 0 \tau\ge0 τ ≥ 0 が任意のk ≥ 0 k\ge0 k ≥ 0 について∥ M ∥ ∥ η k ∥ + ∥ ρ k ∥ ≤ τ \lVert M\rVert\lVert\eta_k\rVert+\lVert\rho_k\rVert\le\tau ∥ M ∥ ∥ η k ∥ + ∥ ρ k ∥ ≤ τ を満たすならば、任意のk ≥ 0 k\ge0 k ≥ 0 について∥ e k ∥ ≤ q k ∥ e 0 ∥ + τ / ( 1 − q ) \lVert e_k\rVert\le q^k\lVert e_0\rVert+\tau/(1-q) ∥ e k ∥ ≤ q k ∥ e 0 ∥ + τ / ( 1 − q ) が成り立つ。
証明. (2) を示す。x k + 1 = x k + M r ^ k + ρ k = x k + M ( b − A x k ) + M η k + ρ k x_{k+1}=x_k+M\widehat r_k+\rho_k=x_k+M(b-Ax_k)+M\eta_k+\rho_k x k + 1 = x k + M r k + ρ k = x k + M ( b − A x k ) + M η k + ρ k であり、b − A x k = A ( x − x k ) = A e k b-Ax_k=A(x-x_k)=Ae_k b − A x k = A ( x − x k ) = A e k であるから、e k + 1 = e k − M A e k − M η k − ρ k e_{k+1}=e_k-MAe_k-M\eta_k-\rho_k e k + 1 = e k − M A e k − M η k − ρ k である。§E20.2 補題 1.2 (1) と三角不等式により評価が成り立つ。
(1) を示す。(2) をr ^ k : = b − A x k \widehat r_k:=b-Ax_k r k := b − A x k に適用すると、η k = 0 \eta_k=0 η k = 0 、ρ k = 0 \rho_k=0 ρ k = 0 であるからe k + 1 = ( I − M A ) e k e_{k+1}=(I-MA)e_k e k + 1 = ( I − M A ) e k であり、∥ e k + 1 ∥ ≤ q ∥ e k ∥ \lVert e_{k+1}\rVert\le q\lVert e_k\rVert ∥ e k + 1 ∥ ≤ q ∥ e k ∥ である。k k k に関する帰納法により評価が成り立つ。
(3) を示す。(2) により∥ e k + 1 ∥ ≤ q ∥ e k ∥ + τ \lVert e_{k+1}\rVert\le q\lVert e_k\rVert+\tau ∥ e k + 1 ∥ ≤ q ∥ e k ∥ + τ であるから、k k k に関する帰納法により∥ e k ∥ ≤ q k ∥ e 0 ∥ + τ ∑ j = 0 k − 1 q j ≤ q k ∥ e 0 ∥ + τ / ( 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) ∥ e k ∥ ≤ q k ∥ e 0 ∥ + τ ∑ j = 0 k − 1 q j ≤ q k ∥ e 0 ∥ + τ / ( 1 − q ) である。▨
命題 7.2. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、R n \R^n R n にノルム∥ ⋅ ∥ \lVert\cdot\rVert ∥ ⋅ ∥ を固定し、M n ( R ) M_n(\R) M n ( R ) の元にその作用素ノルムを入れる。A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) を正則行列、P P P を置換行列、L ^ , U ^ ∈ M n ( R ) \widehat L,\widehat U\in M_n(\R) L , U ∈ M n ( R ) をL ^ U ^ \widehat L\widehat U L U が正則となる行列とし、E : = P − 1 L ^ U ^ − A E:=P^{-1}\widehat L\widehat U-A E := P − 1 L U − A 、M : = ( L ^ U ^ ) − 1 P M:=(\widehat L\widehat U)^{-1}P M := ( L U ) − 1 P と置く。
A + E A+E A + E は正則であり、I − M A = ( A + E ) − 1 E I-MA=(A+E)^{-1}E I − M A = ( A + E ) − 1 E が成り立つ。
c : = ∥ A − 1 ∥ ∥ E ∥ < 1 c:=\lVert A^{-1}\rVert\lVert E\rVert<1 c := ∥ A − 1 ∥ ∥ E ∥ < 1 ならば∥ I − M A ∥ ≤ c / ( 1 − c ) \lVert I-MA\rVert\le c/(1-c) ∥ I − M A ∥ ≤ c / ( 1 − c ) である。
R n \R^n R n のノルムを∥ ⋅ ∥ ∞ \lVert\cdot\rVert_\infty ∥ ⋅ ∥ ∞ とし、A ∈ M n ( F ) A\in M_n(F) A ∈ M n ( F ) と( P , L ^ , U ^ ) (P,\widehat L,\widehat U) ( P , L , 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 ε := γ n − 1 ∣ L ∣ ∣ U ∣ ∞ / ∥ A ∥ ∞ がκ ∞ ( A ) ε < 1 \kappa_\infty(A)\varepsilon<1 κ ∞ ( A ) ε < 1 を満たすならば、∥ I − M A ∥ ∞ ≤ κ ∞ ( A ) ε / ( 1 − κ ∞ ( A ) ε ) \lVert I-MA\rVert_\infty\le\kappa_\infty(A)\varepsilon/(1-\kappa_\infty(A)\varepsilon) ∥ I − M A ∥ ∞ ≤ κ ∞ ( A ) ε / ( 1 − κ ∞ ( A ) ε ) である。さらに任意のv ∈ R n v\in\R^n v ∈ R n に対して、L ^ y = P v \widehat Ly=Pv L y = P v の前進代入とU ^ z = y \widehat Uz=y U z = y の後退代入を厳密算術で実行して得るz z z はM v Mv M v に等しい。
証明. (1) を示す。A + E = P − 1 L ^ U ^ A+E=P^{-1}\widehat L\widehat U A + E = P − 1 L U は正則行列の積であるから正則である。I − M A = ( L ^ U ^ ) − 1 ( L ^ U ^ − P A ) = ( L ^ U ^ ) − 1 P E = ( P − 1 L ^ U ^ ) − 1 E = ( A + E ) − 1 E I-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 I − M A = ( L U ) − 1 ( L U − P A ) = ( L U ) − 1 P E = ( P − 1 L U ) − 1 E = ( A + E ) − 1 E である。
(2) を示す。v ∈ R n v\in\R^n v ∈ R n とし、y : = ( I − M A ) v = ( A + E ) − 1 E v y:=(I-MA)v=(A+E)^{-1}Ev y := ( I − M A ) v = ( A + E ) − 1 E v と置く。( A + E ) y = E v (A+E)y=Ev ( A + E ) y = E v からy = A − 1 E ( v − y ) y=A^{-1}E(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) ∥ y ∥ ≤ c (∥ v ∥ + ∥ y ∥) である。c < 1 c<1 c < 1 から∥ y ∥ ≤ c ∥ v ∥ / ( 1 − c ) \lVert y\rVert\le c\lVert v\rVert/(1-c) ∥ y ∥ ≤ c ∥ v ∥ / ( 1 − c ) である。
(3) を示す。L ^ \widehat L L は対角成分が1 1 1 の下三角行列、U ^ \widehat U U は対角成分が段ごとのピボットで0 0 0 でない上三角行列であるから、L ^ U ^ \widehat L\widehat U L U は正則である。E = P − 1 Δ A E=P^{-1}\Delta A E = P − 1 Δ A であり、∣ E ∣ = P − 1 ∣ Δ A ∣ ≤ γ n − 1 P − 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 ∣ E ∣ = P − 1 ∣ Δ A ∣ ≤ γ n − 1 P − 1 ∣ L ∣ ∣ U ∣ であるから、補題 3.5 (2) と補題 3.5 (3) により∥ E ∥ ∞ ≤ ε ∥ A ∥ ∞ \lVert E\rVert_\infty\le\varepsilon\lVert A\rVert_\infty ∥ E ∥ ∞ ≤ ε ∥ A ∥ ∞ である。したがってc ≤ κ ∞ ( A ) ε < 1 c\le\kappa_\infty(A)\varepsilon<1 c ≤ κ ∞ ( A ) ε < 1 であり、t ↦ t / ( 1 − t ) t\mapsto t/(1-t) t ↦ t / ( 1 − t ) は[ 0 , 1 ) [0,1) [ 0 , 1 ) で増加するから、(2) により評価が成り立つ。前進代入のy y y はL ^ y = P v \widehat Ly=Pv L y = P v を、後退代入のz z z はU ^ z = y \widehat Uz=y U z = y を満たすから、z = ( L ^ U ^ ) − 1 P v = M v z=(\widehat L\widehat U)^{-1}Pv=Mv z = ( L U ) − 1 P v = M v である。▨
系 7.3. F F F を浮動小数点数系、u u u をその単位丸め誤差、fl \operatorname{fl} fl をF F F の最近接丸めとし、n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 が( n + 1 ) u < 1 (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) γ n + 1 := ( n + 1 ) u / ( 1 − ( n + 1 ) u ) と置く。A ∈ M n ( F ) A\in M_n(F) A ∈ M n ( F ) 、b , x ∈ F n b,x\in F^n b , x ∈ F n とし、各i i i について、b i b_i b i を初項とし、積fl ( a i 1 ( − x 1 ) ) , … , fl ( a i n ( − x n ) ) \operatorname{fl}(a_{i1}(-x_1)),\dots,\operatorname{fl}(a_{in}(-x_n)) fl ( a i 1 ( − x 1 )) , … , fl ( a in ( − x n )) をこの順に加える逐次和として計算した値をr ~ i \widetilde r_i r i とする。各積の厳密な結果が0 0 0 であるか正規範囲にあり、各加算の厳密な結果の絶対値がN max N_{\max} N m a x 以下であるとする。r : = b − A x r:=b-Ax r := b − A x と置くと、任意のi i i に対して
∣ r ~ i − r i ∣ ≤ γ n + 1 ( ∣ b i ∣ + ∑ j = 1 n ∣ a i j ∣ ∣ x j ∣ ) \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 i − r i ∣ ≤ γ n + 1 ( ∣ b i ∣ + j = 1 ∑ n ∣ a ij ∣ ∣ x j ∣ ) が成り立ち、∥ 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) ∥ r − r ∥ ∞ ≤ γ n + 1 (∥ b ∥ ∞ + ∥ A ∥ ∞ ∥ x ∥ ∞ ) である。
証明. F = − F F=-F F = − F であるから− x j ∈ F -x_j\in F − x j ∈ F である。i i i を固定する。各j j j について、§E20.1 系 3.2 (1) または§E20.1 系 3.2 (2) により∣ ε j ∣ ≤ u \lvert\varepsilon_j\rvert\le u ∣ ε j ∣ ≤ u を満たすε j \varepsilon_j ε j が存在してfl ( a i j ( − x j ) ) = − a i j x j ( 1 + ε j ) \operatorname{fl}(a_{ij}(-x_j))=-a_{ij}x_j(1+\varepsilon_j) fl ( a ij ( − x j )) = − a ij x j ( 1 + ε j ) である。r ~ i \widetilde r_i r i は( b i , fl ( a i 1 ( − x 1 ) ) , … , fl ( a i n ( − x n ) ) ) ∈ F n + 1 (b_i,\operatorname{fl}(a_{i1}(-x_1)),\dots,\operatorname{fl}(a_{in}(-x_n)))\in F^{n+1} ( b i , fl ( a i 1 ( − x 1 )) , … , fl ( a in ( − x n ))) ∈ F n + 1 の逐次和であり、§E20.3 系 1.4 (1) によりR n + 1 R_{n+1} R n + 1 における第1 1 1 成分の深さはn n n 、第j + 1 j+1 j + 1 成分の深さはn − j + 1 n-j+1 n − j + 1 である。§E20.3 定理 1.3 (1) により、∣ δ j , l ∣ ≤ u \lvert\delta_{j,l}\rvert\le u ∣ δ j , l ∣ ≤ u を満たす実数δ j , l \delta_{j,l} δ j , l (0 ≤ j ≤ n 0\le j\le n 0 ≤ j ≤ n )が存在して
r ~ i = b i ∏ l = 1 n ( 1 + δ 0 , l ) − ∑ j = 1 n a i j x j ( 1 + ε j ) ∏ l = 1 n − 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}) r i = b i l = 1 ∏ n ( 1 + δ 0 , l ) − j = 1 ∑ n a ij x j ( 1 + ε j ) l = 1 ∏ n − j + 1 ( 1 + δ j , l ) である。b i b_i b i の項の因子の個数はn n n 、a i j x j a_{ij}x_j a ij x j の項の因子の個数はn − j + 2 ≤ n + 1 n-j+2\le n+1 n − j + 2 ≤ n + 1 であり、( n + 1 ) u < 1 (n+1)u<1 ( n + 1 ) u < 1 であるから、§E20.1 補題 4.1 とk ↦ k u / ( 1 − k u ) k\mapsto ku/(1-ku) k ↦ k u / ( 1 − k u ) の単調性により、∣ θ j ∣ ≤ γ n + 1 \lvert\theta_j\rvert\le\gamma_{n+1} ∣ θ j ∣ ≤ γ n + 1 (0 ≤ j ≤ n 0\le j\le n 0 ≤ j ≤ n )を満たす実数θ 0 , … , θ n \theta_0,\dots,\theta_n θ 0 , … , θ n が存在してr ~ i = b i ( 1 + θ 0 ) − ∑ j = 1 n a i j x j ( 1 + θ j ) \widetilde r_i=b_i(1+\theta_0)-\sum_{j=1}^na_{ij}x_j(1+\theta_j) r i = b i ( 1 + θ 0 ) − ∑ j = 1 n a ij x j ( 1 + θ j ) である。r i = b i − ∑ j a i j x j r_i=b_i-\sum_ja_{ij}x_j r i = b i − ∑ j a ij x j であるから∣ r ~ i − r i ∣ ≤ γ n + 1 ( ∣ b i ∣ + ∑ j ∣ a i j ∣ ∣ x j ∣ ) \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) ∣ r i − r i ∣ ≤ γ n + 1 (∣ b i ∣ + ∑ j ∣ a ij ∣ ∣ x j ∣) である。補題 3.5 (1) によりmax i ∑ j ∣ a i j ∣ ∣ x j ∣ ≤ ∥ A ∥ ∞ ∥ x ∥ ∞ \max_i\sum_j\lvert a_{ij}\rvert\lvert x_j\rvert\le\lVert A\rVert_\infty\lVert x\rVert_\infty max i ∑ j ∣ a ij ∣ ∣ x j ∣ ≤ ∥ A ∥ ∞ ∥ x ∥ ∞ である。▨
例 7.4. F ℓ : = F ( 2 , 24 , − 126 , 127 ) F_\ell:=F(2,24,-126,127) F ℓ := F ( 2 , 24 , − 126 , 127 ) 、F h : = F ( 2 , 53 , − 1022 , 1023 ) F_h:=F(2,53,-1022,1023) F h := F ( 2 , 53 , − 1022 , 1023 ) とし、それぞれの最近接偶数丸めをfl ℓ \operatorname{fl}_\ell fl ℓ 、fl h \operatorname{fl}_h fl h 、単位丸め誤差をu ℓ = 2 − 24 ≈ 5.96 × 10 − 8 u_\ell=2^{-24}\approx5.96\times10^{-8} u ℓ = 2 − 24 ≈ 5.96 × 1 0 − 8 、u h = 2 − 53 u_h=2^{-53} u h = 2 − 53 とする。F ℓ F_\ell F ℓ の0 0 0 でない元はm 2 e m2^{e} m 2 e (m , e ∈ Z m,e\in\Z m , e ∈ Z 、1 ≤ ∣ m ∣ < 2 24 1\le\lvert m\rvert<2^{24} 1 ≤ ∣ m ∣ < 2 24 、− 149 ≤ e ≤ 104 -149\le e\le104 − 149 ≤ e ≤ 104 )の形であり、F h F_h F h のs e + 52 = 2 e s_{e+52}=2^{e} s e + 52 = 2 e について§E20.1 補題 1.3 (1) を適用してF ℓ ⊂ F h F_\ell\subset F_h F ℓ ⊂ F h を得る。n ∈ { 4 , 6 , 8 } n\in\{4,6,8\} n ∈ { 4 , 6 , 8 } に対して、A : = ( fl ℓ ( 1 / ( i + j − 1 ) ) ) 1 ≤ i , j ≤ n ∈ M n ( F ℓ ) A:=\bigl(\operatorname{fl}_\ell(1/(i+j-1))\bigr)_{1\le i,j\le n}\in M_n(F_\ell) A := ( fl ℓ ( 1/ ( i + j − 1 )) ) 1 ≤ i , j ≤ n ∈ M n ( F ℓ ) 、b : = ( 1 , … , 1 ) ∈ F ℓ n b:=(1,\dots,1)\in F_\ell^n b := ( 1 , … , 1 ) ∈ F ℓ n 、x : = A − 1 b x:=A^{-1}b x := A − 1 b とする。A A A の部分ピボット付き消去をF ℓ F_\ell F ℓ とfl ℓ \operatorname{fl}_\ell fl ℓ の浮動小数点算術で実行して出力( P , L ^ , U ^ ) (P,\widehat L,\widehat U) ( P , L , U ) を得て、M : = ( L ^ U ^ ) − 1 P M:=(\widehat L\widehat U)^{-1}P M := ( L U ) − 1 P 、q : = ∥ I − M A ∥ ∞ q:=\lVert I-MA\rVert_\infty q := ∥ I − M A ∥ ∞ と置く。x 0 : = 0 x_0:=0 x 0 := 0 とし、k ≥ 0 k\ge0 k ≥ 0 について次を順に行う。
b b b 、A A A 、x k x_k x k から系 7.3 のr ~ \widetilde r r を計算し、その各成分をfl ℓ \operatorname{fl}_\ell fl ℓ で丸めてr ^ k ∈ F ℓ n \widehat r_k\in F_\ell^n r k ∈ F ℓ n とする。r ~ \widetilde r r の計算は、F h F_h F h とfl h \operatorname{fl}_h fl h の浮動小数点算術で実行する場合と、F ℓ F_\ell F ℓ とfl ℓ \operatorname{fl}_\ell fl ℓ の浮動小数点算術で実行する場合の二通りとする。
L ^ y = P r ^ k \widehat Ly=P\widehat r_k L y = P r k の前進代入とU ^ z = y \widehat Uz=y U z = y の後退代入をF ℓ F_\ell F ℓ とfl ℓ \operatorname{fl}_\ell fl ℓ の浮動小数点算術で実行し、計算値d ^ k \widehat d_k d k を得る。
x k + 1 : = ( fl ℓ ( x k , i + d ^ k , i ) ) 1 ≤ i ≤ n x_{k+1}:=\bigl(\operatorname{fl}_\ell(x_{k,i}+\widehat d_{k,i})\bigr)_{1\le i\le n} x k + 1 := ( fl ℓ ( x k , i + d k , i ) ) 1 ≤ i ≤ n と置く。
二通りの計算は残差の算法を実行する数系だけが異なり、P P P 、L ^ \widehat L L 、U ^ \widehat U U 、M M M 、q q q とx 1 x_1 x 1 は共通である。命題 7.2 (3) によりM r ^ k M\widehat r_k M r k は(2) の代入を厳密算術で実行した値に等しい。命題 7.1 (2) をこのM M M と列( x k ) (x_k) ( x k ) 、( r ^ k ) (\widehat r_k) ( r k ) に適用すると、η k = r ^ k − ( b − A x k ) \eta_k=\widehat r_k-(b-Ax_k) η k = r k − ( b − A x k ) は残差の計算と丸めによる差であり、ρ k = x k + 1 − x k − M r ^ k \rho_k=x_{k+1}-x_k-M\widehat r_k ρ k = x k + 1 − x k − M r k は(2) と(3) の丸めによる差である。
有理数による厳密な模擬計算で、すべての浮動小数点算術の実行が範囲条件を満たすことを確かめ、次の値を得た。κ ∞ ( A ) \kappa_\infty(A) κ ∞ ( A ) とq q q は、n = 4 n=4 n = 4 で2.84 × 10 4 2.84\times10^4 2.84 × 1 0 4 と1.96 × 10 − 5 1.96\times10^{-5} 1.96 × 1 0 − 5 、n = 6 n=6 n = 6 で2.81 × 10 7 2.81\times10^7 2.81 × 1 0 7 と7.72 × 10 − 2 7.72\times10^{-2} 7.72 × 1 0 − 2 、n = 8 n=8 n = 8 で3.30 × 10 9 3.30\times10^9 3.30 × 1 0 9 と1.69 1.69 1.69 である。相対誤差∥ x − x k ∥ ∞ / ∥ x ∥ ∞ \lVert x-x_k\rVert_\infty/\lVert x\rVert_\infty ∥ x − x k ∥ ∞ / ∥ x ∥ ∞ は次のとおりである。
n n n
r ~ \widetilde r r の数系
k = 1 k=1 k = 1
k = 2 k=2 k = 2
k = 3 k=3 k = 3
k = 4 k=4 k = 4
k = 8 k=8 k = 8
4 4 4
F h F_h F h
1.7 × 10 − 5 1.7\times10^{-5} 1.7 × 1 0 − 5
7.8 × 10 − 9 7.8\times10^{-9} 7.8 × 1 0 − 9
7.8 × 10 − 9 7.8\times10^{-9} 7.8 × 1 0 − 9
7.8 × 10 − 9 7.8\times10^{-9} 7.8 × 1 0 − 9
7.8 × 10 − 9 7.8\times10^{-9} 7.8 × 1 0 − 9
4 4 4
F ℓ F_\ell F ℓ
1.7 × 10 − 5 1.7\times10^{-5} 1.7 × 1 0 − 5
4.6 × 10 − 5 4.6\times10^{-5} 4.6 × 1 0 − 5
2.2 × 10 − 5 2.2\times10^{-5} 2.2 × 1 0 − 5
4.6 × 10 − 5 4.6\times10^{-5} 4.6 × 1 0 − 5
4.6 × 10 − 5 4.6\times10^{-5} 4.6 × 1 0 − 5
6 6 6
F h F_h F h
1.4 × 10 − 2 1.4\times10^{-2} 1.4 × 1 0 − 2
1.7 × 10 − 4 1.7\times10^{-4} 1.7 × 1 0 − 4
2.1 × 10 − 6 2.1\times10^{-6} 2.1 × 1 0 − 6
3.0 × 10 − 8 3.0\times10^{-8} 3.0 × 1 0 − 8
3.0 × 10 − 8 3.0\times10^{-8} 3.0 × 1 0 − 8
6 6 6
F ℓ F_\ell F ℓ
1.4 × 10 − 2 1.4\times10^{-2} 1.4 × 1 0 − 2
5.4 × 10 − 2 5.4\times10^{-2} 5.4 × 1 0 − 2
1.6 × 10 − 2 1.6\times10^{-2} 1.6 × 1 0 − 2
8.6 × 10 − 3 8.6\times10^{-3} 8.6 × 1 0 − 3
3.6 × 10 − 2 3.6\times10^{-2} 3.6 × 1 0 − 2
8 8 8
F h F_h F h
5.5 × 10 − 1 5.5\times10^{-1} 5.5 × 1 0 − 1
5.9 × 10 − 1 5.9\times10^{-1} 5.9 × 1 0 − 1
4.6 × 10 − 1 4.6\times10^{-1} 4.6 × 1 0 − 1
4.3 × 10 − 1 4.3\times10^{-1} 4.3 × 1 0 − 1
2.4 × 10 − 1 2.4\times10^{-1} 2.4 × 1 0 − 1
8 8 8
F ℓ F_\ell F ℓ
5.5 × 10 − 1 5.5\times10^{-1} 5.5 × 1 0 − 1
8.3 × 10 − 1 8.3\times10^{-1} 8.3 × 1 0 − 1
5.6 × 10 − 1 5.6\times10^{-1} 5.6 × 1 0 − 1
3.2 × 10 − 1 3.2\times10^{-1} 3.2 × 1 0 − 1
5.6 × 10 − 1 5.6\times10^{-1} 5.6 × 1 0 − 1
n = 4 , 6 n=4,6 n = 4 , 6 ではq < 1 q<1 q < 1 であり、1 ≤ k ≤ 7 1\le k\le7 1 ≤ k ≤ 7 について次が観察された。r ~ \widetilde r r をF h F_h F 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} ∥ M ∥ ∞ ∥ η k ∥ ∞ / ∥ x ∥ ∞ ≤ 9.0 × 1 0 − 10 、∥ ρ k ∥ ∞ / ∥ x ∥ ∞ ≤ 3.2 × 10 − 8 \lVert\rho_k\rVert_\infty/\lVert x\rVert_\infty\le3.2\times10^{-8} ∥ ρ k ∥ ∞ / ∥ x ∥ ∞ ≤ 3.2 × 1 0 − 8 であり、相対誤差はn = 4 n=4 n = 4 で7.8 × 10 − 9 ≈ 0.13 u ℓ 7.8\times10^{-9}\approx0.13u_\ell 7.8 × 1 0 − 9 ≈ 0.13 u ℓ 、n = 6 n=6 n = 6 で3.0 × 10 − 8 ≈ 0.50 u ℓ 3.0\times10^{-8}\approx0.50u_\ell 3.0 × 1 0 − 8 ≈ 0.50 u ℓ まで下がって止まる。r ~ \widetilde r r をF ℓ F_\ell F ℓ で計算した場合、∥ M ∥ ∞ ∥ η k ∥ ∞ / ∥ x ∥ ∞ \lVert M\rVert_\infty\lVert\eta_k\rVert_\infty/\lVert x\rVert_\infty ∥ M ∥ ∞ ∥ η k ∥ ∞ / ∥ x ∥ ∞ はn = 4 n=4 n = 4 で1.3 × 10 − 4 1.3\times10^{-4} 1.3 × 1 0 − 4 、n = 6 n=6 n = 6 で7.8 × 10 − 2 7.8\times10^{-2} 7.8 × 1 0 − 2 から1.8 × 10 − 1 1.8\times10^{-1} 1.8 × 1 0 − 1 の範囲にあり、k ≥ 2 k\ge2 k ≥ 2 の相対誤差はn = 4 n=4 n = 4 で2.2 × 10 − 5 2.2\times10^{-5} 2.2 × 1 0 − 5 以上、n = 6 n=6 n = 6 で2.3 × 10 − 3 2.3\times10^{-3} 2.3 × 1 0 − 3 以上である。n = 8 n=8 n = 8 ではq > 1 q>1 q > 1 であり、命題 7.1 (3) は適用されない。r ~ \widetilde r r をF h F_h F h で計算した場合も、x 8 x_8 x 8 の相対誤差は0.24 0.24 0.24 である。
8 演習
解答. 段k k k (1 ≤ k ≤ n − 1 1\le k\le n-1 1 ≤ k ≤ n − 1 )では、i > k i>k i > k の各行で除算を1 1 1 回行い、i , j > k i,j>k i , j > k の各成分で乗算と減算を1 1 1 回ずつ行う。段n n n では四則演算を行わない。除算の回数は∑ k = 1 n − 1 ( n − k ) = n ( n − 1 ) / 2 \sum_{k=1}^{n-1}(n-k)=n(n-1)/2 ∑ k = 1 n − 1 ( n − k ) = n ( n − 1 ) /2 、乗算と減算の回数はそれぞれ∑ k = 1 n − 1 ( n − k ) 2 = ∑ m = 1 n − 1 m 2 = ( n − 1 ) n ( 2 n − 1 ) / 6 \sum_{k=1}^{n-1}(n-k)^2=\sum_{m=1}^{n-1}m^2=(n-1)n(2n-1)/6 ∑ k = 1 n − 1 ( n − k ) 2 = ∑ m = 1 n − 1 m 2 = ( n − 1 ) n ( 2 n − 1 ) /6 である。合計は
n ( n − 1 ) 2 + ( n − 1 ) n ( 2 n − 1 ) 3 = 2 n 3 3 − n 2 2 − n 6 \frac{n(n-1)}{2}+\frac{(n-1)n(2n-1)}{3}=\frac{2n^3}{3}-\frac{n^2}{2}-\frac n6 2 n ( n − 1 ) + 3 ( n − 1 ) n ( 2 n − 1 ) = 3 2 n 3 − 2 n 2 − 6 n である。L L L の対角成分は1 1 1 であるから、L y = P b Ly=Pb L y = P b の前進代入の第i i i 段は乗算と減算をi − 1 i-1 i − 1 回ずつ行い、合計∑ i = 1 n 2 ( i − 1 ) = n ( n − 1 ) \sum_{i=1}^n2(i-1)=n(n-1) ∑ i = 1 n 2 ( i − 1 ) = n ( n − 1 ) 回である。P b Pb P b の計算は成分の並べ替えであり、四則演算を行わない。U x = y Ux=y U x = y の後退代入の第i i i 段は乗算と減算をn − i n-i n − i 回ずつと除算を1 1 1 回行い、合計∑ i = 1 n ( 2 ( n − i ) + 1 ) = n 2 \sum_{i=1}^n(2(n-i)+1)=n^2 ∑ i = 1 n ( 2 ( n − i ) + 1 ) = n 2 回である。二つの代入の合計は2 n 2 − n 2n^2-n 2 n 2 − n 回である。▨
問題 8.2. 定理 5.2 (5) の式による計算がn 3 / 3 + n 2 / 2 − 5 n / 6 n^3/3+n^2/2-5n/6 n 3 /3 + n 2 /2 − 5 n /6 回の四則演算とn n n 回の平方根で行われることを示せ。
解答. 第j j j 列の計算では、c j j c_{jj} c j j に乗算と減算をj − 1 j-1 j − 1 回ずつと平方根を1 1 1 回用い、i > j i>j i > j の各c i j c_{ij} c ij に乗算と減算をj − 1 j-1 j − 1 回ずつと除算を1 1 1 回用いる。四則演算の回数は
∑ j = 1 n ( 2 ( j − 1 ) + ( n − j ) ( 2 j − 1 ) ) = n ( n − 1 ) + ( n 3 3 − n 2 2 + n 6 ) = n 3 3 + n 2 2 − 5 n 6 \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 = 1 ∑ n ( 2 ( j − 1 ) + ( n − j ) ( 2 j − 1 ) ) = n ( n − 1 ) + ( 3 n 3 − 2 n 2 + 6 n ) = 3 n 3 + 2 n 2 − 6 5 n である。ここで∑ j = 1 n ( n − j ) ( 2 j − 1 ) = 2 n ∑ j j − n 2 − 2 ∑ j j 2 + ∑ j j = n 2 ( n + 1 ) − n 2 − n ( n + 1 ) ( 2 n + 1 ) / 3 + n ( n + 1 ) / 2 = n 3 / 3 − n 2 / 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 ∑ j = 1 n ( n − j ) ( 2 j − 1 ) = 2 n ∑ j j − n 2 − 2 ∑ j j 2 + ∑ j j = n 2 ( n + 1 ) − n 2 − n ( n + 1 ) ( 2 n + 1 ) /3 + n ( n + 1 ) /2 = n 3 /3 − n 2 /2 + n /6 を用いた。平方根は各列で1 1 1 回、合計n n n 回である。▨
問題 8.3. n ∈ N ≥ 1 n\in\NN n ∈ N ≥ 1 とし、A ∈ M n ( R ) A\in M_n(\R) A ∈ M n ( R ) を正則行列とする。任意のj j j について∣ a j j ∣ ≥ ∑ i ≠ j ∣ a i j ∣ \lvert a_{jj}\rvert\ge\sum_{i\ne j}\lvert a_{ij}\rvert ∣ a j j ∣ ≥ ∑ i = j ∣ a ij ∣ が成り立つならば、A A A の部分ピボット付き消去を厳密算術で実行すると、どの段でもr k = k r_k=k r k = k であり、成長因子は2 2 2 以下であることを示せ。
解答. 定理 2.5 (1) により消去はどの段でも失敗しない。段k k k の作業行列W ( k ) W^{(k)} W ( k ) に対する次の二条件を (a)、(b) と呼ぶ。
(a) 段1 , … , k − 1 1,\dots,k-1 1 , … , k − 1 でr m = m r_m=m r m = m であり、j ≥ k j\ge k j ≥ k について∣ w j j ( k ) ∣ ≥ ∑ i ≥ k , i ≠ j ∣ w i j ( k ) ∣ \lvert w^{(k)}_{jj}\rvert\ge\sum_{i\ge k,\,i\ne j}\lvert w^{(k)}_{ij}\rvert ∣ w j j ( k ) ∣ ≥ ∑ i ≥ k , i = j ∣ w ij ( k ) ∣ である。
(b)j ≥ k j\ge k j ≥ k について∑ i ≥ k ∣ w i j ( k ) ∣ ≤ ∑ i = 1 n ∣ a i j ∣ \sum_{i\ge k}\lvert w^{(k)}_{ij}\rvert\le\sum_{i=1}^n\lvert a_{ij}\rvert ∑ i ≥ k ∣ w ij ( k ) ∣ ≤ ∑ i = 1 n ∣ a ij ∣ である。k = 1 k=1 k = 1 では (a) と (b) は仮定そのものである。段k < n k<n k < n で (a) と (b) が成り立つとする。(a) をj = k j=k j = k に用いるとi > k i>k i > k について∣ w k k ( k ) ∣ ≥ ∣ w i k ( k ) ∣ \lvert w^{(k)}_{kk}\rvert\ge\lvert w^{(k)}_{ik}\rvert ∣ w k k ( k ) ∣ ≥ ∣ w ik ( k ) ∣ であるから、最小の添字を選ぶ規則によりr k = k r_k=k r k = k であり、V ( k ) = W ( k ) V^{(k)}=W^{(k)} V ( k ) = W ( k ) である。段k k k の乗数をl i : = w i k ( k ) / w k k ( k ) l_i:=w^{(k)}_{ik}/w^{(k)}_{kk} l i := w ik ( k ) / w k k ( k ) (i > k i>k i > k )と書くと、(a) により∑ i > k ∣ l i ∣ ≤ 1 \sum_{i>k}\lvert l_i\rvert\le1 ∑ i > k ∣ l i ∣ ≤ 1 である。j > k j>k j > k とする。w i j ( k + 1 ) = w i j ( k ) − l i w k j ( k ) w^{(k+1)}_{ij}=w^{(k)}_{ij}-l_iw^{(k)}_{kj} w ij ( k + 1 ) = w ij ( k ) − l i w k j ( k ) (i > k i>k i > k )であるから
∑ i > k ∣ w i j ( k + 1 ) ∣ ≤ ∑ i > k ∣ w i j ( k ) ∣ + ∣ w k j ( k ) ∣ ∑ i > k ∣ l i ∣ ≤ ∑ i ≥ k ∣ w i j ( 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 i > k ∑ ∣ w ij ( k + 1 ) ∣ ≤ i > k ∑ ∣ w ij ( k ) ∣ + ∣ w k j ( k ) ∣ i > k ∑ ∣ l i ∣ ≤ i ≥ k ∑ ∣ w ij ( k ) ∣ であり、(b) から段k + 1 k+1 k + 1 の (b) が成り立つ。また
∑ i > k , i ≠ j ∣ w i j ( k + 1 ) ∣ ≤ ∑ i > k , i ≠ j ∣ w i j ( k ) ∣ + ∣ w k j ( k ) ∣ ( 1 − ∣ l j ∣ ) = ∑ i ≥ k , i ≠ j ∣ w i j ( k ) ∣ − ∣ l j ∣ ∣ w k j ( 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 i > k , i = j ∑ ∣ w ij ( k + 1 ) ∣ ≤ i > k , i = j ∑ ∣ w ij ( k ) ∣ + ∣ w k j ( k ) ∣ ( 1 − ∣ l j ∣) = i ≥ k , i = j ∑ ∣ w ij ( k ) ∣ − ∣ l j ∣ ∣ w k j ( k ) ∣ であり、段k k k の (a) により右辺は∣ w j j ( k ) ∣ − ∣ l j ∣ ∣ w k j ( k ) ∣ ≤ ∣ w j j ( k + 1 ) ∣ \lvert w^{(k)}_{jj}\rvert-\lvert l_j\rvert\lvert w^{(k)}_{kj}\rvert\le\lvert w^{(k+1)}_{jj}\rvert ∣ w j j ( k ) ∣ − ∣ l j ∣ ∣ w k j ( k ) ∣ ≤ ∣ w j j ( k + 1 ) ∣ 以下であるから、段k + 1 k+1 k + 1 の (a) が成り立つ。k k k に関する帰納法により、すべての段で (a) と (b) が成り立つ。段k k k の成分w i j ( k ) w^{(k)}_{ij} w ij ( k ) (i , j ≥ k i,j\ge k i , j ≥ k )について、(b) と仮定により∣ w i j ( k ) ∣ ≤ ∑ i ′ = 1 n ∣ a i ′ j ∣ ≤ 2 ∣ a j j ∣ ≤ 2 max p , q ∣ a p q ∣ \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 ∣ w ij ( k ) ∣ ≤ ∑ i ′ = 1 n ∣ a i ′ j ∣ ≤ 2 ∣ a j j ∣ ≤ 2 max p , q ∣ a pq ∣ であるから、成長因子は2 2 2 以下である。▨