Evanalysis
4.1预计阅读时间: 27 分钟

4.1 齐次方程组与零空间

用齐次方程组与零空间去系统描述所有解,而不是只找出某一个解。

课程目录

当你已经懂得对方程组做行化简,下一步就不应只问“这一题怎样解”,而应问 “全部解究竟有什么结构”。齐次方程组是最适合开始问这个问题的地方,而零 空间正是回答这个问题的语言。

为什么齐次方程组特别

齐次线性方程组的常数项全部都是 00。用矩阵写,就是

Ax=0.Ax = 0.

这种情况有一个立刻可见的特点:零向量永远是它的解。

定义

齐次方程组

齐次线性方程组是形如

Ax=0Ax = 0

的线性方程组。

其中 x=0x = 0 称为平凡解。

真正的问题在于:除了平凡解之外,是否还有非平凡解。

零空间把所有齐次解收集起来

定义

零空间

对实 m×nm\times n 矩阵 AA,其零空间定义为

N(A)={x∈Rn:Ax=0m}.N(A) = \{x\in\mathbb R^n : Ax = 0_m\}.

因此 N(A)N(A) 正正就是齐次方程组 Ax=0Ax = 0 的解集。

这个定义把“一些解”变成一个完整的数学对象。你不再只是在列例子,而是在 描述整个集合。

行化简会揭示零空间的形状

要找 N(A)N(A),就是解 Ax=0Ax = 0,也就是对增广系统 [A∣0][A \mid 0] 做行化简。 主元告诉你哪些变量被决定,自由变量则告诉你剩下多少自由方向。

例题

解一个齐次方程组并描述零空间

令

A=[12−124−2].A = \begin{bmatrix} 1 & 2 & -1 \\ 2 & 4 & -2 \end{bmatrix}.

要求解 Ax=0Ax = 0,把它行化简:

[12−1024−20]∼[12−100000].\left[ \begin{array}{ccc|c} 1 & 2 & -1 & 0 \\ 2 & 4 & -2 & 0 \end{array} \right] \sim \left[ \begin{array}{ccc|c} 1 & 2 & -1 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right].

所以方程变成

x1+2x2−x3=0.x_1 + 2x_2 - x_3 = 0.

令 x2=sx_2 = s、x3=tx_3 = t 为自由变量,则

x1=−2s+t.x_1 = -2s + t.

因此

x=[−2s+tst]=s[−210]+t[101].x = \begin{bmatrix} -2s + t \\ s \\ t \end{bmatrix} = s \begin{bmatrix} -2 \\ 1 \\ 0 \end{bmatrix} + t \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix}.

所以

N(A)=Span⁡{[−210],[101]}.N(A) = \operatorname{Span} \left\{ \begin{bmatrix} -2 \\ 1 \\ 0 \end{bmatrix}, \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} \right\}.

这个例子说明:零空间描述的不只是“有没有解”,而是全部解如何被建立出来。

齐次方程组与零空间

观看齐次系统如何产生零空间方向,以及一个特解如何平移这些方向,描述 Ax=b 的全部解。

  1. 平凡解

    齐次系统永远相容,因为 x=0 会给出 A0=0。真正问题是是否还有非零解。

  2. 零列保持为零

    对 [A|0] 做行化简时,增广零列仍然是零,因此系数矩阵的 RREF 决定齐次解结构。

  3. 自由变量成为方向

    主元变量由自由变量决定。每次只设定一个自由变量,便得到一个零空间方向向量。

  4. 零空间

    N(A)={x:Ax=0} 不是一些例子的清单,而是整个齐次解集,通常写成方向向量的所有线性组合。

  5. 由一个特解平移

    若 p 解 Ax=b,则每个 p+q(其中 q 属于 N(A))也解 Ax=b,而且所有解都如此得到。

  6. 自由度与唯一性

    若 N(A)={0},相容系统只有一个解。若 N(A) 有非零方向,加入其倍数便得到无限多解。

齐次系统 Ax=0 告诉你方程留下哪些自由方向。若 Ax=b 相容,一个特解会把这些方向放到正确右端的位置,因此完整解集是 p+N(A)。

齐次解控制非齐次解的结构

同一个想法也可用来描述一致系统 Ax=bAx = b 的全部解。

定理

所有解都等于某个特解加上一个零空间向量

设 xpx_p 是 Ax=bAx = b 的一个特解。

则向量 xx 是 Ax=bAx = b 的解,当且仅当

x=xp+vx = x_p + v

其中 v∈N(A)v \in N(A)。

这正是自由变量公式背后的结构定理。

证明

为什么全部解都具有 xp+N(A)x_p + N(A) 的形式

先设 xx 是 Ax=bAx = b 的任意一个解。那么

Ax=b且Axp=b.Ax = b \qquad \text{且} \qquad Ax_p = b.

相减得

A(x−xp)=0.A(x - x_p) = 0.

所以 x−xp∈N(A)x - x_p \in N(A),即 x=xp+vx = x_p + v,其中 v∈N(A)v \in N(A)。

反过来,若 v∈N(A)v \in N(A),则 Av=0Av = 0。因此

A(xp+v)=Axp+Av=b+0=b.A(x_p + v) = Ax_p + Av = b + 0 = b.

所以任何形如 xp+vx_p + v 的向量,也必定是系统的解。

概念视角几何

把整个零空间作同一个平移

固定一个特解 xpx_p 后,xp+N(A)x_p+N(A) 表示所有 xp+vx_p+v 组成的集合,其中 v∈N(A)v\in N(A)。加上 xpx_p 就是让零空间的每个点作同一个位移。这建立了齐次解与非齐次解之间的一一对应,逆过程是减去 xpx_p。前面的证明分别说明了平移后的每个点都有效,以及每个解都能这样得到。

特解本身一般不唯一,但平移所得的集合与特解选择无关。若 xqx_q 是另一个解,则 h=xq−xp∈N(A)h=x_q-x_p\in N(A)。对每个 v∈N(A)v\in N(A),有 xq+v=xp+(h+v)x_q+v=x_p+(h+v),而封闭性保证 h+v∈N(A)h+v\in N(A)。因此 xq+N(A)⊆xp+N(A)x_q+N(A)\subseteq x_p+N(A);把 hh 换成 −h-h 可得反向包含。沿解集选择不同起点,描述的仍是同一个解族。

一致性不可省略:没有特解,就无法开始这个描述。当 b≠0b\ne0 时,一致方程组的解集不含零向量,因为 A0=0≠bA0=0\ne b。它是子空间的平移,称为仿射子空间,却不是向量子空间;两个解相加后对应的右端是 2b2b,而非 bb。只有在齐次情形 b=0b=0,解集才就是零空间本身。

标准题型:由一个解走向全部解

上面的定理经常要双向使用。正向的说法是:一旦你知道 uu 是 Ax=bAx = b 的一个解,就可以加上任何齐次解而不会离开原来的解集:

Ah=0⟹A(u+h)=Au+Ah=b+0=b.Ah = 0 \quad\Longrightarrow\quad A(u+h)=Au+Ah=b+0=b.

反方向同样重要。若 vv 是同一个系统的另一个解,则

A(v−u)=Av−Au=b−b=0,A(v-u)=Av-Au=b-b=0,

所以 v−u∈N(A)v-u \in N(A)。因此两个特解的差,不是一个任意的新特解,而是一个 齐次解。这就是

S(A,b)=u+N(A)S(A,b)=u+N(A)

这个公式的精确理由。

例题

用一个特解与两个零空间方向描述全部解

假设系统 Ax=bAx=b 有一个已知解

p=[10−1010],p= \begin{bmatrix} 1\\0\\-1\\0\\1\\0 \end{bmatrix},

而齐次系统 Ax=0Ax=0 有以下两个解方向:

q1=[2−31000],q2=[−310−221].q_1= \begin{bmatrix} 2\\-3\\1\\0\\0\\0 \end{bmatrix}, \qquad q_2= \begin{bmatrix} -3\\1\\0\\-2\\2\\1 \end{bmatrix}.

若这两个方向张成 N(A)N(A),那么 Ax=bAx=b 的所有解都可写成

