Math World Lab

行列の基本とアフィン変換

2×2行列で平面の空間を伸縮・回転・せん断させる幾何学

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
行列の基本とアフィン変換の本質的な定義と直感的ビジュアルをシミュレーターで体験できる。
2
公式や証明の背景にある数学的意味と、厳密な導出ステップを解説。
3
実社会における工学応用(CSS / WebGL における 2D アフィン変換マトリクス)のTypeScript実装コードを収録。

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

膨大な数の未知数が絡み合う連立方程式を、1つの塊(ブロック)としてまとめて扱い、一括で解くために考案された。

身につく武器・思考力

数万個の座標やデータ点を、たった1回の行列の掛け算で「回転・拡大・移動」させる並列計算の思考体系が身につく。

実社会・ITでの活躍現場

  • •PhotoshopやInstagramの画像フィルター、アフィン変換(回転・歪み補正)
  • •GPU(グラフィックスプロセッサ)による毎秒数百億回の行列並列演算
  • •ディープニューラルネットワークにおける入力と重みの大規模積和演算
  • •経済学における産業連関表(国全体の産業間の資材の流れ分析)

Layer 1 — 直感・シミュレーター

行列の各成分 a, b, c, d のスライダーを動かしてみよう。正方形グリッドがどのように伸び縮みし、傾き(せん断)、回転するかをリアルタイムに観察できる。行列式の値 det(A) = ad - bc が、変換後の正方形の面積拡大率に対応していることも確認しよう。

a (xの伸縮) = 1.5
b (xのせん断) = 0.5
c (yのせん断) = 0.0
d (yの伸縮) = 1.2
変換行列 A
A=(1.50.50.01.2)A = \begin{pmatrix} 1.5 & 0.5 \\ 0.0 & 1.2 \end{pmatrix}
行列式 det(A) = 面積拡大率
det⁡(A)=ad−bc=1.80\det(A) = ad - bc = 1.80
正方形の面積が 1.80 倍に変形

↑ 青い矢印は元の (1,0)(1, 0) の行き先、赤い矢印は (0,1)(0, 1) の行き先です。行列とは「2本の基本矢印をどこへ飛ばすか」を決めるルールであり、その結果として空間全体が伸縮・回転・せん断します。

Layer 2 — 定義・受験・証明

定義

2次元のベクトル x=(xy)\mathbf{x} = \begin{pmatrix} x \\ y \end{pmatrix} に対し、2行2列の正方行列 A=(abcd)A = \begin{pmatrix} a & b \\ c & d \end{pmatrix} を左から掛けることで、新しいベクトル x′=Ax=(ax+bycx+dy)\mathbf{x}' = A\mathbf{x} = \begin{pmatrix} ax + by \\ cx + dy \end{pmatrix} を得る。これは基底ベクトル e1=(10),e2=(01)\mathbf{e}_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \mathbf{e}_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix} をそれぞれ (ac),(bd)\begin{pmatrix} a \\ c \end{pmatrix}, \begin{pmatrix} b \\ d \end{pmatrix} へ写す線形写像である。

公式・数理モデル

(x′y′)=(abcd)(xy)=(ax+bycx+dy)\begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} ax + by \\ cx + dy \end{pmatrix}

証明・導出

行列式の図形的意味:単位正方形(面積1)の4頂点 (0,0),(1,0),(1,1),(0,1)(0,0), (1,0), (1,1), (0,1) を行列 AA で変換すると、(0,0),(a,c),(a+b,c+d),(b,d)(0,0), (a,c), (a+b, c+d), (b,d) を頂点とする平行四辺形に移る。

この平行四辺形の面積は外積(クロス積)の大きさとして計算され、

Area=∣ad−bc∣=∣det⁡(A)∣\text{Area} = |a d - b c| = |\det(A)|

となる。行列式の値 det⁡(A)\det(A) は空間の面積拡大率を表し、符号が負のときは空間が裏返し(鏡映反転)になっていることを意味する。

押さえておきたいポイント

  • 行列の掛け算は、空間の幾何学的な変形(拡大縮小・回転・せん断)を意味する
  • 第1列 (a,c)T(a, c)^T は xx 軸の単位ベクトルの行き先、第2列 (b,d)T(b, d)^T は yy 軸の行き先を表す
  • 行列式 det⁡(A)=ad−bc\det(A) = ad - bc は図形の面積比率を表す
  • det⁡(A)=0\det(A) = 0 のとき、平面は1本の直線または点につぶれて元に戻せなくなる(逆行列が存在しない)
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

CSS / WebGL における 2D アフィン変換マトリクス

ブラウザの CSS transform (`matrix(a, b, c, d, tx, ty)`) や HTML5 Canvas の `ctx.transform(a, b, c, d, e, f)` は、まさにこの行列演算をそのまま利用して画面上の要素を回転・拡大・せん断させている。

1type Point2D = { x: number; y: number };
2
3// 2x2 行列による点ベクトルの変換
4function applyMatrix(matrix: [number, number, number, number], p: Point2D): Point2D {
5 const [a, b, c, d] = matrix;
6 return {
7 x: a * p.x + b * p.y,
8 y: c * p.x + d * p.y,
9 };
10}
11
12// 例: 45度回転行列 [cosθ, -sinθ, sinθ, cosθ]
13const theta = (45 * Math.PI) / 180;
14const rotMatrix: [number, number, number, number] = [
15 Math.cos(theta), -Math.sin(theta),
16 Math.sin(theta), Math.cos(theta),
17];
18
19const original: Point2D = { x: 1, y: 0 };
20const rotated = applyMatrix(rotMatrix, original);
21console.log(rotated); // { x: 0.7071, y: 0.7071 }

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

関連度高高校数学

行列式(Determinant)と図形の面積・拡大率

「行列式とは何か?」単位正方形の面積拡大率と、符号がマイナスのときの鏡像反転

関連度高大学数学

線形変換と基底

行列が空間をどう歪めるか──基底ベクトルの行き先がすべてを決める

関連度高高校数学

3D空間ベクトルと外積(クロス積)

3次元空間におけるポリゴンの表裏・法線ベクトルと3DCGライティングの数理

同じレベルで次に挑戦したいトピック

同レベル推薦高校数学

ベクトルの内積

2本の矢印の「向きの近さ」を1つの数値にする

同レベル推薦高校数学

三角関数(単位円とサイン・コサイン)

回転する点のx座標・y座標が三角関数の正体

同レベル推薦高校数学

微分の基本(接線と変化率)

平均変化率の極限として現れる「その瞬間の傾き」

工学・実社会での応用先でつながるトピック

工学・実践連携小学校・算数

円の面積と円周率

半径を変えると、円周と面積はどう変わる?

工学・実践連携小学校・算数

三角形・多角形の面積

頂点を動かして、面積の公式が成り立つ理由を確かめよう

工学・実践連携小学校・算数

単位変換(長さ・面積・体積)

長さが2倍になると、面積・体積は何倍になる?

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。