原文 | https://mp.weixin.qq.com/s/PRQQvSfmipxPBeF80aEQ1A

  一个矩阵有逆矩阵的前提是该矩阵是一个满秩的方阵。然而很多时候遇到的都是长方矩阵,长方矩阵是否有类似的逆矩阵呢?

  先把4个基本子空间的图贴上,A是m×n的矩阵,其中r是矩阵的秩:

两侧逆(2-sided inverse)

  我们通常说的逆矩阵都是针对满秩方阵而言,此时AA-1 = I = A-1AA左乘或右乘A-1的结果都是单位矩阵,所以将这种逆矩阵称为两侧逆。

左逆(Left inverse)

  如果A是一个m×n的列满秩矩阵,意味着A的各列线性无关,A的秩和列数相等,r = n,但A可能存在更多的行,m ≥ n,此时A的零空间只有零向量,并且Ax = b有唯一解(m = n时)或无解(m > n时)。

  对于列满秩矩阵来说,对称矩阵ATA是一个n×n的满秩方阵,因此ATA可逆,此时:

  

  我们称A-1left为A的左逆,是一个n×m的矩阵,左逆也是讨论最小二乘问题的核心。

右逆(Right inverse)

  如果A是一个m×n的行满秩矩阵,意味着A的各行线性无关,A的秩和行数相等,r = m,但A可能存在更多的列,m ≤ n。A的左零空间只有零向量,A的零空间是n - r维,因此有n – r个自由变量,当n > m时,Ax = b有无数解。

  对于行满秩矩阵来说,对称矩阵AAT是一个m×m的满秩方阵,因此AAT可逆,此时:

  通常来说,右乘左逆得不到单位矩阵,仅在m = n时才有AA-1left = I。对于列满秩的m×n矩阵来说,AA-1left = A(ATA)-1AT = PPA的列空间的投影矩阵。同理,左乘右逆也得不到单位矩阵,A-1rightAA的行空间的投影矩阵。

  

示例 找出A的右逆:

  Numpy的pinv函数可以求得右逆:

1 import numpy as np
2
3 A = np.mat('1 0 1; 0 1 0')
4 print(np.linalg.pinv(A))

  

伪逆(Pseudoinverse)

  逆矩阵可看作矩阵的逆操作,向量xA的作用下变成了了AxAx通过A-1又得到x

  方阵A是否可逆和是否存在零空间有关,可逆矩阵的零空间和左零空间都只有零向量。零空间的向量是满足Ax = 0的所有x,假设A存在零空间,那么对于零空间的非零向量来说:

  此时A的各列的线性组合是0,这意味着A的列是线性相关的,A一定不是满秩的,A是奇异矩阵,A不可逆。

  列满秩矩阵的零空间只有零向量,有左逆矩阵;行满秩矩阵的左零空间只有零向量,有右逆矩阵。但是对于不满秩的矩阵Am×n(r < n, r < m)来说,两个零空间都存在,此时它无法得到左逆或右逆。

  

  假设Am×n是不满秩的矩阵,其行空间和列空间的维数相等。如果此时行空间的一个向量x,经过A的变换,变为列空间的向量Ax,并且xAx是一一对应的(如果行空间的两个向量≠ v,则Au ≠ Av),那么在把逆操作限制在行空间和列空间上时,A是可以进行逆操作的,A在这两个空间上的逆矩阵称为伪逆,记作A+:

  这里的关键是xAx是一一对应的,如果行空间的两个向量≠ v,则Au ≠ Av,只有这样,逆操作才成立。为什么会有一一对应?

  uv是行空间的两个不同的向量,经过A的转换将变成列空间的另外两个向量AuAv。我们假设Au = Av,这相当于Au – Av 0,即A(– v) = 0,这意味着– v属于零空间。但uv是行空间的两个向量,它们的线性组合也属于行空间,与结论矛盾,因此假设不成立,Au ≠ Av。行空间和列空间的向量是一一对应的。

  统计学家非常需要伪逆矩阵,因为他们经常使用最小二乘求解线性回归问题。统计学家经常做一些试验,并用矩阵A记录这些试验结果(每个结果有多个属性值),如果试验存在大量重复的结果,那么A将可能不是列满秩的,ATA不可逆,无法用过去的方法解决最小二乘。此时伪逆就有了用武之地。怎样找出伪逆呢?

找出伪逆

  Am×n是一个不满秩矩阵,行数和列数都大于秩,m > r, n > r,找出A+的一个方法是利用奇异值分解。A的奇异值分解是:

  是一由奇异值构成的对角矩阵:

  A的尺寸一致,也是m×n矩阵,它的秩是r,显然也是一个不可逆矩阵,并且T∑∑T都不可逆,也就是说也不存在左逆或右逆,只有伪逆:

  ∑+是一个n×m矩阵,它的秩仍然是r。伪逆是最接近逆的:

  UVT都是正交矩阵,其逆矩阵等于转置,(VT)-1=VU-1 = UT,A的伪逆为:

  值得注意的是,AA+得到的并不是像∑∑+这样对角线上只有1和0的矩阵,而是A的行空间的投影矩阵。

伪逆的性质

  伪逆满足4个性质:

综合示例

  ,A是否可逆?是否有左逆、右逆或伪逆?

  

  A的行列式是0,A是一个奇异矩阵,故A没有逆矩阵。

  A既不是行满秩也不是列满秩,故A没有左逆或右逆,只有伪逆。

  用奇异值分解求解A的伪逆,先对A进行奇异值分解A=UΣV­T。

  先求得AAT的特征值:

  只有一个正的特征值125,对应的奇异值和奇异值矩阵是:

  接下来根据根据特征方程求得AA­T的特征向量:

  U是标准化后的特征向量矩阵:

  

  用同样的方法求得ATA的特征值和特征向量,进而求得V


  出处:微信公众号 "我是8位的"

  本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途!

  扫描二维码关注作者公众号“我是8位的”

线性代数笔记34——左右逆和伪逆相关推荐

  1. 清华大学公开课线性代数2——第6讲:伪逆

    此博客停止更新,迁移至SnailDove's blog,查看本文请点击此处,清华大学线性代数2笔记汇总:线性代数总结 笔记源自:清华大学公开课:线性代数2--第6讲:伪逆 **提示:**如果文中图片看 ...

  2. 线性代数系列(八)--基变换、左逆、右逆和伪逆

    正文 这里关于基变换和伪逆做的都是简单的介绍,关于他们的更深入的理论介绍和更深入的应用介绍还需参考其他资料,然后补充. 基变换 基变换是图像压缩.信号压缩等应用的理论基础,通俗来讲就是对于给定的数据矩 ...

  3. OpenCV求逆(伪逆)矩阵函数

    转自 double invert(InputArray src, OutputArraydst, int flags=DECOMP_LU); 功能:用以求取一个矩阵的逆或者伪逆. src: 输入,浮点 ...

  4. 矩阵的逆、伪逆、左右逆,最小二乘,投影矩阵

    主要内容: 矩阵的逆.伪逆.左右逆 矩阵的左逆与最小二乘 左右逆与投影矩阵 一.矩阵的逆.伪逆.左右逆 1.矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: A ...

  5. (数学概念)矩阵的逆、伪逆、左右逆,最小二乘,投影矩阵

    主要内容: 矩阵的逆.伪逆.左右逆 矩阵的左逆与最小二乘 左右逆与投影矩阵 一.矩阵的逆.伪逆.左右逆 1.矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: A ...

  6. 奇异矩阵,非奇异矩阵,矩阵的逆和伪逆

    奇异矩阵/非奇异矩阵 首先看矩阵是不是方阵,只有是方阵了,才有这两个概念. 方阵A的行列式等于零,记为|A|=0,A是奇异矩阵 方阵A的行列式不等于零,记为|A|~=0,A是非奇异矩阵 一些性质: 如 ...

  7. 线性代数学习笔记10-4:左右逆、伪逆/M-P广义逆(从四个子空间和SVD角度理解)

    下面讨论m×nm\times nm×n的秩为rrr的矩阵 对于不同情况,讨论逆矩阵 两侧逆矩阵 2-sided inverse 这也是一般所说的"逆矩阵"的含义 方阵A\bolds ...

  8. numpy求矩阵的逆和伪逆

    我们可以使用np.linalg中的inv和pinv函数来求解矩阵的逆/伪逆. np.linalg.inv 对于可逆方阵M,我们使用下面这行代码求逆: np.linalg.inv(J(theta)) 示 ...

  9. matlab:inv,pinv逆与伪逆

    对于方阵A,如果为非奇异方阵,则存在逆矩阵inv(A) 对于奇异矩阵或者非方阵,并不存在逆矩阵,但可以使用pinv(A)求其伪逆 inv: inv(A)*B 实际上可以写成A\B B*inv(A) 实 ...

最新文章

  1. 在leangoo里怎么复制列表,删除列表,插入列表?
  2. 九个Console命令,让js调试更简单
  3. 【重学Vue】数据响应原理真的是双向绑定吗?
  4. 安装ipvsadm 用make编译出现错误解决方法
  5. jQuery Mobile学习笔记
  6. hbase数据库介绍,HBASE的特点,表结构逻辑视图,Row Key,列族,时间戳,Cell
  7. C++ 类访问控制(public/protected/private)
  8. LeetCode 251. 展开二维向量
  9. 在视图中显示InActive记录
  10. android hook 实例,代码实例分析android中inline hook
  11. 2018第一场多校 -补题
  12. 二叉排序树的第k个结点
  13. 【一步一步学习mysql】数据库操作
  14. html日历修改,HTML精美日历插件
  15. 粗糙集(Rough Sets)
  16. 市政协调研组:建议设大数据管理局
  17. 变形金刚2中的各个角色,及车型(带图)第二篇。
  18. 想学CNC编程的一定要看过来
  19. english learning fengshui
  20. sqlite怎么转换mysql_Django如何把SQLite数据库转换为Mysql数据库

热门文章

  1. java毕业设计博物馆交流平台Mybatis+系统+数据库+调试部署
  2. python自动化--飞书群发送日报图片
  3. 【小程序】已有公众号认证,一步一步申请小程序(图文)
  4. 数据分析系列章节(一):初始数学之美
  5. How-to-formulate-lumped-mass-matrix-in FEM
  6. android仿微信相册的效果
  7. php是世界上最好的语言英语,全球语言词汇量排名 英语以70万个词汇总量世界第二...
  8. 【深度学习21天学习挑战赛】3、使用自制数据集——卷积神经网络(CNN)天气识别
  9. Win10系统中不需要打开即可预览word/pdf
  10. 给 DW cs4 安装插件 jQuery_API.mxp