x=p+sq1+tq2,s,t∈R.x=p+s q_1+t q_2, \qquad s,t\in R.

展开来看,就是

x=[10−1010]+s[2−31000]+t[−310−221].x= \begin{bmatrix} 1\\0\\-1\\0\\1\\0 \end{bmatrix} +s \begin{bmatrix} 2\\-3\\1\\0\\0\\0 \end{bmatrix} +t \begin{bmatrix} -3\\1\\0\\-2\\2\\1 \end{bmatrix}.

pp 的角色与 q1q_1、q2q_2 的角色不同。pp 把解集放在正确的右边 bb 上;q1q_1 与 q2q_2 则描述在保持同一个右边时可以移动的方向。

还有一个常用的缩放判断。若 Ap=bAp=b,则

2A(32p)=3Ap=3b.2A\left({3\over 2}p\right)=3Ap=3b.

所以 32p{3\over 2}p 是 2Ax=3b2Ax=3b 的一个解。这并不是说任何解集都可以任意 缩放;这里可行,是因为系数矩阵与右边同时被缩放,而且计算直接验证了结论。

一个非齐次例子

例题

把所有解写成特解加零空间

假设系统 Ax=bAx = b 有一个特解

xp=[301],x_p = \begin{bmatrix} 3 \\ 0 \\ 1 \end{bmatrix},

并且

N(A)=Span⁡{[1−10]}.N(A) = \operatorname{Span} \left\{ \begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix} \right\}.

那么所有解都可写成

x=[301]+t[1−10]=[3+t−t1],t∈R.x = \begin{bmatrix} 3 \\ 0 \\ 1 \end{bmatrix} + t \begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix} = \begin{bmatrix} 3 + t \\ -t \\ 1 \end{bmatrix}, \qquad t \in R.

零空间给出自由方向;特解则决定这整个解族位于哪里。

为什么自由变量会迫出无限多个齐次解

从行化简角度去看,一个重要结论会立刻出现。

定理

只要有自由变量,就有无限多个解

如果齐次系统 Ax=0Ax = 0 至少有一个自由变量,那么它就会有无限多个解。

自由变量可以取任意实数。因为它本身就是解向量的一个坐标,改变其数值必然改变整个向量。以实际自由坐标作为参数时,参数不可能从完整的解向量中消失。

所以有一条值得明说的结论:如果变量个数多过主元方程个数,齐次系统里面就 一定会留下自由变量,于是解自然是无限多个。

例题

一个自由变量已经会产生整条解线

假设行化简后得到

x1−3x2=0.x_1 - 3x_2 = 0.

如果令 x2=tx_2 = t,那么 x1=3tx_1 = 3t,所以所有解都可以写成

[x1x2]=t[31],t∈R.\begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = t \begin{bmatrix} 3 \\ 1 \end{bmatrix}, \qquad t \in R.

由于 tt 可以取无限多个值,所以解集也不只是“多于一个”,而是真正无限多。

例题

零空间也可能只剩平凡解

令

A=[1001].A = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}.

那么 Ax=0Ax = 0 就只是

x1=0,x2=0.x_1 = 0, \qquad x_2 = 0.

因此唯一解是零向量,所以

N(A)={0}N(A) = \{0\}

这个例子与前面有自由变量的情形刚好相反。

零空间本身是一个子空间

零空间最先是以“解集”身份出现,但它不只是解集;它永远都是 AA 定义域中 的一个子空间。

这也表示:零空间记录的不只是“有没有解”,而是还剩多少个真正独立的自由 方向。

定理

零空间对线性组合封闭

对任何矩阵 AA,N(A)N(A) 都是一个子空间。特别是:

  • 0∈N(A)0 \in N(A);
  • 若 u,v∈N(A)u, v \in N(A),则 u+v∈N(A)u + v \in N(A);
  • 若 u∈N(A)u \in N(A) 而 cc 是纯量,则 cu∈N(A)cu \in N(A)。

证明

为什么零空间是子空间

我们已经知道 0∈N(A)0 \in N(A),因为 A0=0A0 = 0。

