{ "metadata": { "name": "", "signature": "sha256:2a1138ae6d74b3ad207e45949c4aa25ec3647ed66024ccbdea48b1e572f177fc" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "##EE16A: Homework 0\n", "Welcome to your first iPython notebook! This notebook will walks you through a simple \"Hello World\" program, and also contains the code for Homework problem 0.4.\n", "\n", "###Introduction to iPython\n", "\n", "* Click the \"Play\" button, or press `Shift-Enter`, to run a cell\n", "* To add a new cell, select \"Insert > Insert New Cell\"\n", "* To undo in a cell, press `Ctrl-z` for Windows and `Command-z` for Mac\n", "* To save the notebook, select \"File > Save and Chekpoint\" or `Ctrl-s` for Windows and `Command-s` for Mac\n", "* Other keyboard shortcuts can be found under \"Help > Keyboard Shortcuts\"\n", "\n", "###Hello World\n", "In the cell below, type the following line to print \"Hello World\":\n", "\n", "``print(\"Hello World\")``" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Problem 0.4 (Introduction to Linear Algebra)\n", "The following code plots a line starting at (0,0) and ending at (1,0). Use the code in the next few sections to plot your answers." ] }, { "cell_type": "code", "collapsed": false, "input": [ "##Define the Start and End Points of the vector you want to plot\n", "start_point = [0, 0]\n", "end_point = [1, 0]\n", "\n", "#Grouping x- and y- coordinates together\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "\n", "#Plotting the vector and coordinate system\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "plot([-1.5,1.5], [0,0], 'k', linewidth=1)\n", "plot([0,0], [-1.5,1.5], 'k', linewidth=1)\n", "\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "xlim([-1.5, 1.5]); ylim([-1.5,1.5])\n", "legend(['Vector'])\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAcxrqUeUlYUKAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Homework 0.4 (a)\n", "Modify the code below to plot your result vector." ] }, { "cell_type": "code", "collapsed": false, "input": [ "start_point = [0, 0]\n", "##TODO: Define the End Point of the vector you want to plot\n", "#end_point = \n", "\n", "\n", "#Grouping x- and y- coordinates together\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "\n", "#Plotting the vector and coordinate system\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "plot([-1.5,1.5], [0,0], 'k', linewidth=1)\n", "plot([0,0], [-1.5,1.5], 'k', linewidth=1)\n", "\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "xlim([-1.5, 1.5]); ylim([-1.5,1.5])\n", "legend(['Vector'])\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 58, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAcxrqUeUlYUKAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 58 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Homework 0.4 (b)\n", "Run the code below to check your answer! You can try playing around with the values in `rotation_matrix` to see how it affects the result vector." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "rotation_matrix = [[0, -1], [1, 0]]\n", "vector = end_point = [1, 0]\n", "\n", "#TODO: Uncomment the next line to multiply the matrix and vector\n", "#end_point = np.dot(rotation_matrix, vector)\n", "start_point = [0, 0]\n", "\n", "#Grouping x- and y- coordinates together\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "\n", "#Plotting the vector and coordinate system\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "plot([-1.5,1.5], [0,0], 'k', linewidth=1)\n", "plot([0,0], [-1.5,1.5], 'k', linewidth=1)\n", "\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "xlim([-1.5, 1.5]); ylim([-1.5,1.5])\n", "legend(['Vector'])\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nqAAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Homework 0.4(e)\n", "Here is the code to rotate the image by theta. Try choosing different values of theta to rotate the image by that amount." ] }, { "cell_type": "code", "collapsed": false, "input": [ "figure(figsize=(10,10))\n", "\n", "#TODO: define theta in radians. You can use the constant pi that is predefined in numpy.\n", "#theta = \n", "rotation_matrix = [[cos(theta), -sin(theta)], [sin(theta), cos(theta)]]\n", "\n", "#Only for making the legend\n", "plot([10,20], 'r'); plot([10,20], 'g'); legend(['Original', 'Rotated'])\n", "\n", "#Plotting the coordinate system\n", "plot([-3,3], [0,0], 'k', linewidth=1)\n", "plot([0,0], [-3,3], 'k', linewidth=1)\n", "\n", "#Plotting each line of the house, and rotating each separately\n", "start_point = [0, 0]\n", "end_point = [1, 0]\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "start_point = np.dot(rotation_matrix, start_point)\n", "end_point = np.dot(rotation_matrix, end_point)\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'g', linewidth=2)\n", "\n", "start_point = [0, 0]\n", "end_point = [0,1]\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "start_point = np.dot(rotation_matrix, start_point)\n", "end_point = np.dot(rotation_matrix, end_point)\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'g', linewidth=2)\n", "\n", "start_point = [1,0]\n", "end_point = [1,1]\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "start_point = np.dot(rotation_matrix, start_point)\n", "end_point = np.dot(rotation_matrix, end_point)\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'g', linewidth=2)\n", "\n", "start_point = [1,1]\n", "end_point = [0.5,2]\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "start_point = np.dot(rotation_matrix, start_point)\n", "end_point = np.dot(rotation_matrix, end_point)\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'g', linewidth=2)\n", "\n", "start_point = [0,1]\n", "end_point = [0.5,2]\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'r', linewidth=2)\n", "\n", "start_point = np.dot(rotation_matrix, start_point)\n", "end_point = np.dot(rotation_matrix, end_point)\n", "x_coords = [start_point[0], end_point[0]]\n", "y_coords = [start_point[1], end_point[1]]\n", "plot(x_coords, y_coords, 'g', linewidth=2)\n", "\n", "xlim([-3,3]); ylim([-3,3])\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "(-3, 3)" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAk8AAAJPCAYAAABlxzBuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuQFfR99/HvWfFGQLIERbkIXkgERBe1EhwlSywmxWKM\nGseoeIlP7WQa+9iqiSaTAYlCTCDxktGnaWtNk0jb2MegJllLsattGmuN4hitUVCU6zyuEXAVC+zu\n84c9Gwm3/e45Z8/u2ddrZmcWOJcfJ+uZdz57OFvo6OjoCAAAuqSu2gcAAOhLxBMAQIJ4AgBIEE8A\nAAniCQAgQTwBACSUFE/vvvtuTJkyJRoaGmLChAlxww03lOtcAAC9UqHU93l65513YuDAgbF9+/Y4\n9dRTY+HChXHqqaeW63wAAL1Kyd+2GzhwYEREbN26Ndra2mLo0KElHwoAoLcqOZ7a29ujoaEhhg8f\nHtOnT48JEyaU41wAAL1SyfFUV1cXy5cvjzVr1sRjjz0Wzc3NZTgWAEDvNKBcNzRkyJA488wz48kn\nn4zGxsbO3z/66KNj5cqV5bobAICKOeqoo2LFihV7vExJy1NLS0ts3LgxIiK2bNkSS5cujcmTJ+9w\nmZUrV0ZHR4ePHvyYM2dO1c/Q3z485j3/ERFVP0N/+/B17jHvDx9dGXxKWp7Wr18fl156abS3t0d7\ne3vMnj07Tj/99FJuEgCgVyspniZNmhRPPfVUuc4CANDreYfxGvT+15zRMzzm9Ae+znuex7x3KvlN\nMvd6B4VCVPgugH7IcwtQCV15binbv7YDAMpj6NCh8eabb1b7GDWtvr4+fvOb33TrupYnoE/y3EIt\n8/Vdebt7jLvy2HvNEwBAgngCAEgQTwAACeIJAKi4BQsWxB/90R+V/bJ7U1dXFy+//HJZbqvIC8aB\nPslzC7WsL3x933PPPbFo0aJ4+eWX46CDDopPf/rTsWDBghgyZEi1j7aDurq6WLFiRRx55JE7/L4X\njAMAPWbRokVx/fXXx6JFi2Lz5s3x+OOPx6uvvhozZsyIbdu27XT5tra2KpyycsQTANBlmzdvjrlz\n58Z3vvOdOOOMM2KfffaJMWPGxD/8wz/EqlWr4gc/+EHMnTs3zjvvvJg9e3YMGTIk7rnnnpg7d27M\nnj2783b+9m//NsaMGRPDhg2Lm266KcaOHRuPPPJIRMQOl121alXU1dV1Xv7ggw+O+fPnd97OE088\nEVOnTo36+voYMWJEXHXVVbsMuHISTwBAl/37v/97vPvuu3HOOefs8Psf+MAHYubMmbF06dIoFArx\nwAMPxGc+85nYtGlTXHTRRVEoFDov+/zzz8ef/MmfxOLFi2P9+vWxadOmWLduXeefv/+yRT//+c/j\nxRdfjGXLlsW8efPi17/+dUREDBgwIG677bZ444034he/+EUsW7Ys7rzzzgr97d8jngCgLyoUSv/o\nhpaWlhg2bFjU1e2cEIcddli0tLRERMQpp5wSZ511VkREHHDAATu8jui+++6Ls846K0455ZTYd999\nY968eTsE065eczRnzpzYf//947jjjovjjz8+li9fHhERJ5xwQpx88slRV1cXY8aMiSuvvDIeffTR\nbv3dusqPZwGAvqhKLygfNmxYtLS0RHt7+04BtW7duhg2bFhERIwaNWq3t7Fu3bod/vzAAw+MD33o\nQ3u830MPPbTz84EDB8bbb78dEREvvvhi/Pmf/3n88pe/jHfeeSe2b98eJ510UvrvlWF5AgC6bOrU\nqbH//vvHP/7jP+7w+62trdHU1BS///u/HxG7/tZb0YgRI2LNmjWdv96yZUu88cYb3TrP5z//+Zgw\nYUKsWLEiNm3aFDfffHO0t7d367a6SjwBAF02ZMiQmDNnTlx11VXx8MMPx7Zt22LVqlVx/vnnx+jR\no+Piiy/e6z/1P/fcc+PBBx+MX/ziF7F169aYO3dut9+aobW1NQYPHhwDBw6MF154Ie66665u3U6G\neAIAUq677rqYP39+XHvttTFkyJD46Ec/GmPGjIlly5bFfvvtF4VCYafl6f2/N3HixLjjjjviggsu\niBEjRsTgwYPjkEMOif3333+nyxZ/vTsLFy6Me++9Nw466KC48sor44ILLujydbvLm2QCfZLnFmpZ\nf/v6bm1tjfr6+lixYkWMGTOmR+7Tm2QCAH3Kgw8+GO+88068/fbbce2118Zxxx3XY+FUKvEEAPS4\nBx54IEaOHBkjR46MlStXxt/93d9V+0hd5tt2QJ/kuYVa5uu78nzbDgCgh4gnAIAE8QQAkCCeAAAS\nxBMAQIJ4AgBqTnNzc4wePboity2eAIAuGzt2bAwcODAGDx4chx56aMyePTs2b97cpes98sgjXb6f\nyy67LL761a+WctSKEU8AQJcVCoV46KGH4q233opnnnkmnn322bjpppu6dL1aee8q8QQAdMvw4cPj\njDPOiOeeey4i3nvX8IkTJ0Z9fX1Mnz49XnjhhYiImD17drz22msxa9asGDx4cCxcuDAiIj7zmc/E\nYYcdFh/84AfjYx/7WDz//PMREfHd73437r333vjGN74RgwcPjk996lMREbFu3bo499xz45BDDokj\njzwy7rjjjs6zbNmyJS677LIYOnRoTJw4Mf7zP/+zYn9v8QQApBQXpDVr1kRTU1NMmTIlXnzxxbjw\nwgvj9ttvj5aWlpg5c2bMmjUrtm/fHt///vfj8MMP71ysrr322oiIOPPMM2PFihXx+uuvxwknnBAX\nXXRRRERceeWVcdFFF8WXvvSleOutt2LJkiXR3t4es2bNismTJ8e6deti2bJlceutt8Y//dM/RUTE\njTfeGK+88kq8/PLL8fDDD8f3vve9KBQKFfn7+/EsQJ/kuYVa1pWv78KNpYdBx5z8f0Njx46NN954\nIwqFQrS2tsanPvWpuO+++2L+/Pnx3HPPdf6Muo6Ojhg9enTce++9MW3atDjiiCPir//6r+PjH//4\nLm9348aNMXTo0Ni0aVMMHjw4Lr/88hg1alR87Wtfi4iI//iP/4jzzz8/Xn311c7rLFiwIF566aW4\n++6746ijjoq77rorzjjjjIiI+Mu//MuYN29erF69epf3V8qPZxmw94cJAOhtuhM+5VAoFGLJkiXx\n8Y9/PB577LGYNWtW/PKXv4z169fH4YcfvsPlRo8eHWvXrt3l7bS3t8eXv/zluO++++L111+Purr3\nvhnW0tISgwcP3unyr776aqxbty7q6+s7f6+trS2mTZsWEe99S+/9/7ru/WcpN9+2AwC6Zdq0aXHV\nVVfFl770pRgxYsQOq1BHR0esXr06Ro4cGRGx07fQfvjDH8YDDzwQy5Yti02bNsUrr7zSeb1dXf7w\nww+PI444It58883Oj82bN8dDDz0UERGHHXZYvPbaa52Xf//n5SaeAIBuu/rqq+OJJ56IadOmxU9+\n8pN45JFHYtu2bbFo0aI44IAD4pRTTomI915cvnLlys7rtba2xv777x9Dhw6Nt99+O7785S/vcLvD\nhw+Pl19+ufPXJ598cgwePDi+8Y1vxJYtW6KtrS1+9atfxZNPPhkREeeff34sWLAgNm7cGGvWrNnh\nxeTlJp4AgG4bNmxYXHrppfHtb387fvjDH8ZVV10VBx98cPzkJz+JBx98MAYMeO8VQjfccEPcdNNN\n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\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }