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

article/2025/10/6 19:07:47

线性代数 --- 矩阵求逆的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日,增加了拓展阅读的链接。

本文于2023年4月10号,利用上班的空暇时间,对本文开始处的第4种求逆的方法代数余子式的插图进行了更换。

修改了文中的一个错误,2023/05/18。

人生格言:

忠于自己的内心,比不负众望更重要!

参考文献(鸣谢):

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

 (配图与本文无关)

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


http://chatgpt.dhexx.cn/article/RENNhR0V.shtml

相关文章

求解逆矩阵的常用三种方法

1.待定系数法 矩阵A 1, 2 -1,-3 假设所求的逆矩阵为 a,b c,d 则 从而可以得出方程组 a 2c 1 b 2d 0 -a - 3c 0 -b - 3d 1 解得 a3; b2; c -1; d -1 2.方程组求逆矩阵 伴随矩阵是矩阵元素所对应的代数余子式,所构成的矩阵,转置后得到的新矩阵。 …

矩阵求逆四种方法

注: 用A、B表示某矩阵, E表示单位矩阵 用Aˊ表示A逆 用|A|表示A的行列式 [A|E]表示拼接矩阵 一、公式法 先求A行列式结果,再求A伴随矩阵,最后再求A逆矩阵 |A| ! 0 则 AˊA*/|A| 注:图片中det…

浏览器渲染页面和加载页面机制

为什么有些网站打开的时候会加载会很慢,而且是整个页面同时显示的,而有些网站是从顶到下逐步显示出来的?弄懂这些对前端性能优化有很大帮助。要搞懂这个可以先从下面这个常规流程开始: 常规流程 1. 浏览器下载的顺序是从上到下&am…

页面实现加载进度条

文章目录 一、定时器实现进度条二、css3实现进度条三、加载状态事件实现进度条 一、定时器实现进度条 原理&#xff1a;设置了固定的时间后将图片和遮罩层隐藏,显示出页面的内容 效果1&#xff1a; 定时器实现的进度条效果 代码实现 <!DOCTYPE html> <html langen>…

VUE页面中加载外部HTML

方法1&#xff0c;用iframe vue页面 <template><button click"invokeHtmlMethod">调用html种方法</button><div class"iframestyleset"><iframe name "iframeMap" id"iframeMapViewComponent" v-bind…

页面还未加载完成显示loading

页面未加载完成&#xff0c;显示loading的图标 html代码 <div id"loading"><i></i> </div> css 代码 #loading{width: 100%;height: 100%;background-color: #fff;position: fixed;top:0;left: 0;z-index: 9999; }#loading >i{width: …

浏览器加载页面的过程

开源浏览器一般以8k每块下载html页面。 1、然后解析页面生成DOM树&#xff0c; 2、遇到css标签或JS脚本标签就新起线程去下载他们&#xff0c;并继续构建DOM。 3、下载完后解析CSS为CSS规则树&#xff0c;浏览器结合CSS规则树和DOM树生成Render Tree。 注意&#xff1a;构建…

浏览器加载网页过程

1.概要&#xff1a;从用户在浏览器输入域名开始&#xff0c;到web页面加载完毕&#xff0c;这个过程叫做网页加载过程&#xff0c;个人总结&#xff0c;长期更新 2.分析&#xff1a;打开一个网页&#xff0c;浏览器会因为页面上的css/js/image等静态资源多次发起连接请求&#…

登录页面加载效果

说明&#xff1a;我们在做后台管理系统的时候&#xff0c;都会有一个登录页面&#xff0c;有的时候网速比较慢&#xff0c;登录速度比较慢&#xff0c;有的用户就会一直点登录按钮&#xff08;图1&#xff09;&#xff0c;体验不是特别好&#xff0c;基于此&#xff0c;优化一下…

加载页面的几种方法

通常js中的方法是window.onload方法&#xff0c;但是&#xff0c;这有一个缺点&#xff0c;就是当出现多个加载事件时&#xff0c;后面的内容会直接覆盖前面的内容&#xff0c;譬如拿控制台输出为例子&#xff1a; window.onload function () {console.log("BOM方法1&quo…

js重新加载页面的方法

方法/步骤 1、window.location.reload()&#xff0c;刷新页面&#xff0c;不重复提交页面。 2、window.location.hrefwindow.location.href,刷新页面&#xff0c;不重复提交页面。 3、location location 4、location.replace(location.href),刷新页面&#xff0c;不重复…

页面加载的过程

1、创建Document对象&#xff0c;开始解析web页面。解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中。这个阶段document.readyState ‘loading’。 2、遇到link外部css&#xff0c;创建线程加载&#xff0c;并继续解析文档。 3、遇到script外部js&#xf…

HTML 页面加载过程

window.onload 和 DOMContentLoaded 的区别从输入 url 到得到 html 的过程浏览器渲染页面的过程 window.onload 和 DOMContentLoaded 的区别 DOMContentLoaded&#xff1a;DOM结构加载完毕window.onload&#xff1a;DOM结构和静态资源加载完毕 从输入 url 到得到 html 的过程 …

html运行页面一直处在加载状态的解决

前两天在制作一个页面的时候&#xff0c;发现左上方浏览器一直在加载&#xff0c;如下图所示&#xff1a; 并且我的一些图片也不显示了 查看代码&#xff0c;引用图片整合部分的图片路径出现错误&#xff1a; 改正如下&#xff1a; 重新运行界面&#xff1a; 界面运行完毕&am…

页面预加载

目录 一、<link> 标签预加载1、<link> 标签的 preload 属性的属性介绍2、避免滥用 preload3、避免混用 preload 和 prefetch&#xff08;1&#xff09;、preload&#xff08;2&#xff09;、prefetch 4、避免错用 preload 加载跨域资源5、defer 与 async 二、JavaS…

HTML页面的加载

HTML页面的加载实际上是基于http过程浏览器对数据的解析渲染。 http协议的请求过程是基于TCP协议的。http是要基于TCP连接基础上&#xff0c;简单的说&#xff0c;TCP单纯建立连接&#xff0c;不涉及任何我们需要请求的实际数据&#xff0c;简单的传输。http基于TCP建立的连接…

Redis集群原理详解

一、Redis集群介绍&#xff1a; 1、为什么需要Redis集群&#xff1f; 在讲Redis集群架构之前&#xff0c;我们先简单讲下Redis单实例的架构&#xff0c;从最开始的一主N从&#xff0c;到读写分离&#xff0c;再到Sentinel哨兵机制&#xff0c;单实例的Redis缓存足以应对大多数…

2022.4.7网页一直在加载中,无提示

项目场景&#xff1a; 项目中有一个查看一些数据的页面&#xff0c;点击“查看详情”按钮&#xff0c;可以进入这个页面&#xff0c;查看详情信息。 问题描述 点击“查看详情”按钮&#xff0c;页面一直在加载中&#xff0c;页面没有相关提示。 原因分析&#xff1a; 再次点…

softmax layer

一张图&#xff0c;简单易懂、清晰明了。

softmax中axis参数

从caffe中我们看到softmax有下面这些参数 // Message that stores parameters used by SoftmaxLayer, SoftmaxWithLossLayer message SoftmaxParameter {enum Engine {DEFAULT 0;CAFFE 1;CUDNN 2;}optional Engine engine 1 [default DEFAULT];// The axis along which t…