{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Rotation Matricies\n", "Detailed instructions to submit ipynb files can be found on Piazza Post @17.\n", "Please save your hw6.ipynb as a pdf and attach it to your written homework. This combined pdf will be submitted as hw6.pdf.\n", "Submit both hw6.pdf and hw6.ipynb through glookup." ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "plt.rcParams['figure.figsize'] = (30.0, 6.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fill in the function below so that it constructs a rotation matrix from an input angle, theta, and a scaling factor, r\n" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Returns a rotation matrix for a desired rotation and scaling\n", "# theta is the degrees of rotation\n", "# r is the scaling factor of the rotation matrix\n", "def rotation_matrix(theta,r):\n", " \n", " # Represent the rotation matrix\n", " r_matrix = #TODO\n", " \n", " return r_matrix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Eigenvalues of Rotation Matricies\n", "Use your matrix construction function to construct the specified matricies below. Fill in the #TODO lines with your code to do this. Note, it is best to represent the matrix as an np.array object since other code assumes the matricies will be in that form. " ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mat0 eigenvalues: [ 0.70710678+0.70710678j 0.70710678-0.70710678j]\n", "mat0 eigenvalues magnitudes: [ 1. 1.]\n", "mat1 eigenvalues: [ 0.88388348+0.88388348j 0.88388348-0.88388348j]\n", "mat1 eigenvalues magnitudes: [ 1.25 1.25]\n", "mat2 eigenvalues: [ 0.35355339+0.35355339j 0.35355339-0.35355339j]\n", "mat2 eigenvalues magnitudes: [ 0.5 0.5]\n" ] } ], "source": [ "############################################\n", "#Construct a matrix for theta= pi/4, r = 1\n", "\n", "mat0=#TODO\n", "\n", "#calculate the eigenvalues and eigenvectors of mat0\n", "\n", "eig0=#TODO\n", "\n", "#Caculate the magnitude of the eigenvalues\n", "\n", "mag0=#TODO\n", "\n", "############################################\n", "#construct a matrix for theta = pi/4, r=1.25\n", "\n", "mat1=#TODO\n", "\n", "#calculate the eigenvalues and eigenvectors for mat1\n", "\n", "eig1=#TODO\n", "\n", "#Caculate the magnitude of the eigenvalues\n", "\n", "mag1=#TODO\n", "\n", "############################################\n", "#construct a matrix for theta = pi/4, r=0.5\n", "\n", "mat2=#TODO\n", "\n", "#calculate the eigenvalues and eigenvectors for mat2\n", "\n", "eig2= #TODO\n", "\n", "#Caculate the magnitude of the eigenvalues\n", "mag2=#TODO\n", "\n", "############################################\n", "\n", "\n", "print \"mat0 eigenvalues: \"+str(eig0) \n", "print \"mat0 eigenvalues magnitudes: \"+str(mag0)\n", "print \"mat1 eigenvalues: \"+str(eig1)\n", "print \"mat1 eigenvalues magnitudes: \"+str(mag1)\n", "print \"mat2 eigenvalues: \"+str(eig2)\n", "print \"mat2 eigenvalues magnitudes: \"+str(mag2)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Rotation of Vectors Using Rotation Matricies \n", "Fill in the #TODO items to rotate the vector x1. Note, the plotting code assumes that the resulting vecotors are np.array objects" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABrwAAAGWCAYAAAAqvCMMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYpFV5NvD7GYjGGNS4BOOGMRFUTESNCq7tgggKw6YR\nUEGNKyYqgqzKgCtEo8aYuMTEXURQdhRQGkXcQUEENF+UJbgkIirqp2Cf748q5msmM9PNdPVUn5rf\n77rmsqvq1Ps+M4zcdN/ve6paawEAAAAAAIBeLRv3AAAAAAAAALAQCi8AAAAAAAC6pvACAAAAAACg\nawovAAAAAAAAuqbwAgAAAAAAoGsKLwAAAAAAALqm8GKDUVUHV9W7R712Hseaqap7jeJYANCjqvpW\nVT163HMAwLqQYwBMAnnGhkDhRZeqap+qurCqfllVV1fVP1fVbdf2ntbaG1prz5/P8W/O2vkcbnVP\nVtU7q+r9q3n+L6vq/1bV7db1hFX171V15Lq+H4Clrar2raqvDvPi3+ZYu3dV3VBVP6+qa6vqgqp6\n8s041/eq6nE3Y/3/yqDW2v1ba5+b7zEAmFxVdYuq+teq+n5V/ayqvl5VT1rLejkGwJJUVR8c/lzy\nZ1V1aVU9dy1r5RmsBwovulNVr0jyhiSvSHKbJFsn2SzJmVW18Rres9H6m/B/n34Nz78vyS5VdatV\nnn9mkpNba9cu6lRrUVX+3QCwtP1Xktckee8815/XWrtNa+12Sf4lyTFVdZtFmw4A1mzjJFckeVRr\n7bZJXp3k2Kq6x1reI8cAWIpen2SzYZ7tlOS1VfXAtayXZ7DI/FCbrlTVJklWJHlJa+3M1trvWmtX\nJHlaBqXXM4brDq+qjw+vtLg2yd7D5z4461jPGl5V+N9VddjsKyVmr62qzYbbEj6rqi6vqh9X1SGz\njvOQqjqvqn5aVf9VVW9fU/E2W2vtSxn8wHK3WcdalmTPDMqw1MBBVfUfwzmPmX3nV1U9sqq+MDz3\n5cMZn5dkrySvHF41cuJw7X2r6uzh2ouqasdZx/n34V1yp1bVL5JM3Zx/LgCsX621E1prJyW5Zh3e\n/sEkt05y7xufqKqdhttbXFNVn62qLYbPfyDJPZKcPMyU/YfPH1tVPxhmynRV3Xf4/JoyaHbG3qKq\n3jrMzKuq6i1V9XvD1x5TVVdW1X5V9aPhmn3W8Y8JgCWotfar1tqRrbUrh49PTfK9JA+e5yG6zbGq\n2qGqLh4e+8qq2m/d/yQBGLfW2iWtteuHDyuDXZ7+bJ5vl2ewCBRe9ObhSW6Z5JOzn2yt/TLJ6Um2\nnfX0TkmOHV418ZEblyZJVd0vyTuS7JHkT5LcNsldVjnXqlsRPiKDEHpCklffGDpJfpfkZUlun2Sb\nJI9L8uJ5/n4+mGTvWY+3zeCKx08NH790+Pt41HC+nyb55+Hv4R5JTkvytiR3TLJVkm+01t6T5MNJ\njh5eNbK8BgXcScPj3inJ3yX5cFWtDNXhn8VrWmubJDl3nvMD0JEa3PH8nCS/TXL58LnNM8jJv8sg\nI05PckpVbdxae1YGV+E/ZZgpbxoe6rQMvpH74yTnD9+f1WXQasY4LMlDk/xlkgcMvz5s1ut3TrJJ\nBrn3N0neUXNsWwxAv6pq0wy+z7p4Hmt7z7F/TfK81tptktw/yWfn+j0DsLRV1Tuq6pdJLklydQYZ\nM9d75BksEoUXvbljkv9prc2s5rUfDF+/0RdbaycnSWvt/66ydrckJ7XWvthauyGDbTTWpiVZ0Vr7\nbWvtwiTfzCAM0lo7v7X2lTZwRZJ3J3nMPH8/H0zy6Kq6sWx7ZpKPtNZ+N3z8/CSHttZ+MLxi5Mgk\nu9f/vxPszNbascM73X46nG11tk5y69baUa21G1prZyc5JYOS60YnDu86S2vtt/OcH4A+bFNV1yT5\ndZKjkzyjtfY/w9eeluSU1tpnh/nzpiS3yuAikxvdZHve1tr7hlfo35hND6jBXdjzsWeSI1prP2mt\n/STJERnk341+m8EFGL9rrZ2e5LokW6zmOAB0bnhh3oeSvK+19p21LJ2UHPttki2rapPW2s9aa9+Y\n5zkBWKJaa/sm+cMkj0zyiSS/WctyeQaLTOFFb/4nyR1r9Z8x9SfD12905VqOc5fZr7fWfp3kJ3Oc\n+0ezvv5VBmGWqrp3VZ08vIX42iSvy02LtzUabuPx+STPqKpbJ9k5yftnLdksySeHtzJfk+TbSa5P\nsmmSuyf5P/M5T1b5/Q5dnuSusx6v7c8LgL59sbV2+yS3y+CO30fPeu0uGV5VmCSttZZBJtw1q1FV\ny6rqjTXYbvfaDLahapln9g3Pd8Wsx5fnpndZ/2SVC1tWZi4Ak6OqKoOy6zdJ/naO5ZOSY7sleXKS\ny2uw3fzW8zwnAEvY8CL48zL4Wd2L1rJUnsEiU3jRmy9m8A3RrrOfHJZF2yc5a9bTq25JONsPktxt\n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\n//ZvMzMzk3/91/eMeyTY4Cm8AABYsu5+93vkqquuVHYBAABLzkte8pJUVV7ykpckidILxkzhBQDA\nktNayz3usVmuuurKfO5zn8ujHvWocY8EAADwv+y7776pquy7776ZmZnJv/3be8c9EmywFF4AACwp\nrbXc7W53z9VX/1c+//nP55GPfOS4RwIAAFijF7/4xamqvPjFL87MzEze975/H/dIsEFSeAEAsGS0\n1nLXu94tP/jB1Tn33HPziEc8YtwjAQAAzOlFL3pRqiovetGLkkTpBWOg8AIAYEloreUud7lLfvjD\nH+YLX/hCHv7wh497JAAAgHl74QtfmKrKC1/4wszMzOQDH3j/uEeCDYrCCwCAsWut5c53vnN+/OMf\nK7sAAIBuveAFL0hV5QUveEFmZmbyoQ99cNwjwQZD4QUAwFi11rLpppvmv//7v3Peeedlm222GfdI\nAAAA6+z5z39+qirPf/7z01rLhz/8oXGPBBsEhRcAAGPTWsud7nSn/OQnP8kXv/jFbL311uMeCQAA\nYMGe97znparyvOc9LzMzLR/96IfHPRJMPIUXAABj0VrLHe94x1xzzTX50pe+lIc97GHjHgkAAGBk\n/uZv/ibLli3Lc5/73LQ2k2OO+ei4R4KJpvACAGC9a63l9re/fa699tp8+ctfzkMf+tBxjwQAADBy\nz3nOc1JVec5znpPWWj72sWPGPRJMLIUXAADrVWstt7vd7fLzn/88X/nKV/KQhzxk3CMBAAAsmmc/\n+9mpqjz72c9Oay3HHvuxcY8EE0nhBQDAetNay21ve9v84he/UHYBAAAbjH322SfJoPzaffeZHHfc\nx8c7EEwghRcAAOtFay2bbLJJfvnLX+arX/1q/uqv/mrcIwEAAKw3++yzT6oq++yzT3bbbfccf/xx\n4x4JJorCCwCARdday61vfev8+te/zte+9rU8+MEPHvdIAAAA693ee++dqsree++dXXbZNZ/85CfG\nPRJMDIUXAACLqrWWW93qVvnNb36j7AIAADZ4z3rWs7Js2bI885nPzPLlO+fEE08Y90gwEZaNewAA\nACZXay2///u/n9/85jf5+te/ruwCAABI8oxnPCMf+tCHctJJJ2b58p3HPQ5MBHd4AQCwKFprueUt\nb5nrr78+559/fh74wAeOeyQAAIAlY6+99kpVZa+99sqOOy7PySefOO6RoGsKLwAARq61llvc4ha5\n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\n02kA20Kn6TSAbfFSOu3AM7z2U1Wnktya5McXFc7k4SRvrKrrknwjybuTvGfZfW5jMQMwf8fdafoM\ngE3RaQBsC50GwGEc9TO8/jjJFUnOVNUjVXVHklTVa6vqU0kyxnghyW8muS/JPya5a4xx7oiPCwDH\nTacBsC10GgDbQqcBsLIjv6UhAAAAAAAAbNJRz/A6sqr6cFWdq6qzVfWJqrpyybpTVfXlqvpKVd22\n7px7svxiVX2pql6oqhv2WffPVfWFqnq0qj6/zoxL8qyae06zflVV3VdVT1TVZ6rqFUvWvTC90ufR\nqvrkunNOGfadW1W9rKruqqrzVfX3VfW6TeTca4Xcp6vqm9N8H6mqWzaRc0+mP6uqZ6vqsX3WfGSa\n9dmqun6d+Zbk2TdzVb29qp7bNeffXXfGBZmuraoHqurxqvpiVf3WknWzmvWmdOyzKU+7TuvYZ1Me\nnXaC9Nn66LTt17HTOvbZlKddp3XqsymHTlsDnbY+Ou1wdNr66LST1bHPEp22LvpslzHGRr+S/GSS\ny6bLH0zyhwvWXJbkq0muS/KdSc4mefMGM/9Aku9P8kCSG/ZZ909JXrXpGR8m9wxn/aEkt06Xb0vy\nwSXr/nPDsz1wbkl+Pckd0+Vfzs4p9ps+JlbJfTrJRzaddU+mH0tyfZLHltz+ziSfni6/NclDDTK/\nPcndm865J9Nrklw/Xb4iyRMLjo/ZzXqD82rXZ1Omdp3Wsc+mTDpts5n12fpy67TmXx07rWOfrZp7\nhrNu0Werzk6nHVtunba+zDrtcPPSaTPKPcNZt+i0jn12iNw6bT2ZL5k+2/gZXmOM+8cY35q+fSjJ\ntQuW3Zjk/BjjyTHGhSR3Jbl5XRn3GmM8McY4n+SgD7qszOAsuotWzD2rWU+P/bHp8seSvGvJuk1/\n6Ogqc9v9s/xVkp9YY75lVv3z3vR8v80Y4++S/Mc+S25O8hfT2s8leUVVXb2ObMuskDmZ35yfGWOc\nnS7/V5JzSa7Zs2x2s96Ujn2W9Oy0pn2W6LSTpM/WSKdtv46d1rHPkrad1qXPEp22NjptfXTa4ei0\n9dFpJ6pjnyU6bW302f+bzZPi5JYk9y64/pokT+36/um8+Iefo5HkM1X1cFX92qbDrGhus/7eMcaz\nyc5fgiSvXrLu5VX1+ar6bFVtoihXmdv/rRk7H6j6XFVdtZ54S6365/0L02mjH6+qRf84nJu9P9e/\npsdzxk3T6fGfrqof3HSY3arq9dl5pcjn9tzUddYnbdv6LOnXaXOctU47OfpsfnTa9ti2TuvWZ8n8\nZt2lzxKdNiedn2N12vbQaZs3t1l36bSOfZbotLm5JPrs8uMMtkxVnUmye+etsvOkfPsY455pze1J\nLowx7lx0FwuuG8cedPcDrpB5BW8bYzxTVa9Ocqaqzk27rSfmGHLPadaHeS/R102zfkOSB6rqsTHG\n144z5wFWmdveNbVgzbqtkvvuJHeOMS5U1fuz82qRObxKZD9rP46PwT8kuW6M8d9V9c4kn0zypg1n\nSpJU1RXZeXXQb0+vuPi2mxf8lrnP+iXr2GdJz07r2GeJTjuZOCvRZ/Oi0xro2Gkd+yzp2Wlb0meJ\nTpuTrs+xOq0BnabT9n3A7ei0jn12McNeOm0zLpk+W8uG1xjjp/a7vapOJ/nZJO9YsuTpJLs/aO/a\nJF8/nnSLHZR5xft4Zvr136rqr7NzGueJFs8x5J7VrKcP27t6jPFsVb0myTeX3MfFWX+tqh5M8kNJ\n1lk8q8ztqSTfl+TrVfUdSa4cYxx0qulJOzD3nox/mp33N567p7Mz64tO/Dg+qt1P6GOMe6vqjqq6\naozx75vMVVWXZ6d0/nKM8TcLlrSb9VF07LOkZ6d17LNEp60p3yL6bEZ0Wg8dO61jn02P1a7TtqTP\nEp02Jy2fY3VaDzpNp+1nSzqtY58lOm02LqU+2/hbGlbVqSS3Jvn5McbzS5Y9nOSNVXVdVb0sybuz\ns/s7Bwvf+7KqvmvanUxVfXeSn07ypXUGO8Cy9+yc26zvTvLe6fLpJC868KvqlVPWVNX3JHlbksfX\nFXCyytzuyc7PkCS/lJ0P8dy0A3NPhX/RzVn/bJepLD+O707yK0lSVTclee7iKeobtjRz7Xr/2aq6\nMUltunQmf57k8THGHy25fa6zXrst6LOkZ6d16bNEp50kfbZ+Om2LbUGndeyzpE+ndemzRKetm05b\nH522Ip22MTrteHXss0SnrZs+S5Ixxka/kpxP8mSSR6avO6brX5vkU7vWnUryxLT+AxvO/K7s7Jr/\nT5JvJLl3b+Ykb0hyNsmjSb646cyr5p7hrK9Kcv+U50ySV07X/3CSP5ku/0iSx6ZZfyHJezeU9UVz\nS/L7SX5uuvzyJB+fbn8oyes3fUysmPsPsvOPpkeT/G2SN80g853Z2c1/Psm/JPnVJO9P8r5daz6a\n5KvTMXHD3DMn+Y1dc/5skrfOIPOPJnlh13PZI9PxMutZb3Be7fpsytOu0zr22ZRHp202sz5bU26d\n1v+rY6d17LNVc89w1m36bNnsdNqJZNZp68us0w43L502o9wznHWbTuvYZyvm1mlryHwp9VlNvwkA\nAAAAAABa2vhbGgIAAAAAAMBR2PACAAAAAACgNRteAAAAAAAAtGbDCwAAAAAAgNZseAEAAAAAANCa\nDS8AAAAAAABas+EFAAAAAABAaza8AAAAAAAAaO1/ASRdqLcDVghEAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "x1=np.array([1,0])\n", "#Apply mat0 once to x1\n", "x1_r1=#TODO\n", "\n", "#Apply mat0 twice to x1\n", "x1_r2=#TODO\n", "\n", "#Apply mat0 three times to x1\n", "x1_r3=#TODO\n", "\n", "\n", "\n", "\n", "#this code will plot your rotated state vectors\n", "fig =plt.figure()\n", "plt.subplot(141)\n", "plt.arrow(0,0,x1[0],x1[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('Original Vector')\n", "plt.subplot(142)\n", "plt.arrow(0,0,x1_r1[0],x1_r1[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('1 Rotation')\n", "plt.subplot(143)\n", "plt.arrow(0,0,x1_r2[0],x1_r2[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('2 Rotations')\n", "plt.subplot(144)\n", "plt.arrow(0,0,x1_r3[0],x1_r3[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('3 Rotations')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we will see what happens when we rotate this state vector by our second rotation matrix" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n6U9vz5e+9KW8+MUv7joSAADAIh1wwAGpqhxwwAEZGxvLCSd8uutIMCsZvAAAmDFaa3nMYx6bO++8\nI9dcc03WXnvtriMBAAAs0ate9apUVV71qlclidELOmDwAgBgRmit5dGPfnR+9rOf5ctf/nJe9KIX\ndR0JAABgyvbff/9UVfbff/+MjY3lxBM/03UkmFUMXgAAdK61lpVXXjm/+MUvjF0AAEBv7bfffqmq\n7LfffhkbG8vJJ5/UdSSYNQxeAAB0qrWWlVZaKb/85S9z7bXXZq211uo6EgAAwFLbd999U1XZd999\n01rLZz97cteRYFYweAEA0JnWWh71qEflV7/6Va677rqsueaaXUcCAACYtn322SdVlX322SdjYy2f\n+9xnu44EQ8/gBQBAJ1preeQjH5m77rorX/nKV/LCF76w60gAAAADs/fee2dkZCR77bVXWhvLqad+\nrutIMNQMXgAALHettTziEY/I3Xffneuvvz4veMELuo4EAAAwcHvuuWeSZK+99koSoxcsQwYvAACW\nq9ZaHvawh+XXv/51vvrVr+b5z39+15EAAACWmT333DNVlT333DNjY2M5/fTTuo4EQ8ngBQDActNa\ny0Mf+tD85je/MXYBAACzxh577JGRkZG88pWvzHbbjeXMM8/oOhIMHYMXAADLRWstD3nIQ/K73/0u\nX/va1/K85z2v60gAAADLze67756qyu67755tt90uZ511ZteRYKgYvAAAWOZaa3nwgx+c3//+9/n6\n17+e5z73uV1HAgAAWO5e8YpXJBkfv7beepucc87ZHSeC4THSdQAAAIZbay1/+7d/a+wCAADI+Oh1\n0kkn5dxzz8lWW23ddRwYGq7wAgBgmWmt5UEPelD++Mc/5hvf+Eae85zndB0JAACgc7vttluqKrvt\ntlvmzNkq5513bteRoPcMXgAALBOTx65vfvObefazn911JAAAgBlj1113TVVl1113zRZbzMkFF5zX\ndSToNYMXAAAD11rLiiuumD//+c+54YYb8qxnPavrSAAAADPOLrvskqrKLrvsks022yIXXXRB15Gg\ntwxeAAAMVGstK6ywQsbGxvKtb30rz3zmM7uOBAAAMGPtvPPOqarsvPPO2XTTzXLxxRd1HQl6yeAF\nAMDAtNYyMjKSJMYuAACAKdppp51SVdlpp52yySab5pJLLu46EvSOwQsAgIGYPHZ9+9vfzjOe8YyO\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x1=np.array([1,0])\n", "#Apply mat1 once to x1\n", "x1_r1=#TODO\n", "\n", "#Apply mat1 twice to x1\n", "x1_r2=#TODO\n", "\n", "#Apply mat1 three times to x1\n", "x1_r3=#TODO\n", "\n", "\n", "\n", "\n", "#this code will plot your rotated state vectors\n", "plt.close('all')\n", "plt.figure()\n", "plt.subplot(141)\n", "plt.arrow(0,0,x1[0],x1[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('Original Vector')\n", "plt.subplot(142)\n", "plt.arrow(0,0,x1_r1[0],x1_r1[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('1 Rotation')\n", "plt.subplot(143)\n", "plt.arrow(0,0,x1_r2[0],x1_r2[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('2 Rotations')\n", "plt.subplot(144)\n", "plt.arrow(0,0,x1_r3[0],x1_r3[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('3 Rotations')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's rotate x1 with mat2" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "x1=np.array([1,0])\n", "#Apply mat2 once to x1\n", "x1_r1=#TODO\n", "\n", "#Apply mat2 twice to x1\n", "x1_r2=#TODO\n", "\n", "#Apply mat2 three times to x1\n", "x1_r3=#TODO\n", "\n", "\n", "\n", "\n", "#this code will plot your rotated state vectors\n", "plt.close('all')\n", "plt.figure()\n", "plt.subplot(141)\n", "plt.arrow(0,0,x1[0],x1[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('Original Vector')\n", "plt.subplot(142)\n", "plt.arrow(0,0,x1_r1[0],x1_r1[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('1 Rotation')\n", "plt.subplot(143)\n", "plt.arrow(0,0,x1_r2[0],x1_r2[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('2 Rotations')\n", "plt.subplot(144)\n", "plt.arrow(0,0,x1_r3[0],x1_r3[1])\n", "plt.ylim([-2,2])\n", "plt.xlim([-2,2])\n", "plt.title('3 Rotations')\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }