作者 | 梁唐
出品 | 公众号:Coder梁(ID:Coder_LT)
大家好,日拱一卒,我是梁唐。
我们继续MIT的线性代数课程,这一节课主要讲的是方程
Ax=0的主变量、特解。是线性代数当中非常重要的知识点。这一节课老师讲得非常好,和国内的一些课程或者是书籍不太一样,在课堂上教授把完整的思维推导过程给演示了一遍,而不是只是简单给出一个结论或者是公式。
从这一节课开始会逐渐从概念和定义转到算法,从理论到实践,可以说是全程高能。
主变量
我们来看一个例子,现在我们有一个矩阵:
A= \begin{bmatrix} 1 & 2 & 2 & 2\\ 2 & 4 & 6 & 8\\ 3 & 6 & 8 & 10\\ \end{bmatrix}
我们想要求方程
Ax=0的解,我们观察一下会发现,第二列不是独立的,它刚好是第一列的两倍。接着我们对它进行消元,这个过程不会改变它对应的零空间,消元之后得到上三角矩阵
U。
A= \begin{bmatrix} 1 & 2 & 2 & 2\\ 2 & 4 & 6 & 8\\ 3 & 6 & 8 & 10\\ \end{bmatrix} \underrightarrow{消元} \begin{bmatrix} \underline{1} & 2 & 2 & 2\\ 0 & 0 & \underline{2} & 4\\ 0 & 0 & 0 & 0\\ \end{bmatrix} =U
消元之后得到的矩阵也有专有名词,叫做阶梯矩阵(echelon form matrix)。
消元之后,我们发现有一行全部为0,主元数量是2个,即上图当中划线元素。我们把消元之后主元的数量叫做矩阵的秩(rank),记作
r,所以在这个例子当中
r(A)=2。
我们把主元所在的列称为主列(pivots columns),其他的列称为自由列(free columns)。
特解
之所以叫做自由列,是因为对于方程
Ux=0来说,这些列对应的未知数可以被赋予任意值。在这个例子当中,对应
x_2和
x_4可以被赋予任意值,依然能够保证方程有解。
我们可以给这些自由列赋予特定值再去求解对应的主列,我们令
x_2=1,
x_4=0,再代入线性方程:
可以求出:
x=\begin{bmatrix}
-2\\
1\\
0\\
0
\end{bmatrix}
虽然我们只找到了一个解,但由于等式的右侧是0,所以我们给它乘上任何一个系数方程依然成立,所以我们找到的解可以发散成:
x=c\begin{bmatrix}
-2\\
1\\
0\\
0
\end{bmatrix}
同样地,我们再令
x_2=0, x_4=1,又可以求出一组解:
x=d\begin{bmatrix}
2\\
0\\
-2\\
1
\end{bmatrix}
这两个向量称为特解,特解的含义表示特定,指的是给自由变量赋予的特定的值。给自由变量赋予0或1的值(每次从自由变量中选一个赋为1,其余赋为0),而非其他数值。这些向量的任意倍都在零空间当中,所以我们就可以写出零空间的表示:
x=c\begin{bmatrix}
-2\\
1\\
0\\
0
\end{bmatrix}+d\begin{bmatrix}
2\\
0\\
-2\\
1
\end{bmatrix}
我们就把求
Ax=0,转化成了
Ux=0,并且通过求特解的方式求出了整个零空间。零空间包含的刚好就是所有特解的线性组合,特解的数量就对应自由变量的数量,即
n-r。
简化行阶梯形式
我们可以对
U矩阵继续简化,将主元上下的元素都变成0,并且把主元变成1。
U= \begin{bmatrix} \underline{1} & 2 & 2 & 2\\ 0 & 0 & \underline{2} & 4\\ 0 & 0 & 0 & 0\\ \end{bmatrix} \underrightarrow{化简} \begin{bmatrix} \underline{1} & 2 & 0 & -2\\ 0 & 0 & \underline{1} & 2\\ 0 & 0 & 0 & 0\\ \end{bmatrix} =R
我们一路变换下来,从
Ax=0,变成了
Ux=0,再到现在
Rx=0,它们的解都是一样的。
我们对
R矩阵再做一点微小的变形,通过列变换将主元放在一起,将自由变量放在一起,可以得到:
R= \begin{bmatrix} \underline{1} & 2 & 0 & -2\\ 0 & 0 & \underline{1} & 2\\ 0 & 0 & 0 & 0\\ \end{bmatrix} \underrightarrow{列交换} \left[ \begin{array}{c c | c c} 1 & 0 & 2 & -2\\ 0 & 1 & 0 & 2\\ \hline 0 & 0 & 0 & 0\\ \end{array} \right] = \begin{bmatrix} I & F \\ 0 & 0 \\ \end{bmatrix}
其中
I为单位矩阵,
F为自由变量组成的矩阵。我们要求它的零空间,相当于我们要求一个矩阵
N,使得
RN=0,它等价于
\begin{bmatrix}I & F\end{bmatrix}\begin{bmatrix}x_{pivot} \\ x_{free}\end{bmatrix}=0。
根据矩阵分块乘法的性质,我们可以很容易得到
N= \begin{bmatrix}-F\\I\end{bmatrix},对应的解为
x_{pivot} = -F,x_{free}=I。在当前例子当中:
N= \begin{bmatrix} -2 & 2 \\ 0 & -2 \\ 1 & 0 \\ 0 & 1 \\ \end{bmatrix},和刚才求到的特解一样。
实践
我们再来看一个例子来实践一下,这次我们选择的矩阵是
\begin{bmatrix}1 & 2 & 3\\ 2 & 4 & 6 \\ 2 & 6 & 8 \\ 2 & 8 & 10\end{bmatrix},它是之前例子中矩阵的转置矩阵。
接着,我们重复上面的步骤,进行消元和化简,得到简化行阶梯形式的矩阵
R。
A= \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 2 & 6 & 8 \\ 2 & 8 & 10 \\ \end{bmatrix} \underrightarrow{消元} \begin{bmatrix} 1 & 2 & 3 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \underrightarrow{化简} \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} =R
我们可以发现,这个矩阵的秩仍然是2,这里有一个结论
r(A) = r(A^T)。
我们可以写出它的零矩阵:
N=\begin{bmatrix}-F\\I\end{bmatrix}=\begin{bmatrix}-1 \\ -1 \\ 1\end{bmatrix}所以:
x=c\begin{bmatrix}-1 \\ -1 \\ 1\end{bmatrix}
喜欢本文的话不要忘记三连~