3.5 四个子空间的维度

一、概述

这一节的主要定理是将维度联系在一起。矩阵的就是主元的个数,子空间的维度是基向量的个数,我们计算出这两个数就可以得到秩与维度。AAA 的秩揭露了四个基本子空间的维度。
四个子空间中,两个子空间来自 AAA,另外两个来自 ATA^TAT

四个基本子空间

  1. 行空间 C(AT)\pmb C(A^T)C(AT),是 Rn\textrm {\pmb R}^nRn 中的一个子空间。
  2. 列空间 C(A)\pmb C(A)C(A),是 Rm\textrm{\pmb R}^mRm 中的一个子空间。
  3. 零空间 N(A)\pmb N(A)N(A),是 Rn\textrm{\pmb R}^nRn 中的一个子空间。
  4. 左零空间 N(AT)\pmb{N}(A^T)N(AT),是 Rm\pmb{\textrm R}^mRm 中的一个子空间。

行空间是所有行的线性组合,AAA 的行空间就是 ATA^TAT 的列空间。
对于左零空间,我们需要求解 ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0 —— 这是一个 n×mn\times mn×m 的系统,它其实就是 ATA^TAT 的零空间。两边同时转置,这个方程就会写成 yTA=0T\boldsymbol y^TA=\boldsymbol 0^TyTA=0T,此时向量 y\boldsymbol yy 出现在 AAA 的左侧,这就是左零空间名字的由来。一般来说矩阵 AAAATA^TAT 不一样,它们的列空间和零空间也不一样。但是这些空间可以通过一种很好的方式联系起来。
基础定理的第一部分就是找到四个子空间的维度,一个重要的事实:行空间与列空间有相同的维度 rrr。数字 rrr 就是矩阵的;另一个重要事实与两个零空间相关:N(A)和N(AT)的维度分别是 n−r 和 m−r,它们分别与行空间和列空间的维度加起来是 n 和 m。\pmb N(A)和 \pmb N(A^T)的维度分别是\,n-r\,和\,m-r,它们分别与行空间和列空间的维度加起来是\,n\,和\,m。N(A)N(AT)的维度分别是nrmr,它们分别与行空间和列空间的维度加起来是nm基础定理的第二部分将会描述如何将这四个子空间合在一起(两个在 Rn\textrm{\pmb R}^nRn 中,两个在 Rm\textrm {\pmb R}^mRm 中)。通过这些从不同的角度完全理解 Ax=bA\boldsymbol x=\boldsymbol bAx=b,这些是真正的数学。

二、R 的四个子空间

假设 AAA 简化成了它的行阶梯形式 RRR,这种特殊的形式很容易确认它的四个子空间,我们会找到每个子空间的基和维度。然后回过头看 AAA 的子空间是如何变化到(有两个是不变的)。重点是 AAARRR 四个子空间的维度均相等。
以一个 3×53\times 53×5 的矩阵为例,看一下行阶梯形式 RRR 的四个子空间:m=3n=5r=2R=[135070001200000]主元行是行1和行2主元列是列1和列4\begin{array}{r}m=3\\n=5\\r=2\end{array}\kern 8ptR=\begin{bmatrix}\pmb1&3&5&0&7\\0&0&0&\pmb1&2\\0&0&0&0&0\end{bmatrix}\kern 8pt\begin{matrix}主元行是行1和行2\\\\主元列是列1和列4\end{matrix}m=3n=5r=2R=100300500010720主元行是行1和行2主元列是列1和列4这个矩阵的秩 r=2r=2r=2(两个主元),下面依次看四个子空间。

1、RRR行空间维度是 222,与秩相同。

理由: 前两行就是行空间一组基。行空间包含三行的所有线性组合,但是第三行(零行)没有任何贡献。因此行 111 和行 222 张成行空间 C(RT)\pmb C(R^T)C(RT)
主元行 行111 和行 222 是无关的,这个例子可以明显看出来,而且任意时候都是正确的。如果我们只看主元列的话,就可以看到一个 r×rr\times rr×r 的单位矩阵,除了所有系数为 000 的组合,没有办法将这些行组合成零行。因此 rrr 个主元行是行空间的一组基。行空间的维度是 r,R 的非零行形成一组基。行空间的维度是 \,r,R\,的非零行形成一组基。行空间的维度是rR的非零行形成一组基。

2、RRR 列空间的维度也是 r=2r=2r=2

