4
$\begingroup$

What is the difference between performing $Z$ operation and performing $e^{-i Zt}$ operation on a state, given that $e^{-i Zt}= \mathbb{1} + (-i Zt) + ...$ is not equal to $Z$ for any value of $t$?

$\endgroup$
7
$\begingroup$

Effectively, the Z operation (represented by the Pauli $Z$ matrix) applies a rotation about the $Z$-axis. As you note, rotations can also be written in the form $e^{-i Z t}$. To see that, you can use a trick pretty similar to the one used to derive Euler's identity ($e^{i \theta} = \cos(\theta) + i \sin(\theta)$) to rewrite the Taylor series that you quoted in your question.

In particular, to derive Euler's identity, you can use that $i^2 = -1$ to separate the even and odd powers of the series $e^x$ and identify the series for $\cos(\theta)$ and $\sin(\theta)$. Since $Z^2 = 𝟙$, you can pull the same trick with $e^{i Z t}$:

$$ \begin{align} e^{i Z t} & = \sum_{k = 0}^{\infty} \frac{(iZt)^k}{k!} = 𝟙 - iZt - \frac12 Z^2 t^2 \cdots \\ & = \left(𝟙 - \frac12 Z^2 t^2 + \cdots \right) - i \left(Z t - \frac1{3!} Z^3 t^3 + \cdots \right) \\ & = 𝟙 \left(1 - \frac12 t^2 \right) - i Z \left(t - \frac1{3!} t^3 \right) \\ & = 𝟙 \cos(t) - i Z \sin(t) \end{align} $$

Thus, at $t = \pi / 2$, $e^{i Z t} = -iZ$. Since $-i$ is an example of a global phase, evolving under $Z$ for time $t = \pi / 2$ gives you the same unitary transformation as $Z$. Indeed, you can check the equivalence of the two matrices using QuTiP:

In [1]: import qutip as qt
In [2]: import numpy as np
In [3]: Z = qt.sigmaz()
In [4]: -1j * (1j * Z * np.pi / 2).expm()
Out[4]:
Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True
Qobj data =
[[ 1.  0.]
 [ 0. -1.]]

You can also check that the quantum program Z(q); does the same thing as Exp([PauliZ], PI() / 2.0, [q]); using the AssertOperationsEqualReferenced operation:

open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Diagnostics;
open Microsoft.Quantum.Math;

operation ApplyZ(qubits : Qubit[]) : Unit is Adj + Ctl {
    Z(Head(qubits));
}

operation CheckIfOperationsEqual() : Unit {
    AssertOperationsEqualReferenced(1,
        ApplyZ,
        Exp([PauliZ], PI() / 2.0, _)
    );
    Message("Operations are equal!");
}

Try it online!

|improve this answer|||||
$\endgroup$
  • 2
    $\begingroup$ If you are interested in more, check out Chris and my book, Learn Quantum Computing with Python and Q# manning.com/books/…. Chapter 9 which should be out shortly talks about 'Exp' and using Hamiltionians to describe the time evolution of states. $\endgroup$ – Dr. Sarah Kaiser Jan 29 at 19:48

Your Answer

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

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