112
2014/03/20 山下 洋史 @utatakiyoshi 行列の基礎とその応用

2014 JOI春合宿 行列の基礎とその応用

Embed Size (px)

DESCRIPTION

2014 JOI春合宿 行列の基礎とその応用

Citation preview

Page 1: 2014 JOI春合宿 行列の基礎とその応用

2014/03/20山下 洋史@utatakiyoshi

行列の基礎とその応用

Page 2: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

はじめに

・今日は「行列」の話をします

・2.5時間 しかないのでめっちゃ飛ばします (最初の方はゆっくり?)

・数学的にはテキトーですが気分だけでも分かれば……

・それでも分からなくなったら適当に反応をください

(質問とかジェスチャーとか)       

2

Page 3: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

連立一次方程式

3

Page 4: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

連立一次方程式の例(1)

4

果物屋は

桃を1個200円,柿を1個100円

で売っている.

JOI君は1600円で桃と柿を合計10個買った.

JOI君はそれぞれいくつずつ買った?

Page 5: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

連立一次方程式の例(1)

果物屋は桃を1個200円,柿を1個100円で売っている.

JOI君は桃と柿を合わせて10個買うと1600円であった.

JOI君はそれぞれいくつずつ買った?

5

+200x +100y =1600

+x +y =10

桃: x 個 柿: y 個 とすると,

Page 6: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

連立一次方程式の例(2)

6

直線 x+y=2 と 直線 2x-y=2 の交点は?

Page 7: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

連立一次方程式の例(2)

7

直線 x+y=2 と 直線 2x-y=2 の交点は?

+x +y =2

+2x -y =2

Page 8: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

連立一次方程式

←連立一次方程式

8

+x +y =2

+2x -y =2

+200x +100y =1600

+x +y =10

Page 9: 2014 JOI春合宿 行列の基礎とその応用

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)

Page 10: 2014 JOI春合宿 行列の基礎とその応用

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

Page 11: 2014 JOI春合宿 行列の基礎とその応用

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

前進消去 後退代入

Page 12: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

N個の場合

12

……

……

前進消去

後退代入

こうできないときもあります(詳しくは後述 or 省略)

Page 13: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

計算量について

前進消去

・(?列)×?+(?列) の計算 →O(N)

・1ステップあたりこれをN回

・これをNステップ

・→O(N3)

13

後退代入

・1つの変数について解く→O(N)

・これをN回

・→O(N2)

Page 14: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

ベクトルと行列,行列の積

14

Page 15: 2014 JOI春合宿 行列の基礎とその応用

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(←スカラー倍と呼ぶ)

列ベクトルと呼ぶほうが多いかもしれない

Page 16: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

ベクトルの図形的なイメージ

16

✓21

✓�24

✓�24

◆+

✓21

◆=

✓50

2

✓21

◆=

✓42

和→矢印をつなげる

c倍→長さをc倍

Page 17: 2014 JOI春合宿 行列の基礎とその応用

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

Page 18: 2014 JOI春合宿 行列の基礎とその応用

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

Page 19: 2014 JOI春合宿 行列の基礎とその応用

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

が連立一次方程式になるように行列と縦ベクトルの積を定めよう

Page 20: 2014 JOI春合宿 行列の基礎とその応用

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つ前のスライド

Page 21: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

行列と縦ベクトルの積

21

一般に,

… =

0

BBBBB@

abc...z

1

CCCCCAa +b +c +z…

→行列に含まれる縦ベクトルに係数をかけて足しあわせたもの

Page 22: 2014 JOI春合宿 行列の基礎とその応用

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

Page 23: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

どうやって?

23

Page 24: 2014 JOI春合宿 行列の基礎とその応用

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…

Page 25: 2014 JOI春合宿 行列の基礎とその応用

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)=?

Page 26: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用26

… =

0

BBBBB@

100...0

1

CCCCCA

初めの要素が 1 で他が全部 0 の縦ベクトルをAにかけてみるa=1, b=c=...=z=0

