Evanalysis
4.2预计阅读时间: 25 分钟

4.2 集合语言与解集

仔细使用集合记号、属于关系、解集、零空间、张成与集合相等,支撑线性代数中的论证。

课程目录

线性代数研究的往往不是单一向量,而是一整个向量或矩阵的集合:一个方程组的 所有解、一组向量的所有线性组合、满足某条矩阵方程的所有矩阵,或者被某个矩 阵送到零向量的所有向量。

集合语言就是精确表达这些对象的语法。若没有它,“同一个解集”、“属于零 空间”、“这些向量张成同一个子空间”这些说法就会太含糊,难以支撑证明。

为什么线性代数需要集合

做行化简时,我们不是要保留方程的外观,而是要保留解的集合。两个方程 组可以看起来不同,却有完全相同的解。

同样地,把一组张成向量缩短时,我们不是要保留原来的列表,而是要保留由这 个列表能够生成的向量集合。

定义

属于

若对象 xx 是集合 SS 的元素,记作

x∈S.x \in S.

若 xx 不是 SS 的元素,记作

x∉S.x \notin S.

符号 ∈\in 应读作“属于”。它不同于子集语言。一个向量可以属于某个集合; 一个较小的集合可以是另一个集合的子集。

所在空间

写下一个线性代数集合之前,先确认正在收集哪一类对象。

  • Rn\mathbb R^n 是所有有 nn 个分量的实列向量所成的集合。
  • Mm,n(R)M_{m,n}(\mathbb R) 是所有实 m×nm \times n 矩阵所成的集合。
  • PnP_n 是所有次数不超过 nn 的实系数多项式所成的集合。

所在空间很重要。式子

{x:Ax=b}\{x : Ax=b\}

若没有说明 xx 的大小与类型,就不够完整。较严谨的写法是

{x∈Rn:Ax=b}.\{x\in R^n : Ax=b\}.

冒号左边说明对象住在哪个集合;冒号右边说明挑选这些对象的条件。

解集

设 AA 是 m×nm \times n 矩阵,且 b∈Rmb\in \mathbb R^m。

定义

线性方程组的解集

方程 Ax=bAx=b 的解集是

S(A,b)={x∈Rn:Ax=b}.S(A,b)=\{x\in R^n : Ax=b\}.

因此 t∈S(A,b)t\in S(A,b) 有精确意思:

t∈Rn且At=b.t\in R^n \qquad\text{且}\qquad At=b.

这个记号也能处理三种熟悉情况。

  • 若方程组有唯一解 x0x_0,则 S(A,b)={x0}S(A,b)=\{x_0\}。
  • 若方程组不一致,则 S(A,b)=∅S(A,b)=\varnothing。
  • 若方程组有无限多个解,则 S(A,b)S(A,b) 通常用参数式描述。

例题

读懂参数式解集

假设某个方程组的解可写成

x=[102]+s[110]+t[−101],s,t∈R.x= \begin{bmatrix}1\\0\\2\end{bmatrix} +s\begin{bmatrix}1\\1\\0\end{bmatrix} +t\begin{bmatrix}-1\\0\\1\end{bmatrix}, \qquad s,t\in R.

作为集合,这就是

{[102]+s[110]+t[−101]:s,t∈R}.\left\{ \begin{bmatrix}1\\0\\2\end{bmatrix} +s\begin{bmatrix}1\\1\\0\end{bmatrix} +t\begin{bmatrix}-1\\0\\1\end{bmatrix} : s,t\in R \right\}.

固定向量是一个特解;两个方向向量记录了可以自由加入而仍留在解集中的方向。

零空间与张成都是集合

课程中有两种集合构造反复出现。

定义

零空间

对 m×nm \times n 矩阵 AA,

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

这就是齐次方程组 Ax=0Ax=0 的解集。

定义

张成

若 u1,…,uqu_1,\dots,u_q 是同一个向量空间中的向量,则

Span⁡{u1,…,uq}={α1u1+⋯+αquq:α1,…,αq∈R}.\operatorname{Span}\{u_1,\dots,u_q\} = \{\alpha_1u_1+\cdots+\alpha_qu_q : \alpha_1,\dots,\alpha_q\in R\}.

张成是一个集合,不是原来的列表。重排向量不会改变张成;加入一个本来已经 是旧向量线性组合的向量,也不会改变张成。

堆叠矩阵中的包含关系证明

证明集合包含时,先把成员关系写成定义中的方程,再推导目标集合的条件。 把两个系数矩阵上下堆叠,便得到这个方法的一个具体例子。

定理

堆叠矩阵的零空间包含在组合矩阵的零空间内

设 AA 和 BB 是 p×qp \times q 矩阵,并令

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

对任意实数 α,β\alpha,\beta,都有

N(C)⊆N(αA+βB).N(C)\subseteq N(\alpha A+\beta B).

证明

由定义出发的证明

要证明 包含关系,取任意 t∈N(C)t\in N(C)。由零空间定义,

Ct=0.Ct=0.

由于 CC 是把 AA 叠在 BB 上方所得的矩阵,这等同于

[AtBt]=[00].\begin{bmatrix} At \\ Bt \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}.

因此 At=0At=0 且 Bt=0Bt=0。所以

(αA+βB)t=αAt+βBt=0.(\alpha A+\beta B)t = \alpha At+\beta Bt = 0.

再次由零空间定义,t∈N(αA+βB)t\in N(\alpha A+\beta B)。由于 t∈N(C)t\in N(C) 是任意 选取的,包含关系成立。

前一节证明的堆叠零空间恒等式 准确写为 N(C)=N(A)∩N(B)N(C)=N(A)\cap N(B)。因此,上面的包含关系是说,同时满足两条齐次方程,就必满足它们的任意固定线性组合;它并没有说组合后仍保留两条独立的要求。

例题

合并方程会丢失信息

取 A=[1 0]A=[1\ 0]、B=[0 1]B=[0\ 1],堆叠矩阵是 C=I2C=I_2,所以 N(C)={02}N(C)=\{0_2\}。但取 α=β=1\alpha=\beta=1,则 A+B=[1 1]A+B=[1\ 1],从而

N(A+B)={[t−t]:t∈R}.N(A+B)=\left\{\begin{bmatrix}t\\-t\end{bmatrix}:t\in\mathbb R\right\}.

为证明此描述,任意零空间向量都须满足 x1+x2=0x_1+x_2=0,所以令 t=x1t=x_1 就得到所写形式;反过来,代入任意这样的向量,两坐标之和都为零。因此 (1,−1)T(1,-1)^T 属于 N(A+B)N(A+B),却不属于 N(C)N(C):它在 A,BA,B 下的输出分别是一与负一,只在相加后才互相抵消。包含是严格的,改写成相等就会出错。

正确的等式使用交集,即 N(C)=N(A)∩N(B)N(C)=N(A)\cap N(B)。组合方程容许输出相互抵消,原来两个方程却要求两个输出分别为零。一个见证向量已足以证明严格包含;参数计算则进一步描述了全部新增的解。

集合相等需要两个方向

定义

集合相等

两个集合 SS 与 TT 相等,是指每一边的元素都属于另一边:

S=T⟺(x∈S if and only if x∈T) 对所有对象 x 成立.S=T \quad\Longleftrightarrow\quad \bigl(x\in S \text{ if and only if } x\in T\bigr) \text{ 对所有对象 }x\text{ 成立}.

在证明中,这通常变成两个包含关系:

  1. 证明 SS 的每个元素都属于 TT;
  2. 证明 TT 的每个元素都属于 SS。

只证明第一个方向,只能得到 S⊆TS\subseteq T,不能得到相等。

证明透视

每个包含方向都从成员条件取得资料

证明 S⊆TS\subseteq T 时,先任取 x∈Sx\in S,把成员关系翻译成等式或系数。目标 x∈Tx\in T 也有自己的定义条件;论证必须把已知资料转换成同一个向量所需满足的条件,不能先假设结论。

对张成而言,已知资料是某组系数的存在;要证明属于另一个张成,就应构造另一组系数。对零空间而言,已知资料是一条齐次方程;要证明属于另一个零空间,就应检查对应的矩阵方程。只验证几个数值向量,不能代替这个任意向量的步骤。

然后交换两个集合的角色,另作反向论证。这一方向可以较短,例如为新增的生成向量补上零系数,但仍须明确写出。两个包含方向可以使用不同的表示方式;始终不变的是要证明属于相应集合的那个向量。

集合语言与解集

跟着集合语言的语法,把代数条件转成解集,再用任意元素证明子集与集合相等。

  1. 属于与子集

    x\in S 说一个对象属于 S;S\subseteq T 则比较两个集合。

  2. 集合描述语法

    在 {x\in R^n:Ax=b} 中,R^n 指出所在空间,Ax=b 是挑选元素的条件。

  3. 解集

    S(A,b)={x\in R^n:Ax=b} 是一个集合陈述;它可以是空集、单元素集合,或参数族。

  4. 零空间与张成

    N(A) 由方程定义;Span{u_1,...,u_q} 由参数定义。两者都描述整个集合。

  5. 子集证明套路

    要证明 S\subseteq T,取 S 中任意元素,拆开 S 的定义,再证明它满足 T 的条件。

  6. 相等证明套路

    集合相等需要两个包含关系。删去张成列表中的冗余向量,背后也是这套证明语法。

