逆矩阵

矩阵的逆矩阵 和 转置矩阵

最后都变了- 提交于 2019-11-30 13:19:30
这几天用到了逆矩阵,就在这里总结一下逆矩阵和转置矩阵。 逆矩阵 逆矩阵就是一个矩阵的逆向。比如一个点乘以一个矩阵后得到了一个新的点的位置,如果想通过这个点再获得矩阵转换前的位置,那我们就需要乘以这个矩阵的逆矩阵。 在Three.js里面,我们可以通过 new THREE.Matrix4().getInverse(matrix4) 方法来获得一个矩阵的逆矩阵。 具有的性质: 可逆矩阵一定是方阵。 如果矩阵是可逆的,那它的逆矩阵具有唯一性。 矩阵A的逆矩阵的逆矩阵,等于它自身。 Three.js获得一个矩阵的逆矩阵: var m = `new THREE.Matrix4().getInverse(matrix4); Three.js求逆矩阵源码: getInverse: function ( m, throwOnDegenerate ) { // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm var te = this.elements, me = m.elements, n11 = me[ 0 ], n21 = me[ 1 ], n31 = me[ 2 ], n41 = me[ 3 ], n12 = me[ 4 ], n22 = me[ 5 ]

numpy奇异值分解,广义逆矩阵与行列式

眉间皱痕 提交于 2019-11-28 14:01:21
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