Python 使用SVD(U Z V=E)的替代因子分解,使得det(U)=det(V)=&x2B;1.

Python 使用SVD(U Z V=E)的替代因子分解,使得det(U)=det(V)=&x2B;1.,python,numpy,rotation,svd,factorization,Python,Numpy,Rotation,Svd,Factorization,我正在使用python库numpy来计算矩阵的奇异值分解 import numpy E = numpy.array( [[ -1.53796077e-07, -8.32829326e-06, 1.20315886e-02] [ 9.99043253e-06, 5.28004707e-07, 1.42958076e-01] [ -1.70318163e-02, -1.43960577e-01, 1.000

我正在使用python库numpy来计算矩阵的奇异值分解

import numpy
E = numpy.array( [[ -1.53796077e-07,  -8.32829326e-06,   1.20315886e-02]
                  [  9.99043253e-06,   5.28004707e-07,   1.42958076e-01]
                  [ -1.70318163e-02,  -1.43960577e-01,   1.00000000e+00]] )
U, Z, V = numpy.linalg.svd(E)
print "det(U) =", det(U)
print "det(V) =", det(V)
我得到U,Z,V,这样:

det(U) = 1
det(V) = -1
是否有可能找到一个替代的因式分解,其中U,V都在SO(3)中,从而

det(U) = 1
det(V) = 1
如有可能:


如何为任意矩阵E找到这样的因式分解?

你可以简单地将V和Z乘以
-1*np.eye(3)