不满秩的Ax=0和Ax=b计算过程详解
已知:3x3矩阵A如下图所示
Part I:齐次方程组Ax=0的解法
Ax=0(令自由变量为一指定常数的解法)
令b等于0,得到齐次方程组Ax=0。
求解步骤如下:
1,先把原始矩阵A化简到最简阶梯形矩阵R(Reduced row echelon form)。即,令矩阵主对角线位置的主元为1,主元上下全部消为0。
2,对不满秩矩阵R(即,的方程组),基于矩阵的维数n,矩阵的秩r(Rank)求出特解的个数=n-r(对于mxn矩阵而言)。确定主元列和主元变量,自由列和自由变量。
3,逐个的令某一个自由变量为1,剩下的自由变量为0,代入方程组Rx=0,求出一个特解。
4,每执行一次第三步操作,就会得到一个对应的特解,最终得到n-r个特解(special solution)。线性方程组Ax=0的所有解,就是这n-r个特解的线性组合。
这个解的集合就是矩阵A的零空间(Nullspace)。
Ax=0(令自由变量为代数的解法)
求解步骤如下:
其中,第一,二步的做法和之前相同
不同之处在于这第三步,消元得到最简阶梯型R以后,并没有把自由变量指定为某一常数。而是把矩阵R改写成方程组的形式后,求出主元变量x1和x2的代数解,即用x3来表示x1,x2。
把x1,x2,x3都回填到向量x中,得到最终解。这个解和前面用数值算法得到的结果一样,但就目前看来,数值算法要简单一些。
下为教科书中的部分截图,可供参考:
Part II:非齐次方程组Ax=0的解法
Ax=b(令等式右端b为代数的求解步骤)
假设b未知,令向量b中的元素为代数b=[b1, b2, b3]
Ax=b的求解步骤如下:
1,对原始矩阵A的增广矩阵消元,得到阶梯型矩阵U。这里和之前求Ax=0的消元过程相同,只不过多了右边的b向量。
此外,基于消元后矩阵U的最后一行的关系,还会得到一个约束方程,这个方程在后面有用。
2, 把矩阵U改写成方程组的形式后,求出主元变量x1和x2,即用x3来表示x1,x2的代数解。
3,把x1,x2,x3都回填到向量x中,得到x的代数解。其中前半部分(下图中画红圈的部分)和前面求Ax=0时得到的解一样,后面部分多了一个用b1,b2,b3表示的新向量。这样看来,Ax=b的解实际上就是Ax=0的解和一个新向量的和。这个新向量是Ax=b的一个特解。
4,依据之前的约束方程选择合适的b1,b2,b3得到Ax=b的特解,这里选择了b=[1 2 1]。
代入特解向量,得到:
加上Ax=0的通解,也得到了Ax=b的全部解。
Check(验证计算结果):
Ax=b(令等式右端b为一组任意实数的求解步骤)
总体思路:
基于前面的求解过程,我们已经得出:Ax=b的完整解,等于Ax=0的通解和Ax=b的特解之和。令:
其中,为Ax=0的通解,为Ax=b的特解。
分别求解这两个x:
合并两个x,得到完整解:
Ax=b的求解步骤:
1,对原始矩阵A消元,得到阶梯型矩阵U。(注意:这里的U不是最简阶梯型矩阵,不同于上面的矩阵R)。
2,令自由变量为0,求解Ux=c,得到一个的特解。
3,化简Ax=0到最简阶梯型矩阵R,并求出Ax=0的所有解,他是n-r个特解的任意一个线性组合。
4,Ax=b的完整解,等于Ax=b的一个特解加上Ax=0的特解的任意一个线性组合。
有兴趣的读者可以试一下,如果这里令b=[1 2 1],那么得到的结果会和前面那个代数解法的结果一致。
下为教科书截图,可供参考:
(全文完)
作者 --- 松下J27
古诗词赏析:
《登鹳雀楼》
王之涣
白日依山尽,黄河入海流。
欲穷千里目,更上一层楼。
参考文献(鸣谢):
1,Linear Algebra and Its Applications - 4th Edition,Gilbert Strang
(*配图与本文无关*)
版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27