理由: 主元列列 111 和列 444 是列空间 C(R)\pmb C(R)C(R) 的一组基。这两列是无关的,因为它们的开头是一个 r×rr\times rr×r 的单位矩阵。除了所有系数为 000 的组合,它们的线性组合无法得到零列,这些列可以张成列空间。另外的自由列是这些主元列的线性组合。实际上这些组合需要下面三个特殊解!Column 2=3(Column 1)特殊解是(−3,1,0,0,0)Column 3=5(Column 1)特殊解是(−5,0,1,0,0)Column 5=7(Column 1)+2(Column 4)特殊解是(−7,0,0,−2,1)\begin{array}{ll}\textrm{Column}\,2=3(\textrm{Column}\,1)&特殊解是(-3,1,0,0,0)\\\textrm{Column}\,3=5(\textrm{Column\,1})&特殊解是(-5,0,1,0,0)\\\textrm{Column}\,5=7(\textrm{Column}\,1)+2(\textrm{Column\,4})&特殊解是(-7,0,0,-2,1)\end{array}Column2=3(Column1)Column3=5(Column1)Column5=7(Column1)+2(Column4)特殊解是(3,1,0,0,0)特殊解是(5,0,1,0,0)特殊解是(7,0,0,2,1)主元列是无关的,它们张成列空间,因此它们是 C(R)\pmb C(R)C(R) 的一组基。列空间的维度是秩 r,主元列是列空间的一组基。列空间的维度是秩\,r,主元列是列空间的一组基。列空间的维度是秩r,主元列是列空间的一组基。

3、RRR 零空间的维度是 n−r=5−2n-r=5-2nr=52。因为有 n−r=3n-r=3nr=3 个自由变量,这里 x2,x3,x5x_2,x_3,x_5x2,x3,x5 是自由变量,因为这些列没有主元。它们提供了三个使得 Rx=0R\boldsymbol x=\boldsymbol 0Rx=0 的解,令一个自由变量为 111,其它的均为 000,就可以求解出 x1x_1x1x4x_4x4

s2=[−31000],s3=[−50100],s5=[−700−21]Rx=0 的完全解:x=x2s2+x3s3+x5s5零空间的维度是 3。\boldsymbol s_2=\begin{bmatrix}\pmb{-3}\\\kern 7pt\pmb1\\\kern 7pt0\\\kern 7pt0\\\kern 7pt0\end{bmatrix},\kern 5pt\boldsymbol s_3=\begin{bmatrix}\pmb{-5}\\\kern 7pt0\\\kern 7pt\pmb1\\\kern 7pt0\\\kern 7pt0\end{bmatrix},\kern 5pt\boldsymbol s_5=\begin{bmatrix}\pmb{-7}\\\kern 7pt0\\\kern 7pt0\\\pmb{-2}\\\kern 7pt\pmb1\end{bmatrix}\kern 5pt\begin{array}{l}R\boldsymbol x=\boldsymbol 0\,的完全解:\\\boldsymbol x=x_2\boldsymbol s_2+x_3\boldsymbol s_3+x_5\boldsymbol s_5\\零空间的维度是\,3。\end{array}s2=31000,s3=50100,s5=70021Rx=0的完全解:x=x2s2+x3s3+x5s5零空间的维度是3理由: 这是对每个自由变量的一个特殊解。如果有 nnn 个变量 rrr 个主元,那么有 n−rn-rnr 个自由变量和特殊解。这些特殊解是无关的,因为在行 2,3,52,3,52,3,5 包含一个单位矩阵。因此 N(R)\pmb N(R)N(R) 的维度是 n−rn-rnr零空间的维度是 n−r,特殊解是一组基。零空间的维度是\,n-r,特殊解是一组基。零空间的维度是nr,特殊解是一组基。

4、RTR^TRT 的零空间(RRR 的左零空间)的维度是 m−r=3−2m-r=3-2mr=32

