使用 SVD (U Z V = E) 的替代因式分解使得 det(U) = det(V) = +1

Alternative Factorization using SVD (U Z V = E) such that det(U) = det(V) = +1

我正在使用 python 库 numpy 来计算矩阵的 svd

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)