Math World Lab

線形変換と基底

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

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
線形変換とは「原点を動かさず、直線を直線のまま保つ」写像であり、2次元では 2×2 行列 1つで完全に表現できる
2
変換の結果は、基底ベクトル e1=(1,0)\mathbf{e}_1=(1,0) と e2=(0,1)\mathbf{e}_2=(0,1) がそれぞれどこへ移るかだけで決まる。行列の列ベクトルがまさにその行き先である
3
3DCGのモデル変換行列(回転・拡大・せん断)やニューラルネットワークの重み行列は、いずれも「入力空間を出力空間へ線形に写す」という同じ数学的操作である

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

Purpose & Motivation

なぜ生まれたのか?

線形変換とは「原点を動かさず、直線を直線のまま保つ」写像であり、2次元では 2×2 行列 1つで完全に表現できる

身につく武器・思考力

変換の結果は、基底ベクトル $\mathbf{e}_1=(1,0)$ と $\mathbf{e}_2=(0,1)$ がそれぞれどこへ移るかだけで決まる。行列の列ベクトルがまさにその行き先である

実社会・ITでの活躍現場

  • •3DCGのモデル変換行列とニューラルネットワークの全結合層
  • •ITシステム・アルゴリズム実装における論理設計
  • •データ分析やシミュレーションにおける数理モデリング

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

行列 A=(abcd)A=\begin{pmatrix}a&b\\c&d\end{pmatrix} の4つの成分をスライダーで動かしてみよう。グリッド線と基底ベクトル(赤・青の矢印)がリアルタイムに変形し、単位正方形がどんな平行四辺形に潰れたり伸びたりするかが一目でわかる。ドラッグ可能な点を動かせば、変換前の位置と変換後の位置が同時に表示される。

行列 A=(abcd)A = \begin{pmatrix} a & b \\ c & d \end{pmatrix} の成分を動かす:
det⁡A=1.25\det A = 1.25 (面積は 1.25 倍。)
T(e1) = (1.00, -0.50)
T(e2) = (0.50, 1.00)
変換後の点 = (1.50, 0.50)

↑ 赤い矢印は e1=(1,0) の行き先、緑の矢印は e2=(0,1) の行き先(=行列の列ベクトル)。青い点をドラッグすると、対応する変換後の点(オレンジ)が連動して動く。グリッド線が平行四辺形に歪む様子から、線形変換が空間全体をどう写すかが分かる。

直感チェック!ミニクイズ

行列 A=(0−110)A = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix} による線形変換は、平面上の点に対してどのような操作か?

Layer 2 — 定義・受験・証明

定義

写像 T:R2→R2T: \mathbb{R}^2 \to \mathbb{R}^2 が「線形」であるとは、任意のベクトル u,v\mathbf{u}, \mathbf{v} とスカラー kk について次の2条件を満たすことをいう。

T(u+v)=T(u)+T(v),T(ku)=k T(u)T(\mathbf{u} + \mathbf{v}) = T(\mathbf{u}) + T(\mathbf{v}), \qquad T(k\mathbf{u}) = k\,T(\mathbf{u})

この性質から、線形変換は原点を固定し、直線を直線(または原点)に、平行な直線を平行な直線に写す。2次元における任意の線形変換は、基底 e1=(1,0), e2=(0,1)\mathbf{e}_1=(1,0),\ \mathbf{e}_2=(0,1) の行き先 T(e1),T(e2)T(\mathbf{e}_1), T(\mathbf{e}_2) を列に並べた行列 AA を用いて T(x)=AxT(\mathbf{x}) = A\mathbf{x} と一意に表現できる。

公式・数理モデル

T(x)=Ax=(abcd)(xy)=x(ac)+y(bd),det⁡A=ad−bcT(\mathbf{x}) = A\mathbf{x} = \begin{pmatrix} a & b \\ c & d \end{pmatrix}\begin{pmatrix} x \\ y \end{pmatrix} = x\begin{pmatrix} a \\ c \end{pmatrix} + y\begin{pmatrix} b \\ d \end{pmatrix}, \quad \det A = ad - bc

証明・導出

任意の行列表現の一意性の証明: 平面上の任意のベクトル x=(x,y)\mathbf{x}=(x,y) は基底を用いて x=x e1+y e2\mathbf{x} = x\,\mathbf{e}_1 + y\,\mathbf{e}_2 と一意に分解できる。 TT が線形であるという性質(加法性・斉次性)をそのまま適用すると、

T(x)=T(x e1+y e2)=x T(e1)+y T(e2)T(\mathbf{x}) = T(x\,\mathbf{e}_1 + y\,\mathbf{e}_2) = x\,T(\mathbf{e}_1) + y\,T(\mathbf{e}_2)