A(1,0,...,0)=?

Page 27: 2014 JOI春合宿 行列の基礎とその応用

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)=?

Page 28: 2014 JOI春合宿 行列の基礎とその応用

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, · · ·

Page 29: 2014 JOI春合宿 行列の基礎とその応用

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となるように行列同士の積を定めよう

Page 30: 2014 JOI春合宿 行列の基礎とその応用

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

Page 31: 2014 JOI春合宿 行列の基礎とその応用

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行目=

Page 32: 2014 JOI春合宿 行列の基礎とその応用

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 行目の内積

Page 33: 2014 JOI春合宿 行列の基礎とその応用

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)

Page 34: 2014 JOI春合宿 行列の基礎とその応用

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

で表そう

横ベクトル: 行列や縦ベクトルと同じように和,スカラー倍ができる

Page 35: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

行列と横ベクトルの積

35

…�a b c · · · z

= a

+z

+b …→行列に含まれる横ベクトルに係数をかけて足しあわせたもの

Page 36: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

(1,0,...,0)A=?

36

縦ベクトルと同様に,横ベクトルも考える

…�1 0 0 · · · 0

=…

1+0

+0

Page 37: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

(1,0,...,0)A=?

37

縦ベクトルと同様に,横ベクトルも考える

…�1 0 0 · · · 0

=

Page 38: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

(1,0,...,0)A=?

38

これらを縦に並べるとAが分かる

…�1 0 0 · · · 0

…�0 1 0 · · · 0

…�0 0 0 · · · 1

=

=

=

……

Page 39: 2014 JOI春合宿 行列の基礎とその応用

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=

Page 40: 2014 JOI春合宿 行列の基礎とその応用

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列目=

行列の積ふたたび

Page 41: 2014 JOI春合宿 行列の基礎とその応用

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 行目の内積

行列の積ふたたび

Page 42: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

行列の積まとめ

42

A …AB= A A A

B B

B

…AB=

の 2 通りで定義したが,どちらも

Ai1B1j + · · ·+AinBnj

が i 行目 j 列目の成分になる.→どちらでもOK

Page 43: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

連立一次方程式の話にもどりまして

43

Page 44: 2014 JOI春合宿 行列の基礎とその応用

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を左からかける

Page 45: 2014 JOI春合宿 行列の基礎とその応用

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 を左からかければよい

Page 46: 2014 JOI春合宿 行列の基礎とその応用

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右辺を後から変形したのは伏線…

Page 47: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

ちょい足し

47

Page 48: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

線形性

A(x+y)=Ax+AyA(cx)=cAx行列同士の掛け算も,行列×ベクトルを並べたものにすぎないので同じ線形性が成り立つ

48

←線形性

Page 49: 2014 JOI春合宿 行列の基礎とその応用

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

Page 50: 2014 JOI春合宿 行列の基礎とその応用

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

=? =?

の逆行列は?

ひまつぶし用練習問題

Page 51: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

固有値

51

Page 52: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

✓1 21 0

◆✓1�1

✓1 21 0

◆✓21

◆=?

=?

52

練習問題のこたえ

Page 53: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

✓1 21 0

◆✓1�1

◆=

✓�11

✓1 21 0

◆✓21

◆=

✓42

53

練習問題のこたえ

Page 54: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

✓1 21 0

◆✓1�1

◆=

✓�11

◆= (�1)

✓1�1

✓1 21 0

◆✓21

◆=

✓42

◆= 2

✓21

54

練習問題のこたえ

→掛けたベクトルのスカラー倍になっている

Page 55: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

固有値・Ax = λx となる x を A の固有ベクトルと呼ぶ.

・λ を A の固有値と呼ぶ.

・固有値,固有ベクトルは複数ある

・1つの固有ベクトルに対して1つ固有値が対応する

55

は✓1 21 0

◆✓1�1

◆✓21

の固有ベクトル固有値は -1, 2

