Transcript LU分解のまとめ
線型方程式 吉水由美 •発表内容 線型方程式について学んできた中で, LU分解と反復法の最初の部分について 発表しようと思います. •ガウスの消去法について a11 x1 a12 x2 a1n xn b1 (1) (1) (1) (1) a21 x1 a22 x2 a2 n xn b2 (1) (1) (1) (1) an1 x1 an 2 x2 ann xn bn (1) (1) (1) (1) 次のような演算で消去を行い,右上三角行列を作り, 方程式を解く方法 (各係数の右上の添字は消去の過程を表すためにつけ たもの) a a m ( i,j k 1 , ,n 1 ) i j i j i ka k j (k 1 ) (k ) (k ) (k 1 ) (k ) (k ) (k ) a b b m ik ik /a k k i i ik b k ,m ( k 1 ) ( k ) ( k ) ( k ) •ガウスの消去法の演算回数 n1 k 1 1 3 (n k )(n k 2) n O(n2 ) 3 3 ( 1 3 ) n より,約 回の乗算と加算が必要 • LU 分解 A A (a ij ) (1 ) (1 ) ( 1) a21 m21 (1) a11 , 1 m21 M1 m31 m n1 0 0 1 0 0 1 0 0 0 0 0 (1 ) an1 mn1 (1) a11 とおき , (1) (1) (1) a11 a12 a1n 0 (1) ( 1 ) ( 1 ) 0 a a a (1) 21 22 2 n A 0 0 (1) (1) (1) a a a 1 とおくと n2 nn n1 M 1A A (1) (2) つまり,消去の第1段は行列 M1 を左からかけたこと に等しい. 第 k段は 1 0 Mk 0 0 0 0 1 mk 1, k mn, k 1 0 0 (k ) a jk , m jk ( k) a kk (jk 1 , ,n ) 1 (k) (k 1 ) と表せる とおくと MA A k 最終段まで進むと ( n) M M M M A A n 1 n 2 2 1 a(1) a(1) a(1) 11 12 13 ( 2) ( 2) a a 22 23 (3) U a33 0 a1(1n) a2( 2n) a3(3n) ( n) ann AX b の右辺のベクトル b にも同様の操作 M M M b b を行なえば n 1 n 2 M 2 1 (n) UX b は となる AX b ( n ) M k の逆行列は Mk 1 1 0 0 0 0 0 1 mk 1,k mn,k 1 0 0 1 で与えられる(これは Mk Mk I からわかる) 1 1 1 1 2 1 1 n 1 n 1 L M MM M とおくと 1 m21 m L 31 m n1 LU M1 A 0 1 m32 mn 2 1 0 0 1 mn3 1 0 0 1 mnn1 Mn 1 Mn1 であり,これを A の 0 0 0 となる 0 1 M1 A LU分解という •LU分解に必要な演算回数 計算時間の大部分はLU分解の過程で費やされる. そこで必要な回数は n1 n 加減算の回数: 乗算の回数: 1 3 2 1 n O(n ) 3 k 1ik 1 j k 1 n1 n n 1 3 2 (1 1) n O(n ) 3 k 1ik 1 j k 1 n したがって,LU分解の過程で,加減算と乗算それぞれ 3 ( 1 3 ) n 約 回必要になる. そして,LU分解された行列を使って右辺ベクトル b の 異なる複素組の連立1次方程式を解くときには,1組の 方程式あたり約 n2 回の加減算と乗算がそれぞれ必要 になる. •対称行列の T LDL 分解 A の LU 分解をA LU とするとき a11(1) a22 (2) D 0 U DV 1 v12 1 V v13 v23 1 0 ( n) ann とおいて v1n v2n v kj , 1 (k) akj (k j) (k ) akk と表せる T Aが対称行列(A A のこと)とする 第(k-1)段までで得られた行列 A( k ) の 第k行以下の小行列を ak ,k a k , k 1 (k) (k) ak 1, k ak 1, k 1 (k ) As a (k ) a (k ) n, k 1 n, k (k) とおくと As ( k ) は対称である (k ) ak , n (k) ak 1, n (k ) an, n (k ) なぜなら,第(k-1)段で行われる変形は ( k1) aij aij (k) ( k 1) ai,k 1 ( k 1) ak 1, j ( k 1) ak 1,k 1 であるが,alm aml であったから aij (1) aij aji (3) (3) (1) とつづき (k ) aij aji (k) (2) aji が分かり (2) (k) (k ) が分かる. ゆえに は対称 As ( k ) akj a jk vkj (k ) (k ) mjk となり V L である. akk akk T T A LD L つまり対称行列は と分解できる. これを A の LDLT 分解という • T LDL 分解に必要な計算回数 分解の過程で必要な計算回数は n k 1 1 3 2 n O(n ) 加減算の回数: i k 6 k 1i1 k 1 n k 1 i 1 1 3 2 n O(n ) 乗算の回数: 2 1 k 1 i 1 j 1 6 n したがって,分解の過程で,加減算と乗算それぞれ 3 約 (1 6)n 回必要になる. そして,分解された方程式を解くときには, 約 n2 回の加減算と乗算がそれぞれ必要になる. •反復法とは… ガウスの消去法をまともに解くと,大きい行列では計 算回数が多くなってしまう. このため,適当に近似を繰り返していくことで解を求め ることはできないだろうか,ということが考えられてきた. 連立方程式 Ax b で,真の解を x ,ある計算により n 回目で求めら れたものを x(n)とする.計算回数を増やして lim x(n) x n となったとする. このように計算回数を増やして,真の解に近づける 方法を反復法という. •解の収束の条件 Ax b x ・・① を同値な x Mx c ・・② に変形する. ( k 1) Mx (k ) c ・・③ が 適当な初期値 x(0) から出発して計算をしていき, ①の解 x に収束すればよい. x K回目の計算誤差を (k ) e ③から②を引くと ( k 1) x e x (k ) x とおく. x M (x ( k 1) Me (k ) (k ) x) 一般には初期値 x(0) は任意に選ぶので,その誤差 ( 0) e x ( 0) x (k ) は0ではない.反復とともに x が x に収束するため には, e(k ) が反復とともに0に収束しなければならない. そのためには反復行列Mの固有値の絶対値がすべて 1より小さくなくてはならない. Mの固有値がすべて1より小さければ,反復と共に誤差 は e( k 1) Me( k ) にしたがって減少し,0に収束する. すなはち,x(k 1) Mx( k ) c が収束するための必要 十分条件は,反復行列Mのすべての固有値の絶対値 が1より小さいことである. •ヤコビ法 非対角成分に相当する項をすべて右辺に移項した 次の形において反復を行う方法をヤコビ法という. x1( k 1) 1 a11 b1 (a12x2 (k ) x2(k 1) a221 b2 (a21x1 (k ) a13x3 (k ) ( k ) a1n xn a23x3( k ) a2n xn( k ) xn ( k 1) 行列で表すと すなわち 1 ann bn (k ) (an1x1 an 2 x2 (k ) ( k ) ann1xn1 x( k 1) D1 b ( E F ) x( k ) x(k 1) D1(E F)x(k ) D1b ただし 0 a11 a21 0 a22 a D E a 0 31 32 a nn an1 an2 0 0 a12 a13 a1n 0 a23 a2n F 0 0 まとめ ガウスの消去法よりも計算回数が少なくてすむ方 法がいくつかあることがわかりました. 線型方程式については,たくさん学ぶことがありま す.今後の課題としては,行列の固有値問題につ いて学んでいきたいと思います. ガウスの消去法についての説明や,コレスキー法, 反復法など今まで学んできたことはホームページ に載せてあります. http://tnt.math.metro-u.ac.jp/labo/grad/2004/yumi