美文网首页码农的世界
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