集合语言把代数条件变成精确集合:先写所在空间,再写条件,然后由任意元素开始证明包含关系。

同一系数矩阵的解集交集

集合语言也能清楚说明一个常用事实:若 Ax=bAx=b 和 Ax=cAx=c 的解集有一个共同 向量,则两个右端向量其实必须相同。

定理

同一个 A 下,两个有交集的解集必然相等

设 AA 是 m×nm \times n 矩阵,且 b,c∈Rmb,c\in \mathbb R^m。若

S(A,b)∩S(A,c)≠∅,S(A,b)\cap S(A,c)\ne\varnothing,

则

S(A,b)=S(A,c).S(A,b)=S(A,c).

证明

为什么一个共同解足以迫出相等

因为交集非空,所以存在某个向量 x0x_0,使得

x0∈S(A,b)andx0∈S(A,c).x_0\in S(A,b) \qquad\text{and}\qquad x_0\in S(A,c).

由解集定义,

Ax0=bandAx0=c.Ax_0=b \qquad\text{and}\qquad Ax_0=c.

因此 b=cb=c。但若两个右端向量相同,两个 defining condition 就完全一样:

Ax=b⟺Ax=c.Ax=b \qquad\Longleftrightarrow\qquad Ax=c.

所以 S(A,b)S(A,b) 的每个元素都属于 S(A,c)S(A,c),而 S(A,c)S(A,c) 的每个元素也属于 S(A,b)S(A,b)。因此 S(A,b)=S(A,c)S(A,b)=S(A,c)。

反过来读也很重要:对固定矩阵 AA,两个一致系统 Ax=bAx=b 与 Ax=cAx=c 的解集 要么不相交,要么完全相同。它们不可能只共享一个解,却在其他解上不同。

一个核心张成论证

下面的论证在线性代数中会不断出现,只是常常藏在较大的计算里。

定理

加入冗余向量不会改变张成

若 vv 是 u1,…,uqu_1,\dots,u_q 的线性组合,则

Span⁡{u1,…,uq,v}=Span⁡{u1,…,uq}.\operatorname{Span}\{u_1,\dots,u_q,v\} = \operatorname{Span}\{u_1,\dots,u_q\}.

证明

用集合相等证明

写

v=β1u1+⋯+βquq.v=\beta_1u_1+\cdots+\beta_qu_q.

令

S=Span⁡{u1,…,uq,v},T=Span⁡{u1,…,uq}.S=\operatorname{Span}\{u_1,\dots,u_q,v\}, \qquad T=\operatorname{Span}\{u_1,\dots,u_q\}.

先取任意 x∈Sx\in S。则存在标量 a1,…,aq,ca_1,\dots,a_q,c,使得

x=a1u1+⋯+aquq+cv.x=a_1u_1+\cdots+a_qu_q+cv.

代入 vv 的公式:

x=(a1+cβ1)u1+⋯+(aq+cβq)uq.x=(a_1+c\beta_1)u_1+\cdots+(a_q+c\beta_q)u_q.

所以 x∈Tx\in T。

反过来,若 y∈Ty\in T,则

y=d1u1+⋯+dquq=d1u1+⋯+dquq+0v,y=d_1u_1+\cdots+d_qu_q =d_1u_1+\cdots+d_qu_q+0v,

所以 y∈Sy\in S。因此 S=TS=T。

这不是某个数值例子的技巧,而是说明为什么从张成列表中删去冗余向量是合法 的。

逆命题准确识别冗余向量

假设加入 vv 后张成没有改变。向量 vv 一定属于扩大的张成:把它自己的系数取一,其余旧生成向量的系数全部取零即可。两个张成相等,于是 vv 也属于原来的张成,按定义便是旧生成向量的线性组合。这证明了逆命题,而不只是正向定理的另一个例子。

结合两个方向可知:加入一个向量不改变张成,当且仅当旧列表已经能够生成它。若向量在原张成之外,新张成就严格扩大:给新增向量系数零,说明新张成包含旧张成;新增向量本身则说明反向包含失败。

这里 Span⁡(U)\operatorname{Span}(U) 简记列表 UU 中各向量的张成,并不是把整个列表当成一个向量。

定理

多个冗余生成向量与张成相等

