zoukankan      html  css  js  c++  java
  • numpy奇异值分解,广义逆矩阵与行列式

    SVD

    是一种因子分解运算, 将一个矩阵分解为3个矩阵的乘积

    其中, 奇异值矩阵是对角线矩阵

    Key_Function

    np.linalg.svd函数, 可以对矩阵进行奇异值分解.

      U: 正交矩阵

      sigma: 表示奇异值矩阵对角线的数组, 其他非对角线元素均为0

      V: 正交矩阵

    np.diag函数, 得出完整的奇异值矩阵

    Code

    import numpy as np
    
    A = np.mat("4 11 14; 8 7 -2")
    print(A)
    '''
    [[ 4 11 14]
     [ 8  7 -2]]
    '''
    
    U, Sigma, V = np.linalg.svd(A, full_matrices=False)
    print(U)
    '''
    [[-0.9486833  -0.31622777]
     [-0.31622777  0.9486833 ]]
    '''
    print(Sigma)    # 这个Sigma只是奇异值矩阵对角线上的值
    '''
    [ 18.97366596   9.48683298]
    '''
    print(np.diag(Sigma))
    '''
    [[ 18.97366596   0.        ]
     [  0.           9.48683298]]
    '''
    print(V)
    '''
    [[-0.33333333 -0.66666667 -0.66666667]
     [ 0.66666667  0.33333333 -0.66666667]]
    '''
    
    print(U * np.diag(Sigma) * V)
    '''
    [[  4.  11.  14.]
     [  8.   7.  -2.]]
    '''

    广义逆矩阵

    Key_Function

    np.linalg.pinv函数

    np.inv函数

    Code

    import numpy as np
    
    A = np.mat("4 11 14; 8 7 -2")
    print(A)
    '''
    [[ 4 11 14]
     [ 8  7 -2]]
    '''
    
    pseudoinv = np.linalg.pinv(A)
    print(pseudoinv)
    '''
    [[-0.00555556  0.07222222]
     [ 0.02222222  0.04444444]
     [ 0.05555556 -0.05555556]]
    '''
    
    print(A * pseudoinv)
    '''十分接近单位矩阵
    [[  1.00000000e+00   0.00000000e+00]
     [  8.32667268e-17   1.00000000e+00]]
    '''

    数学概念

    广义逆矩阵的定义

    或者

    广义逆矩阵的求解

    行列式

    Key_Function

    np.linalg.det函数, 计算矩阵的行列式

    Code

    import numpy as np
    
    A = np.mat("3 4; 5 6")
    print(A)
    '''
    [[3 4]
     [5 6]]
    '''
    
    print(np.linalg.det(A))
    # -2.0
  • 相关阅读:
    inline-block图文布局
    display: inline-block换行问题
    前端Fiddler高级调试技巧
    开发人员linux命令总结
    随笔-系统安装
    Fiddler高阶技能-项目文件代理
    译:如何使用时间轴工具
    jquery 选择器之children与find
    ASP.NET 大文件下载的实现思路及代码
    Git 使用指南
  • 原文地址:https://www.cnblogs.com/draven123/p/11410045.html
Copyright © 2011-2022 走看看