线性代数 --- 矩阵求逆的4种方法
矩阵求逆的4种方法
线性代数 --- 矩阵求逆的4种方法
写在最前面:
在大多数情况下,我们学习线性代数的目的是求解线性方程组Ax=b,而我在跟很多同事聊天的过程中发现,他们对于解方程的第一反应大都是求逆。实际上,求解线性方程组的方法有很多,包括求逆,假设矩阵A可逆,则有:
在这些众多的方法中,我个人认为LU分解应该成为最先被采纳的方案,而非求逆,因为求逆会引入较大的精度误差。LU分解的整个计算流程大致如下,其中L和U分别是标准的下三角矩阵和标准上三角矩阵:
令,Ux=y:
求解Ly=b,通过正向回代求得y。然后通过反向求带求解Ux=y,得到x:
感兴趣的朋友可以看看下面链接中的这篇文章(这是我个人非常喜欢的一位台湾的线代老师,在他的个人网站里面有很多关于现代的学习资源):
以下截图中的这段话就出自上面这篇文章:
以下是本文的正文部分:
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
本文于2022年5月26日晚,对LU分解的笔记部分增加了文字补充。
本文于2022年11月08日,增加了MATLAB的计算结果,便于大家参考。大家也可以在matlab中用他的自带求逆函数inv()对自己的计算结果加以验证。
本文于2022年11月28日,增加了拓展阅读的链接。
本文于2023年4月10号,利用上班的空暇时间,对本文开始处的第4种求逆的方法代数余子式的插图进行了更换。
修改了文中的一个错误,2023/05/18。
对文中容易引起部分读者不适的内容进行了修改。2024/04/11 晚
对文中“写在最前面”中的部分内容进行了修改和重新排版。 2024/04/12
人生格言:
忠于自己的内心,比不负众望更重要!
参考文献(鸣谢):
用余子式、代数余子式和伴随来求逆矩阵https://www.shuxuele.com/algebra/matrix-inverse-minors-cofactors-adjugate.html
(配图与本文无关)
版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27
更多推荐
所有评论(0)