Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. def lup(matrix):
  2. assert matrix.shape[0] == matrix.shape[1]
  3. n = matrix.shape[0]
  4. L = np.eye(n, dtype=matrix.dtype)
  5. U = np.copy(matrix)
  6. P = np.eye(n, dtype=matrix.dtype)
  7. for i in range(n):
  8. if np.abs(U[i,i]) < tol:
  9. for k in range(i + 1, n):
  10. if np.abs(U[k, i]) > tol:
  11. U[[i,k]] = U[[k, i]]
  12. L[[i,k]] = L[[k, i]]
  13. L[:, [i,k]] = L[:, [k,i]]
  14. P[[i,k]] = P[[k, i]]
  15. break
  16.  
  17. for j in range(i + 1, n):
  18. coef = U[j,i]/U[i,i]
  19. U[j, :] -= coef * U[i, :]
  20. L[j, i] = coef
  21. return L, U, P
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement