欢迎光临散文网 会员登陆 & 注册

线性代数本质系列(三)逆矩阵,列空间,秩与零空间,克莱姆法则

2023-04-27 12:52 作者:人工智能大讲堂  | 我要投稿

本系列文章将从下面不同角度解析线性代数的本质,本文是本系列第三篇

向量究竟是什么?

向量的线性组合,基与线性相关

矩阵与线性相关

矩阵乘法与线性变换复合

三维空间中的线性变换

行列式

逆矩阵,列空间,秩与零空间

克莱姆法则

非方阵

点积与对偶性

叉积

以线性变换眼光看叉积

基变换

特征向量与特征值

抽象向量空间

快速计算二阶矩阵特征值

张量,协变与逆变和秩


目录
逆矩阵,列空间,秩与零空间

克莱姆法则


逆矩阵,列空间,秩与零空间

前面我们已经通过直观的线性变换来理解矩阵与向量运算,也了解到了线性变换是如何描述对空间的操纵,这对计算机图形学和机器人学有很大的帮助,但线性代数的作用不仅限于此,今天我们从另一个角度来看看线性代数是如何帮助我们求解特殊线性方程组的。

 

上面提到的特殊线性方程组,这个“特殊”是指未知量都是一次的,并不包含其他特殊函数,例如指数,对数,n次方,三角函数等,且未知量都是通过乘上一个系数后进行相加操作,对于这样的方程组我们称为:多元一次线性方程组。

既然要用线性代数求解线性方程组,那就要将上面方程转换为矩阵和向量相乘的形式,我们将系数提取成系数阵,未知量提取成向量形式,结果提取成向量形式,最终转换为:%0A%5Cbegin%7Bequation*%7D%0AA%5Cvec%7Bx%7D%20%3D%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D


上面的矩阵乘法是不是很熟悉?这就是前面提到的矩阵与向量的乘法,它代表的几何含义是:向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D在矩阵A的作用下变换得到向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D,要想求解上面的方程组,也就是在空间中找到一个向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D在A的线性变换后与向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D重合。

上面的例子是三维空间中的变换,更直观的,接下来让我们看一个二维空间的例子:

那么如何判断%0A%5Cbegin%7Bequation*%7D%0AA%5Cvec%7Bx%7D%20%3D%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D是否有解呢?也就是说是否存在一个向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D经线性变换后能与向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D

重合呢?这就用到了前面我们讲过的行列式的知识了,在行列式章节中,我们说过,矩阵行列式代表变换前后空间的缩放比,根据行列式的不同,可以分为两种情况:行列式不为零和行列式为零。

行列式不为零:

矩阵行列式不为零意味着线性变换后空间维度不变,也就是说基向量没有被压缩到在一条直线上,或者一个点上,那就肯定存在一个向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D,也就是肯定能找到一个基向量缩放因子能与向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D重合;那如何求%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D呢?这时我们反向思考,刚才是找向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D在矩阵的作用下能与%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D重合,反过来就是:变换矩阵A的逆矩阵%0A%5Cbegin%7Bequation*%7D%0AA%5E%7B-1%7D%0A%5Cend%7Bequation*%7D作用在向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D上,变换后的向量就是我们要求的向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D

%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%20%3DA%5E%7B-1%7D%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D

这里我们再来直观的看一下逆矩阵的含义,例如,一个逆时针旋转90度的变换如下:

其对应的逆变换就是顺时针旋转90度:

对任意向量先施加一个变换,再施加逆变换,向量将回到原始状态,也就是说两个矩阵的乘积是一个恒等变换。

总结一下就是如果变换矩阵的行列式不为0,则线性方程组存在唯一解,这个在高维空间同样适用。

行列式为零:

当变换矩阵的行列式为零时,也就是说,基向量经过变换后落在了同一个直线上,或者一个点上,如果这个直线与向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D不共线,则找不到一个向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bx%7D%0A%5Cend%7Bequation*%7D %0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0Ax%5C%5C%0Ay%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D,能使得x*i_transformed+y*j_transformed能与向量v重合,也就是说不存在逆变换能让一条线解压缩成一个面;但如果这个直线与向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D共线,即便不存在逆变换,但仍可能存在解,且解的个数为无数个。

如上图,棕红色和绿色为变换后的基向量,黄色是结果向量%0A%5Cbegin%7Bequation*%7D%0A%5Cvec%7Bv%7D%0A%5Cend%7Bequation*%7D,这个同样适用于三维空间。


注意了,这时候我们又提出一个新的名词:秩,秩就代表变换后空间的维数,前面的例子中,如果变换矩阵的行列式为0,说明空间被压缩成了一条线,所以空间维度为1,也即是说秩为1;如果变换矩阵的行列式不为零,说明空间没有被压缩,原空间为2维,变换后的空间也是2维,秩就是2,原空间是三维,变换后的空间也是3维,秩就是3;秩就代表变换后空间的维数,不管变换结果是一条直线,一个平面还是三维空间,所有可能变换结果的几何叫做矩阵的列空间。