理由: 方程 RTy=0R^T\boldsymbol y=\boldsymbol 0RTy=0 是为了找到 RTR^TRT 列的线性组合得到零向量。方程 RTy=0R^T\boldsymbol y=\boldsymbol 0RTy=0 也可以写成 yTR=0T\boldsymbol y^TR=\boldsymbol 0^TyTR=0T 就是:左零空间R 行的组合得到零行y1[1,3,5,0,7]+y2[0,0,0,1,2]+y3[0,0,0,0,0][0,0,0,0,0](3.5.1)\begin{array}{l}左零空间\\R\,行的组合\\得到零行\end{array}\kern 10pt\begin{array}{r}y_1\begin{bmatrix}1,&3,&5,&0,&7\end{bmatrix}\\+y_2\begin{bmatrix}0,&0,&0,&1,&2\end{bmatrix}\\+y_3\begin{bmatrix}0,&0,&0,&0,&0\end{bmatrix}\\\hline\begin{bmatrix}0,&0,&0,&0,&0\end{bmatrix}\end{array}\kern 15pt(3.5.1)左零空间R行的组合得到零行y1[1,3,5,0,7]+y2[0,0,0,1,2]+y3[0,0,0,0,0][0,0,0,0,0](3.5.1)此时解 y1,y2,y3y_1,y_2,y_3y1,y2,y3 就很清晰了,只需要 y1=0y_1=0y1=0y2=0y_2=0y2=0,变量 y3y_3y3 是自由的,可以为任何数。RTR^TRT 的零空间包含有所有向量 y=(0,0,y3)\boldsymbol y=(0,0,y_3)y=(0,0,y3)
在所有的情形下 RRR 的尾端都会有 m−rm-rmr 个零行,这些零行的任意组合都会得到零行,只有这些零行 RRR 的线性组合才可能得到零,因为主元行是线性无关的。因此左零空间中的 y\boldsymbol yyy1=0,y2=0,⋯ ,yr=0y_1=0,y_2=0,\cdots,y_r=0y1=0,y2=0,,yr=0如果 A 是 m×n 的矩阵,秩为 r,它的左零空间的维度是 m−r。如果\,A\,是\,m\times n\,的矩阵,秩为\,r,它的左零空间的维度是\,m-r。如果Am×n的矩阵,秩为r,它的左零空间的维度是mr

Rn\textrm{\pmb R}^nRn 中,行空间和零空间的维度分别是 rrrn−rn-rnr(加起来是 nnn)。
Rm\textrm{\pmb R}^mRm 中,列空间和左零空间的维度分别是 rrrm−rm-rmr (总和是 mmm)。

三、A 的四个子空间

AAA 子空间的维度与 RRR 子空间的维度相同。下面解释为什么会这样。AAA 是任意矩阵,可以简化为 R=rref(A)R=rref(A)R=rref(A)A 简化为 RA=[135070001213519]注意 C(A)≠C(R)!(3.5.2)A\,简化为\,R\kern 10ptA=\begin{bmatrix}1&3&5&0&7\\0&0&0&1&2\\1&3&5&1&9\end{bmatrix}\kern 5pt注意\,\pmb C(A)\neq \pmb C(R)!\kern 12pt(3.5.2)A简化为RA=101303505011729注意C(A)=C(R)!(3.5.2)在这里插入图片描述
1、AAARRR 有相同的行空间。它们的维度和基也相同。
理由: AAA 的每一行都是 RRR 行的组合,RRR 的每一行也都是 AAA 行的组合。消元会改变行,但是不改变行空间。
由于 AAARRR 有相同的行空间,我们可以选择 RRR 的前 rrr 个行作为一组基。或者选择原始的矩阵 AAA 合适的 rrr 行,它们可能不是 AAA 的前 rrr 行,因为这些行可能相关。AAA 的无关行最后就是 RRR 的主元行。
2、 AAA 列空间的维度是 rrr。列秩等于行秩。
秩定理:无关列的个数=无关行的个数\pmb{秩定理:无关列的个数 = 无关行的个数}秩定理:无关列的个数=无关行的个数AAARRR 有相同的列空间” 这句话是错误的。错误理由: RRR 的列通常是以 000 结束的,但是 AAA 的列不常以 000 结束,因此 C(A)≠C(R)\pmb C(A)\neq \pmb C(R)C(A)=C(R)
正确的理由AAARRR 相同列的组合都是零(或非零)。AAA 中相关 ⇔\Leftrightarrow RRR 中相关。换句话说:当 Rx=0R\boldsymbol x=\boldsymbol 0Rx=0 时,才有 Ax=0A\boldsymbol x=\boldsymbol 0Ax=0。列空间不同,但是它们的维度是相同的,都等于 rrr结论:A 的 r 个主元列是它列空间 C(A) 的一组基。结论:A\,的\,r\,个主元列是它列空间\,\pmb C(A)\,的一组基。结论:Ar个主元列是它列空间C(A)的一组基。3、AAARRR 有相同的零空间。相同的维度 n−rn-rnr 和相同的基。
理由: 消元步骤不改变解,特殊解是零空间的一组基。有 n−rn-rnr 个自由变量,因此维度也是 n−rn-rnr。这就是计数定理(Counting Theorem):r+(n−r)=nr+(n-r)=nr+(nr)=n

(列空间的维度)+(零空间的维度)=Rn的维度(列空间的维度)+(零空间的维度)=\textrm {\pmb R}^n 的维度(列空间的维度)+(零空间的维度)=Rn的维度

