过于简单的SVD矩阵解决方案

时间:2018-04-10 12:19:02

标签: python matrix linear-algebra svd

我在另一个主题(Multilateration of GPS Coordinates)中找到了一段代码,它应该通过SVD方法解决矩阵。我正在使用它,但现在我必须能够解释代码的机制,我无法找到其简单性的数学原因:

    A = np.array(A)
    (_,_,v) = np.linalg.svd(A)
    # Get the minimizer
    w = v[3,:]
    w /= w[3]

然而,它适用于我的情况。这是我的一个矩阵和解决方案的示例:

Matrix A
[[ 0.01944444 -0.91680556  0.4567078 ]
 [ 0.         -0.93430556  0.47549222]]

Matrix v
[[-0.00927192  0.89308049 -0.44980137]
 [-0.91093059  0.1779953   0.37218697]
 [ 0.41245545  0.41318872  0.81188398]]

Solution:
0.508022647987   0.508925817052

左边的两列是矩阵A,右边的列是形式为Ax = b的矩阵中的矩阵b,但由于某种原因,代码将它们组合成一个矩阵。我知道存在最小二乘法,但经过测试后,当矩阵超定时,它不那么稳健和准确。

0 个答案:

没有答案