若 u,v∈N(A)u, v \in N(A),则 Au=0Au = 0、Av=0Av = 0。由线性性质,

A(u+v)=Au+Av=0+0=0,A(u+v) = Au + Av = 0 + 0 = 0,

所以 u+v∈N(A)u+v \in N(A)。

同样,若 u∈N(A)u \in N(A) 而 cc 是纯量,则

A(cu)=c(Au)=c⋅0=0,A(cu) = c(Au) = c \cdot 0 = 0,

因此 cu∈N(A)cu \in N(A)。

知道零空间是子空间之后,你才能继续问:它有没有基?有多少维?与主元结构 之间有什么关系?

左乘矩阵可能丢失方程信息

行变换保留齐次解集,是因为每一步都可逆;一般的矩阵乘子却未必可逆。准确的结论必须明确写出集合包含的方向。

定理

左乘矩阵时零空间的包含关系

设 AA 是实 m×nm\times n 矩阵,GG 是实 p×mp\times m 矩阵,则

N(A)⊆N(GA).N(A)\subseteq N(GA).

如果 GG 是可逆方阵,则 N(A)=N(GA)N(A)=N(GA)。

证明

逆矩阵在哪个方向发挥作用?

任取 x∈N(A)x\in N(A),则 Ax=0mAx=0_m,所以 (GA)x=G(Ax)=G0m=0p(GA)x=G(Ax)=G0_m=0_p。因此 x∈N(GA)x\in N(GA),证明了任意相容乘子下的包含关系。注意,即使两矩阵行数不同,两个零空间中的向量仍都属于 Rn\mathbb R^n。

反向包含则假设 GG 是可逆方阵,因此 p=mp=m,并取 x∈N(GA)x\in N(GA)。由 GAx=0pGAx=0_p 左乘 G−1G^{-1},得 Ax=G−10p=0mAx=G^{-1}0_p=0_m,所以 x∈N(A)x\in N(A)。只有这个方向使用了逆矩阵;结合两个包含关系,才得到集合相等。

GAGA 的每一行都是 AA 各行的线性组合,因此新方程都是旧方程的推论,每个旧解必然满足新方程。若组合过程丢失了信息,就可能产生额外的解。这解释了为什么不能随意用一般行组合代替初等行变换,而不检查保留了哪些约束。

例题

丢失一个约束的矩阵乘子

取

A=[1001],G=[10].A=\begin{bmatrix}1&0\\0&1\end{bmatrix},\qquad G=\begin{bmatrix}1&0\end{bmatrix}.

则 GA=[1 0]GA=[1\ 0]。原方程 Ax=0Ax=0 同时要求 x1=0x_1=0 与 x2=0x_2=0;新方程只要求 x1=0x_1=0。所以

N(A)={02},N(GA)={[0t]:t∈R}.N(A)=\{0_2\},\qquad N(GA)=\left\{\begin{bmatrix}0\\t\end{bmatrix}:t\in\mathbb R\right\}.

向量 (0,1)T(0,1)^T 属于第二个集合而不属于第一个,因此包含严格。这里直接核对了丢失的条件,而不是只比较方程条数。可逆性保证相等,却不是对每个特定 AA 都必要的条件:若 AA 是零矩阵,即使乘子不可逆,两个零空间仍都等于 Rn\mathbb R^n。不能自动把定理倒转。

堆叠方程对应零空间的交集

另一种组合方程组的方法,是把全部方程一起保留。堆叠与只取某些行组合不同,它不会舍弃其中任何条件。

定理

堆叠矩阵的零空间

设实矩阵 AA 的大小为 m×nm\times n,BB 的大小为 p×np\times n。令

C=[AB],C=\begin{bmatrix}A\\B\end{bmatrix},

则 N(C)=N(A)∩N(B)N(C)=N(A)\cap N(B)。交集表示同时属于两个集合;行数可以不同,列数却必须相同。

证明

双向证明堆叠矩阵恒等式

先取 x∈N(C)x\in N(C)。由分块乘法,

0m+p=Cx=[AxBx].0_{m+p}=Cx=\begin{bmatrix}Ax\\Bx\end{bmatrix}.

