■行列と1次変換携帯版

○ 写像,変換の定義
 集合Aの各要素を集合Bの要素に対応させる規則をAからBへの写像という.

 写像のうち特に元の集合と対応させる集合とが同一であるものを変換という.(ある集合Aから集合A自身への写像)

 ここでは,さらに限定して変換のうちで対応の規則が「定数項のない1次式」で表される1次変換を扱う.

 
右の例(5)で,1次変換はxy平面上の点の移動を表している.
右の例(6)で,1次変換は3次元空間での点の移動を表している.
(この教材のレベル)
 2010年現在,「1次変換」は高校の教科書にないので,高卒段階では1次変換のイメージが全くつかめないものとして記述




【 写像の例 】
(1) 実数Rから実数Rへの写像:[中学校で習う関数]
y=2x+1
(2) 2次元のベクトルR2から実数Rへの写像:[ベクトルの大きさ]
=(3 , 4) のとき ||= =5
(3) 3次元のベクトル2組R3×R3から実数Rへの写像:[3次元ベクトルの内積]
=(1, −1, 2) , =(2, 1, 0) のとき
·=1·2+(−1)·1+2·0=1
【 変換の例 】
(4) 2次元のベクトルR2から2次元のベクトルR2への写像:[平面上の点の移動 (x,y)(x’,y’)
x’=2x+3y+1
y’=x−y+3
【 1次変換の例 】
(5) 2次元のベクトルR2から2次元のベクトルR2への写像:[平面上の点の移動 (x,y)(x’,y’)
x’=2x+3y
y’=x−y
(6) 3次元のベクトルR3から3次元のベクトルR3への写像:[3次元空間内の点の移動 (x,y,z)(x’,y’,z’)
x’=x+3y−z
y’=2x−y+3z
z’=3x+4y+2z


○ 正方行列を用いた1次変換の表し方
2次元ベクトルの1次変換
 ←→ 
3次元ベクトルの1次変換
 ←→ 
※ 行列を用いて1次変換を表すとき,ベクトル(または点の座標)は列ベクトルとして表し,これに対して正方行列を左から掛けるものとする.
 ベクトル=(x, y) や点P(x, y) と書く.
※ 原点を始点としてベクトルを描けば[=位置ベクトルとして使えば]ベクトルの成分と終点の座標は一致するので,「ベクトル」と「点」は同じように扱える.

 は  を表す.


 は  を表す.

(解説)
 行列の等式は「対応する各成分がそれぞれ等しいこと」「対応する成分の数だけの連立方程式」と同じなので,1次変換の連立方程式は行列で表すことができる.
 行列の積の計算として,
 は  に等しいので
1次変換
は,行列を用いて
と書くことができる.

 行列の積の計算として,
 は  に等しいので
1次変換
は,行列を用いて
と書くことができる.
※ 行列を決めれば1次変換が決まるので「1次変換を表す行列」「1次変換の行列」というだけでなく,次の例のようにいうこともある.

(1) 行列によって点(1,2)はどんな点に移されるか.
(2) 行列によってベクトルはどんなベクトルに変換されるか.
(3) Excelでは長方形の範囲に入力された数値を行列と考えればよい.次のA1:D4の行列によってF1:F4のベクトルはどのようなベクトルに変換されるか.
  A B C D E F
1 1.0 0.2 0.3 -0.4   0.3
2 0.2 2.0 -0.1 0.3   -0.1
3 0.3 -0.1 3.0 0.7   0.2
4 -0.4 0.3 0.7 4.0   0.5
(解答)
(1)  だから点(−1,8)に移される.
(2)  だからベクトル(0,5,6)に変換される.
(3) Excelでは関数MMULT(範囲1,範囲2)で行列の積が計算できる.次の表では
・H1をポイントしておいて,=MMULT(A1:D4,F1:F4)とする.
これだけではH1に1つの成分が入るだけで結果の行列を表していないので,H1:H4を行列(配列)にするには
 H1:H4を選択・反転させておき,画面上の数式バーをポイントしておき Ctrl+Shift+Enterとする.
  A B C D E F G H
1 1.0 0.2 0.3 -0.4   0.3   0.14
2 0.2 2.0 -0.1 0.3   -0.1   -0.01
3 0.3 -0.1 3.0 0.7   0.2   1.05
4 -0.4 0.3 0.7 4.0   0.5   1.99
H1:H4が答となる.

○ 行列の各列ベクトルが表すもの
(1) 2次正方行列の場合
だから
1列目は基本ベクトルが移される点を示している.

だから
2列目は基本ベクトルが移される点を示している.
○ このとき,右図水色で示した格子はを2辺とする平行四辺形に移される.

◎ 一般に右図のに移される.


により

が成り立つから
元のxy座標における点に移される.


(2) 3次の場合
 行列の1列目は基本ベクトルが移される点(像)
 行列の2列目は基本ベクトルが移される点(像)
 行列の3列目は基本ベクトルが移される点(像)
を表している.  

○ (2次元)平面上での移動とそれに対応する行列の例
(1) x軸に関する対称移動
 ⇔ 
解説
(1)
 式から考えるとき
x’=x
y’=−y
x’=1x+0y
y’=0x−1y
 図から考えるとき
(1,0) → (1,0)
(0,1) → (0,−1)
だから
(2) y軸に関する対称移動
 ⇔ 
(2)
 式から考えるとき
x’=−x
y’=y
x’=−1x+0y
y’=0x+1y
 図から考えるとき
(1,0) → (−1,0)
(0,1) → (0,1)
だから
(3) 原点に関する対称移動
 ⇔ 
※ x軸に関する対称移動を行ってからy軸に関する対称移動を行うと原点に関する対称移動になる.
 このことは,行列の積から分かる.合成変換の行列を求めるには「後で」行う行列を「左から」掛ける.
(3)
 式から考えるとき
x’=−x
y’=−y
x’=−1x+0y
y’=0x−1y
 図から考えるとき
(1,0) → (−1,0)
(0,1) → (0,−1)
だから
(4) x軸方向にm倍,y軸方向にn倍だけ拡大(縮小)する移動
 ⇔ 
※ 対角行列では対角成分が各軸方向の縮尺比を表す.
※ m=n=kのとき(スカラー行列のとき)は相似図形に移る(kE相似変換という).さらに,m=n=1のときはどの点も動かない.(恒等変換Eになる.)
(4)
 式から考えるとき
x’=mx
y’=ny
x’=mx+0y
y’=0x+ny
 図から考えるとき
(1,0) → (m,0)
(0,1) → (0,n)
だから
(5) 原点のまわりに角Θだけ回転させる移動(回転移動)
 ⇔ 
※ 原点のまわりに角−Θだけ回転させる移動は上の式に−Θを代入すると得られる:
 ここで
sin(−Θ)=−sinΘ
cos(−Θ)=cosΘ
に注意すると
※ 「原点のまわりに角−Θだけ回転させる移動」は「原点のまわりに角Θだけ回転させる移動」の逆変換になっている.
 すなわち,
=E
(5)
 図から考えるとき


 左図の直角三角形において
x/r=cosΘ → x=cosΘ
y/r=sinΘ → y=sinΘ
 となることに注意すると
下の図で(1,0)(cosΘ,sinΘ)に移されることが分かる.
(0,1)の行先はx座標が負になることに注意すると(−sinΘ,cosΘ)
(1,0) → (cosΘ,sinΘ)
(0,1) → (−sinΘ,cosΘ)
だから


[重要]
(6) x軸となす角がΘである直線(y=x tanΘ)に関する対称移動
 ⇔ 
(6)
 式や図から直接求めるのは難しいので,次のように既知の変換の合成で考えるとよい.
i) 角−Θだけ回転させると対称軸がx軸に重なる
ii) x軸に関して対称に移動させる
iii) 角Θだけ回転させる.
 変換を合成するときは,「後から」行う変換を「左から」掛けることに注意すると,合成変換の行列は次のようになる

