{
"cells": [
{
"cell_type": "markdown",
"id": "fe853c49",
"metadata": {},
"source": [
"# 4.2 单量子比特运算"
]
},
{
"cell_type": "markdown",
"id": "011ecf95",
"metadata": {},
"source": [
"未完成的证明:练习 4.11"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "9cdd2263",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import scipy\n",
"from qiskit import QuantumCircuit, Aer, assemble\n",
"from qiskit.visualization import plot_bloch_multivector"
]
},
{
"cell_type": "markdown",
"id": "1c61d061",
"metadata": {},
"source": [
"## 练习 4.1"
]
},
{
"cell_type": "markdown",
"id": "15fa9b30",
"metadata": {},
"source": [
":::{admonition} 练习 4.1\n",
"\n",
"练习 2.11 计算了 Pauli 矩阵的特征向量 (如果还没有做这个练习,请现在就做),在 Bloch 球面上求出不同 Pauli 矩阵的归一化特征向量对应的点。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "afcd33b5",
"metadata": {},
"source": [
"首先,这三个 Pauli 矩阵 $X, Y, Z$ 的特征值均为 $\\lambda_1 = -1, \\lambda_2 = 1$。它们的特征向量分别是\n",
"\n",
"$$\n",
"\\begin{alignat*}{4}\n",
"|x_1\\rangle &= - \\frac{1}{\\sqrt{2}} |0\\rangle + \\frac{1}{\\sqrt{2}} |1\\rangle,& \\quad |x_2\\rangle &= \\frac{1}{\\sqrt{2}} |0\\rangle + \\frac{1}{\\sqrt{2}} |1\\rangle \\\\\n",
"|y_1\\rangle &= - \\frac{1}{\\sqrt{2}} |0\\rangle + \\frac{i}{\\sqrt{2}} |1\\rangle,& \\quad |y_2\\rangle &= \\frac{1}{\\sqrt{2}} |0\\rangle + \\frac{i}{\\sqrt{2}} |1\\rangle \\\\\n",
"|z_1\\rangle &= |1\\rangle,& \\quad |z_2\\rangle &= |0\\rangle\n",
"\\end{alignat*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "f7ce77b4",
"metadata": {},
"source": [
"下面使用程序绘制 Bloch 球面。我们先用 NumPy 给出本征向量,随后代入到 Qiskit 中绘制。可以看到,$X, Y, Z$ 的本征值分别对应 Bloch 球面上 $x, y, z$ 三个方向。"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "6f736ab3",
"metadata": {},
"outputs": [],
"source": [
"X = np.array([[0, 1], [1, 0]])\n",
"Y = np.array([[0, -1j], [1j, 0]])\n",
"Z = np.array([[1, 0], [0, -1]])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "dfb83b9c",
"metadata": {},
"outputs": [],
"source": [
"def ex_4_1(matrix, title=None):\n",
" \"\"\" Input Pauli matrix X or Y or Z; Draw eigenvectors of matrix on Bloch sphere. \"\"\"\n",
" eig = np.linalg.eigh(matrix)[1].T\n",
" circ = QuantumCircuit(2)\n",
" for n, e in enumerate(eig):\n",
" circ.initialize(e, n)\n",
" return plot_bloch_multivector(circ, title)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "1509cc0a",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\r\n",
"\r\n",
"\r\n",
"\r\n"
],
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex_4_1(X, \"Eigenvectors of Pauli X\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "60c22f50",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\r\n",
"\r\n",
"\r\n",
"\r\n"
],
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex_4_1(Y, \"Eigenvectors of Pauli Y\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "e9571309",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\r\n",
"\r\n",
"\r\n",
"\r\n"
],
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex_4_1(Z, \"Eigenvectors of Pauli Z\")"
]
},
{
"cell_type": "markdown",
"id": "47864a68",
"metadata": {},
"source": [
"## 练习 4.2"
]
},
{
"cell_type": "markdown",
"id": "f5ae25af",
"metadata": {},
"source": [
":::{admonition} 练习 4.2\n",
"\n",
"令 $x \\in \\mathbb{R}$ 即为实数,$A$ 为一矩阵且满足 $A^2 = I$。证明:\n",
"\n",
"$$\n",
"\\exp (i A x) = \\cos (x) I + i \\sin (x) A\n",
"$$\n",
"\n",
"利用这一结果验证式 (4.4) 到式 (4.6) 即关于 $\\hat x, \\hat y, \\hat z$ 轴向的旋转算符定义:\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"R_x (\\theta) &\\equiv e^{i \\theta X / 2} = \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} X = \\begin{bmatrix} \\cos \\frac{\\theta}{2} & - i \\sin \\frac{\\theta}{2} \\\\ -i \\sin \\frac{\\theta}{2} & \\cos \\frac{\\theta}{2} \\end{bmatrix} \\tag{4.4} \\\\\n",
"R_y (\\theta) &\\equiv e^{i \\theta Y / 2} = \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} Y = \\begin{bmatrix} \\cos \\frac{\\theta}{2} & - \\sin \\frac{\\theta}{2} \\\\ \\sin \\frac{\\theta}{2} & \\cos \\frac{\\theta}{2} \\end{bmatrix} \\tag{4.5} \\\\\n",
"R_z (\\theta) &\\equiv e^{i \\theta Z / 2} = \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} Z = \\begin{bmatrix} e^{- i \\theta / 2} & 0 \\\\ 0 & e^{i \\theta / 2} \\end{bmatrix} \\tag{4.6}\n",
"\\end{align*}\n",
"$$\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "964a100a",
"metadata": {},
"source": [
"首先,我们回顾一下 $z \\in C$ 下的 Taylor 展开:\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"\\exp(z) &= \\sum_{k=0}^n \\frac{z^k}{k!} = 1 + z + \\frac{z^2}{2!} + \\frac{z^3}{3!} + \\frac{z^4}{4!} + \\frac{z^5}{5!} + \\cdots \\\\\n",
"\\cos(z) &= \\sum_{\\substack{k=0 \\\\ 2 \\mid k}}^n (-1)^{k/2} \\frac{z^k}{k!} = 1 - \\frac{z^2}{2!} + \\frac{z^4}{4!} + \\cdots \\\\\n",
"\\sin(z) &= \\sum_{\\substack{k=1 \\\\ 2 \\nmid k}}^n (-1)^{(k-1)/2} \\frac{z^k}{k!} = z - \\frac{z^3}{3!} + \\frac{z^5}{5!} + \\cdots\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "14af3bbf",
"metadata": {},
"source": [
"对于矩阵而言,其 Taylor 展开是类似的。我们将 $z = i A x$ 代入,并以尽可能消除虚数符号为目的,得到\n",
"\n",
"$$\n",
"\\exp(i A x) = \\sum_{k=0}^n i^k \\frac{(Ax)^k}{k!} = \\sum_{\\substack{k=0 \\\\ 2 \\mid k}}^n (-1)^{k/2} \\frac{(Ax)^k} {k!} + i \\sum_{\\substack{k=1 \\\\ 2 \\nmid k}}^n (-1)^{(k-1)/2} \\frac{(Ax)^k} {k!} = \\cos (A x) + i \\sin (A x)\n",
"$$\n",
"\n",
"如果不用级数展开,而使用 Euler 公式 $e^{i x} = \\cos(x) + i \\sin (x)$,也可以得到相同的结论。"
]
},
{
"cell_type": "markdown",
"id": "b25f9b73",
"metadata": {},
"source": [
"随后,我们注意到另一个条件 $A^2 = I$,那么上式可以进一步化简。我们先讨论 $\\cos$ 的情况:\n",
"\n",
"$$\n",
"\\cos (A x) = \\sum_{\\substack{k=0 \\\\ 2 \\mid k}}^n (-1)^{k/2} \\frac{x^k A^k} {k!} = \\sum_{\\substack{k=0 \\\\ 2 \\mid k}}^n (-1)^{k/2} \\frac{x^k (A^2)^{k/2}} {k!} = \\sum_{\\substack{k=0 \\\\ 2 \\mid k}}^n (-1)^{k/2} \\frac{x^k I} {k!} = I \\sum_{\\substack{k=0 \\\\ 2 \\mid k}}^n (-1)^{k/2} \\frac{x^k} {k!} = \\cos(x) I\n",
"$$\n",
"\n",
"这里利用到求和角标 $k$ 必须是偶数的条件,因此可以将 $A^k$ 的偶数幂次化为单位阵的幂次 $I^{k/2}$,进而所有被求和项只包含矩阵 $I$,可以提到求和之外。最终,将矩阵的函数化为数值函数与矩阵的乘积。"
]
},
{
"cell_type": "markdown",
"id": "7192b6ac",
"metadata": {},
"source": [
"对于 $\\sin$ 而言,情况是类似的:\n",
"\n",
"$$\n",
"\\sin(A x) = \\sum_{\\substack{k=1 \\\\ 2 \\nmid k}}^n (-1)^{(k-1)/2} \\frac{x^k A^k} {k!} = \\sum_{\\substack{k=1 \\\\ 2 \\nmid k}}^n (-1)^{(k-1)/2} \\frac{x^k (A^2)^{(k-1)/2} A} {k!} = A \\sum_{\\substack{k=1 \\\\ 2 \\nmid k}}^n (-1)^{(k-1)/2} \\frac{x^k} {k!} = \\sin(x) A\n",
"$$\n",
"\n",
"将 $\\cos(Ax) = \\cos(x) I$ 与 $\\sin(Ax) = \\sin(x) A$ 代入 $\\exp(i A x)$ 的展开式,得证。"
]
},
{
"cell_type": "markdown",
"id": "3df36337",
"metadata": {},
"source": [
"我们不再验证式 (4.4-6),只是使用程序简单验证一下当 $\\theta = 0.3$ 时式 4.4 的正确性。下面的第一个代码块是计算 $\\theta = 0.3$ 时 $e^{i \\theta X / 2}$ 的结果;第二个代码块则是式 (4.4) 最右边的矩阵数值结果。"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "9785d882",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.98877108+0.j , 0. +0.14943813j],\n",
" [0. +0.14943813j, 0.98877108+0.j ]])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"θ = 0.3\n",
"scipy.linalg.expm(1j * θ * X / 2)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c2045b84",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.98877108+0.j , 0. -0.14943813j],\n",
" [0. -0.14943813j, 0.98877108+0.j ]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.array([\n",
" [np.cos(θ/2), - 1j * np.sin(θ/2)],\n",
" [- 1j * np.sin(θ/2), np.cos(θ/2)]\n",
"])"
]
},
{
"cell_type": "markdown",
"id": "2909acd4",
"metadata": {},
"source": [
"## 练习 4.3"
]
},
{
"cell_type": "markdown",
"id": "e7de3d8b",
"metadata": {},
"source": [
":::{admonition} 练习 4.3\n",
"\n",
"证明除了一个全局相位,$\\pi/8$ 门满足 $T = R_z (\\pi/4)$。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "c422c917",
"metadata": {},
"source": [
"这直接可以参考书中式 (4.3):\n",
"\n",
"\\begin{equation*}\n",
"T = \\exp(i \\pi/8) \\begin{bmatrix} \\exp(- i \\pi/8) & 0 \\\\ 0 & \\exp(i \\pi/8) \\end{bmatrix} \\tag{4.3}\n",
"\\end{equation*}"
]
},
{
"cell_type": "markdown",
"id": "8d58cb2b",
"metadata": {},
"source": [
"## 练习 4.4"
]
},
{
"cell_type": "markdown",
"id": "9c90d677",
"metadata": {},
"source": [
":::{admonition} 练习 4.4\n",
"\n",
"对某个 $\\varphi$,将 Hadamard 门表示为旋转算符 $R_x, R_z$ 以及 $e^{i \\varphi}$ 的乘积。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "40768488",
"metadata": {},
"source": [
"这个结果需要稍微凑一下。答案应该是\n",
"\n",
"$$\n",
"H = e^{i \\varphi} R_z (\\varphi) R_x (\\varphi) R_z (\\varphi)\n",
"$$\n",
"\n",
"上式的 $\\varphi$ 不是任意的,而是 $\\varphi = \\pi / 2$。\n",
"\n",
"这个等式意味着,态向量在 Hadamard 门作用下,相当于其在 Bloch 球面的表示先依 $z$ 轴旋转 90°,再依 $x$ 轴旋转 90°、最后依 $z$ 轴旋转 90°。$z$ 轴的方向是 $|1\\rangle$ 到 $|0\\rangle$;所有旋转都是逆时针旋转。下面的第一块代码是定义 $\\varphi = \\pi/2$ 以及旋转算符的矩阵表示;第二个代码块是分别给出在 $|\\psi\\rangle = 0.8 |0\\rangle + 0.6i |1\\rangle$ 时,$|\\psi\\rangle$、$R_z (\\varphi) |\\psi\\rangle$、$R_x (\\varphi) R_z (\\varphi) |\\psi\\rangle$、$R_z (\\varphi) R_x (\\varphi) R_z (\\varphi) |\\psi\\rangle$ 的 Bloch 球面表示。籍此可以了解向量是如何沿轴旋转的。"
]
},
{
"cell_type": "code",
"execution_count": 94,
"id": "861a0135",
"metadata": {},
"outputs": [],
"source": [
"φ = np.pi / 2\n",
"Rx_varphi = scipy.linalg.expm(1j * φ * X / 2)\n",
"Rz_varphi = scipy.linalg.expm(1j * φ * Z / 2)"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "638fa9f7",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\r\n",
"\r\n",
"\r\n",
"\r\n"
],
"text/plain": [
""
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circ = QuantumCircuit(4)\n",
"vec = np.array([0.8, 0.6j])\n",
"circ.initialize(vec, 0)\n",
"circ.initialize(Rz_varphi @ vec, 1)\n",
"circ.initialize(Rx_varphi @ Rz_varphi @ vec, 2)\n",
"circ.initialize(Rz_varphi @ Rx_varphi @ Rz_varphi @ vec, 3)\n",
"plot_bloch_multivector(circ)"
]
},