Upload
petra
View
103
Download
0
Embed Size (px)
DESCRIPTION
線形計算 の基礎( 密 行列). 1E11M103 本山 義史. 行列演算の基礎について. ・行列の四則演算 ・ピボット選択 ・三角分解( LU 分解). 連立一次方程式について. ・ガウスの消去法 ・部分ピボット選択付きガウスの消去法 ・逆行列の計算 ・ LU 分解を用いる方法. 行列の四則演算について。. (1) n 次元ベクトルの加算. プログラミングに利用できる書式にすると、. (2) n×n 型(正方)行列の加算. プログラミングに利用できる書式にすると、. (3) n 次元ベクトルの減算. プログラミングに利用できる書式にすると、. - PowerPoint PPT Presentation
Citation preview
線形計算の基礎(密行列)1E11M103 本山 義史
行列演算の基礎について・行列の四則演算・ピボット選択・三角分解( LU 分解)
連立一次方程式について・ガウスの消去法・部分ピボット選択付きガウスの消去法・逆行列の計算・ LU 分解を用いる方法
行列の四則演算について。(1) n 次元ベクトルの加算
nnn b
b
b
a
a
a
c
c
c
2
1
2
1
2
1
プログラミングに利用できる書式にすると、
𝑐 𝑖=𝑎𝑖+𝑏𝑖となる。
(2) n×n 型(正方)行列の加算
nnnn
n
n
nnnn
n
n
nnnn
n
n
bbb
bbb
bbb
aaa
aaa
aaa
ccc
ccc
ccc
21
22221
11211
21
22221
11211
21
22221
11211
プログラミングに利用できる書式にすると、𝑐 𝑖𝑗=𝑎𝑖𝑗+𝑏𝑖𝑗となる。
(3) n 次元ベクトルの減算
nnn b
b
b
a
a
a
c
c
c
2
1
2
1
2
1
プログラミングに利用できる書式にすると、𝑐 𝑖=𝑎𝑖−𝑏𝑖となる。
(4) n×n 型(正方)行列の減算
nnnn
n
n
nnnn
n
n
nnnn
n
n
bbb
bbb
bbb
aaa
aaa
aaa
ccc
ccc
ccc
21
22221
11211
21
22221
11211
21
22221
11211
プログラミングに利用できる書式にすると、𝑐 𝑖𝑗=𝑎𝑖𝑗−𝑏𝑖𝑗となる。
(5) n 次元ベクトルの乗算
n
n
b
b
b
aaac
2
1
21
プログラミングに利用できる書式にすると、
𝑐=∑𝑖=1
𝑛
𝑎𝑖𝑏𝑖となる。
また、
n
nnnnn
n
n
bbb
a
a
a
ccc
ccc
ccc
212
1
21
22221
11211
プログラミングに利用できる書式にすると、
𝑐 𝑖𝑗=𝑎𝑖𝑏 𝑗となる。
(6) n×n 型行列の乗算
nnnnn
n
n
n b
b
b
aaa
aaa
aaa
c
c
c
2
1
21
22221
11211
2
1
プログラミングに利用できる書式にすると、
𝑐 𝑖=∑𝑗=1
𝑛
𝑎𝑖𝑗𝑏 𝑗となる。
nnnn
n
n
nnnn
n
n
nnnn
n
n
bbb
bbb
bbb
aaa
aaa
aaa
ccc
ccc
ccc
21
22221
11211
21
22221
11211
21
22221
11211
プログラミングに利用できる書式にすると、
𝑐 𝑖=∑𝑘=1
𝑛
𝑎𝑖𝑘𝑏𝑘𝑗となる。
また、
ピボット選択について
連立一次方程式や逆行列の計算の際に、係数行列の第 k 列の第 k 行目以降の要素の中で絶対値が最も大きいものを探し、それが第 l 行にあれば第 k 行と第 l 行全体を入れ替えるという操作のこと。
nnnnn
n
n
b
b
b
x
aaa
aaa
aaa
2
1
21
22221
11211
左辺の係数行列 についてピボット選択を行う際に、右辺の同じ行についても入れ替えを行えば、の未知数の順番は変化しない。→ このような式の両辺に対してピボット選択を行うことは、行列を展開した時の式の順序を入れ替えることに相当しており、結果には影響を与えない。
ピボット選択を行列表現で行うときには、次に示す置換行列を用いる。正方行列の第行と第行(あるいは第列と第列)を入れ替える時、置換行列は単位正方行列の第行と第行を入れ替えたものになっている。 また、置換行列はという性質がある。
1000
0010
0100
0001
P
正方行列の行を入れ替えるときは置換行列を左からかけ、列を入れ替えたい時には置換行列を右からかける。
← 第行
← 第行
(例題)
次の行列の第1行と第2行を入れ替える置換行列を示せ。また、置換行列を左からかけることによって、行列の第1行と第2行が入れ替わることを示せ。
101312
172118
456
A
(解答)
置換行列は次のようになる。
100
001
010
P
この置換行列を行列の左からかけると次のような結果になる。
101312
456
172118
101312
172118
456
100
001
010
三角分解( LU 分解)について
行列が与えられたとき、その行列を下三角行列と上三角行列の積の形に分解することを三角分解( LU 分解)という。LU 分解にはいくつかの方法が考えられているが、一般的によく知られているクラウト法について説明する。 今、行列を下三角行列と上三角行列に分解することを考える。
nn
n
n
nnnnnnnn
n
n
u
uu
uuu
lll
ll
l
aaa
aaa
aaa
00
00
00
222
11211
21
2221
11
21
22221
11211
下三角行列の対角成分を1にする方法と上三角行列の対角成分を1にする方法の2種類あるが、ここでは下三角行列の対角成分をとする。
行列の要素の値については、まずの値に注目して次のように下三角行列、上三角行列のを計算する。
下三角行列および上三角行列のそれぞれ以下の式を用いて計算を行う。
クラウド法はわかりやすい方法ではあるが、ピボット選択を行うことができない。 LU 分解は連立一次方程式の解法に利用されることが多いので、ピボット演算を適用した方が望ましい。 ピボット選択を含んだ LU 分解法としては、部分ピボット付きガウスの消去法に基づいた方法が知られている。
(例題)
次の行列クラウト法を用いて LU 分解せよ。
172118
101312
456
A
(解答)
行列
333323321331223212311131
23221321222212211121
131112111111
33
2322
131211
333231
2221
11
00
00
00
172118
101312
456
ulululululul
ululululul
ululul
u
uu
uuu
lll
ll
l
両辺の各要素を対応させると次のような等式が得られる。
下三角行列の対角成分の値を1と考えると、
この値をもとにして、他の要素の値を計算する。
100
230
456
123
012
001
172118
101312
456
三角分解した結果は次のようになる。
ガウスの消去法について。
直接法の中でよく知られている連立一次方程式の解法として、ガウスの消去法がある。この方法は前進消去(前進差分)といわれる処理と後進代入といわれる処理に別けて行われる。 いま、次の連立一次方程式について考える。
nnnnnn
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
2211
22222121
11212111
nnnn
nn
nn
bxa
bxaxa
bxaxaxa
''
'''
''''
22222
11212111
この式を
上記のような形式の連立一次方程式に変換する処理のことを前進消去と呼ぶ。また、前進消去によって得られた式を下から順について解く処理を後退代入という。
説明のため、前のページの式を次のように行列表現する。
nnnnnn
n
n
b
b
b
x
x
x
aaa
aaa
aaa
2
1
2
1
21
22221
11211
( Step 1)
まず、左辺の係数行列の第に注目する。第以下の式を用いる。
),,1(
),,1(
),,1(
njibbb
nkjaaa
nkia
a
kii
kjijij
kk
ik
上記の計算をなり、次のような式に変換されている。
nnnn
n
n
b
b
b
x
x
x
a
aa
aaa
'
'
'
'00
''0
'''
2
1
2
1
222
11211
前進消去が終わった段階で得られた式について、対角成分は必ずしも1であるとは限らない!!
( Step 2)
前進消去によって得られた式(前ページ)をもとにして、式を下から順に以下のように後退代入を行うことにより、解
)1,,1('
''
'
'
1
nka
xab
x
a
bx
kk
n
kjjkjk
k
nn
nn
(例題)
ガウスの消去法の基本アルゴリズムを用いて、次の連立方程式の解を求めよ。
27172118
16101312
8456
321
321
321
xxx
xxx
xxx
(解答)
27
16
8
172118
101312
456
3
0
8
560
230
456
⇒
最後に3行目2行目2→3行目を行うと、
3
0
8
100
230
456
前進消去によって得られた式をもとに、後退代入を行う。 このようにして解
部分ピボット選択付きガウスの消去法について。
ピボット選択をガウスの消去法に適用する方法がある。
( Step 1)
前進消去の際にピボット選択を行う。大きな要素を探す。もし絶対値の最大値が方程式の両辺について
( Step 2)
計算を行う。
)
Step1と Step2の計算が終了すると、左辺の係数行列は上三角行列になっている。
( Step 3)
以下、後退代入処理となる。この部分についても基本アルゴリズムと同じである。前進消去によって得られた式を下から順に、以下の式を用いて処理を行うことにより、解
)1,,1('
''
'
'
1
nka
xab
x
a
bx
kk
n
kjjkjk
k
nn
nn
(例題)
部分ピボット選択付きガウスの消去法を用いて次の連立方程式を解け。
27172118
16101312
8456
321
321
321
xxx
xxx
xxx
(解答)
3
2
1
172118
101312
456
x
x
x
ピボット選択により、1行目と3行目の入れ替えを行う。1行目と3行目の入れ替えを行うための置換行列
001
010
100
1P
27
16
8
172118
101312
456
1
3
2
1
1 P
x
x
x
P
𝑃1を左から両辺にかけると、
入れ替えたあとで、2行目2行目、3行目3行目とする。この変換行列を
1018
6
0118
12001
1G
これを用いて次のように表現できる。
27
16
8
172118
101312
456
11
3
2
1
11 PG
x
x
x
PG
ここまでを計算した結果は次のようになる。
[18 21 17
0 −1 −43
0 −2 −53] [𝑥1𝑥2𝑥3 ]=[ 27−2−1]
次にピボット選択により、2行目と3行目の入れ替えを行う。2行目と3行目の入れ替えを行うための置換行列
010
100
001
2P
置換行列を用いて入れ替えを表現すると次のようになる。
𝑃2[18 21 17
0 −1 −43
0 −2 −53
][𝑥1𝑥2𝑥3]=𝑃2[ 27−2−1]
入れ替えたあとで、3行目2行目3行目を行う。この変換行列を
𝐺2=[1 0 00 1 0
0 −121 ]
これを用いて次のように表現することができる。
𝐺2𝑃2[18 21 17
0 −1 −43
0 −2 −12
][𝑥1𝑥2𝑥3]=[ 27−1− 32]
前進消去によって得られた式をもとに、後退代入を行う。
このようにして、
逆行列の計算について
ガウスの消去法の前進消去を応用して、前進消去終了後の左辺の係数行列が単位行列になるように変換することもできる。 この場合には、後退代入を行うことなしに連立方程式の解を求めることができる。この手法を掃き出し法(ガウス・ジョルダンの消去法)という。 掃き出し法を用いて、逆行列を求めることができる。
100
010
001
21
22221
11211
X
aaa
aaa
aaa
nnnn
n
n
この行列行列
基本演算とピボット演算だけを利用して次のような式に変換したとき、右辺に作られた行列
nnnn
n
n
bbb
bbb
bbb
X
21
22221
11211
100
010
001
nnnn
n
n
bbb
bbb
bbb
A
21
22221
11211
1
ここで、左辺の係数行列を単位行列に変換する際には各列に対して次式を用いる。今、第する。
次式において、左辺と右辺は中央の分離線によって分けられている。
100
010
001
21
22221
11211
nnnn
n
n
aaa
aaa
aaa
最終的な目標として、次のように単位行列が左半分に移ることである。
nnnn
n
n
bbb
bbb
bbb
21
22221
11211
100
010
001
(例題)
次の行列の逆行列を求めよ。
531
842
642
A
(解答)
100
010
001
531
842
642
102
1011
002
1
210
200
321
1行目1行目としたあとで、2行目1行目22行目、3行目1行目3行目という演算を行う。
2行目と3行目を入れ替える。
011
102
1
002
1
200
210
321
011
102
1
202
3
200
210
101
1行目2行目21行目
3行目3行目としたあとで、1行目+3行目→1行目、2行目3行目2→2行目という演算を行う。
02
1
2
1
112
1
22
11
100
010
001
逆行列は次のようになる。
02
1
2
1
112
1
22
11
531
842
6421
LU 分解を用いる方法について
置換行列と変換行列を用いると、ガウスの消去法の前進消去の過程は次のように表すことができる。
𝐺𝑛−1𝑃𝑛−1⋯𝐺1𝑃1𝐴𝑥=𝐺𝑛−1𝑃𝑛−1⋯𝐺1𝑃1𝑏
式で表現すると、の左から挿入して漸化を 11 )(
iii PIPP
となる。
ただし、
1iP
左辺の係数行列ようになる。
𝑈𝑥=𝐺𝑛− 1𝐻𝑛− 2𝑃𝑏
これより、次式を得る。
上式のもとの連立方程式
ここまでで LU 分解は終了し、次に LU 分解の結果を利用して連立一次方程式を解くことを考える。 前ページの最後の式は次のように変形できる。
ここで
下三角行列の要素をこの連立方程式の解
次に連立一次方程式
を解くことによって、与えられた連立一次方程式の解を得ることができる。この場合の後退代入は次のようになる。
(例題)
次の連立方程式を行列表現し、部分ピボット選択付きガウスの消去法に基づき LU 分解せよ。また、 LU 分解した結果をもとに連立一次方程式の解を求めよ。
27172118
16101312
8456
321
321
321
xxx
xxx
xxx
(解答)
27
16
8
172118
101312
456
3
2
1
x
x
x
上式は次のように表すことができる。
ピボット選択によって1行目と3行目の入れ替えを行う。1行目と3行目の入れ替えを行うための置換行列は次のようになる。
001
010
100
1P
行を入れ替えたあとで、2行目1行目2行目、3行目1行目3行目とする。この変換行列
1018
6
0118
12001
1G
ここまでの演算は
また、上式の
27
16
8
3
520
3
410
172118
11
3
2
1
PG
x
x
x
次にピボット選択により、2行目と3行目の入れ替えを行う。2行目と3行目の入れ替えを行うための置換行列、
010
100
001
2P
行を入れ替えたあとで、3行目2行目3行目を行う。この変換行列を
12
10
010
001
2G
これを用いて、
27
16
8
2
120
3
510
172118
1122
3
2
1
22 PGPG
x
x
x
PG
と表すことができる。
12
1
3
2
013
1001
)( 112122 PGPGL
上式左辺の係数行列
PLPPPGPGPGPG 112
1121221122 )(
より、下三角行列を求める。
12
1
3
2
013
1001
)( 112122 PGPGL
置換行列の積
010
001
100
12PPP
まず、用いて、次のように計算できる。
2
3)1(
2
127
3
216
1273
18
27
3
2
1
y
y
y
最後に
118
317)2(2127
22
335
1
3
2123
3
2
3
x
x
x
このようにして解
連立一次方程式を一回解くだけなら、ガウスの消去法を利用した方がよい場合が多いが、解くべき問題によっては同じ係数行列で定数項の値だけを変えて連立一次方程式を繰り返して計算しなければならない場合がある。 その時は、 LU 分解法を用いるのが一般的になっている。
クラウト法による解法について。
次の連立一次方程式を考える。
係数行列連立一次方程式は次のようになる。
LU 分解した結果は、(基本)ガウスの消去法に基づく LU 分解の場合と全く同じ式になる。クラウト法の場合も「ピボット選択付きガウスの消去法に基づく LU 分解」アルゴリズムの置換行列前進代入および後退代入を行えばよい。