从一个具体问题说起
考虑以下方程组:
{2x1+x2=0x1−x2=1 \begin{cases} 2x_1 + x_2 = 0 \\ x_1 - x_2 = 1 \end{cases} {2x1+x2=0x1−x2=1
中学的办法是消元或代入,很快能得到 x1=1/3x_1 = 1/3x1=1/3,x2=−2/3x_2 = -2/3x2=−2/3。
再看一个:
{x1+x2=12x1+2x2=1 \begin{cases} x_1 + x_2 = 1 \\ 2x_1 + 2x_2 = 1 \end{cases} {x1+x2=12x1+2x2=1
消元得到 0=−10 = -10=−1,矛盾,所以无解。
第三个:
x1−3x2=0 x_1 - 3x_2 = 0 x1−3x2=0
解集是 {(x1,x2)∈R2:x1=3x2}\{(x_1, x_2) \in \mathbb{R}^2 : x_1 = 3x_2\}{(x1,x2)∈R2:x1=3x2},一条过原点的直线,无穷多个解。
三个方程组,三种解的形态:唯一解、无解、无穷多解。中学阶段到此为止。但线性代数要问的是下面这些问题------
- 给定任意一个 mmm 个方程、nnn 个未知数的线性方程组,能不能事先判断它属于哪种情形,不用真的把它解出来?
- 当解集无穷时,它的"结构"是什么?是直线?平面?还是更高维的东西?这种结构能否用少量参数描述?
- 如果把方程组写成 f(x)=bf(x) = bf(x)=b 的形式,函数 fff 到底具备什么性质让这件事如此规整?(对比之下,f(x)=x2+x−2=0f(x) = x^2 + x - 2 = 0f(x)=x2+x−2=0 为什么就恰好两个解,x2+x+2=0x^2 + x + 2 = 0x2+x+2=0 为什么在 R\mathbb{R}R 上无解?)
- 解方程组的"系统性算法"是什么?它的复杂度如何?何时失败?
这些是线性代数真正要回答的问题。它不是"解方程组的技巧集合",而是关于线性方程解结构的一套理论。
把问题抽象一层
将上面的方程组改写成函数形式。定义 f:R2→R2f: \mathbb{R}^2 \to \mathbb{R}^2f:R2→R2:
f(x1,x2)=(2x1+x2, x1−x2) f(x_1, x_2) = (2x_1 + x_2,\ x_1 - x_2) f(x1,x2)=(2x1+x2, x1−x2)
那么第一个方程组就等价于求解 f(x)=(0,1)f(x) = (0, 1)f(x)=(0,1)。换句话说:解方程组 = 求 fff 在给定值上的原像。
问题由此转化成:研究函数 fff 本身的性质。
而 fff 不是任意函数,它满足两个条件:
f(x+y)=f(x)+f(y),f(cx)=cf(x) f(x + y) = f(x) + f(y), \qquad f(cx) = cf(x) f(x+y)=f(x)+f(y),f(cx)=cf(x)
第一式叫可加性 ,第二式叫齐次性 。满足这两条的 fff 称为线性映射。本课程大部分内容就是研究这类映射。
这两个条件看似简单,但它们的后果非常强:
- f(0)=0f(0) = 0f(0)=0(从齐次性取 c=0c = 0c=0 得到)
- fff 在一组向量的线性组合上完全由它在这组向量上的值决定:
f(c1v1+⋯+cnvn)=c1f(v1)+⋯+cnf(vn)f(c_1 v_1 + \cdots + c_n v_n) = c_1 f(v_1) + \cdots + c_n f(v_n)f(c1v1+⋯+cnvn)=c1f(v1)+⋯+cnf(vn) - 方程 f(x)=0f(x) = 0f(x)=0 的解集对加法和数乘封闭------它是一个"子空间"
由第三点立刻能推出一个重要事实:
若 x0x_0x0 是 f(x)=bf(x) = bf(x)=b 的一个解,则全部解为 {x0+v:f(v)=0}\{x_0 + v : f(v) = 0\}{x0+v:f(v)=0}。
也就是:非齐次方程的解 = 一个特解 + 齐次方程的通解。
这条结论在微分方程里也有对应形式------这不是巧合。线性常微分方程的解空间结构、傅里叶级数的收敛性、量子力学中态的叠加原理,本质上都是同一个"线性"在不同场景的体现。
"线性"在哪些地方成立
线性映射最常见的例子是矩阵乘法 :Rn→Rm\mathbb{R}^n \to \mathbb{R}^mRn→Rm,x↦Axx \mapsto Axx↦Ax。但"线性"的范围远不止有限维空间上的矩阵:
| 映射 | 定义域 | 线性? |
|---|---|---|
| f(x)=Axf(x) = Axf(x)=Ax,A∈Rm×nA \in \mathbb{R}^{m \times n}A∈Rm×n | Rn\mathbb{R}^nRn | 是 |
| D:p(z)↦p′(z)D: p(z) \mapsto p'(z)D:p(z)↦p′(z)(求导) | 多项式空间 R[z]\mathbb{R}[z]R[z] | 是 |
| I:f↦∫01f(t) dtI: f \mapsto \int_0^1 f(t)\,dtI:f↦∫01f(t)dt | 连续函数空间 C[0,1]C[0,1]C[0,1] | 是 |
| T:(an)↦(an+1)T: (a_n) \mapsto (a_{n+1})T:(an)↦(an+1)(移位) | 数列空间 R∞\mathbb{R}^\inftyR∞ | 是 |
| f(x)=x2f(x) = x^2f(x)=x2 | R\mathbb{R}R | 否(f(2x)≠2f(x)f(2x) \ne 2f(x)f(2x)=2f(x)) |
| f(x)=x+1f(x) = x + 1f(x)=x+1 | R\mathbb{R}R | 否(f(0)≠0f(0) \ne 0f(0)=0) |
| f(x)=exf(x) = e^xf(x)=ex | R\mathbb{R}R | 否(f(x+y)≠f(x)+f(y)f(x+y) \ne f(x) + f(y)f(x+y)=f(x)+f(y)) |
这张表透露了一个关键观察:线性代数的工具不依赖于"维数有限"。同样的框架可以套用在多项式、函数、数列、算子这些看起来完全不同的对象上。
正是因为这个,一门表面上在研究"矩阵和方程组"的课,实际上为后续几乎所有数学分支(微分方程、泛函分析、抽象代数、微分几何、量子力学)打下公共语言。
课程要回答的问题
课程从 Rn\mathbb{R}^nRn 上的方程组出发,但目标是建立一个不依赖具体坐标的理论。关键问题包括:
存在性与唯一性:什么条件下方程组有解?什么条件下解唯一?------这会在第 6 章通过"单射、满射、可逆"这组概念彻底回答。
解集的结构 :解集是一个什么样的集合?------答案是第 4-5 章要讲的向量空间 与它的维数,解集是一个仿射子空间。
表示与计算 :抽象的线性映射如何用具体的数字表示?------第 6 章给出"矩阵表示",并说明这个表示依赖于基的选择。不同的基给出不同的矩阵,但它们描述的是同一个映射。基变换的理论在第 10 章。
分解 :一个复杂的线性映射能否分解成简单的?------第 7 章讲对角化(通过特征值),第 11 章讲谱定理(正规算子在标准正交基下对角化)和奇异值分解。
为什么要证明
本课程有相当一部分内容是证明写作。很多学生不理解:我会算就行了,为什么要证明?
有两个原因。
第一,线性代数的主要结论是"某类对象全部满足某性质"。比如"任意有限维向量空间的任意两组基含相同数量向量"------这不可能通过计算几个例子来验证,必须证明。
第二也是更重要的:证明是理解定义的唯一方式 。一个定义你看十遍,不如亲手用它证一个命题。第一次做 VVV 是向量空间、UUU 是子空间的证明题时,你才会真正明白"向量空间"这八条公理为什么是这八条,删掉任何一条会发生什么。
中学数学主要在训练计算,大学数学主要在训练定义→定理→证明的这套语言。线性代数是这个转换发生的地方。
本节的要点
- 线性代数研究线性方程组的解结构,等价地,研究线性映射的性质。
- 定义一个映射为线性,只需两条:f(x+y)=f(x)+f(y)f(x+y) = f(x)+f(y)f(x+y)=f(x)+f(y) 和 f(cx)=cf(x)f(cx) = cf(x)f(cx)=cf(x)。
- 这两条蕴含了丰富的结构:解集是子空间,非齐次通解 = 特解 + 齐次通解,映射由基上的值完全决定。
- 这套框架不依赖于坐标和维数,因此可以统一描述矩阵、求导、积分、移位等各种看似无关的对象。
- 应用遍及各数学分支和科学工程------下图是一个粗略的地图:
