c语言求ax b =0,MIT线性代数总结笔记——Ax=0和Ax=b

编程入门 行业动态 更新时间:2024-10-26 19:27:53

c语言求ax   b =0,MIT<a href=https://www.elefans.com/category/jswz/34/1750895.html style=线性代数总结笔记——Ax=0和Ax=b"/>

c语言求ax b =0,MIT线性代数总结笔记——Ax=0和Ax=b

求解Ax=0

消元法求解零空间

那么我们如何求解

呢?还是使用消元法,之前我们说使用消元法求解方程

时,我们对一种情况是无法处理的,那就是矩阵

不可逆的情况,之前对这种情况的解释是求出的解不唯一,这其实正好对应了现在我们所认识到的“空间”的概念。我们从最简单的零空间(

)的计算谈起。

例1:

,求

中的

构成的零空间

先将方程写出,如下

首先观察矩阵

我们发现,第三行是前两行的和,这意味着即使主元为

,我们也得继续消元下去。那么按部就班,有

在消元的过程中,我们发现矩阵

的主元(Pivot)数量为

(

),主元的个数称为矩阵的秩(Rank),因此在本题中矩阵

的秩为

接下来就是回代求解了,由于消元得到的

不是一个严格的上三角矩阵,对角线上的

给我们造成了解不唯一的麻烦,所以这里我们先来声明几个概念

中,列

被称为主列(Pivot Columns,主元所在的列),其余两列

被称为自由列(Free Columns),所谓自由列就是表示其对应的未知变量

(

表示自由列是第

列)可以被任意分配值。因为回代求解时,只有主列对应的未知数的解有确定值。因此矩阵

中的主变量(主元)为

为自由变量。

(1)我们假设,令

,代入方程

解得

因此当

时,解向量为

,这只是零空间中的一个解,这个解表示

倍的列

倍的列

,如果想找出更多零向量中的解,我们只需要求它的倍数,所以

,这是一条在四维空间中无限延伸的直线,但它不是整个零空间。

(2)我们再令

,代入方程

解得

因此当

时,解向量为

,因此另一条在四维空间中的直线为

那么还能为

赋其他值吗?很明显其他情况都可以被

的线性组合所涵盖,所以这两个解向量足够代表空间的特征了,我们称这两个解向量为特解,其特殊之处在于我们给自由变量赋值为

。通过特解的任意倍的线性组合,可以构造出整个零空间。因此便得出了矩阵

的零空间

算法总结

对于一个

的矩阵A,若其秩为

,那么意味着其主变量为

个,而自由变量为

个。也就是说,只有

列起作用。我们需要先对矩阵

进行消元,得到

个主元,由于有

个变量

,我们再将其中的

个自由变量依次赋值为

。接着求解方程的特解,将特解的任意倍进行线性组合即可得到矩阵

的零空间。

简化阶梯形式

尽管上面的消元法看上去已经很完美了,但事实上仍有化简的余地,最后得到的

矩阵仍可以被进一步化简。我们以上文中的

为例,继续化简的目标是令对角线上的主元为1,并且通过列交换将主元放在一起,把自由列放在一起来构成新的矩阵,操作如下

也就是说最终我们能将上三角矩阵

化简成矩阵

,矩阵

的一般形式为

其中,

表示主列,由于

个主列的主元被化简成了

,因此这部分变成了

维单位矩阵,

表示自由列,共有

个自由列。有了矩阵

我们可以改写

的表达形式

这里的

为零空间矩阵,即各列向量由特解组成的矩阵

需要注意的是,这里的单位矩阵和矩阵

中的有所不同,这里的

维的,是将

个自由变量分别赋值为

得到的。将上文中的示例代入到

,得到

由于

是主列,

是自由列,因此只需交换零空间矩阵中的第2、3行即可得到特解

。因此将矩阵

化简称矩阵

可以直接求解零空间。我们用下面一个例题来试验一下:

,求解

构成的零空间。

(1)将

消元为

(2)将

化简为

(3)得到零空间矩阵

(4)得到零空间:

求解Ax=b

Ax=b的可解性

对于

我们知道这个方程不一定有解,在之前的章节中说明了

是否有解取决于

是否在

的列空间中,我们再通过一个例子来说明一下

例 求方程

的可解条件。

在这个方程中,观察矩阵A,发现矩阵中第三行为第一行和第二行的和。根据之前的Gauss-Jordan消元法,我们可以得到

代入方程,会发现最后一行

,这一行方程必须成立,因此这一行就是方程的可解条件。同时,它还反映了

向量的第三个分量是前两个分量之和,这也与矩阵

的特点一致,这也印证了

是否有解取决于

是否在

的列空间中。

结合之前的章节总结出

有解条件:

列空间角度:当且仅当

属于

的列空间时成立

线性组合角度:当且仅当

各列的线性组合时成立

矩阵变换角度:如果

各行线性组合后得到零行,那么

取相同运算方式也必将得到

求解Ax=b

接下来介绍通解和特解,通解就是满足方程所有的解,将“无穷解”用一种形式表达出来,对于

这个方程

因为矩阵零空间向量代入方程最后结果等于

,所以它不会影响等式,而是把方程的解向量扩展到一个类似子空间上,使我们求出的解更具有普遍意义,而求解零空间我们在上文也已经介绍,下面我们只需要关注如何求特解即可。在之前求解

方程的特解时,我们分别将自由变量赋值为

,得到

观察这个表达式会发现,只要将系数

定为

就可以得到零空间中的零向量,而且我们不能在求解

时将自由变元都赋为

。但是在

中,只要

不是

,我们就可以将自由变元全部赋为

,使用此方法即可得到特解。

接下来补充上述例题中方程的条件

Gauss-Jordan消元后得到

回代方程得到

解得特解为

利用上一节的知识我们很容易求出

的零空间为

因此

的解为

这个解集在几何角度的解释是

上的一个不过原点的二维平面,显然这个解集无法构成一个向量空间,因为解集中不包含零向量。

矩阵的秩与解的关系

我们在消元求

的过程中会发现,矩阵的秩对最后解的形式有着重要的影响,下面我们来总结一下其中的规律。

列满秩

对于

的矩阵

,列满秩时,意味着没有自由列,

,此时零空间中只有零向量(不需要求零空间),

的解要么有解且唯一(特解

),要么无解。例如

消元,由于两列线性无关,因此只有两个主元,逐行减去第一行的若干倍,行三和行四清零,得到第二个主元,然后各行都减去第二个主元的若干倍,最终第二个主元化为

的得到矩阵

行满秩

对于

的矩阵

,行满秩时,意味着有

个主元(每一行各一个),

,此时自由变元有

个,必然有解而且有无穷多解,例如

最后我们会消元得到

行列满秩

对于

的矩阵

,行列满秩时,意味着矩阵可逆,

,此时自由变元有

个,经过消元,最终矩阵可化为单位矩阵

,即一个全是主元的方程组,最终只能有一个唯一解。例如

最后消元得到

不满秩

对于

的矩阵

,不满秩时,意味着通过消元最终会得到

,因此方程的解要么无解,要么无穷多解(特解+零空间所有向量)

小结

综上所述,会发现自由变量总为

个,所以通过判断自由变元的个数可以初步判断

的解的结构:如果没有自由变元,意味着方程的解唯一或者无解;如果存在自由变元,意味着方程的解有无穷多解或者无解。也就是说,自由变元是否存在决定了方程的解是否唯一。另一点是,可以通过观察消元后矩阵

是否存在

行来进一步判断方程是否有解:如果矩阵

中没有零行时,意味着方程一定有解;如果存在零行,则需要考虑方程是否满足可解条件。

除此之外,我们还发现了零空间实际上就是用来判断矩阵

的各列向量是否是线性无关的,如果各列向量是线性无关的,那么零空间中只有零向量,如果各列向量是线性相关的,那么零空间中除了零向量还有其他向量。因此零空间反映的就是

各列向量的线性组合。

关于Ax=b的另一种解释

当我们求解方程时,例如

矩阵表达如下

除了使用消元法或判断矩阵是否满秩以外,我们还可以从列空间的角度来看这个方程,改写一些这个矩阵表达如下

那么我们判断这个方程是否有解的条件实际上就是判断向量

是否在以向量

和向量

构成的列空间中,换句话说,向量

是否可以表达成向量

和向量

的线性组合。由于向量

和向量

是线性相关的,因此可以张成一个二维平面,而向量

只是其中的一个二维向量,因此可以推断出方程一定有解。

更多推荐

c语言求ax b =0,MIT线性代数总结笔记——Ax=0和Ax=b

本文发布于:2024-03-08 13:03:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720953.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:线性代数   语言   笔记   MIT   ax

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!