{ "metadata": { "name": "", "signature": "sha256:6df457da3dcbe607a894a72d85b091b46acbb5058e13449c37b3c7ac703ec11b" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Basic Operations Solutions" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sympy import *\n", "init_printing()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "For each exercise, fill in the function according to its docstring. " ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Substitution" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write a function that takes a list of expressions, a variable, and a point, and evaluates each expression in the list at that point." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def evaluate(exprs, x, x0):\n", " \"\"\"\n", " Evaluate each expression in exprs at the point x = x0.\n", "\n", " >>> x, y = symbols('x y')\n", " >>> exprs = [x**2, cos(x), x*y]\n", " >>> evaluate(exprs, x, 1)\n", " [1, cos(1), y]\n", " >>> evaluate(exprs, y, 0)\n", " [x**2, cos(x), 0]\n", " \"\"\"\n", " return [expr.subs(x, x0) for expr in exprs]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "x, y = symbols('x y')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "exprs = [x**2, cos(x), x*y]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "evaluate(exprs, x, 1)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\begin{bmatrix}1, & \\cos{\\left (1 \\right )}, & y\\end{bmatrix}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAI4AAAAZBAMAAAAVsAvAAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAu90iEKt2me/NZkSJ\nVDK0ujvUAAAB/UlEQVQ4Ea2Vv0vDQBTHv6mxsaaNPxBcQ9FNMEtdGwfBQdBFJ5FOFRd1UfwFFuyo\n2M01swoKgriIQVAHUfofWJwEEQV/gIjiu4sXk9LTQvugd++9+77P5d6lLdqTFmo1PdkDs1YIr09V\nyzn0ttuR7PrD6ZAs+2ljhFxSaSWaK5jH6X+psBRKxWyAqwqhtB9wzsDov5ws4Kl2/dKQ4z1P9F9O\nnqq4ajBU7gdVcnR2HM5Rin5t0JFxUitXaJifLOJwe4r0mksD58Rng+WAeuEibUPCMT5wV7q1Ma62\nIkKFMYcGzkmUNTquP2EGMk6sFXuldSB934U4IZr2BUfPkRewB81Em5STdgH9E2iZ3RwrUVWLzzGe\nAhBy7aYM3qScEwdo/qD6wlDv658c3NjGl5Tz6AIJ9jwTFvaKdC76eP0pPxcWEc0FOSopfYsUAIf6\n83icgZYBFIeWeJ+bCwgpsQVlJMgZNkkqzPhE1Dqy0JnIQ7EAftvi3kNKzIE1gd+7tvC+hMFnAWFz\nav4axviZo59nLynUTXqHmAqx/TJlf3aVNvLeH1aJAz5KhjWRZ9+LMuUppQIcR0grzbsieU6OIwKa\nG011g6ZqOex3g5lKFxDiRFzFpdQvJ0qR3BroTpg1Ui9CykR2meV/OSz6w/q8tWmJpGqOpF6k68dJ\n1uX/q/sbt9B8wH311agAAAAASUVORK5CYII=\n", "prompt_number": 5, "text": [ "[1, cos(1), y]" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "evaluate(exprs, y, 0)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\begin{bmatrix}x^{2}, & \\cos{\\left (x \\right )}, & 0\\end{bmatrix}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAJoAAAAaBAMAAAC9YVj8AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAu90iiXarVJkQZu8y\nzUTTeIQ7AAACd0lEQVQ4Ea1VS2hTQRQ9TfKM+fQlCKLoJkRRdKFvoXGZtzB+QCQLK1WQVloXQhfd\nqJuWVmgWgkKULAoiPtSVIC2iFDfm6cKNYLJwowsRQVwUsfiFIq33dnIzmXysDV7I3DP3nDkzb97M\nCyARunxeYPd5Q9pRg6/gWvcuPNJOb0dKLLYh6wvuMme02xxuv1/Fxc4rQbSDsMENmCiu4vZC+KsC\nJE/3cclwey1cp/xGiF4Bkvfghm+6hQaF65Ct2oMCUdeUWClYVdPtnqlo7cXqOxGZNdnAIOxvhpvt\nxn1T09z7rAubNGSUmET8V80tmBu6UMCzSxfrcyttZuowgoX+UXy8f4YrU/Tbd/JAfx44ohTSZl3E\nf9TcSrjjPUR5eVlIleNLeOk/L2I4kkSAS2+BiBvdHUsB40oiLbt9r7m5GMCYEDr3JjHjPwKyr3Yh\nxOWnoGwthH1gXssYNboVcdYkVY8ksGk3EpPlcz6XlmhtWJdkWOFGB7vJkwKPNaHRF4+OAjkkqqW9\nP7lMGIjRrrW48VtYlHca/E2TtkTFBcK8thEHM6NEz7GELnOx5UnphITlhNy1FnCKlWBhPQJVwKN9\nq3zKY32eyltorc4ALBI9MKV0ekMptbbwYs9skNW0LV9XkmroBFnOvIPN4SfocahGx2LC24r9K9CQ\nYidu+sotsvHowdPKIFLmURKZwjHEhw95dq7vONc+ANdPlHIewXcwpdO5Eaoat576dqMb9Y2I1Um+\nWW2kzW5RY3hTR9/1UJ62sIml7prcUP8i3aKh/+BGc/4lMsINEWgjbV6byNvn2puH5bfn1+bW3kNX\n/7dbWv5P9RRdIju94w/Gx4QwEvm0agAAAABJRU5ErkJggg==\n", "prompt_number": 6, "text": [ "\u23a1 2 \u23a4\n", "\u23a3x , cos(x), 0\u23a6" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write a function that computes \n", "\n", "$$\n", "{\\underbrace{x^{{}^{.^{.^{.^x}}}}}_\\text{n copies of x}}\n", "$$\n", "\n", "That is, `x**(x**(...x))`, with `n` copies of `x`. In [Knuth up-arrow notation](http://en.wikipedia.org/wiki/Up_arrow_notation), $x\\uparrow\\uparrow n$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def uparrow(x, n):\n", " \"\"\"\n", " Computes x**(x**(...x)), with n copies of x.\n", "\n", " >>> x = symbols('x')\n", " >>> uparrow(x, 3)\n", " x**(x**x)\n", " >>> uparrow(x, 1)\n", " x\n", " >>> uparrow(x**x, 3)\n", " (x**x)**((x**x)**(x**x))\n", " \"\"\"\n", " expr = x\n", " for i in range(n - 1):\n", " expr = x**expr\n", " return expr" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "x = symbols('x')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "uparrow(x, 3)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$x^{x^{x}}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAB0AAAAUBAMAAACDsiv0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIol2q1SZEGbd7zK7\nRM2RoJmtAAAAjElEQVQYGWNgQIAdSj0IDpDVsIcJhc9gjMpVOM0BF1D2NdlwQqkbxmcq8OEKgHGA\nNC/DCyQeiPkRlc+9gBtZYD/TAxS7a0yT1aHyQiaiZgYItewKHDO4JiD4TAzMH1g3IPjsDCwHEDwQ\niwtJN4gvv4GhAERDAIeAPQMzEj++4RSDMEwSSNcYFSk3IPgAm1gXfwEYbXEAAAAASUVORK5CYII=\n", "prompt_number": 9, "text": [ " \u239b x\u239e\n", " \u239dx \u23a0\n", "x " ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "uparrow(x, 1)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$x$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAJBAMAAAAWSsseAAAAKlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADmU0mKAAAADXRSTlMAIol2q1SZEGbd7zK78ZNZ0gAA\nAEJJREFUCB1jYBAyETUzYGBX4JjBNYGBiYH5AusGBnYGlgMMIMBlAKZkNzAUMHAI2DIwFzDENpxi\nEGZgqDEqUm5gAAAhlwo0cLKzVgAAAABJRU5ErkJggg==\n", "prompt_number": 10, "text": [ "x" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "uparrow(x**x, 3)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\left(x^{x}\\right)^{\\left(x^{x}\\right)^{x^{x}}}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAFQAAAAfBAMAAACL2vddAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARHYyq80Q75mJZlS7\n3SINk/qdAAABtklEQVQ4EY1SsUrDUBQ9bdqUpKUWUVwUgnSwdDCDIk6tdBWpi4NTFgehQ52d1Mkt\nFCzSKSAO3YoguBlcBAXp5OBU1EUcrD8g3pf3XpO0Tekdcs859yQ5uS/AVKW0W+5URkBXXHtKK+LG\ntE4tYzpjvR+e6uXrAKxn2i1znDXLY3n5NifnzIj7WT4th0k5b7jVy6dWEZmTbC/cyvNVEJWTuer0\n3vxshd+wzNv4q1IFmgn3mE/nAqaYIUhjK2/q9BWxMpBLOkJdF521NYE1azvVwRmQLpMy0xNy0Lon\ntBj2CSXpqS71DZhcX+SNXdnyRP1R122oXSj9C9hcbcspkLIkVuoKoNaBV6gPdwWhn8gxMC9hSatq\nhJ+BopRYr/rknOBX/nvFqBVPm4QvgZo/RdrwCX2Lautvqa6QbmkFjj9O+BBHdDSI99Om0BaoX/lz\n9iJZv/RUJFxJURqgEUBWWoMx0CdYvaP+MWEJMwsQUU+09t4q4paYX0f4SKbl3DuPeJcO4lG1RHss\nHDYcOd+VYLSneiGNHWxU0f8RLM0IsiEsf0IuHwxNQ/QzxHZCbIhkjYAQl+cb0CT8B+zTTgl2dwsa\nAAAAAElFTkSuQmCC\n", "prompt_number": 11, "text": [ " \u239b \u239b x\u239e\u239e\n", " \u239c \u239dx \u23a0\u239f\n", " \u239c\u239b x\u239e \u239f\n", " \u239d\u239dx \u23a0 \u23a0\n", "\u239b x\u239e \n", "\u239dx \u23a0 " ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write a function that takes a function and nests it within itself n times. \n", "\n", "For example, if we started with $x^x$, and $n=3$, we would end up with \n", "\n", "$$\\left(\\left(x^{x}\\right)^{\\left(x^{x}\\right)}\\right)^\\left({\\left(x^{x}\\right)^{\\left(x^{x}\\right)}}\\right)$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def nest(expr, x, n):\n", " \"\"\"\n", " Nests expr into itself (in the variable x) n times.\n", "\n", " >>> x, y = symbols('x y')\n", " >>> nest(x**x, x, 3)\n", " ((x**x)**(x**x))**((x**x)**(x**x))\n", " >>> nest(sin(x)*cos(y), x, 2)\n", " sin(sin(x)*cos(y))*cos(y)\n", " >>> nest(sin(x)*cos(y), y, 2)\n", " sin(x)*cos(sin(x)*cos(y))\n", " >>> nest(x**2, x, 1)\n", " x**2\n", " \"\"\"\n", " origexpr = expr\n", " for i in range(n - 1):\n", " expr = expr.subs(x, origexpr)\n", " return expr" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "x, y = symbols('x y')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "nest(x**x, x, 3)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\left(\\left(x^{x}\\right)^{x^{x}}\\right)^{\\left(x^{x}\\right)^{x^{x}}}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAH8AAAAwBAMAAADKnbiZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdma7VN0Q7zKZRM0i\niau2leyDAAADCElEQVRIDaVVP2gTURj/0rteLpe7JGoRQawHUhQxGJ0UHNJNt0ziGOjQSRpFnRyC\nDg4iaQcXpxRHQYKbW9wEh6YFu0ghUpAiDrFIqaDg93333t17l8vpmTd83+/3+/68fHfvXgCmWI92\nzkxRjaX+Y2+6BnBkyvrBlZksHd5zMs9dByB/eedchgbugJN57mf/M78hNqO5vS5kn38xaMBzWz3I\nOD8WXwsaBHPvZZyfalsAm1/n20Eb/f3l/EBNttYX1u0eeM3dfD1Ieq3lHtPYGHnFijMEB97I4FMJ\nyJsNlY3jXI2zhmh/yajWYLkt5bi3q1tUzPs6iOyWLVJeqqlXVaLhGbs2QGGjj8ZqQMfryY+nquQ5\nBwqJwVyFhMKQ7E1YmlvbJoTrReDYFlcVokPPaPuouDz6nBrrKaTTV0gEvfn1PaO61SblLZklMmKZ\n/MsEeS5V3W+XavekcpGA6UsKUIogwB0m60KijeE8km7RFxLASp2g8unKR0Gyfch2SBYXb1xoIyr3\n0QRrdvJjAsiNKKnYDFLFxvSMnkBbaFBqSJTgDQ5GHwdvXAV79AkGMj3YRLKYn62R8CBUeeNlsC7d\nONWUosNjShbz5VUUnJ5QxcZGXcuyf2hUJysV5IUBHpfNb4trYmOPukbL+h7hMbTho0Sv7DYs+PdF\n2JS/SPDfwie5jo9qvgv4yE7DdZHhtAQQ7qdONdapIy13AZqwGwbsUQgZ/FMDeSapIlMDHwv4qnMP\nwaJqXFlG2KhggeEDXMDjcpyqcc1keIjlARbgazP3jZZLzWghV5e7r7IYzlOu08Cjt71zVMaKXYnY\npx6kYo1yHmoFsKxTM7yNdZ1ZoUVOvSSRbnIoNN4ohOPAPCAt/Jw5Af87tWXEuBa0+ENxh6pY6qsM\nz1lF5zrjGxPeqeIJlSCecO+KrLOx7AT6MUGLpJVuhCeguxP0QPZqqWEMmq3UDCvtvuLKWT+1AZxM\nDwMs/CVB+QdJzHRjx3Qsybo1JmlCsa7RBPKhnyBG0ucITkBud0KAZSs1Cn8Aj4KUD33G8usAAAAA\nSUVORK5CYII=\n", "prompt_number": 14, "text": [ " \u239b \u239b x\u239e\u239e\n", " \u239c \u239dx \u23a0\u239f\n", " \u239c\u239b x\u239e \u239f\n", " \u239d\u239dx \u23a0 \u23a0\n", "\u239b \u239b x\u239e\u239e \n", "\u239c \u239dx \u23a0\u239f \n", "\u239c\u239b x\u239e \u239f \n", "\u239d\u239dx \u23a0 \u23a0 " ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "nest(sin(x)*cos(y), x, 2)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\sin{\\left (\\sin{\\left (x \\right )} \\cos{\\left (y \\right )} \\right )} \\cos{\\left (y \\right )}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAN8AAAAVBAMAAAA0pCbNAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARHZmzRC73YnvqzIi\nVJlz8rUYAAADf0lEQVRIDcVVS2gTURQ9k2Ri0kliEKG66hBF6ocaPwt3RqQuJQspLS4sFsSKYkAL\n7hy7sasSha78BUVcKDa4cBGVBFdSUYOI4KpRBIsitn5AU2097715k9+4dmDy7r3nc+fdvEyA/36t\n6ngCw1alYLIDkgVXIeB/UAxbKbepBdZPN+BiFWRcduQiP0o6/KSDltVVAAL2p2iHRFEpjaWGQygr\n455ao9Svw5AOWlZXAQjYn+I5ZFylaiKTlCqZLsIlYOs46OioeXUVnCdhX0rDYVezUMVTHaWo9zhm\nvgNkwVMI2JfScBhSBrEHnpGRUeHTolda7UU40Qi9SCtYELAfpeEQrsJYtz0zU8f9q/c22OQnHGDV\njvWx6YI1+il1mBXM8X6y6VmfDUwyjN2dqOJ56rNUMheKwTnEfijYj0IHc9LBiywiNQwAORwD9qXN\nBcpDaZjDWIFwAaERHEqytJd0J3gqmgNeMS0nrUvWGLocqZQKOD0IzCvYj0KHiDGPrUA8g+4sHNFw\nFPhKu2gSxhgiomE4j5U2SxdIp1+cQ17LdB+Ci1EHsUWplAqr+gHhYQX7UejwKJHDEcDII1rfDNGQ\nmWi4knu6dr0oGw6rhty4iS76cXecqPjN9lSBJamUChMXJZWwL4UO2agt/K15mOeXC20NB8/W2xpy\nHzbNhJvxjetuPtZ3qVSPGP+BMgfgNuygsCFms9aibPgQwT9NDaNVWBXsroqRuju8Ilq9KCIrZybf\nSrPcYV0q+SiMExlsJEmMk3cHRTi8RyAvR/oSeNfUMJxG3EbCbmo4wp9zZSsCbLiTytNM+R1aC1IJ\nUIFQTVhI2I9CB+wXQ0MwgzdZHG9qyHMbn0K4QlTvkAd9Nj2Kx1SJM1+uYotxGeGaVPJA1bjDghyj\ngP0oovYRPXwyktekepOl5Zul5duvf1Fq5GCMp85Z0/WD0/VHJ6+S2g0M9A6Ok449vGN3e4soTdyQ\nSuZUwDzc99uF/Sh0wEDqS4WjSDJsvS63psyiFV3yfW9BKiKibV7dmu6tyuE88yGv5gWdr9fG+zhi\ne7SmgIpbGKpyXoR9KXToypni6Iw36dzQ+7NpQP06PKCDlpWKMzjKkoD9Kf1Y4YQd7j9DStsVK7QV\ngBlduaODlpWKl33iuxGwP2UG8dRbol0VfrRf4jS2XjFb5YFia11nrkLA/6BoB77U/gKKWQrvdJkP\n3wAAAABJRU5ErkJggg==\n", "prompt_number": 15, "text": [ "sin(sin(x)\u22c5cos(y))\u22c5cos(y)" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "nest(sin(x)*cos(y), y, 2)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\sin{\\left (x \\right )} \\cos{\\left (\\sin{\\left (x \\right )} \\cos{\\left (y \\right )} \\right )}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAOEAAAAVBAMAAABCnpRGAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARHZmzRC73YnvqzIi\nVJlz8rUYAAACi0lEQVRIDcWVMWgTURjH/5f0zl7uEoMIdWtIUQoKjS46CB6IHeWmoquCoDhk0P0o\nSDOVKIiDVQKii1KKg0NUGhw7aOggiENrcRBBTK2DJtj4f+/uXi71ILksPnh5/+/L9/99dy93L8D/\nHweCSzgefyla4Z/8kA4BDKHWrx7FqgU6t9JLRlRd6uQOQABDqLbbQ465oXZC0beek1FyB21OMAVB\ndQGKIpbjVCiia6rgR8kdgADGQO8q/kWlIsKMtArSQzsEMIDaLxVTc5Q0mkr2xEFfJnfQJ4Cc2tQJ\nZ62NFw+fHykwm/MAe/7Z+hYwvsnYXq408bb4TdYx/oIRHPqih3euBBI6B5RxDZgt6dskjpWACzhZ\nugdkHcareeu+dRMZT9YBZzGCY1xrYcYHEjrhwhMdrwI/2MHMg/EMPvJeqoxnke6YHuyOrANuYwTH\n61wZV3wgoWb7KERHZkTH/ezo4gkVrBY3Vbypk01gV9YB3IfkDtcsCLgAcuoL3dqejsCdsKO2Q3WG\nV/FT1smOyR3YcK2O6vgK6T+Rjibvh3sI3d8EebZsMNeWdcADILkDn5Gqql1dB7YiHY0ScDrVwmEg\n7bD5Da78Ha1tWQdcBpI7cB5GzQcS+sHF9UhHPr3ZHaNqF4K3Y7WJY9oSjE1ZByxiBAe+YpJ3QraY\nh4rT+Xr3cb379P1vZrQy9Eu3KlPgi5Lnh708vYJ65ZGsYzyBERyYK35v+EAJJScylpSOP+Ua6vtQ\nDOVYYHXklAu9Yu0dtfPRdKjTXqjUOtiRKet84iCAMVD1b6U7ihkV/r9VNDPYsc8zPEAA46B2LaBl\nGoHoX9b6Q0aDHdniJ9YJYCz0TYDkURQ3xFO8ZwzpEEDOv750EDecmK+EAAAAAElFTkSuQmCC\n", "prompt_number": 16, "text": [ "sin(x)\u22c5cos(sin(x)\u22c5cos(y))" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "nest(x**2, x, 1)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$x^{2}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAUBAMAAAB/pwA+AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIol2q1SZEGbd7zK7\nzUTvhYErAAAAgUlEQVQIHWNggAC1IwVQFlsB2wUok1OA8TeUyRXA/g/KZGBg/Q5n8irAmSpwFgdC\n8BHDbqgw99FQdyiT6///DwwMQiaiZgZgEXYFjhlcE8BMJgbmD6wbIKIMLAfADBDBBVEJYspvYCgA\n0QwcAvYMzBBmfMMpBmGwIEONUZFyA5gJAEICFuq4U3XkAAAAAElFTkSuQmCC\n", "prompt_number": 17, "text": [ " 2\n", "x " ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write a function that replaces all trig functions in terms of $\\sin(x)$ and $\\cos(x)$. You can assume that the trig function will be of the form $t(x)$, where $x$ is the variable. The trig functions implemented in SymPy are\n", "\n", "$$\\tan(x) = \\frac{\\sin(x)}{\\cos(x)}$$\n", "$$\\cot(x) = \\frac{\\cos(x)}{\\sin(x)}$$\n", "$$\\sec(x) = \\frac{1}{\\cos(x)}$$\n", "$$\\csc(x) = \\frac{1}{\\sin(x)}$$\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def trig_rewrite(expr, x):\n", " \"\"\"\n", " Rewrite all trig functions t(x) in terms of sin(x) and cos(x)\n", "\n", " >>> x, y = symbols('x y')\n", " >>> trig_rewrite(tan(x), x)\n", " sin(x)/cos(x)\n", " >>> trig_rewrite(tan(x) + cos(x)*sec(x), x)\n", " sin(x)/cos(x) + 1\n", " >>> trig_rewrite(cot(x) + sin(x)*csc(x), x)\n", " 1 + cos(x)/sin(x)\n", " >>> trig_rewrite(tan(x)*tan(y), x)\n", " sin(x)*tan(y)/cos(x)\n", " >>> trig_rewrite(tan(x)*tan(y), y)\n", " sin(y)*tan(x)/cos(y)\n", " \"\"\"\n", " return expr.subs([(tan(x), sin(x)/cos(x)), (sec(x), 1/cos(x)), (csc(x), 1/sin(x)), (cot(x), cos(x)/sin(x))])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "x, y = symbols('x y')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "trig_rewrite(tan(x), x)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\frac{\\sin{\\left (x \\right )}}{\\cos{\\left (x \\right )}}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAADwAAAAyBAMAAADy2KUxAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARHZmzRC73YnvqzIi\nVJlz8rUYAAACT0lEQVQ4EcWUT2gTQRTGv90k26a7m4QiSA/SJSqIQruioAehK+I9B5GKB0N76kEt\niGdjQBBFiULRg3+CBylYSDyJgmTxJBExiDcPhpwKvaR4ixT9XjYzWdMieOqD2fm99+283fnzBvhP\nM7xoQCKnBzZKGvFO4YYCTLc14qzCpAKkNMH0FCdKimJ9uqCcVEXRp7oi7NGEy4KTxw44taq9tJFf\nEHed7ePhzzMecJ+YKmIMVhXJRVySqZxhqJS4ll4GvtE1rmNcZKuCLEfgAeibXZefm6KL5y/qfbkY\nyZscjYmiKA15zN/ojchA2hNFZDvEXEuSD0Y/FeFLHYUouesh48XkRSARzsKkfJwvuiuwwpjM2fzw\nl/CBkkzMKOdv2rXexVrv/dVn9PcC5w/Nl33iabZRS4cqMlxUFWE/3IhxLxbWqDf0nA7FoamcNQV/\n9Y4XuSaXdXft9z9td/9t29cnB5Gj2xQJ2NVBOLPjqiZ5jCILFMT7vHZOaorBiuYLmoZgBJqtFrG5\nfg9OZ6YltUg3UwKc8trXDoupzR/dxNv6mwJW+7UIJH0WDk74j3jGA7pFzNUfszBeSy2yfnJACbP4\nzjNeYZjJjC0g25ZaZE+5gJck2F1g2ufhZVlmA6nFSAYeKlnuLFdGv5JaZHI2OL/kNpLkYwHg89uN\nfVKLgMVsp8wuDjIpJXsLZjgV4kq/FvuzcX9aFTnOMjE0O3dhr97xpRbpGstILdy6vZ+YzPExak90\nYKdFxXAjyvrFGOgNTQWxqEanOsCJUMfiIPeG2BG2P0Gmoa+aF1EhAAAAAElFTkSuQmCC\n", "prompt_number": 20, "text": [ "sin(x)\n", "\u2500\u2500\u2500\u2500\u2500\u2500\n", "cos(x)" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "trig_rewrite(tan(x) + cos(x)*sec(x), x)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\frac{\\sin{\\left (x \\right )}}{\\cos{\\left (x \\right )}} + 1$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAGAAAAAyBAMAAABR8MP3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARHZmzRC73YnvqzIi\nVJlz8rUYAAACg0lEQVRIDc1VP2gTURj/3V2SNl7+lCJIB+kRHMShBnRwa8S4OGWQUlQwWBw6qAVx\ncDJ2VJQ6FBz8E5yKComTKEgOJ4lIi7gbqkOliwVdAkW/L5fv3pl7fVFc+sHd93u/7/vde+949zvg\nv8Pygkc4Y4ZHtWqq+FrgpgBNnuwo8qTAhABNTirO9gQ7NUHGnK5IObkkKJ7fN0Nub4hwScEoGj9y\nINOou/ObhQtMb9D17tCHKQ+4y+NYJKsYQaqOxBzO84s8ASRrztX0AvAp1syEdQ2jLEgtIe/R+B5o\nbH/P0iInuB6Px0+aPUE1EGzRDNhT5b5WvJmZ2RvdAQGQ9riiF7g+ptd4Sf0ZHnLrahOVnZaU9ZDz\nIoI5wPEPwybBUdbGIruMlB8R0Lv8XJzHW2rUv1ZrsXDTbXTPNrpvrjyirn3AzMHZxSLB43QNj7Qv\nPbqjcVGKKqsjN+opto9mfsYoIDzep1XxXADPPNUJ2tL3XADwsQ9tnSDjBVWbDoeEUSBN0bzLBb+M\nwRv5Wi5fL5dPMdS+JS4Mxu7ddO7bjy+Dq6XxeJ+LuLHsQdMNuHWhlRvLM6TyR07QxxmEyY2lh3Ih\nxOrTCCkdWA5J3ScXFkNglUK4gxu3N+4gsz61BnJl6s3V6GZyY3cLr5ovK1jpuTKQIL8wunGiiunm\nfTK7F+zK5JJjQ9x4lZZgbQP5DrsyZRIY3XiSluCQZedL7MqBwOjG/MfN8gzP2JWplS6jG4+UgCLt\nobWfXRlI8YwmN3a3YfsTPi73XJk23Bnmxu3123BXbhXZlWkx1sK/uvEDUgXxd0cDx6QfGjcOaxGg\njnfEjSP1GMzUhYq4sVDazH8rjqgbBwzffwMEKbxiGjhYZAAAAABJRU5ErkJggg==\n", "prompt_number": 21, "text": [ "sin(x) \n", "\u2500\u2500\u2500\u2500\u2500\u2500 + 1\n", "cos(x) " ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "trig_rewrite(cot(x) + sin(x)*csc(x), x)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$1 + \\frac{\\cos{\\left (x \\right )}}{\\sin{\\left (x \\right )}}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAGEAAAAyBAMAAAC+MqjJAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAuxCrdpnvzWYiVN1E\niTI89kC/AAACwElEQVRIDb1VTWgTQRT+skk22bBJ/aOopwRBT4WqFOxFVo1QD7E9iIigFFGkVqT1\nEkEPOQgiKgaqF0GMEPRmixc95iB6CGKQeJJAJF68mGCsLVIT38xmZhKzu83FPtiZb977vvnbt2+B\n/2KmZU8bLgw6fU0QzwqwXn9VEEICrNMHLEEIlwTy7vW4iGvTAnn371R4p4LdyBir5PAweRrmxM05\nCpyh5/GRR0ct4FM3T+F6IXYl9hL+UgJYIvc1QCuFX+uEnytWN5pHuKWXYLSKcbCjXgaiCDQiVeBt\nN09i4w/BDzlgWW8eZ941WgP+TQzWWdNn5iq57heAFe1ze5QwKQDdYq2zIsbWWMwBzW8I/yZ8iR48\nqSLutiu8AsJ0jthaHjhB5O00zk4iQIpbNHSweg7HzBn4pp7FsYPidKWLmWE8sKGDAMZYqopa5QDe\nJ1MFIhSBRGqknCF4gx5gC289Gj0rgnaWJH6IsVuv8i9qEWfXfqHQ5FT/SmW27+GRgFBE2ASOtiC8\n4xwMoDAsWxKoDqqw+bIdYA3JtcHGKYLp9PWL6TRL1aG2lzWAjdsV7cb9DfbeVfDkyinbM6hC6d0V\nbzqku4rMkajgfMA/3Q4hxm6QWbDKO+fGXFb+UFzgOQGceskCkjJ+TyJvcE6Gd0vUD4zv0meqvfhy\n0tsDWIFeaOLLha+HLAoES4BRHs9TIYpO9RDlgBforcB8RmPlMJQBRnAnM0svWS0n2QwUWYEmxTDw\nk4Z6ATSexAvAnIaj8QJNis22YogUcexl1FjDUQBeoHsVwHkvBS/QSqHniGy06I/guqs8K9BK4csA\ntwMNHKaC7XJyXqCVgq40suqbZiXI7XZZga6199XaB5/+ohdgLkHb9rEyQXsLFagZwGYkxytLJImA\nyr9yt9sDy2zXXA7epzVGOy5/ti/m4mD/M2b8X/0XQmDEFuSdDb8AAAAASUVORK5CYII=\n", "prompt_number": 22, "text": [ " cos(x)\n", "1 + \u2500\u2500\u2500\u2500\u2500\u2500\n", " sin(x)" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "trig_rewrite(tan(x)*tan(y), x)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\frac{\\sin{\\left (x \\right )} \\tan{\\left (y \\right )}}{\\cos{\\left (x \\right )}}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAAAyBAMAAACKS2nVAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARHZmzRC73YnvqzIi\nVJlz8rUYAAADcUlEQVRIDd1WT0gUURz+Zndn/83uukSg0cFhxZCM3CKoQ+BE6TH2UGKnRCFQihaq\nS6dBCj2EbEEEZSKEXTJdOnTYEpeICKFcJIoocJIOkkSrdqjd0n7vzb7ZTVfXzU7+YOd9v9/3+96b\nmTcz3wL/N7blptu3xrSSahIWr/zIdyqDORyI54uFKLGSl5bytCMisMZBUKRibBJAE8BSACFRwyGO\nDCs3gU0VBZMXmTnetNJTDNkNKzeBx1qJ81T0PbFaJM2CzhTBHYaVm2C7lTNeqtmvTWTweODRLpWI\ngE6TdQ9PzQBug5YevfwQ9tAslM65UDvxmAXkPh2TEc63AFF0Ac1heZ5IRxhoxcHwLcCvUe4ygHfJ\ngAZHB04HqXCUppXSaDD5ygh0pu4EFoj0UIdO3Ac6qxjlLgNojEu/4IyhQgVwHRgLRHHG5D2ZejA1\npUxdQeoI7hOCkqaDy6BDVV0WzjZTTScY8aisl/Fyz/LgCjVwgyR59fMh5S81piNU4PxT2H8XqD0p\n0vmykK0zt+EYlOxJsfZd4j/DFjP5KWCmQO0MA4dtadTS/dao0WW45QX4szuFuoOKx+EcNPn3EZwt\nUNM2+RedMZ9q7hgCmhu34c5+FOo+Un9BNS3CdrQqVBdMLA8llh+8/UmpFIXcfrW3hnocQTrIXdfw\nYqb2Sv1oZuz8ABUq6dcS+pbM8ZQVRr+ViCfRKnDgSbKhh37F+Pyz383aVoVdhzcqs3tXjLfeUFlb\npeSFJrh0p07XVIz3DfIewJvMgRXDBPyhT1Qrzj/LddMjWDTYdrBYizfZLX5c3kSkt/i92cTlSaop\ntrMXtuwQroe5sqUkaBIihwBljDZVNNObXXbkXU+OlS1G3vVwrrTaN9KbwuvQV26P1E6uh5e7X+1V\nAfY5LRHjQeWOcglendsjdz1Zt1/wRIE3JaREN8Oe9ehkJ9weueu5YUv74+TlJdU+9geoOgUscXsE\nyPVkeNuYcJwd1g1pkejGIPCd2yNXky+rTFRazf98TdPaGW6PAPtyYzJOtryBM8dFsje6bmWe2yNA\nrmdPNsBG6gNsovVjPIU9Uj+cBrdHvk3T4U6w7/QGdsw3UhdHovcet0eSkOu11LV2hwkeWX/dYqzp\neoz5lyc1/2641WKzl6hZb+iJEo1F6QlRHRagnFG4ni2+WvUH/D4TjdV7Q1oAAAAASUVORK5CYII=\n", "prompt_number": 23, "text": [ "sin(x)\u22c5tan(y)\n", "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n", " cos(x) " ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "trig_rewrite(tan(x)*tan(y), y)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\frac{\\sin{\\left (y \\right )} \\tan{\\left (x \\right )}}{\\cos{\\left (y \\right )}}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAAAyBAMAAACKS2nVAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARHZmzRC73YnvqzIi\nVJlz8rUYAAADMklEQVRIDeVVTWgTQRh9aX7auJsfetEepEuqoggxVkERsasHD55ykJKeLD2IipZe\nBA9S14AoirYUih6kBkEttodUULEqWTz20lBEEA+GIljw0lqK2lrjN9nZ3dmt2RX01oEw733ve5PZ\n2Z8H/N/RbCwXTNZZluvYberSdxMBUoHjL3ZNRJYeL/Jy4Jeth7Ich2pzwFYMZOlQTcl0EE+ZtaDG\nUNyk5mzp2G+WhHnYxOFBhg6Z1JwtHV28JL80NQRUC54jFBixqAEEPVImva1dnVrGs5En2xRqiGtA\nbg7yEnCL6IFvj8toT2sOXc6Pz8wCTRWgE+jDGeBoJrxA7aEMoLWiYR54SxT9QOwiPjn0HPZlblNd\nBTZmoTH3aeArdUeTkMqfEekGWogyd3AFrbqgU/8ufKBd08FEl3eCuU8a7kQSYQwhoQAl7kYgP1AU\ndGTxkEkS7S98tVpwuhFbQqlou+VjWaL26mQcMt2vEFwV3NEynZyKHSTznSshFaWnWe5mOuQV2mBt\n5zPArOCOZOjkKqyAvewP+qGdUPBxosjdTD9IZ7qVzkMF3mdxVnCz2xAvBBbJyO4YnbYWLWDgtc7d\npMcWI4OyYtyxTantycnqg8nq2LsfFdpOHx1FT/onGQ/TD52jutybyh0R9HDPlWttJIWSrME57jLa\nxNYYdAqc1fQaNp9UsY2e/UfoKtMKili2sP1u5K2aDegNvIBTxI/bNRFZb2hYFcscywXMpNkVjf9B\npBLpxtigc+CY3hisoeio2oTroEd0/Y7qP4z59XtsvlfOY69uLHouIBW4XCcWPc2wXiojFr2b16gp\ns2LEosn+crZir87HxnMZIfZYLPqNqbmbkGfTZTTv2UK9cc0Riz5uaQEvis+zGA13o5F63bHobQ91\no6N4B5ieOI8manXHord7WqOP+iqQqNy7zz5O7lj0drdmKGMoyRNq7tKy4XbEore7pFGus/8e09FR\npp3TT4xFb3ejCmToukubFcQVwB2L3m5pFQ16i47e2DAiupF1Yix6uzE1ewPS6PVMIJ+6TK3uWPRx\nu2W/WHT3O7lfLDq73cwvFt39Tu4Xi87uNcwjFn8DeSobC4RXkewAAAAASUVORK5CYII=\n", "prompt_number": 24, "text": [ "sin(y)\u22c5tan(x)\n", "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n", " cos(y) " ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suppose we are working with the series expansion of a function at $x=0$, like $a_0 + a_1x + a_2x^2 + \\cdots$. In this expansion, the terms with higher powers are less significant to the calculation. For example, if we had\n", "\n", "$$1 + x + \\frac{x^{2}}{2} + \\frac{x^{3}}{6} + \\frac{x^{4}}{24} + \\frac{x^{5}}{120} + \\frac{x^{6}}{720} + \\frac{x^{7}}{5040} + \\frac{x^{8}}{40320} + \\frac{x^{9}}{362880}$$\n", "\n", "We might only care about the terms with powers less than 5\n", "\n", "$$1 + x + \\frac{x^{2}}{2} + \\frac{x^{3}}{6} + \\frac{x^{4}}{24}$$\n", "\n", "We will see later that this is can be done automatically using the `O` class, but it can also be done using `subs`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def series_reduce(expr, x, p):\n", " \"\"\"\n", " Remove all powers of x in expr with power greater than p.\n", "\n", " You may assume that there are no powers of x greater than 10.\n", "\n", " Bonus: which functions are represented by the series expansions below (you\n", " can use expr.series(x, 0, 10) to check if you are right)?\n", "\n", " >>> x, y = symbols('x y')\n", " >>> series_reduce(1 - x**2/2 + x**4/24 - x**6/720 + x**8/40320, x, 5)\n", " x**4/24 - x**2/2 + 1\n", " >>> series_reduce(1 + x + x**2 + x**3 + x**4 + x**5 + x**6 + x**7 + x**8 + x**9 + x**10, x, 0)\n", " 1\n", " >>> series_reduce(x*y + x**3*y**3/3 + 2*x**5*y**5/15 + 17*x**7*y**7/315 + 62*x**9*y**9/2835, x, 5)\n", " 2*x**5*y**5/15 + x**3*y**3/3 + x*y\n", " \"\"\"\n", " return expr.subs([(x**i, 0) for i in range(11) if i > p])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "x, y = symbols('x y')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "series_reduce(1 - x**2/2 + x**4/24 - x**6/720 + x**8/40320, x, 5)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\frac{x^{4}}{24} - \\frac{x^{2}}{2} + 1$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAG4AAAAwBAMAAAAC8VJPAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIol2q1SZEGbd7zK7\nzUTvhYErAAAB9klEQVRIDeWVsUvDQBTGXxvbpC2VoHZwkJYqrhYRBxc7VBzrYheHOhUVoUEdBesf\nIDjqYhcnQeji5JJBEZxcBYvFv6AIKiIa3zXX9JLcK21HfUPy3vf7voRe6B0Ar3i78d6nbwyvJM5F\ngoaN8IPo8/TqDJGL6IEvj1cclQMiF11Rf0Sjp7+icgChD49XHFN0Lp4Sje5e0+nclNvqmnaBzGkp\nl9M9FErlDbfiTC9w7fSSJkmsZ+x2dVliBxiZS8xnQMsv+WiLRC2r6SMoqCntJHrcH2HuICjNUE2W\nowlzqzBkylLdiO2PZuQ5AJqwRLIGhjxJEwBNXwRFmqMJe0uxcg+j0tfRhNn3Z3cmK9IcTaT2XsS7\nXkx+z363f6Tfruq2tpfrLxdqf2jlH+SsTrHVmjhldcbaDrDYiBviIOsSrtcfL+v1LHvAH1/P8NY3\nbraB0lMDf2ssixdvccZlZz1b8xgob9hETE7FG2dcGm5/h9aMu3EVmwWTU/HGmSg5/YUB+QYEjkxH\n6TQ268xi92xAuQHBuCmKvLeZBNhS1YBDaQ4xMqpir6BmiBwysjASBCJHyK1nbQOsUTlkVClZPMyI\nHDKyChBI5HL5c9dX5W5kOhGMreMZgWePKeGcSQjAeDq9iUCa40yaq1rWJx67+feKH9vMrw+u/AI7\nh46YdziClgAAAABJRU5ErkJggg==\n", "prompt_number": 27, "text": [ " 4 2 \n", "x x \n", "\u2500\u2500 - \u2500\u2500 + 1\n", "24 2 " ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "series_reduce(1 + x + x**2 + x**3 + x**4 + x**5 + x**6 + x**7 + x**8 + x**9 + x**10, x, 0)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$1$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAPBAMAAAArJJMAAAAAHlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAACGjDitAAAACXRSTlMAuxCrdpnvzWYiHG0BAAAAI0lEQVQIHWNgYBBiYGBQ\nnMTAoGwMJBhYSCVYw6ZHAPUxMAAAQGkI1Fjz0FgAAAAASUVORK5CYII=\n", "prompt_number": 28, "text": [ "1" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "series_reduce(x*y + x**3*y**3/3 + 2*x**5*y**5/15 + 17*x**7*y**7/315 + 62*x**9*y**9/2835, x, 5)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\frac{2 x^{5}}{15} y^{5} + \\frac{x^{3} y^{3}}{3} + x y$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAK4AAAAwBAMAAAB6TlzuAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpnNu0SrdlQQ3e8y\niWbzIQYJAAADoElEQVRYCbVWT0gUURz+Zv/P/nPzUh3CTcmosKSN6NDBQ2V/CEyIbu0G4aEuiweX\nkFLq4CVwAilIzL2HYSdTOiyduoSLgWYkroeIOhlRuSBub3bmzXvzZt64Cs3lfb/v+37fvJnd+c0A\n7AgefJFnlTtSlxY1Q2HI3cnYYO0PKyTIV/F1GhJDEqtFB7+mLCwDoXRy3dAYknkpH+yhyGtNmPsF\nGPLyA8HD/Zq3Q1fHrbMz5NbV3HbepJVUxNqLm7POPbtKJYYow69KDkPDlFA3KZKvvi6qMUQZbg1p\niK4btb+E35wigcoGFRiiDLfGZhEy02Il5SenuMKWHmXLEBhyNfqr8Jm5CS2cc/Vw5PNUctYoGeJk\nG4xWcWBgX38eKx02XijqnnhhMYWJDijVOhIs9nK+rJaTr2JFOytWnKecRdj8TUQXX59CgvgiJZ5z\nYuaJDx9FoMvpEBhfF1SEBF/v/m+CjXlUzKApL8jOckCnYoIvW8s5nJYnUsV8ySELRCSNPUBLCRov\n3LzGVwa2PGSkDTplgXkHrCVTQwjbcq8LLoDz+NO44NAFQplaWSiOVq5gr03oLRyx1QDn8eWC5sMh\neLgyWqvVimP3J5YqHAlyax7ZaoDzqN392z6YQjcrJ0sMO1Ci6KAaI86iqUfqvIPxYanoLbxFS8pw\nPHEap2ANYanH2VVnllH/WxM84nSM9AvX4uJxdtWZxELZVBrpacSjksQWjZ2ukR7ToyzdGjlsTDvW\nT1EiuI4hWpB1B7kT+FGZg2TavfcVcW53uWWyocfmtCOPhe2ARsbLX5dcm4sWps+8Jg23QWajZNqN\nanHrtdyWybzMZE5zp3FC3jNDZNm0a0N4muvewf2Fskm2K5t2JxHI7S53jbyd7kE27dqRrewqN7IV\nmFbykE27scKJ1K5y1e7llQfkh2PT7hLg/658ommfKdBXx/39sHKR1108dNqNVckLrlYzntxQUX3D\n993gC4KVNLJ5gbN5rGn3tI/k+tu/GOZoOWCcQOilZWIDTUVauK1s2oVJbohaIoVDFLquke1y2bSz\n5bqG2UnHfbDLVlXPLQz0WMQ2wPv5Y816bkBTG/j41XviH3Os1RPpueS462nixMEGr8zMXS1xvV4w\nZuzDy1LX9NzLwGpD21BKCGz7VWKcUs+dA2yPr3Qzk9Ud5aaBjDSLF5o6EW3wa0ffbzMir/l2KQ5X\nkC1LVV7wHft1HPHWvhRPyvHD1jNy8X8r/wBo+QwKWt9SIgAAAABJRU5ErkJggg==\n", "prompt_number": 29, "text": [ " 5 5 3 3 \n", "2\u22c5x \u22c5y x \u22c5y \n", "\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500 + x\u22c5y\n", " 15 3 " ] } ], "prompt_number": 29 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Evalf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At the 762nd place in the decimal expansion of $\\pi$, there is `999999` (see the below comic ref: http://www.qwantz.com/index.php?comic=1013). Note T-Rex is counting the digits like\n", "\n", "\n", " \u03c0: 3 . 1 4 1 5 9\n", " \n", " digit: 1 2 3 4 5\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.core.display import Image \n", "Image(filename='../imgs/comic2-1040.png') " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "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\nYII=\n", "prompt_number": 30, "text": [ "" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write a function that takes a symbolic expression (like `pi`), and determines the first place where `999999` appears. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tip: Use the string representation of the number. You can take the part after the `.` by using `split('.', 2)[1]`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "'1.2345'.split('.', 2)[1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "'2345'" ] } ], "prompt_number": 31 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And remember that Python starts counting at `0`, so if you use `str.find`, you'll need to add one." ] }, { "cell_type": "code", "collapsed": false, "input": [ "str(1.2345).split('.', 2)[1].find('345')" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$1$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAPBAMAAAArJJMAAAAAHlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAACGjDitAAAACXRSTlMAuxCrdpnvzWYiHG0BAAAAI0lEQVQIHWNgYBBiYGBQ\nnMTAoGwMJBhYSCVYw6ZHAPUxMAAAQGkI1Fjz0FgAAAAASUVORK5CYII=\n", "prompt_number": 32, "text": [ "1" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "str(1.2345).split('.', 2)[1].find('345') + 1" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$2$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOBAMAAAAPuiubAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpnNu0SrdlQQ3e8y\niWbzIQYJAAAAT0lEQVQIHWNgVDIJYGAQY2D/wcCQycCwnoFh9wSG/AAG+wkM+kAJoMgEIMHzF8Rk\ndgCRKiCCPQFENjEwCjDwKDDwCTBI3b2rBVT8//8vBgBR7Q/Fm5CwxAAAAABJRU5ErkJggg==\n", "prompt_number": 33, "text": [ "2" ] } ], "prompt_number": 33 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And remember that `str.find` returns `-1` if it cannot find the string." ] }, { "cell_type": "code", "collapsed": false, "input": [ "'abcd'.find('def')" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$-1$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAPBAMAAAAMihLoAAAAJ1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAilU6eAAAADHRSTlMAIs3dRLsQq3aZ72YDTSHvAAAALklE\nQVQIHWNggIMwOIuBIfUYgpNejsRh4CCTI2QMAiYMZBsAcxDnrEOzYWwwDQBP9Q53CSxxJQAAAABJ\nRU5ErkJggg==\n", "prompt_number": 34, "text": [ "-1" ] } ], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "def find_999999(expr, limit=100000):\n", " \"\"\"\n", " Find the first place in the decimal expr where 999999 appears.\n", "\n", " Only checks up to limit digits. \n", "\n", " Returns False when 999999 does not appear.\n", "\n", " >>> find_999999(pi)\n", " 762\n", " >>> find_999999(E)\n", " False\n", " >>> find_999999(E, 1000000) # This one will take a few seconds to compute\n", " 384340\n", " \"\"\"\n", " found = str(expr.evalf(limit)).split('.', 2)[1].find('999999') + 1\n", " if found == 0:\n", " return False\n", " return found" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "find_999999(pi)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$762$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAB0AAAAOBAMAAAAh/woJAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMt2ZiWarEER2u1TN\nIu/4jXmTAAAAu0lEQVQIHR2NMQ4BYRSEPxLWim10KlGod4MoKKxkEyU3IBqlLVQaewMSFxAnkDgA\ntQiicAOtiOhIfrOa9+Z7M5NHvhYEPpNaG6d6iKBvjBk4JYbcsD/QgTRJnyMjcMGHNv0QeISMI+3M\ngpMW55BWzFP4Fpab+OTGuSbWq0dZKvHWsJ5YBrqyciuxvZevvyo0hCQH6osX2FIw82D997c4F5iL\nd3E/4ZES78RZ37pzDYKK8sWeRr0e4Rrz4geOEjEwmFr2RQAAAABJRU5ErkJggg==\n", "prompt_number": 36, "text": [ "762" ] } ], "prompt_number": 36 }, { "cell_type": "code", "collapsed": false, "input": [ "find_999999(E)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 37, "text": [ "False" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "find_999999(E, 1000000)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$384340$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAADwAAAAPBAMAAABKPLFCAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMom7VCKZRHbdzavv\nEGbh6M2uAAABHklEQVQYGX2RMUvDQBhAX2NaU4htcNQldBJd3XVycekv0AhSnMTdocHJwaGg4lqo\nmwh1EISO/QOlQ1EomMlVkBYEber3fSeO3vTeveSSu4Pl2iYMa4fIWMWp0ej8AIoJzZSEUib58leV\nuOElwptQbVUylloQ9J0aBS2CNr5mr2t5r+MUhMpdFqf6xWbqfw28FOKOU6NqQmGifgdb+RlU6pZF\nlfZjCp9QWO9CaX4Nz0g2VdL8oW9fnPC2Mt8m1myq9JfDWSXhfeZHLoeO3OLFiIU8HFDMh0g2NdJf\ny3mdSR7Lmke7vd73k6mRbMyfUm1TnoZ1eJRH+k6N5Fg8OZmMZuzf48duUtWIK8YR7DRu4bShV7Ix\nP3ZqNFp7kLl/xw+dmW1XxX384QAAAABJRU5ErkJggg==\n", "prompt_number": 38, "text": [ "384340" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 38 } ], "metadata": {} } ] }