线性代数 --- 矩阵求逆的4种方法

线性代数 --- 矩阵求逆的4种方法

        写在最前面:在大多数情况下,我们学习线性代数的目的是为了求解线性方程组Ax=b,而不是为了求A的逆

        单就解方程而言,LU分解是最实用的算法。只需按照A=LU——>Ax=b,LUx=b——>Ly=b(正向回代求得y),Ux=y(反向回代,最终求得x)的步骤求解即可。根本就不应该去求逆,而且求逆本身就有比较大的精度损失。

        因此,单就解方程而言,求逆可以说是下下策。可是,时至今日,我跟很多同事聊起来(下至三流专科,上至985,211,不论是本科学历,还是硕士博士),他们对于解方程的第一反应还是求逆,好像在CN不求逆就没法解方程了一样。这种,在畸形edu模式下的错误思维,真的是害人不浅。而且,不仅如此,如果大家都认为解方程应该求逆,就你一个人觉得求逆的“大错特错”,则他们就会群起而攻之,其势然也。。。(此四字,出自《三国演义》,郭嘉死后,曹操观沧海处)。

感兴趣的朋友可以看看这篇文章:

別再算逆矩陣了 | 線代啟示錄https://ccjou.wordpress.com/2014/06/19/%E5%88%A5%E5%86%8D%E7%AE%97%E9%80%86%E7%9F%A9%E9%99%A3%E4%BA%86/


1,待定系数法 


 2,高斯消元法

        已知矩阵A和对应维度的单位矩阵I,先写出增广矩阵A|I,然后对A进行高斯消元,在对A消元的同时,单位矩阵I也在变,直到把A消成单位矩阵,A旁边的单位矩阵也会随之变成A的逆矩阵。

Matlab的计算结果: 


 3,用LU分解求矩阵的逆

        跟我们平时用LU分解的结果来解方程不同的是,以往,我们面对的是Ax=b(x和b都是和A同维度的列向量),当我们已经求得了A的LU分解以后,我们会按照先求Ly=b,得到y,再求Ux=y的步骤,得到最终的x。如果,我们使用的是PA=LU的分解,则是先求Ly=Pb,再求Ux=y。而这里,我们面对的是AX=I(X和I都是和A同维度的矩阵,且X就是A-1)。因此,我这里的做法是把单位矩阵中的每一列,都看成是Ax=b中的一个b,同时,也把“未知矩阵”A-1中的每一列看成是Ax=b中的x。

        实际上,我的这个做法也是符合矩阵与矩阵的乘法的意义的,例如AB=C,则,C中的每一列,实际上都是B中的对应列,对A中所有列的线性组合的结果。B的对应列中的每一个元素就是线性组合的权重。

MATLAB的计算结果: 


 4,伴随矩阵+代数余子式


        上面的四个矩阵求逆例子,大多是针对2x2矩阵而言的,下面补充一些3x3矩阵上应用。

补充1,伴随矩阵法在3x3矩阵上的应用:

MATLAB的计算结果:  


补充2,伴随矩阵法:

MATLAB的计算结果:  


 补充3,其他网站关于伴随矩阵法的说明:


相关文章,怎么判断一个矩阵是否可逆?:

线性代数 --- 如何判断矩阵是否可逆(奇异与非奇异)?_松下J27的博客-CSDN博客如何判断矩阵是否可逆?如何判断一个矩阵是否可逆?一个可逆的矩阵有那些性质?https://blog.csdn.net/daduzimama/article/details/120510778

(全文完)

作者 --- 松下J27

本文于2022年5月26日晚,对LU分解的笔记部分增加了文字补充。

本文于2022年11月08日,增加了MATLAB的计算结果,便于大家参考。大家也可以在matlab中用他的自带求逆函数inv()对自己的计算结果加以验证。

本文于2022年11月28日,增加了拓展阅读的链接。

人生格言:忠于自己的内心,比不负众望更重要!

参考文献(鸣谢):

用余子式、代数余子式和伴随来求逆矩阵https://www.shuxuele.com/algebra/matrix-inverse-minors-cofactors-adjugate.html

 (配图与本文无关)

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

猜你喜欢

转载自blog.csdn.net/daduzimama/article/details/120509856