=
=
 ここで三角関数の2倍角公式により
cos2Θ=cos2Θ−sin2Θ
sin2Θ=2sinΘcosΘ
だから,求める合成変換の行列は
(7) 各点をx軸に投影した像(各点のx軸への射影)
 ⇔ 
(7)
 式から考えるとき
x’=x
y’=0
x’=1x+0y
y’=0x+0y
 図から考えるとき
(1,0) → (1,0)
(0,1) → (0,0)
だから
[重要]
(8) 各点をx軸となす角がΘである直線(y=x tanΘ)に投影した像(各点のy=x tanΘへの射影)
 ⇔ 
(8)
 式や図から直接求めるのは難しいので,次のように既知の変換の合成で考えるとよい.
i) 角−Θだけ回転させると対称軸がx軸に重なる
ii) x軸への射影を求める
iii) 角Θだけ回転させる.
 変換を合成するときは,「後から」行う変換を「左から」掛けることに注意すると,合成変換の行列は次のようになる

=
=


○ (3次元)空間での移動とそれに対応する行列の例
(1) x軸のまわりに角Θだけ回転させる移動

(2) y軸のまわりに角Θだけ回転させる移動

(3) z軸のまわりに角Θだけ回転させる移動

(1) x座標は変わらず(5)の結果を用いてy , z座標について回転を考えるとよい.
(2)(3)も同様




 z軸のまわりに角π/4(45°)だけ回転させる1次変換の行列は
問題
 3次元空間において点(1,2,3)をz軸のまわりに60°回転し,次にx軸のまわりに30°回転すると,どのような点に移されるか.(Excelを用いて小数第3位まで求めよ)





(参考)
・円周率の値 → =PI()
・sin30°の値 → 30°を孤度法で表すと π/6 だから,sin30°の値は =sin(PI()/6)
・cos30°の値 → 同様にして =cos(PI()/6)
・行列の積を求めるには =MMULT(行列1の範囲,行列2の範囲).
 ただし,これで表示されるのは積の行列の(1,1)成分だけなので,結果を表示したい範囲を反転させておいて数式バーをポイントしCtrl+Shift+Enterによって配列(行列)全体を表示する.
(解答)
Excel上で次の行列,ベクトルA , B , を入力しておく.
1.000 0.000 0.000
0.000 0.866 -0.500
0.000 0.500 0.866

0.500 -0.866 0.000
0.866 0.500 0.000
0.000 0.000 1.000

1.000
2.000
3.000

このときABが求めるものとなる.(x軸のまわりの回転ABの左から掛ける.)
-1.232
0.116
3.531

○===戻る