
{
"cell_type": "markdown",
"id": "a0e5d85d",
"metadata": {},
"source": [
"## 练习 4.5"
]
},
{
"cell_type": "markdown",
"id": "295ed881",
"metadata": {},
"source": [
":::{admonition} 练习 4.5\n",
"\n",
"证明 $(\\hat n \\cdot \\vec\\sigma)^2 = I$,并以此验证式 (4.8):\n",
"\n",
"$$\n",
"R_{\\hat n} (\\theta) \\equiv \\exp (- i \\theta \\hat n \\cdot \\vec \\sigma / 2) = \\cos \\left( \\frac{\\theta}{2} \\right) I - i \\sin \\left( \\frac{\\theta}{2} \\right) (n_x X + n_y Y + n_z Z)\n",
"\\tag{4.8}\n",
"$$\n",
"\n",
"其中,$\\hat n = (n_x, n_y, n_z)$ 为三维空间的实单位向量,$\\vec \\sigma = (X, Y, Z)$ 是 Pauli 矩阵的三元向量。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "898b2f7b",
"metadata": {},
"source": [
"若 $(\\hat n \\cdot \\vec\\sigma)^2 = I$ 成立,那么式 (4.8) 的验证实际上和练习 4.2 对式 (4.4-6) 的验证过程实际上是相同的。那么证明的难点还是在 $(\\hat n \\cdot \\vec\\sigma)^2 = I$ 的证明上。\n",
"\n",
"实际上证明很简单。首先,容易给出\n",
"\n",
"$$\n",
"\\hat n \\cdot \\vec\\sigma = n_x X + n_y Y + n_z Z\n",
"$$\n",
"\n",
"随后是要作上式的平方。矩阵的平方与数乘不太相同,特别是在对交叉项的处理上。例如 $(A + B)^2 = A^2 + B^2 + AB + BA$。因此,上式平方是\n",
"\n",
"$$\n",
"(\\hat n \\cdot \\vec\\sigma)^2 = n_x^2 X^2 + n_y^2 Y^2 + n_z^2 Z^2 + n_x n_y (XY+YX) + n_y n_z (YZ+ZY) + n_z n_x (ZX+XZ)\n",
"$$\n",
"\n",
"容易验证 $XY+YX = YZ+ZY = ZX+XZ = 0$,因此上式后三项为零矩阵。同时由于 $X^2 = Y^2 = Z^2 = I$,因此前三项恰为\n",
"\n",
"$$\n",
"(\\hat n \\cdot \\vec\\sigma)^2 = n_x^2 + n_y^2 + n_z^2 = \\Vert \\hat n \\Vert^2 = 1\n",
"$$\n",
"\n",
"注意最后我们利用了 $\\hat n$ 是单位向量的条件。"
]
},
{
"cell_type": "markdown",
"id": "c445f355",
"metadata": {},
"source": [
"## 练习 4.6 (旋转 Bloch 球面的解释)"
]
},
{
"cell_type": "markdown",
"id": "f5839310",
"metadata": {},
"source": [
":::{admonition} 练习 4.6\n",
"\n",
"$R_{\\hat n} (\\theta)$ 算符称为旋转算符的一个原因是如下要证明的事实。假设一个单量子比特的状态由 Bloch 向量 $\\vec \\lambda$ 表示,则旋转算符 $R_{\\hat n} (\\theta)$ 在该态向量上的作用,是绕 Bloch 球面的向量 $\\hat n$ 轴旋转 $\\theta$ 角度。这个事实解释了旋转矩阵中出现的看起来特别神秘的因子 2。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "7567a9fc",
"metadata": {},
"source": [
"这里需要先引入一个结论;该结论似乎并未在书中出现。这里请参考下述文档的第 20 页。\n",
"\n",
"> http://www.vcpc.univie.ac.at/~ian/hotlist/qc/talks/bloch-sphere-rotations.pdf\n",
"\n",
"若 $\\hat n$ 在 Bloch 球面上的坐标可以用 $(\\theta_{\\hat n}, \\varphi_{\\hat n})$ 表示,那么绕 $\\hat n$ (逆时针) 旋转 $\\theta$ 角度的算符可以表示为\n",
"\n",
"$$\n",
"R_{\\hat n} (\\theta) = R_z (\\varphi_{\\hat n}) R_y (\\theta_{\\hat n}) R_z (\\theta) R_y (- \\theta_{\\hat n}) R_z (- \\varphi_{\\hat n})\n",
"$$\n",
"\n",
"其大致思路是将绕 $\\hat n$ 轴旋转的问题化为绕 $\\hat z$ 轴旋转。具体来说,\n",
"\n",
"1. 执行 $R_z (- \\varphi_{\\hat n})$,它可以将 $\\hat n$ 轴转到 $\\varphi = 0$ 处,即转到 $xOz$ 平面上;$\\vec \\lambda$ 也作了响应的转动;\n",
"2. 执行 $R_y (- \\theta_{\\hat n})$,它可以将方才转到 $xOz$ 平面上的 $\\hat n$ 轴再转到 $\\theta = 0$ 处,即转到 $z$ 轴上;$\\vec \\lambda$ 也作了响应的转动;\n",
"3. 执行 $R_z (\\theta)$,它执行的是经过上述两个步骤转动后,$\\vec \\lambda$ 相对于处在 $\\hat z$ 轴的 $\\hat n$ 的旋转 $\\theta$ 角度操作;\n",
"4. 执行 $R_z (\\varphi_{\\hat n}) R_y (- \\theta_{\\hat n})$,复原 $\\hat n$ 的位置;$\\vec \\lambda$ 也作了响应的转动。\n",
"\n",
"从物理的直觉上,如果我们接受 $R_y(\\theta), R_z(\\theta)$ 算符的物理意义,那么这五步操作确实可以表示绕 Bloch 球面的向量 $\\hat n$ 轴旋转 $\\theta$ 角度。"
]
},
{
"cell_type": "markdown",
"id": "8177de60",
"metadata": {},
"source": [
"但我们并未证明数学上等式左右是成立的。证明的过程会是非常繁琐的;我们用 Mathematica 对计算过程简化,可以验证\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"&\\quad R_z (\\varphi_{\\hat n}) R_y (\\theta_{\\hat n}) R_z (\\theta) R_y (- \\theta_{\\hat n}) R_z (- \\varphi_{\\hat n}) \\\\\n",
"&= \\begin{bmatrix}\n",
"\\displaystyle\n",
"\\cos \\frac{\\theta}{2} - i \\cos \\theta_{\\hat n} \\sin \\frac{\\theta}{2} &\n",
"\\displaystyle\n",
"\\sin \\frac{\\theta}{2} \\sin \\theta_{\\hat n} \\big( - i \\cos \\varphi_{\\hat n} - \\sin \\varphi_{\\hat n} \\big)\n",
"\\\\\n",
"\\displaystyle\n",
"\\sin \\frac{\\theta}{2} \\sin \\theta_{\\hat n} \\big( - i \\cos \\varphi_{\\hat n} + \\sin \\varphi_{\\hat n} \\big)\n",
"&\n",
"\\displaystyle\n",
"\\cos \\frac{\\theta}{2} + i \\cos \\theta_{\\hat n} \\sin \\frac{\\theta}{2}\n",
"\\end{bmatrix} \\\\\n",
"&= \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} \\left( \\cos \\varphi_{\\hat n} \\sin \\theta_{\\hat n} \\cdot X + \\sin \\varphi_{\\hat n} \\sin \\theta_{\\hat n} \\cdot Y + \\cos \\theta_{\\hat n} \\cdot Z \\right) \\\\\n",
"&= \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} \\hat n \\cdot \\vec \\sigma = R_{\\hat n} (\\theta)\n",
"\\end{align*}\n",
"$$\n",
"\n",
"就此完成对 $R_{\\hat n} (\\theta)$ 表达式正确性与物理图景的说明了。"
]
},
{
"cell_type": "markdown",
"id": "33809b08",
"metadata": {},
"source": [
"## 练习 4.7"
]
},
{
"cell_type": "markdown",
"id": "17fdede0",
"metadata": {},
"source": [
":::{admonition} 练习 4.7\n",
"\n",
"证明 $X Y X = -Y$,并以此证明 $X R_y (\\theta) X = R_y (-\\theta)$。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "ad50007b",
"metadata": {},
"source": [
"$XYX = -Y$ 的证明只需要验证矩阵乘法即可。$X R_y (\\theta) X = R_y (-\\theta)$ 的证明可以利用式 (4.5) 的结论以及 $X^2 = I$ 的性质:\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"X R_y (\\theta) X &= X \\left( \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} Y \\right) X \\\\\n",
"&= \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} XYX = \\cos \\frac{\\theta}{2} I + i \\sin \\frac{\\theta}{2} Y \\\\\n",
"&= \\cos \\frac{-\\theta}{2} I - i \\sin \\frac{-\\theta}{2} Y = R_y (-\\theta)\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "7b2635a7",
"metadata": {},
"source": [
"## 练习 4.8"
]
},
{
"cell_type": "markdown",
"id": "09254791",
"metadata": {},
"source": [
":::{admonition} 练习 4.8\n",
"\n",
"任意一个单量子比特酉算符可以以下述形式表示:\n",
"\n",
"$$\n",
"U = \\exp(i \\alpha) R_{\\hat n} (\\theta)\n",
"$$\n",
"\n",
"其中 $\\alpha, \\theta \\in \\mathbb{R}$、$\\hat n$ 为三维实向量。\n",
"\n",
"1. 证明这个事实;\n",
"2. 求 $\\alpha, \\theta, \\hat n$ 以得到 Hadamard 门 $H$;\n",
"3. 求 $\\alpha, \\theta, \\hat n$ 以得到相位门 $S$。\n",
"\n",
" $$\n",
" H = \\frac{1}{\\sqrt{2}} \\begin{bmatrix} 1 & 1 \\\\ 1 & -1 \\end{bmatrix}, \\quad S = \\begin{bmatrix} 1 & 0 \\\\ 0 & i \\end{bmatrix}\n",
" $$\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "23c2b8af",
"metadata": {},
"source": [
"**第一问**"
]
},
{
"cell_type": "markdown",
"id": "21347310",
"metadata": {},
"source": [
"首先我们需要表明 $R_{\\hat n} (\\theta)$ 确实是酉的。实际上之前的练习或书中的文本都没有对这个事实作说明 (练习 4.6 或许需要)。我们首先回顾式 (4.8):"
]
},
{
"cell_type": "markdown",
"id": "d43733bf",
"metadata": {},
"source": [
"$$\n",
"R_{\\hat n} (\\theta) = \\cos \\left( \\frac{\\theta}{2} \\right) I - i \\sin \\left( \\frac{\\theta}{2} \\right) (\\hat n \\cdot \\vec \\sigma)\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "dfd04a3a",
"metadata": {},
"source": [
"这里我们用了练习 4.5 的记号。对 $R_{\\hat n} (\\theta)$ 取共轭转置,可知\n",
"\n",
"$$\n",
"R_{\\hat n}^\\dagger (\\theta) = \\cos \\left( \\frac{\\theta}{2} \\right) I + i \\sin \\left( \\frac{\\theta}{2} \\right) (\\hat n \\cdot \\vec \\sigma)\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "59d2004f",
"metadata": {},
"source": [
"这里利用了 Pauli 矩阵的共轭转置仍然是自身的性质;因此,只有一个虚数单位的 $i$ 的正负号被颠倒了而已。两者相乘,可以得到\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"R_{\\hat n} (\\theta) R_{\\hat n}^\\dagger (\\theta) &= \\cos^2 \\left( \\frac{\\theta}{2} \\right) I + \\sin^2 \\left( \\frac{\\theta}{2} \\right) (\\hat n \\cdot \\vec \\sigma)^2 \\\\\n",
"&= \\cos^2 \\left( \\frac{\\theta}{2} \\right) I + \\sin^2 \\left( \\frac{\\theta}{2} \\right) I = I\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "e6a5b26e",
"metadata": {},
"source": [
"------"
]
},
{
"cell_type": "markdown",
"id": "7fa62178",
"metadata": {},
"source": [
"既然 $R_{\\hat n} (\\theta)$ 是酉的,那么构成该矩阵表示的两个列向量必然是相互正交且归一的。我们假设一个酉矩阵可以写为\n",
"\n",
"$$\n",
"U = \\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix}\n",
"$$\n",
"\n",
"- 若 $a, b, c$ 的值是确定的,那么 $d$ 的值也必然是确定的,因为 $U U^\\dagger = I$ 可以推演出 $a c^* + b d^* = 0$。\n",
"- 分别依据 $U U^\\dagger = I$ 与 $U^\\dagger U = I$,我们可以知道 $|a|^2 + |b|^2 = 1$ 与 $|a|^2 + |c|^2 = 1$。这也同时意味着 $|b| = |c|$。因此 $b, c$ 的值不是任意的。\n",
"\n",
"以上述两个结论出发,可以知道若要使一个 $\\mathbb{C}^2$ 的酉矩阵可以表示为任意酉矩阵,\n",
"- $a$ 可以是任意 $0 \\leqslant |a| \\leqslant 1$ 的复数;\n",
"- $b, c$ 在给定 $a$ 的值时,尽管模长是固定的,但分别可以取任意相位。"
]
},
{
"cell_type": "markdown",
"id": "dffdb68e",
"metadata": {},
"source": [
"现在回到 $R_{\\hat n} (\\theta)$ 的讨论上。我们将其矩阵形式写出:\n",
"\n",
"$$\n",
"R_{\\hat n} (\\theta) = \\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix} = e^{i \\alpha } \\begin{bmatrix}\n",
"\\cos \\frac{\\theta}{2} - i n_z \\sin \\frac{\\theta}{2} & (- i n_x - n_y) \\sin \\frac{\\theta}{2} \\\\\n",
"(- i n_x + n_y) \\sin \\frac{\\theta}{2} & \\cos \\frac{\\theta}{2} + i n_z \\sin \\frac{\\theta}{2}\n",
"\\end{bmatrix}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "3203e8b3",
"metadata": {},
"source": [
"------"
]
},