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

2023-11-08

线性代数 --- 矩阵求逆的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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性代数 --- 矩阵求逆的4种方法 的相关文章

  • matlab入门基础:矩阵操作(一)

    系列笔记目录 第二节 矩阵操作 一 创建特殊矩阵 矩阵的运算 文章目录 系列笔记目录 前言 一 创建特殊矩阵 二 矩阵运算 1 矩阵元素的修改 2 矩阵的变维 3 矩阵的变向 4 矩阵的抽取 练习 三 矩阵的数学运算 总结 前言 MATLA
  • 生成一定相关性的二元正态分布

    生成一定相关性的二元正态分布 摘要 二元正态分布 二元正态分布概率密度函数 二元正态分布随机数的生成 程序实现 多元正态分布的情况 生成服从 N
  • 蓝桥杯2021年第十二届真题第一场-砝码称重

    题目 题目链接 题解 动态规划 状态定义 dp i j 表示前i个砝码是否能称出重量为j的物品 状态转移 对于第i个砝码 选和不选两种情况 对于选又可以分为放在左边和放在右边 看样例 存在加和减的情况 也就是放在左边和右边的情况 我们规定放
  • 矩阵 行列式的计算

    行列式要求 要计算行列式 那么这个矩阵一定是一个方阵 行列式性质 行列式转置后值不变 互换行列式中两行 值变为相反数 行列式中两行成比例 行列式为0 行列式中一行所有元素乘以一个数后加到另一行 行列式值不变 行列式的计算有很多方法 矩阵的行
  • numpy广播机制

    NumPy的广播机制 文章目录 NumPy的广播机制 Broadcast 最简单的广播机制 稍微复杂的广播机制 广播机制到底做了什么 一个典型的错误案例 一个正确的经典示例 一种更便捷的计算方式 Broadcast 广播是numpy对不同形
  • 矩阵求导网站

    https www matrixcalculus org
  • 【线性代数】第一章 1.3逆矩阵

    上一篇 1 2 高斯消元法与矩阵的初等变换 目录 一 逆矩阵的概念与性质 二 用行初等变换求逆矩阵 一 逆矩阵的概念与性质 前面我们定义了矩阵的加法 减法和乘法三种运算 自然的 欲在矩阵中引入类似于除法的概念 其关键在于引入类似于倒数的概念
  • 蓝桥杯---貌似化学---逆矩阵

    试题 算法训练 貌似化学 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 现在有a b c三种原料 如果他们按x y z混合 就能产生一种神奇的物品d 当然不一定只产生一份d 但a b c的最简比一定是x y z 现在给你
  • 线性代数---之正交向量

    转载 百度百科 正交向量 编辑 本词条由 科普中国 百科科学词条编写与应用工作项目审核 正交向量 是一个数学术语 指点积为零的两个或多个向量 几何向量的概念在 线性代数中经由抽象化 得到更一般的向量概念 此处向量定义为 向量空间的元素 要注
  • R语言绘图:实现数据点的线性拟合,进行显著性分析(R-squared、p-value)、添加公式到图像

    最近在做关于数据点线性拟合相关的研究 感觉R语言在这方面很方便 而且生成的图片很漂亮 所以在这里和大家分享一下代码 这是别人所绘制的拟合图像 很漂亮 自己也用iris鸢尾花数据集进行一个线性拟合看看 拟合线性模型最基本的函数就是lm 格式为
  • 【论文笔记】基于Control Barrier Function的二次规划(QP)控制

    文章目录 写在前面 问题描述 RBF 1 Logarithmic 2 Inverse type 3 Reciprocal ZBF 两者的联系 CBF构建 RCBF ZCBF QP设计 ES CLF CLF CBF QP 写在前面 原论文 C
  • 伴随矩阵及其运算

    关键公式 A B A B
  • 计算机二级python经典真题

    计算机二级python经典考题 1 键盘输入正整数n 按要求把n输出到屏幕 格式要求 宽度为20个字符 减号字符 右填充 右对齐 带千位分隔符 如果输入正整数超过20位 则按照真实长度输出 例如 键盘输入正整数n为1234 屏幕输出 1 2
  • Java编程练习题:Demo96 - Demo105(多维数组)

    目录 Demo96 代数方面 两个矩阵相乘 编写两个矩阵相乘的方法 Demo97 距离最近的两个点 程序清单8 3给出找到二维空间中距离最近的两个点的程序 修改该程序 让程序能够找出在三维空间上距离最近的两个点 Demo98 最大的行和列
  • C++ 代码实现定义法计算行列式的值

    一 前言 最近在捣鼓C 学到线代的行列式之后就想着来捣鼓一下求行列式的值 主要原因是当时群里有人在捣鼓着用上下三角来求值 所以我最后就去玩定义法求值了 二 n阶行列式的定义 从定义中我们可以看出值计算公式由三个部分组成 分别是逆序数r 行列
  • GPU编程 CUDA C++ 线性代数求解器 cuSolver库

    cuSolver库较cuBLAS库更为高级 其能处理矩阵求逆 矩阵对角化 矩阵分解 特征值计算等问题 cuSolver库的实现是基于cuBLAS库和cuSPARSE库这两个基本库 cuSolver库的功能类似于Fortran中的LAPACK
  • TechWiz LCD 2D应用:多畴IPS仿真

    1 建模任务 1 1 模拟条件 模拟区域 0 10 边界条件 Periodic 偏移角度 12 Domain A 12 Domain B 单位长度 0 5
  • 短视频账号矩阵系统3年技术独立源头正规开发搭建

    短视频账号矩阵3年技术独立开发打造是一个非常有挑战性和前景的项目 以下是一些建议 帮助你成功打造一个成功的短视频账号矩阵 1 确定目标受众 首先需要明确你的目标受众是谁 了解他们的兴趣爱好 年龄 性别等 以便为他们提供他们感兴趣的内容 2
  • MIT_线性代数笔记:第 23 讲 微分方程和 exp(At)

    目录 微分方程 Differential equations 矩阵指数函数 Matrix exponential e A t e At
  • 5_机械臂运动学基础_矩阵

    上次说的向量空间是为矩阵服务的 1 学科回顾 从科技实践中来的数学问题无非分为两类 一类是线性问题 一类是非线性问题 线性问题是研究最久 理论最完善的 而非线性问题则可以在一定基础上转化为线性问题求解 线性变换 数域 F 上线性空间V中的变

