美文网首页码农的世界
numpy.linalg矩阵求逆或伪逆

numpy.linalg矩阵求逆或伪逆

作者: 霜天渔火 | 来源:发表于2019-05-30 23:56 被阅读0次

最近做数据挖掘又接触到线性代数,把逆和伪逆简单总结一下。

求逆

numpy.linalg.inv(a)

该函数求矩阵的逆,要求矩阵a是方阵并且非奇异

判断方阵非奇异有如下充要条件:

  • 一个方阵非奇异,当且仅当它满秩。
  • 一个方阵非奇异,当且仅当它行列式不为0。

如果矩阵是奇异的,它就不存在逆矩阵,还有没有办法求一个近似解呢?答案就是伪逆矩阵

求伪逆

伪逆矩阵可以顾名思义,它也叫广义逆矩阵。伪逆矩阵有Penrose定义和E.H.Moore定义,实质上它们是等价的,在这里不详述。

求伪逆的方法是对矩阵a进行奇异值分解(SVD),可以用numpy.linalg的函数:

numpy.linalg.inv(a)

伪逆矩阵的应用很多,最简单的就是求解最小二乘问题,其解的矩阵形式为

B=(XTX)-1XTY

如果X不是列满秩,那么XTX就不存在逆矩阵,此时就要求伪逆来代替。

相关文章

网友评论

    本文标题:numpy.linalg矩阵求逆或伪逆

    本文链接:https://www.haomeiwen.com/subject/qqkitctx.html