Physics Stack Exchange is a question and answer site for active researchers, academics and students of physics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I think this question is a bit low brow for the forum. I want to take a state vector $ \alpha |0\rangle + \beta |1\rangle $ to the two bloch angles. What's the best way? I tried to just factor out the phase from $\alpha$, but then ended up with a divide by zero when trying to compute $\phi$ from $\beta$.

share|cite|improve this question
This question should be migrated to – Frédéric Grosshans May 4 '12 at 19:37
You have asked 13 questions, cast 0 votes, and marked only one question as accepted. Consider marking more questions as correct and definitely start voting on answers to your own questions, as well as other questions and answers that you have not provided. There is little incentive for anyone to answer your questions as it stands. – qubyte May 10 '12 at 4:24
Sure, Ill do that more. I didnt understand that I could give back to people answering simply by upping their numbers. I like the community and will try to do better as a member – Ben Sprott May 17 '12 at 15:10
No problem. It can take a while to find your feet on SE. Sometimes we just need to make a little noise. ;) – qubyte May 18 '12 at 9:08
up vote 2 down vote accepted

You are probably dividing by $\alpha$ at some point to eliminate a global phase, leading to your divide by zero in some cases. It would be better to get the phase angles of $\alpha$ and $\beta$ with $\arg$, and set the relative phase $\phi=\arg(\beta)-\arg(\alpha)$. Angle $\theta$ is now simply extracted as $\theta = 2\cos^{-1}(|\alpha|)$ (note that the absolute value of $\alpha$ is used). This is all assuming that you want to get to

$$|\psi\rangle = \cos(\theta/2)|0\rangle + \mathrm{e}^{i\phi}\sin(\theta/2)|1\rangle\,,$$

which neglects global phase.

share|cite|improve this answer
Your previous questions suggest that you are using Matlab, which has the angle() function for calculating arg. In other languages that support complex types, arg (or something similar such as carg for C99 complex doubles) is more common. – qubyte May 10 '12 at 4:21

$\phi$ is the relative phase between $\alpha$ and $\beta$ (so the phase of $\alpha/\beta$). You will only get zero or divide-by-zero when $\alpha=0$ or $\beta=0$. But in that case, $\phi$ is arbitrary. And when $\alpha$ or $\beta$ are close to zero, you are near the poles of the Bloch sphere, and $\phi$ doesn't really matter that much.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.