课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
7分钟

矩阵的奇异值分解

矩阵的奇异值分解: 设矩阵 AM×N 阶的矩阵,则存在一个分解,使得:A=UΣV^H ,其中 UM×M 阶酉矩阵; Σ 为半正定的 M×N 阶的对焦矩阵; 而 VN×N 阶酉矩阵。

Σ 对角线上的元素为 A 的奇异值,通常按照从大到小排列。

scipy.linalg.svd(a, full_matrices=True, compute_uv=True, overwrite_a=False, 
  check_finite=True, lapack_driver='gesdd')
  • a:一个矩阵,形状为(M,N),待分解的矩阵。
  • full_matrices:如果为True,则 U 的形状为(M,M)V^H 的形状为(N,N);否则 U 的形状为(M,K)V^H 的形状为(K,N),其中 K=min(M,N)
  • compute_uv:如果True,则结果中额外返回U以及Vh;否则只返回奇异值
  • overwrite_a:一个布尔值,指定是否将结果写到a的存储区。
  • overwrite_b:一个布尔值,指定是否将结果写到b的存储区。
  • check_finite:如果为True,则检测输入中是否有nan或者inf
  • lapack_driver:一个字符串,指定求解算法。可以为:'gesdd'/'gesvd'。默认的'gesdd'

返回值:

  • UU 矩阵
  • s:奇异值,它是一个一维数组,按照降序排列。长度为 K=min(M,N)
  • Vh:就是 V^H 矩阵

判断两个数组是否近似相等 np.allclose(a1,a2)(主要是浮点数的精度问题)