求逆矩阵与伪逆矩阵

矩阵A的逆矩阵用

表示,并且满足下面的关系:

看下面的矩阵方程:

如果A的逆矩阵存在,那么解可以写成:

MATLAB输入下面的命令就可以计算矩阵A的逆矩阵

但是逆矩阵并不一定存在,所以我们可以用矩阵的行列式来判断逆矩阵是否存在,如果

那么逆矩阵不存在,这时我们说此矩阵是一个奇异矩阵。
下面是一个2x2矩阵的例子

首先检查矩阵的行列式:

>> A = [2 3; 4 5];
>> det(A)
ans =-2

由于行列式不等于0,此矩阵的逆矩阵存在,下面进行逆矩阵的求解:

>> inv(A)
ans =-2.5000    1.50002.0000   -1.0000

又如:

>> S = [1 0 -1 2; 4 -2 -3 1;0 2 -1 1;0 0 9 8];
>> det(S)
ans =-108

行列式不等于0,逆矩阵T存在:

>> T = inv(S)T =-0.9259    0.4815    0.4815    0.1111-0.6296    0.1574    0.6574    0.0556-0.5926    0.1481    0.1481    0.11110.6667   -0.1667   -0.1667         0

检验一下:

>> S * T
ans =1.0000         0         0         00.0000    1.0000   -0.0000         00.0000   -0.0000    1.0000         00         0         0    1.0000


来自于四舍五入误差,用另一种方式检查可以避免错误:

>> T * S
ans =1.0000         0         0         00    1.0000         0    0.00000         0    1.0000         00         0    0.0000    1.0000

用逆矩阵求解方程

考虑方程:

系数矩阵是:

>> A =[3 -2; 6 -2]
A =3    -26    -2

Ax= b中的向量b是:

>> b = [5;2]
b =52

我们来检查A的行列式来确保A的逆矩阵存在:

>> det(A)
ans =6

解为:

>> x = inv(A) * b
x =-1.0000-4.0000

解的特殊情况

如果方程组的个数比未知数的个数少,此时方程组称为欠定。
这意味着方程组有无数解,因此此时方程组只有一些未知数能能够确定下来,不能确定的可以赋予任意值,因此可以得到无限组解。

我们举个简单例子

稍微处理可以得到:


在这个方程组中,我们可以为两个变量找到值(xz),第三个变量y是不确定的。我们可以为y选择自己喜欢的值,此时方程组就有解了。
另一种方程组存在无限解的情况是当det(A) = 0时,此时我们引入伪逆矩阵(属于广义矩阵)的概念
解的办法是为未知数给出最小范数实数解,即是说,解向量x具有最小范数且元素都为实数,我们拿一个线性方程组来举例:


很明显,这个方程具有无限解,我们输入数据:

>> A = [3 2 -1;0 4 1];
>> b = [7;2];
>> C = [A b];

现在计算秩:

>> rank(A)
ans =2
>> rank(C)
ans =2

由于这些秩相等,解存在,可以使用左除产生一组解:

>> x = A\b
x =2.00000.50000

MATLAB通过把其中一个变量设为0来产生一组解。
此时的矩阵A不是一个方阵,不能算行列式,所以可以使用伪逆矩阵来解这个方程组。输入以下内容:

>> x = pinv(A) * b
x =1.66670.6667-0.6667

MATLAB使用穆尔-彭罗斯法计算pinv

