計算情報学IScience of interactions Agenda 計算情報学I第5回 1....
Transcript of 計算情報学IScience of interactions Agenda 計算情報学I第5回 1....
Science of interactions
計算情報学I名古屋大学 情報文化学部
自然情報学科3年第5回
鈴木泰博情報文化学部・大学院情報科学研究科
複雑系科学専攻
Science of interactions
Agenda計算情報学 I 第5回
1. 前回の復習 (ガウスの消去法)2. LU分解3. LU分解とジョルダン法4. LU分解の計算量5. チェックテスト(第1回)の説明
Science of interactions
ガウスの消去法~線形代数の復習
素直に順番にただ未知数を消去し、与えられた問題を簡単な形に書き換えて解く
□□□□
□□□□
□□□□
=++=++=++
□□□
□□□
□□□□
=+=+=++
□□
□□□
□□□□
==+=++
①“下の式”から“上の式”の何倍かを引き、左から順に未知数を消してゆく。(前進消去)
②求まった未知数を下の式から代入し順番に未知数を求めていく。(後退代入)
Science of interactions
ガウスの消去法のアルゴリズム
前進消去
“下の式”から“上の式”の何倍かをひく
③
②
①
L
L
L
8398841364152
=++=++=++
zyxzyxzyx
4÷2=2倍
③
②
①
L
L
L
8398841364152
=++=++=++
zyxzyxzyx
8÷2=4倍
第1行の
11
21
aa
11
31
aa
niaai ,...3,2,
11
1 = を第 i 行から引く。
Science of interactions
ガウスの消去法のアルゴリズム
前進消去
第 k 行 (k=1,2,…n)の niaa
kk
ik ,...3,2, = 倍を第 i 行から引く
③
②
①
L
L
L
2354114152
=+=+=++
zyzyzyx
第2行の22
32
aa
倍を第3行から引く
→第1列からk列までは既に0
0)( =×− kkkk
ikik a
aaaまたk列も、
引き算
for k=k+1 to N
を繰り返す
アルゴリズム
ikkk
iki yy
aay =×− )(
Science of interactions
ガウスの消去法のアルゴリズム
前進消去k =1,2,…,N の順に
kk
ik
aap =:
j = k+1, k+2, … N の順に
kjkk
ikijij a
aaaa ×−=:
を繰り返す
ikkk
iki yy
aay =×− )(
i = k+1,k+2, … N の順に
を繰り返す
を繰り返す
Science of interactions
ガウスの消去法のアルゴリズム
後退代入
NNNN
NNNNNNN
NN
NN
yxayxaxa
yxaxayxaxaxa
==+
=++=+++
−−−−− 11111
22222
11212111
L
L
L前進消去完了後
NN
NN a
yx =
11111 /)( −−−−− −= NNNNNNN axayx
iik
N
ikikii axayx /)(
1∑
+=
−=
Science of interactions
ガウスの消去法のアルゴリズム
後退代入
iik
N
ikikii axayx /)(
1∑
+=
−=
NN
NN a
yx =:
i = N-1, N-2, …, 1の順に
を繰り返す
アルゴリズム
NNNN
NNNNNNN
NN
NN
yxayxaxa
yxaxayxaxaxa
==+
=++=+++
−−−−− 11111
22222
11212111
L
L
L
Science of interactions
ガウスの消去法のアルゴリズム
計算量k =1,2,…,N-1 の順に
kk
ik
aap =:
j = k+1, k+2, … N の順に
kjijij apaa ×−=:
を繰り返す
iki yypy =×−
i = k+1,k+2, … N の順に
を繰り返す
を繰り返す
(割り算1回)
(掛け算(N-k)回)
(掛け算1回)
∑−
=
−+−1
1))(2(
n
kknkn
これをn-k回
繰り返す
Science of interactions
前進消去の計算量(つづき)
∑−
=
+−−1
1
)2)((n
k
knkn
∑−
=
+=1
1)2(
n
kll
∑∑∑−
=
−
=
−
=
+=+=1
1
1
1
21
1
2 2)2(n
k
n
k
n
kllll
)1(6
)12)(1(21
1
1
1
2 −+−−
=+= ∑∑−
=
−
=
nnnnnlln
k
n
k
6)52)(1()1(
6)12)(1(1
1
+−=−+
−−= ∑
−
=
nnnnnnnnn
k
Science of interactions
後退代入計算量
iik
N
ikikii axayx /)(
1∑
+=
−=
NN
NN a
yx =:
i = N-1, N-2, …, 1の順に
を繰り返す
アルゴリズム
(割り算1回)
(掛け算 回)
(割り算 N-1回)
2)1(
2)1( +
=+− nnnnn
2)1( −nn
(掛け算 回)
Science of interactions
ガウスの消去法の計算量
)(3
)13(2
)1(6
)52)(1( 32
nOnnnnnnnn≅
−+=
++
+−
Science of interactions
Lu分解
Science of interactions
LU分解
数値計算を行なう問題によっては同一係数の連立一次方程式を何度も解く必要がある場合がある。
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
+
+
+
+
+
n
n
n
n
n
n
n
n
n
n
UUUUU
UUUUU
ABBAB
BABBAB
BA
5
4
3
2
1
15
14
13
12
11
(例)偏微分方程式の差分解法(陰公式)
51,...,UU を求めていくために同一係数の連立一次方程式を何度も解く必要がある。そうした問題に対してはLU分解が有効である。
Science of interactions
LU分解とはLU分解とは係数行列Aを下三角行列L(Lower triangular matrix)と上三角行列U(Upper triangular matrix)の積に分解
することをさす
A=LU
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−
=
1031014300120001
L
下三角行列
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−=
1300013300
51103011
U
上三角行列
Science of interactions
LU分解を用いた連立一次方程式の解法
44321
34321
24321
1421
3223
3
yxxxxyxxxxyxxxxyxxx
=−++−=+−−=+−+=++
=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−−
=
1321211311123011
Ax
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−− 1031014300120001
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−
43
14
1300013300
51103011
4
3
2
1
xxxx
L U
Science of interactions
LU分解を用いた連立一次方程式の解法
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−− 1031014300120001
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−
43
14
1300013300
51103011
4
3
2
1
xxxx
134734431337443343
7142124
444214
33321
2221
11
−==+−⋅−−=+−−=−=+−⋅+⋅−=++−==+⋅=+
=
yyyyyyyyyyyyyyy
yy
Uxをyとおく
Ly=(4,1,-3,4)
前進代入
y =(4, -7, 13, -13)
L y
Science of interactions
LU分解を用いた連立一次方程式の解法
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−− 1031014300120001
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−
43
14
1300013300
51103011
4
3
2
1
xxxx
1131301311331313327150751413243
444
3343
22432
114211
=−=−==⋅+⋅=+==⋅++=++−==⋅++=++
xxxxxxxxxxxxxxxxxx
Ux=y
後退代入
y =(4, -7, 13, -13)
X =(-1, 2, 0, 1)
Science of interactions
LU分解した行列を用いた連立一次方程式の計算量
LU分解をした係数行列を用いて連立一次方程式を解く場合の計算量を考える
iik
N
ikikii axayx /)(
1∑
+=
−=前進代入と後退代入 しかしないので、
)()1(22
)1(...21 2nnnnnn Ο≈+=×+
=++
ガウスの消去法の計算量が )3/( 3nΟなのでLU分解の方が効率が良い。
(i=N-1,N-2,…1)
Science of interactions
LU分解
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−
1320211011103011
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−−
1321211311123011
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
=
1001010300120001
)1(L
2行目の要素-1行目の要素x23行目の要素-1行目の要素x34行目の要素-1行目の要素x-1
掃きだし
LU分解をするためには
ガウスの消去法を行う。
Science of interactions
LU分解
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−
1300013300
51103011
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−−−
233071405110
3011
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
=
1030014000100001
)2(L
3行目の要素-2行目の要素x44行目の要素-2行目の要素x-3掃きだし
Science of interactions
LU分解
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
=
1030014000100001
)2(L
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
=
1001010300120001
)1(L
=L⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−− 1031014300120001
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−=
1300013300
51103011
U
Science of interactions
演習LU分解
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−303216
013
以下の係数行列をLU分解せよ。
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
132344132
Science of interactions
解答
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
500120132
131012001
132344132
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
→⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
500120132
260120132
Science of interactions
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛−−
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−
100210
013
111012001
303216
013
解答
Science of interactions
LU分解とは何か?LU分解の計算とはガウスの消去法における前進消去ガウスの消去法で前進消去を行なう場合に係数行列と定数yの部分は同時
に計算する必要はなく、係数行列のみ先に前進消去しておくことができるそれが、LU分解に他ならない
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−− 1031014300120001
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−
1300013300
51103011
掃きだしのオペレーション
L U
)1()1()( ...LLL kk −
前進消去
Science of interactions
LU分解とは何か?
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
=132344132
A
Aに対する前進消去は、Aの左から順に )3()2()1( ,, LLL を掛けたことになる。
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛−=
100012001
)1(L⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
101010001
)2(L⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
130010001
)3(L
Science of interactions
LU分解とは何か?
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−−
=132120132
)1( AL⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
=260120132
)1()2( ALL⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−
=500120132
)1()2()3( ALLL
ここで、 )1()2()3( LLL=λ とすると、λA=U⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−=
135012001
λ
UA 1−= λ より、 L=−1λ とすると、
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−== −
131012001
1λL
Science of interactions
チェックテスト(第1回)の説明
• 配点20点(満点)
• 時間60分
• 持ち込み不可・再試験はなし
• 欠席の場合は零点と評価し最終試験の際に調整(次のスライドで詳説)
• 出題範囲は以下の通り;• 誤差論
• 計算量理論
• 連立一次方程式(ガウスの消去法)
• 連立一次方程式(LU分解)
• ガウスの消去法、LU分解の計算量
Science of interactions
チェックテスト欠席の場合の扱いについて
欠席の場合は零点と評価
欠席の場合の補正
n(=1,2,3)回数欠席の場合は最終試験を
満点に補正
)3,2,1(,2040 =×+ nn
)2040(40
×+× nm補正式
40点満点での得点をm、欠席数をnとする。有効数字は3桁端数は四捨五入するものとする。
Science of interactions
フィードバック制度
例)チェックテストの結果が10点であった。 自分は誤差論と計算量理論での評点が低かった
⇒自分でその部分を再度復習する。 ⇒復習の結果をレポートにして提出 ⇒レポート点をチェックテストの得点に 加算する(最大合計で20点満点まで) この例の場合、もしレポート点が10点であれば、チェッ
クテストの評点は20点満点になる。
Science of interactions
フィードバックレポートの評価基準
体裁 文字や図表が明瞭かつ明確である。
⇒判読が困難な手書きの殴り書き数枚のようなレポートは内容はともかく評価は低い。
内容 自分の学習したポイントが明確か。
自らの言葉で書かれているか?
(例)自分で問題を作り、それを解説する。
⇒教科書やテキストの丸写しのようなものは評価
が低い。