4、AAA 的左零空间(ATA^TAT 的零空间)的维度是 m−rm-rmr
理由: ATA^TATAAA 本质上是一样的,当我们知道 AAA 每一个子空间的维度,就知道了 ATA^TAT 每一个子空间的维度。它的列空间已经证明了维度是 rrr,因为 ATA^TATn×mn\times mn×m 的矩阵,所以现在它零空间所在的整个空间就是 Rm\textrm {\pmb R}^mRm 空间。AAA 的计数规则是 r+(n−r)=nr+(n-r)=nr+(nr)=nATA^TAT 的计数规则就是 r+(m−r)=mr+(m-r)=mr+(mr)=m。大定理的所有细节也就得到了:

线性代数的基本定理,第一部分列空间和行空间的维度都是 r零空间和左零空间的维度分别是 n−r 和 m−r\begin{array}{l}\pmb{线性代数的基本定理,第一部分}\\ {}\\列空间和行空间的维度都是\,r\\零空间和左零空间的维度分别是\,n-r\,和\,m-r\end{array}线性代数的基本定理,第一部分列空间和行空间的维度都是r零空间和左零空间的维度分别是nrmr

我们聚焦于向量空间,而不是个别的数字或向量,得到了这些清晰的规则。有时候会很明显,但是对于一个 11×1711\times1711×17 的矩阵有 187187187 个非零单元的话,可能就不那么明显了,但是仍然有:两个关键的事实C(A)的维度=C(AT)的维度=A 的秩C(AT)的维度+N(A)的维度=17\pmb{两个关键的事实}\kern 10pt\begin{array}{l}\pmb C(A)的维度=\pmb C(A^T)的维度=A\,的秩\\\pmb C(A^T)的维度+\pmb N(A)的维度=17\end{array}两个关键的事实C(A)的维度=C(AT)的维度=A的秩C(AT)的维度+N(A)的维度=17例1A=[123]A=\begin{bmatrix}1&2&3\end{bmatrix}A=[123]m=1,n=3m=1,n=3m=1,n=3,秩 r=1r=1r=1
行空间是 R3\pmb{\textrm R}^3R3 中的一条线;零空间是平面 Ax=x1+2x2+3x3=0A\boldsymbol x=x_1+2x_2+3x_3=0Ax=x1+2x2+3x3=0,这个平面的维度是 222(即 3−13-131)。它们的维度相加 1+2=31+2=31+2=3
这个 1×31\times31×3 矩阵的列在 R1\textrm {\pmb R}^1R1 中,它的列空间就是整个 R1\pmb{\textrm R}^1R1;左零空间只有零向量,ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0 的唯一解就是 y=0\boldsymbol y = \boldsymbol 0y=0[123]\begin{bmatrix}1&2&3\end{bmatrix}[123] 没有其它的倍数可以得到零行。因此 N(AT)\pmb N(A^T)N(AT) 就是 Z\pmb {\textrm Z}Z,它的维度是 000(即 m−rm-rmr)。在 R1\pmb {\textrm R}^1R1 中,C(A)\pmb C(A)C(A)N(AT)\pmb N(A^T)N(AT) 的维度相加 1+0=11+0=11+0=1。【例2A=[123246]A=\begin{bmatrix}1&2&3\\2&4&6\end{bmatrix}A=[122436]m=2,n=3m=2,n=3m=2,n=3,秩 r=1r=1r=1
与例1相同,行空间也是一条穿过 (1,2,3)(1,2,3)(1,2,3) 的直线;零空间是同样的平面 x1+2x2+3x3=0x_1+2x_2+3x_3=0x1+2x2+3x3=0。这条线和平面的维度相加仍然是 1+2=31+2=31+2=3
所有的列都是第一列 (1,2)(1,2)(1,2) 的倍数。两倍的行 111 减去行 222 得到零行,因此 ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0 有解 y=(2,−1)\boldsymbol y=(2,-1)y=(2,1)。列空间和左零空间是 R2\pmb {\textrm R}^2R2 中两条垂直的直线。维度相加 1+1=21+1=21+1=2列空间=穿过[12]的直线左零空间=穿过[2−1]的直线列空间=穿过\begin{bmatrix}1\\2\end{bmatrix}的直线\kern 10pt左零空间=穿过\begin{bmatrix}\kern 7pt2\\-1\end{bmatrix}的直线列空间=穿过[12]的直线左零空间=穿过[21]的直线如果 AAA 有三个相等的行,则它的秩是 111。那么左零空间的两个 y\boldsymbol yy 是什么?左零空间中的 y′s 是得到零行的组合。左零空间中的\,\boldsymbol y's\,是得到零行的组合。左零空间中的ys是得到零行的组合。例3】如 Figure3.6 所示,每一条边对应一个方程,每个节点对应一个未知数。Ax=bA\boldsymbol x=\boldsymbol bAx=b 中的矩阵 AAA 是一个关联矩阵(incidence matrix),AAA 的每一行都有一个 111−1-11

