一步一步建立直观
先预测,再点“演示本步”核对右图。每一步都重设到指定情形,随后可以自由修改参数。
01先识别什么是动作的输入
把左图的绿色箭头当成写在弹性网格上的一段位移。输入箭头改变时,矩阵保持固定,右图显示同一规则给出的输出。若是恒等矩阵,两边坐标完全一致。这一步把改变输入与改变变换区分开来,避免把两种操作混在一起。
02两根基箭头如何决定整张网格
剪切时第一根基箭头不动,第二根向右倾斜。任意输入 都由 份第一根箭头和 份第二根箭头组成,所以输出为 。网格不是被逐点任意拉动:所有点共享同一个线性组合规则,平行线因而仍平行或塌缩。
03压扁揭示了线性规则的边界
把两列变成平行方向后,单位方形的面积归零,不同输入可以落到同一个输出。这不破坏线性,却破坏可逆性。纸笔证明应分别检查相加与数乘保持;不能因为动画看起来平滑,就断言动作线性,更不能进一步断言它可逆。
1.3.1 用两个箭头描述整个平面的运动¶
设想写一个程序,让平面上的每个点移动。逐点列出目的地不现实,我们需要压缩信息的规则。线性规则承诺:一个向量若由两个向量按一定比例拼成,变换后仍按同样比例拼成。知道基向量的去向,就能恢复所有点的去向。
任意输入都能拆为 。假如 被送到 , 被送到 ,只需取 份第一根新箭头与 份第二根新箭头,结果就是 。矩阵把两条目的地记录并排存放,所以它们是列,而不是行。
1.3.2 公式从基向量的去向长出来¶
取 ,画一份 和两份 ,终点为 。再按坐标计算,会发现每一行都在计算输出的一个分量。列的解释告诉我们动作是什么,行的解释告诉我们输出数字怎么计算。
打开矩阵实验,先只改变一列。预测哪根基箭头会动、哪些输入受影响,再播放从单位网格到目标网格的变化。中间的连续变形只是展示方式;数学对象是指定的输入输出关系,不能把动画经过的每个阶段都当成同一个变换。
最后检查边界:平移虽然规整,却把零向量送到非零位置,因此不线性。只看水平线与竖直线是否笔直也不够,仍需检查任意向量的相加与缩放。下面的 Lean 命题精确表达的就是这个承诺,而不是对一张网格图作判断。
定义 1.3.1 线性映射
映射 线性,是指它保持向量加法与标量乘法:,。平移一般不满足这个定义。
命题 1.3.1 基向量的像决定整个映射
设 是平面的标准基。若 线性,则对任意坐标 ,有 。
证明 · 展开纸笔推导
先用加法保持性把两项分开,再分别把标量移出 ,就得到结论。把 与 写成矩阵的两列,右侧正是矩阵乘向量的列组合。
因此我们不必给平面上每个点单独记录去向。不过反过来只观察两根箭头,尚不能证明未知映射线性;线性是推论所需的前提。
□
数学表述 1.3.1¶
线性变换保持向量相加与缩放。平面上的网格可以被拉伸、剪切或压扁,但原点固定,平行的直线仍保持平行或塌缩。
。矩阵的第 列就是 ,所以
例 1.3.1 把概念用于具体计算
,也等于 。这从基向量图像直接导出矩阵乘法。
练习 1.3.1¶
是否线性?
展开解答与检查
不是,例如 。
Lean 对照 1.3.1 命题、证明与适用边界
对任意实向量空间间的线性映射验证线性组合保持律,形式化范围比二维例子更广。
LinearAlgebra.linear_combination
theorem linear_combination {V W : Type*} [AddCommGroup V] [Module ℝ V]
[AddCommGroup W] [Module ℝ W] (T : V →ₗ[ℝ] W) (a b : ℝ) (u v : V) :
T (a • u + b • v) = a • T u + b • T v := by simp