{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "#This is a basic tutorial introducing you to sympy.\n", "#It introduces initialization, basic syntax, etc.\n", "#You have to execute the early commands sequentially\n", "#so that everything is initialized correctly " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#First import all the variables and functions in sympy \n", "\n", "from sympy import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "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 variables\n", "#The symbols k, m, n are predefined to be integer variables\n", "#The symbols f, g, h are redefined to be functions\n", "#This also turns on pretty printing (Latex?)\n", "\n", "init_session()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$e^{\\frac{1}{3}}$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAEJmJqyLvZs27djJEVPfV\nizYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABVSURBVAgdY2AQMnZlYGBMZwgLYGBJYGBRYOBrYGB+\nwCA3gYHrNQMbkP0GxOV4zsDQxXD5LQMD+6rNrxmAgOUhiORwYGBPZdgXwMDVyNgO5BspHWAAAM1O\nEeMqKO2rAAAAAElFTkSuQmCC\n", "text/latex": [ "$$9$$" ], "text/plain": [ "9" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#It's easy to define comments directly in the input cell\n", "#using a # before the comment.\n", "\n", "4 + 5 #Inline comment ignored by Python during evaluation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJQAAAAPBAMAAADws/tnAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdMrsi\niUTmZFZyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACFUlEQVQ4Ea2Tv2sUURSFv81s9ldmEhBsbEJU\nEEF0ivQJMUGtdtVdrEIWJdgIWlib6bQQtBBSiDj/gBjtJKDbWFgIixhBYXEbbSVkZRE04333zls3\nvVOde86739z35g2MnlrDS1FhazvNy/e9F1C+VrsI0acveeLM2qPVXg+NbWnhWN5S3QIrRM0T7Yt/\nKCZsMJswkWVdgjtcsUTNSpZlA4u1cb65l6OuCsAKUWfhKMFKPaa0y8xDyh9vwFSDbUvUnOzAosXW\nWMpR4V2ZSgunTkI9hZsx06dZuEXRve+H9FqiZiQ7Ti22Ro+Kyh7l1EbsUdItG1TUS9E+cSZ8d45T\nSvGo+yOUKnga61QQPIHivfWU4bP1vrRq4kyQt2t8ABW0PcoU039kmWyQ8PNlOaY43A+GCXNiukRN\nosSr8akiPMoU1cUcBR/6InkVZDGXhK2JmgvOVzWOOjJCmaLlVrmpYELvy1rnFzzoY4ma112qagwV\ndD3Kq4ZbJaiww9Qu5+Brf1NQCSVJzOTxSI2hCsvL9eNtd3q5OuyWO9TMnkOdgLV4SadyiZnBgDw+\ncOwy51b+TZ2Sf6dkKCmqv5FJNnkuZ2WJmbWf2iXxP5TcQeGPUKLe9XYuiCdTVRJm27ylcopiN5iz\nxMyCoEwpanJpeF6/SfRmkGiBUxtZJofcPHM74VvrtRzJ6koMO80US8x0V0OVNUr1f56/1x3bwh6C\njvoAAAAASUVORK5CYII=\n", "text/latex": [ "$$1.4142135623731$$" ], "text/plain": [ "1.41421356237310" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#If you evaluate multiple ipython lines, only the output of the\n", "#last line is printed\n", "\n", "4*2\n", "sin(2.)\n", "sqrt(2)\n", "sqrt(2.)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#You can suppress output by adding a semicolon at the end of the line\n", "sin(2);" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAPOdxfLpaqEMAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( 8, \\quad 0.909297426825682, \\quad \\sqrt{2}, \\quad 1.4142135623731, \\quad 32\\right )$$" ], "text/plain": [ "(8, 0.909297426825682, √2, 1.4142135623731, 32)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#If you want to list the output of multiple commands, put them\n", "#on a line each separated by a comma \",\". This creates a tuple\n", "#of values\n", "\n", "4*2, sin(2.), sqrt(2), sqrt(2.), 2**5" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( 8, \\quad 0.909297426825682, \\quad \\sqrt{2}, \\quad 1.4142135623731\\right )$$" ], "text/plain": [ "(8, 0.909297426825682, √2, 1.4142135623731)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#You can put them on different lines using the continuation\n", "#character \"\\\" at the end of the line\n", "#This creates a single multiline command that creates a tuple\n", "4*2, \\\n", "sin(2.), \\\n", "sqrt(2), \\\n", "sqrt(2.)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sqrt(2)/2\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAvBAMAAAACzbekAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA8UlEQVQoFbWRsQ7BUBSG/1aJVtJYTewMBgMT\nj2A0SHRiZLJqmGwdbUwGk9kbSLyCxEMYkEidc93T3u6c4T/na869vckH6KrGXEJoJRMPVj+DhVkG\n1xnCBNb4epNvxQgreHdB74g2cBGko2egK9t1YBQqdHq0Eqm1bQg06AF2jdF50XOWdJ/LBLdJUXwD\nJ4VjldMyNjzYgcJqUNrxMIdVppZ7uCE1P4DN6L/mlKgc9h3uGA44R3H85I5FoJpEno/8vZSLJH7+\nO9MPXW76ITT9EJp+CLUfmqTYT1rsxyjlJ+WvH2HtR1D70Sh+NCZ+vpz4+QDG90XydfieogAAAABJ\nRU5ErkJggg==\n", "text/latex": [ "$$\\frac{\\sqrt{2}}{2}$$" ], "text/plain": [ "√2\n", "──\n", "2 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#You can always show intermediate output by using the print statement.\n", "#However, the output is not typeset as beautifully as when typesetting\n", "#is set.\n", "\n", "print sqrt(2)/2\n", "sqrt(2)/2" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUIAAAAmBAMAAABDkY9XAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZnbNRO8QMqsimd27\nVInIquLFAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEwklEQVRYCc2XTYhbVRTH//m6yUsmH6W4cNNG\nhorOplFU3DUobtw4am0tWnwIQmEWydqFE9HKUBeTrS00gUEZxjoNFGoVaSMoFqw0GxG7mVARpUrs\ndIY407ETz7kfL817k2QmDvLO4t1z/+fj/d59N/cRAAhk6OJHEyVNNe5HOsn0rCILH/EtYbAk0d4q\n+pYQj0m0mdEBKx220euHVlZsSomuD83rm/B+38guBWIlahTiy2hm5Uar235VtE25lfL2C1yZ8YZL\n2P3p49Ty09HbTo1eut3KByjxpe0me/M+80q7rVTysP4e0lQs7utzHIkarIVrfYLcNVo1vdk7fe47\nPT3b+oH2/8NResLUzd90hMXopcVWC1brT2f7RJoI3Oay5BanttZCDfGF7uwaUhmcQGrVpd7XLFE3\nE/LoE/ZXHvjRhlXFUgaRTqcJ8QTmVESKATq71nAayWVTGMshXqM7nJjn30yvGY12wi+9ETOjbfgB\n8IqZmtEUAgfqpjN5MRuRSXFq1kbwHtI1hH5/FBir4pqKSDFeBko42MCGKQzeBj8nEPQSGu0qsGRz\njsceAl4DZovugGlm7a3rzuxFaojRjjpoI3wYhRxiXPYCIamIFFP02ot4Li9WDFJyHekqZ5qm7BvT\n2hr1aRjNjOE8eTXgkD2AMBWq687shdqGkErpLUvCb8k3ERaBZ1jht6xuH6X1zrLUn1DcJUKZw3nG\nDuSoJitnV2wjmtE0e9AhlB6QoDdFawiIy0Bsz0QRK+9M5LmMIywCdb5MNQ2SWEaBwQcQWpvANBX0\nmPUm/T4SUgpT3GWaUGQNofLoSZuK0PrjE9qCtrUqVjI4ztUUkSLo1wec/dJ2kO6gMoyQ1tBDCPEP\nsI9bI1GSw/0XTZiCIVQecImy5Bri1zwXfC86Nj62yeOIFAvsIHXYIdzEdIMl82LYN6a0rd8yzpdx\nUSYumPTuqJv95BAqD/Eq5SjCyBFOP1/eAPbnoSJgcZx1OiBsg3QX00PWEGu0r+VTqFp9rVQDTXaD\nVb72mn60piEUysMEpxGhVcbYPbwHOh8vECEBUESJ+IpSPgKuN7qEw94ynVfYb3PvHou1EzYLN7i1\nyxRhcmZm9tUs30h7ySrfmwjTbSZ8mdbQPinXkCNKFLQeoFfvEIpNFLLcX78Ydh3TGp3Yc47mONHN\nG+zT1yzYh5CikbrpzN7bAJ3RREiTxDqqwAVM0z5UESVGadfjdeBKWSNZy0g3SZNTOkV7jAlJSzTE\nUR5d9uRTLJxp3frQE9SFQLpuCMmzLrfma5KQ/lsuZenbFjiGWFMcVxElJplwD5J3TCGdh5ESafGT\nK+8icZG8rimtBHHzkaI7RllLVU491OlsuIOmEKnraxk5kV6Ivrk1zL/xdAbPL3xDG2/xlA3cmi9C\nRZTIZ0944VxeIZG/irHu6vzM9+xjnlio3M30BLuh/+oF2khNOk2ajud1BsUwMOjttROF8JK025SJ\nrPG846AYBga9vXak0AeBPnzaAsbZYhwUw8DgFs12IvFH+epOCv733CXa7nTe+djmiK3Q8DEgXiS4\nYM7HhMFJhjvqY8JIhuH2+phwXLKFsr5FtI5JNPG5bwmn9K/4TNmviF9rMKvoU0KRJ7B/AfvQiEal\nxGAqAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( 1, \\quad 1.0, \\quad \\sqrt{2}, \\quad 1.4142135623731\\right )$$" ], "text/plain": [ "(1, 1.0, √2, 1.4142135623731)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sympy treats expressions as exact, unless a decimal point is used,\n", "#in which case the accuracy is that of standard computer floating\n", "#point representation, about 15-16 digits.\n", "\n", "1, 1., sqrt(2), sqrt(2.)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANAAAAAyBAMAAADfBkjOAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADxUlEQVRYCbVXzWsTQRT/xSTdbNKPlIKooF0Q\nPDYRi/akQVFBkO5JUA9bqviBojmI4sn6hQqCLRVFPJiCeBCkEY+CLfgHtKA3kRT0LK21Vq1tffPe\nfqS6mB5m3uHN2/cyv9/O7MxvJgBZwiFnzKxSCN0RRkaCrgA1UQqil+03g1Bjm53ywQ6VVUA+V4RX\n8ZM6m6sCZvVTa+3pLaNlDm2DOhl8rIsuB5kiN7Uy1vTjypRf1Nmk+xjN45kDEZEZmToMMdEweyGy\nJCUZfd6rElZ2ISLKrd+hD70OyVZfxx6QjEzdWkee9PrsPOFN+NBC1HRSL4WgWYvUbveRiShXRWbO\nBBG+EOrxiKht3hRRrYrmXxFR0wBsf2loHtdYBS0BMk1dtgJvUjOFwDWVkOmTsPv85wo2b7tmhAeZ\nQdB0rdKsrSPjsD52OMi1r3MBlvrIcTK2QviJaVxRe+n/lpYl3+paj5EE9uIV0r9E6lnvRfQ5GVsh\n9OxXTDT8KBe61XYDngGbcAR4g5qLnyL1rPci+pyMrVDf5kV4NAkNrEWIbpDkltcBl7HFsZZE6lnv\nRfQ5GVsheGsWo+MNaACf6BtQcAu3sIE60NSReZUVjpOxFeAbaCs1MiGil0JhMrU8otAv58mx1EdO\nkrEV4Ac6V0uUmyFdzKNzqUwLbpgcS33kJBlboZc6h13UpYHJiHI0ool8evcTdfInlANLfeQ4GVsB\nTqNXWJZDm5ZEna+fuqdo+a5e7YRyLPWRk2RsBQ8Cojrcf8JoMXjuGRqW+xq457LURw6cjK0owAer\nnzrcBkYv0XhTleUyEbHURw6cjK0ookerXwxqw+4EjShTPQU8qZJ22QuRAydjK4roHGrjql1hf1+5\n1NRRznats+gq4wWeI70oUs96L6LPydiKAj+FUWcFiXqwH65IJfctHYBdgrXx/Tia95CortnW40Ck\nnvWeHSdjKwptFh51Ce1Vz10VHw0TugJrJhJVunvTH4xOh7DzuvBDHBLVtiI/8d07VUZTH0nLZPgD\nXUF6DvaUD1YjlkGkftPhoQs+wkksIEk7g42IWueZKKpri1LT4EukAiQiMpuWsgGj/dYc3BiFqJA3\nQAOM0Wevu0ASx30jPHzq7fKheUTJohmiOwRbcASbid6Z4eFLPv93IXxFlC4qtddvfNAEy04RvQU+\n6KehE7KkUI8JNBHlhtq7B+VJr/eqCs+joQDq7t1K57kRok+KAa1Fbgw6/06dI3kzaxcdwT9slga4\n7hMkS2aZsgMB/sEgMNN2hbBJJwwNBNZ+BfoH8bdmPZlEvyQAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\frac{13}{12}, \\quad 1.08333333333\\right )$$" ], "text/plain": [ "⎛13 ⎞\n", "⎜──, 1.08333333333⎟\n", "⎝12 ⎠" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sympy treats division of numbers as floating point division\n", "#(1/2 = 0.50, 3/2 = 1.50).\n", "#To input an exact rational such as 3/2, you must use the S\n", "#function for either the numerator or denominator\n", "\n", "S(1)/2 + S(1)/3 + 1/S(4), \\\n", "1/2 + 1/3 + 1/4" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\sqrt{2}, \\quad 0, \\quad 1.4142135623731, \\quad -4.44089209850063 \\cdot 10^{-16}, \\quad \\sin{\\left (1 \\right )}, \\quad 0.841470984807897\\right )$$" ], "text/plain": [ "(√2, 0, 1.4142135623731, -4.44089209850063e-16, sin(1), 0.841470984807897)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Or look at the following expressions.\n", "# Note that 2 - sqrt(2)^2 is 0 exactly\n", "# However, 2 - sqrt(2.)^2 is not exactly zero because\n", "# the floating point representation is not exact\n", "\n", "sqrt(2), 2-sqrt(2)**2, sqrt(2.), 2-sqrt(2.)**2, sin(1), sin(1.)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( 3.14159265358979323846264338328, \\quad 2.71828182845905, \\quad 1.41421356237309504880168872420969807857\\right )$$" ], "text/plain": [ "(3.14159265358979323846264338328, 2.71828182845905, 1.414213562373095048801688\n", "72420969807857)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#You can get the numerical value of any expression\n", "#using n(ndigits), which outputs the value to the number\n", "#of requested digits. If n() is used, the standard\n", "#floating point precision is used.\n", "#\n", "#In the following, n() is used as suffix, where it is\n", "#called an \"object method\" (i.e., function belonging\n", "#to the object)\n", "\n", "pi.n(30), E.n(), (sqrt(2)).n(40)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( 3.14159265358979323846264338328, \\quad 2.71828182845905, \\quad 1.41421356237309504880168872420969807857\\right )$$" ], "text/plain": [ "(3.14159265358979323846264338328, 2.71828182845905, 1.414213562373095048801688\n", "72420969807857)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#N(var, ndigits) is an ordinary function that provides the\n", "#same capability\n", "\n", "N(pi,30), N(E), N(sqrt(2),40)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAAUBAMAAABG5eZMAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIky\nqxACMlz2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEYElEQVRYCb1XTYgcRRT+emfnP9szTlhR9mCz\nRIK30YOIBx1xiBANbNAQYcXMYgyKoBtx9WbGS3KSjZiLK+hcDOTkSIwgMbiXgLesqxI8BFoI7iHg\n+p9VMeN7VV1VXa+nF/WQB9vz3vd99fp90zXdvUAQ4SZFa5vzTDQ1GUT5IqPJUSh6Zw45Fv4qgz4S\nX+x7YHD+LAFTbQ/kImhj8vUdT/q4VX+pcZomv2Oi8TvMnL+PgYsA0w/55PbVeoZ+f/SXj02j8jO5\niXyUqskmqqPR0Met+qrGaZr8jonG6xDMYTki5BmA6Ik5j/zPxaOXkz1SWdRrj/Xx+9gud5KhC0cF\nZdV1tZynsR1xQnTUGr9DeQuNHlB+GyC6lAzja/59tWakxs2ZQfirwbzPBbpiHsCFVYcnueRpbEfj\nRmhY56K2gs0O0HoYoBa3OuJ/Zfbcxg3UTsv2Cnrj3Dj1Xl7C09iOxo3QsM4L3mlDcoO9WKLjsdFo\n9Jsn4OLaa/sFFi4tCgRY3/2Uxpyb74fYOJgRlufIzezSqiSM+hwTPI3t6Nx4GtkgfIF+L012cw73\n0H777ETraFOKaguYEVi9dlIgwAO4Y6BA62bm2RjDMxlhIQIKcfCnIKx6FxM0jeto3fga0SD45Glg\nA+xmF54DvsBH5VWhAW7vh8m3bqnbih2bu6TQU7l1g/pK0H/C8UlW6qvkXkkY9XEmaBqKQo8OFMld\ngL7vpKPSaC51/HSAoXJzHCsMt6fiFKvTb3e/LMG4kd1pQPEnOl23u+dUt7uml77zA65n+lUHCjpE\nmyDcc4Ti8KrWJOpLXKlpVEd83O0+3+3uy2o0kjpW36usKjeX1Poda6UUmaR/ZyEsxxKc6qCuN4+5\nNrcAD/YrN6QQ7OZr4HP6SIVTGzeuo7k2QpNaTWnQRGHrGhI3fG2LUSP2NVSJh6Li94VSVu2gqCc3\nbkYxuZlci6WSd9op4JBPOPVpXkDTuI7GjdCwzkXjBrl588qVPy4Dp9XvbjNuDByfZO/SI0mA4VZd\nICjSM6KjQOOGHmMvNTf7Q6nku8AccNjHndrcBVxH40Zo/AbVNkq01UEiugvwjfFVVOnk/BBKxSsI\n9wus9mNLIKAXi7vol0Bh3Myich0fBpF8htbJyjQm3kqdglKjBuaZoGlcR+NGaPw5JyIsL9LKX+hv\nnq4O3xenyE3pRUpdlA/OZrD1SKowfYFukBzGTe3A4wN6sABHYoWbQ61Hk85/44OwajzGQp7GdjRu\nhEbM+cGB+2nR2dE6qEXqzeYN7icii2URvcS4sQ0q+prZesFm45Kgx2hqGqrsHZopCq1B3gREp946\n6fpkIotlEb0oFMND/sborXOboFdGitQ0VH0n9FpDD5fxwfTdhgpVP1PpzyyWRfwVrtpwqcoKTQF4\n5VVd2Wk8Mim0JncCpneadRMmSX1msSySkntp5FW0T9oC8MrEhp3GI5NCa3InYDqI6HBTorXNWcx/\nyUGULzKaHAXR/wAQICWb/75FBQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( \\pi, \\quad e, \\quad i, \\quad 5 + 3 i, \\quad \\left(5 - 3 i\\right) \\left(5 + 3 i\\right), \\quad 34\\right )$$" ], "text/plain": [ "(π, ℯ, ⅈ, 5 + 3⋅ⅈ, (5 - 3⋅ⅈ)⋅(5 + 3⋅ⅈ), 34)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sympy has standard math constants, pi, E = 2.718... and I = sqrt(-1).\n", "#Arbitrary precision values of other constants are available\n", "#through the mpmath module. Note the use of the expand() function\n", "#which expands expresssions. We will see this later.\n", "\n", "pi, E, I, 5 + 3*I, (5+3*I) * (5-3*I), expand( (5+3*I) * (5-3*I))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJcAAAAUBAMAAABylbI8AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABmUlEQVQ4Ea2UMUhCURSGf5+W0ns9hCBoe81J\nVBDUUkZLk7g0Sk7WWENTQ84tUZs26NRshDj2CEUaagmKNveGgqSwqf/csPRxbxD6wzuee+9/Prz3\nvvOAkIehaFooEwOi3PXEkSDG4wxrA8Kadw+7gnCSgJUeEPZTXgNG5d8NRTfApAL5ElWQRCNf5lSQ\npEeO5CpEytiX/KnjAZcZtXdZDMpsuC2dAvbiIyvsNBb4E25F26jn8RyEdMdmwwoOk84G3ApPP4kd\nFswCx3MpDk3nZzRYLcTeIi2Ab1ksiyJh3J79Lnv0+PSqnhOlzIYo3VfbDBbgvnZhWBWYPDrJvNYg\nsPAHAxPCZJviXf7kRXhMdDIaFKxUBq6Bsay6gATJF4U4onEdiXNGg+UDB1MnwJ66gCq9I0AVL0XM\nwGlrcWZDmm+E2ylbFVIqOGe1s3mfh7NV4EzO19HMhkZmCWh0zljFS/1uJ4WQEDPs1Gj47QD2UqDR\nbQL/lNnARsd8X22zb6QZGA3yCQp8HD1Nfd+U0RCWAwoZl7n4D7GhvgB+AWN1EsnHxAAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$\\left ( \\infty, \\quad -\\infty, \\quad \\tilde{\\infty}\\right )$$" ], "text/plain": [ "(∞, -∞, zoo)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#+infinity is represented by oo (two lower case \"o\" letters)\n", "\n", "oo, -oo, tan(pi/2)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( e^{3}, \\quad \\sqrt{5}, \\quad \\sin{\\left (2 \\right )}, \\quad \\log{\\left (2 \\right )}, \\quad \\tan{\\left (2 \\right )}, \\quad \\frac{\\pi}{6}, \\quad \\frac{\\pi}{3}, \\quad \\frac{\\pi}{2}\\right )$$" ], "text/plain": [ "⎛ 3 π π π⎞\n", "⎜ℯ , √5, sin(2), log(2), tan(2), ─, ─, ─⎟\n", "⎝ 6 3 2⎠" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sympy has all the standard math and trig functions.\n", "#Note the use of S(1)/2 to represent the fraction 1/2\n", "\n", "exp(3), sqrt(5), sin(2), log(2), tan(2), \\\n", "asin(S(1)/2), acos(S(1)/2), atan(oo)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nNU9O3q6wUBQAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\sinh{\\left (2 \\right )}, \\quad \\cosh{\\left (2 \\right )}, \\quad \\tanh{\\left (2 \\right )}, \\quad \\operatorname{asinh}{\\left (\\frac{1}{2} \\right )}, \\quad \\frac{i \\pi}{3}, \\quad \\infty\\right )$$" ], "text/plain": [ "⎛ ⅈ⋅π ⎞\n", "⎜sinh(2), cosh(2), tanh(2), asinh(1/2), ───, ∞⎟\n", "⎝ 3 ⎠" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#The hyperbolic trig functions are also supported\n", "\n", "sinh(2), cosh(2), tanh(2), asinh(S(1)/2), acosh(S(1)/2), atanh(1)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF0AAAAUBAMAAAAdCCxUAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIky\nqxACMlz2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABwUlEQVQoFY2TPWgUQRiGn937yeZ2b3Iips1Z\nioXRtAbOLl0WNFUQVoQgSFBBsRKusU4qUbFIpWUOSUhxgttYu5WV6DYqIcSk8A9jbn3nEovdNZC3\n+Jj53md25tv5Bpw2x9VpC54kWJzv9zl1+SJ8evmqtNiZm4ox82djmi2Zl3CzLNs3Ca9XmOGzzeW0\njf+batdcw3TADakJSZopo8vuMr5yeX2AJ5yBNdiAegsf/Hg0ovmnkuAN8jQ8go/xNCylbML40H5B\ndSB+LKHxq8jPpuL3YbVLdYV7Q3vSxvpgJ6Txs8hrfuvrd/G38UMuWNtv27jam+gR7NlhXo09R9m3\nPdwON6y1YwOLTIT/5euJo++L9yKeWvKuDbWQI84zhzk4T7B7wF+3vCpRvV6pXkZCUL1LXcTb8xjN\n8EJOVCZxS/+ThzitKTiX0oiG9QbajTdwR/dV62icUxAy0tJ9XdHldliX54l3bvavRtptMzbfcjjj\n/fV31LvmmUrs8Vym8xiqaqKIrfvvYSHNLZjNsh+YjQexoNj2Q1FeOXWIqBnUb0Wpn46Q+o3zJe9L\nKXOYsP2s91JUu5j4N6/YgzptheNJ7/Ev8R53BWEaDDsAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( 720, \\quad 20\\right )$$" ], "text/plain": [ "(720, 20)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Combinatoric related quantities such as factorial and\n", "#binomial are supported.\n", "#\n", "#binomial(N,n) = N! / [n! * (N-n)! ]\n", "\n", "factorial(6), binomial(6, 3)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\left \\{ 3 : 2, \\quad 5 : 1, \\quad 23 : 1\\right \\}, \\quad \\left \\{ 2 : 4, \\quad 3 : 2, \\quad 5 : 1\\right \\}, \\quad \\left \\{ 2 : 11\\right \\}\\right )$$" ], "text/plain": [ "({3: 2, 5: 1, 23: 1}, {2: 4, 3: 2, 5: 1}, {2: 11})" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#The factorint() function factors integers and returns a dictionary.\n", "\n", "factorint(1035), factorint(factorial(6)), factorint(2048)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAAcBAMAAACT0dV6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMkS7zRCZdiKJ71Rm\nq90icBAQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFBklEQVRYCdVXXWgcVRT+drOzO7vZbIKI4FP2\nQfRJEywFUcG1BtQH23kQikLtik3EorAvTVEQBxVBkDQiplbUhqIgFmxQFEEx+yBtLdYW/1pUNEpr\nK4KNJcGfgOt37p27e2f2zjZvJufh3PPz3W/OmXvv/ADrQIoPjK+DKnuW+BK+6pnHZb3T/2PWVHYe\nw2F3GQ0JKZUZ7c6ujUi7sp+xp9pd0rUSUioXdGfXRsSqbN5RZLHJMpV6kIYvnlPKoQ6nI4465+E5\ndxhYPaNUFsk5Y9jjWXGo/GWOT9mZtv3svpuA09p1IvyJDUMYCNsTLMN3bs/bgyvmejKiuPd5w6gq\n05TFukVN09s9UwUmJUilsneIkxS/jvkm7tZhJ2Ibihfh1ZITxc+FVF1yqPU3ejJ6m7DDMFp1H04w\n5YHvgD0SpSrNcW3rCYhyCysYXECxIY4b8TXwFrDXNTl5UY2581TIm+Zg7FcxoK+ODYZRKtOSnc4O\nGVuNHwFPA5UmHarhgEOoEgmVPYDtNXizEnYj3gZ+HMK9AkjK+WRA+SdFe7NUCUbTwkgoOc0olWm5\n/MN327aKvADcB+RH6VAd4zClkd2aGwmbJOxGbAmkhVxVEHHxF+J+5KkWXIymhRsVUDNKZVoOtVrG\n1OPIRrwCFGbpUe3gIOdi6+NPPtrgaIv3K70ZiaQhcCHQp8meRrtQlzN3+prEJvv+yP1MOhhNC0tX\nTlaj86kqc3CQAAOtT5tAVp5EVNx6uJnXmy6fq9RoW+K/Nk7vE4mkIJDl8SzXBBGXviZwDz5vnImH\nN6p3lIMxasFbauKgYZTKHByKcf8Sd1bmD9pUd3H4jY0HxeX+UKUt9XIV+Fj8NESFW6N/QRBxqcwB\nL2J/8EE8zPO64GQ0LbQC7AwiRqnMycFLfnHhAN8HF4mg+oUDXQ+5UVp85P0ucquyUXoDGBbTQnib\nBXBmSCEmqDOLyoypUhUIcJuKxRjzf3UzFsfGNr8+NnaS6H+BE9WIUSozHEJkXfg4Cv8E8FcYpZJe\nWSAw2BBtiR+ijyDTggOhtnxqC8CfFpuYAzV5kbgYo1UAN96JZsQolXVzqOCbJJlrr0K0kRjT91VB\nlBpcVi1cJw43kgOB98E+swuSjItsJL1X7XiphjyPoIPRtPCtWgXNqFpQ+93mENtb5O1gp1xRUV9y\n4GHtD55AIZB8W0qjqBBkDp8DkamjEKYe5/cKi9jVZhMjz9dBzcloWuC7YKc5zlJZN4fwgKvQx3sX\nPZEeY4RPuZG5W5JfZuUm5hvAQzLHjZjaN/MDC5smgC9BW4p1ZFf6Fv2mHYRfx7HQyWhaGJj2DkaM\nYGUODkV4VYAj7HSWDtUIbz1XdtvurQ83Vbqjrp64no462W7EllaL5y83RFTlbGceLW4F79Suyc9i\nQeCZV8cZcTCaFjDzCNkUo1Tm4hDKzDczVXY6SpOqRLsS0k4R/Z7thZhSMxOPT/cHhkK6GNstKIRm\nlMp6Sq7BNJVsg3I9Her6KIuj9RuYNLYctp247WL0QhujGdUGtcNJe3vACFVmluMNyWzHjz620xH6\nY9uTO2IJT1uarJJRV5ZGIvHjRvHDO+WXRxCmO+cvjwLoYsvK7ij3L4/KR3fjUozql6BD6LB+kpgo\nuSl+k8op5VCH0xFHnfOSj7cOaPWM0XJ1psatsuxdpfrr8cza8S5RmVpGvZbvrJ2iE5X0rkyez1Aq\nMW39uf8B+2BiEzQXv0YAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\left(x - 3\\right) \\left(x - 2\\right), \\quad \\left(x - 5\\right) \\left(x + 6\\right) \\left(x^{2} - 8\\right)\\right )$$" ], "text/plain": [ "⎛ ⎛ 2 ⎞⎞\n", "⎝(x - 3)⋅(x - 2), (x - 5)⋅(x + 6)⋅⎝x - 8⎠⎠" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#factor() factors algebraic expressions.\n", "#It can be used as a global function or object method,\n", "#as in f.factor()\n", "\n", "(x**2 - 5*x + 6).factor(), factor(x**4 + x**3 - 38*x**2 - 8*x + 240)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( 3 + \\frac{1}{x^{2} - 1} + \\frac{1}{x + 1}, \\quad \\frac{3 x^{2} + x - 3}{\\left(x - 1\\right) \\left(x + 1\\right)}\\right )$$" ], "text/plain": [ "⎛ 2 ⎞\n", "⎜ 1 1 3⋅x + x - 3 ⎟\n", "⎜3 + ────── + ─────, ───────────────⎟\n", "⎜ 2 x + 1 (x - 1)⋅(x + 1)⎟\n", "⎝ x - 1 ⎠" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#factor() can also be used to simplify algebraic fractions\n", "\n", "f = 3 + 1/(x+1) + 1/(x**2-1);\n", "f, f.factor()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( x^{4} + x^{3} - 38 x^{2} - 8 x + 240, \\quad x^{4} + 4 x^{3} + 6 x^{2} + 4 x + 1, \\quad x^{3} + 3 x^{2} + 3 x + 1\\right )$$" ], "text/plain": [ "⎛ 4 3 2 4 3 2 3 2 ⎞\n", "⎝x + x - 38⋅x - 8⋅x + 240, x + 4⋅x + 6⋅x + 4⋅x + 1, x + 3⋅x + 3⋅x + 1⎠" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#expand() is the opposite of factor. It can be used as a\n", "#function or object method\n", "\n", "expand( (x**2-8)*(x+6)*(x-5) ),\\\n", "expand( (x+1)**4 ),\\\n", "((x+1)**3).expand()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nCb0JAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( x^{3} + 3 x^{2} y + 3 x^{2} z + 3 x y^{2} + 6 x y z + 3 x z^{2} + y^{3} + 3 y^{2} z + 3 y z^{2} + z^{3}, \\quad x^{3} + x^{2} \\left(3 y + 3 z\\right) + x \\left(3 y^{2} + 6 y z + 3 z^{2}\\right) + y^{3} + 3 y^{2} z + 3 y z^{2} + z^{3}\\right )$$" ], "text/plain": [ "⎛ 3 2 2 2 2 3 2 2 3 \n", "⎝x + 3⋅x ⋅y + 3⋅x ⋅z + 3⋅x⋅y + 6⋅x⋅y⋅z + 3⋅x⋅z + y + 3⋅y ⋅z + 3⋅y⋅z + z ,\n", "\n", " 3 2 ⎛ 2 2⎞ 3 2 2 3⎞\n", " x + x ⋅(3⋅y + 3⋅z) + x⋅⎝3⋅y + 6⋅y⋅z + 3⋅z ⎠ + y + 3⋅y ⋅z + 3⋅y⋅z + z ⎠" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\"collect(expr, x)\" collects terms of the specified variable\n", "\n", "expr = expand( (x+y+z)**3 )\n", "\n", "expr,\\\n", "collect( expr, x )" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nALd+qf0XOGtwV9YxoVIAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( 3 + \\frac{1}{2 x + 2} + \\frac{1}{2 x - 2}, \\quad \\frac{x^{2} + x + 3 \\left(x + 1\\right) \\left(x^{2} - 1\\right)}{\\left(x + 1\\right) \\left(x^{2} - 1\\right)}, \\quad \\frac{x + 3 \\left(x - 1\\right) \\left(x + 1\\right)}{\\left(x - 1\\right) \\left(x + 1\\right)}\\right )$$" ], "text/plain": [ "⎛ 2 ⎛ 2 ⎞ \n", "⎜ 1 1 x + x + 3⋅(x + 1)⋅⎝x - 1⎠ x + 3⋅(x - 1)⋅(x + 1)\n", "⎜3 + ───────── + ─────────, ───────────────────────────, ─────────────────────\n", "⎜ 2⋅(x + 1) 2⋅(x - 1) ⎛ 2 ⎞ (x - 1)⋅(x + 1) \n", "⎝ (x + 1)⋅⎝x - 1⎠ \n", "\n", "⎞\n", "⎟\n", "⎟\n", "⎟\n", "⎠" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#apart writes the ratio of two polynomials as a sum of\n", "#partial fractions together does the opposite.\n", "#The last two expressions below are actually identical\n", "\n", "f = 3 + 1/(x+1) + 1/(x**2-1);\n", "f.apart(),\\\n", "f.together(),\\\n", "f.apart().together()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJQAAAAyBAMAAABIV+8UAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD+ElEQVRIDY2WQWgjZRTH/5NpOsk03RZWKJ4c\nxF63I4jsyUb2sKyg25O47CGrFuxeNHgoXiQRlxUPkiwLLuulwYMnIQWPHpKLeGyPXqQBD96kttXt\ndhV937z3vm8mmUnyQb///3vv9x4z38x8KUDDi2iaY3hRFgrqvFal1eUsUbia4K4IqgqvXlicSSTc\nL/9FKO/tNJNMOGJAFW9zPFOWt2Cu0wYuacVnwokG7+XVTcaYK73zjDZXs7tb7EQrsSamK3Pex6fA\nupLlO+xEG3q1mi9Q5nzsAWsWeSCO9aGNTzfM+ej34O6jsc9FiYZ07/MM4dax0sUqvrvWuXazB1Sl\na6LV9jyNqIi5NfgnpQjX0UcYAeETrk70gALzDOFiLJ17zeAQV1Gmmwv+5dpEX52nDzHCrQKdH1Br\n4gFKpvIPKTe6LX6WMFfaAjZeJjY44YIjujQzSGsXbGfNwnlN2jXTpSSbNOhxJenynA9QuCoVhsc0\neV1usVi3WrnDdtbM3CcffUNgnf4qZqJRkZaki+0kstyhq7719xfJAtU6a2oWzkZWemw9c4k0SFsx\n28o56e/sMZC8LI0op6GDIbtQtp/04JBD65190FvMo9UV40Q5iby09zq7mrxYpI0tDq1txDBPOhkr\nIzFOlHMRdgEdFGaQ9oeJQ1w9hnnSydDHIksjyqVCbM8kcmZerWTE4QV8ieJSrM6qcjagxuyxGed4\ngVvRvT2lwzHcvnr2ygUqh5xOzcKlImI/tLrZTCzd22b0Ihaa9P59C78neSfCuYC6u2Lu4iY7urdB\new2fwm/jNryIo6lZuFRE7NdWBaGDv/Isxs+oriLC8nCiZI5WcuF08JdOV6lBK6IpmOiEwht8LOxj\n3XZz8O9FNG3w3kneyRzbfjRM8C7NfeOeN9PuCK2RMW4I5wLqdsTsoB+RDe4/7QELJnjPTPQ5Vx8Z\n40bCuaVz8rbjFI3IRY2zJ+HtbHyc02zwJzvSsc+09o8y5hmkxhhnM6nPeSW2UTKlG2fSgn5TMiPL\nuVT5L/ak1ZELp12YXpAv4jw50En947GagmURtyD1pPrzWtDBhh1Xeu7HX9+0cT2oSWtyrzZXYBzn\nV75Ca1+xgeyp0W0NzlDL/UTbNhgqfSRNjW5qcIZarkmfafJhJAVfSpnRjUgWM8RxDeAthTP/fuh/\nSJosUse9Rt+Enh3L8nufqHs0RU047rh3UX6i/9gu1jnL+v70Fjar3NIJvNH3Em7IrrM2mpaeapQr\ndbH0xpagv2U055cqt2UeV/6AUdElexjkdrDBPG434rTqLUtPNznc51Kh6tent9DsJBe2OacKuI9T\nq/J1grsinCrgR/ml49FxLrjOBOv/lwXrIiv3e9IAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( N_{T}!, \\quad {\\binom{N_{T}}{n}}\\right )$$" ], "text/plain": [ "⎛ ⎛N_T⎞⎞\n", "⎜N_T!, ⎜ ⎟⎟\n", "⎝ ⎝ n ⎠⎠" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#New symbolic variables are defined using the symbols() function\n", "#Remember: x, y, z, t are already defined, as are k, m, n (as integers)\n", "#N is already defined as a function, so don't overwrite it\n", "\n", "N_T = symbols(\"N_T\", integer=True) #Defines the variable N_T as an integer\n", "factorial(N_T), binomial(N_T,n)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARMAAAAUBAMAAABc9cSHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD/UlEQVRIDc2WT4hbVRjFz8u/eUle/tRSN100\nFTfiwlQRRNA+7cZFlUCdTStDRIRCi8aFiFRsXLqwCczKYdRsLLhq2qqDDGIW2jJUTDZu7TAgItIZ\nO612qrHxfOfeOFE3oSJ6F4f73r2/8525976bAYIK/gdtr2XYCexefoid5RMD7Dr0CHDxxGEv0ZF7\nB5D8Ne0X5z7VKwESZ2Ivg+XzzT9R5jwGbEKh5v2Br331YpnvH0NQQ6uCzzvpOFrFZx3UUGw6STWj\nZyExh8n2BC4YLEDiTBAuArsQbsJTb/YgZzjAhoFMFc4feM5Xj2IgUcPMFkp1PIhktdhDth1WEMQS\n3AN86MQcJlqijXzMZwESZ/LV3BA42cTPjoq+3ehBzg7QMPBqFc4fM/O+OpaYsIzcAvpx7iqds3UU\nf8tXEdUleBRo9SQcnGzJVYQs6gBRMgFm+PaDTnTdoYzVg5w9YMMI7q7C+eOOA646sALcqQqtSrLN\nTmrIKLlrvXxFglvAmaZEs7altIrc1hgQxQfusqLANshTjCJnDyhKPlWF80f3gHkamOrgZetHx1B6\ncomHlas0xMbmOUiinxjlNZOGDU20fg25G+6ZgCgzGUe50BVKilHk7AFF2csorkiibFEE5mu4n/3g\n42fQfxzZJvtnusiPDkIS/ApcPmvS5chk29NFge+tEZCYiY+y+/meUI4wipw9YFGihkVRkYtgFAcm\nYhwlD3zS6Q+RXmTvBeDU6ZsdScAFuXzW5G9Ran9EISDKTMarkl8Q6qOY8x4HWJQ8LIqKdC2KA8M6\nFqyP7CK/ocQvQLqGxCpOLkqm2SAComQyjoK3v/TbahtkzhMb9JZFkX84cFGyXIPCjxYlKCO5lYmR\n2IQdnWwZhS2Jnb2WHdtWk5UmG09haMdWgEQmLsoOYP+YYhQ5e4CrEnUtivwvgVE8yCjcoNKQUYpt\nW5Wwhh19FliT4AHgvp5EZbclyb+La81vhYBEJi7KqMconmIUOXuAUcL19Y13G/I/tb5+8zsP5up2\nbLNVZK4WuKNtu4dfYmDsk9g99bST7RTq8cZKx9YzwFFm4qLMAy+WherYytkDdlZU0PkD8646r9oY\nH1EraDXwA1aawbHluXruIBINCTLN6B0n/ZgWE+0oVga8yARInInulbsQ3nCUosiZq78yGB+lEu8V\nK0K/a7460l2c5vP7sw/zYM9eQWo0GtXxzZHDcBItvc6fQ5PM8Ykc7F565Yp9NwIcJZP099fXkJs9\n1HEU5t57qiJnB2gY+f23Ks4f50drrjpSrMHtmKa9Mc2kfzCHtz5/Dqdq3alm3f4k/hxi31R4ZBv7\nL7YopvnOqQokppp1+5OSdk6CCuU/b/yH8nc7mrL8BOz2igAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( 3628800, \\quad 0.22313016014843\\right )$$" ], "text/plain": [ "(3628800, 0.22313016014843)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Use the subs() method to evaluate an expression with particular\n", "#values for the variables\n", "\n", "factorial(N_T).subs(N_T,10), exp(-x*y).subs(x,0.60).subs(y,2.5)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOIAAAAUBAMAAABi9fzgAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADWklEQVRIDZVWTUgUYRh+xtl11/1z+jmEB9ss\n8lKxUUfJpVNG4RBhRELroUsIbkLZQXLPUiiB0Q/FdslDhUpBPx7cBPOQlAVdurR1LDCJNIlke75v\n5pvZGceiF2a+9+eZ5/m+d779ZoFg08pWPmUE1xvt9KfgclVWMcmUoNOa9mXtelvJdjhsUm6Xcjyj\nlrHD2nVm5KLJtHH7fhWTrgORFTtsz6s8MKHcU8rxjHElFB735AOCCYRzGCjYFdKdAW6sxaXSKhcp\nKa96/OwE/baXLDkpj0OmWhN1w3aSdDeBnqwHI4KYWgPCCuvB3HWik7a3niKZ6oqo/WHDSDdlOoqb\nsw5Pg+Phqes6nlZ03HjBctdTJFN8yVW06MZM4MjCK601F3q2Y65bMEzz6ny5ZbYE9Ir4WN9uhPtn\nCwLHMJEGwnNdl9nSCF1hStGHlEzs2VI1XfQnH88ghngOsRZsFQ09wFQ+9SA2DnxlqN1Gm3HYQIvE\nAXoZOIEvpftAihBhtqIfKZhoQ/lqulgOiI4gAT0HfRj1ZQAPOXkzspSk+geG8XF8zI4C7YcEjlOe\nB85jwHxLpSJjmq3oRwom2j0PXZNIjbUY0Kk4jvoSw+tcI+IZemjndToNhFaB+rzAAXUFwMQjeggt\n8haZnHx+a3IytxYpmICadDWdeCfs0dR36FTMOIrkL7EgFYfoJVeYyQicpQj8FmWpyNFeox9pKYpt\n4dK9g2ZAM/GtoLuKshftWeIwyMtZ4zaBs7qKkNzx0SLrNFvRj5RdTaaxgVPPCtwgQmkkDIGvLeuu\nIt930nyDhGntHL4dzF/lBrgicJA7531iETNrdo4fKXfOQeCFS9fQ13uW9CPQDbZUdZU/iaH5VjRy\nUs28tDuIGG1ZPJE4+ZOIruqL4pCuybNOs9foR4oflzbat7Po0k1VKr+4Vy+9vhjqWT7es3y09Rqf\nZys75jr3lOk+5oWOXeegNV8oCBxDtjLcPTO9QDee5Y1mK/qRgileqVSKHjrrEc/dPeWqjpcqhHvK\nqdNJKVaBpOsyyTCYjqX/P8nDhl/Lil0mGUdKwTBgryoEf610xf/vr5XDJBmD6UTJ+SJ7H1DzcL7I\njrSqrBkdJlkJphMl9V8hpRbjYxK7WNgna/jLXTFJCOn+AOfH9VopfUV8AAAAAElFTkSuQmCC\n", "text/latex": [ "$$2 \\sin{\\left (x \\right )} \\cos{\\left (x \\right )} + \\cos{\\left (2 x \\right )}$$" ], "text/plain": [ "2⋅sin(x)⋅cos(x) + cos(2⋅x)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#But subs() can also be used to substitute more complex expressions\n", "\n", "expr = sin(2*x) + cos(2*x)\n", "expr.subs(sin(2*x), 2*sin(x)*cos(x))" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAAyBAMAAABPMGYoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAGD0lEQVRoBdWZXWhcRRTH/7vJ5u7dr2yaB8Gi\nub4IPki2NGgRoYsFxZaYgFiVIgl+VVHsDQTxwZh91GrJ+oVIqF3xRVvaLBaqVaELom+aLRUKLTGL\niCjKNm1aUjU2npk7c/d+ZTPXmmVzIHdmzvnPmd/Oztw7dwOQRQy6bDAbb/D2NqobphatSdRIXtY2\nUnlMwu42Za0NytheRYh41hJqjyt2aIVsfGBJcRjtKUsYzyl2aIksrYqP3RbPSDutHajj69bqebsl\ns6o6iDp+7G+WM8GvqtnXXaeODz7vemHdkcIMEAJ/hq36WcObPbLtTq+rWTukvFkqioXAn6yS/g5f\nvs14wOdr4ggpb5KJhULgZ2qkf5J1ctk0ZssuR/NGSHnzZGHw07RrU3/58r2FU4bPubojpHz1RDwS\nYvaThM4+gs9CPgpCyn3DOR0h8NnCiY86O4v6QV5+IVqJtZaSW34kIKGyq+PeazuDxMmSwyuBXgO6\nCtL/LdvI3CI5ViQLvEGXXbISXHrknWt92uAsfm8DCPgcOL7tDakRQH3AJEdl/tmsjH7EKxkb4xUZ\nCC49cq3mlwWeI9c66TaAgN+h5dFniMwCaMbAbNU3WDQbrZDTomLRiNDE/FqK+uQ3sT4uCzpHajuG\nTJeoWSORQ6eJrlGhEUDEPjLs6/b9Q4+wxNN2QBu1qsH4PvmLdke7Ergh59Xx9TK6iuhcFgkFEK2c\nmYoc4ytZ27eyQr5kUQaAn6xqML5PnjEaPUXtP+HbQMBJILPUwBdA3XnMl9kI3x3+MTmVT/1y99yg\nHDqdo9rED5+ergLiZVjia1t6hzE2twmpc0drQs/k2tyu22nlWFtZ5uFlaHwP0BmeRV9yA3UX0Mfw\ntQJ0ZPLQD+AUazOLl8ifTRzUa8Ax5gAk/onh1HOpacSrLwFFK8TlY/ik+gGdYWvC1yjC4nuB9vNU\n/Vk3UFcN202KRPcijXiePQS6S2JQfZjm0YwsxejzPGr5JH4dsWV6WUgt32qi6pDfgD5zD33KovA1\nirD4XqB3eap3PEC0HYZ44NCBMsevoVvydBk0+8gUWHyW/iL1+m8v1Ot58i4y1zBwUb96nqrcmNzE\nr6yeWuAe50UVv3uFGfX0APHX8Y6cCwjQRwX+2IVFjl9w40M0GT6ZmP3oP1QfMYCr2s0rORYgY/gA\ni1wPPuvOzQPE8fkGsKbXAiJ8vniSJmaMOC0eBz5bPDTJFXa9jV1sfHv2Fz9D4pIVApen+J0tWhS+\nRqE6+7KHF4gtnlgOX7qB9KK1dWlaO0sefLZ1Y+Y80qZv69Yp0pVD9NJjwE4xIpM/nF7A2f9l63qB\n9tMoXwPn3UC0decrFKFnerxMU++cfXb76x+eAju4baE/MrF4cKKEzannkcnSY/91K8TultEr8YVk\nCejIYrIm3KJgs+/1gR5b2jW3Tra8QL30HHqzZ6DoBqLz2oxBXaI3ntuUGrr88tDlb6boFMqNLYHx\nuYm7StT6w3JJfG3H6TKO99yDW45+aFghkFwbPHvmMDUzFejvCbdV8HOkx4eBfT+X8D59twHmBaLV\nm6E9XXQDdef4FgzoT67GoUE+gCV+oL4hp0ck9gRognzstuy05NZXK862qNOhwWkCaDIbdGQTQv+R\nTXMncSZ0nvDowYusO8hbQb6IRzeOiLwZOCOJnLMlz5B0ZKMvYBWLl2VAnE9lM7i05VqNHg1VvyjI\nhwmP7j7gaY+LN+UWs2ICiI6bei1IzXzJgoy4+0qvp7Tl7HMkPEHWDPKh5BE+CwxVPD7WpNcVhwkg\nOvB0LDjc7qryy6LVTcqPuLOEa10wg/HZHc22hFgXQzQndEtrLztkqvI8Q0/4K6riFumiF1UHSrIj\nirzPq3Zab52eVx2B/8azXVXdIt1W5XHiRZL2G8r6VgjZW5ui8Z9odXW9Ytrrkj2IZFkxAZ2Z2u3W\nk8ohrYpv7donFD9sS2Qne3rvVxzI+ucQRth30C52YWXlT0WWTI4LRaHYqX1k4jfGpPztqn3IVEjs\n/6aLn0FU+rSRJm6tHXq5y7cRlTLKx7Zy0K5tnEq0ZrN2GHZ1w1TG+f3yX5YxrO5i37Z6AAAAAElF\nTkSuQmCC\n", "text/latex": [ "$$\\left ( \\sin^{2}{\\left (x \\right )} + \\cos^{2}{\\left (x \\right )}, \\quad 1, \\quad 1, \\quad \\frac{1}{2} \\sin{\\left (2 x \\right )}\\right )$$" ], "text/plain": [ "⎛ 2 2 sin(2⋅x)⎞\n", "⎜sin (x) + cos (x), 1, 1, ────────⎟\n", "⎝ 2 ⎠" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#You can also use trigsimp() to simplify trig expressions.\n", "#We can also use simplify(), which is a more powerful\n", "#(and sometimes slow) general mechanism\n", "\n", "expf = sin(x)**2 + cos(x)**2\n", "expg = sin(x)*cos(x)\n", "expf, expf.trigsimp(), expf.simplify(), trigsimp(expg)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcoAAAAcBAMAAAATouJpAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMkS7zRCZdiKJ71Rm\nq90icBAQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAF60lEQVRYCd1YXWgcVRT+Zncnmc1uJrEIhUrN\n+lSqaBb8SRGlq+bBH9QVRYlQssVKLT44DzaxpeJI0Yda2qVo04JiFNsKWoiKWCrYfShtlarxtxUt\njWilomDS0tpaQzznzp2ZO3dvdvqktRd255zzfec798zcuTO7wP9mbL6hmjrX8+GkivyXhLzfWUmr\n34IzJy33wsBd3zqTNhMjx+Msq5yWe2Hgbsk5kTYTI+dqzsqlr/Y08X8JL5xKL2Tg5BuUtrw5db0M\nHWiGOOI0gvgscADyt9Qp+nFItVLKqFRhu2LthaowljdxjtGUgxNk7YhFnXANd/pxULHWStsEG3UO\nK8mx2bqMVZPMeUFv5G0WkdZpJs4QkA/UrLNSlA45n7542BVx0L9ulwETbNR5QFcQfs6XYZMO3PBU\n99QlrVgTRs4XB/PsjJyNQMeYTIoP+yJzJLIUQypRJIQL0elWaECkkzfiERzpqNmry6rH9kJcwYeW\naUaO20BPlVMT43jkPRxZiuH6oRPCs3QZ6dijYYZ6jGCEOgrq7NW7tO768HomtEozc9rK+CSQdi6J\nSjgTkZkrRWZsbIjMEFa6NOvcGqXERusy+VzY5bPdQU7HzMwkWS3TzJz2USyjJ+aa/ZW107h0+9yn\nPdJpr9GaHz68gNajuGntFZvHMDC8SfAIp5vZHvKwrhre05BdGnQeWg5nm9w3Htz6OOyRVSXMPfik\noQyFlHFAdElMZ/G4defS4UMhljY75mmczClcC9wPTOBu4CfP4beLbAMYwGfez0CxQv66MetN6ziy\nnuABN1H3hVE8I2FiyC4NOvXdaKcrsJdIzluY51/uo88uwyVfL0OheNgedymYuXG4fdjoS1BP02fH\nNI1jTXF3V1bh4WbgRuBv4rhjwEt4tbqLpj9Bfj8KU24d1pTgAb8BL7RV+PQImBiyy2YdZ2wZsjTd\nj4iUq2BP969Az5xtaCdfL0OheOTBXWaYmR1HdhRdDQnqafrsmKZx6J3pFwqefArc5XXAn8TpKAFV\n3MZ0a5JO6Gkyeqjzs4IHvE5wh8dUhpHv77/njf7+cZOOjR3o8iideIM1SjgHdNX/6PPJ18pQRBnv\niC7BTO6yIlQErqU1zY5JGsc5x9fSfnGmxl3S1Qm7DCzRRoZje0rAScETXaLXp2UQdEmovJYGncwZ\n9HQHXfZStwV6E+0qD9zLJ46nopRhJxp2PeiSmdxlOdmlktY0O9bQpOlaUpfPoXhC6ZKvN61Ppmcm\nlGt5WvDEiqU9izYuATNNdmnQoZW9mgjX0Ce6lo9V8XkpWFZKGWLEo3DkyNGdHhxmal2mzY5FNA79\nlvkK+AD4QemS7933ac9YKbeXfmqjo4bMCcETuw+xqXiwOZGq7NKgQyxaJGL3ofsSY9uB3qs8dFIJ\nvQzR1NFRFrqdDa1LPU2fHWtoHNpj6VTvrmIRL1e5YunxkTmXnXQaQFudctY1sMV6Dbm64AWPhUfQ\nG8LEkF0266CtnOENbQV9nLeR9+d1447CNmR98ZRSygxWiKKOLu6SmbRc1RWbNjvW0DjFUfRWsXD/\nx6X5M9/Mn/nivb/oCmUmYB9aOXSQ6Llu+rK/XeXj+a1fCh75vPyWjDzhS5g82WWzDuzvhvjhdAt9\nsGT5FjgrXillXl6zidxkGfcYU+KRXzzdADOto9P3HZ2+bPFOiSXTmmfHNI1D7z7BnRrLkxW/Q21I\nxKXj+mwso08Iyy45rA6hQ3em+r6i4Mky9Nw6v5FMM+ckOTkvWJRJ7r7IHYksxaC39c6Kzb/bQ9j2\nFTg2SedrDJZoBXlxMLaSZeox0NpKppm5Sc5gFdZoE5HvGjHsijSSh0VwG1ma+CxwRCad39FHrvmX\nV6KMbTwRkZRiJNKUuGomOZ8S9L0KCzv6nRqRk5S1yAwvpdAscEQmnQVD3eQuikKqkShTVJGWdiJt\nFmaS8yOxDCd6vUw+YBbh3ZfHLHAA8rfUKfpxSLVSyqhU1T6fNJVT5JuhUFMlLkI7+APn3YuwM7Wl\nR1XnYrb/AUpiCgBAc10vAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( \\sin{\\left (x \\right )} \\cos{\\left (y \\right )} + \\sin{\\left (y \\right )} \\cos{\\left (x \\right )}, \\quad 4 \\sin^{2}{\\left (x \\right )} \\cos^{2}{\\left (x \\right )}\\right )$$" ], "text/plain": [ "⎛ 2 2 ⎞\n", "⎝sin(x)⋅cos(y) + sin(y)⋅cos(x), 4⋅sin (x)⋅cos (x)⎠" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#The opposite of trig_simp is (for no obvious reason)\n", "#expand_trig. It exists only as a function.\n", "#expand_trig expands trig expression of multiple angles into\n", "#powers of trig functions of angles\n", "\n", "expand_trig(sin(x+y)), expand_trig(sin(2*x)**2)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n/yOFOvAv8WF+hc7I+BMAAAAASUVORK5CYII=\n", "text/latex": [ "$$2 \\left(2 \\cos^{2}{\\left (x \\right )} - 1\\right) \\sin{\\left (y \\right )} \\cos{\\left (y \\right )} + 2 \\left(2 \\cos^{2}{\\left (y \\right )} - 1\\right) \\sin{\\left (x \\right )} \\cos{\\left (x \\right )}$$" ], "text/plain": [ " ⎛ 2 ⎞ ⎛ 2 ⎞ \n", "2⋅⎝2⋅cos (x) - 1⎠⋅sin(y)⋅cos(y) + 2⋅⎝2⋅cos (y) - 1⎠⋅sin(x)⋅cos(x)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Here's a more complex use of expand_trig\n", "expand_trig(sin(2*(x+y)))" ] }, { "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.13" } }, "nbformat": 4, "nbformat_minor": 1 }