比较上方的 mm 个元素与下方的 pp 个元素,分别得到 Ax=0mAx=0_m 与 Bx=0pBx=0_p。因此 xx 属于两个零空间,也就属于它们的交集。

反过来,取 x∈N(A)∩N(B)x\in N(A)\cap N(B)。集合成员条件同时给出 Ax=0mAx=0_m 与 Bx=0pBx=0_p。把两个输出堆叠,得到

Cx=[0m0p]=0m+p,Cx=\begin{bmatrix}0_m\\0_p\end{bmatrix}=0_{m+p},

故 x∈N(C)x\in N(C)。两个方向的成员关系都已核对,集合相等于是成立。

例如,堆叠 A=[1 0 0]A=[1\ 0\ 0] 与 B=[0 1 0]B=[0\ 1\ 0],就是同时施加 x1=0x_1=0 与 x2=0x_2=0,留下的恰好是 (0,0,t)T(0,0,t)^T。各自的零空间都较大,但交集只保留共同向量。重复堆叠同样可以表示有限多个齐次解集的交集。下一节会用此恒等式区分保留每条方程,与只保留方程的某个线性组合。

零度量出了还剩多少个独立方向

上面的讨论也说明:零空间不只是一堆解,而是系统剩余自由度的记录。

每一个自由变量,都对应一个独立参数。所以零空间的维数,正好等于化简后 自由变量的个数。

用秩的语言去说,之后就会写成

nullity⁡(A)=n−rank⁡(A),\operatorname{nullity}(A) = n - \operatorname{rank}(A),

但即使在秩—零度定理正式出现之前,你也应该先把 nullity 读成“系统还剩多 少条独立零空间方向”。

例题

零空间成员测试其实很直接

令

A=[110011],x=[1−11],z=[100].A = \begin{bmatrix} 1 & 1 & 0 \\ 0 & 1 & 1 \end{bmatrix}, \qquad x = \begin{bmatrix} 1 \\ -1 \\ 1 \end{bmatrix}, \qquad z = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}.

计算得到

Ax=[00],Az=[10].Ax = \begin{bmatrix} 0 \\ 0 \end{bmatrix}, \qquad Az = \begin{bmatrix} 1 \\ 0 \end{bmatrix}.

因此 x∈N(A)x \in N(A),但 z∉N(A)z \notin N(A)。要测试某个向量是否属于零空间, 最直接的方法就是实际计算 AxAx。

怎样由 RREF 读出零空间基底

实际计算时,N(A)N(A) 的基底通常直接由自由变量描述读出来。

做法可以固定为:

  1. 先把 AA 行化简;
  2. 分清楚主元变量与自由变量;
  3. 每次把一个自由变量设成 11,其余自由变量设成 00;
  4. 再由方程解回主元变量;
  5. 对每个自由变量重复一次。

这些向量确实构成一组基,而不只是候选。设共有 kk 个自由坐标,vjv_j 是把第 jj 个自由坐标取一、其余自由坐标取零后得到的解。对任意 x∈N(A)x\in N(A),记其自由坐标为 t1,…,tkt_1,\ldots,t_k。由封闭性,t1v1+⋯+tkvkt_1v_1+\cdots+t_kv_k 仍是齐次解,其自由坐标与 xx 完全相同,而化简后的主元方程唯一确定其余坐标。因此这个组合等于 xx,证明了张成。

再证明无关性:若 c1v1+⋯+ckvk=0c_1v_1+\cdots+c_kv_k=0,则其第 jj 个自由坐标恰好为 cjc_j,因为只有 vjv_j 在该位置取一。因此所有 cj=0c_j=0,无需再次消元便证得线性无关。这些向量于是构成基,其数目就是零度。若没有自由变量,零空间是 {0}\{0\},其基为空列表,而不是含有零向量的列表;这与零度为零相符。

还要分清楚几何图像:

  • 齐次解集永远是子空间,所以一定经过原点;
  • 非齐次而且一致的解集,是把这个子空间平移到某个特解位置后得到;当右端非零时,解集不经过原点。

