# Convert state Vectors to Bloch Sphere angles

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$.

• This question should be migrated to physics.sx Commented May 4, 2012 at 19:37
• Commented May 8, 2012 at 7:05
• 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. Commented May 10, 2012 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 Commented May 17, 2012 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. ;) Commented May 18, 2012 at 9:08

## 3 Answers

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.

• 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. Commented May 10, 2012 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.

To those who may be having a similar question: make sure you are normalizing the qubit before trying to find the Bloch angles.

Take for example the eigenvectors of the $$X$$ operator (Pauli matrix $$\sigma^x$$), in the $$\{|0\rangle, |1\rangle\}$$ basis:

$$-|0\rangle + |1\rangle \\ |0\rangle + |1\rangle$$

If you try to use those coefficients directly, you will try for example $$\cos \theta/2 = \pm 1$$, which will lead to the inconsistent equation that the question mentions. But the right coefficients, after normalizing, should be:

$$-\frac{ 1}{ \sqrt{2}}|0\rangle + \frac{ 1}{ \sqrt{2}}|1\rangle \\ \frac{ 1}{ \sqrt{2}}|0\rangle + \frac{ 1}{ \sqrt{2}}|1\rangle$$

These give you the correct positions in the Bloch sphere: $$(\pi/2,\pi),(\pi/2,0)$$