ここで T(e1)=(a,c)T(\mathbf{e}_1) = (a,c)、T(e2)=(b,d)T(\mathbf{e}_2) = (b,d) とおけば、

T(x)=x(a,c)+y(b,d)=(ax+by, cx+dy)=(abcd)(xy)T(\mathbf{x}) = x(a,c) + y(b,d) = (ax+by,\ cx+dy) = \begin{pmatrix} a & b \\ c & d \end{pmatrix}\begin{pmatrix} x \\ y \end{pmatrix}

つまり基底ベクトルの行き先を列に並べた行列 AA が、変換全体を完全に決定する。逆に、任意の 2×22\times 2 行列は上記の形で線形写像を定めるため、「線形変換 ⟺ 行列」の対応は一対一である。また、変換後の単位正方形(面積1)の面積は ∣det⁡A∣|\det A| に等しく、det⁡A<0\det A < 0 のときは向き(表裏)が反転する。

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

  • 基底ベクトルの行き先(行列の列)だけを覚えれば、空間全体の変換が完全に再現できる
  • 行列式 det⁡A=ad−bc\det A = ad-bc は、変換によって面積が何倍になるかを表す拡大率(符号は向きの反転を示す)
  • det⁡A=0\det A = 0 のとき、変換は2次元平面を1次元の直線(またはさらに0次元の原点)に潰す退化変換になる
  • 2つの線形変換 A,BA, B を連続して適用することは、行列の積 BABA を1回適用することと完全に等価である(合成 = 積)
参照基準・学習指導要領との対応

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

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

3DCGのモデル変換行列とニューラルネットワークの全結合層

3DCGでは物体の回転・拡大縮小・せん断を2×2(や3×3、4×4)の行列として表現し、頂点座標に掛けることで描画位置を決定する。ニューラルネットワークの全結合層もまた、入力ベクトルを重み行列で線形変換してから活性化関数を通す、という同じ「基底の行き先を指定する」操作である。

1type Vec2 = { x: number; y: number };
2type Mat2 = { a: number; b: number; c: number; d: number }; // [[a,b],[c,d]]
3
4// 線形変換の適用: v' = A v
5function applyLinearTransform(m: Mat2, v: Vec2): Vec2 {
6 return {
7 x: m.a * v.x + m.b * v.y,
8 y: m.c * v.x + m.d * v.y,
9 };
10}
11
12// 回転行列(3DCGのモデル回転に相当)
13function rotationMatrix(thetaRad: number): Mat2 {
14 return {
15 a: Math.cos(thetaRad), b: -Math.sin(thetaRad),
16 c: Math.sin(thetaRad), d: Math.cos(thetaRad),
17 };
18}
19
20// 拡大縮小行列(スケーリング)
21function scaleMatrix(sx: number, sy: number): Mat2 {
22 return { a: sx, b: 0, c: 0, d: sy };
23}
24
25// 行列の合成(連続変換 = 行列の積)
26function multiplyMat2(m1: Mat2, m2: Mat2): Mat2 {
27 return {
28 a: m1.a * m2.a + m1.b * m2.c,
29 b: m1.a * m2.b + m1.b * m2.d,
30 c: m1.c * m2.a + m1.d * m2.c,
31 d: m1.c * m2.b + m1.d * m2.d,
32 };
33}
34
35// ニューラルネットワークの全結合層(重み行列 = 線形変換)
36function denseLayer(weights: number[][], input: number[]): number[] {
37 return weights.map((row) =>
38 row.reduce((sum, w, i) => sum + w * input[i], 0)
39 );
40}
41
42// 例: 45度回転してから2倍に拡大
43const rotate45 = rotationMatrix(Math.PI / 4);
44const scale2x = scaleMatrix(2, 2);
45const combined = multiplyMat2(scale2x, rotate45);
46console.log(applyLinearTransform(combined, { x: 1, y: 0 }));

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

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

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

関連度高大学数学

特異値分解(SVD)と次元圧縮

データの「本当に重要な方向」を数値で取り出す万能の行列分解

関連度高大学数学

固有値・固有ベクトル

行列で変換しても「向きが変わらない」特別な方向

関連度高高校数学

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

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

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

同レベル推薦大学数学

フーリエ変換と周波数分解

どんなに複雑な波も、単純なサイン波の重ね合わせに分解できる

同レベル推薦大学数学

ベイズの定理(条件付き確率と事前・事後確率)

新たな情報や証拠(エビデンス)を得て「確信度」を更新する確率論

同レベル推薦大学数学

正規分布と中心極限定理

あらゆるランダムなばらつきが最終的に収束する「釣鐘型の山」

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

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

円の面積と円周率

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

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

三角形・多角形の面積

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

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

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

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

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

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

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