差分Ax=b在节点 1,2,3,4 之间有 5 条边 1,2,3,4,5−x1+x2=b1−x1+x3=b2−x2+x3=b3−x2+x4=b4−x3+x4=b5(3.5.3)\begin{array}{l}差分A\boldsymbol x=\boldsymbol b\\在节点\,1,2,3,4\,之间\\有\,5\,条边\,1,2,3,4,5\end{array}\begin{array}{l}-x_1+x_2\kern 44pt=b_1\\-x_1\kern 22pt+x_3\kern 22pt=b_2\\\kern 22pt-x_2+x_3\kern 22pt=b_3\\\kern 22pt-x_2\kern 22pt+x_4=b_4\\\kern 44pt-x_3+x_4=b_5\end{array}\kern 15pt(3.5.3)差分Ax=b在节点1,2,3,4之间5条边1,2,3,4,5x1+x2=b1x1+x3=b2x2+x3=b3x2+x4=b4x3+x4=b5(3.5.3)

如果理解了四个基本子空间(AAAATA^TAT 的列空间和零空间),那么就抓住了线性代数的中心概念。在这里插入图片描述
零空间 N(A)\pmb N(A)N(A):为了求零空间,设 b=0\boldsymbol b=\boldsymbol 0b=0。那么第一个方程就是 x1=x2x_1=x_2x1=x2,第二个方程是 x1=x3x_1=x_3x1=x3,第四个方程是 x2=x4x_2=x_4x2=x4,四个未知数 x1,x2,x3,x4x_1,x_2,x_3,x_4x1,x2,x3,x4 有相同的值 ccc。向量 x=(c,c,c,c)\boldsymbol x=(c,c,c,c)x=(c,c,c,c) 填满了 AAA 的零空间。
零空间是 R4\textrm {\pmb R}^4R4 中的一条线,特殊解 x=(1,1,1,1)\boldsymbol x=(1,1,1,1)x=(1,1,1,1)N(A)\pmb N(A)N(A) 的一组基,N(A)\pmb N(A)N(A) 的维度是 111(因为基中只有一个向量)。AAA 的秩是 333,因为 n−r=4−3=1n-r=4-3=1nr=43=1。那么现在我们就可以知道四个子空间的维度了。
列空间 C(A)\pmb C(A)C(A):因为 r=3r=3r=3,所以一定有 r=3r=3r=3 个无关列。快的方法是看前三列,系统性的方法是求出 R=rref(A)R=rref(A)R=rref(A)A 的 1,2,3 列−110−1010−110−1000−1R=简化行阶梯形式=[100−1010−1001−100000000]\begin{array}{l}A\,的\,1,2,3\,列\end{array}\begin{array}{rrr}-1&1&0\\-1&0&1\\0&-1&1\\0&-1&0\\0&0&-1\end{array}\kern 15ptR=简化行阶梯形式=\begin{bmatrix}1&0&0&-1\\0&1&0&-1\\0&0&1&-1\\0&0&0&\kern 7pt0\\0&0&0&\kern 7pt0\end{bmatrix}A1,2,3110001011001101R=简化行阶梯形式=10000010000010011100RRR 中也可以看到特殊解是 x=(1,1,1,1)\boldsymbol x=(1,1,1,1)x=(1,1,1,1)。前三列是无关的,第四列是自由列。为了得到 C(A)\pmb C(A)C(A)(不是 C(R)\pmb C(R)C(R))的一组基,需要回到矩阵 AAA 的列 1,2,31,2,31,2,3,列空间的维度是 r=3r=3r=3
行空间 C(AT)\pmb C(A^T)C(AT):行空间的维度也是 r=3r=3r=3,但是 AAA 的前三行是相关的:row 3=row 2−row 1\textrm{row}\,3=\textrm{row\,2}-\textrm{row}\,1row3=row2row1。因此消元后第三行会变成零,第三行会被交换到第四行。前三个无关行是行 1,2,41,2,41,2,4。这三行也是行空间的一组基。
注意到图中的边 1,2,31,2,31,2,3 形成了一个回路(loop):行 1,2,31,2,31,2,3 是相关行。图中的行 1,2,41,2,41,2,4 形成一个(tree) ,树没有回路!1,2,41,2,41,2,4 是无关行。
左零空间 N(AT)\pmb N(A^T)N(AT):我们现在求解 ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0,即使得行为零的组合。我们已经注意到 row 3=row 2−row 1\textrm {row}\,3=\textrm {row}\,2-\textrm{row}\,1row3=row2row1,因此一个解是 y=(1,−1,1,0,0)\boldsymbol y=(1,-1,1,0,0)y=(1,1,1,0,0)。有一个结论:y\boldsymbol yy 来自于图上面一个回路。另一个 y\boldsymbol yy 来自于图的下面一个回路:y=(0,0,−1,1,−1)\boldsymbol y=(0,0,-1,1,-1)y=(0,0,1,1,1)row 3=row 4−row 5\textrm{row}\,3=\textrm{row}\,4-\textrm{row}\,5row3=row4row5。这两个 y′s\boldsymbol y'sys 是无关的,它们都是 ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0 的解,N(AT)\pmb N(A^T)N(AT) 的维度是 m−r=5−3=2m-r=5-3=2mr=53=2。因此它们是左零空间的一组基。
那么 “回路” 和 “树” 是怎么进入到这个问题中的呢?实际上我们并不是非要这样做。我们可以使用消元法去求解 ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0ATA^TAT 是一个 4×54\times54×5 的矩阵,它有三个主元列 1,2,41,2,41,2,4 和两个自由列 3,53,53,5;有两个特殊解所以 ATA^TAT 的零空间是 222m−r=5−3=2m-r=5-3=2mr=53=2。但是回路和树可以用一种很美妙的方法来鉴别相关行和无关行。
方程 Ax=bA\boldsymbol x=\boldsymbol bAx=b444 个节点上得到电压 x1,x2,x3,x4x_1,x_2,x_3,x_4x1,x2,x3,x4,方程 ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0555 条边上得到电流 y1,y2,y3,y4,y5y_1,y_2,y_3,y_4,y_5y1,y2,y3,y4,y5。这两个方程分别是基尔霍夫电压定律(Kirchhoff’s Voltage Law)和基尔霍夫电流定律(Kirchhoff’s Current Law),这是应用在电路上的术语。但是隐藏在术语后的思想可以应用在所有的工程、科学、经济和商务。
图是离散应用数学中最重要的模型,我们可以在任何地方看到它:路、管道、血液流动、大脑、网络、国家或世界的经济。我们可以了解它们的矩阵 AAAATA^TAT

