线性变换可视化 — 设计文档
← 返回模拟器
|
← 返回首页
1. 概述
在线性代数中,一个 2×2 矩阵 本质上描述了一个线性变换——它将平面上的每个点映射到另一个点。理解线性变换的关键是:你只需要知道基向量 î 和 ĵ 被映射到哪里,整个变换就完全确定了。
这个模拟器让基向量变得可拖拽——拖动箭头端点改变 î 和 ĵ 的位置,实时观察整个网格如何随之变形。矩阵的数值、行列式、特征值等性质同步更新。
2. 核心数学
2.1 矩阵与基向量
一个 2×2 矩阵的每一列就是该基向量在变换后的位置:
\[
M = \begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
\qquad
\Rightarrow\qquad
\begin{aligned}
\text{î} &\mapsto \begin{bmatrix} a \\ c \end{bmatrix} \\
\text{ĵ} &\mapsto \begin{bmatrix} b \\ d \end{bmatrix}
\end{aligned}
\]
任意点 \((x, y)\) 的变换结果:
\[
M \begin{bmatrix} x \\ y \end{bmatrix} =
\begin{bmatrix} a & b \\ c & d \end{bmatrix}
\begin{bmatrix} x \\ y \end{bmatrix} =
\begin{bmatrix} ax + by \\ cx + dy \end{bmatrix}
= x \begin{bmatrix} a \\ c \end{bmatrix} + y \begin{bmatrix} b \\ d \end{bmatrix}
\]
最后一行揭示了本质:变换后的点 = \(x \times\) 变换后的 î + \(y \times\) 变换后的 ĵ。网格的所有形变都来源于两个基向量的改变。
2.2 行列式 = 面积缩放因子
\[
\det(M) = ad - bc
\]
行列式的几何意义是单位正方形变换后的有向面积:
| \(\det\) | 几何意义 |
| \(\det > 0\) | 保持方向,面积放大 \(|\det|\) 倍 |
| \(\det = 0\) | 退化——平面被压缩到一条线或一个点,不可逆 |
| \(\det < 0\) | 翻转方向(镜像),面积放大 \(|\det|\) 倍 |
| \(\det = 1\) | 面积不变(旋转、剪切属于此类) |
2.3 特征值与特征向量
满足 \(M\mathbf{v} = \lambda\mathbf{v}\) 的向量 \(\mathbf{v}\) 称为特征向量,它在变换后方向不变(只被拉伸了 \(\lambda\) 倍)。
\[
\lambda = \frac{\operatorname{tr}(M) \pm \sqrt{\operatorname{tr}(M)^2 - 4\det(M)}}{2}
\]
其中 \(\operatorname{tr}(M) = a + d\) 是迹。
- 判别式 \(\Delta \ge 0\):有实特征值和实特征向量——网格在某些方向上纯粹拉伸
- 判别式 \(\Delta < 0\):复特征值——变换包含旋转,没有方向保持不变(如纯旋转矩阵)
2.4 变换类型速查
| 类型 | 矩阵示例 | \(\det\) | 特征 |
| 恒等 | \(\begin{bmatrix}1&0\\0&1\end{bmatrix}\) | 1 | 不变 |
| 旋转 \(\theta\) | \(\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}\) | 1 | 复特征值 |
| 均匀缩放 | \(\begin{bmatrix}k&0\\0&k\end{bmatrix}\) | \(k^2\) | \(\lambda=k\) |
| 剪切 | \(\begin{bmatrix}1&s\\0&1\end{bmatrix}\) | 1 | \(\lambda=1\)(二重) |
| X 轴反射 | \(\begin{bmatrix}-1&0\\0&1\end{bmatrix}\) | -1 | \(\lambda=\pm1\) |
| 投影到 X 轴 | \(\begin{bmatrix}1&0\\0&0\end{bmatrix}\) | 0 | 退化 |
3. 交互与可视化
3.1 网格变形
模拟器绘制了两套网格:
- 原始网格(浅灰):由等间距的 \(x=k\) 和 \(y=k\) 线组成
- 变换网格(蓝色):将每条线的每个采样点用矩阵 \(M\) 变换后重新绘制
每条原始竖线 \(x=k\) 变换为过点 \((ak, ck)\) 方向为 \((b, d)\) 的直线;每条原始横线 \(y=k\) 变换为过点 \((bk, dk)\) 方向为 \((a, c)\) 的直线。
3.2 交互设计
| 操作 | 效果 |
| 拖拽 î 箭头(红) | 改变矩阵第一列 |
| 拖拽 ĵ 箭头(蓝) | 改变矩阵第二列 |
| 点击预设按钮 | 跳转到特定变换(旋转/剪切/反射/投影等) |
| 悬停箭头 | 光标变为抓取状态 |
拖拽时坐标量化为 0.05 步长,方便精确控制基向量位置。
3.3 实时更新的量
- 矩阵数值:即时显示 \(a, b, c, d\)
- 行列式:单位正方形面积(绘图区蓝色半透明平行四边形)
- 迹:\(a + d\)
- 特征值:实特征值直接显示,复特征值以 \(a \pm bi\) 形式显示
- 基向量长度:\(\sqrt{a^2 + c^2}\) 和 \(\sqrt{b^2 + d^2}\)
- 基向量内积:\(ab + cd\),正交时为 0
4. 使用指南
4.1 基本操作
| 操作 | 效果 |
| 拖拽 î 箭头(红) | 改变矩阵第一列,即变换后 î 基向量的位置 |
| 拖拽 ĵ 箭头(蓝) | 改变矩阵第二列,即变换后 ĵ 基向量的位置 |
| 点击预设按钮 | 跳转到特定变换(旋转 / 剪切 / 反射 / 投影等) |
| 悬停箭头 | 光标变为抓取状态,提示可拖拽 |
4.2 实时观察的数学量
- 矩阵数值:\(a, b, c, d\) 随拖拽即时更新
- 行列式:单位平行四边形的面积直观展示 \(\det = ad - bc\) 的几何意义
- 迹:\(\operatorname{tr}(M) = a + d\)
- 特征值:存在实特征值时直接显示,复特征值以 \(a \pm bi\) 形式显示
- 基向量长度:\(\sqrt{a^2 + c^2}\) 和 \(\sqrt{b^2 + d^2}\)
- 基向量内积:\(ab + cd\),正交时为 0
4.3 实验探索
- 矩阵即变换:拖拽 î 和 ĵ,观察整个网格如何随之变形——最核心的线性代数直觉
- 行列式实验:将两个基向量逐渐靠拢,观察行列式趋近于零的过程,直观理解退化与不可逆
- 特征向量可视化:在变换后的网格中寻找那些只被拉伸、方向不变的直线
- 对比预设变换:点击旋转、剪切、反射等预设,对比不同变换的矩阵特征差异
- 基的任意性:拖动 î 和 ĵ 到任意位置,理解基向量不必互相正交
5. 教学价值
- "矩阵就是变换":最核心的线性代数直觉——你不只是在操作数字,而是在拉伸和扭曲空间
- 行列式的几何意义:看到平行四边形面积随基向量变化,不再只是一个公式
- 退化(det=0):平面被压扁——直观理解为什么不可逆
- 特征向量的方向不变性:在网格中寻找那些"只被拉伸不改变方向"的线
- 基的任意性:理解 î 和 ĵ 不必正交,可以任意倾斜
这个模拟器的核心思想源自 Grant Sanderson(3Blue1Brown)的 Essence of Linear Algebra 系列——"线性代数的本质就是以基向量的变换来理解矩阵"。