
{
"cell_type": "markdown",
"id": "5971b242",
"metadata": {},
"source": [
"首先,我们考察 $b = e^{i \\alpha} (- i n_x - n_y) \\sin (\\theta/2)$ 与 $c = e^{i \\alpha} (- i n_x + n_y) \\sin (\\theta/2)$ 的相位可以是任意的。我们可以计算得到 (下式利用到 $\\theta \\in [0, 2 \\pi)$ 下,$\\sin (\\theta/2) \\geqslant 0$,因此 $n_y \\sin (\\theta/2) < 0$ 在 $\\sin(\\theta/2) \\neq 0$ 时等价于 $n_y < 0$)\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"\\arg (b) &= \\alpha + \\arctan \\frac{n_x}{n_y} + \\big( \\pi \\text{ if } n_y < 0 \\text{ else } 0) \\mod 2\\pi \\\\\n",
"\\arg (c) &= \\alpha - \\arctan \\frac{n_x}{n_y} + \\big( \\pi \\text{ if } n_y > 0 \\text{ else } 0) \\mod 2\\pi\n",
"\\end{align*}\n",
"$$\n",
"\n",
"由于上式中有两个自由度 ($\\alpha, n_x/n_y$),因此可以保证 $b, c$ 分别都可以取到任意的相位。"
]
},
{
"cell_type": "markdown",
"id": "5f504306",
"metadata": {},
"source": [
"随后,我们再考虑 $a = \\cos \\frac{\\theta}{2} - i n_z \\sin \\frac{\\theta}{2}$ 的取值。我们在讨论 $b, c$ 时,已经使用了 $\\alpha$ 的自由度,因此这里 $\\alpha$ 应当视作定值。而 $n_x, n_y, n_z$ 三个变量受到归一化条件 $|n_x|^2 + |n_y|^2 + |n_z|^2 = 1$ 限制,因此总自由度为 2;由于 $n_x/n_y$ 的自由度被使用,因此还剩下的自由度可以归到 $n_z$ 的取值上。因此,上面 $a$ 的取值总共受到两个自由度制约,分别是 $\\theta$ 的取值与 $n_z$ 的取值。这两个自由度分别对应到 $a$ 的实部与虚部,因此 $a$ 也是可以任意取到的。"
]
},
{
"cell_type": "markdown",
"id": "ec48c584",
"metadata": {},
"source": [
"------"
]
},
{
"cell_type": "markdown",
"id": "ab25f574",
"metadata": {},
"source": [
"但稍微严格一些的分析方法是考察 $a = \\cos \\frac{\\theta}{2} - i n_z \\sin \\frac{\\theta}{2}$ 的幅角与模长,因为实部与虚部并不是任意的 $[0, 1]$ 实数,而必须要满足模长不大于 1 的条件。若模长能取任意的 $|a| \\in [0, 1]$ 且幅角能取任意的 $\\arg (a) \\in [0, 2\\pi)$,那么 $a$ 便可以取任意 $0 \\leqslant |a| \\leqslant 1$ 复数;但这种分析稍微有些复杂 (我们仍然用到 $\\theta \\in [0, 2 \\pi)$ 下,$\\sin (\\theta/2) \\geqslant 0$):\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"|a|^2 &= 1 - (1-n_z^2) \\sin^2 \\frac{\\theta}{2} \\in [0, 1] \\\\\n",
"\\arg(a) &= \\alpha - \\arctan \\left( n_z \\tan \\frac{\\theta}{2} \\right) + \\big( \\pi \\text{ if } n_z < 0 \\text{ else } 0 \\big) \\mod 2 \\pi\n",
"\\end{align*}\n",
"$$\n",
"\n",
"现在的自由变量仍然是 $n_z$ 与 $\\theta$。但由于幅角需要取模 $2 \\pi$ 取余数,还要判断 $\\cos (\\theta / 2)$ 的正负号,但这不太利于分析。实际上,在确定 $b, c$ 相位时,$\\alpha$ 已经被指定了数值了;$\\cos (\\theta / 2)$ 的正负号可以依靠 $\\theta$ 的取值解决。因此,我们会希望下述的 $\\gamma_\\mathrm{norm}, \\gamma_\\mathrm{arg}$ 可以取到任意定义域内的值:\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"\\gamma_\\mathrm{arg} &\\equiv \\tan \\big( \\alpha - \\arg(a) \\big) = n_z \\tan \\frac{\\theta}{2} \\in (-\\infty, +\\infty) \\\\\n",
"\\gamma_\\mathrm{norm} &\\equiv 1 - (1-n_z^2) \\sin^2 \\frac{\\theta}{2} \\in (0, 1)\n",
"\\end{align*}\n",
"$$\n",
"\n",
"我们暂且不对 $\\gamma_\\mathrm{arg} = \\pm \\infty$ 或 $\\gamma_\\mathrm{norm} = 0 \\text{ or } 1$ 的特殊情况作细致的讨论,只要基本正确就行了。依据上两式,可以推知:\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"\\theta = 2 \\arccos \\left( \\pm \\sqrt{\\frac{\\gamma_\\mathrm{norm}}{1 + \\gamma_{\\mathrm{arg}^2}}} \\right), \\quad n_z = \\pm \\sqrt{\\frac{\\gamma_\\mathrm{norm} \\gamma_\\mathrm{arg}^2}{1 - \\gamma_\\mathrm{norm} + \\gamma_\\mathrm{arg}^2}}\n",
"\\end{align*}\n",
"$$\n",
"\n",
"这两式在 $\\gamma_\\mathrm{arg} \\in (-\\infty, +\\infty), \\gamma_\\mathrm{norm} \\in (0, 1)$ 的取值域内都是合理的,即一定满足 $\\theta \\in (0, 2\\pi)$ 且 $n_z \\in (0, 1)$。上面的整个过程表明了,$R_{\\hat n} (\\theta)$ 的第一个元素 $a = \\cos \\frac{\\theta}{2} - i n_z \\sin \\frac{\\theta}{2}$ 可以取到任意模不大于 1 的复数。边界情况没有作证明,但大体证明完毕。"
]
},
{
"cell_type": "markdown",
"id": "28a71291",
"metadata": {},
"source": [
"------"
]
},
{
"cell_type": "markdown",
"id": "9528b8de",
"metadata": {},
"source": [
"在这些分析下,我们应当知道,一般来说参数 $\\alpha, \\theta, \\hat n$ 总共对应四个自由度,恰好与矩阵元素数量一致。因此,大多数情况下,对于给定的酉矩阵 $U$,其表示 $U = \\exp(i \\alpha) R_{\\hat n} (\\theta)$ 中的参数 $\\alpha, \\theta, \\hat n$ 是唯一确定的。"
]
},
{
"cell_type": "markdown",
"id": "21d10a45",
"metadata": {},
"source": [
"**第二问**\n",
"\n",
"求解这类问题时,一般来说先通过 $b, c$ 的幅角确定 $n_x / n_y$ 和 $\\alpha$ 的值,并尝试给出看起来比较合理的 $\\theta$ 值。最后通过 $a$ 的值确定 $n_z$。"
]
},
{
"cell_type": "markdown",
"id": "2d05a6f8",
"metadata": {},
"source": [
"对于 Hadamard 门,我们首先可以依 $b = c = 1/\\sqrt{2}$,可知 $b, c$ 相位相同,确定 $n_y = 0, \\alpha = \\pi/2$。随后依 $a = 1/\\sqrt{2}$ 且没有虚部,确定 $\\theta = \\pi$。最后,依据 $a, b, c$ 的数值,可以确定 $n_x = n_z = 1/\\sqrt{2}$。因此,$n = (0, 1/\\sqrt{2}, 1/\\sqrt{2})$,\n",
"\n",
"$$\n",
"H = e^{i \\pi / 2} R_{\\hat n} (\\pi) \n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "fa5ffa93",
"metadata": {},
"source": [
"**第三问**"
]
},
{
"cell_type": "markdown",
"id": "625d7d09",
"metadata": {},
"source": [
"依 $b = c = 0$,我们确定 $\\theta = 0$ 或 $n_x = n_y = 0$。但当我们代入 $\\theta = 0$ 时,会发现 $a, d$ 的相位一致;这与 $1, i$ 之间相位相差 $\\pi/2$ 矛盾。因此只可能是 $n_x = n_y = 0$ 且 $n_z = 1$,即 $\\hat n = (0, 0, 1)$。随后再对 $a, d$ 的值进行讨论,容易知道\n",
"\n",
"$$\n",
"S = e^{i \\pi / 4} R_{\\hat n} (\\pi/2)\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "73392484",
"metadata": {},
"source": [
"## 练习 4.9"
]
},
{
"cell_type": "markdown",
"id": "4cf86157",
"metadata": {},
"source": [
":::{admonition} 练习 4.9\n",
"\n",
"解释为什么任意单量子比特上的酉算符可以写成式 (4.12) 的形式。\n",
"\n",
"\\begin{equation*}\n",
"U = e^{i \\alpha} R_z (\\beta) R_y (\\gamma) R_z (\\delta) = \\begin{bmatrix}\n",
"e^{i (\\alpha - \\beta/2 - \\delta/2)} \\cos (\\gamma/2) & - e^{i (\\alpha - \\beta/2 + \\delta/2)} \\sin (\\gamma/2) \\\\\n",
"e^{i (\\alpha + \\beta/2 - \\delta/2)} \\sin (\\gamma/2) & e^{i (\\alpha + \\beta/2 + \\delta/2)} \\cos (\\gamma/2)\n",
"\\end{bmatrix}\n",
"\\tag{4.12}\n",
"\\end{equation*}\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "75f1db76",
"metadata": {},
"source": [
"这里的证明过程应当与练习 4.8 类似,但会相对容易一些。证明的思路是:\n",
"\n",
"- 表明 $UU^\\dagger = U^\\dagger U = I$;\n",
"- 表明使用其中的两个自由度 (譬如说 $\\alpha, \\beta$),可以使得非对角元 $- e^{i (\\alpha - \\beta/2 + \\delta/2)} \\sin (\\gamma/2)$ 与 $e^{i (\\alpha + \\beta/2 - \\delta/2)} \\sin (\\gamma/2)$ 分别可以取到任意相位;\n",
"- 表明在剩余的两个自由度 (譬如说 $\\delta, \\gamma$) 下,可以使得 $e^{i (\\alpha - \\beta/2 - \\delta/2)} \\cos (\\gamma/2)$ 取到任意的模长在 1 以内的复数。"
]
},
{
"cell_type": "markdown",
"id": "ac6b1de9",
"metadata": {},
"source": [
"这道题还有另一种思路。这里请参考下述文档 (但该文档的证明其实错了,因此不能照搬那边的答案):\n",
"\n",
"> https://serab.net/docs/qcqi/chapter4/#49\n",
"\n",
"我们假设已经完成练习 4.8 的证明,那么\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"R_{\\hat n} (\\theta) &= e^{i \\alpha } \\begin{bmatrix}\n",
"\\cos \\frac{\\theta}{2} - i n_z \\sin \\frac{\\theta}{2} & (- i n_x - n_y) \\sin \\frac{\\theta}{2} \\\\\n",
"(- i n_x + n_y) \\sin \\frac{\\theta}{2} & \\cos \\frac{\\theta}{2} + i n_z \\sin \\frac{\\theta}{2}\n",
"\\end{bmatrix} \\\\\n",
"&= e^{i \\alpha} \\begin{bmatrix}\n",
"\\left( 1 - i n_z \\tan \\frac{\\theta}{2} \\right) \\cos \\frac{\\theta}{2} & (- i n_x - n_y) \\sin \\frac{\\theta}{2} \\\\\n",
"(- i n_x + n_y) \\sin \\frac{\\theta}{2} & \\left( 1 + i n_z \\tan \\frac{\\theta}{2} \\right) \\cos \\frac{\\theta}{2}\n",
"\\end{bmatrix}\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "fd8d0d57",
"metadata": {},
"source": [
"练习 4.9 与练习 4.8 的 $\\alpha$ 恰好是一致的。对于练习 4.9 中的 $\\beta, \\delta$ 值,他们应当会满足下述关系 (依据 $R_{\\hat n} (\\theta)$ 的非对角元的幅角关系)\n",
"\n",
"$$\n",
"e^{i (\\beta/2 - \\delta/2)} = \\frac{- i n_x + n_y}{\\sqrt{n_x^2 + n_y^2}}\n",
"$$\n",
"\n",
"那么\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"\\cos \\left( \\frac{\\beta}{2} - \\frac{\\delta}{2} \\right) = \\frac{n_y}{\\sqrt{n_x^2 + n_y^2}} \\\\\n",
"\\sin \\left( \\frac{\\beta}{2} - \\frac{\\delta}{2} \\right) = - \\frac{n_x}{\\sqrt{n_x^2 + n_y^2}}\n",
"\\end{align*}\n",
"$$\n",
"\n",
"这两个关系式可以唯一地确定 $\\beta / 2 - \\delta / 2$ 的数值。"
]
},
{
"cell_type": "markdown",
"id": "c50d3bbb",
"metadata": {},
"source": [
"同时还要满足 (依据 $R_{\\hat n} (\\theta)$ 的对角元的幅角关系)\n",
"\n",
"$$\n",
"e^{i (\\beta/2 + \\delta/2)} = \\frac{1 + i n_z \\tan(\\theta/2)}{\\sqrt{1 + n_z^2 \\tan^2 (\\theta/2)}}\n",
"$$\n",
"\n",
"那么\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"\\cos \\left( \\frac{\\beta}{2} + \\frac{\\delta}{2} \\right) = \\frac{1}{\\sqrt{1 + n_z^2 \\tan^2 (\\theta/2)}} \\\\\n",
"\\sin \\left( \\frac{\\beta}{2} + \\frac{\\delta}{2} \\right) = \\frac{n_z \\tan(\\theta/2)}{\\sqrt{1 + n_z^2 \\tan^2 (\\theta/2)}}\n",
"\\end{align*}\n",
"$$\n",
"\n",
"这两个关系式可以唯一地确定 $\\beta/2 + \\delta/2$ 的数值。我们已经知道了 $\\beta/2 - \\delta/2$ 的数值了,因此 $\\beta, \\delta$ 可以被唯一地确定。"
]
},
{
"cell_type": "markdown",
"id": "0643ccea",
"metadata": {},
"source": [
"最后,可以通过 $R_{\\hat n} (\\theta)$ 的对角元 (也可以是非对角元) 的模长,唯一地确定 $\\gamma$ 的数值。因此,酉矩阵总是可以写为式 (4.12) 的形式,并且参数是唯一确定的。"
]
},
{
"cell_type": "markdown",
"id": "3889549e",
"metadata": {},
"source": [
"## 练习 4.10 (旋转的 $x$-$y$ 分解)"
]
},
{
"cell_type": "markdown",
"id": "01f4348b",
"metadata": {},
"source": [
":::{admonition} 练习 4.10\n",
"\n",
"用 $R_x$ 代替 $R_z$,给出相应于定理 4.1 的分解。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "a85b3a34",
"metadata": {},
"source": [
"分解是很容易给出的:\n",
"\n",
"$$\n",
"U = e^{i \\alpha} R_x (\\beta) R_y (\\gamma) R_x (\\delta)\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "ee3ed02c",
"metadata": {},
"source": [
"但类似于定理 4.1 的简单证明,但过程非常复杂,在这个练习中恐怕就很难给出了。\n",
"\n",
"但本题的证明也可以投机取巧地给出。我们只要说,我们将 $x$ 与 $z$ 轴转换一下,换个坐标系,那么式 (4.11) 自然就转化为了上述表达式 (可能因为左右手坐标系互换会导致 $\\gamma$ 应该要变为 $\\pi - \\gamma$,但这不重要)。"
]
},
{
"cell_type": "markdown",
"id": "7902008a",
"metadata": {},
"source": [
"## 练习 4.11"
]
},
{
"cell_type": "markdown",
"id": "759fbe68",
"metadata": {},
"source": [
":::{admonition} 练习 4.11\n",
"\n",
"设 $\\hat m$ 和 $\\hat n$ 是三维空间中不平行的实单位向量,证明任意单量子比特上的酉算符对适当的 $\\alpha, \\beta_k, \\gamma_k$,可以写成\n",
"\n",
"$$\n",
"U = e^{i \\alpha} R_{\\hat n} (\\beta_1) R_{\\hat m} (\\gamma_1) R_{\\hat n} (\\beta_2) R_{\\hat m} (\\gamma_2) \\cdots\n",
"\\tag{4.13}\n",
"$$\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "674a966c",
"metadata": {},
"source": [
":::{danger}\n",
"\n",
"未完成的证明!\n",
"\n",
"我想这道题应该会与练习 4.6 的思路比较像,但我不是很能把握题意。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "b534088e",
"metadata": {},
"source": [
"## 练习 4.12"
]
},
{
"cell_type": "markdown",
"id": "9398732b",
"metadata": {},
"source": [
":::{admonition} 练习 4.12\n",
"\n",
"给出 Hadamard 门的 $A, B, C$ 和 $\\alpha$。其中,$A, B, C$ 为酉算符,$A B C = I$ 且 $H = e^{i \\alpha} A X B X C$。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "f54261c4",
"metadata": {},
"source": [
"首先根据式 (4.12),我们可以比较容易地凑出 $\\alpha = \\pi/2$、$\\beta = 0$、$\\gamma = \\pi/2$、$\\delta = \\pi$。随后我们回顾推论 4.2 的过程,就知道\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"A = R_z (0) R_y (\\pi/4) &= \\begin{bmatrix} \\cos(\\pi/8) & -\\sin(\\pi/8) \\\\ \\sin(\\pi/8) & \\cos(\\pi/8) \\end{bmatrix} \\\\\n",
"B = R_y (-\\pi/4) R_z (-\\pi/2) &= \\begin{bmatrix} e^{i \\pi / 4} \\cos(\\pi/8) & e^{-i \\pi / 4} \\sin(\\pi/8) \\\\ - e^{i \\pi / 4} \\sin(\\pi/8) & e^{-i \\pi / 4} \\cos(\\pi/8) \\end{bmatrix} \\\\\n",
"C = R_z(\\pi/2) &= \\begin{bmatrix} e^{- i \\pi / 4} & 0 \\\\ 0 & e^{i \\pi / 4} \\end{bmatrix}\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "feae26cb",
"metadata": {},
"source": [
"## 练习 4.13 (线路恒等式)"
]
},
{
"cell_type": "markdown",
"id": "54bcb528",
"metadata": {},
"source": [
":::{admonition} 练习 4.13\n",
"\n",
"能以熟知的恒等式来简化线路非常有用,证明如下三个恒等式:\n",
"\n",
"$$\n",
"H X H = Z, \\quad H Y H = - Y, \\quad H Z H = X\n",
"\\tag{4.18}\n",
"$$\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "5f66482e",
"metadata": {},
"source": [
"证明略。直接套算符的矩阵表示定义很容易可以给出证明。"
]
},
{
"cell_type": "markdown",
"id": "8982af77",
"metadata": {},
"source": [
"## 练习 4.14"
]
},
{
"cell_type": "markdown",
"id": "c5331c81",
"metadata": {},
"source": [
":::{admonition} 练习 4.14\n",
"\n",
"利用前面的练习,证明除了一个全局相位,$HTH=R_x(\\pi/4)$。\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "21cadf1f",
"metadata": {},
"source": [
"直接套定义的话,应该能容易地给出\n",
"\n",
"$$\n",
"HTH = \\exp(i \\pi/8) R_x (\\pi/4)\n",
"$$\n",
"\n",
"验证上述等式很容易,代入矩阵定义就行了。"
]
},
{
"cell_type": "markdown",
"id": "0c2325ff",
"metadata": {},
"source": [
"当然,题目既然要求说用上面的练习,那就用吧。我们回顾到\n",
"\n",
"\\begin{equation*}\n",
"T = \\exp(i \\pi/8) \\begin{bmatrix} \\exp(-i \\pi/8) & 0 \\\\ 0 & \\exp(i \\pi/8) \\end{bmatrix} = \\exp(i \\pi/8) R_z (\\pi/4)\n",
"\\tag{4.3}\n",
"\\end{equation*}"
]
},