I have a matrix A, which is huge, and all its elements are non-zero. I want to perform the operation: $ U_1\otimes U_2 \otimes U_3...\cdot A \cdot U_1^{\dagger}\otimes U_2^{\dagger}\otimes U_3^{\dagger}... = \tilde{A}$ so essentially apply a unitary rotation to my matrix such that I increase the number of zero elements as much as possible. It is important that the $U_i$ matrices are 2x2 unitary matrices. Does anyone have an idea of how this is doable (in Python or Mathematica for example). I do not want the code, just the idea, for example by minimizing a trace or hadamard product. Just the way to pose the problem. (Looks like a conical optimization problem to me).

  • $\begingroup$ You might want to look at the Schur decomposition of $A$. If $A$ is normal then it can be unitarily diagonalized. $\endgroup$ – K. Miller Sep 25 '15 at 13:19
  • $\begingroup$ The problem is, if I diagonalize it, it might destroy some important properties of my matrix. I just want to reduce the number of non-zero elements as much as possible, but under the above constraints. $\endgroup$ – qubix Oct 28 '15 at 9:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.