Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. A = np.array([[1., 1.], [-1., -1.], [1., 0.]])
  2.  
  3. b = np.array([0., 0., 1.])
  4.  
  5. from scipy.sparse.linalg import lsqr
  6. return_values = lsqr(A, b)
  7. x = return_values[0]
  8.  
  9. A.T.dot(A).dot(x) == A.T.dot(b)
  10.  
  11. A [MxN] * x [Nx1] = b [Mx1]
  12.  
  13. U [MxM] * S[MxN] * V[N*N] * x[Nx1] = b[Mx1]
  14.  
  15. S[MxN] * V [N * N] * x[Nx1] = U.T [MxM] * b [Mx1]
  16.  
  17. >>> a = np.array([[1., 1.], [-1., -1.], [1., 0.]])
  18. >>> b = np.array([0., 0., 1.])
  19. >>> u, s, v = np.linalg.svd(a)
  20. >>> np.allclose(u.T.dot(b)[-m+n:], 0) #check system is not overdetermined
  21. True
  22. >>> np.linalg.solve(s[:, None] * v, u.T.dot(b)[:n])
  23. array([ 1., -1.])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement