基底変換、固有値・固有ベクトル、そしてその先

50
プログラマのための線形代数 “再” 入門 3 ~基底変換、固有値・固有ベクトル、そしてその先~ 2015/05/22 第3回プログラマのための数学勉強会 @taketo1024

Upload: taketo-sano

Post on 06-Aug-2015

3.386 views

Category:

Education


4 download

TRANSCRIPT

(復習) 線形変換は空間の平行と比率を保つ変換

(復習) 線形変換の例

f

(復習) 線形変換の例

f

(復習) 線形変換の例

f

(復習) 線形変換の例

f

もっと複雑な変換も考えてみよう

(例1) 直線 y = x/2 への正射影

愚直に計算すると…

x軸への正射影はあんな簡単だったんだから これももっと簡単にできるはず。

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

(基底の取り方は色々あるが、その個数は空間に対して一意で、それを「次元」という)

これまでは「標準基底」:

を使って、

と表してきた。

~e1 =

✓10

xy

, ~e2 =

✓01

xy

~v = x~e1 + y ~e2 =

✓x

y

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

が成り立っていることが分かる。

逆に、

これで座標変換のルールが完全に分かった!

✓X

Y

◆=

✓2 �11 2

◆�1 ✓x

y

=1

5

✓2 1�1 2

◆✓x

y

XY 座標系での f の行列表示は B =

✓1 00 0

◆で、

より、xy 座標系での f の行列表示は、A = UBU�1

実際に計算すると、

前に求めたのと同じ結果になる!

図式にすると分かりやすい:

考えやすい座標に移して変換を施し、元の座標に戻しただけ。

「良い基底」を取ると変換がグッと簡単になる!

(例2) 直線 y = x/2 に関する反転

(例3) y = x/2 方向に 2倍、y = 2x 方向に 3倍する変換

一般に、

二つの基底 {~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

のとき、

旧座標 新座標基底変換行列

基底変換の行列を U , それぞれの基底での f の行列表示を A, B とすると、

A = UBU�1 となる!

「うまい基底」が取れると、線形変換は簡単に表現できる。

→ どんな変換に対してもそんな基底は取れるだろうか?

→ 固有値・固有ベクトル問題へ!

(例) で表される線形変換 f を考えるA =

✓5 �62 �2

f をもっと分かりやすく表現できる「うまい基底」はあるだろうか?

互いに平行でない ~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(~u) = a~u であるならば、

と、それぞれ方向が1通りに定まったので…

f は 方向を変えず、 方向を2倍する変換だった!✓

32

◆ ✓21

この方向に基底を取れば、行列は B =

✓1 00 2

◆となる。

f によって方向の変わらないベクトルを固有ベクトルといい、 その方向における拡大の倍率を固有値という。

固有ベクトルを基底に取ることができれば、変換はとても簡単に表せる。 (いつも取れるとは限らない)

まとめ

• 線形変換に対して基底を上手く取れば、行列は簡単に表現できる。

• 特に固有ベクトルで基底が取れれば、行列は偏倍変換の形になる。

• 一般の基底に対しては、基底変換でその行列を書き換えれば OK。

今日伝えたかったこと: この図式の素晴らしさ

難しい問題を視点を変えることで簡単に解く、数学の営みそのもの。

その先の話題

これまで「ベクトル」は、足し算とスカラー倍ができる矢印のことだった。

これからは、足し算 と スカラー倍 ができるものを全て「ベクトル」と呼ぶ! (公理化 = 数学的開き直り)

実は矢印以外の「ベクトル」は既にたくさん知っている:

• 実数、複素数 はそれ自体ベクトル

• (m, n) 型行列は、mn 次元のベクトル

• n 次多項式は n+1 次元のベクトル

• 数列もベクトル(一般に無限次元)

• 関数もベクトル(一般に無限次元)

• …

「線形性」により満たされる性質を、これらが全て満たすことになる! (オブジェクト指向的には抽象クラスを切り出して共通化したような感じ)

総まとめ

• 線形代数では「線形性」を持つ空間や変換を扱う。

• ベクトルは数の組、変換は行列として具体的に表現できる。

• 変数の数が多くても「線形」であればまとめて簡単に扱える!

「線形感覚」が身につくと、 個別に理解していたことの多くが統一的に見られるようになる。