# Can I find the axis of rotation for any single-qubit $U_3$ gate?

Suppose I have an arbitrary qiskit $$U_3$$ gate: $$U_3(\theta,\phi,\lambda)$$. Is there a way I can find which axis the gate is rotating around? In other words, given any real numbers $$\theta,\phi,\lambda$$, can I find the vector $$\hat n = (n_x,n_y,n_z)$$ that the gate corresponds to, so that I can plot the axis of rotation on the Bloch sphere? I'm thinking about the y-z decomposition, but I'm still unable to find out the elements of $$\hat n$$. How can I figure that out? Thanks a lot for the help:)

• do you mean a single-qubit gate? If so, it's just the eigenvectors. Or even just a single eigenvector really (the two eigenvectors are orthogonal and thus collinear when represented on the Bloch sphere). For unitaries in larger dimensions, you can't, in general, understand the gate as a rotation around a specific axis in state space. – glS Mar 17 at 11:09
• @glS Thanks for the comment! That helps:) – ZR- Mar 17 at 16:03

You can derive an expression for the rotation axis by combining (1) the decomposition of your unitary $$O$$ in the Pauli basis, and (2) by the representation of the general rotation operator $$R_{\vec n}(\theta)$$ in terms of Paulis.

Step (1)

Let $$\{\sigma_0, \sigma_x, \sigma_y, \sigma_z \}$$ describe the identity matrix ($$\sigma_0 = \mathbb 1$$) and Pauli matrices, which together form a basis of $$U(2)$$, which is the space of single-qubit gates. With the trace as dot-product you can write any matrix $$O \in U(2)$$ in the basis of Pauli matrices as \begin{aligned} O &= \frac{1}{2} \left(\text{Tr}(O\sigma_0) \sigma_0 + \text{Tr}(O\sigma_x)\sigma_x + \text{Tr}(O\sigma_y)\sigma_y + \text{Tr}(O\sigma_z)\sigma_z \right) \\ &= \frac{1}{2} \left(\text{Tr}(O) \sigma_0 + \text{Tr}(O\sigma_x)\sigma_x + \text{Tr}(O\sigma_y)\sigma_y + \text{Tr}(O\sigma_z)\sigma_z \right) \\ \end{aligned} This is looks like your typical decomposition of a vector into a basis $$O = \sum_{\omega \in \{0, x, y, z\}} b_\omega \sigma_\omega,$$ where the basis coefficients are $$b_\omega = \text{Tr}(O\sigma_\omega)/2)$$ and the basis "vector" (or here matrices) are $$\sigma_\omega$$.

Step (2)

We know that any single-qubit gate can be written as (see e.g. Nielsen & Chuang) $$O = e^{i\alpha} R_{\vec n}(\theta)$$ where \begin{aligned} R_{\vec n}(\theta) &= e^{i \theta/2 (n_x \sigma_x + n_y \sigma_y + n_z\sigma_z)} \\ &= \cos\frac{\theta}{2}\sigma_0 - i\sin\frac{\theta}{2}(n_x \sigma_x + n_y \sigma_y + n_z\sigma_z) \end{aligned}

The factor $$e^{i\alpha}$$ is fixed by the determinant of $$O$$. Since $$R$$ is a rotation the determinant is $$1$$, but $$O$$ might not have a determinant of $$1$$. So we know that \begin{aligned} &\text{det}(O) = \text{det}(e^{i\alpha} R_{\vec n}) = e^{2i\alpha}\det(R_{\vec n}(\theta)) \\ &\Leftrightarrow e^{i\alpha} = \sqrt{\det(O)} \end{aligned}

Combining (1) and (2)

Now that we know $$e^{i\alpha}$$ we can match the entries of the Bloch vector $$\vec n = (n_x, n_y, n_z)$$ with the basis coefficients above! I'll leave the math now out because this post is long enough but if you match \begin{aligned} \frac{1}{2}\text{Tr}(O) &= e^{i\alpha}\cos\frac{\theta}{2}\text{ and } \\ \frac{1}{2}\text{Tr}(O\sigma_\omega) &= -i\sin\frac{\theta}{2} \text{ for } \omega = x, y, z \end{aligned}

You finally obtain \begin{aligned} \theta = 2\cos^{-1}\left(e^{-i\alpha}\frac{\text{Tr}(O)}{2}\right) \end{aligned} and \begin{aligned} n_\omega = \frac{e^{-i\alpha}\text{Tr}(O\sigma_\omega)}{-2i \sin(\theta/2)} \end{aligned} which you could possibly simplify further by plugging in the expression for $$\theta$$, but, as many textbooks say, I'll leave that exercise for to the motivated reader. :)

If you do this for e.g. $$S = \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix}$$ you obtain $$\alpha = \frac{\pi}{4}, \theta = \frac{\pi}{2}$$ and $$\vec n = (0, 0, 1).$$

• Thanks so much for the really detailed answer! Could you explain a little bit about what does $\Tr {O(\sigma_\omega)\sigma_\omega}$ mean? For a general $U_3\in SU(2)$, could the expression of $O$ be further simplified? – ZR- Mar 17 at 14:55

A generic $$2\times2$$ (special) unitary matrix decomposes in terms of Pauli matrices as $$U = a_0 I + i \sum_{j=1}^3 a_j \sigma_j,$$ for $$a_j\in\mathbb R$$ such that $$\sum_{j=0}^3 a_j^2=1$$. One way to write this condition is to parametrise the coefficients as $$a_0 = \cos(\theta), \qquad a_j = \sin(\theta) n_j$$ for any $$\theta\in\mathbb R$$ and $$(n_1,n_2,n_3)\in\mathbb R^3$$ such that $$\|\vec n\|=1$$.

The eigenvectors of such a matrix are $$\frac{1}{\sqrt{2\|\vec a\|(\|\vec a\|\mp a_3)}}\begin{pmatrix}a_3 \mp \|\vec a\| \\ a_1 + i a_2\end{pmatrix},$$ where $$\|\vec a\|^2\equiv \sum_{j=1}^3 a_j^2$$.

Given an arbitrary complex vector $$(\alpha,\beta)\in\mathbb C^2$$, you can get the corresponding vector in the Bloch sphere via the mapping $$\begin{pmatrix}\alpha\\\beta\end{pmatrix} \longleftrightarrow \begin{pmatrix}|\alpha|^2-|\beta|^2\\2\operatorname{Re}(\bar\alpha\beta) \\ 2\operatorname{Im}(\bar\alpha\beta)\end{pmatrix}.$$ Putting these facts together you can get the Bloch representation of the eigenvectors of a generic $$2\times2$$ special unitary matrix.

• Thanks for the answer, that helps a lot:) I'm just wondering does that matter if the sign in the expression of $U$ is changed to $-$? Parametrizing $a_0$ as $\cos(\theta/2)$ have the same effect, right? – ZR- Mar 17 at 22:21
• what sign? Here $a_j$ are arbitrary real parameters, so $a_j\to -a_j$ gives another valid unitary, if that's what you are asking – glS Mar 17 at 22:24
• Yeah that's what I was thinking. Thanks!! – ZR- Mar 17 at 22:29

Thanks all for reading and answering the question, just a correction for the mapping: $$\begin{pmatrix}\alpha\\\beta\end{pmatrix} \longleftrightarrow \begin{pmatrix}2\operatorname{Re}(\bar\alpha\beta) \\ 2\operatorname{Im}(\bar\alpha\beta)\\|\alpha|^2-|\beta|^2\end{pmatrix}.$$ This could be derived from the spherical-coordinate representation of $$\hat n$$ (note that $$n_z=\cos\theta$$) and the single-qubit representation:)