Take the 2-minute tour ×

I'm facing a math problem that I thought easy, but I'm stuck with a solution that doesn't seem optimal.

The problem is the following : I have "registers" which are the expanded representation of several Qubits (quantum bits), and I want to separate them. What is the quickest way of doing so ?

Note that the fact that we are dealing with Qubits is secondary here.

For example $ 0.707\text{ |00>} + 0.707i\text{ |01>} + 0\text{ |10>} + 0\text{ |11>}$ is a representation of the 2 Qubits $(1 \text{ |0>} + 0\text{ |1>})(0.707\text{ |0>} + 0.707i\text{ |1>})$.

In the general case, I can have $n$ Qubits (so the expanded representation has $2^n$ terms).

My idea (with the example of $ \alpha\text{ |00>} + \beta\text{ |01>} + \gamma\text{ |10>} + \delta\text{ |11>}$ to be converted in $(a \text{ |0>} + b\text{ |1>})(a'\text{ |0>} + b'\text{ |1>}))$ :

We have the system :

  • $\alpha = aa'$
  • $\beta = ab'$
  • $\gamma = a'b$
  • $\delta = bb'$

Noting that the sum of the squares of the modulus is always $1$ in a Qubit, we have $|\alpha|²+|\beta|² = |a|²*(|a'|²+|b'|²) = |a|²$, so $|a| = \sqrt{|\alpha|²+|\beta|²}$ (same goes for the others).

The difficulty is now to find the arguments of $a,a',b,b'$.

As of now, my best idea is to apply the argument function to transform the first $2n$ equations above into linear ones (where $n$ is the number of Qubits, here $2$), and then do Gauss-Jordan elimination on these, but this is tedious and I'm not even sure it is going to work because I'm not working in the field of complex numbers anymore.

The thing is I really think I am missing something easier here. Does anyone have an idea, or can validate mine if there is no other way ?

Thank you in advance !

share|improve this question

1 Answer 1

up vote 2 down vote accepted


Great because I didn't understood anything at your Qubits problem. However I can maybe tell you a bit more about your equation system. This is a particular case of rank 1 approximation problem. This is an active research field. The goal is, for a given tensor $A \in \mathbb{R}^{d_1 \times \ldots \times d_m}$ of order $m$, to find some vectors $u^1 \in \mathbb{R}^{d_1}, \ldots, u^m \in \mathbb{R}^{d_m}$ such that $A_{j_1, \ldots, j_m}=u^1_{j_1} \cdot \ldots \cdot u^m_{j_m}$ for every $1 \leq j_1 \leq d_1, \ldots, 1 \leq j_m \leq d_m$. Finding such $u$'s is still an open problem. But in the special case of matrices, it seems that there are efficients algorithms (usually based on the SVD of the matrix). See e.g. here at the end of the page or just google "rank one approximation of a matrix".

share|improve this answer

Your Answer


