##// END OF EJS Templates
Update and rename basic quantum computing with sympy example notebook.
Fernando Perez -
Show More
@@ -0,0 +1,410 b''
1 {
2 "metadata": {
3 "name": "sympy_quantum_computing"
4 },
5 "nbformat": 2,
6 "worksheets": [
7 {
8 "cells": [
9 {
10 "cell_type": "markdown",
11 "source": [
12 "# Basic Symbolic Quantum Mechanics with [SymPy](http://sympy.org)",
13 "",
14 "We first load the IPython extensions that enable LaTeX-based mathematical printing ",
15 "of SymPy objects, and then import the quantum computing libraries from SymPy."
16 ]
17 },
18 {
19 "cell_type": "code",
20 "collapsed": true,
21 "input": [
22 "%load_ext sympyprinting"
23 ],
24 "language": "python",
25 "outputs": [],
26 "prompt_number": 1
27 },
28 {
29 "cell_type": "code",
30 "collapsed": true,
31 "input": [
32 "from sympy import sqrt, symbols, Rational",
33 "from sympy import expand, Eq, Symbol, simplify, exp, sin",
34 "from sympy.physics.quantum import *",
35 "from sympy.physics.quantum.qubit import *",
36 "from sympy.physics.quantum.gate import *",
37 "from sympy.physics.quantum.grover import *",
38 "from sympy.physics.quantum.qft import QFT, IQFT, Fourier",
39 "from sympy.physics.quantum.circuitplot import circuit_plot"
40 ],
41 "language": "python",
42 "outputs": [],
43 "prompt_number": 2
44 },
45 {
46 "cell_type": "markdown",
47 "source": [
48 "<h2>Bras and Kets</h2>"
49 ]
50 },
51 {
52 "cell_type": "markdown",
53 "source": [
54 "Create symbolic states"
55 ]
56 },
57 {
58 "cell_type": "code",
59 "collapsed": true,
60 "input": [
61 "phi, psi = Ket('phi'), Ket('psi')",
62 "alpha, beta = symbols('alpha beta', complex=True)"
63 ],
64 "language": "python",
65 "outputs": [],
66 "prompt_number": 3
67 },
68 {
69 "cell_type": "markdown",
70 "source": [
71 "Create a superposition"
72 ]
73 },
74 {
75 "cell_type": "code",
76 "collapsed": false,
77 "input": [
78 "state = alpha*psi + beta*phi; state"
79 ],
80 "language": "python",
81 "outputs": [
82 {
83 "latex": [
84 "$$\\alpha {\\left|\\psi\\right\\rangle } + \\beta {\\left|\\phi\\right\\rangle }$$"
85 ],
86 "output_type": "pyout",
87 "png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAAAXCAYAAABtR5P0AAAABHNCSVQICAgIfAhkiAAABFdJREFU\naIHt2XuIVXUQB/CPq4FZblEpYmZPLMsMUTQhDawo6LVgD4rsj6zQSCORHlD9YfTUrCxTotKUWv8p\nKAusv7YHpURlQg+ioJJ8REVtD3u6/THnsucef+fu3r27W8F+4XLOnfnNnJn5zW9m7rkM4H+L5/5t\nA/oBfeZjU4Pyh9a5flmCtgJDGrSjUYzAcmHfaqxDc8arx8eHErRS/xoNfj04BD8l6G2Y3Y92FDEd\n12EJFmOeCNbyOvWciM8S9DYl/vVn8E/PDCniBVzYoO6JenZ6RqNFBP6HHL0dk+vUNVOd/vVn8Kfh\n7QT9b7yDqQ3oXoQxPZC7BbeiI0cbhFnYXKeu8fgwQS/1rz+Dvx/+KOE9ibn9aAucgI+wt0C/Gvvj\n9jr1dajexDyS/qWO6jG4DEdgJHbjZnEUicwoe8hIUT8nYyU2ZfTD8E12PxhvYgMezmjtoh8cjq9L\ndPc2Zuus6ytwgLB7NCbh227ouBxTxGYdjfUiy1eKjK8g6V8x8yeKuvW+aDwXiWA/m1ub6ugV3IQH\n8QZuy9Hz9b5JNN+zC7KrML+G7t7GUOzJ7r8TCbVZ2DavC9kxeEVMQouxTSTolaK8PJqQqenfcdiJ\nOwr0czPDpoqdy/PbcvcniayHjaLRVHCXyPgKWrAmYcNTGFZmYA2sxVF1rG8WfSKFjdiV+95W4A/D\ne7g+R3tMJCkx9XSIeBZR5V8+85dk1wcKAtuy6zRRt54oMfp7EdBROAetOV6T6mO4SxzPItZhTon+\n3sQMvF7C+0Jk9OAS/r0Zr5LdlaBXSvHu7DohIVvlX6XmN+EsvIxfCgLbs+upmWE7SozamV2vwl94\nMfs+QnUmEaekVRqDSujwNE5J0MeKk5lq6HPxboE2CXeXPON4bFWdLHm06OxVRJDzU86U7Lq1RH4f\n/04WO7e4RKBDnIChBXpbYm0rXst9v1h1wFL1voI1+qfsrC+hjxIbWFZam0UszsvRFooxs4JVOqtF\nEVX+VcrOV5nS3QmBA8U4tgm/lSjNY6/OyYjIjIoxQ3AtXk3IHStOz6/deEYjOEhMOqmavAif474S\n2XZ8ICaiCsbj4+z+NFyKSxKy+/hXCf6P4gVSMSPPxFJsEWNkkzh2tdCKM0SGV9AhJoTHs+ekRtX5\nImv6GjPENLMAw3P0ObhAbMzvNeSX4BqxiU06fyecj/szHZ8k5PbxLz/nXyFeLG0Qdb4Jb2VCE/EI\n7sEzXTj3ktj51SLjp4sauQM3SL/fac4+2xO83sY0EcAvRdPcI2b8HaJe/9yF/POiLy4TjfdInf7N\nkq4OfeJfWxf8BdJdv4gbRVB6irW6X/OX1qm7rQZvIcZ1Q0fSv75+vVCcBFJoEhm3pYHntOtePzpY\n+uT1FOPwaRdrSv1r9D36nzV4xfm3DC06x9KeYmE3180UpbQedMfHWugN/5IYXoM3Qecv3lrozz9T\n7hT1vR6U+ThWlJOu8F/4s2gAAxjAAOAf1RffIDO+Bi8AAAAASUVORK5CYII=\n",
88 "prompt_number": 4,
89 "text": [
90 "\u03b1\u22c5\u2758\u03c8\u27e9 + \u03b2\u22c5\u2758\u03c6\u27e9"
91 ]
92 }
93 ],
94 "prompt_number": 4
95 },
96 {
97 "cell_type": "markdown",
98 "source": [
99 "Dagger the superposition and multiply the original"
100 ]
101 },
102 {
103 "cell_type": "code",
104 "collapsed": false,
105 "input": [
106 "ip = Dagger(state)*state; ip"
107 ],
108 "language": "python",
109 "outputs": [
110 {
111 "latex": [
112 "$$\\left(\\overline{\\alpha} {\\left\\langle \\psi\\right|} + \\overline{\\beta} {\\left\\langle \\phi\\right|}\\right) \\left(\\alpha {\\left|\\psi\\right\\rangle } + \\beta {\\left|\\phi\\right\\rangle }\\right)$$"
113 ],
114 "output_type": "pyout",
115 "png": "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\nRK5CYII=\n",
116 "prompt_number": 5,
117 "text": [
118 "",
119 "\u239b_ _ \u239e ",
120 "\u239d\u03b1\u22c5\u27e8\u03c8\u2758 + \u03b2\u22c5\u27e8\u03c6\u2758\u23a0\u22c5(\u03b1\u22c5\u2758\u03c8\u27e9 + \u03b2\u22c5\u2758\u03c6\u27e9)"
121 ]
122 }
123 ],
124 "prompt_number": 5
125 },
126 {
127 "cell_type": "markdown",
128 "source": [
129 "Distribute"
130 ]
131 },
132 {
133 "cell_type": "code",
134 "collapsed": false,
135 "input": [
136 "qapply(expand(ip))"
137 ],
138 "language": "python",
139 "outputs": [
140 {
141 "latex": [
142 "$$\\alpha \\overline{\\alpha} \\left\\langle \\psi \\right. {\\left|\\psi\\right\\rangle } + \\alpha \\overline{\\beta} \\left\\langle \\phi \\right. {\\left|\\psi\\right\\rangle } + \\beta \\overline{\\alpha} \\left\\langle \\psi \\right. {\\left|\\phi\\right\\rangle } + \\beta \\overline{\\beta} \\left\\langle \\phi \\right. {\\left|\\phi\\right\\rangle }$$"
143 ],
144 "output_type": "pyout",
145 "png": "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\ncOsl0kmXAAAAAElFTkSuQmCC\n",
146 "prompt_number": 6,
147 "text": [
148 "",
149 " _ _ _ _ ",
150 "\u03b1\u22c5\u03b1\u22c5\u27e8\u03c8\u2758\u03c8\u27e9 + \u03b1\u22c5\u03b2\u22c5\u27e8\u03c6\u2758\u03c8\u27e9 + \u03b2\u22c5\u03b1\u22c5\u27e8\u03c8\u2758\u03c6\u27e9 + \u03b2\u22c5\u03b2\u22c5\u27e8\u03c6\u2758\u03c6\u27e9"
151 ]
152 }
153 ],
154 "prompt_number": 6
155 },
156 {
157 "cell_type": "markdown",
158 "source": [
159 "<h2>Operators</h2>"
160 ]
161 },
162 {
163 "cell_type": "markdown",
164 "source": [
165 "Create symbolic operators"
166 ]
167 },
168 {
169 "cell_type": "code",
170 "collapsed": true,
171 "input": [
172 "A = Operator('A')",
173 "B = Operator('B')",
174 "C = Operator('C')"
175 ],
176 "language": "python",
177 "outputs": [],
178 "prompt_number": 7
179 },
180 {
181 "cell_type": "markdown",
182 "source": [
183 "Test commutativity"
184 ]
185 },
186 {
187 "cell_type": "code",
188 "collapsed": false,
189 "input": [
190 "A*B == B*A"
191 ],
192 "language": "python",
193 "outputs": [
194 {
195 "output_type": "pyout",
196 "prompt_number": 8,
197 "text": [
198 "False"
199 ]
200 }
201 ],
202 "prompt_number": 8
203 },
204 {
205 "cell_type": "markdown",
206 "source": [
207 "Distribute A+B squared"
208 ]
209 },
210 {
211 "cell_type": "code",
212 "collapsed": false,
213 "input": [
214 "expand((A+B)**2)"
215 ],
216 "language": "python",
217 "outputs": [
218 {
219 "latex": [
220 "$$A B + \\left(A\\right)^{2} + B A + \\left(B\\right)^{2}$$"
221 ],
222 "output_type": "pyout",
223 "png": "iVBORw0KGgoAAAANSUhEUgAAAMAAAAAZCAYAAABn7SHgAAAABHNCSVQICAgIfAhkiAAABHpJREFU\neJztml2IVVUUx39OTlQ20xiJpZZDE4gUBn0YJE3Q10MZfZEvUS9ST+lDhgWFPRgRFaRGT9mwI8ge\nKoqoCCqikl6ysg/SfOlBjKxetLCymh7Wvnjnsvc5e62zj1dv+wfDPffsfc5e//Wf/XH2uVAo/I+Z\n1e8AjlMuA64HTgSWAhuAr/oaUSFG8SozpwLPdn1fBRwETutPOIUKilctsAz4F5jw30eBaWBl3yIq\nxChetcAsZFrtLB/PR5K6tG8RFWLUeqV9BngamUI2VNTZClyK9L4/gE+Bv3zZGcBc4GXgUeCQsn0N\nw8BC4IfE+iFt85EYD1Rc9yKwH1inD7ExbeQ6xePcxLzS6BulZa8uAf4BphLqjiM97YlA2Q2+7A1L\nEInMBh4BTkmsH9M2DDzl7xdiNaKxn5sJ4+TLtcbjXNR5NU6avla9GgLe9429nVD/Tl/3mkj5HiTR\nI4ntLyMuLMQ6f00KddpWEE7+SiSpACcjRlnR6usmV661HsfI7ZVGn9qrocQg7wFeAQ4DZybUn0Sm\nqu2BshFgETIV/ZbY/n3+mhRGgMtJ3+qq07YdGGPmzsGVyPLoLX/NLcBZie2F0OjrJVeutR7HyO2V\nRl8rXs1DRoYhYC+wL+Ga3cDHkbL1SI++WxGDI32EvRW4P7FuqrZ7gbX++FxkjTzd8zea2GYIh30G\nyZFri8cxHHm90urL7tUUMrUA7AD+pnrmmO8b2dhzfsyf2w/cpQkAXVK3IL0+hVRt1wEvJd7TgsPW\nAXLlWutxFY58Xln0qbyqW6utAE7gyPTzk/8+zx+HmPSfE8Dj/ngEWYd97++5JzVAA4uAXxLqabTt\nptkavy1y5NricS7qvLLoy+bVbOATZq6XppAeeWHFdc8AfwInBcoeQ6aka5WxONJFvUv9nrxW2xxg\nV2L7Fhw205rm2upxFY58Xln0qbyqmubWAK8DP3ad64wIVQ9Jk8BnyL5tLxsRMc+nBmjgZ+C8mjpa\nbRP+vscaTXNt9TgXdV5Z9Km8ii2BFiAPJ98xc/tpsf+MJWcMuAB4MlJ+GOnRC5Gp7GBP+QuER55z\ngOUceQnSzWpk3dphF7AEeDMSg0XbEl+/KTn0dWiaa6vHHdr2yqovi1fbgKsC529DpscHItfdSPVv\nLa7w5e8p43GkT6sXA89VlFu0PQzclNi+BYd+CdQ011aP63Dk8cqqT+VVaAl0NfAr8EGgbK//jI0O\nkz6o0J7tMPCQP96aGqCBHcDphH/xZ9E2jIxo7+QKMBNNct3E45xUeWXR19iri5A14NxI+YQPaluk\n/Avg68D5xcCrwO/AHYa4HLoRcjmwqeecVduDwO2Kti049DOANddNPa7D0dwrsOkze7UA+Ab56eg0\n8C2yB9vNa8gLkmnkoeQjZM91FBlJvvRlh5CdhQ/9307gc2Azsqaz4ND/g9yMmN1E29nIi5W2caTp\na5LrJnnQ4LB71UTf0fKqLziOzX34XDgGR5/jONJifdt3tDlAeCtsUBgkfYOkpVAoFAqFQqFQKAwY\n/wF5Fp03jGX3sQAAAABJRU5ErkJggg==\n",
224 "prompt_number": 9,
225 "text": [
226 "",
227 " 2 2",
228 "A\u22c5B + A + B\u22c5A + B "
229 ]
230 }
231 ],
232 "prompt_number": 9
233 },
234 {
235 "cell_type": "markdown",
236 "source": [
237 "Create a commutator"
238 ]
239 },
240 {
241 "cell_type": "code",
242 "collapsed": false,
243 "input": [
244 "comm = Commutator(A,B); comm"
245 ],
246 "language": "python",
247 "outputs": [
248 {
249 "latex": [
250 "$$\\left[A,B\\right]$$"
251 ],
252 "output_type": "pyout",
253 "png": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAWCAYAAAC/kK73AAAABHNCSVQICAgIfAhkiAAAAj5JREFU\nSInt102ITlEYB/CfMUppNFMmDDU0W1EiaZp34SvFQlmKHTtSZKOURjIkSXZjtiwQiykRvTFi4TMk\nHwsLkSmrocEMY3HO5HXn3nHf+84syL/ezrn/55zn+d/7POe59+UvxZTE9RV8wTWczrH/BAZwoEDs\nbizH4hjzDr5F2yw04RwOYRC7sArTsT7prFxF4GX4jp4CokexACM4mmLbEG2XE3wZ6goGrENXHOcU\n9AEdcbyaYuvFa2xEQ5qAItiB8xhSm/CSUB63U2wNmI9+fPqTo3KOYM24Ltz0W7zLqzIFL3Arw7ZP\nKJXtCb6ctjiVTKAH7XF+H8OKZW52FNaZ4Bsj149tWRrrqwzWjql+pfZDvG6O82pQimMbjsR5g1DT\nL2OsV3mdlcex1aMPcyu4HuGpLckboAKn8FVob0kcFtrs2iyN1aR4Jy7hfQU3+pSLHNAS7gk9PIlO\n4YbOZG3OWyot2IvnWFPBt8axWuGNWIRjGfYhIRvzhPIZSC7IK/w4tuJGgt8stMVqhXcI2e7LsK/E\nDKF7jRFNvlJZjY/Giia0Q9KFt4zjsyScjbT+PQ3747w7hz6MPZxLhTpuyljfFgWcTfAr8EP2985D\nPEnhW3EBn7Elp8bfyBY8jcFH8Ezou5W4KLx8RoQDdhProm0h3gh9fhQzhaw9insGhVIpx99jPMBJ\nof6zMK7wicLBCfZHjR9ZeTFp/idT+CbcnSznSeHDwp+J3TX6rRe+13tr9FOJPYK24Qn0+R//Pn4C\niuR3f19QpToAAAAASUVORK5CYII=\n",
254 "prompt_number": 10,
255 "text": [
256 "[A,B]"
257 ]
258 }
259 ],
260 "prompt_number": 10
261 },
262 {
263 "cell_type": "markdown",
264 "source": [
265 "Carry out the commutator"
266 ]
267 },
268 {
269 "cell_type": "code",
270 "collapsed": false,
271 "input": [
272 "comm.doit()"
273 ],
274 "language": "python",
275 "outputs": [
276 {
277 "latex": [
278 "$$A B - B A$$"
279 ],
280 "output_type": "pyout",
281 "png": "iVBORw0KGgoAAAANSUhEUgAAAE4AAAASCAYAAAD15uiRAAAABHNCSVQICAgIfAhkiAAAAi9JREFU\nWIXt1z1oFEEcBfCfMYIWkQQMahQipPUDRKtgCj8LY2Up2im2gmgh2CgqWojYSUgbCxVsrFTED6zU\nBBXRdBIEA1ZRokaNxQwak9272d1LQLgHx87N+8+89252dvZoohQWFay/jAmcrlEzgK3YiK94iu+R\nW4EOXMdZTBbUr4X50E3JWxdb8BODCbXrMI2LGdzeyN2uYmYBdIvkzUUL7kXhOwn1B2Ptzhx+NJpq\nq2JqHnXr5m1JNHQENzCFVQn1fcI2eZLBtWEtxvE5UT8VjdItmjcTncKv34IxfEgY8xaPcrgTwkoe\nLmtonnXL5M3EIHpj+xl+qH2nrowGz8zqb4994zhU1swC6Cblba0zSS8W+3vrf4zfO2M7C33x2oML\nsd2GfryLc47WtV8cjdAtk3cOWvEYq2f0DQqruqnGuKv4hqUZ3DnheN+VaqIAquqWzTsHx3B8Vt/5\nONGeGuNGZD+cYZnwwH1fxEgiquoWypu3VbviJG/8e7R3x2veSdOO9biUw08Jd8UaYRtNYAOuSX8Z\nH8bRBujORNm8czCE7Rn9+4UVOJkzbl/k+3P4bZG/m2okEVV1C+fNOh134BPuZ3Bj8Zq3An1RKGvL\nLMGp2B7IGV8WVXSr5P2DzcLp0ZHD90SDQzn8C7zM6O/GTXzBgXomSqCsbtW8uvAKv2Lha+G9aCZu\nCS+D08Kf6IfYjeXCag1HblI4nR7Ezwie44rwHGoUquhWydtEE038P/gNdbvExvNu4QsAAAAASUVO\nRK5CYII=\n",
282 "prompt_number": 11,
283 "text": [
284 "A\u22c5B - B\u22c5A"
285 ]
286 }
287 ],
288 "prompt_number": 11
289 },
290 {
291 "cell_type": "markdown",
292 "source": [
293 "Create a more fancy commutator"
294 ]
295 },
296 {
297 "cell_type": "code",
298 "collapsed": false,
299 "input": [
300 "comm = Commutator(A*B,B+C); comm"
301 ],
302 "language": "python",
303 "outputs": [
304 {
305 "latex": [
306 "$$\\left[A B,B + C\\right]$$"
307 ],
308 "output_type": "pyout",
309 "png": "iVBORw0KGgoAAAANSUhEUgAAAGAAAAAWCAYAAAA/45nkAAAABHNCSVQICAgIfAhkiAAAA5VJREFU\naIHt2UmIXUUUBuDP2IJZtHSLjdpiRwhGEYkYp0gwggOGGMHgQnACEXEARVEcEISgRNFFBHUhSvtc\nxSwUXaghDlxMRF2oiIpDL4wSlATNwqBG0w6LU49+eX3rvXt7uNn0v7mn6pz6z3lV95yquo8FHFIc\n1tXeiv14G89WGL8J+/BwD5sXcA6WJ+4P8XfSHYNhvIxH8WfVwOeRdzZYhnU4H6P4Hb/gIezEXnyc\nbNeUERQ1nJ2NfzBewfYk/IcnSnSXJ93rNXzPN29dHI4H8BNux8kduhPFvL6Ib1JfkSPKKrqwCO+K\nH/hmBfvrk+0lGf2EWMzBiv7ni3c5BmrGMCaybydOzdisEHE+k9pFjiyr6MKtuE2k/KcV7J/HX1hc\nohsUJeJn00ti07wtkVVVMSBKyvc4vo/tbqxPcpEzyio6MCLe/kXYJdKuH77F9ozuPvF23FyBZ755\nW+otwMbk47oKtjswlOQiZ5RVdGAcq5L8CSbFYuRwrAjyka7+odS3BzdU8NsEb0v1BThTlLev9P79\nbVzdIRdtoW69WyU2nA9Se3dqjyS5DKvTcykeT/KgOC18lzgnasYxn7xVsVZM/FP4t4L9liqkRQ/d\ngEijzlo3Lt7CM3qMe1rU6SNLdBvFMfbSKsE1wNtSPQPeEr/9rJo+mGEJuhv3dvU9loK4rMe4z01l\nTDcW4wB+7DG+Sd6W6guwV5SgsgNAN5Z1tYu2ULUEjYrJ/9rBR74l6XlcZtwQTseTGf0B8RafIMrH\nvorxzJb3JeVZO4ZzTV3oOnGT2PPa+CHZ97vkjeBGPNjHDvkM2IyLSvqvEhlwf2bcFUm/LqO/IOnf\nqRJcA7wt1TNgU/Ix1sdugzgwdKJoC1V274vxK94r0e1Kz1wGrBZBlpWKI8QVnfis0I3RHjHNhneu\nsEVk2TU9bG4Rx/TcAWUaiq72ijR4OGO/VEzE5oz+M3xR0r8Er4hvJdeW6M8TJ4vc96iZ8vZDS717\nwBr8gTscvBecIk5mazPjiraQ2wNGsQ2niVvkDlGCOlfyVaxM8nq8Lz58fYTXcLSos/vT+MlkOyw2\nr+1ior8s8b9HbKArO/qOmgPeucZWXCjO+NtM3bwn8Jy4IddCMYfBzQU2NOyvpV4GzBRFW6iyBxxK\nNB3fbyKzGkPdm3CTuFKUsyZxZ8P+pr1hk6Ku3dV0IF0YEP83vHGI45hr3CPmd7Kf4QIWsIAFNID/\nASen61ooc9yoAAAAAElFTkSuQmCC\n",
310 "prompt_number": 12,
311 "text": [
312 "[A\u22c5B,B + C]"
313 ]
314 }
315 ],
316 "prompt_number": 12
317 },
318 {
319 "cell_type": "markdown",
320 "source": [
321 "Expand the commutator"
322 ]
323 },
324 {
325 "cell_type": "code",
326 "collapsed": false,
327 "input": [
328 "comm.expand(commutator=True)"
329 ],
330 "language": "python",
331 "outputs": [
332 {
333 "latex": [
334 "$$\\left[A,B\\right] B + \\left[A,C\\right] B + A \\left[B,C\\right]$$"
335 ],
336 "output_type": "pyout",
337 "png": "iVBORw0KGgoAAAANSUhEUgAAAN8AAAAWCAYAAABAHklQAAAABHNCSVQICAgIfAhkiAAABNdJREFU\neJztm0mIHUUYx3+OI+hhZEYc1FEnA8EoIhFjXEJwBBcIMYLiIeAGIioIBtHggiCESBA9RFAPgo7P\nUwwu6EENowmFiWjA5eBuDkYJBoN6MC7RjMvhq8d02l6+6vrqvRfp/+W9qa/631/9XndVdVUPtGrV\nqi86Ivf3FuAA8CbwpOL4jcB+4MEG534aOA9Y7M/5LvCnjx0PjAHPAw8BvwNrgEuAo4EVRp4pFMoQ\n4jh2tQhYBSwDJoBfgR+AB4DdwE/ATl93kPlpVMWrin/K9kXzdwEnWwr8BcwEJpnVFPAP8EhB7Aof\nezVX7hJ4WsoF1o/leCRwH/AdcDtwWiZ2qs/nWeALZX5T9Jdfnep4uZrjp7Btnxn/0kBOQ8BWn+jr\nAYnmdYP3uKwkvgsBPZIpcwk8q7QYGFbWhbCbL5bjJNJ77wbOKKmzxPs/oczPmh+EMyyThper8bBs\nXxT/IcUJinQr8CJwEDixoQfANDLsv1MQGwFOAfYBv/TR8y5/TArFcBwGXvDHLWO+Z83rQ6S9W5W+\nKX4TK4YW151V+8z5u7oKwLg3GgL2IMNtU30JbC+J3YP0GLfkyl0Czyp1kKmKVk5ZL5bjBqQt1yvq\n7gBGlflZ84NwhkXS8nI1PlbtM+dfGshoBljuv38AzNFsBD0BSX59rnzUl+0DbgzMsalnlTqkufli\nOJ6DTI0+VR6zWplfCn5gc/NpebkKD6v2mfAPnYcvRx4wu0P29/7vcf89RNP+cyHwsP8+gqwYfeXP\ntWsAPFMoluNK5Ed/DPhbUX+zMq9B5Wd13Vm1Lwl/VxEbRobPkzJlM0hPcrbGPKfHgT+QrYO8NiBL\nyZcH5tjUs0odbEc+C45v+PrnBuTVlauIpeAHcSNfKC9X4WXVPhP+IdPFO4BXgL2Zsm6v0+Thdxp4\nH9lvyWs9AuiZAfC0lgXHC5Ae9zNF3UX61AaSn+V1Z9U+E/7aaecEsBb4nEOXaBf4z1AIo8BZwKMl\n8YNID3UyMi3Y3wPP5yjuSSeB85nfjM3qZuT5Qysrjt/4vOo2gseBm4D7FZ4Wv4k1Q8vrzvKaS8G/\ndMjehLxdktc1yPB7r8Y8oyv9catK4hf5+FsFMZfAs0od7KadVhw3+vqTNfXWIYsMmvxS8YPm084m\nvFyJl2X7TPhrpp2XAj8C2wpie/xnUQ80UeE5jSRftNdyFPJKDsjrQFql8LSUJcfNSC99bcX5bkOW\n47ULEoPGrymvMjVtX6/4/6fXWOIPHiupvxBp0KZceXdOXPZu40fAxwXlC4CXkPfirlPmaOFZpQ7x\nI18KjiuA35BnomMy5acjK3krA/KDdPwgnGFTXmDbvqT8y575JoBZ4Ezk5esdyPCfvYtfBi70368G\n3kZeSJ1F9ku+zcQBjkUenI9DngsOeN85Hx9D9k62I43+pCS3rFJ4WioFx662ABcje0izyPPHXmSp\n/Cnga0V+g8Yvlldese1Lzf8QudADarTO2A/sc6xThzSb7CGy5OgMvbTqEL/JrpVL4JmEf9N3O7VK\n7d8L/Uzx0nQvdbhzHASGMUrC3+JN8zJdBbyX0L9XWtPn8/8fOPabYYyS8c/f0XPIXPbOSN9h5P+u\nXov0yepuJLe5uop9lhVDsOV4uPCLVcu/VatWrVq1atWqVat5/QsIXxOgwN127AAAAABJRU5ErkJg\ngg==\n",
338 "prompt_number": 13,
339 "text": [
340 "[A,B]\u22c5B + [A,C]\u22c5B + A\u22c5[B,C]"
341 ]
342 }
343 ],
344 "prompt_number": 13
345 },
346 {
347 "cell_type": "markdown",
348 "source": [
349 "Carry out and expand the commutators"
350 ]
351 },
352 {
353 "cell_type": "code",
354 "collapsed": false,
355 "input": [
356 "_.doit().expand()"
357 ],
358 "language": "python",
359 "outputs": [
360 {
361 "latex": [
362 "$$A B C + A \\left(B\\right)^{2} - B A B - C A B$$"
363 ],
364 "output_type": "pyout",
365 "png": "iVBORw0KGgoAAAANSUhEUgAAAO8AAAAZCAYAAADZu3m9AAAABHNCSVQICAgIfAhkiAAABUBJREFU\neJztm1uIVVUYgD9tJrKaaYyGbMzx1JAmXSRNIySD7kxKNyqwC4REFywII43EiMKiAru+VEwnitSH\ngggSpUKyiB4s7YKWD1lIpVQPillZTQ//Osye3Vp7r8u+nIn1weGcvW77/9f+11r/+vc6EIlExiTj\n6hYg4sQ5wCBwODADWAl8XqtEkUgkl6OB5xPX1wH7gWPqEScSidhyJvAPMKCuu4FhYEFtEkUiESvG\nIW5za6tzGjJ4Z9QmUaRWXPe8qxFXbWVGmZeAOchK8TvwMfCnyjsOmAisBR4BDhramIasKOcCfcAB\n4GfgAWAX0ASWAT85yh9Knv6dwGRExjQu/dKN9M2+DFleBfYCS10U8KCI55mmKjsKpSg7rF3fs4G/\ngSGLsg1kVXhck3e5yntLk3cYsBz4AbgTOCWRNwXYBLwM7LCUuUjy9O8AHgSOzGijgV2/dAJPqjZ1\nLFZtVBVwbOD3PHVUYUehFGmHtes7HnhPVX7HovxNquxFhvydiEJdibR+ZLbZBZxqqDdLtfuchQwg\ns5hpALhgo/9Sdb8sXPplHvqHuAAZvAATkAdeNj7PU0cVdhRKkXbYFvreDtyBLOOfWpR/EfgDMa40\nXciy/yMjK0cH8AnwLXBCTtt7gKssZABxaxqWZbPI078LeMOiHdd+eYHR0eTzkYE7SX0WIS5d2bjK\nbaJsOwqlaDusXd9eZPYYD+xGXIk8vgY2G/LuQ2aXWxNpq1TajRZtfwj0WJSDYgavjf5XA/datOXa\nL0uAu9Xvk5F903Dq021x31Bc5dZRhR2FUqQdtoW+Q4gLB7AF+EsJZOJ4dZOHU+k9Km0vcHMi/SzE\nFfgqp90W11uUadEkfPDa6P8Msipm4dovAJcArzvKWzQ+cuso245CKdoOS9c3bz84D9m8f6Su96jr\nXvVbx3z1PQA8pn53IXu1b1SbOxPlBxGlnkLeY+axzqJMUdjqfyIShczCtV9AZuKGh9xF4iN3mirs\nKJQi7bB2fTsQ1yDp+w8hs8PMjHrPIn77EZq8VYjrd3Eibb1qc7atYA408Td+F/03kP++1bVfAI6i\nnsh6Eh+5k1RlR6EUZYdtoe89/Hcf96gS4tKMetsYmXHSTAAOAd8n0n5F3BXdJj3NNIsySZr4D14X\n/V8DFua059ovINFr0x6oKnzkTlKVHYVSlB1Wpq/Jbe5TAmxndNh6qvqeZKjXA5wOPGHIP4TMLpMR\nl2A/8B0Sns978dwL3ALcr8l7Bf2s1g/MZeRld5LFyF5Eh6v+O4DpwNuG9nz6BdXmdkOdLM5AItW2\nUcmtSGQ0ja/cLaq0o1Cdi7DDKvU1sga4QJN+DTKDLDPUW0j2edvzVP67ibTVKq0/SyDgIWRT70IT\nv5XXVf/ZSJjfhE+/AKwArsgTtkR85W5RpR2FUoQdVqqvLvp1IfAL8L4mb7f6Ns0g89VNdMt/J3Ks\nDOQoWIt1yKyyyNAmwG1IqN202S8SH/23AMdi/oePT790Il7D+nyRS8NH7hZV21EooXZYu76zlGAT\nDfkD6iZrDPmfAV9o0qcihxgOADdo8i8DfgPuYvSeYzoSeRvMEjqDJm4rb4j+c5FIpQ6fflkOXJsj\nb9n4Ps+67CgUXzusVd8+4EskRD6MvOtKuwZvIrPOMHJw+gPkPWQ3MttsVXkHkWjbJvXZhpwueRrx\n603MQc7zbgY2IvvYFcBJGXXyaGI3eEP0T3Il8iAhrF+mIAc06iBE7nawo1Bc7PD/oG/b0qT+96SR\nSCnYnCQZy+xDZrtIJBKJRCKRSCQSiUQikcgY4V+hOFAJDK9DFAAAAABJRU5ErkJggg==\n",
366 "prompt_number": 14,
367 "text": [
368 "",
369 " 2 ",
370 "A\u22c5B\u22c5C + A\u22c5B - B\u22c5A\u22c5B - C\u22c5A\u22c5B"
371 ]
372 }
373 ],
374 "prompt_number": 14
375 },
376 {
377 "cell_type": "markdown",
378 "source": [
379 "Take the dagger"
380 ]
381 },
382 {
383 "cell_type": "code",
384 "collapsed": false,
385 "input": [
386 "Dagger(_)"
387 ],
388 "language": "python",
389 "outputs": [
390 {
391 "latex": [
392 "$$- B^{\\dagger} A^{\\dagger} B^{\\dagger} - B^{\\dagger} A^{\\dagger} C^{\\dagger} + \\left(B^{\\dagger}\\right)^{2} A^{\\dagger} + C^{\\dagger} B^{\\dagger} A^{\\dagger}$$"
393 ],
394 "output_type": "pyout",
395 "png": "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\n",
396 "prompt_number": 15,
397 "text": [
398 "",
399 " 2 ",
400 " \u2020 \u2020 \u2020 \u2020 \u2020 \u2020 \u239b \u2020\u239e \u2020 \u2020 \u2020 \u2020",
401 "- B \u22c5A \u22c5B - B \u22c5A \u22c5C + \u239dB \u23a0 \u22c5A + C \u22c5B \u22c5A "
402 ]
403 }
404 ],
405 "prompt_number": 15
406 }
407 ]
408 }
409 ]
410 } No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now