四、秩一矩阵

假设每行都是第一行的倍数,下面是一个典型的例子:[23782a3a7a8a2b3b7b8b]=[1ab][2378]=uvT\begin{bmatrix}2&3&7&8\\2a&3a&7a&8a\\2b&3b&7b&8b\end{bmatrix}=\begin{bmatrix}1\\a\\b\end{bmatrix}\begin{bmatrix}2&3&7&8\end{bmatrix}=\boldsymbol u\boldsymbol v^T22a2b33a3b77a7b88a8b=1ab[2378]=uvT左边的矩阵有三行,但是它的行空间维度 r=1r=1r=1。行向量 vT=[2378]\boldsymbol v^T=\begin{bmatrix}2&3&7&8\end{bmatrix}vT=[2378] 告诉了我们行空间的一组基。行秩为 111
现在看一下列,“列秩等于行秩等于 111”。所有的列都是第一列的倍数。列向量 u=[1ab]\boldsymbol u=\begin{bmatrix}1&a&b\end{bmatrix}u=[1ab] 乘上 2,3,7,82,3,7,82,3,7,8。非零向量 u\boldsymbol uu 是列空间的基。列秩也是 111

每个秩一矩阵都是一列乘上一行A=uvT\kern 10ptA=\boldsymbol u\boldsymbol v^TA=uvT

五、秩二矩阵 = 秩一加秩一