因此 N(A)N(A) 是系统的结构核心,而 xp+N(A)x_p + N(A) 才是 Ax=bAx = b 的完整解集。

齐次解与列向量相关性的关系

如果把 AA 的列写成 a1,a2,…,ana_1, a_2, \ldots, a_n,那么

Ax=0Ax = 0

其实就等价于

x1a1+x2a2+⋯+xnan=0.x_1 a_1 + x_2 a_2 + \cdots + x_n a_n = 0.

所以只要齐次系统有一个非平凡解,就等价于 AA 的列向量之间存在一条非平凡 线性关系。

例题

一个非平凡零空间向量就是一条相关关系

假设

x=[1−21]∈N(A).x = \begin{bmatrix} 1 \\ -2 \\ 1 \end{bmatrix} \in N(A).

那么 Ax=0Ax = 0 就表示

1⋅a1−2⋅a2+1⋅a3=0.1 \cdot a_1 - 2 \cdot a_2 + 1 \cdot a_3 = 0.

这句话正是一条关于 AA 的列向量的非平凡相关关系。

零空间如何决定唯一性

由这个结构定理可以立刻得到:

  • 若 N(A)={0}N(A) = \{0\},则一致系统 Ax=bAx = b 只有唯一解;
  • 若 N(A)N(A) 含有非零向量,则每个一致系统 Ax=bAx = b 都有无限多解, 因为你可以在特解上加上任意标量倍的零空间向量。

所以零空间正好度量了系统中隐藏的自由度。

常见错误

常见错误

零向量永远属于零空间

有些同学会误以为齐次方程组可能没有解。这是不可能的,因为 x=0x = 0 永远 满足 Ax=0Ax = 0。

常见错误

找到一个特解,不等于已经找到全部解

即使你已经找到某个 xpx_p 满足 Axp=bAx_p = b,仍然要把整个零空间加上去,才 算完整描述了解集。

常见错误

不要把特解与方向混淆

若 uu 与 vv 都解 Ax=bAx=b,则 v−uv-u 解的是 Ax=0Ax=0。向量 v−uv-u 是零空间中的方向,不是一个新的右边。

快速检查

思考检查

为什么 Ax=0Ax = 0 一定至少有一个解?

用一句话回答。

解答 · 答案

因为零向量总会满足 A0=0A0 = 0。

思考检查

若 N(A)={0}N(A) = \{0\} 且 Ax=bAx = b 一致,它有多少个解?

请用本节定理解释。

解答 · 答案

只有一个,因为没有任何非零零空间向量可以再加到特解上。

思考检查

如果 Ax=0Ax = 0 有自由变量,解集有可能只剩两个向量吗?

请从参数形式回答。

解答 · 答案

不可能。自由变量可以取无限多个纯量值,所以会产生无限多个解向量。

思考检查

假设 uu 与 vv 都解 Ax=bAx=b。那么 v−uv-u 解哪一个齐次系统?

用一行矩阵计算回答。

解答 · 答案

它解 Ax=0Ax=0,因为

A(v−u)=Av−Au=b−b=0.A(v-u)=Av-Au=b-b=0.

练习

思考检查

若 xpx_p 解 Ax=bAx = b,而 u,v∈N(A)u, v \in N(A),为什么 xp+ux_p + u 与 xp+vx_p + v 都是 Ax=bAx = b 的解?

请用线性性质写一行。

解答 · 引导解答

因为 Au=0Au = 0 且 Av=0Av = 0,所以

A(xp+u)=Axp+Au=b+0=b,A(x_p + u) = Ax_p + Au = b + 0 = b,

同理

A(xp+v)=Axp+Av=b+0=b.A(x_p + v) = Ax_p + Av = b + 0 = b.

因此,只要在特解上加任何零空间向量,仍然留在同一个解集之中。

相关笔记

本节建立在 2.3 高斯消元与最简行阶梯形 与 2.4 解集的种类 之上。 它会为 5.1 可逆矩阵 与 6.2 子空间 做准备。

练习

先自行作答,再检查答案。你可以修改后重试。

加载中…

本单元重点词汇