设 U=(u1,…,uq)U=(u_1,\ldots,u_q) 与 V=(v1,…,vs)V=(v_1,\ldots,v_s) 是 Rn\mathbb R^n 中两个有限非空向量列表。把 VV 中全部向量加入 UU 不改变张成,当且仅当每个 vjv_j 都属于 Span⁡(U)\operatorname{Span}(U)。此外,

Span⁡(U)=Span⁡(V)\operatorname{Span}(U)=\operatorname{Span}(V)

当且仅当每个列表中的向量都可由另一个列表作线性组合得到。列表长度 q,sq,s 不必相同。

证明

从逐个加入到双向生成

若每个 vjv_j 都由 UU 生成,就逐个加入 VV 中的向量。第一次加入不改变张成;后续每个 vjv_j 仍由保留在列表中的原生成向量生成,所以每一步都可再次使用单向量定理。归纳可得任意有限列表的结论。反过来,每个新增向量都属于扩大的张成;若扩大后的张成等于旧张成,它们便都已属于旧张成。

对第二个结论,假设两个方向的生成关系成立。把 VV 加到 UU 不改变 Span⁡(U)\operatorname{Span}(U);把 UU 加到 VV 不改变 Span⁡(V)\operatorname{Span}(V)。合并后的列表包含相同向量,而改变次序不影响能形成的线性组合,所以两个张成都等于合并列表的张成。

反过来,若两个张成相等,UU 的任意生成向量属于自身张成,也就属于 VV 的张成,按定义可由 VV 生成。交换列表可得另一个方向。这些论证都不需要线性无关假设。

例子:证明两个张成相等

例题

用明确系数删去一个冗余生成向量

令

u1=[101],u2=[011],v=[235].u_1=\begin{bmatrix}1\\0\\1\end{bmatrix}, \qquad u_2=\begin{bmatrix}0\\1\\1\end{bmatrix}, \qquad v=\begin{bmatrix}2\\3\\5\end{bmatrix}.

因为

v=2u1+3u2,v=2u_1+3u_2,

上面的定理给出

Span⁡{u1,u2,v}=Span⁡{u1,u2}.\operatorname{Span}\{u_1,u_2,v\} = \operatorname{Span}\{u_1,u_2\}.

直接核对两个包含关系:较大张成中的任意向量可写为 au1+bu2+cvau_1+bu_2+cv。代入已验证的关系,得到 (a+2c)u1+(b+3c)u2(a+2c)u_1+(b+3c)u_2,属于较小张成。反过来,du1+eu2=du1+eu2+0vdu_1+eu_2=du_1+eu_2+0v 属于较大张成。旧系数为实数时,新系数也为实数,所以这些表达式对每个向量证明了双向包含,而不只是验证所列三个生成向量的成员关系。向量 vv 仍可能有计算用途,但不会扩大能够生成的集合。

例题

两组不同的生成向量给出同一张成

令

u=[135],v=[246],w=[3711],z=[111].u=\begin{bmatrix}1\\3\\5\end{bmatrix},\quad v=\begin{bmatrix}2\\4\\6\end{bmatrix},\quad w=\begin{bmatrix}3\\7\\11\end{bmatrix},\quad z=\begin{bmatrix}1\\1\\1\end{bmatrix}.

逐坐标验证可得正向关系 w=u+vw=u+v、z=v−uz=v-u。因此,对任意实数 a,ba,b,有 aw+bz=(a−b)u+(a+b)vaw+bz=(a-b)u+(a+b)v,证明了 Span⁡(w,z)⊆Span⁡(u,v)\operatorname{Span}(w,z)\subseteq\operatorname{Span}(u,v)。为得到反向包含,把这两个关系解回原生成向量:

u=12w−12z,v=12w+12z.u=\tfrac12w-\tfrac12z,\qquad v=\tfrac12w+\tfrac12z.

所以对任意实数 c,dc,d,

cu+dv=c+d2w+d−c2z.cu+dv=\tfrac{c+d}{2}w+\tfrac{d-c}{2}z.

这就构造出另一个方向所需的系数。由任何一组生成的每个向量,都能由另一组生成,故两个张成相等。只观察到两个列表都含两个向量,并不能证明结论;真正提供依据的是明确的相互表示关系。

同样的关系还能处理较长列表。在 (u,v)(u,v) 后加入 ww、2u2u 与 zz 不改变张成,因为每个新增向量都已由原来一对生成。所得五向量列表与原两向量列表张成相同。张成相等描述的是可生成哪些向量,而不是所选列表有多长;反过来,列表等长本身也不保证张成相等。

常见错误

常见错误

混淆向量与只含该向量的集合

向量 x0x_0 与单元素集合 {x0}\{x_0\} 是不同对象。若方程组有唯一解,解是 x0x_0,但解集是 {x0}\{x_0\}。

