Guest User

Untitled

a guest
Nov 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. K = RR
  2.  
  3. # Input matrix here
  4. A = matrix(K, [[-3, 32/5, 4 ],
  5. [4, 24/5, 3 ],
  6. [5, 6*sqrt(2), 5*sqrt(2)]])
  7.  
  8. m,n = (3,3)
  9.  
  10.  
  11. # Calculate r, c, s
  12. def givens(a,b):
  13. if b == 0:
  14. c = 1
  15. s = 0
  16. else:
  17. if abs(b) > abs(a):
  18. r = a / b;
  19. s = 1 / sqrt(1 + r**2)
  20. c = s*r
  21. else:
  22. r = b / a
  23. c = 1 / sqrt(1 + r**2)
  24. s = c*r
  25. return r, c, s
  26.  
  27. Q = matrix(K,m,n,1)
  28. R = copy(A)
  29.  
  30. # Calculate QR
  31. for j in range(0,n):
  32. for i in range(m-1, j, -1):
  33. r, c, s = givens(R[i-1,j], R[i,j])
  34. R[i-1:i+1,j:n] = matrix([[c,s],[-s,c]]) * R[i-1:i+1,j:n]
  35. Q[i-1:i+1,:] = matrix([[c,s],[-s,c]]) * Q[i-1:i+1,:]
  36.  
  37.  
  38. Q = Q.transpose()
  39.  
  40. print "-" * 10
  41. print Q
  42. print
  43. print R
  44. print
  45. print Q * R
Add Comment
Please, Sign In to add comment