{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#This tutorial introduces you to applying sympy\n", "#calculations using calculus.\n", "#\n", "#You have to execute the early commands sequentially\n", "#so that everything is initialized correctly " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#First import all the variables and functions in sympy \n", "\n", "from sympy import *" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "IPython console for SymPy 1.0 (Python 2.7.13-64-bit) (ground types: python)\n", "\n", "These commands were executed:\n", ">>> from __future__ import division\n", ">>> from sympy import *\n", ">>> x, y, z, t = symbols('x y z t')\n", ">>> k, m, n = symbols('k m n', integer=True)\n", ">>> f, g, h = symbols('f g h', cls=Function)\n", ">>> init_printing()\n", "\n", "Documentation can be found at http://docs.sympy.org/1.0/\n" ] } ], "source": [ "#The symbols x, y, z, t are predefined as real variables\n", "#The symbols k, m, n are predefined as integer variables\n", "#The symbols f, g, h are predefined as functions\n", "#This also turns on pretty printing\n", "\n", "init_session()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#Create some more variables, including integer ones\n", "\n", "a,b,c,d = symbols(\"a b c d\");\n", "i,j = symbols(\"i j\", integer=True)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG8AAAAmBAMAAAA4vNj3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZnbNRO8QMqsimd27\nVInIquLFAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACXklEQVRIDZVVTWjUQBT+4m7TZrtJFsSziyJI\nEZpDQaUIXsWDq4jeNKgFf8DsxfMGPFS9uJeeKjRHQZCCB4VSqJ70thdPHlwPovTkH4oHxffeJJPJ\nbusmQ/vyve99X+ZlZpIFAKtFocK4nmkPZqDktR4oYf1CSYOSLQCHFVrqVjIOgJp6tnuVfCx2fnKc\n/s2x2pC5anEVkz1HraIXUljrVzE23IDktTaFJ1V8uOHFpLc6FM7tanRahZIlrTWZdH7Q/y+u3vzw\nqSCS5NEIdZ9zX+yXaNYvnJ7ALSEY63FcI+BtCFzl/I6Qd4HGOiHq2QuEMYKV6MR+8DAEvDYRR4Sc\nB2a3CDVjuLKpwqZh1uxhPgTsDlVeSfV9H35CyI9R/yOMEVYNDDZiATOn1MHuDeC3iYkS1L/RtTDm\nzEyM25j5rNqIWqA/OgRDTP81dYxfmoQY92qGplsTY7KDcVPLCIjxnWb8IajbXVo9T8uxuEHjWTc1\n9nJjgh7PSIvjji0OGfMhMxaM0mpzC9bYdoy3elrfKBoialNGB6ARaDYF/1scmo4ek8Ymlrr299SR\nXrbNVFp9qhlamamYs9sHloGNkKEeeWPA48vHaC2O6tqZk2jmLbp9XWBQOHJMOOscZewP4XWyBJ5G\nAoxDrgpyyBX8CPNwXyka8WYkl9dKcS9oj7/qcksjBUZf5PxGYno9Is/THT8dUnb5k7ovV5ZGsunR\noLReC6f4qfYEOi8NDonyYmm9Fp4VlL+eujABpE3K93yCtFhe6UtuPy/SEzM7e+FW1Q0mGjKB/Apw\n4nQzqtz1Gsv+Ab5TcNfQ1TkeAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( 0, \\quad \\left(-1\\right)^{j}\\right )$$" ], "text/plain": [ "⎛ j⎞\n", "⎝0, (-1) ⎠" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Test to see that integer variables work as expected\n", "sin(i*pi), cos(j*pi)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sin(x + y)\n", "(x + 1)**2\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANcAAAAmBAMAAAClnRM6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZnbNRO8QMqsimd27\nVInIquLFAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADkklEQVRYCb2WTWgTQRTH/2nSTbdN21jxoIKu\niqV6aaCCHjwEwZNgowcFD7qgBQWxxR7sLVVBrRfTg15UWhBUsGjxW1AoiKDgoQgKomKwKOjFKvUL\n1Pifj93sprPetkMyM+/Nf95v5+3uSwAgkWUXc9vrxV/hTWIcUzkVPLUtRogI3TJ2EehQkJ6+mGEf\ncRRIqnt1ImYW7qFYgv1dYNK/4obdxEgekGdKDsYNA966QJFfjJTih10nIumwuxI/q2WUjESB3VYT\nbNjklL6FppVIeUKmbZHYY8/w+0PvTgeo9oR2zh4aDFn/j3yIEVLlVB+HnTzdtA6Y/luNnDRE1KtW\nrirzZhHy5y6wm5r+N685Ey9b4zjH2ibP7Tuf+TMxeReypGGUWydPuaweDrCrUhGyTqBpQkxq2r2Q\nHYb1hNakESHvdAGr4MvfltA6qi37kO+2w6cNw5J5X+ftjJALGNb46uIkWh1a6WVtuXM/0b/jYIcw\n60Z5ScuHNuiMaZi12sFpF/I5pqjazHLmzaXmk6/rzYIfYD8wjnXAfccWxStD3wEsdm4ooYa1NBdE\n3hM5f7uemOUaNt9X81gjArbRhYPHwCPgC82mSeADPrsvlVDDzjfm8BRoHve364lZrmGvfHVrGcwk\no/9eBQF7CHylWZ8HXKyXsqmurltdXTw13HpHrKanpT/QmeUaVvSFfDqKWVrWVGVUwHjhHkzNpFKf\nDN2lNCuAGWaQq3sWgsk0nkFiJgATeYEIrJoHu4C6AuvBuOf3xgi5gm3yVOgto9ehxXCHAzBxx1/U\nTaNdCT3YY2QGox4Qg1zBqg8Ij9VaZkQWlicihzqNfLpTfzLTNpmiebAxdNPTyAvMqQXdR8gV7Kov\n5dNRP0hrc9uS/EDl2EDl+OtvtJkp60j76nla58H2vrtW4u9SH5pu6xU1RMgv71rHa1vrS7vzyISv\nUi1F1B9c4PJZfvU74cWJknM9UIyWsiAUvC2BMVxZ96mVhpzFnyRZiMsBLadGuZKIQqzbe76j3z0j\nMGaYrlmtKZtx+JYwExbHYDPKlWB3VXeXG0XJqG32RK2Hdmr5JfYicKJm1ShXmie+VIL4Ls9uw7Nd\n2rPQtBIpV38L5JbmXxwWmHbH4GNlBXonY4hsCFmfpbNOEOegrZSM7XNAImKLxFSrV5xUnUD5vzhO\njox9uiQH607sJL7ODzTkrILGihS/WrLZfbFyZPA9ov8HKs/gKlzAFAcAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\sin{\\left (x + y \\right )}, \\quad \\left(x + 1\\right)^{2}\\right )$$" ], "text/plain": [ "⎛ 2⎞\n", "⎝sin(x + y), (x + 1) ⎠" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Create a function using basic python mechanisms, which are\n", "#different from other languages.\n", "#\n", "#The lambda notation is simpler to set up for short functions\n", "#Notice the difference between print output and typeset output\n", "\n", "f = lambda x,y: sin(x+y)\n", "def g(x):\n", " return (1+x)**2\n", "\n", "print f(x,y)\n", "print g(x)\n", "f(x,y), g(x)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\sin^{2}{\\left (x + 2 y \\right )}, \\quad \\sin{\\left (2 x \\right )}, \\quad \\frac{1}{\\left(a + b + 1\\right)^{2}}\\right )$$" ], "text/plain": [ "⎛ 2 1 ⎞\n", "⎜sin (x + 2⋅y), sin(2⋅x), ────────────⎟\n", "⎜ 2⎟\n", "⎝ (a + b + 1) ⎠" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sympy treats functions the same as expressions.\n", "#But you can substitute different values for the dummy arguments\n", "f(x,2*y)**2, f(x,x), 1/g(a+b)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVgAAAAcBAMAAADW/Lq9AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMkS7zRCZdiKJ71Rm\nq90icBAQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAERklEQVRYCdWWT2gcVRzHv7ub3Z3JbiZBvGc9\nFQVJoFhP0hUPHlScQyEYqLuaNL0o7qUbKkgGBfEfdkHMmoO4KEXoQRdFKfbgnjxIlYgVLYL/0NaD\nmFgMVSpdf+///Hlvssf2Heb9/nx+3/f4zbyZAWyj/2RoC8uYv3JMZTcP5YH5MkIjJqZEM3MuUxlV\nFjMVJvAGLkjHj2aaJp629pERuBFLlxs/xtxiotKq9Oq7maAJ/I75SHhBVPjHxNPWPjICN2LpcuNz\npsP8gq2JuZ39BacaQiloeFeEZb/myogSI2aXYFHO3MmsqZBdU2N5LhVIup/qmtpeMpP09pERsBFL\nFsc9YvwRBY7Hg9Ku3m8JxkKXtR10tJk19pMRFUYsq6AijPkN8Kg13trBVCez98/bem2oSv22srCp\nLWXExbIywNbJ5FoxMSVhZ7oAY4/CTz163jVdKI3nUftPxT5TBuptbSojLpaVwZFGpalQPhsxHbYz\np4Bp6tc3wBlNkrE85+mNqfjGENelXewVVXNux20KULMRs8ngEEqLCmVzTEyH7UwwwnwIvAf8qJZn\nFUFUPa0rpXFHo/y3NG899yEVsVF44NxdwjJXI2aTKaZfdUZMSzgYeqY+J+bhMLnZQv/NSJdqQz8G\n74/HMjg9Hu/qvDSMmE2mNEjxRkwnHEx1gFXB7ITl9e8O9LF0HF6mqwJ5tAfBcDcHxE7ozM7e238c\nWHrm2ZOdcreDl+Qt0htlhoMp7uEg54r/4hF82fkVvU9QzTSLIy9eCiXDXTcIEnNmWw/SKSn36peD\npl8bYINrpS4OpvAXHuJksI3X8VZ41huupg6AEfLfFgyP5IHBtjvb2kPltB/6e7XoZXotiFaZNbjl\nYOhjeYnn14AQ9wFlvIvZTqpYuWdCznA3D1zLkZn9CfUrZUwt0oLTHVxV2vHZwdB7kHe22mYwq6ST\nOD/HnPR4ATg8FAxPOUEwMWc2aKJOr0XekIWI7qxlOBjqLN/sx/Ai8Eq6NU9b6oFxyDZr1J0gmJgz\nOzOgzkI0ZBV0wC3DwdAP3tdEF9qoRh/RwTqB0jbusdQD7wA7kuF5J8jF3Fl6Zge1cAPVkBYizDIK\ndobeBqyPr25t/lC8Vtr1RqgsFuXHq9VM6JxH7apkeNwJMrGYjP6USLWLWB4uDA/jFWAFCyMenYQB\n6gMshPRRGI+vl7890T1PJ+xiV35jAvrLiY3i2kpDMmIBF8jEYjL4kxaIDX/tKxxdX3piRL8k/aci\nkZmEoQZguiF4faXHTYyzOmQ38kGdrUX2chZdlalJGEx1UOkltC6g1ZCBZCJBkZMPxrJ+ulL5M82y\n+tebhEErRGGgivn8B+6WfrmTSKSdfNBksZSuVH4wKqklJmHwBRV+r4r5fKA7J/16Ip5x8kGTxShT\nKgPF9cdUahIGPxN9RFXc4HOdPZa19g2+S7m95/j8wc2x2WM3xzb1Lv8HX2pd+I+vG8kAAAAASUVO\nRK5CYII=\n", "text/latex": [ "$$\\left ( 2 x y^{3}, \\quad 3 x^{2} y^{2}, \\quad 2 y^{3}, \\quad 6 x y^{2}, \\quad 6 x y^{2}\\right )$$" ], "text/plain": [ "⎛ 3 2 2 3 2 2⎞\n", "⎝2⋅x⋅y , 3⋅x ⋅y , 2⋅y , 6⋅x⋅y , 6⋅x⋅y ⎠" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sympy has powerful features for calculus.\n", "#Let's consider differentiation first. There are several forms\n", "#we can use.\n", "\n", "ff = x**2 * y**3\n", "ff.diff(x), ff.diff(y), ff.diff(x,2), ff.diff(x,y), diff(ff,y,x)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHMAAAA1BAMAAACAbMmkAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADDUlEQVRIDaVWQWsTQRR+ydrsbrbbTVEExdKA\nZ2lBUVC0Ec9qTwVPKVXRi5BD6S1kET14ECueFIQcPZnowYOnXD0lUvEm2T8g5FIKVq1vdnbevNlN\nmqW+w8z33ve9mZeZyewAGLZwoWH4+R2rbYX51YbSqpRHRmCqU6iSJNesmySH4xpu9TSeiIqRogo1\nhcD/STANvtyYn68kwfeKXGOrOrngzsHBQS1JcZIx7A01BvbeLnMMeAXgmArY9yVyllUEtnreL3JS\nACc6Q6E1ieq6XrfrPyA6A4oDCrk4ENqruG1++/h1MLtwogvNq+CNHcAB4mb2RVI5bu1K+a0bxYNU\n1sAfxSjVnAYgLp7PDYWi0CjszXQF8lavgRMKlDJ7xLhOA9l+VUhsmAtFL9AjCAYSG60fMa4lFBcT\nnuTFfej3jCTpiPKIm4sweE8SWm5F8D2JGV2rBkCcjys0KzdypjEEX9QP4NTgSQxSTX+ZcWL/RTra\n0uoL+Cy1VliUw0mX2jqmag6LddZjbvNH83JbquzrO3I46VL7aRXXkLhnAKWQOAL4iyaa4hYBWliG\nabegVTUj2tNcpwr9gSYkegPP0yHyNYd5dfwFpp3b6ZkB5mkOq+1M1rGULAxqMOxmw3kiQQiLR0wt\nRbDSyDNHVlPahtsyineWYaO0ONB0zLnrKjWtnOpj6lELdrf/Z5mGvfG12X/Hx1UUzz6exfH2+vCl\nD5ahzlM/zD+lceQlR64AnG5VjOPv4UhtJS4oQL1B4/HHicn8XQi2lddUgHqDxr9Ncm/HfHEDWpFS\nthWg3qDxAFvx2SBaF0whDjSNp7C8xyn7JfcymNEP8TLlH1Tv1KWMnAUY7f3BON6KzE5WmZOFRMd3\n8IohKI39PJKEaEfsxFKVCK8LDq+fCAk4HX+uXL2xwd6hqZweNnA4tsR4pN2xF7+cldNyhe5SXeU2\n1AfkZQCj5YMA2DPk7PnHmQQW0PSc/JVJxyTTYfJK835Pl6YU9Eq7kyKmu47aFas2XWwq3pF7k1A+\noB+1YFXzpSjVpjgP8A8Cq9G2ixbeVwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( \\frac{x^{3} y}{3}, \\quad \\frac{7 y}{3}\\right )$$" ], "text/plain": [ "⎛ 3 ⎞\n", "⎜x ⋅y 7⋅y⎟\n", "⎜────, ───⎟\n", "⎝ 3 3 ⎠" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#We can do indefinite or definite integrals, depending on whether\n", "#limits are provided.\n", "\n", "ff = x**2 * y\n", "integrate(ff, x),\\\n", "integrate(ff, (x,1,2))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAqBAMAAACuFQ3dAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYy3bsi\niUSr8q8rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAArElEQVQYGWNggIKpYFrIAEStBmJmV38Qm00b\nJMCQD2KfqEawLyDYHAcQbDMGBPsCgs04AcG2ZUCwRVxcPrnBzWdAsovhN0g4RL+kgYHh9n8PEIe2\n4D8cfKDYorN3N8LM4AlgkG+Actg+MvAvgLL59BjsC6BsIAVXAwz4tXBhnlvBcDYDw6UHCA6TMpTN\nc4CB+yOUzf8ZwWbawMD1ByrO0cAgnwBlMzwN3QdiAgA7ezR+qzfklAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{14}{3}$$" ], "text/plain": [ "14/3" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Multiple integrals are also supported\n", "\n", "integrate(ff, (x,1,2), (y,0,2) )" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAN8AAAA1BAMAAAAzCCP7AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEJ0lEQVRYCb1YTYgTZxh+Z7PJZDKZJMv2IFTd\n8eJJ2IEVES+mp9JDMSAVpMhuW6v2UuawCKVIAh76Q8EUxZ6KexTB7lhP6iVQPe+WepFtSQ7toYfG\nbUsJVm36vvP9zDuTxK3dmf0O3/e8z/vN8+T95pu/AOxE23PQ3wkb7ZFbybV0sBMgVyttxnwMNxZm\nEFCFy5HubAQzQuc7AFM9JW7UFcpqdH4j5W+U/Inst1C4aYo14Wi+q5yzG+2/UNt8XxgUveyMhPL5\njv03oRMiXMx8Ra3AOUtelljTy8I3k94ZYvPKe14JSD7/lPpS2BPKoM082Lh5L9INa7NaEZE2KjeM\n4Ecmukpnb81lzPbg7MWR7VCE15lmcx2DQ4zYHjSC6V5S4T60GVWh/GlGbA9aQXlkPxyBARN1MF8O\nrxBG/n9oufYfiaPNAXCKLkcyTa3leTmk6rThHa6Oy1lc4sQ2sUWbgrfiCrzG488ACq2QuH34C55Q\n2F74tKPwfxi3fM7NATQ9EjLrMOeOUVwGg5+DMTM4VQq1OJPEqy6shasw7UNhiWdPiQAvojOcTmI5\nTdL74IBA+eTSquPQbbFBQaEN088US6NU+gDgWIfzCRwzLP/y1iciP9EQ13M11KsMxhs+9l/CsDAc\nbm5hWK1DN5A/2hrAhYfffi8XI/rp13w5QQ9dfAL8KSI1jVGUmFhhtQVzynC+ZtZKX1u9uBJM/S6I\nqDd2n7q7IY+ShpyiiRMNCz04qgq4AoZvDPJxJXxo1iMrgR7Aq05HktKQU5SZbNiGY/LQnAcmVFph\ntLffv9rv/xziBZnnQws3NTY+TVJEG/3+rx/2+3WEVVx82TYpBdaSNvyB4uo69dTUyXE8EfO+XLdU\nqKYxilITK0RDuaR5D/DJvNZJKh0HO1CcGnMrVV9iZcgoykw2bKtN8x3ARt7vgiOlpFLZA2fEsOlX\n3YQho15oiJum26EZ9pczB9vzjUtwlyJs0vDOzOwb0OyFlO4eQaEmA1UhoygzsUK8c+PdDVsFT217\n+acLR1YowiaVHg+HT8D6SnCq/xymk4aMolkTDaseLLpKJzaqnx6Sb8dSPIhNixLc0J7Z1dCZZk3e\nvDWjwMcK0Kjq4ZzAsWlR2gwifBvy0UsF3ryxyK2aub7VjBfluw14ovP4qFD3Ms2NgtIo9RLMftf8\nR0/HG2luU0dZAbakeF8rJd970rf9qKY1z+FrIn25ZdpuXfaVvv0cUXovwko2ORr6izd8Jz2azKcf\nn1ElFtsoPu+m78AV8ZlwqSGJ8GPG8ng6fTz0I8MulZr1NsWNeS2QdYj98l76VXHFG5CnvUlNfHLD\nItWZXZtaOOxK9Yo4e3LIzlIry3+g7Ngrt86mD/Q/UCfT1x6rWBQrCpCrj82nTl7Xim9qlCWI/r6E\nnJulkdJeDq+GfwHVYwAZHOavHwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( 2 x + 2, \\quad \\pi + \\pi^{2} + \\frac{\\pi^{3}}{3}\\right )$$" ], "text/plain": [ "⎛ 3⎞\n", "⎜ 2 π ⎟\n", "⎜2⋅x + 2, π + π + ──⎟\n", "⎝ 3 ⎠" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#You can differentiate and integrate functions just like\n", "#ordinary expressions\n", "g(x).diff(x), integrate(g(x), (x, 0, pi))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( - \\sin{\\left (x + y \\right )}, \\quad 36 x^{2} y^{2}, \\quad 36 x^{2} y^{2}, \\quad 72 x y^{2}, \\quad 72 x y^{2}\\right )$$" ], "text/plain": [ "⎛ 2 2 2 2 2 2⎞\n", "⎝-sin(x + y), 36⋅x ⋅y , 36⋅x ⋅y , 72⋅x⋅y , 72⋅x⋅y ⎠" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Note that diff can handle multiple derivatives in sequence.\n", "#Note that x,x,y,y gives the same result as x,2,y,2\n", "\n", "D1 = diff(f(x,y), x, 2) #Second x derivative\n", "E1A = (x**3 * y**4).diff(x, 1, y, 2) #Single x, then double y\n", "E1B = (x**3 * y**4).diff(x, y, y) #Same thing, different syntax\n", "E2A = (x**3 * y**4).diff(y, 2, x, 2) #Double y, then double x\n", "E2B = (x**3 * y**4).diff(y, y, x, x) #Same thing, different syntax\n", "D1, E1A, E1B, E2A, E2B" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARwAAAAwBAMAAAAxw9gqAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWaJ3SJE\nuzID+9VZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEb0lEQVRYCdVYQWgcVRj+dyc72dmZTFKKXiol\nWkXoaYihpXgw1lKkRbtoUvWgHZqm4MkUShdE6VAKLRbJgiZSDwpK9abrrYjFOVjBg01QPJbsVRCS\n0tWtVdz+b+ZN5p+d/00Iyws4kJ33vu///v/bN2/eexuALVyLv3mK6KVpFQMrCsnAsNUamueTVIKK\nqmrpLi8ZHK213H/4LJVmdZ1n4IA+O6H9r6IoKEdnVpsdAPXIT7R5o+5OjXZqPl8UzHMKwjI02llU\nFAXlw7qi0U61rrRj32Epw9do5ye4xRaFibZ9j2VKMzN/BiwzOOie2fErn6XWMvfwDNg65s6+U9+9\n6Zd7vfzqEjHu0oetfjvG6aM/LgG83xnrZwbuG83qF7V5Lo2aOQDv+V9yksExy7PulnLfX+RVMx/A\np96uwUtzGQwYXuFwADXjwbu8hEPdF68HHK7CRv2tM3+pJHnc6XXyYAGy1laRSsb9TyUh+B9x29nt\nAfgEL2yWvLfAREH+UjM7zXWYzQuyiCvngBMi/kOWU/eWx1bhOksrGefOyLodsBoCDsvv6Byf88Da\nNFwqJ0/ve5WPVTLG4dm5y6Qwbd586uNuGAHHJWyHVRynz2nQtrXN+s+3TkQnJ7Jki5PdHFooqZZ3\nbfYOO3vA7Ir0Vl0WGfIM9Pc9wOR0sqmUfMmlt4fTZrbFxMoANZMkq0xNhAA9EV8ek6pySwxULQAw\nt9vOsvc6mjgvJvGa+BAXLu44UOKEu+12rsEYGlgVLi6Ij+i6+hrezHHGTrRHx0HJ+MY98ql+JGpG\nJnPi1fEXke0V/CPlHHxQ/aND92gddirx5HhC2LmNmx45LIh1vN8O3aN12BlZF0bc6EU/mz0SiN9N\nsR2r0Xj7yUZjiuzRHzUanzUaqMDXIL2wl8YWMKOpRNRPkw1HozMyL/JeI+WwKw7c/aMDkO7eOkZn\nKJo7ay1hJ/quabl0dJDbmITpHq3DjtXBWsY7wk1sJy0nVub+0aF7tA47Ri8AuBEKN/ACDgI5LHBv\nFt2jddiBhc6um0cjN3ASgJarjkPlYPf5mJMPi+7RWuy4R+6/EVeEZQ9oucz/HTbmjozFG7Fjz9xu\np0Qm1lr6hGGkwK0nHEmWQOUwaUX3YZ90jWiyEwDg6bQ3CVa0VMQIjcVpKVZXeW0wUlBbSRiSLIEq\nzaQV3Z/xMt2iznMAj/H8SF2srrlLCk5u2MlF4GI4ngEvZnqFnb0Ax9psxHKLhWOBfanIDjybkX6V\n6RV28ECgsBNthnltLLBUP9BiwX6qqzZpb9P21x4b0v19LmQJQMGVYjulOlHeIO3Nm87fbIzRDeBR\nlkGB4RfbgUeI8mXS3rxZm2JjjJ4HL7HjhgJL+WuazbUVcEYRfB9gIeQ4FOzWZsekj5lWx/+aLAQU\nkG0UGE1tdh4Cu8UUBTioGB0UfHPo0LHHfVY1IIiLvcnbWcO5wySXgvIKww0OfXt18QifZahpcG+W\nFIzqsXO+18M5y16L020GjwXWaidgyP8J9AD/3E/RHlrQ0QAAAABJRU5ErkJggg==\n", "text/latex": [ "$$1 + x + \\frac{x^{2}}{2} + \\frac{x^{3}}{6} + \\frac{x^{4}}{24} + \\mathcal{O}\\left(x^{5}\\right)$$" ], "text/plain": [ " 2 3 4 \n", " x x x ⎛ 5⎞\n", "1 + x + ── + ── + ── + O⎝x ⎠\n", " 2 6 24 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Power series using the series() function. Do a simple one first.\n", "#Expand exp(x) around 0 to 5th order. Note that the O() term\n", "#includes the power specified \n", "\n", "series(exp(x), x, 0, 5)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/latex": [ "$$1 + x + \\frac{x^{2}}{2} + \\frac{x^{3}}{2} + \\frac{3 x^{4}}{8} + \\frac{37 x^{5}}{120} + \\frac{59 x^{6}}{240} + \\frac{137 x^{7}}{720} + \\frac{871 x^{8}}{5760} + \\mathcal{O}\\left(x^{9}\\right)$$" ], "text/plain": [ " 2 3 4 5 6 7 8 \n", " x x 3⋅x 37⋅x 59⋅x 137⋅x 871⋅x ⎛ 9⎞\n", "1 + x + ── + ── + ──── + ───── + ───── + ────── + ────── + O⎝x ⎠\n", " 2 2 8 120 240 720 5760 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Here's a more complicated one expanded to 9th order!\n", "#Very high order series can take a lot of time\n", "\n", "series(exp(tan(x)), x, 0, 9)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$- \\frac{1}{887040} \\left(- 887040 x + 147840 x^{3} - 66528 x^{5} + 39600 x^{7} - 26950 x^{9} + 19845 x^{11} + \\mathcal{O}\\left(x^{12}\\right)\\right)$$" ], "text/plain": [ " ⎛ 3 5 7 9 11 ⎛ 12⎞⎞\n", "-⎝-887040⋅x + 147840⋅x - 66528⋅x + 39600⋅x - 26950⋅x + 19845⋅x + O⎝x ⎠⎠\n", "──────────────────────────────────────────────────────────────────────────────\n", " 887040 \n", "\n", " \n", " \n", "─\n", " " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Expand an even more complicated expression\n", "\n", "ff = log(x + sqrt(1+x**2) )\n", "ffseries = series(ff, x, 0, 12).factor()\n", "ffseries" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIMAAAAyBAMAAACNJXWFAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADLElEQVRIDa1XTWsTQRh+km2S3aRNt+ihiNA9\nee2CRXsQGrCnYmkOUhAPCX7RW7dYBA/a3EQQjFRRT3oSEbSV3vTQQH9ACx5FsoJCDgpV0Pod35nZ\nmV2T7LLbOoeZ533e933mI/OxAaikLKp2URb9nH0+TITSrgxPlTgqDA2XJRXRfnQ2VNgzGTfrcLSG\nzA9JRbTz7U/Kq5sC5s6ItlnGd+UMB2+nV5Uzd15A3RbtISv3RznDQSnomhVGRcyDjFgT+UfCEDNZ\nVrKXBaHsnmDq6TGfz/xkOM9rhp4vq/EwM6Rcw7rlu3j/Rk0RKW9hFdEb6HWfX2G9blo+cSHOMKCp\ncQNLW5R9RCq8BG6WpRHa9rlIffa9RZfwOWm3nTgSWRfajkwBBmhE/WpHzgEPVn1nCNIAw/V9BUpn\nMqI8Qea3xOFtwcajYEc0Cb0qw9OHxy2JI9q1/UeD3utAthYkkuMR+lXs5GnBjBULm1tBIjmm/Eo5\neVowg2ax0ggSyfFgCc3gL5RcAYM1jOxRgnbrhLOLrgMp2TpmhNlWZTvg5/DqfVY+ACrEA9xrVKVE\nZ15smyT2OhGj/j+Ws9noGvOS20WFE3TGaI93FuNuJxNhD9qoWNK/AVw8cJBZpyUV2q6N3/B8S2bg\nmN0D3uMy22lmWCp/fanKlTBiiSA6ZjQQUQbmkK8i5QK5LY/qaHLHZyibVX0OslXhpWOqLsIXLegl\nZOhqzXek+mbTIUwVbcm+X4KmA6JtexFmC3Tq0l/8hG4kJYo7SoJ2d9670fOrLXaDpSNvYClB4oaX\nR/d+v9ftFbSwbqLf//7oHgSbA58I1aMm9xdYl95TZDIJO77Eba4g3pAJjjMNkkgwEc0WEvyJHrWY\nsQCSoOXMxFpO4JVQEM+ywfVOTk5+ndZranW9iI5GrUXGBr3iVDgjfxLwraW53BNSKQk6DK95jFjJ\ns178N+AOLjVCsjktJQq3hsbqjBEfSqg43D3cnsLCmxMch1Rj8+8eglVFuvq4RNHmoV4TkhZNe1+9\nBW+3Rwf39MqvXpzq6Y5D6mIegFaKE94r5rEipxVKBvw/E9CsZKkyepH/ln8BnLPjZ799rAkAAAAA\nSUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\frac{3}{40}, \\quad - \\frac{5}{112}\\right )$$" ], "text/plain": [ "(3/40, -5/112)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#We can also grab each coefficient with the coeff(x,n) command.\n", "#For this to work, the expression must be completely expanded\n", "#(not factored)\n", "\n", "ffseries_exp = ffseries.expand()\n", "c5 = ffseries_exp.coeff(x,5)\n", "c7 = ffseries_exp.coeff(x,7)\n", "c5, c7" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n183/ANKhfKolzByIAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left [ 0, \\quad 1, \\quad 0, \\quad - \\frac{1}{6}, \\quad 0, \\quad \\frac{3}{40}, \\quad 0, \\quad - \\frac{5}{112}, \\quad 0, \\quad \\frac{35}{1152}, \\quad 0, \\quad - \\frac{63}{2816}\\right ]$$" ], "text/plain": [ "⎡ 35 -63 ⎤\n", "⎢0, 1, 0, -1/6, 0, 3/40, 0, -5/112, 0, ────, 0, ────⎥\n", "⎣ 1152 2816⎦" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#We can use python list comprehension to get all the coefficients\n", "#Using standard python syntax avoids having to learn another language.\n", "\n", "coeffs = [ffseries_exp.coeff(x,i) for i in range(12)]\n", "coeffs" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nwagG/hHCLwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$1 + x^{2} \\left(\\frac{3 t^{2}}{2} - \\frac{1}{2}\\right) + x^{3} \\left(\\frac{5 t^{3}}{2} - \\frac{3 t}{2}\\right) + x^{4} \\left(\\frac{35 t^{4}}{8} - \\frac{15 t^{2}}{4} + \\frac{3}{8}\\right) + t x + \\mathcal{O}\\left(x^{5}\\right)$$" ], "text/plain": [ " ⎛ 2 ⎞ ⎛ 3 ⎞ ⎛ 4 2 ⎞ \n", " 2 ⎜3⋅t 1⎟ 3 ⎜5⋅t 3⋅t⎟ 4 ⎜35⋅t 15⋅t 3⎟ ⎛ 5⎞\n", "1 + x ⋅⎜──── - ─⎟ + x ⋅⎜──── - ───⎟ + x ⋅⎜───── - ───── + ─⎟ + t⋅x + O⎝x ⎠\n", " ⎝ 2 2⎠ ⎝ 2 2 ⎠ ⎝ 8 4 8⎠ " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Let's expand the potential function\n", "# phi(x,t) = 1 / sqrt(1 - 2*t*x + x^2)\n", "#The coefficients of x^n are n^th order Legendre polynomials in t.\n", "#phi(x,t) is called a \"generating function\" for Legendre polynomials.\n", "#x and t were defined at the beginning of the file so we don't have\n", "#to define them as symbols here\n", "\n", "phi = 1 / sqrt(1 - 2*t*x + x**2)\n", "phi_series = series(phi, x, 0, 5)\n", "phi_series" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$t x + x^{4} \\left(\\frac{35 t^{4}}{8} - \\frac{15 t^{2}}{4} + \\frac{3}{8}\\right) + x^{3} \\left(\\frac{5 t^{3}}{2} - \\frac{3 t}{2}\\right) + x^{2} \\left(\\frac{3 t^{2}}{2} - \\frac{1}{2}\\right) + 1$$" ], "text/plain": [ " ⎛ 4 2 ⎞ ⎛ 3 ⎞ ⎛ 2 ⎞ \n", " 4 ⎜35⋅t 15⋅t 3⎟ 3 ⎜5⋅t 3⋅t⎟ 2 ⎜3⋅t 1⎟ \n", "t⋅x + x ⋅⎜───── - ───── + ─⎟ + x ⋅⎜──── - ───⎟ + x ⋅⎜──── - ─⎟ + 1\n", " ⎝ 8 4 8⎠ ⎝ 2 2 ⎠ ⎝ 2 2⎠ " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#You can remove the O(x^n) term with the removeO() method\n", "\n", "phi_series_trunc = phi_series.removeO()\n", "phi_series_trunc" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left [ 1, \\quad t, \\quad \\frac{1}{2} \\left(3 t^{2} - 1\\right), \\quad \\frac{t}{2} \\left(5 t^{2} - 3\\right), \\quad \\frac{1}{8} \\left(35 t^{4} - 30 t^{2} + 3\\right), \\quad 0\\right ]$$" ], "text/plain": [ "⎡ 2 ⎛ 2 ⎞ 4 2 ⎤\n", "⎢ 3⋅t - 1 t⋅⎝5⋅t - 3⎠ 35⋅t - 30⋅t + 3 ⎥\n", "⎢1, t, ────────, ────────────, ─────────────────, 0⎥\n", "⎣ 2 2 8 ⎦" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#We can use the coeff() command to get the individual Legendre\n", "#polynomials. Note the use of the factor method to make the\n", "#polynomials look better\n", "\n", "coeffs_leg = [phi_series_trunc.coeff(x,i).factor() for i in range(6)]\n", "coeffs_leg" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB0AAAAVBAMAAABI7vhRAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAr0lEQVQYGWNggADG/2DwAcplYHaAsSC0KCqX\nIR2VzzEBlc9WgMrvROUyrEblg7TrAx3wDSrMtIGBa12RtKIAkO8CxJwMDM8ZFjI9ADKZjgIJJSBm\nuMDcACQl9B0YGEC28xkAVQFB/wUG7gVAmm0DfwOQYmD7yMAJYvQ38DsAKQbGbwy7QLQmA88CEM1g\n3zADRN1mYF4AohneL08A0zCC9WgDjAmm2WGuhIkGwhhAGgDwdic2xV4k0wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\sqrt{\\pi}$$" ], "text/plain": [ "√π" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Integrate exp(-x^2) from -infinity to +infinity. This is the\n", "#(unnormalized) error function\n", "\n", "integrate(exp(-x**2), (x, -oo, oo) )" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sum of integer powers n^k from 1 to 100: k = 1, 2, 3\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAAUBAMAAACUmS5RAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADW0lEQVRIDcVWS2gTURQ9M/m0SSbpiLQbhQYR\npLiwWhARlbhStNIBLUhTNYILoaLporhQNC50aSqIYKnYjd0ailWkWGdRFRFsNt3aWPxslFJFjW10\nvHPf1Hl5pmhWPujtmXvPOff2vZdpAC2J/7d0k3qvBvbYMzk8GXskI3WqNRPbAA7PzvV4iHVGemNR\nJaP54E7PzPfWujuKCJ6PH4aQcMPXJN0N3HaWgL14akpIMdUs5JMcYCGRE4h1wZxxXCHDKOHxiDDz\nvV8itoiI4xQgJNxwCtAtYP97E/ogYikJKaYNZTRlODQmoaUYMRttwD2FjISNyKAo+94fgJsITvZD\nSETDWBZhOokSOQRKaKxISDGNDmE6xSHWDiPDiNnYBeRthR3JIPFDlEtUEt43gPliwmWyRCSNQbRQ\npkQ/TSVEyxKilLLySUrkk9HPdkwg0eIncDdHFXkFK1UTCO8ue3kClogk9mGAlHMbjmDaQvSbhGRD\nxkYf/XLD/KcxD7k64wtNkP2DjXCFzaodz9iJdQNFIRENMY4tJN6B1pHWAuJLElI9tfu9AIeY0+kh\nV6fRJZ4tqGyaqsBmVY7RJQRsbVFIREOsx0kWBzKtljsBndlvpLo+HKEMhauj3z3ksjXag1oTnCYy\nlTkse4dL9IitQuIlr2DITSK04G2KhLgghcgwPUSG9RIuCsS6FU4hRB8x15bDsne3m8OxtXxwXnLW\nnSCRok8qXYzGso+YKwXNRKDMIWIiLhCzQdcqn5OYAg54trJjA031BvSmYAk3pP1zTyGSQqgSaIde\n8ZFq2VShCThMU2mOEbPRAWyyVXqjhVVclh0vQzOv0x7YLOGGwKh7E0NAOEUviFDKR6plpB3hBRFM\nYDMjZruvl0MqGzNAP5clx7iFBpO24YSQcEPQTRyne22hzaTNeF70Eb1/qmz1JPJZDtFO6AIJdjhn\n3FLZWt/E0QyXJceWifF3aIZ+DSzhhkCadgFonuwFXpz9KKPwqaoJcKd7O0R4le7xEOuMBxeKUNhB\nx3Eywtb37nKcr9DSb22wRDTEAX4rV/fyni7VzK6UrI/tu2gZ/s/kJyRUkPDfYX1s3y+WpVvlP8rI\noNK/r/rYku8UYfqGUmvptZIr5upjSzbu368lKfyvRd/SfgHuum8lMcX+jgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( 5050, \\quad 338350, \\quad 25502500\\right )$$" ], "text/plain": [ "(5050, 338350, 25502500)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sympy can also sum expressions with the summation command.\n", "#First, do some sums over powers of integers\n", "\n", "print \"Sum of integer powers n^k from 1 to 100: k = 1, 2, 3\"\n", "\n", "summation(n, (n, 1, 100)), \\\n", "summation(n**2, (n, 1, 100)), \\\n", "summation(n**3, (n, 1, 100))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sum of integer powers n^k from 1 to N_T: k = 1, 2, 3\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAikAAAA1BAMAAAB2NmbkAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAHq0lEQVRoBeVaXYgbVRQ+k2x2MsnuJqUPi2jt\nIPbBpx3pUvfJRlpaqugWxNKiskvdan2xQRYRxG4epNYfSOovWnSDggiFbqAvVh8a8cE3d6Eggg8N\npSCipGtb7Z/ueu69c+fOzdybzcykUdILmTnn3vt9556T+zNnEoC+LcbEA33rW3TH7oTHooP7Fnkc\nFmtxnDPsOOj/K/YdOBPer1nhzXoh9pU0VQztTqLBIUaBSD+t2pCaPxieiNP47sPlSwD7/nrdV9U7\nUTjySQSjJzlmD4tEuQQw0pWgAKSvIfkv3ECP79wRw4lgOJ1nIHM/vSf23gQwIvCoIJvKNQCXX9V+\nK+s8Rz6PYsU8wFBpFlLjxcsAm6IQKTCjYw4kdisaelDFHUnkE/UI5vYwjLsnJWEeYDQCjQriWMtg\nFFUtt76OO/LDE3ujjMDK0yG+ywaahIUqOF0atJO5AckucYWl4Y4cWl0NCyX9U7iRAGTolSyeXAW3\ngi+2lbdNVklDjIKL5zruUZmZiSvjN2LwRIK6joTHuikCnSVWieFHIXkpYcNOWICMHZ5SQuDi2Wrf\nAwPFzDJ8JrX0QHEdCW/JTREWyLpbtBnegew1o2guwQSkauEpJQQunjOlUXgVkiV4UmrpgcIciTDp\n3RRhbgkHucUdaB6gfAqGinAMEnHHjgd8+qYD3wNuXXZcsrB45kiESe+mCCMNtDjDrJJzdOx+lE18\nLI1b8IBPXMbRwZwdlyo03nUk0qSnx/EwbrRD7m5IzlGLBCRxNfRAAgBywM/beBlD1h4X15FIk56m\nCFmMCIkMKRZ+cG/Ex9sKUeMVQrFAKO6IxxMF7TkSftIbDjWIqyc9TaWXD32M9wJ+0uRCy9dc0N9P\nqJrMI9erAAOk6TWvfW2yTI11zlY9UFtBaRuEI2LSr20bKJmbIrwBMFhqMZ2ruhVZbFkr+R1wPWnh\n8NQbXOqE7BHW+SuAUxNvoyySX84i3dey7U36TmwTMp4ibMT9kM0aYW+x7sojxOM2yW/qOdyaG9hH\nX4b+5m1rkZG8/TDr/BuYBdhoo1Iu6bL4DmyLSb+WbU7GU4QFGxaX2Fj49d75h1yRzqdg8ptyAbPj\nZFvewHGqe2LXlXx7sqdZs7ltEqNiUOaMg09/MDiN310giw9hG8Cb9J06wlMEDMnUbpU/pO44uQST\nXz4yGCZReYl06qBoyNyoAJzDqJjThMiqwWAFBnCW8eRX0Iey7U16jW0tGS6fhbowKknZClGDya9M\nNmJLIJ2iI5OiAucJ/DSumqs0Kjz5FaRhbHuTXmdbS5YrwLmaMCpJww5Rg8mvTOYeZhJSoejI5KjQ\n98dnKdzCiciTX8HXVdtaslwJNuqikq7iaPBBsTX5lckyDTHmNpKOTI4KfWf6JqUZy6uy+K7a1pIN\nNmBrUeOMtRsbFMmvTJaqaOBytY5Mjso+AnqfIt/DazCL76ptLRlua5N0ELAqF6wctPHSmvwazeav\nLzSbBWxiu+3QMhHlkpO5SA8l2d3N5gfN5gUKJrstLBJxP7kkHby0ZPEd2e6GI9Y0jwoZilyoI4rk\nVw6xKioyD9V0ZPJcEVGhm0s+kMV31baWDKPSfgUpkl+ZLFFRxCBYRVeQgkyOyn0ESFZQyoFv6Nvw\nliy+q7a1ZFZljd1WkfzKZGF2WwWZHBVvt/0O4Geyp7Vm8V21rSXD3fZcnXxBikLPXDITFkijSH5l\nsiROc3NFAZerdGRyVMjrHcDjOXts3XhFlcUHbcNcQ7YU1HS2FWQMjKkhPvSrC64NZfLLyZI7Vh7G\nB646oj/Cb7V90ZHxqIwfulAF+J2Q4DIawe26IpLfdIHUk6KwbX3ImvRXnW0FGSPJOTBlC77s5qN1\nodEHZa56ya83MtaCT6I42Brv5r8bG+4SqoaMR4V2ZA+h+MTfUnJVXsEdYTq1rXkvPORwjJu6cLWt\nI6zTXF7KDmfB8L2epEmVSyaSXzClUW8gHfCkChbzPDwoajVkr4gevuzQX4myl9CobEO+pTdTrZKo\n1thWOMIwmB3idPHKToBnPQXSwn1f8ivaiWQ28ILv8hUl7cBRUd0J2WHW/S2BopKX0LTUmw1SYS6R\na6D8WBJVndg2G6I/JsyWT30eYLLutWZLnqgVmMGqqn1MBBWbOyFzw4FvnToqzHZG2Td7siTqO7Ht\nixw5lpPLAn6x6I8KdPpiTxD4pSN+BTogy7hhzFZlpE47oWvAemOk5GsN6cgkvsHG5NRX5os+JZa4\n8u1ZOxZBHPAJKSohmQ7iLx9/+jGJP/xaHNlcqcKBOARxsOZSjKhk/0HTM37zVsGvxZHN1SJs6drE\nCzkSA2JEhf4WtNVvcbNfiSdfx6diOx5FZPRTcaKSrqDdMd/Q2SuzyIORgJ9iVKpSTc8UMx8nKvTX\nd8sRo30csjWhxZN2/HdzJbV9++TMUtTh01c9vkNoyIHhrkVlEfeVqAOLjwv8+Nc5Jdton/EAp9et\n3+UpcYWBPP87YlymKPhcKQqKYNg/wGCqyAkurq7iHtmtsn683i2q0DxG+Uo1NIgBRhx6d28RSfoO\n5v4nO+v9GNx3HkZwyP1PNv7hPgK4byGY6rOSLPStj+Ed+9KDPOpJt72QaHghSNqeeLsLs/RA/hfp\nP4YSjbEBUwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( \\frac{N_{T}}{2} \\left(N_{T} + 1\\right), \\quad \\frac{N_{T}}{6} \\left(N_{T} + 1\\right) \\left(2 N_{T} + 1\\right), \\quad \\frac{N_{T}^{2}}{4} \\left(N_{T} + 1\\right)^{2}\\right )$$" ], "text/plain": [ "⎛ 2 2⎞\n", "⎜N_T⋅(N_T + 1) N_T⋅(N_T + 1)⋅(2⋅N_T + 1) N_T ⋅(N_T + 1) ⎟\n", "⎜─────────────, ─────────────────────────, ───────────────⎟\n", "⎝ 2 6 4 ⎠" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Now do the same sums with symbolic endpoints.\n", "#The syntax is identical; but the endpoint is specified\n", "#as a symbol, not an integer.\n", "\n", "#N is a defined function, don't overwrite\n", "N_T = symbols(\"N_T\", integer=True)\n", "print \"Sum of integer powers n^k from 1 to N_T: k = 1, 2, 3\"\n", "\n", "summation(n, (n, 1, N_T)).factor(), \\\n", "summation(n**2, (n, 1, N_T)).factor(), \\\n", "summation(n**3, (n, 1, N_T)).factor()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Sum of integer powers n^8 from 1 to N_T\n" ] }, { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/latex": [ "$$\\frac{N_{T}}{90} \\left(N_{T} + 1\\right) \\left(2 N_{T} + 1\\right) \\left(5 N_{T}^{6} + 15 N_{T}^{5} + 5 N_{T}^{4} - 15 N_{T}^{3} - N_{T}^{2} + 9 N_{T} - 3\\right)$$" ], "text/plain": [ " ⎛ 6 5 4 3 2 \n", "N_T⋅(N_T + 1)⋅(2⋅N_T + 1)⋅⎝5⋅N_T + 15⋅N_T + 5⋅N_T - 15⋅N_T - N_T + 9⋅N_T \n", "──────────────────────────────────────────────────────────────────────────────\n", " 90 \n", "\n", " ⎞\n", "- 3⎠\n", "────\n", " " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Try a sum over a large power of integers: n^8\n", "print \" Sum of integer powers n^8 from 1 to N_T\"\n", "\n", "summation(n**8, (n, 1, N_T)).factor()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGoAAAA1BAMAAABb12OGAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADR0lEQVRIDZ1WS2gTQRj+l2Qz2WTTVOrN1qwn\nL9KkVnrwYCOCnqS5qIhI6guVSlkvvWkjFV+nilAogqyXIpTSnPXQCBaPDSiItJji46pp02K1tvGf\nmZ19N007h5nv/77v35mdmZ0dAFdpG9FdsTsouEMRScXwosD+Vv7t5yijFNX1YIWyt91ZkkZJLIoW\nX+YoqP6EWSRrKW0Wgq1GgQ71HO2rU3ilrEDYW9nGHiQRmhVbNOmzjnlzdOtJgkmWBfc4Ty7beixj\nYw8iZZ41lGNC1OE8AIc8ZiuUu7trBkZyP6Py9gDVH2ceMi6wivOZf8rEZ7RO1LFkIvV6NSChgloN\n4NUKG1y+iJYYW9c9s/NTbwISKCW1X3w9T628KBlslQJWak4qLnDSX8/CvkTJpmN0oHMaI6Jwyha8\nqBDWbYpsIO7h8TsYtQUPUrOKk/mJwVVOHAU+Q05Z4JCRdPQFlSKof5mGK7j1vh3Wk5p4ArYzBiT4\np5EYhUsOwQ0/Q6TVwUSyEO1ncdSA4w7BDZ9A2JkVHYVIwe1oIpKqMJxpwue2xJZhruymmojUDcjn\nmvC5LaQG0yU31Uy0Qpdsx2UNUrvIGoRefcddwU3oY0lJ+lHyUvU9RSjYcm3MzPI5GxJjuxrh+C5n\no1LyDYZs+ig3cQOmNTdDo/Ft5rUGeTtL6mjnT5A9a0i69haBdL0scZksOXYv+QrHOC3xxqqHjPgA\ntOTIc87g7k1mhIgn9yOO7wjKbE8CnIAJgP08lldBWRSWtDUuQ1Bmi7OTgvsA5tkurUOoKiwPBPC2\nZA2gUloBSOeYFK4CO0lZsPn2g+ZN4PEg9nUQD/p0mcV4aKirppNsGnAtOCsF8GtyCY/pVqbPYLJ5\nigKp69CjB6a1lOXUBezLzKKfZK8w/oHAJafy1ELqvT3Cx8ikNcpjeYFZBkMBVZ+Os8HPGPZ3YL8j\n6sNVCdpe/BHf6VpOsxdIsKuA+CvM4XsF9ILUBL3y4CrzrYMHNpYrtMISbiVbzOEX/a4BSo7cYr48\nToa14gBtR0qM9lVS92G8C3V85PI3prdkfLZGhHydqfF/jUw+bUjj1Hmf0ogYMcVQtpHLo8UKgjgt\nQBNtp+UJaRbcDhB2v/gP90zVhP8Zu8sAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\frac{\\pi^{2}}{6}, \\quad \\frac{\\pi^{4}}{90}\\right )$$" ], "text/plain": [ "⎛ 2 4⎞\n", "⎜π π ⎟\n", "⎜──, ──⎟\n", "⎝6 90⎠" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sums of negative powers of integers are also possible.\n", "#These are useful in physics applications, e.g., when integrating\n", "#the photon energy distribution or photon number distribution over\n", "#a blackbody spectrum\n", "\n", "summation(1/n**2, (n, 1, oo)), \\\n", "summation(1/n**4, (n, 1, oo))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\frac{\\pi^{2}}{6}, \\quad \\frac{\\pi^{2}}{6}, \\quad \\zeta\\left(3\\right), \\quad \\zeta\\left(3\\right), \\quad \\frac{\\pi^{4}}{90}, \\quad \\frac{\\pi^{4}}{90}, \\quad \\frac{\\pi^{6}}{945}, \\quad \\frac{\\pi^{6}}{945}\\right )$$" ], "text/plain": [ "⎛ 2 2 4 4 6 6⎞\n", "⎜π π π π π π ⎟\n", "⎜──, ──, ζ(3), ζ(3), ──, ──, ───, ───⎟\n", "⎝6 6 90 90 945 945⎠" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#The sum of negative powers of integers defines the Riemann\n", "#zeta function:\n", "#\n", "# zeta(k) = sum(1/n^k, (n, 1, oo))\n", "#\n", "#This function is available in Sympy. Note that zeta(n) is always a\n", "#rational * pi^n when n is even\n", "\n", "summation(1/n**2, (n, 1, oo)), zeta(2), \\\n", "summation(1/n**3, (n, 1, oo)), zeta(3), \\\n", "summation(1/n**4, (n, 1, oo)), zeta(4), \\\n", "summation(1/n**6, (n, 1, oo)), zeta(6)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPkAAAAyBAMAAABsTmDUAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE6UlEQVRYCb1YX2hbVRj/JWlycpM0zexjt/Xu\nZSAITaFoX3TBgQ+DurxsKDJS/IPDDRehFN9SUPAvEnUiUpQOQRSZDVTmvwcD4pNgMxVBizQP+jDE\n2G6ODq3G3zn33uQmuaf3Zmv6Pdzzne/7fed3zrlfznduAErI5GNvZa5NN9pW90oL1x2mUM7R9rD9\nyOE6WXQ0fRt9XO/ry+OQxTNWmHjYP3xuassfFAAhjh63lyoes+DxbICw4d1hB9adjT5psRac/k6T\n2H12I6P4Xt+J1fHtPnv0Hzl2Qj0dFl27++xQqzYWdIxu+wDYl+UbXzXdLDp9AOylGsnu1BF22AfA\nnq6T4dEOFl1nAOzDTLjU3zrCDvsA2JNkljMIIANgl7senw3Ajch9/x3T4ZJL3p4PvcxT535twV8A\nYgsSJCYvVGV7M/IpsDL9cm/kUKXX1mEZB0pZaUnnxWKHp4/O7xA5jJs9EaLeY+o0LJtYlb86vAcc\n7HQF7iWyGCoiNtsbcMA2RRVFr5/Uhbw0PwsEKja9Q8CoIFbG0Hava9426di57ctVifkLmFDTsAP6\naD7je9vyZE+b1jA69pEc1iuEiGtk1+xP90TE5GgeT/1yG1I/X6zT+b0CGFtYbzabHGdl9MeiFRPK\nWq2WfQHjkj25yfM+Y2H9npfyqTOpRcRrTwNlgl9UAROZ0P5Tn69VED6DP4HRZ4qsnnVrLB17rI4j\nhCHJOQdlbyC6zZtBavtwETXGvqEozuNrjA1XgfklTCNUGaoDUTk5ipa9jOPS77nz4spblHeq4I7a\nsmFBsZoHNo0bazJW3QojWWoLzH25mreZiSl5iBOOUKNx5clGI0d1xBmm2WQPMGYtdpl1VvIr806P\n8L/0FkzghjjYlJyKXb78VM7g8zTENgwzedVmp0m3drKrncfzgCr2xPqI3Ca19mufIEEKtfPRLL5A\nZGmkCLGJqFxylLfQcNkaS8tetrJOnjb3WFDfZ4NDx7IIXz0FHCNaZt1XwBpKxRET4jri9Ye4q7VA\nWbdelXxGXpxFqS5VP7m0hLHUWaQz/C54ieBRJu2r+6bK+AmxDPAHPsixoRURtlJ0a2eJ4WFLEQd+\nqMJ4U6p+Io5ermBl3704dPGCSfDtPG2YTmVuwhDp5i5/M2OCxy/NVT4oOvaRrEogCwRwx/oXnrS9\ncgh3ADwFlejYSxm7ylgwe6fsoICNWmYXNvXbiecAp8oIr/kxglWGy3dE1Bytr1a+/C6JNZsbEPUu\na3eXv3GjjUl0u4P1ebvwlLhmyS0wD/nIRqt3k0pyyTvQ82blhvKYTQT4OE1O3r07n+/t+idncZrH\n4XX3dLz1w5X0BkLTd3l7g1td9Y9BSXlm+39NiCcQWcAY7g/O442cb9c/AtRd/og30mWNbMmDcxGr\nfmnkivFUXfWP/niZjwnTE+ky8kQsVfEavvRFuoK8VFf9o1t9RRpZL6DbxjOpIPuFotvav+6uf4xe\nl8P5J30pj1eiFfDWcGvirn8cyUq4R/zGTNcS50O8pfhukt9ArvrH2sPbD8V3Q8XM/o+/A971G9zX\n76p/rIDWYuzGLzacCVf9MIH8qv4B9t+GSY/PEI9hvj3xgEyTWxar/qH1H+WDgUY8Z99EA4F3AKn6\nx1+7k0WR3A7gQbnebw0809L2TGn/Q46IuWesDtGcyqH/AQ89UjJjgyfIAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( 0, \\quad - \\frac{1}{a_{2}} \\cos{\\left (2 \\pi a_{2} \\right )} + \\frac{1}{a_{2}}\\right )$$" ], "text/plain": [ "⎛ cos(2⋅π⋅a₂) 1 ⎞\n", "⎜0, - ─────────── + ──⎟\n", "⎝ a₂ a₂⎠" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#When doing integrals, it's useful to specify that a parameter is\n", "#an integer.\n", "#Consider the integral of sin(a*x) over x = [0,2*pi]\n", "#Define a_1 as an integer\n", "#Define a_2 as a nonzero real number\n", "#Note the difference in results.\n", "#What would happen if we did not specify nonzero=True?\n", "\n", "a_1 = symbols(\"a_1\", integer=True)\n", "a_2 = symbols(\"a_2\", nonzero=True)\n", "integrate(sin(a_1*x), (x, 0, 2*pi)),\\\n", "integrate(sin(a_2*x), (x, 0, 2*pi))" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\begin{cases} N_{T} + 1 & \\text{for}\\: x = 1 \\\\\\frac{- x^{N_{T} + 1} + 1}{- x + 1} & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ N_T + 1 for x = 1\n", "⎪ \n", "⎪ N_T + 1 \n", "⎨- x + 1 \n", "⎪────────────── otherwise\n", "⎪ -x + 1 \n", "⎩ " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Summing a power series over finite or infinite ranges\n", "#First sum a geometric series over a finite range of powers.\n", "#Note the different answers depending on whether x=1 or not\n", "\n", "summation(x**n, (n, 0, N_T))" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "#However, it is not clear how to specify |a| < 1 in sympy\n", "#It does not seem to be possible to define a variable with\n", "#a restricted range. The assumptions module also does not\n", "#seem to work. I will continue to investigate this." ] } ], "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.13" } }, "nbformat": 4, "nbformat_minor": 1 }