常见错误

忘记所在空间

条件 Ax=0Ax=0 本身没有说明 xx 是 Rn\mathbb R^n 中的向量、矩阵变量,还是其他对象。 当语境未固定时,要写出所在集合。

常见错误

只证明一个包含方向

要证明 S=TS=T,只证明 SS 的每个元素属于 TT 并不足够。还要证明 TT 的 每个元素也属于 SS。

常见错误

忘记共同解会固定右端向量

如果两个系统使用同一个矩阵 AA,而某个 x0x_0 同时满足 Ax0=bAx_0=b 和 Ax0=cAx_0=c,则必然有 b=cb=c。结论不只是两个系统相似,而是它们有相同的右端 向量。

快速检查

思考检查

如果 S(A,b)=∅S(A,b)=\varnothing,这对方程组 Ax=bAx=b 表示什么?

把空集合翻译回解的语言。

解答 · 答案

这表示方程组没有解。也就是说,Ax=bAx=b 不一致。

思考检查

假设 w=3u1−u2w=3u_1-u_2。把 ww 加入列表 {u1,u2}\{u_1,u_2\} 会不会改变张成?

使用冗余向量定理。

解答 · 答案

不会。因为 ww 已经是 u1u_1 与 u2u_2 的线性组合,

Span⁡{u1,u2,w}=Span⁡{u1,u2}.\operatorname{Span}\{u_1,u_2,w\} = \operatorname{Span}\{u_1,u_2\}.

思考检查

假设 S(A,b)∩S(A,c)S(A,b)\cap S(A,c) 包含一个向量 x0x_0。这对 bb 和 cc 表示什么?

用解集成员的定义。

解答 · 答案

因为 x0∈S(A,b)x_0\in S(A,b),所以 Ax0=bAx_0=b。又因为 x0∈S(A,c)x_0\in S(A,c),所以 Ax0=cAx_0=c。因此 b=cb=c,两个解集相等。

练习

思考检查

令 S=Span⁡{(1,0),(0,1),(1,1)}S=\operatorname{Span}\{(1,0),(0,1),(1,1)\} 且 T=R2T=\mathbb R^2。证明 S=TS=T。

即使其中一个方向看似明显,也要写出两个包含方向。

解答 · 引导解答

首先,SS 的每个向量都是 R2\mathbb R^2 中向量的线性组合,所以 S⊆R2S\subseteq \mathbb R^2。

反过来,取任意 (a,b)∈R2(a,b)\in \mathbb R^2。则

(a,b)=a(1,0)+b(0,1)+0(1,1),(a,b)=a(1,0)+b(0,1)+0(1,1),

所以 (a,b)∈S(a,b)\in S。因此 R2⊆S\mathbb R^2\subseteq S,从而 S=TS=T。

练习:判断新增向量是否改变张成

令 u1=(1,0,1)Tu_1=(1,0,1)^T、u2=(0,1,1)Tu_2=(0,1,1)^T。哪些实数 a,b,ca,b,c 会使加入 w=(a,b,c)Tw=(a,b,c)^T 后,Span⁡(u1,u2)\operatorname{Span}(u_1,u_2) 保持不变?若张成改变,请指出一个能够证明改变的向量。

解答 · 用冗余逆命题作答

由已证明的等价关系,张成不变当且仅当 ww 已是 u1,u2u_1,u_2 的线性组合。而所有组合均具有形式

su1+tu2=(s,t,s+t)T.su_1+tu_2=(s,t,s+t)^T.

匹配前两个坐标,必须有 s=as=a、t=bt=b;第三个坐标便要求 c=a+bc=a+b。条件成立时,w=au1+bu2w=au_1+bu_2 明确验证了成员关系,所以旧张成不变。条件不成立时,没有任何系数可用旧向量对表示 ww;但给它自身系数一,即知它属于扩大后的张成。因此 ww 就是严格扩大的见证。

论证既检查了表示的存在性,也证明了不存在表示时为什么失败,不能只因新向量与旧生成向量的所在空间维数相同,就假设它是冗余的。

最后要区分生成列表与基。本节的论证只研究可以生成哪些向量,容许列表出现重复及不必要的生成向量。前面的五向量例子删去三个生成向量后,列表改变,张成却不变。剩下的列表是否线性无关,是后面无关性与基笔记研究的另一问题。分清两者,才不会把张成相等误读成系数表示唯一。

先读这些

本节延伸 1.1 方程与解集, 并准备 6.3 线性组合与张成 中使用的集合相等论证。

本单元重点词汇