矩阵 AAA 的秩 r=2r=2r=2,我们无法立即看出 AAA 的秩 rrr 是多少,因此我们通过行运算简化成矩阵 R=rref(A)R=rref(A)R=rref(A)。一些消元矩阵 EEE 可以简化 AAARRR,有 EA=REA=REA=R,则逆矩阵 C=E−1C=E^{-1}C=E1 可以将 RRR 恢复到 A=CRA=CRA=CR
这里的重点是:RRRAAA 有相同的行空间。秩二A=[1031174220]=[100110421][103014000]=CR(3.5.4)\pmb{秩二}\kern 10ptA=\begin{bmatrix}1&0&3\\1&1&7\\4&2&20\end{bmatrix}=\begin{bmatrix}\pmb1&\pmb0&0\\\pmb1&\pmb1&0\\\pmb4&\pmb2&1\end{bmatrix}\begin{bmatrix}\pmb1&\pmb0&\pmb3\\\pmb0&\pmb1&\pmb4\\0&0&0\end{bmatrix}=CR\kern 15pt(3.5.4)秩二A=1140123720=114012001100010340=CR(3.5.4)可以很明显的看到 RRR 的两个基向量 v1T=[103]\boldsymbol v_1^T=\begin{bmatrix}1&0&3\end{bmatrix}v1T=[103]v2T=[014]\boldsymbol v_2^T=\begin{bmatrix}0&1&4\end{bmatrix}v2T=[014]。因此 AAA 的行空间也有同样的基:行秩=2行秩 = 2行秩=2CCCRRR 表明 AAA 的行 3334v1T+2v2T4\boldsymbol v_1^T+2\boldsymbol v_2^T4v1T+2v2T
现在来看列。RRR 的主元列是 (1,0,0)(1,0,0)(1,0,0)(0,1,0)(0,1,0)(0,1,0),那么 AAA 的主元列也是列 111 和列 222u1=(1,1,4),u2=(0,1,2)\boldsymbol u_1=(1,1,4),\boldsymbol u_2=(0,1,2)u1=(1,1,4)u2=(0,1,2)。注意 CCC 的前两列和 AAA 的相同!这是可以被保证的,因为 CCC 乘上 RRR 前两列的单位矩阵并不会改变主元列 u1\boldsymbol u_1u1u2\boldsymbol u_2u2
如果将这些字母放在列和行中,则就可以看到 Rank 2 = rank 1+Rank 1\pmb{\textrm{Rank\,2\,=\,rank\,1+Rank\,1}}Rank2=rank1+Rank1秩二矩阵 AA=[u1u2u3][v1Tv2T0]=u1v1T+u2v2T=(rank 1)+(rank 1)秩二矩阵\,A\kern 15ptA=\begin{bmatrix}\boldsymbol{u_1}&\boldsymbol u_2&\boldsymbol u_3\end{bmatrix}\begin{bmatrix}\boldsymbol v_1^T\\\boldsymbol v_2^T\\\boldsymbol 0\end{bmatrix}=\boldsymbol u_1\boldsymbol v_1^T+\boldsymbol u_2\boldsymbol v_2^T=\textrm{(rank\,1)+(rank\,1)}秩二矩阵AA=[u1u2u3]v1Tv2T0=u1v1T+u2v2T=(rank1)+(rank1)上述最后一个步骤,利用矩阵的列乘行,对这个问题是个完美的方法。每个秩 rrr 的矩阵都是 rrr 个秩一矩阵的和:AAA 的主元列乘上 RRR 的非零行,行 [000]\begin{bmatrix}0&0&0\end{bmatrix}[000] 也消失了。
主元列 u1\boldsymbol u_1u1u2\boldsymbol u_2u2 是列空间的一组基。

六、主要内容总结

  1. RRRrrr 个主元行是 RRRAAA 行空间的一组基(它们行空间相同)。
  2. AAArrr 个主元列是列空间 C(A)\pmb C(A)C(A) 的一组基。
  3. n−rn-rnr 个特殊解是 AAARRR 零空间(相同的零空间)的一组基。
  4. 如果 EA=REA=REA=R,则 EEE 的最后 m−rm-rmr 行是 AAA 左零空间的一组基。

四个子空间的注释: 基础定理看起来很像纯代数,但是它有非常重要的应用。关于左零空间中的 y\boldsymbol yy 的方程是 ATy=0A^T\boldsymbol y=\boldsymbol 0ATy=0流入一个节点等于流出,基尔霍夫电流定律是一个“平衡方程”流入一个节点等于流出,基尔霍夫电流定律是一个“平衡方程”流入一个节点等于流出,基尔霍夫电流定律是一个平衡方程平衡方程是应用数学中最重要的方程,所有的科学、工程和经济都与平衡有关 —— 力、热流、电荷、动量或金钱的平衡。平衡方程,加上胡克定律、欧姆定律、或是位能到流量的相关定律,给了应用数学一个清晰的框架。

七、例题

例4】将 444111 放入 5×65\times65×6 的零矩阵中,描述所有使得它的行空间的维度尽可能小的方法;描述出所有使它列空间的维度尽可能小的方法;描述所有使得它零空间的维度尽可能小的方法。如何让它四个子空间的和最小?
解: 如果 444111 放在同一行或同一列,则它的秩为 111,也可以放在两行和两列(例如 aii=aij=aji=ajj=1a_{ii}=a_{ij}=a_{ji}=a_{jj}=1aii=aij=aji=ajj=1 这种情况),因为行空间和列空间总是有相同的维度,前两问题的维度是 111
当矩阵的秩 r=4r=4r=4 时,零空间的维度最小 6−4=26-4=264=2,此时需要 444111 要在不同的行也要在不同的列。
四个子空间维度的和 r+(n−r)+r+(m−r)=n+mr+(n-r)+r+(m-r)=n+mr+(nr)+r+(mr)=n+m,无论我们将 111 怎么放,它们维度的和都是 6+5=116+5=116+5=11,就算这个矩阵里没有任何 111,和仍然是 111111

例5事实:ABABAB 所有行都是 BBB 行的组合,因此 ABABAB 的行空间包含在(可能相等) BBB 的行空间中。Rank(AB)≤Rank(B)\pmb{\textrm{Rank}(AB)\leq \textrm{Rank}(B)}Rank(AB)Rank(B)
ABABAB 所有列都是 AAA 列的组合,因此 ABABAB 的列空间包含在(可能相等)AAA 的列空间中。Rank(AB)≤Rank(A)\pmb{\textrm{Rank}(AB)\leq\textrm{Rank}(A)}Rank(AB)Rank(A)
如果左乘一个可逆矩阵,秩不会改变。

<think>好的,我需要帮助用户了解如何在MATLAB中查看工作空间的使用情况。首先,我需要回顾一下用户提供的引用内容,尤其是引用[1]、[2]、[3]、[5],因为这些部分提到了工作空间的基本操作、变量的保存以及内存查看。 根据引用[1],MATLAB的工作空间窗口位于操作桌面的左上角,可以显示变量的名称、大小、字节数和类型。用户可以通过双击变量查看详细信息。这可能是一个直接的方法来查看工作空间中的变量及其占用情况。 接下来,引用[5]详细说明了如何查看内存使用情况,包括物理内存、交换页面、虚拟内存和最大连续可用内存块。用户提到可以使用`memory`命令来获取这些信息。我需要确认这个命令的具体用法,并考虑是否需要提供示例代码。 另外,用户可能还想知道如何通过命令行查看工作空间中的变量,比如使用`whos`命令,这可以列出所有变量的详细信息,如大小、字节数等。引用[1]和[2]提到工作空间存储变量,所以`whos`和`who`命令是相关的。 还需要考虑变量的保存和载入,引用[3]提到了`save`和`load`命令,但用户的问题是关于查看使用情况,所以这部分可能不需要详细展开,但可以作为补充信息。 另外,用户可能需要知道如何实时监控内存使用情况,例如使用性能监控工具或任务管理器,但MATLAB本身是否有内置的功能呢?引用[5]中的`memory`函数可能已经足够,但可能需要进一步解释。 总结步骤: 1. 使用工作空间窗口直观查看变量信息。 2. 使用`whos`和`who`命令在命令行查看变量详情。 3. 使用`memory`命令检查整体内存使用情况。 4. 使用任务管理器或活动监视器查看MATLAB进程的内存占用。 5. 结合数组编辑器查看具体变量内容。 需要确保每个步骤都正确引用相关来源,例如引用[1]对应工作空间窗口的操作,引用[5]对应`memory`命令。同时,要检查是否有其他方法,比如使用`profile`函数或第三方工具,但根据现有引用,可能不需要涉及这些。 最后,生成相关问题,如优化内存使用的方法、变量管理技巧等,确保问题与主题相关。</think>在MATLAB中查看工作空间使用情况可通过以下方法实现: --- ### 一、通过工作空间窗口直观查看 1. **基础信息查看** 工作空间窗口默认位于MATLAB界面左上角(图1),直接显示所有变量的名称、大小、字节数和类型[^1]。例如: - 变量`a`为双精度类型,占用`8字节 × 元素数` - 字符串`S1`会标注为`string`类型 2. **详细信息查看** 双击变量名称(如`S1`)会打开数组编辑器(图3),可查看具体数值或进行编辑。 --- ### 二、通过命令行获取详细信息 1. **`whos`命令** 输入`whos`会列出所有变量的详细信息,包括: - 变量名、大小(维度)、字节数、类型 ```matlab >> whos Name Size Bytes Class a 1x1 8 double S1 1x10 20 string ``` 2. **`memory`命令** 输入`memory`可查看整体内存使用情况[^5]: - **物理内存(RAM)**:已用/可用/总容量 - **交换空间(Swap)**:分页文件使用情况 - **虚拟内存**:地址空间分配 ```matlab >> [user, sys] = memory; >> disp(user) MaxPossibleArrayBytes: 3.5e+09 % 最大可用连续内存块 MemAvailableAllArrays: 4.2e+09 % 可用内存总量 ``` --- ### 三、外部工具监控 1. **操作系统任务管理器** - Windows任务管理器或macOS活动监视器中查看MATLAB进程的内存占用百分比。 - 适用于检测内存泄漏或大规模数据处理时的实时监控。 --- ### 、优化建议 - **清理无用变量**:使用`clear var_name`释放内存 - **分块处理数据**:避免一次性加载超大矩阵 - **使用稀疏矩阵**:针对高维稀疏数据节省空间 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值