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