Upload
hiroshi-yamashita
View
725
Download
1
Embed Size (px)
DESCRIPTION
2014 JOI春合宿 行列の基礎とその応用
Citation preview
2014/03/20山下 洋史@utatakiyoshi
行列の基礎とその応用
2014/03/202014 JOI春合宿 行列の基礎とその応用
はじめに
・今日は「行列」の話をします
・2.5時間 しかないのでめっちゃ飛ばします (最初の方はゆっくり?)
・数学的にはテキトーですが気分だけでも分かれば……
・それでも分からなくなったら適当に反応をください
(質問とかジェスチャーとか)
2
2014/03/202014 JOI春合宿 行列の基礎とその応用
連立一次方程式
3
2014/03/202014 JOI春合宿 行列の基礎とその応用
連立一次方程式の例(1)
4
果物屋は
桃を1個200円,柿を1個100円
で売っている.
JOI君は1600円で桃と柿を合計10個買った.
JOI君はそれぞれいくつずつ買った?
2014/03/202014 JOI春合宿 行列の基礎とその応用
連立一次方程式の例(1)
果物屋は桃を1個200円,柿を1個100円で売っている.
JOI君は桃と柿を合わせて10個買うと1600円であった.
JOI君はそれぞれいくつずつ買った?
5
+200x +100y =1600
+x +y =10
桃: x 個 柿: y 個 とすると,
2014/03/202014 JOI春合宿 行列の基礎とその応用
連立一次方程式の例(2)
6
直線 x+y=2 と 直線 2x-y=2 の交点は?
2014/03/202014 JOI春合宿 行列の基礎とその応用
連立一次方程式の例(2)
7
直線 x+y=2 と 直線 2x-y=2 の交点は?
+x +y =2
+2x -y =2
2014/03/202014 JOI春合宿 行列の基礎とその応用
連立一次方程式
←連立一次方程式
8
+x +y =2
+2x -y =2
+200x +100y =1600
+x +y =10
2014/03/202014 JOI春合宿 行列の基礎とその応用
とりあえず解く
(下1)-(上1)×2
→ -3y=-2
9
+x +y =2 (上1)
+2x -y =2 (下1)
+x +y =2 (上2)
-3y =-2 (下2)
2014/03/202014 JOI春合宿 行列の基礎とその応用
とりあえず解く
(下1)+(上1)×(-2)→ -3y=-2
10
+x +y =2 (上1)
+2x -y =2 (下1)
+x +y =2 (上2)
-3y =-2 (下2)
+x +y =2 (上3)
+y =2/3 (下3)
+x =4/3 (上4)
+y =2/3 (下4)
(下2)を解く
(上3)+(下3)×(-1) → +x=4/3
2014/03/202014 JOI春合宿 行列の基礎とその応用
変数と式を増やす
11
-x +y +z =0x -2z =3
2x -y +z =-1
-x +y +z =0+y -z =3+y +3z =-1
-x +y +z =0+y -z =3
+4z =-4
-x +y +z =0+y -z =3
+z =-1
-x +y +z =0+y =2
+z =-1
-x =-1+y =2
+z =-1
x =1+y =2
+z =-1
前進消去 後退代入
2014/03/202014 JOI春合宿 行列の基礎とその応用
N個の場合
12
……
……
前進消去
後退代入
こうできないときもあります(詳しくは後述 or 省略)
2014/03/202014 JOI春合宿 行列の基礎とその応用
計算量について
前進消去
・(?列)×?+(?列) の計算 →O(N)
・1ステップあたりこれをN回
・これをNステップ
・→O(N3)
13
後退代入
・1つの変数について解く→O(N)
・これをN回
・→O(N2)
2014/03/202014 JOI春合宿 行列の基礎とその応用
ベクトルと行列,行列の積
14
2014/03/202014 JOI春合宿 行列の基礎とその応用
縦ベクトル
縦ベクトル: 数,式を縦に並べたもの
15
要素ごとに足す
要素ごとに掛ける
0
@x
y
z
1
A
0
@x
y
z
1
A+
0
@p
q
r
1
A =
0
@x+ p
y + q
z + r
1
A
c
0
@x
y
z
1
A =
0
@cx
cy
cz
1
A(←スカラー倍と呼ぶ)
列ベクトルと呼ぶほうが多いかもしれない
2014/03/202014 JOI春合宿 行列の基礎とその応用
ベクトルの図形的なイメージ
16
✓21
◆
✓�24
◆
✓�24
◆+
✓21
◆=
✓50
◆
2
✓21
◆=
✓42
◆
和→矢印をつなげる
c倍→長さをc倍
2014/03/202014 JOI春合宿 行列の基礎とその応用
ベクトルで連立一次方程式を書いてみる
17
-x +y +z =0
x -2z =3
2x -y +z =-10
@�x
x
2x
1
A+
0
@y
0�y
1
A+
0
@z
�2zz
1
A =
0
@03�1
1
A
x
0
@�112
1
A+ y
0
@10�1
1
A+ z
0
@1�21
1
A =
0
@03�1
1
A
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列
18
0
@�1 1 11 0 �22 �1 1
1
A 行列: 数,式を縦横に並べたもの
ベクトルと同様に,要素ごとに足す,要素ごとに掛ける0
@�1 1 11 0 �22 �1 1
1
A+
0
@1 0 00 1 00 0 1
1
A =
0
@0 1 11 1 �22 �1 2
1
A
c
0
@�1 1 11 0 �22 �1 1
1
A =
0
@�c c cc 0 �2c2c �c c
1
A
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列と縦ベクトルの積
19
0
@�1 1 11 0 �22 �1 1
1
A-x +y +z =0x -2z =32x -y +z =-1
は
係数を抜き出したものになっている.
の
0
@�1 1 11 0 �22 �1 1
1
A
0
@x
y
z
1
A =
0
@03�1
1
A
が連立一次方程式になるように行列と縦ベクトルの積を定めよう
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列と縦ベクトルの積
20
0
@�1 1 11 0 �22 �1 1
1
A
0
@x
y
z
1
A = x
0
@�112
1
A+ y
0
@10�1
1
A+ z
0
@1�21
1
A
とすればよい.
-x +y +z =0x -2z =32x -y +z =-1
0
@�x
x
2x
1
A+
0
@y
0�y
1
A+
0
@z
�2zz
1
A =
0
@03�1
1
A
x
0
@�112
1
A+ y
0
@10�1
1
A+ z
0
@1�21
1
A =
0
@03�1
1
A
←3つ前のスライド
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列と縦ベクトルの積
21
一般に,
… =
0
BBBBB@
abc...z
1
CCCCCAa +b +c +z…
→行列に含まれる縦ベクトルに係数をかけて足しあわせたもの
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列どうしの積
22
2つの式 Ax=y, By=z があるとき, A(Bx)=z A(Bx)=(AB)x となるように行列同士の積を定めよう
0
@�1 1 11 0 �22 �1 1
1
A
0
@x
y
z
1
A =
0
@03�1
1
A→ Ax=b
2014/03/202014 JOI春合宿 行列の基礎とその応用
どうやって?
23
2014/03/202014 JOI春合宿 行列の基礎とその応用
A(1,0,...,0)=?
24
初めの要素が 1 で他が全部 0 の縦ベクトルをAにかけてみるa=1, b=c=...=z=0
… =
0
BBBBB@
abc...z
1
CCCCCAa +b +c +z…
2014/03/202014 JOI春合宿 行列の基礎とその応用25
… =
0
BBBBB@
100...0
1
CCCCCA1 +0 …+0 +0
初めの要素が 1 で他が全部 0 の縦ベクトルをAにかけてみるa=1, b=c=...=z=0
A(1,0,...,0)=?
2014/03/202014 JOI春合宿 行列の基礎とその応用26
… =
0
BBBBB@
100...0
1
CCCCCA
初めの要素が 1 で他が全部 0 の縦ベクトルをAにかけてみるa=1, b=c=...=z=0
A(1,0,...,0)=?
2014/03/202014 JOI春合宿 行列の基礎とその応用27
同様に考えると......
… =A =
0
BBBBB@
100...0
1
CCCCCAA =
0
BBBBB@
010...0
1
CCCCCAA
=
0
BBBBB@
000...1
1
CCCCCAA…
Aと … のそれぞれの積を並べるとAになる!0
BBBBB@
100...0
1
CCCCCA
0
BBBBB@
010...0
1
CCCCCA
0
BBBBB@
000...1
1
CCCCCA
A(1,0,...,0)=?
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列どうしの積
28
→ を調べてみる
Aと … のそれぞれの積を並べるとAになる!0
BBBBB@
100...0
1
CCCCCA
0
BBBBB@
010...0
1
CCCCCA
0
BBBBB@
000...1
1
CCCCCA
[AB]
0
BBBBB@
100...0
1
CCCCCA, [AB]
0
BBBBB@
010...0
1
CCCCCA, · · ·
2014/03/202014 JOI春合宿 行列の基礎とその応用29
… =B
行列どうしの積=A[AB]
0
BBBBB@
100...0
1
CCCCCA= A
2
666664B
0
BBBBB@
100...0
1
CCCCCA
3
777775
=A[AB]
0
BBBBB@
010...0
1
CCCCCA= A
2
666664B
0
BBBBB@
010...0
1
CCCCCA
3
777775
2つの式 Ax=y, By=z があるとき, A(Bx)=z. A(Bx)=(AB)xとなるように行列同士の積を定めよう
2014/03/202014 JOI春合宿 行列の基礎とその応用30
… =B
行列どうしの積=A
AB= A A A … A
[AB]
0
BBBBB@
100...0
1
CCCCCA= A
2
666664B
0
BBBBB@
100...0
1
CCCCCA
3
777775
=A[AB]
0
BBBBB@
010...0
1
CCCCCA= A
2
666664B
0
BBBBB@
010...0
1
CCCCCA
3
777775
2014/03/202014 JOI春合宿 行列の基礎とその応用
A11B12 +A12B22 +A13B32
0
@A11 A12 A13
A21 A22 A23
A31 A32 A33
1
A
0
@B11 B12 B13
B21 B22 B23
B31 B32 B33
1
A
行列どうしの積
i 行目 j 列目の要素を と書きます
31
Aij
の1行目2列目=0
@A11 A12 A13
A21 A22 A23
A31 A32 A33
1
A
0
@B12
B22
B32
1
Aの1行目=
B12
0
@A11
A21
A31
1
A+B22
0
@A12
A22
A32
1
A+B32
0
@A13
A23
A33
1
Aの1行目=
2014/03/202014 JOI春合宿 行列の基礎とその応用
0
BBBBBB@
A11 · · · A1n...
...Ai1 · · · Ain...
...An1 · · · Ann
1
CCCCCCA
0
B@B11 · · · B1j · · · B1n... · · ·
...Bn1 · · · Bnj · · · Bnn
1
CA
行列どうしの積
i 行目 j 列目の要素を と書きます
32
Aij
の i 行目 j 列目=
の i 行目=
0
BBBBBB@
A11 · · · A1n...
...Ai1 · · · Ain...
...An1 · · · Ann
1
CCCCCCA
0
@B1j
· · ·Bnj
1
A Ai1B1j + · · ·+AinBnj
→Aの i 行目とBの j 行目の内積
2014/03/202014 JOI春合宿 行列の基礎とその応用
前進消去のおさらい
(下1)-(上1)×2
→ -3y=-2
33
+x +y =2 (上1)
+2x -y =2 (下1)
+x +y =2 (上2)
-3y =-2 (下2)
2014/03/202014 JOI春合宿 行列の基礎とその応用
+x +y =2 (上1)
+2x -y =2 (下1)
+x +y =2 (上2)
-3y =-2 (下2)
(下1)-(上1)×2
前進消去のおさらい
34
-2×(上1)+1×(下1)の操作を
��2 1
�✓1 12 �1
◆
で表そう
横ベクトル: 行列や縦ベクトルと同じように和,スカラー倍ができる
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列と横ベクトルの積
35
…�a b c · · · z
�
= a
+z
+b …→行列に含まれる横ベクトルに係数をかけて足しあわせたもの
2014/03/202014 JOI春合宿 行列の基礎とその応用
(1,0,...,0)A=?
36
縦ベクトルと同様に,横ベクトルも考える
…�1 0 0 · · · 0
�
=…
1+0
+0
2014/03/202014 JOI春合宿 行列の基礎とその応用
(1,0,...,0)A=?
37
縦ベクトルと同様に,横ベクトルも考える
…�1 0 0 · · · 0
�
=
2014/03/202014 JOI春合宿 行列の基礎とその応用
(1,0,...,0)A=?
38
これらを縦に並べるとAが分かる
…�1 0 0 · · · 0
�
…�0 1 0 · · · 0
�
…�0 0 0 · · · 1
�
=
=
=
……
2014/03/202014 JOI春合宿 行列の基礎とその応用
= B
行列の積ふたたび
今度は,(xA)B=x(AB) となるように積を定める
39
… =A
�1 0 0 · · · 0
�
�0 1 0 · · · 0
�
(AB)=( A)B�1 0 0 · · · 0
�
= B(AB)=( �0 1 0 · · · 0
�A)B
B B
B
…AB=
2014/03/202014 JOI春合宿 行列の基礎とその応用
A11
�B11 B12 B13
�
+A12
�B21 B22 B23
�
+A13
�B31 B32 B33
�
�A11 A12 A13
�0
@B11 B12 B13
B21 B22 B23
B31 B32 B33
1
A
A11B12 +A12B22 +A13B32
0
@A11 A12 A13
A21 A22 A23
A31 A32 A33
1
A
0
@B11 B12 B13
B21 B22 B23
B31 B32 B33
1
A
i 行目 j 列目の要素を と書きます
40
Aij
の1行目2列目=
の2列目=
の2列目=
行列の積ふたたび
2014/03/202014 JOI春合宿 行列の基礎とその応用
�Ai1 · · · Ain
�0
B@B11 · · · B1j · · · B1n...
......
Bn1 · · · Bnj · · · Bnn
1
CA
0
BBBBBB@
A11 · · · A1n...
...Ai1 · · · Ain...
...An1 · · · Ann
1
CCCCCCA
0
B@B11 · · · B1j · · · B1n... · · ·
...Bn1 · · · Bnj · · · Bnn
1
CA
i 行目 j 列目の要素を と書きます
41
Aij
の i 行目 j 列目=
の i 行目=
Ai1B1j + · · ·+AinBnj →Aの i 行目とBの j 行目の内積
行列の積ふたたび
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列の積まとめ
42
A …AB= A A A
B B
B
…AB=
の 2 通りで定義したが,どちらも
Ai1B1j + · · ·+AinBnj
が i 行目 j 列目の成分になる.→どちらでもOK
2014/03/202014 JOI春合宿 行列の基礎とその応用
連立一次方程式の話にもどりまして
43
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列の積の練習も兼ねて……
44
を前進消去してみる0
@�1 1 11 0 �22 �1 1
1
A
0
@x
y
z
1
A =
0
@03�1
1
A
(1行目)←(1行目)(2行目)←(1行目)×1+(2行目)×1(3行目)←(1行目)×2 +(3行目)×1
をするので,
0
@1 0 01 1 02 0 1
1
Aを左からかける
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列の積の練習も兼ねて……
(1行目)←(1行目)
(2行目)← (2行目)
(3行目)← (2行目)×(-1)+(3行目)
45
0
@�1 1 10 1 �10 1 3
1
A
0
@x
y
z
1
A =
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
0
@1 0 01 1 02 0 1
1
A
0
@�1 1 11 0 �22 �1 1
1
A
0
@x
y
z
1
A =
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
をするので,0
@1 0 00 1 00 �1 1
1
A を左からかければよい
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列の積の練習も兼ねて……
46
0
@1 0 00 1 00 �1 1
1
A
0
@�1 1 10 1 �10 1 3
1
A
0
@x
y
z
1
A =
0
@1 0 00 1 00 �1 1
1
A
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
0
@�1 1 10 1 �10 0 4
1
A
0
@x
y
z
1
A =
0
@1 0 00 1 00 �1 1
1
A
0
@03�1
1
A
0
@�1 1 10 1 �10 0 4
1
A
0
@x
y
z
1
A =
0
@1 0 00 1 00 �1 1
1
A
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
0
@�1 1 10 1 �10 0 4
1
A
0
@x
y
z
1
A =
0
@03�4
1
A右辺を後から変形したのは伏線…
2014/03/202014 JOI春合宿 行列の基礎とその応用
ちょい足し
47
2014/03/202014 JOI春合宿 行列の基礎とその応用
線形性
A(x+y)=Ax+AyA(cx)=cAx行列同士の掛け算も,行列×ベクトルを並べたものにすぎないので同じ線形性が成り立つ
48
←線形性
2014/03/202014 JOI春合宿 行列の基礎とその応用
逆行列
・単位行列 I =
・IA=A=AI, Ix=x (かけても変化しない)
・A-1A=I=AA-1 となるA-1を逆行列と呼ぶ. (あるとは限らない)
・A-1から,A-1Ax=x=A-1bとして連立一次方程式が一発でとける
・一般に,逆行列を求めるのは大変
・Ax=bが解ければA-1を求める必要はないという場合が多い
49
0
BBBBB@
1 0 0 · · · 00 1 0 · · · 00 0 1 · · · 0...
......
. . ....
0 0 0 · · · 1
1
CCCCCA
2014/03/202014 JOI春合宿 行列の基礎とその応用
しばし休憩
50
✓1 21 0
◆✓1�1
◆ ✓1 21 0
◆✓21
◆
0
@1 0 00 1 00 �1 1
1
A
0
@1 0 01 1 02 0 1
1
A
=? =?
の逆行列は?
ひまつぶし用練習問題
2014/03/202014 JOI春合宿 行列の基礎とその応用
固有値
51
2014/03/202014 JOI春合宿 行列の基礎とその応用
✓1 21 0
◆✓1�1
◆
✓1 21 0
◆✓21
◆=?
=?
52
練習問題のこたえ
2014/03/202014 JOI春合宿 行列の基礎とその応用
✓1 21 0
◆✓1�1
◆=
✓�11
◆
✓1 21 0
◆✓21
◆=
✓42
◆
53
練習問題のこたえ
2014/03/202014 JOI春合宿 行列の基礎とその応用
✓1 21 0
◆✓1�1
◆=
✓�11
◆= (�1)
✓1�1
◆
✓1 21 0
◆✓21
◆=
✓42
◆= 2
✓21
◆
54
練習問題のこたえ
→掛けたベクトルのスカラー倍になっている
2014/03/202014 JOI春合宿 行列の基礎とその応用
固有値・Ax = λx となる x を A の固有ベクトルと呼ぶ.
・λ を A の固有値と呼ぶ.
・固有値,固有ベクトルは複数ある
・1つの固有ベクトルに対して1つ固有値が対応する
55
は✓1 21 0
◆✓1�1
◆✓21
◆
の固有ベクトル固有値は -1, 2
同じ固有値をもつ固有ベクトルがあると面倒なので固有値はすべて相異なるとする
c倍しても固有ベクトルなので,同じ方向のものは区別しない
2014/03/202014 JOI春合宿 行列の基礎とその応用
固有ベクトルのイメージ
56
x1
x2
λ1=2λ2=1/2
2014/03/202014 JOI春合宿 行列の基礎とその応用
固有ベクトルのイメージ
57
x1
x2
Aをかける
λ1=2λ2=1/2
2014/03/202014 JOI春合宿 行列の基礎とその応用
固有ベクトルのイメージ
58
x1
x2
λ1=2λ2=1/2
2014/03/202014 JOI春合宿 行列の基礎とその応用
固有ベクトルのイメージ
59
x1
x2
λ1=2λ2=1/2
Aをかける
2014/03/202014 JOI春合宿 行列の基礎とその応用
固有ベクトルのイメージ
60
x1
x2
λ1=2λ2=1/2
Aをかける
固有値最大の固有ベクトル→Aをかけた時の長さの倍率が最大
2014/03/202014 JOI春合宿 行列の基礎とその応用
Aの累乗
61
✓1 21 0
◆= A
✓30
◆= x
A
nx = AA · · ·Ax を計算してみよう
n個
AA · · ·AAA
✓30
◆= AA · · ·AAA
✓1�1
◆+
✓21
◆�
= AA · · ·AA
(�1)
✓1�1
◆+ 2
✓21
◆�
= AA · · ·A(�1)2
✓1�1
◆+ 22
✓21
◆�
= (�1)n✓
1�1
◆+ 2n
✓21
◆
xを固有ベクトルの和に書く
2014/03/202014 JOI春合宿 行列の基礎とその応用
二次形式
62
2014/03/202014 JOI春合宿 行列の基礎とその応用
転置・内積
行列の転置 : と を入れ替えたもの
63
AjiAijAT
x
Ty内積:
内積=0 であることを直交しているという
AA
x y
2014/03/202014 JOI春合宿 行列の基礎とその応用
内積のイメージ
64
✓21
◆
✓�24
◆
��2 4
�✓21
◆= �4 + 4 = 0
直角に交わる→内積 0
�2 1
�✓21
◆= 22 + 12 = 5
自分との内積→長さの2乗
2014/03/202014 JOI春合宿 行列の基礎とその応用
( i ≠ j なら ) xiTxj = 0
二次形式
A が対称 なら,固有ベクトルは直交する
65
AT = A Aij = Aji
x
TAx
�1, · · · ,�n
x1, · · · , xn
固有値:
固有ベクトル:
二次形式:
(長さ 1 とする)
= (c1x1 + · · ·+ cnxn)TA(c1x1 + · · ·+ cnxn)
= (c1x1 + · · ·+ cnxn)T (c1�1x1 + · · ·+ cn�nxn)
= �1c12 + · · ·+ �ncn
2
2014/03/202014 JOI春合宿 行列の基礎とその応用
二次形式
66
1p5
✓21
◆
A=
λ1=1 x1=
1p5
✓�12
◆λ2=4 x2=
1
5
✓8 �6�6 17
◆
�1c12 + �2c2
2 = 1
c12 + 4c2
2 = 1傾いた楕円
xTAx=1 はどんなヤツ?
2014/03/202014 JOI春合宿 行列の基礎とその応用
二次形式
固有値が全て正なら, = 1 は楕円の方程式になる
: レイリー商
( = 同じ方向で長さ 1 のベクトルの二次形式)
レイリー商最小の x = 最小固有値に対する固有ベクトル
楕円の長軸に対応
最大-短軸 も同様
67
x
TAx
x
TAx
x
Tx
2014/03/202014 JOI春合宿 行列の基礎とその応用
ここまでのまとめ
68
・ 行列で連立一次方程式を表せる
・行列×縦ベクトルは 行列の中の縦ベクトルに係数を掛けて足しあわせたもの (横も同様)
・A×Bの (i, j) 成分はAのi行とBのj列を掛ける
・Ax=λx → 固有ベクトル,固有値
・xTAx : 二次形式
2014/03/202014 JOI春合宿 行列の基礎とその応用
行列のいろんな使い道
69
脈絡なく羅列します,ごめんね
2014/03/202014 JOI春合宿 行列の基礎とその応用
1.フィボナッチ数
・フィボナッチ数
70
・行列の形で書ける✓fk+1
fk
◆=
✓1 11 0
◆✓fk
fk�1
◆
↑Aとする
f0 = 0
f1 = 1
fk+1 = fk + fk�1
2014/03/202014 JOI春合宿 行列の基礎とその応用71
↵ =1 +
p5
2
� =1�
p5
2
✓↵1
◆,
✓�1
◆
Aの固有値は 固有ベクトルは
✓fn+1
fn
◆= An
✓10
◆
= An 1p5
✓↵1
◆�
✓�1
◆�
=1p5
↵n
✓↵1
◆� �n
✓�1
◆�
fn = ↵n � �n
1.フィボナッチ数
2014/03/202014 JOI春合宿 行列の基礎とその応用
2.PageRank
72
Webページ間のリンクが次のグラフのように張られている
a
b
c
d
2014/03/202014 JOI春合宿 行列の基礎とその応用
a
b
c
d
73
ページの上に人がいて,毎回ランダムなリンクを選んで移動する
どのページに居る確率が高いか?確率の高いページが重要っぽい!
2.PageRank
2014/03/202014 JOI春合宿 行列の基礎とその応用
a
b
c
d
74
時刻 t に人が居る確率at, bt, ct, dt
0
BB@
at+1
bt+1
ct+1
dt+1
1
CCA =
0
BB@
0 1/2 1/3 10 0 1/3 01 0 0 00 1/2 1/3 0
1
CCA
0
BB@
atbtctdt
1
CCA
↓Aとする
2.PageRank
2014/03/202014 JOI春合宿 行列の基礎とその応用75
今回のAの固有値は…
電卓(wolphram alpha.com)に聞いてみる
2.PageRank
2014/03/202014 JOI春合宿 行列の基礎とその応用76
←絶対値 が 1未満
Eigenvalue: 固有値
Eigenvector: 固有ベクトル
2.PageRank
2014/03/202014 JOI春合宿 行列の基礎とその応用77
A
n
0
BB@
a0
b0
c0
d0
1
CCA = A
n(c1v1 + c2v2 + x3v3 + x4v4)
= (1nc1v1 + �2nc2v2 + �3
nx3v3 + �4
nx4v4)
! c1v1
nを大きくすると0に近づく
v1 =
0
BB@
20.66721
1
CCA のスカラー倍に近づく→aとcが重要そう
a
b
c
d
2.PageRank
2014/03/202014 JOI春合宿 行列の基礎とその応用
3.統計学(線形回帰)
紅白饅頭セットの値段 Ci
=箱の価値 bB
+紅饅頭の価値 bR ×個数 Ri
+白饅頭の価値 bW ×個数 Wi
+誤差 εi (ランダム,平均0)
78
Ci = bB + bRRi + bWWi + "i
2014/03/202014 JOI春合宿 行列の基礎とその応用79
(紅,白)=(1,1) のとき 351 円(紅,白)=(1,0) のとき 147 円(紅,白)=(2,3) のとき 848 円
(紅,白)=(10,20) のとき 5050 円
売ってみたらこうなった.→箱と饅頭の価値はどんくらい?
(厳密には解けない)
0
BB@
3511478485050
1
CCA =
0
BB@
1 1 11 1 01 2 31 10 20
1
CCA
0
@bBbRbW
1
A+
0
BB@
"1"2"3"4
1
CCA
3.統計学(線形回帰)
2014/03/202014 JOI春合宿 行列の基礎とその応用
3.統計学(線形回帰)
80
C X B ε= +
C B ε= +X X XX
C B ε’= +XXX
-1
0
BB@
3511478485050
1
CCA =
0
BB@
1 1 11 1 01 2 31 10 20
1
CCA
0
@bBbRbW
1
A+
0
BB@
"1"2"3"4
1
CCA
2014/03/202014 JOI春合宿 行列の基礎とその応用
3.統計学(線形回帰)
81
C X B ε= +
C B ε= +X X XX
C B=XXX
-1
0
BB@
3511478485050
1
CCA =
0
BB@
1 1 11 1 01 2 31 10 20
1
CCA
0
@bBbRbW
1
A+
0
BB@
"1"2"3"4
1
CCA
ε‘は平均 0 (めっちゃ雑な説明)
2014/03/202014 JOI春合宿 行列の基礎とその応用
3.統計学(線形回帰)
82
C B=XXX
-1
0
BB@
3511478485050
1
CCA =
0
BB@
1 1 11 1 01 2 31 10 20
1
CCA
0
@bBbRbW
1
A+
0
BB@
"1"2"3"4
1
CCA
を実際に計算してみると……
箱が 53円紅饅頭が 94円白饅頭が203円
2014/03/202014 JOI春合宿 行列の基礎とその応用
4.統計学(主成分分析)
83
Xi,Yi = 科目1,2(国語, 算数)の得点Zi=aXi+bYi
総合的な得点Ziを算出するために a,b を決める
国語
算数
Z の分散(ばらつき)を大きくすれば良さそうa,bを大きくすればいくらでも大きくできるので,
a2+b2=1と制限する
2014/03/202014 JOI春合宿 行列の基礎とその応用
4.統計学(主成分分析)
84
分散共分散行列Xの分散 X,Yの共分散
X,Yの共分散 Yの分散=A
Zの分散= になる (説明は省略)↓
レイリー商が最大,最大固有値に対する固有ベクトル
平均 µX =
PXi
NP(Xi � µX)
NP(Xi � µX)(Yi � µY )
N
分散
共分散
�a b
�A
✓ab
◆
2014/03/202014 JOI春合宿 行列の基礎とその応用
ばねの振動
と細かく区切る. 刻み幅
と近似すると
5.微分方程式 (差分法)
85
x
00(t) = �kx(t)
h = 0.01
x0 = x(0), x1 = x(0.01), · · · , xn = (0.01⇥ n), · · ·
x
00(t) =1
h
xn+1 � xn
h
� xn � xn�1
h
�
→一次方程式になった
1
h
2xn+1 +
k � 2
h
2
�xn +
1
h
2xn�1 = 0
2014/03/202014 JOI春合宿 行列の基礎とその応用86
... ... ...... ... ...
x0
x1
x2
...
...
xN
=b を解けばよい
1
h
2xn+1 +
k � 2
h
2
�xn +
1
h
2xn�1 = 0
を連立させて,
端は初期条件とか使ってうまくやる
5.微分方程式 (差分法)
2014/03/202014 JOI春合宿 行列の基礎とその応用
6. 3DCG
(x,y,z) の位置にある赤い点はカメラから見るとどの位置?
87
x
y
z
z’
y’
x’
2014/03/202014 JOI春合宿 行列の基礎とその応用
回転:
88
x
y
z
z’
y’
x’
0
@100
1
A ! rx
0
@010
1
A ! ry
0
@001
1
A ! rz
6. 3DCG
2014/03/202014 JOI春合宿 行列の基礎とその応用
平行移動
89
x
y
z
z’
y’
x’
0
@x
y
z
1
A !
0
@x
y
z
1
A+ rw
6. 3DCG
2014/03/202014 JOI春合宿 行列の基礎とその応用
回転 と平行移動 合わせて,
90
0
@x
y
z
1
A !
0
@x
y
z
1
A+ rw
0
@100
1
A ! rx
0
@010
1
A ! ry
0
@001
1
A ! rz
0
BB@
x
0
y
0
z
0
1
1
CCA =
0
BB@
x
y
z
1
1
CCArx ry rz rw
0 0 0 1
6. 3DCG
2014/03/202014 JOI春合宿 行列の基礎とその応用91
7.ロボットアーム
0
BB@
x
0
y
0
z
0
1
1
CCA = R1R2R3
0
BB@
L
001
1
CCA
関節の角度・アームの長さがわかっている.赤い点の位置は?
2014/03/202014 JOI春合宿 行列の基礎とその応用92
7.ロボットアーム
(L,0,0)
(x’,y’,z’)
0
BB@
x
0
y
0
z
0
1
1
CCA =
0
BB@
L
001
1
CCA
2014/03/202014 JOI春合宿 行列の基礎とその応用93
7.ロボットアーム
R3
(L,0,0)(x’,y’,z’)
0
BB@
x
0
y
0
z
0
1
1
CCA = R3
0
BB@
L
001
1
CCA
2014/03/202014 JOI春合宿 行列の基礎とその応用94
7.ロボットアーム
R2
R3
(L,0,0)
(x’,y’,z’)
0
BB@
x
0
y
0
z
0
1
1
CCA = R2R3
0
BB@
L
001
1
CCA
2014/03/202014 JOI春合宿 行列の基礎とその応用95
7.ロボットアーム
R2
R3
(L,0,0)
(x’,y’,z’)0
BB@
x
0
y
0
z
0
1
1
CCA = R1R2R3
0
BB@
L
001
1
CCAR1
2014/03/202014 JOI春合宿 行列の基礎とその応用
今日紹介したもの
・フィボナッチ数 (固有値を使って一般項)
・PageRank (グラフを行列に,固有ベクトルが重要度)
・線形回帰 (変数の推定をAx=bに帰着)
・主成分分析 (分散が大の方向=固有ベクトル)
・差分法 (微分方程式を Ax=b に帰着)
・3DCG (座標のとりかえ)
・ロボットアーム (座標のとりかえを繰り返す)96
2014/03/202014 JOI春合宿 行列の基礎とその応用
おまけ(数値計算に関連することとかアルゴリズムに関連することとか)
97
2014/03/202014 JOI春合宿 行列の基礎とその応用
さっきの
98
0
@1 0 00 1 00 �1 1
1
A
0
@�1 1 10 1 �10 1 3
1
A
0
@x
y
z
1
A =
0
@1 0 00 1 00 �1 1
1
A
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
0
@�1 1 10 1 �10 0 4
1
A
0
@x
y
z
1
A =
0
@1 0 00 1 00 �1 1
1
A
0
@03�1
1
A
0
@�1 1 10 1 �10 0 4
1
A
0
@x
y
z
1
A =
0
@1 0 00 1 00 �1 1
1
A
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
0
@�1 1 10 1 �10 0 4
1
A
0
@x
y
z
1
A =
0
@03�4
1
A
0
@�1 1 11 0 �22 �1 1
1
A
0
@x
y
z
1
A =
0
@03�1
1
A
0
@�1 1 10 1 �10 1 3
1
A
0
@x
y
z
1
A =
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
0
@1 0 01 1 02 0 1
1
A
0
@�1 1 11 0 �22 �1 1
1
A
0
@x
y
z
1
A =
0
@1 0 01 1 02 0 1
1
A
0
@03�1
1
A
O(N3)
2014/03/202014 JOI春合宿 行列の基礎とその応用
前の練習問題
99
0
@1 0 00 1 00 �1 1
1
A
0
@1 0 01 1 02 0 1
1
Aの逆行列は?
A1 A2
0
@1 0 00 1 00 1 1
1
A
0
@1 0 0�1 1 0�2 0 1
1
A
A1�1 A2
�1
2014/03/202014 JOI春合宿 行列の基礎とその応用
前の練習問題
100
(A1A2)�1 = A2
�1A1�1
A2�1A1
�1A1A2 = I より,
0
@1 0 00 1 00 1 1
1
A
0
@1 0 0�1 1 0�2 0 1
1
A=0
@1 0 0�1 1 0�2 1 1
1
A=
0
@1 0 00 1 00 1 1
1
A
0
@1 0 0�1 1 0�2 0 1
1
AA1�1 A2
�1= =
2014/03/202014 JOI春合宿 行列の基礎とその応用
前の練習問題
101
0
@1 0 00 1 00 �1 1
1
A
0
@1 0 01 1 02 0 1
1
Aの逆行列は?
0
@1 0 0�1 1 0�2 1 1
1
A
一般に, (?行)×C+(?行) をしたときに対応する場所に -C を書き込むと A1A2...AN の逆行列が求まる
→
2014/03/202014 JOI春合宿 行列の基礎とその応用
LU分解
102
L U x=b
U x=c
Ax = b
Ux = A1A2 · · ·ANb
(A1A2 · · ·AN )�1Ux = b
x=(Answer)
後退代入
O(N2)後退代入
O(N2)
2014/03/202014 JOI春合宿 行列の基礎とその応用
LU分解
103
L U x=b
U x=c
Ax = b
Ux = A1A2 · · ·ANb
(A1A2 · · ·AN )�1Ux = b
L,U だけ前もって計算しておけば,b が変わってもO(N2)で解ける
L,U の計算はO(N3)
x=(Answer)
後退代入
O(N2)後退代入
O(N2)
2014/03/202014 JOI春合宿 行列の基礎とその応用104
A
n
0
BB@
a0
b0
c0
d0
1
CCA = A
n(c1v1 + c2v2 + x3v3 + x4v4)
= (1nc1v1 + �2nc2v2 + �3
nx3v3 + �4
nx4v4)
! c1v1
nを大きくすると0に近づく
v1 =
0
BB@
20.66721
1
CCA のスカラー倍に近づく→aとcが重要そう
a
b
c
d
べき乗法
2014/03/202014 JOI春合宿 行列の基礎とその応用105
べき乗法
A
nx = A
n(�1c1x1 + �2c2x2 + �nc3x3)
= �
n1 c1x1 + �
n2 c2x2 + �
nnc3x3
! �
n1 c1x1 + �
n2 c2x2 + �
nnc3x3
適当な x から初めて,・x ← Ax・x の長さが 1 になるように x ← cx とする (値が大きくなり過ぎないように)
を繰り返すと,x は最大固有値の固有ベクトルに近付く
2014/03/202014 JOI春合宿 行列の基礎とその応用
ピボッティング
を4桁目で丸めながら計算する (正解は(-1,1))
106
✓�0.001 6
3 5
◆x =
✓6.0012
◆
✓�0.001 6
0 6⇥ 3000 + 5
◆x =
✓6.001
6.001⇥ 3000 + 2
◆
(1行目)×3000+(2行目)
2014/03/202014 JOI春合宿 行列の基礎とその応用
ピボッティング
を4桁目で丸めながら計算する (正解は(-1,1))
107
✓�0.001 6
3 5
◆x =
✓6.0012
◆
6×3000=18000→1.8×104
6.001×3000=18003→1.8×104
✓�0.001 6
0 1.800⇥ 104 + 5
◆x =
✓6.001
1.800⇥ 104 + 2
◆
2014/03/202014 JOI春合宿 行列の基礎とその応用
ピボッティング
を4桁目で丸めながら計算する (正解は(-1,1))
108
✓�0.001 6
3 5
◆x =
✓6.0012
◆
1.8×104+5=18005→1.801×104
1.8×104+2=18002→1.800×104
✓�0.001 6
0 1.801⇥ 104
◆x =
✓6.001
1.800⇥ 104
◆
2014/03/202014 JOI春合宿 行列の基礎とその応用
ピボッティング
を4桁目で丸めながら計算する (正解は(-1,1))
109
✓�0.001 6
3 5
◆x =
✓6.0012
◆
✓�0.001 6
0 1.801⇥ 104
◆x =
✓6.001
1.800⇥ 104
◆
x2 = 1.800/1.801 = 0.9994
x1 =6.001� 6⇥ 0.999
�0.001=
6.001� 5.994
�0.001=
0.007
�0.001= �7
2014/03/202014 JOI春合宿 行列の基礎とその応用
ピボッティング
どうしてこうなった
→ ピボット ((1,1)成分) が小さすぎた
→ 前進消去する前に,ピボットがその列の中で最大になるように行を交換する(行交換しても,解は変化しない)
110
2014/03/202014 JOI春合宿 行列の基礎とその応用
ダメなものはダメ
(bの長さ) / (xの長さ) = (Aを掛けると長さ何倍?) = p
(eの長さ) / (rの長さ) = (Aを掛けると長さ何倍?) = q
111
|r||x|
|e||b|
A(x+ r) = (b+ e), Ax = b, Ar = e
p < λmax, q > λmin → p / q < λmax / λmin
条件数 κ
は の何倍(誤差の増幅度)?→ p / q
2014/03/202014 JOI春合宿 行列の基礎とその応用
参考書籍
112
・「線形代数」がタイトルに入っている本は書店に大量にある(「単位が取れる!!!」みたいな物からガチ勢向けの抽象的な物まで)
・『線形代数とその応用』 産業図書 G. ストラング・『線形計算の数理』 岩波数学叢書 杉原 正顯, 室田 一雄