MATLAB与线性代数--逆矩阵与伪逆矩阵相关推荐

  1. 线性代数笔记:逆矩阵及伪逆矩阵,最小二乘估计,最小范数估计

    逆矩阵及伪逆矩阵,最小二乘估计,最小范数估计 逆矩阵的概念 我们为什么需要逆矩阵? 伪逆矩阵和最小二乘估计 正则化求伪逆矩阵 逆矩阵的概念 矩阵A的逆矩阵(matrix inversion)记作A−1 ...

  2. 逆矩阵、伪逆矩阵:数据的压缩和复原

    逆矩阵.伪逆矩阵.数据的压缩和复原:这一块知识虽然很简单,但在光学各种实验情况下经常用到,特此总结. 矩阵的乘法 (观测矩阵):C = A* B C:M*1 A:M*N B:N*1 A可以理解为一个转 ...

  3. 【深度学习基础】:线性代数(三)_逆矩阵与伪逆矩阵

    一.矩阵的逆 定义 2.Python 2.1  Numpy import numpy as npA = np.array([[1,2],[3,4]])# 求逆矩阵A_inv = np.linalg.i ...

  4. 奇异矩阵,非奇异矩阵,伪逆矩阵

    奇异矩阵就是Singular Matrix 的中文翻译. Singular 就是唯一的,可以想成是单身狗,所以他没有对象 逆矩阵. Non-singular的非奇异矩阵就是Couple 有逆矩阵. 奇 ...

  5. 奇异矩阵和非奇异矩阵,伪逆矩阵

    奇异矩阵: 奇异矩阵是线性代数的概念,就是对应的行列式等于0的矩阵. 奇异矩阵的判断方法:首先,看这个矩阵是不是方阵(即行数和列数相等的矩阵.若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵). 然 ...

  6. pinv--求矩阵的伪逆矩阵

    pinv--求矩阵的伪逆矩阵 [功能简介]用于求矩阵的伪逆矩阵. [语法格式] 1.B=pinv(A) 函数返回矩阵A的伪逆矩阵.如果矩阵A是可逆(非奇异)的,那么pinv(A)与inv(A)的结果是 ...

  7. 【转录调控网络】典型的基因转录调控网络推导方法——伪逆矩阵模型

    基因转录调控网络推导方法--伪逆矩阵模型 在基因调控网络推导中,使用到的 基因芯片数据通常具有 样本个数少(通常小于10)而 基因数目大(通常大于1000)的局限性,也就是说,实验样本个数远远小于基因 ...

  8. 关于数学库Eigen两个常用函数实现(伪逆矩阵和协方差矩阵)

    关于数学库Eigen两个常用函数实现(伪逆矩阵和协方差矩阵) cov  pinv 实现代码

  9. 一分钟读懂:矩阵的特征值分解、奇异值分解和伪逆矩阵

    通过把矩阵运算分解成多个矩阵的乘法,可以简化矩阵运算,也可发现对应线性变换的一些内在规律和特性.根据不同的目的,有不同的分解策略.本文我们讨论最常用的特征值分解和奇异值分解. 1. 矩阵的乘方运算 定 ...

最新文章

  1. IDEA下spring boot项目打包war包部署外部tomcat问题
  2. 如何根据C编程语言标准初始化结构
  3. C/C++/Java 的基本数据类型
  4. 微信小程序中base64格式的小程序码通过canvas画出来无效
  5. linux写入二进制文件内容,linux – 从管道读取数据并写入标准输出,中间延迟.必须处理二进制文件...
  6. 大湾区网络安全大会开幕在即,五个看点揭秘
  7. 用户DSN、 系统DSN 、文件DSN
  8. [原译]实现IEnumerable接口理解yield关键字
  9. 广谱感应水处理器详细说明
  10. 有关javaSE下载时,环境配置path不成功,在cmd命令中java,javac,java -version出现不是内部或外部命令的现象处理
  11. DHTMLET-Cascading Style Sheet 2.0 中文手册
  12. java中BigDecimal求余
  13. Python9-前端基础知识-day47
  14. 【IIOT】欧姆龙PLC数采之CP系列
  15. vue调用电脑端摄像头实时拍照
  16. 决策树实例-泰坦尼克幸存者预测
  17. iOS摸鱼周报 第二期
  18. app自动化测试appium教程之三——appium基础命令(python)
  19. VS2010 数据库操作(基于Access 2013)
  20. 市场调研团体怎么使用无人系统生产更安全

热门文章

  1. windows安装kafka 2.8.1以及创建主题(topic)生产者和消费者消息接收和发送
  2. 某项目的双代号网络图如下所示_某项目的双代号网络图如下所示,该项目的工期为()。...
  3. 计算机专业用r5跟i5,笔记本电脑r5和i5区别
  4. ISO20000 Foundation, Practitioner, Auditor
  5. 在iPad抓包的方法
  6. 【吟风听云】推锅扑克牌型规则说明(端锅子牌型说明/扑克版牌九规则)
  7. XDR的过去、现状与未来
  8. python科学计算可视化好慢_Python科学计算三维可视化 1
  9. 自定义Dialog对话框(实现微信分享对话框)
  10. 19C dbca DBT-50000 DBT-50001 方法