
{
"cell_type": "markdown",
"id": "3378373c",
"metadata": {},
"source": [
"我们再考虑到式 (4.6):\n",
"\n",
"$$\n",
"R_z (\\theta) = \\cos \\frac{\\theta}{2} I - i \\sin \\frac{\\theta}{2} Z \\tag{4.6}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "bca3a9d3",
"metadata": {},
"source": [
"因此,\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"H T H &= \\exp(i \\pi/8) \\big( \\cos (\\pi/8) HIH - i \\sin (\\pi/8) HZH \\big) \\\\\n",
"&= \\exp(i \\pi/8) \\big( \\cos (\\pi/8) I - i \\sin (\\pi/8) HXH \\big) \\\\\n",
"&= \\exp(i \\pi/8) R_x (\\pi/4)\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "f76b45af",
"metadata": {},
"source": [
"## 练习 4.15 (单量子比特运算的组合)"
]
},
{
"cell_type": "markdown",
"id": "26399dfd",
"metadata": {},
"source": [
":::{admonition} 练习 4.15\n",
"\n",
"Bloch 球面为显示两个旋转组合的效果提供了一条很好的途径。\n",
"\n",
"1. 证明如果绕轴 $\\hat n_1$ 旋转一个角度 $\\beta_1$,接着绕轴 $\\hat n_2$ 旋转一个角度 $\\beta_2$,则总的旋转为如下给出的绕轴 $\\hat n_{12}$ 转角为 $\\beta_{12}$ 的旋转:\n",
"\n",
" $$\n",
" \\begin{align*}\n",
" c_{12} &= c_1 c_2 - s_1 s_2 \\hat n_1 \\cdot \\hat n_2 \\tag{4.19} \\\\\n",
" s_{12} \\hat n_{12} &= s_1 c_2 \\hat n_1 + c_1 s_2 \\hat n_2 - s_1 s_2 \\hat n_2 \\times \\hat n_1 \\tag{4.20}\n",
" \\end{align*}\n",
" $$\n",
"\n",
" 其中,在角标 $i = 1, 2, 12$ 下\n",
"\n",
" $$\n",
" c_i = \\cos \\frac{\\beta_i}{2}, \\quad s_i = \\sin \\frac{\\beta_i}{2}\n",
" $$\n",
"\n",
"2. 证明 $\\beta_1 = \\beta_2$ 且 $\\hat n_1 = \\hat z$,这些等式可以简化为\n",
"\n",
" $$\n",
" \\begin{align*}\n",
" c_{12} &= c^2 - s^2 \\hat z \\cdot \\hat n_2 \\tag{4.21} \\\\\n",
" s_{12} \\hat n_{12} &= s c (\\hat z + \\hat n_2) - s^2 \\hat n_2 \\times \\hat z \\tag{4.22}\n",
" \\end{align*}\n",
" $$\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "550e58fc",
"metadata": {},
"source": [
"本题的第二小题在第一小题基础上非常容易导出。我们只考虑第一小题。"
]
},
{
"cell_type": "markdown",
"id": "d09ad2c1",
"metadata": {},
"source": [
"需要先说明,待求的未知量除了 $\\beta_{12}$,还有 $\\hat n_{12}$。第一小题的证明其实只是套用式 4.8 的证明即可给出,只是过程会比较繁琐。依照题目对 $c_i, s_i$ 的定义 ($i = 1, 2, 12$),\n",
"\n",
"$$\n",
"R_{\\hat n_i} (\\beta_i) = \\cos \\frac{\\beta_i}{2} I - i \\sin \\frac{\\beta_i}{2} \\hat n_i \\cdot \\vec \\sigma = c_i I - i s_i \\hat n_i \\cdot \\vec \\sigma\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "8618b5de",
"metadata": {},
"source": [
"需要注意算符乘积顺序,旋转算符一般不对易。同时,我们需要知道,先作用的算符在右边,后作用的算符在左边。因此,总的作用算符是\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"R_{\\hat n_{12}} (\\beta_{12}) = R_{\\hat n_2} (\\beta_2) R_{\\hat n_1} (\\beta_1)\n",
"&= c_1 c_2 I - i (c_2 s_1 \\hat n_1 + c_1 s_2 \\hat n_2) \\cdot \\vec \\sigma - s_1 s_2 (\\hat n_2 \\cdot \\vec \\sigma) (\\hat n_1 \\cdot \\vec \\sigma)\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "f3e73f25",
"metadata": {},
"source": [
"这里处理起来比较麻烦的项是 $(\\hat n_1 \\cdot \\vec \\sigma) (\\hat n_2 \\cdot \\vec \\sigma)$。若利用下述关系:\n",
"\n",
"$$\n",
"\\begin{gather*}\n",
"XY = - YX = iZ, \\quad YZ = -ZY = iX, \\quad XZ = -XZ = iZ \\\\\n",
"X^2 = Y^2 = Z^2 = I\n",
"\\end{gather*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "d3614850",
"metadata": {},
"source": [
"可以知道\n",
"\n",
"$$\n",
"\\begin{align*}\n",
"&\\quad (\\hat n_2 \\cdot \\vec \\sigma) (\\hat n_1 \\cdot \\vec \\sigma) = (n_{2x} X + n_{2y} Y + n_{2z} Z) (n_{1x} X + n_{1y} Y + n_{1z} Z) \\\\\n",
"&= (n_{1x} n_{2x} + n_{1y} n_{2y} + n_{1y} n_{2y}) I + (n_{2x} n_{1y} XY + n_{1x} n_{2y} YX) \\\\\n",
"&\\quad + (n_{2y} n_{1z} YZ + n_{1y} n_{2z} ZY) + (n_{2z} n_{1x} ZX + n_{1z} n_{2x} XZ) \\\\\n",
"&= \\hat n_1 \\cdot \\hat n_2 I + i Z (n_{2x} n_{1y} - n_{1x} n_{2y}) + i X (n_{2y} n_{1z} - n_{1y} n_{2z}) + i Y (n_{2z} n_{1x} - n_{1z} n_{2x}) \\\\\n",
"&= \\hat n_1 \\cdot \\hat n_2 I + (\\hat n_2 \\times \\hat n_1) \\cdot \\vec \\sigma\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "69f988ae",
"metadata": {},
"source": [
"代入 $R_{\\hat n_{12}} (\\beta_{12})$ 的表达式,可以得到\n",
"\n",
"$$\n",
"R_{\\hat n_{12}} (\\beta_{12})= (c_1 c_2 - s_1 s_2 \\hat n_1 \\cdot \\hat n_2) I - i (c_2 s_1 \\hat n_1 + c_1 s_2 \\hat n_2 - s_1 s_2 \\hat n_2 \\times \\hat n_1) \\cdot \\vec \\sigma\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "23535afe",
"metadata": {},
"source": [
"又联系到 $R_{\\hat n_{12}} (\\beta_{12})$ 的另一种表示:\n",
"\n",
"$$\n",
"R_{\\hat n_{12}} (\\beta_{12}) = c_{12} I - i s_{12} \\hat n_{12} \\cdot \\vec \\sigma\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "ad42da48",
"metadata": {},
"source": [
"因此联立上两式,就能得到待证等式 (4.19-20)。"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}