同じ固有値をもつ固有ベクトルがあると面倒なので固有値はすべて相異なるとする

c倍しても固有ベクトルなので,同じ方向のものは区別しない

Page 56: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

固有ベクトルのイメージ

56

x1

x2

λ1=2λ2=1/2

Page 57: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

固有ベクトルのイメージ

57

x1

x2

Aをかける

λ1=2λ2=1/2

Page 58: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

固有ベクトルのイメージ

58

x1

x2

λ1=2λ2=1/2

Page 59: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

固有ベクトルのイメージ

59

x1

x2

λ1=2λ2=1/2

Aをかける

Page 60: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

固有ベクトルのイメージ

60

x1

x2

λ1=2λ2=1/2

Aをかける

固有値最大の固有ベクトル→Aをかけた時の長さの倍率が最大

Page 61: 2014 JOI春合宿 行列の基礎とその応用

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を固有ベクトルの和に書く

Page 62: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

二次形式

62

Page 63: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

転置・内積

行列の転置 : と を入れ替えたもの

63

AjiAijAT

x

Ty内積:

内積=0 であることを直交しているという

AA

x y

Page 64: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

内積のイメージ

64

✓21

✓�24

��2 4

�✓21

◆= �4 + 4 = 0

直角に交わる→内積 0

�2 1

�✓21

◆= 22 + 12 = 5

自分との内積→長さの2乗

Page 65: 2014 JOI春合宿 行列の基礎とその応用

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

Page 66: 2014 JOI春合宿 行列の基礎とその応用

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 はどんなヤツ?

Page 67: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

二次形式

固有値が全て正なら, = 1 は楕円の方程式になる

     : レイリー商

( = 同じ方向で長さ 1 のベクトルの二次形式)

レイリー商最小の x = 最小固有値に対する固有ベクトル

楕円の長軸に対応

最大-短軸 も同様

67

x

TAx

x

TAx

x

Tx

Page 68: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

ここまでのまとめ

68

・ 行列で連立一次方程式を表せる

・行列×縦ベクトルは 行列の中の縦ベクトルに係数を掛けて足しあわせたもの (横も同様)

・A×Bの (i, j) 成分はAのi行とBのj列を掛ける

・Ax=λx → 固有ベクトル,固有値

・xTAx : 二次形式

Page 69: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

行列のいろんな使い道

69

脈絡なく羅列します,ごめんね

Page 70: 2014 JOI春合宿 行列の基礎とその応用

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

Page 71: 2014 JOI春合宿 行列の基礎とその応用

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.フィボナッチ数

Page 72: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

2.PageRank

72

Webページ間のリンクが次のグラフのように張られている

a

b

c

d

Page 73: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

a

b

c

d

73

ページの上に人がいて,毎回ランダムなリンクを選んで移動する

どのページに居る確率が高いか?確率の高いページが重要っぽい!

2.PageRank

Page 74: 2014 JOI春合宿 行列の基礎とその応用

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

Page 75: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用75

今回のAの固有値は…

電卓(wolphram alpha.com)に聞いてみる

2.PageRank

Page 76: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用76

←絶対値 が 1未満

Eigenvalue: 固有値

Eigenvector: 固有ベクトル

2.PageRank

Page 77: 2014 JOI春合宿 行列の基礎とその応用

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

Page 78: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

3.統計学(線形回帰)

紅白饅頭セットの値段 Ci

=箱の価値 bB

+紅饅頭の価値 bR ×個数 Ri

+白饅頭の価値 bW ×個数 Wi

+誤差 εi (ランダム,平均0)

78

Ci = bB + bRRi + bWWi + "i

Page 79: 2014 JOI春合宿 行列の基礎とその応用

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.統計学(線形回帰)

Page 80: 2014 JOI春合宿 行列の基礎とその応用

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

Page 81: 2014 JOI春合宿 行列の基礎とその応用

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 (めっちゃ雑な説明)