秩的名字是如何得来的呢?如上图,矩阵的列代表基向量变换后的位置,换句话说,列空间就是矩阵的列张成的空间,秩就是列空间的维数,当秩达到最大值时,秩与列数相等,这种情况我们称为满秩。

如下图,线性变换一定保持原点位置不变,原点也就是零向量,满秩时,原点是唯一一个经变换后还落在原点位置的向量,非满秩时,由于空间被压缩,所以会有一些列的向量被压缩到原点上。


克莱姆法则

前面我们从线性代数的角度来理解线性方程组,但并没有给出一个具体的求解方法,今天我们就来看一个计算法则以及其背后的几何原理:克莱姆法则。


       先声明一下,克莱姆法则并不是求解线性方程组最高效的方法,相比而言,高斯消元法计算的更快,学习克莱姆法则是为了扩展知识面以及加深对线性方程组的理解。

       下面我们就以一个简单的例子出发,注意,克莱姆法则可以扩展到任意个未知数。

通过前面章节的学习,我们知道可以将上面方程组转换成矩阵乘法的形式:

矩阵的前两列代表基向量变换后的坐标:

现在的问题就是求解哪个向量在变换后会变成%0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0A-4%5C%5C%0A-2%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D

一种思路是,输出矩阵%0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0A-4%5C%5C%0A-2%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D是矩阵列向量的线性组合,现在要做的就是求出x,y的值。

前面章节我们说过,方程组是否有解,依赖于矩阵行列式的值,行列式为0,方程无解或者有无数解,行列式不为0,方程组有唯一解,本文只讨论行列式不为0的情况。


在正式讲克莱姆法则之前,先让我们看一个错误的求解思路,我们知道向量可以分解为基向量的线性组合,如下图,变换之前,先计算出未知向量%0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0Ax%5C%5C%0Ay%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D在基向量上的分量。

并且假设变换后仍然满足上面的向量分解法则:

理想很美满,但现实很骨感,很可惜,上面的公式很可能是不成立的,因为变换后的基向量很可能是不垂直的,也可能被拉伸了,例如上图红色和绿色箭头就是变换后的基向量。


       那所有的变换都不满足上面的公式吗?有一种变换很特殊,经过它的变换后,基向量仍然垂直,且长度不变,更一般地,变换前垂直的向量,变换后仍然垂直,这种变换就是正交变换,这在计算机图形学中对应的是刚体运动,也就是该变换既没有拉伸,压缩或者变形。



所以,如下图所示,用正交矩阵来解决线性关系问题会非常方便:

变换前:

既然是正交变换,所以下面公式在变换后仍然成立,下面公式,第一个是目标向量,第二个是基向量变换后的位置,且都是已知的。

最终的结果:

虽然正交变换是一种特例,但给我们提供了一种思路,接下来就要进入今天的正题了,如下图,未知向量%0A%5Cbegin%7Bequation*%7D%0Adet(%20A)%20y%0A%5Cend%7Bequation*%7D和i形成的面积就就等于坐标y。

同理,未知向量%0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0Ax%5C%5C%0Ay%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D和j形成的面积就就等于坐标x。


同样,三维坐标系下可以将立方体的体积与x,y,z坐标关联起来。

那为什么我们要将平行四边形的面积,立方体的体积与坐标关联起来呢?根据前面章节学习的知识,当对未知向量施加一个线性变换后,面积和体积的比例会发生变化。

变换前

                                                        

变换后

                                                               

根据前面章节学到的知识,当提到面体,体积的变换比例时,我们是不是立马想起行列式了!面积伸缩的比例就等于变换矩阵的行列式。

变换前,平行四边形的面积等于y值,变换后,四边形的面积按照变换矩阵行列式进行缩放,其面积等于%0A%5Cbegin%7Bequation*%7D%0Adet(%20A)%20y%0A%5Cend%7Bequation*%7D

   变换前

                                                     

   变换后

                                                     


那么我们就可以变换后的面积和行列式的值求出y:

那如何求变换后的面积呢?我们已经知道变换后的结果向量的坐标%0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0A4%5C%5C%0A2%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D,则其与i组成的四边形的面积就可以用矩阵%0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0A2%20%26%204%5C%5C%0A0%20%26%202%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D的行列式表达,该矩阵就代表%0A%5Cbegin%7Bequation*%7D%0A%5Cbegin%7Bbmatrix%7D%0A1%20%26%20x%5C%5C%0A0%20%26%20y%0A%5Cend%7Bbmatrix%7D%0A%5Cend%7Bequation*%7D的变换矩阵,其行列式值代表变换前后的面积变化比例。

以同样的方式我们就可以求出另一个变量x的值:

对于三维而言也是同样的道理:

以上就是克莱姆法则。


线性代数本质系列(三)逆矩阵,列空间,秩与零空间,克莱姆法则的评论 (共 条)

分享到微博请遵守国家法律