基底変換、固有値・固有ベクトル、そしてその先
TRANSCRIPT
プログラマのための線形代数 “再” 入門 3 ~基底変換、固有値・固有ベクトル、そしてその先~
2015/05/22 第3回プログラマのための数学勉強会
@taketo1024
y = x/2 方向に X軸、直交する方向に Y軸 を取り、 XY 座標系でのベクトルを
~v =
✓XY
◆
XY
と書けば、この座標系での f の表現行列は
B =
✓1 00 0
◆
と の関係がわかれば、元の xy 座標系における f の表現が分かる!✓
··
◆
XY
✓··
◆
xy
「座標系を定めること」=「基底を定めること」
「基底」とは座標の基準となるベクトルの組
~v = X ~u1 + Y ~u2 =
✓XY
◆
XY
(基底の取り方は色々あるが、その個数は空間に対して一意で、それを「次元」という)
y = x/2 方向と、それに直交する:
~u1 =
✓21
◆
xy
, ~u2 =
✓�12
◆
xy
を基底として、新たに XY 座標系をとる。
(~u1 = 2~e1 + ~e2~u2 = �~e1 + 2~e2
~v = x~e1 + y ~e2
= X ~u1 + Y ~u2
= X(2~e1 + ~e2) + Y (�~e1 + 2~e2)
= (2X � Y )~e1 + (X + 2Y )~e2
より、✓
x
y
◆
xy
=
✓X
Y
◆
XY
=
✓2X � Y
X + 2Y
◆
xy
=
✓2 �11 2
◆✓X
Y
◆
xy
~v =
✓x
y
◆
xy
=
✓X
Y
◆
XY
のとき、
✓x
y
◆=
✓2 �11 2
◆✓X
Y
◆
となっていることが分かった!特に、8>>>><
>>>>:
~u1 =
1
0
!
XY
=
2
1
!
xy
,
~u2 =
0
1
!
XY
=
�1
2
!
xy
が成り立っていることが分かる。
二つの基底 {~e1, ~e2} { ~u1, ~u2} があり、(~u1 = a1 ~e1 + a2 ~e2~u2 = b1 ~e1 + b2 ~e2
で、ベクトル が二つの基底で、
✓x
y
◆=
✓a1 b1
a2 b2
◆✓X
Y
◆
~v = x~e1 + y ~e2
= X ~u1 + Y ~u2
~v
のとき、
旧座標 新座標基底変換行列
互いに平行でない ~u1, ~u2 に対して、
(f( ~u1) = a ~u1
f( ~u2) = b ~u1
となっていれば、{ ~u1, ~u2} を基底として、
B =
✓a 00 b
◆
とできる。
~u =
✓x
y
◆f(~u) = a~u
,✓
5� a �62 �2� a
◆✓x
y
◆=
✓00
◆
✓x
y
◆6=
✓00
◆det
✓5� a �62 �2� a
◆= 0
が、 となっているとすると、
ならば、 が必要。
f(~u) =
✓5 �62 �2
◆✓x
y
◆= a
✓x
y
◆
= A� aI
f によって方向の変わらないベクトルを固有ベクトルといい、 その方向における拡大の倍率を固有値という。
固有ベクトルを基底に取ることができれば、変換はとても簡単に表せる。 (いつも取れるとは限らない)
まとめ
• 線形変換に対して基底を上手く取れば、行列は簡単に表現できる。
• 特に固有ベクトルで基底が取れれば、行列は偏倍変換の形になる。
• 一般の基底に対しては、基底変換でその行列を書き換えれば OK。
実は矢印以外の「ベクトル」は既にたくさん知っている:
• 実数、複素数 はそれ自体ベクトル
• (m, n) 型行列は、mn 次元のベクトル
• n 次多項式は n+1 次元のベクトル
• 数列もベクトル(一般に無限次元)
• 関数もベクトル(一般に無限次元)
• …
「線形性」により満たされる性質を、これらが全て満たすことになる! (オブジェクト指向的には抽象クラスを切り出して共通化したような感じ)
Thanks!
Twitter: @taketo1024Blog: http://taketo1024.hateblo.jp