Page 82: 2014 JOI春合宿 行列の基礎とその応用

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円

Page 83: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

4.統計学(主成分分析)

83

Xi,Yi = 科目1,2(国語, 算数)の得点Zi=aXi+bYi

総合的な得点Ziを算出するために a,b を決める

国語

算数

Z の分散(ばらつき)を大きくすれば良さそうa,bを大きくすればいくらでも大きくできるので,

a2+b2=1と制限する

Page 84: 2014 JOI春合宿 行列の基礎とその応用

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

Page 85: 2014 JOI春合宿 行列の基礎とその応用

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

Page 86: 2014 JOI春合宿 行列の基礎とその応用

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.微分方程式 (差分法)

Page 87: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

6. 3DCG

(x,y,z) の位置にある赤い点はカメラから見るとどの位置?

87

x

y

z

z’

y’

x’

Page 88: 2014 JOI春合宿 行列の基礎とその応用

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

Page 89: 2014 JOI春合宿 行列の基礎とその応用

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

Page 90: 2014 JOI春合宿 行列の基礎とその応用

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

Page 91: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用91

7.ロボットアーム

0

BB@

x

0

y

0

z

0

1

1

CCA = R1R2R3

0

BB@

L

001

1

CCA

関節の角度・アームの長さがわかっている.赤い点の位置は?

Page 92: 2014 JOI春合宿 行列の基礎とその応用

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

Page 93: 2014 JOI春合宿 行列の基礎とその応用

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

Page 94: 2014 JOI春合宿 行列の基礎とその応用

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

Page 95: 2014 JOI春合宿 行列の基礎とその応用

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

Page 96: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

今日紹介したもの

・フィボナッチ数 (固有値を使って一般項)

・PageRank (グラフを行列に,固有ベクトルが重要度)

・線形回帰 (変数の推定をAx=bに帰着)

・主成分分析 (分散が大の方向=固有ベクトル)

・差分法 (微分方程式を Ax=b に帰着)

・3DCG (座標のとりかえ)

・ロボットアーム (座標のとりかえを繰り返す)96

Page 97: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

おまけ(数値計算に関連することとかアルゴリズムに関連することとか)

97

Page 98: 2014 JOI春合宿 行列の基礎とその応用

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)

Page 99: 2014 JOI春合宿 行列の基礎とその応用

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

Page 100: 2014 JOI春合宿 行列の基礎とその応用

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= =

Page 101: 2014 JOI春合宿 行列の基礎とその応用

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 の逆行列が求まる

Page 102: 2014 JOI春合宿 行列の基礎とその応用

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)

Page 103: 2014 JOI春合宿 行列の基礎とその応用

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)

Page 104: 2014 JOI春合宿 行列の基礎とその応用

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

べき乗法

Page 105: 2014 JOI春合宿 行列の基礎とその応用

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 は最大固有値の固有ベクトルに近付く

Page 106: 2014 JOI春合宿 行列の基礎とその応用

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行目)

Page 107: 2014 JOI春合宿 行列の基礎とその応用

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

Page 108: 2014 JOI春合宿 行列の基礎とその応用

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

Page 109: 2014 JOI春合宿 行列の基礎とその応用

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

Page 110: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

ピボッティング

どうしてこうなった

→ ピボット ((1,1)成分) が小さすぎた

→ 前進消去する前に,ピボットがその列の中で最大になるように行を交換する(行交換しても,解は変化しない)

110

Page 111: 2014 JOI春合宿 行列の基礎とその応用

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

Page 112: 2014 JOI春合宿 行列の基礎とその応用

2014/03/202014 JOI春合宿 行列の基礎とその応用

参考書籍

112

・「線形代数」がタイトルに入っている本は書店に大量にある(「単位が取れる!!!」みたいな物からガチ勢向けの抽象的な物まで)

・『線形代数とその応用』  産業図書 G. ストラング・『線形計算の数理』  岩波数学叢書 杉原 正顯, 室田 一雄