Advertisement
Guest User

Untitled

a guest
Oct 20th, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. import numpy as np
  2. import scipy as sp
  3. import scipy.optimize as so
  4.  
  5. numMatrices = 1
  6. n = 3
  7.  
  8. def hermitian(A, **kwargs):
  9. return np.transpose(A,**kwargs).conj()
  10.  
  11. H = hermitian
  12.  
  13. def matrixProduct(a, lowerTriag):
  14. # We specified everything below the diagonal
  15. # as known numbers to reduce the number of
  16. # unknowns to match the number of equations
  17. aMod = lowerTriag + np.triu(np.reshape(a,(n,n)))
  18. ret = np.einsum('ij,jk', H(aMod), aMod)-np.eye(np.shape(aMod)[0])
  19. return ret.flatten()
  20.  
  21. lowerTriang = []
  22. finalMatrix = []
  23.  
  24. for mat in xrange(numMatrices):
  25. lowerTriang.append(np.tril(np.random.random((n,n)),-1))
  26.  
  27. x0 = lowerTriang[-1] + np.triu(np.random.random((n,n)))
  28.  
  29. finalMatrix.append(so.fsolve(matrixProduct,
  30. x0.flatten(),
  31. args=(lowerTriang[-1]),
  32. maxfev=100000))
  33.  
  34. for mat in finalMatrix:
  35. newMat = np.reshape(mat,(n,n))
  36. print np.dot(H(newMat),newMat)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement