这就是我需要做的事情 -
我有这个等式 -
Ax = y
其中A是有理m * n矩阵(m <= n),并且x和y是矢量 合适的大小。我知道A和y,我不知道x等于什么。一世 也知道没有x,其中Ax等于y。 我想找到向量x',使Ax'尽可能接近 年。意味着(Ax' - y)尽可能接近(0,0,0,... 0)。
我知道我需要使用lstsq函数: http://www.scipy.org/doc/numpy_api_docs/numpy.linalg.linalg.html#lstsq
或svd功能: http://www.scipy.org/doc/numpy_api_docs/numpy.linalg.linalg.html#svd
我根本不懂文档。有人可以出示吗 我如何使用这些功能来解决我的问题。
非常感谢!!!
答案 0 :(得分:2)
updated documentation可能会更有帮助......看起来像你想要的
numpy.linalg.lstsq(A, y)
答案 1 :(得分:0)
答案 2 :(得分:0)
矩阵A的SVD给出正交矩阵U和V以及对角矩阵Σ,使得
A = U Σ V T
,其中 U U T = 我; V V T = 我
因此,如果
x A = y
然后
x U Σ V T = y 强>
x U Σ V T V = y V
x U Σ = y V
U T x Σ = y V 强>
x Σ = U y V
x = Σ -1 U T y < / strong> V
x = V T Σ -1 U < / strong> T y
因此,给定 A 的SVD,您可以获得 x 。
虽然对于一般矩阵 AB != BA ,矢量 x 的确如此 x U = = U T x 。
例如,考虑 x =(x,y), U =(a,b; c,d):
x U =(x,y)(a,b; c,d)
=(xa + yc,xb + yd)
=(ax + cy,bx + dy)
=(a,c; b,d)(x; y)
= U T x
当您查看 x U 中的值 x 以及 U的列时,这是相当明显的, U T x 中的值是 x 和行的点积 U T ,以及换位中行和列的关系