上篇文章处理了定义而不是,我们知道基是什么,但不知道如何找到他们。现在,从一个明确描述的子空间开始,我们开始计算显式的基。
子空间能用两种方式描述。第一,我们可以给出一个生成空间的向量集合。(例如:列生成列空间)第二,我们可以给出空间中的向量必须满足什么条件。(例如:零空间包含满足 Ax=0 的所有向量)
第一个描述可能包含无用的向量(相关列),第二个描述可能包含重复的条件(相关行),我们无法通过观察写出一个基,那么就需要一个系统的过程。
读者能够猜出来那个过程发生了什么,当在 A 上执行消元得到阶梯矩阵U或最简矩阵 R 时,我们能够找出与A相关子空间的一个基,那么我们不得不看一下满秩的情况:
当秩尽可能大的时候, r=n or r=m or r=m=n ,矩阵存在左逆 B 或右逆C或逆 A−1 。
接下来我们轮流讨论四个子空间,他们里面有两个是相似的,另两个是新的。
最后两个子空间来自于 AT ,如果 A 是一个m×n 的矩阵,那么我们将看到主空间包含了四个子空间:
零空间 N(A) 和行空间 C(AT) 是 Rn 的子空间,左零空间 N(AT) 和列空间 C(A) 是 Rm 的子空间。
行有 n 个元素,列有m个元素,对于一个简单的矩阵如
列空间是通过第一列的直线,行空间是通过 [100]T 的直线,它位于 R3 里,零空间是 R3 中的一个平面,左零空间是 R2 里的一条线:
注意所有向量是列向量,甚至行都是转置的, A 的行空间是AT的列空间,我们的问题是将 U 的四个空间和A的四个空间联系起来:
为了新鲜感,我们以一个有趣的顺序介绍这四个子空间。
3. A 的行空间,对于像U这样的阶梯矩阵,行很明显,它包含行的所有组合,但是第三行没做什么贡献,前两行是行空间的一个基。同样的规则应用到每个阶梯矩阵 U or R ,他们有 r 个主元和r个非零行:非零行是一个基,行空间维数是 r 。这使得我们很容易处理原始矩阵A。
13、 A 的行空间和U的行空间有相同的维数 r 并且基也相同,因为A 的行空间和 U(R) 行空间一样。
原因是每个初等变换没有改变行空间, U 中的行是A中行的组合,因此 U 的行空间不包含新的东西。同时,因为每步是可逆的,所以也没有丢失;A的行可以从 U 中恢复。A,U 有不同的行,但是行的组合是相同的:相同的空间!
注意我们开始没有说 A 的m行生成空间,舍弃掉 m−r 行得到一个基,根据12,我们可以这么做的,但是决定留哪些行和舍弃哪些行可能会比较困难,所以更容易的做法是取 U 的非零行。
2.A的零空间,消元在不改变解的情况下简化了线性方程组, Ax=0 化简为 Ux=0 ,并且这个过程是可逆的。 A 的零空间和U,R的零空间是一样的, Ax=0 中只要 r 个解是无关的,选择Ax=0的 n−r 解可以给出零空间的一个基:
14、零空间 N(A) 维数是 n−r ,特解是一个基——每个自由变量给定值1,而其他自由变量设为0,那么 Ax=0,Ux=0,Rx=0 通过回代得出主元变量。
这就是求 Ux=0 的准确方法,上面的例子中主元在1,3列,因此自由变量是2,4列的 v,y ,零空间的基是
任何组合 c1x1+c2x2 都会有 v,y 元素,所以 c1x1+c2x2=0 的唯一方式是 c1=c2=0 ,所以这些向量是无关的,他们也产生零空间;完整解是 vx1+yx2 ,因此 n−r=4−2=2 个向量是一个基。
零空间也叫作 A 的核,它的维数n−r叫做零度。
1. A 的列空间,列空间有时叫做值域。这和一般意义上的值域意义是一致的,就是所有可能值f(x)的集合; x 在定义域内而f(x)在值域内,对于我们的情况函数是 f(x)=Ax ,它的定义域包含 Rn 中的所有 x ;他的值域是所有可能的向量Ax,也就是列空间。(在一些书中我们叫它 R(A) )
我们的问题是找出 U,A 列空间的基,这些空间是不同的,但是他们维数是一样的。
U 的第一和第三列是列空间的一个基,他们是含有主元的列,其他列都是这两列的一个组合。更进一步,原始矩阵A 同样如此——虽然他们列不相同。 A 的主元列是它列空间的一个基,第二列是第一列的三倍和U一样,第四列等于列3-列1,相同的列空间告知了我们这些相关性。
理由是这样的:当 Ux=0 时 Ax=0 ,两个系统是等价的并有相同的解, U 的第四列也是列3-列1,A列的线性相关性和 U 列的是互相匹配的,并且有相同的系数。如果A的集合是无关的,那么对应 U 的列也是无关的,反之亦然。
为了找出列空间C(A)的一个基,我们利用 U ,r个包含主元的列作为 U 列空间的一个基,然后我们在A中选择同样的 r 列:
15、列空间C(A)的维数等于 r ,也等于行空间的维数:无关行的数目等于无关列的数目。C(A)的一个基由 A 的r列组成,他们对应于 U 中含有主元的列。
行空间和列空间有相同的维数r!这是线性代数中最重要的定理,简单的说为行的秩等于列的秩。对方阵来说:如果方阵的行是线性无关的,那么它的列同样如此(反之亦然)。
下面举一个例子,考虑 r=3 的情况,阶梯形 U 明显有三个无关行:
我们说U有三个无关列,最多如此。如果我们能说明主元列——1,4,6列——是线性无关的,他们一定是一个基。假设这些主元列的组合得到零:
从下往上看, c3 必须是零,因为 d3≠0 ,那么 c2 必须是零,因为 d2≠0 ,最终 c1=0 。因为当且仅当 Ux=0 时 Ax=0 ,无论原始矩阵 A 是什么,它的1,4,6列是C(A)的一个基。
行空间和列空间在 A 上执行消元后变得很清楚,现在我们开始第四个基本子空间,因为前三个子空间是C(A),N(A),C(AT),那么第四个空间肯定是 N(AT) ,它是 A 转置的零空间或者说是A的左零空间, ATy=0 意味着 yTA=0 ,向量出现在 A 的左边。
4.A的左零空间(= AT 的零空间),如果 A 是m×n矩阵,那么 AT 是 n×m 矩阵,它的零空间是 Rm 的一个子空间;向量 y 有m个元素。当写成 yTA=0 时,这些元素乘以 A 的行得到零行:
零空间 N(AT) 的维数很容易找到,对于任意矩阵,主元变量的数目加上自由变量的数目肯定是总的列数。对于 A 就是r+(n−r)=n,换句话说,秩加上零度等于 n :
这个法则同样可以用到 AT 上,它有 m 列。
16、N(AT)的零空间维数是 m−r 。
yTA=0 的 m−r 个解隐藏在消元中, A 的行组合产生m−r个 U 的零行,从PA=LU or L−1PA=U开始,矩阵 L−1P 的最后 m−r 行一定是左零空间的一个基,因为他们乘以 A 得到U中的零行。
在我们 3×4 的例子力,零行是3-2(行2)+5(行1),因此 y 的元素为5,-2,3,在右边有同样的组合b3−2b2+5b1,这样的话最后的方程是0=0。向量 y 是左零空间的一个基,维数是m−r=3−2=1,它是 L−1P 的最后一行,在 U 中得到零行,ATy=0肯定有解。
目前为止 N(AT) 讲的比较少,我们在下一篇文章中会讲到它在基尔霍夫定律中的物理意义,那时候详细讲效果会更好点。
现在我们知道四个空间的维数,让我们总结一下
例1:矩阵 A=[1326] 行列为2 m=n=2 ,秩为1 r=1 。
这个例子中四个空间都是一条直线,这纯属偶然,因为 r=1,n−r=1,m−r=1 。图1中展示了两对线是垂直的,这个可不是偶然!
如果我将 A 的最后一个元素改成7,所有的维数都是不同的,行空间和列空间维数是2,零空间和左零空间只有向量x=0,y=0,矩阵是可逆的。
我们知道如果 A 有左逆(BA=I)和右逆( AC=I ),那么这两个逆相等: B=B(AC)=(BA)C=C 。现在我们从矩阵的秩开始探讨什么矩阵存在逆,简单地说就是只有当矩阵的秩尽可能大时才会存在逆。
秩肯定满足 r≤m,r≤n ,一个 m×n 矩阵不可能超过 m 个无关行或n个无关列,我们想证明当 r=m 时有一个右逆,使得 Ax=b 有解,当 r=n 时,有一个左逆,使得解(如果解存的的话)是唯一的。
只要方阵才能 r=m,r=n ,因此才能即有存在性又有唯一性,只有方阵才能保证两边都有逆。
17、存在:行满秩 r=m 。当且仅当列生成 Rm 时, Ax=b 对每个 b 至少有一个解x,所以 A 有一个右逆C 使得 AC=Im ,这只有在 m≤n 时才可能。
唯一:列满秩 r=n 。当且仅当列是线性无关的时候, Ax=b 对每个 b 最多有一个解x,所以 A 有一个左逆B 使得 BA=In ,这只有在 m≥n 时才可能。
在存在的情况中,一个可能解是 x=Cb ,因为 Ax=ACb=b ,但是如果其他右逆的话将会有其他解,当列生成 Rm 时解的个数为1或 ∞ 。
在唯一的情况中,如果 Ax=b 有一个解,那么它肯定是 x=BAx=Bb ,但是不可能有其他解,解的个数是0或1。
如果逆存在的话,他们最简单的形式如下:
确定的是 BA=I,AC=I ,但是不确定的事 ATA,AAT 是否可逆,我会在之后的文章中证明 ATA 在秩为 n 时是可逆的,AAT在秩为 m 时是可逆的,总之秩尽可能大才会存在逆。
例2:考虑一个秩为2的2×3 矩阵:
因为 r=m=2 ,定理保证存在右逆 C :
存在很多右逆,因为 C 的最后一行可任意赋值,只是存在但不唯一的情况。就好着呢A没有左逆,因为 BA 肯定包含零,特殊的右逆 C=AT(AAT)−1 将 c31,c32 选为零:
这是一个伪逆——我会在后面的文章详细介绍, A 的转置有无限多个左逆:
现在 B 的最后一列可任意赋值,最好的左逆(也叫做伪逆)是b13=b23=0。当 r=n 时这就是唯一的情况,因为 n−r=0 ,所以没有自由变量,如果有解的话那也只有一个:
长方形矩阵不可能既满足存在性又满足唯一性,如果 m 与n 不同,那么不可能 r=m,r=n 。
方阵正好相反,如果 m=n ,那么它存在左逆的话肯定存在右逆,只可能有一个逆,即 B=C=A−1 。当矩阵是方阵时,存在性暗示着唯一性而唯一性也暗示着存在性。可逆的条件就是满秩: r=m=n :
中间的一些概念后面会陆续给出,这里是为了说明这些条件互相都是等价的,他们都确保 A 是可逆的。
这里有一个典型的应用,对于n−1次的多项式 P(t) ,给定任意值 b1,…,bn ,存在 n−1 次的多项式满足这些值: P(ti)=bi ,这就是我们要处理的方阵; P(t)=x1+x2t+⋯+xntn−1 里系数的个数 n 和方程个数相等:
这个范德蒙矩阵是n×n的且满秩, Ax=b 肯定有解(一个多项式肯定可以在不同的点 ti 处通过 bi ),随后我们还会求 A 的行列式,它不等于零。
最后考虑最容易的情况,也就是秩尽可能小(除了零矩阵,它的秩为0)。数学的一个基本主题是给定一个复杂的东西,如果将它变成一些简单的部分。对于线性代数来说,最简单的部分就是秩为1的矩阵:
每一行都是第一行的倍数,所以行空间是一维的。事实上,我们可以将矩阵写成一个列向量和一个行向量的乘积:
一个 4×1 矩阵和 1×3 矩阵相乘得到 4×3 矩阵,这个结果秩为1,同样的,列是同一列向量的倍数,列空间维数同样是 r=1 ,简化为一条线。
每个秩为1的矩阵都可以写成简化的形式 A=uvT 。行是向量 vT 的倍数,列是向量 u 的倍数,行空间和列空间是一条直线——这就是最简单的情况。