1. 矩阵的零空间
矩阵A的零空间就Ax=0的解的集合。
零空间的求法:对矩阵A进行消元求得主变量和自由变量;给自由变量赋值得到特解;对特解进行线性组合得到零空间。
假设矩阵如下:
对矩阵A进行高斯消元得到上三角矩阵U,继续化简得到最简矩阵R:
由于方程Ax=0的右侧是零向量,所以只对矩阵A进行消元不会影响解,因此不需要增广矩阵,所以有:
从上面的高斯消元的结果可以看出,矩阵A的秩为2,其中第1,3列为主元列,2,4列为自由列,对应于方程主来说,形式转变如下:
从上式可以看出,x2,x4是自由变量,我们可以随意赋值, 或者
可以分别得到两个特解(几个自由变量就有几个特解):
,
然后我们将两组特解进行线性组合就得到了矩阵A的零空间:
上面我们从数值解的角度描述了矩阵零空间的求法,下面从公式角度分析:
上面我们经过消元( 行变换,不改变行空间和零空间,只改变列空间)得到了最简形式R。我们将R经过列变换得到如下矩阵:
我们可以对方程式作如下变形:
我们之所以进行上述变换,是为了有更好的表示形式(不进行列变换也行,但是要记住哪一列是单位矩阵I中的,哪一列是自由变量矩阵F中的):
这样我们代入方程式可以得到零空间矩阵:
所以,可得:
从上面的推导可以看出,得到的零空间矩阵的每一列就是我们前面的特解(注意要变换顺序!交换第2,3行,结果便和前面相同)。因此,我们可以从通过消元法得到最简式R,然后就可以直接得到零空间矩阵,则 零空间就是零空间矩阵各列向量的线性组合,而不需要像前面那样先给x2,x4赋值,然后回代到方程中得到两个特解,从而得到矩阵的零空间。
下面再举一例:
由于R本来就具有很好的形式,就不用进行列变换了:
于是通过解方程得到零空间矩阵:
注:最简矩阵R和零空间矩阵x在MATLAB中可以分别用命令rref(A),null(A,'r')得到
2. 矩阵的零空间和奇异值
什么叫做零空间的维度?是未知量x的维度(或者说未知数的个数n)吗?NO.
- 零空间就是齐次线性方程组Ax=0的全部解,
- 零空间的基就是基础解系,
- 零空间的维数是n-r(A), n是未知元的个数, r是A的秩.
- 性质:矩阵的秩等于矩阵的非零奇异值的个数(注:矩阵的秩不一定等于非零特征值的个数,例如非零的幂零矩阵的所有特征值都为0,但它的秩不为0)
- 所以:可以采用SVD分解,求出奇异值,奇异值中有几个0,那么零空间的维数就是几。
矩阵A
奇异值分解如下
S对角线的元素就是奇异值的3个值,零空间则是指Ax=0时,x的取值,有几个基础解系就代表这个零空间有几个维度。
如上图,秩为2,因此基础解析个数为 3 - 2 = 1,因此零空间中只有一个基础解系,也代表零空间只有一个维度。
参考:
奇异值和零空间_AutoGalaxy的博客-CSDN博客_由奇异值矩阵求零空间