随机推荐

  • 跟着代码随想录练算法——二叉树(JS)(下)

    跟着代码随想录练算法 二叉树 106 从中序与后序遍历序列构造二叉树 https leetcode cn problems construct binary tree from inorder and postorder traversal
  • HttpClient进行timeout设置及存活机制设置

    package com example demo config import lombok Data import org springframework boot context properties ConfigurationPrope
  • docker学习记录--使用Xshell连接docker上的Centos镜像

    1 下载docker https download docker com win stable Docker 20Desktop 20Installer exe 2 安装选择默认 3 配置以下国内镜像 registry mirrors ht
  • POJ 2456 疯牛(二分+贪心)

    疯牛 时间限制 1000 ms 内存限制 65535 KB 难度 4 描述 农夫 John 建造了一座很长的畜栏 它包括N 2 lt N lt 100 000 个隔间 这些小隔间依次编号为x1 xN 0 lt xi lt 1 000 000
  • 过拟合产生的原因和解决方案

    最近在研究室内定位的问题 总是过拟合 之前研究问题太过草率 这次计划将问题彻底的研究明白 过拟合 简单来说就是在训练集表现好 在测试集 验证集 表现差 从表现来看可以理解成模型复杂也好 还是你的数据有问题也好 总之最后模型学习到了你现在数据
  • vue 数组按时间排序

  • 一文理解Kafka如何保证消息顺序性

    要想实现消息有序 需要从Producer和Consumer两方面来考虑 如果对Kafka不了解的话 可以先看这篇博客 一文快速了解Kafka 针对消息有序的业务需求 还分为全局有序和局部有序 全局有序 一个Topic下的所有消息都需要按照生
  • 用spss做mk检验_SPSS中对问卷数据进行探索因子分析的详细操作与结果解读

    一 什么是探索因子分析 探索因子分析主要用于对问卷数据进行统计分析 通常我们在做问卷分析的时候 如果我们设计的题项没有明确的维度划分 而我们又需要了解这些题项的维度 这时我们就需要对这题项进行探索因子分析 通过在SPSS中进行探索因子分析
  • Docker世界 -- 基础篇(入门)

    一 Docker概述 1 1 Docker 为什么会出现 一款产品从开发到上线 从操作系统 到运行环境 在到应用配置 作为开发 运维之间的协作 我们需要关心很多东西 这也是很多互联网公司都不得不面对的问题 特别是各种版本的迭代之后 不同版本
  • Python 3 安装 redis 客户端

    1 去GIThub 上下载 redis py 2 然后进入源码目录 执行 sudo python3 setup py install 就可以了 这里踩了一个坑 就是我按照GITHub上介绍的方式 sudo python setup py i
  • 区块链矿工如何以七个步骤处理挖掘工作并进行交易

    你有没有想过区块链的挖掘过程如何进行的 或者你的交易如何得到确认并添加到了区块链 好吧 我也是如此 由于我找不到任何明确的逐步解释这个过程文章 我决定深入研究并自己编写指南 以下是区块链交易如何通过七个步骤从你的钱包处理到区块链中 imag
  • git 第一次push error: failed to push some refs to

    第一次将本地文件push到远程时报错 error failed to push some refs to 远程地址 原因可能是github仓库中的README md文件不在本地代码目录中或要先pull 遇到错误要善用git的提示 报错信息后
  • yolov7 paper阅读笔记

    不同于现有的主流方法 yolov7的主要改进点在优化训练过程 包括优化modules 和 优化方法 这些会加强traing cost从而提高object detect的accuracy 但是不会提高inference cost 时间开销 这
  • calibrate_camera函数示例

    好的 下面是一个使用 Python 语言的 calibrate camera 函数示例 import numpy asnp import cv2 def calibrate camera images pattern size 准备对象点和
  • OSSEC直接向GMAIL发送alert的配制方法

    按照mannul的介绍 直接在ossec conf中配置如下
  • 手把手教你使用TensorFlow训练出自己的模型

    手把手教你使用TensorFlow训练出自己的模型 一 前言 搭建TensorFlow开发环境一直是初学者头疼的问题 为了帮忙初学者快速使用TensorFlow框架训练出自己的模型 作者开发了一款基于TensorFlow 2 3 0的图形化
  • java asynccallback_使用 AsyncCallback 处理异步调用

    参考文章 原文 异步调用可以避免主线程受工作线程阻塞 即工作线程执行的过程中 主线程依然可以往下运行 不必等待工作线程完成 下面是一个简单的异步调用加法函数的例子 using System using System Threading th
  • 肺部ct重建_肺部CT血管分割及三维重建

    摘要 现代社会人们的生活水平不断改善 由于膳食不合理以及锻炼的缺乏 我国血管类疾病发生率不断攀高 传统的逐张读片的诊断方式效率低下且依赖于医生个人的知识储备 本文以肺部CT序列为着重点 对其中的血管结构进行分割 使用三维重建技术对分割结果进
  • Git入门与使用 (三) 使用GitHub进行代码托管的相关操作

    文章目录 一 前言 二 使用GitHub进行代码托管的相关操作 1 推送本地仓库内容至远程仓库 2 克隆远程仓库内容至本地仓库 3 邀请他人加入项目团队 4 拉取远程仓库修改的内容 5 解决协同开发时产生的冲突 6 跨团队协作开发 7 Gi
  • 线性代数 --- 矩阵求逆的4种方法

    线性代数 矩阵求逆的4种方法 写在最前面 在大多数情况下 我们学习线性代数的目的是为了求解线性方程组Ax b 而不是为了求A的逆 单就解方程而言 LU分解是最实用的算法 只需按照A LU gt Ax b LUx b gt Ly b 正向回代