{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![python](python_integral.png)\n", "\n", "# SymPy\n", "\n", "`SymPy` is a package for symbolic calculations in python, similar to *Mathematica*. It works with expressions containing symbols." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sympy import *\n", "init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Symbols are basic bricks used to construct expressions.\n", "Each symbol has a name used for printing expressions. Objects of the class `Symbol` should be created and assigned to python variables in order to be used in expressions. The symbol name and the name of the variable to which this symbol is assigned are two independent things, and one may write `abc=Symbol('xyz')`. But then one has to write `abc` in input expressions, while `SymPy` will write `xyz` in output ones, producing unnecessary confusion. The python variable name should better be the same as the symbol name.\n", "\n", "In languages specifically designed for symbolic calculations, such as *Mathematica*, if a variable to which nothing has been assigned is used, it automatically means a symbol with the same name. Python has not been designed for symbolic calculations. If you use a variable to which nothing has been assigned, you will get an error message. Symbol objects have to be created explicitly." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x=Symbol('x')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADgAAAAVBAMAAADhmjDFAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAtUlEQVQoFWNggIDcvQJQFibF5sA8AVMUKsLh\nwPMFt2QAy1eckgwMXB/xSHIo4JHMxSPHfgFdkushXCSMIQbOBjOEL8MdwTNr1UZUSQYmuCTf//8f\nsEkKKbuqKaBJgLggnYwJ7E0c2IIOJMkmwPaRywGXTgbODXApxhkdQNB5ACQAcRC/AoiNASCS5w9g\nSIAEQJJcAvoMTAJYpEGS8Qv2M7hjkQPrFFYSul6ARZLX7qc5FmGEEADLRSh/xyPj8QAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$x^{2} - 1$$" ], "text/plain": [ " 2 \n", "x - 1" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=x**2-1\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Several symbols can be defined at once. The string is split at spaces." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y,z=symbols('y z')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's substitute $y+1$ for $x$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGgAAAAbBAMAAABihNf9AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABj0lEQVQ4EYWTu0sDQRDGvxjyMIkiBEQrr9A/\nINpLhKsEg5B0atTGV5UmWKYQfFSmFiFWtlFQbE9IHSzso6KFlY0giBJn9vbibZi7DGRv9vvml5sd\n9oDwSBdXwwsk9xqvkhyubaIzFl4huHuYuhDkQdKpM6hC8LcFbZCUXpYqIpakkjakJjAjullRZfGZ\nfqmr1INQsCBowIkDtMh5PD6gzB/Jc2rC6PnItTNvHw6QrgCNbtdPAO3yDxBXnXuGhoAaQZm6J/uf\nCYLG/QIMCIuGpzcMVekfqxVMOkozodsgaJZ6T9ZRc30Tmg6CdoCJWB5zEnQYBJ0BznAFX+Tf2Pau\nbRdUJQ8CHZXy0triWOKUz0QQms7IL+/RN4h/yHXVyhC1hxISerrmmS59tb2UIRoE5hF9ckUTChwE\nj7WIpiVBK65orvwmbqF9t67vhfemcqNgAergJoLY++eLvkYlbXmQ2kY2+oDeli7saD7zrff3PZ0S\nvrABkUPcioo2fxoBkUVqf030cqKqxIgV4Lmfu2T+AVVqW86f20tEAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left(y + 1\\right)^{2} - 1$$" ], "text/plain": [ " 2 \n", "(y + 1) - 1" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.subs(x,y+1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Polynomials and rational functions\n", "\n", "`SymPy` does not expand brackets automatically. The function `expand` is used for this." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGoAAAAbBAMAAABmcQfAAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABtUlEQVQ4EZWUv0vDQBTHv+nPmIRaFBxczKCD\nW3VxUaxQHDpIEcXBpXTwx9alFhExi4pbB0EQh046iUUorgELnaQV3FyK/0DVUTr4Lq/XNlBt8x1e\n7n3vfXqvd5cAnqU/mZ4ZIKkUvFPhupH1To1Y3hlg9Dxne+emUlraO1Wz8AMo5vCkL0odFvENjA8P\nAa9AwBRrrXihKoAWU+PwpXopdcBR6DQ/U7YRola7GkQZBa6d6CI0GkQhyeU5elSPJ4+4NUlVt6Dc\nuH4P2n7xAyizOQ8YJd9uKO6kkipdIPzppp7zmzFgms09QLf1lhrtpRRrA36q6ZXtnNEZW9e0FgJO\nhZ5IrF4mEnXhXGE0SwWVHaE1pzSySI9mh6LzFhVCskOthWbDcbrhXgzbFHVI44aIJEkF4zhkpxNV\n6gG45Zx2Q7VPELadVFL+OpZ4vhNPAeLau0Fb+WAtY4xnJRWMaXRFexXJPB4UgW32aMmXfHXd5ExS\nxnvuix0Zg5gVJ8wb8+eNon/WR0qaTfftNaLsvqFW5JE7itvraM7tc5bBQj8b9Kaw+r6Vd7mGnHc9\nO0sopsv/NxFfAKFfZV5Ua7A909sAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left(x + y - z\\right)^{6}$$" ], "text/plain": [ " 6\n", "(x + y - z) " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=(x+y-z)**6\n", "a" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nftKCC64AAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{6} + 6 x^{5} y - 6 x^{5} z + 15 x^{4} y^{2} - 30 x^{4} y z + 15 x^{4} z^{2} + 20 x^{3} y^{3} - 60 x^{3} y^{2} z + 60 x^{3} y z^{2} - 20 x^{3} z^{3} + 15 x^{2} y^{4} - 60 x^{2} y^{3} z + 90 x^{2} y^{2} z^{2} - 60 x^{2} y z^{3} + 15 x^{2} z^{4} + 6 x y^{5} - 30 x y^{4} z + 60 x y^{3} z^{2} - 60 x y^{2} z^{3} + 30 x y z^{4} - 6 x z^{5} + y^{6} - 6 y^{5} z + 15 y^{4} z^{2} - 20 y^{3} z^{3} + 15 y^{2} z^{4} - 6 y z^{5} + z^{6}$$" ], "text/plain": [ " 6 5 5 4 2 4 4 2 3 3 3 2 \n", "x + 6⋅x ⋅y - 6⋅x ⋅z + 15⋅x ⋅y - 30⋅x ⋅y⋅z + 15⋅x ⋅z + 20⋅x ⋅y - 60⋅x ⋅y ⋅z\n", "\n", " 3 2 3 3 2 4 2 3 2 2 2 2 3 \n", " + 60⋅x ⋅y⋅z - 20⋅x ⋅z + 15⋅x ⋅y - 60⋅x ⋅y ⋅z + 90⋅x ⋅y ⋅z - 60⋅x ⋅y⋅z + \n", "\n", " 2 4 5 4 3 2 2 3 4 5 \n", "15⋅x ⋅z + 6⋅x⋅y - 30⋅x⋅y ⋅z + 60⋅x⋅y ⋅z - 60⋅x⋅y ⋅z + 30⋅x⋅y⋅z - 6⋅x⋅z +\n", "\n", " 6 5 4 2 3 3 2 4 5 6\n", " y - 6⋅y ⋅z + 15⋅y ⋅z - 20⋅y ⋅z + 15⋅y ⋅z - 6⋅y⋅z + z " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=expand(a)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Degree of the polynomial $a$ in $x$." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiXYyEM1Embsi72ZU\n3au6f2Q3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAVUlEQVQIHWNgYBBUNGBgcE1gD2BgaGfgaGBg\n+8kABBwLQCR/sFAZA4N/NAPXAQb/LwzsSxj4LzBwf2PgDWDg/s3AtwDEZgaKAxU/ZPA6wMDAWP6Y\nAQCADRI3fgJiQgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$6$$" ], "text/plain": [ "6" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "degree(a,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's collect terms with same power of $x$ together." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAB8MAAAAcBAMAAAAHAgPgAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAATiElEQVR4Ae1bfYylZ1U/d+Z+zNeduWxJY2Po\n3t2SKn8MOyUNiPJxTUSITTsDRNOoZIcp2UrC2gk2rQmhHbFQIIpDay2LJAyoJKJlp6iRUJAxav0g\nOLPduE0tQ6eGRtsYO0O7Ld20Gc85z8c5z9d97y2g22TfP+77POc553d+5+O573vfey+AOZpLy3bk\nTn/39ze74Ys6r5esmg+fKi0NKi9BLJ3ulCD6LBmT418v2iaYlboFb/3sJhMvoaA5e0UoyM/EhYzy\nmkZaYKpMqohZ1ak3vDVuIQXCw4GQJM5SlT2sKIiRX8wOygxK7X7sJ3JAAwQL3le/QghxGWUcKggP\nm6plYlD076rvRCZH9+ciyVDTib2S+nvg9aWlQeUFiPZye70A0WfJWDR7o6sF20RcqVvw1tfuZCfx\nEwgehIeDeX4iLmSU1zTSAlNtUkXM6jb2n9JWufFASBJnocqCLApiJKu5UZlBod3HF67J4QwQLDhf\nfQshxGWUOtQQDjbVgjQGRX9krtaNbH75byPBcNOL7RafWojtboPNXiwbck4QI6lNe7G1a6T/EC/K\nUrxi52O9qacLS4m4Upe9dfvYJfygdkPFFj8DtyaAqUCoySjVEkllXphYJtcMocNo/HlFANUhMqbE\nWdkooiBGElpm1CfJ3O7dxOYyOJDIUFAdrETbtxBCXEapQwXRJwRIt6yiP72W4P5iIhlKcMhu8W8m\nVh+G+WTbJ0r9BQTRmMvo2Kv41Hq6VrzAG9WxhfrZ1CgvGUAXvb0zMfZ2GX4jB6t2yEBXce8CZJTw\nCAQVeQEils01QBBGo7KoA4TIzNzdSmWjaAVnFMQWT/ow4HZPS/ZEDGHm1cFy3li5ohBCXEaxUwXR\nJwRIt6yiP/P52bjD3nX4FHuqL8cO0/mNiWjqc3aLfzJZAn8Lk1kaVIS3K9dndC/dYOF4HAxK7VLG\nyIrKHy1Sm0pd9NbMJM7aZfj9S+UWr/13yiMjEWoyyqh5UVVemFgu1wBBGI0HkhbyPsygOkTWU3H2\nuSk1kF5BGUVe9bQPA273tGTn7C7QKDiuDhaUr36FEOIyipzR1EMo2ETNbVlZUPTntxorssCjt8AH\n+HwVvh67fIPH0YsXj/aiFWjWzBZvd+3KHZ1vrTmlD7mBPf/8sa8CvOL690XieBpBjKX7eOQOY/MA\nwNUPfy3AdEsCSuy107GurMmoufQ+qJ25aUMkNIp1s95+K7RRdsiPj/FDU/9uh4vJFo89v6prVYPT\nK45dGcSpqMUkuYw6YgJK80LSmFgm16hFYfgeqC+01slUjrisaYis2yfOuFFiVfAKSXJi5+wqZeDp\nm3aPS1Z/Aa6VgID885EGa+SqRZUvVYj69n0bQT8JcRlZjwpMqqpgQfgYC7dlrT2Apn9wDdLbVPOR\n+fcBLllor3ozGYi4lizfaLf4fAf1v4QvT+4/4yybW25kzvUtOLkMn4Yf64VyPctAjEQwpG7uOut7\nUJuDGxYCzPiGlNlrp8e1Pzeu3QUPwfha7TYnMOdIN+9tNrShmbFDfvi+/CjA9P7+IokBWr14i6ee\nczdytf+Ea3pBnEJNRsZHEjGL47xkieVyDRSG9ADet4cPM+KypiGy/z5xxo2SqCqFKDmxc3aVMtD0\nN3sAs6wnL7VzMLPgp+zfzqJgURq2qPalCnERNM+G/STEZRSDucaJ+kTzMbQoBnVo+hjHs7T0eVm/\nAg5ScC3cSF+HyXVZ8CMlXmKhWNe6dotjdLU3vrkD8Aev6TnDD7qBPY9gHldaO9BcjRY8nyxEfZfV\nJ7rKqn6OJlj50Q5M77Q0plmiZXMQ+5ZSoEDVYWOZ3IL74BaA96olkxQtyHubZxXNz/qgzrzoNG6Q\n8eteaWEOQLzFU8/za8qn5Te6A6NbrWwYUUCmjFrVoLm8OJ5ZYjbXUmCypTCkB0Y7tfAqEZc1CtH5\n6xNn3CiJqlJwybEUY+cca8QAZULftHtSsrMws8y29ML+eRYEy5HELap86UJcAfA/YT854gA8yoLx\nLmTHClbz4TWwW9ZlFoWK/viyuYqrGn4X+Ao81oNG+O5s4PDziBJfykKxntjefoFT8wQtHOkAzDkz\naCw2NvyEBo3H4ODq5Jx83pBVj5iDuJ31VECXbtT5jWp6DaZXYPR5hemWPDSzVwrwS/CrfhEH1vPR\nHo7/In58EOkWvI1xBhQ/5wP54R0ybvFRPJvjnu1HHnRjc4484ye1ecazWpbfzCo0d/NhxCSTiAlJ\n8uJ5ZomZXPtyMAkMQ/XAdI9vTiw9PMVljUJ0/spxJo0SqUonqeRYirFzphUxCFrYtHtSsrv1VZz9\nm9B1sDaSsEWVL12I/wJ484b0kxB3oyyYaxwABQsgfEzW7ZZ1mUWhot9Yn1glNVXDd5u7yrfhm8UO\nLSWHFo8v0LKy5rs4vHfDPo63+D9/8c86JNXHyeWZOWjwJViLBTHMn4EwNzYqoLHeCN79Amx2YHwP\nt7jCdEsendkrhalPf/Fev4gDG8vfkOwpzOYaDewR6xa8mVtgxc/ZIb94i+N7eJSU2PNt8GqtYfkd\nXIcRHadzgamPAjJlVBFzMJIXzzPc4paYybUuMKdZ9UCzo26bbaKisgYhOn/lOJNGiVVFQZIjFCPn\nTClgEHS2afekZL8Cf2pjwRP752kQrI3kCJZnTpR9QYNCfLaDW1z1kxC3oyyYhlAhCB/j1m5Zl1kU\nGvoHLnvL5V344HHuH05Q7fCV71iC5vFFMsRPJzOfWfo3qM124RrdY0YMjU8s/KO5Z7PbwljDB55a\nQ+vWDr7wVfx17/+2xXhyf5+E+qh9BA5uQeN71onBJAVfMMofQRh/BuLVDGEC4iimlq7rkewWXhjb\nU5huiVfohYNSCvixeBfg2semlo2K9fzc/bMLtRdwi3cPPAB1fAMhDaProXhgvRl+xtvIDq0ofs6O\n+fFOunl2Awxw6xs/zTj+JfZ8/+VX2uhZxfKbxqv42WwYzpkHjCNmqpIX3xiemMmGIWZyrdoDYTEM\n3RrHznhXdhCVlZF8hp2/cpxJo8SqrMDNwslhr75jIufsN04y0zclM+2uSmZ6sXXmlERF/m25OFgb\ni43EtahtYh9tXIjfe5nqJ6mqDSELZiCSEBQfzoLdsgaCJUy/ttj60NiqC4MTdDH8ZvdjTvLXAAfv\nhum15sQOHHFCPrMYfvzw9jpuZUZIrc1jOgr+XvwqO8UwgPVfOwXzizD1jFUwmLTmC+YgrD+2O4qw\ndguFUTxklhc1JovUC7OPFWpfnnXPPIzn2nPL8EQdHxRuLi5+CUZ2QWkoMBweNd40vwbfwnDCM/xo\nJ0128Mt4Axyi4ROM2DMrJJlp7sL4s33CULBJxAJGWra3zO0FE9OxmlyHBcY0F1rDeI3LSlLBtP6q\n4jRQ/DqQquuYyLn4VYCGfqFkabOyf1Uuh2kjcS2qDJ2G9tl4RvcTr+hCDAGm+aQQIsFbjr2JnuPA\nCXo33ND5Yyf5ONZxD9qP/gLu1vuckM8shg5chbOJFRKl1pO4/c1VHPt5JcWgVTp+fWF+C7e4VTCY\nJHcF4xsBgrD+aA02N+iVcxJGYXj+NmhMUtUHs48ValBnwqhoPNf2O/Cdl+O77uZ71h6ih45KQ6MB\nWG+a39TzpFLiR1scj6/UDTBP1EvimdfSzNwBXzjXJwyFmEQsYKRle8tscZx/JYjV5DosMKa50BrO\na1hWkkr+rL+qOB0U2cbF4LUwCumYsKfErwI09AslS5vV+JdyOUwbCW3xqMudhvY5NodfZfl+4hUd\nwhBgmk8KIZIajLuufu+JE584ceJODPkPhdNjeDe2Aq2znekufA/FtU99FI+PbVgxfua7F6VTu5C1\nHp8jJBN8+2mHQTK4hHA++hkew/SjfLPpFBjTI5KKg7D+2Gp+AZonTnzq8RMn5lQUuHQnLbe3zM2/\nw2STiH3glBW+yXVysQB8H+DWt9ON1SH4D5jpoo7RIGUdgfOm+eEVug8/u8Uf+VkHTJDCL+OZFJLM\ntA7f/3wpDDIQklzGQNWAkZbjSWNHrKdjxVy7pPj2wDQHrUHGyh9OorKyAudP+UszTGpCTSFWqjqK\n7ChyLnWTJDN97UyVTPWNyyH71+VCTInEtagylAw6CIBt4A9+vp90tEOCaT4uYQLhJOiAG5eT4q5d\nvJetBLc43se3noWjHXNVsnInNr/TnNolsb3m0juBPca2aIDB43888AvBBIPV6j2YPDeDT9TPOYV3\nWnOHqCDU70Ln10htokuvQRS/SwJ6iKAxSaYODipRkF9q2ljwA8uty/h45OQa3nbTpUw0FJjypviZ\nr6NK/Ggn4f9xbliwwAEcThLPrJBmBkb3+oShUNOIPRhpWZ5mizMxHavJdVhgTHOhNdhrWlYS+/w5\nfxVxMpR9GUTVUkyce78a0NAvlCxtVvavymUxbSS5Lk+9juCO0P3EdFQhhgHTfFIIJdnckKhNgvRe\nxht1/O61dRZ/AWKeRXhlI56YI0FjhV5Ta38Vx8dC7b0Ug6xgZg+3+OQ6tJyCwaQlWzDe4gZC1uxP\n3W1OdBR3ouXEFvycxiQ0fTD7ROGPvIr1/Cbc4gt4R3prp70K9MxJNLwqDsSb4md+9F7gxxfLxwEe\nccAajsaJZxIKus8MjM/1CYOM7JFELGCkYXmaLc7EdKx4FccjLDCmudAapJuWlaU+f85fRZxsZF8G\nUbV5SXrK+9WAuoVZrkuWNLwpie0DUreYNhLc4kmXp17vgXpP9xPh6EIMA8b5MHxSCJFMdI7ASIcc\n0cEJ+hw+Vjpk5gD4uA2/+Wrv4JfDk7yb3YIV38PfFKjHbYG13+JtfsdPMBhseh3Gnm7tAJI1CgaT\n1nwjY/4MhKzBZo9UOCdhFLTFvwXwypbCJFV9cFCtSAF36qhVsp438bM4PTrGD+Jz9P240tBo4k3x\nMz+AKvDjLb5FF2sDrNF4HHtmoaBbfq3vYhpa5TDYyrwkEQsYKdjeMlucielYN3ukE7YHprnQGqQL\nSVlJKJjOX0WcZOSOQVRtXmLn4teB0dnQV3lQJUsbnr6M/Y4ql8O0kRxxLSpd7jTE59QWjPRUP/GK\nIuDKMBCY4pNCiOTo2jfgrZ4CJahxbnJX/ntyHCWvhUvX8H9OR5e9Hg9IPHX79T+5ANBeJElqPbpO\ncuSLPyi8pZfBoOXWMpzswsfpjyLsxGLSki2YQKg1vKsnFU5wGMXP4K9zP3Ls9IrCJM3w4KDEKS/+\n003v/7DVsp5HF2tPwNga/jChvd54FkBpKDjxpvmpJ+oJP7OTrgbcogZYoZlh7JmkCt3yG/lk7W6I\n48yTNGWUiBUYYbstx+89TEzDyBN1aQ9Mc6k1CDAuK8lU/py/ijjZyr4MomrzEjvXsShI1cIsVSXL\nNCv7l3I5TNnicZc7DfH4tmPHf0r3E60EhRgGTPikEEpy0eEDD8rWpQTVXnNo9mZP6locNbffgL+4\nXHqk56U8IHEbbrkLJ+MbJEmt+d7+9JN3LsPV153KYZAZvGv7rwAuPuycWExasQUDD6HW7NffnJMw\nCryhHt/f319RmAQWHhyUOOXFrdbj+H7Fh/N8/PQG1JYuw5fXzuLP+ZSGVaSTeNP8Wju0lucH7Tc9\n9zqon3ljxwKTanhEnmlRoXt+28i4HIaGjCJWYKRle0sR07HihQePsMD0uaXQGqwdlZVlgun8Qf84\n2cq9DKDq8hI5F78Oi8+qhXne2qGToZY2vKHKfUBqDtOo+xZVO8VpkLY5Pru//33dTyQNCjEMmPBJ\nIQKJdc4nlyCRjfX82Hzd7Kd6gL+BwyO1Nu+KSrMPhtEKFVJEhfUwj32ryIq55Mg8xBS5H2UUMp7x\ng8RQR/JTKWcd86sEzihk+OGniYGPVDWTR4Vmch06VWGkcMqWhqlCzl8mzgjHT0uqIUWjnjr3MNEg\nLFnBLnadRlIwjJ3l+ulFgFXz0Y5fric8bm0Z0ehq9C+DQHOJZ6k1PKbV+mOgZqKQQRTAO3hY64nE\njqbxwuaPBNOv2EFeIfH8evO3nNi6z3y8S4tV/PCxOv/fpwyUVUj45cPIomZVMzyVscl16NSlOQun\nbNOy0mLqLxunxpFxWTWkiBaV7AQVb8e6NGNqJbvUdRRJyVD7wXGKwwpDg6U4EUTkNzP9SyMbW57s\nZlaNKP0zqVMNftTYF4MsKhUcLJ3tf9m0yI7NkwE7qcSsVDBAt8OXM676iQ52CqsBP6gErlRgNwOG\nQbpDqNoIsrl2YVTCVSoYL4PFybpDqA7o3FBQJSvZVbouGdpUulMlDitWgw2G47xmz1cZaePwt7PL\nLJzsldb+VS/0xSDFSgWN1prTMz2e2lGzSsxKBQP2jtkNhTrI8DdKSgE/qASuVGA/A4ZBukOo2hCy\nuXZhVMJVKhgvg8XJukOoDujcUFAlK9lVui4Z2lS6UyUOK1aDDYbjvGbP8nA9u8zCG4tLo2vFpR90\nYWyjiBD9o6Oo96Nd+J0i/PnBr0gvXcjn+iUXRhpYJCmXLFK8MPUZKN/Ce5UXO7ipbHhJeen/bqW1\nWPR1XvArssss5HP9kgsjE1kg6lOyQO/CRGcAv4H/0Rz+DyMZePzJwf//cVWZwnnBr0wvWSnk+qUW\nRhJXLOhTslj1wtxnYEI/3fbSH8KgXXqYRdh/8kNw8INC4O8Aisf5wK9ILl0o5folFkYaWCTpV7JI\n9cL0QgYuZOBCBs6LDPwvonlio5stoTYAAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{6} + x^{5} \\left(6 y - 6 z\\right) + x^{4} \\left(15 y^{2} - 30 y z + 15 z^{2}\\right) + x^{3} \\left(20 y^{3} - 60 y^{2} z + 60 y z^{2} - 20 z^{3}\\right) + x^{2} \\left(15 y^{4} - 60 y^{3} z + 90 y^{2} z^{2} - 60 y z^{3} + 15 z^{4}\\right) + x \\left(6 y^{5} - 30 y^{4} z + 60 y^{3} z^{2} - 60 y^{2} z^{3} + 30 y z^{4} - 6 z^{5}\\right) + y^{6} - 6 y^{5} z + 15 y^{4} z^{2} - 20 y^{3} z^{3} + 15 y^{2} z^{4} - 6 y z^{5} + z^{6}$$" ], "text/plain": [ " 6 5 4 ⎛ 2 2⎞ 3 ⎛ 3 2 \n", "x + x ⋅(6⋅y - 6⋅z) + x ⋅⎝15⋅y - 30⋅y⋅z + 15⋅z ⎠ + x ⋅⎝20⋅y - 60⋅y ⋅z + 60⋅y\n", "\n", " 2 3⎞ 2 ⎛ 4 3 2 2 3 4⎞ ⎛ 5 \n", "⋅z - 20⋅z ⎠ + x ⋅⎝15⋅y - 60⋅y ⋅z + 90⋅y ⋅z - 60⋅y⋅z + 15⋅z ⎠ + x⋅⎝6⋅y - 3\n", "\n", " 4 3 2 2 3 4 5⎞ 6 5 4 2 \n", "0⋅y ⋅z + 60⋅y ⋅z - 60⋅y ⋅z + 30⋅y⋅z - 6⋅z ⎠ + y - 6⋅y ⋅z + 15⋅y ⋅z - 20⋅y\n", "\n", "3 3 2 4 5 6\n", " ⋅z + 15⋅y ⋅z - 6⋅y⋅z + z " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "collect(a,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Any polynomial with integer coefficients can be factorized into polynomials with integer coefficients (which cannot be factorized further). There exist efficient algorithms to do this." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGoAAAAbBAMAAABmcQfAAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABtUlEQVQ4EZWUv0vDQBTHv+nPmIRaFBxczKCD\nW3VxUaxQHDpIEcXBpXTwx9alFhExi4pbB0EQh046iUUorgELnaQV3FyK/0DVUTr4Lq/XNlBt8x1e\n7n3vfXqvd5cAnqU/mZ4ZIKkUvFPhupH1To1Y3hlg9Dxne+emUlraO1Wz8AMo5vCkL0odFvENjA8P\nAa9AwBRrrXihKoAWU+PwpXopdcBR6DQ/U7YRola7GkQZBa6d6CI0GkQhyeU5elSPJ4+4NUlVt6Dc\nuH4P2n7xAyizOQ8YJd9uKO6kkipdIPzppp7zmzFgms09QLf1lhrtpRRrA36q6ZXtnNEZW9e0FgJO\nhZ5IrF4mEnXhXGE0SwWVHaE1pzSySI9mh6LzFhVCskOthWbDcbrhXgzbFHVI44aIJEkF4zhkpxNV\n6gG45Zx2Q7VPELadVFL+OpZ4vhNPAeLau0Fb+WAtY4xnJRWMaXRFexXJPB4UgW32aMmXfHXd5ExS\nxnvuix0Zg5gVJ8wb8+eNon/WR0qaTfftNaLsvqFW5JE7itvraM7tc5bBQj8b9Kaw+r6Vd7mGnHc9\nO0sopsv/NxFfAKFfZV5Ua7A909sAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left(x + y - z\\right)^{6}$$" ], "text/plain": [ " 6\n", "(x + y - z) " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=factor(a)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`SymPy` does not automatically cancel ratios of polynomials by their greatest common divisor. The function `cancel` is used for this." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEMAAAAzBAMAAAA+xqiBAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABb0lEQVQ4Ee2TP0vDUBTFT2LaxrTREPcaFNyq\nToJbFnEtDk6Coc6FfgYXdStO4tTZQfwzi/kGig7iWD9BA4rgUpO+l7776KVZCi7e5Z33uycvj3c5\ngKjWqyeVthDsdtwbrSc2FLtRZcBZNMyeAlBcj5lTAILNc9ahYXoicVNs/ZCGkgrXY+tb8bGi2A7N\n/rihhMT+6s5aUGsdhaqTKf8FVl9gI6oc2129ne2ia5jyNcteOXHCCYvVe0dVzsTAvFSpzbg4Tess\nThU+sBjkXyqVk2wtJXiKc6BUTrLV7WJd7h1vA6ZHm0JXN3Ev6WHvEbuTjnTEpfwxl1b8tw5jMbYa\nnwzWUXqb6bWN5eZ0B05wV+DAXiMusvxFf1hUg9neqv3gcQcSXA7nuIlQbIc1bq4U203ri/mRjp2E\nsQAU2wFrobjNOkBw5Zm1CDzKNPZxoHtGmRZYZLp2eXWrW0aZFlhkemE41MclMi3wf6bJ6806078d\ny5NYncRyAwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{x^{3} - y^{3}}{x^{2} - y^{2}}$$" ], "text/plain": [ " 3 3\n", "x - y \n", "───────\n", " 2 2\n", "x - y " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=(x**3-y**3)/(x**2-y**2)\n", "a" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHMAAAAzBAMAAABWNSq5AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACBUlEQVRIDeWVvS9DURjGn0tb1RY3lVi1JLYi\nIhJbF7E2HUwSZW/YmC1iMyoLickgPmbR/4BYxMhma4VIRFLnnnPenvf0tje9BgNnuOec531+5+Pm\n3jyAauVrV4+66pg9lu/d64pRJm6P51NvIVBujxci72FQy56oh0ABbo9nQqHcXg5Fgtn77jSa6LC7\nrTftglrCsmJti15PdLbetAOpg9OLEKi2p8cXJjKDjUbNRp2x2eIa0veIPMkC7SoVZXdKfdtx9iWR\nZQRbmV2UztCj1iTdKIi5sXoir3b0nmRZxbp7Ejl6RPJcFrXOFDjoVzXPEKtU9l8qlWkxdHEIUXzG\nUIbrpHhuyJoaeU/aFXgVs2gdt1VPbupGEaKuSYOxIPUllIE9TKoCLWkUJNwp9LiaEx1ZjsXrySI5\njSsbNQpWjm6waEhCo5/JWmQDA+fRDxs1CobH0g8bftSZyeY2xXuay+n/mE5jFAbZq1NB3E02QuX9\nqWj3Tp7P5zFaUHPSjcJ9bcY7uGxR/UqLgabFXJWGuvcrLYa/OW38tNX+5vv4D7cy/2jo2/4mKkNI\nnpB2NckTfHAWQoSynAlkWQhplOdMIEohZPLHzplA2Aso2ejAVs7oWvuuGUKEspxpT2iVhRChLGcC\nURZChLKcCURZCBEakDOdliI0IGc6oaFzxr9Q1znjR9vnzDfzxbwY8CWoEgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{x^{2} + x y + y^{2}}{x + y}$$" ], "text/plain": [ " 2 2\n", "x + x⋅y + y \n", "─────────────\n", " x + y " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cancel(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`SymPy` does not automatically bring sums of rational expressions to common denominator. The function `together` is used for this." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAAApBAMAAAAPAzzeAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB2klEQVRIDd1VPUvDUBS9rzaxJtaGVgQn0wpu\n0SIiuHURwUGkf6C1m5PddHZRFym4GHSo4izFjg72HwguUhSsbm6tKIIINTZ5ad5X4scg9Q1595x7\n7uG9V+gBcBdKzWQLLhIW8SsI33O7I7Ch73A7BJk/hVCTYDBYgTXtBAPhHi7XQa1w2xoccHmSRPAA\nMZ3kXPTkVj6F1ILLGr8/+M7nSTZagkmSwejIepskBuJdTUOV25Xe1Ga4yG0RZLQivRIEBmg6aaxj\n4LOjWePZp/2VlvUKv1lzMLb8jXlFp8VbcEZTfpg1yBo1vwG6xxrQigDcCwZtwWpad5NNc//RNNNW\nGRPI2gFPAL3wBgF3+AdXQJmAOxLtYwL9APyRQXx8fkK3j+ucABk6LGnUDdjkdGQo378ZKREGstKA\nKWoe2OR0ZLImt5QMYbBo/Wue0wZscjoyBAOVjnjVNHdNc8+qtSEdmJTDyTm6/bkOvbJuVOJfIafx\nUo7xxLJuVGKDOoQanVN5P6ynLVO0KQg5T44NqmAFILU4yWnLcuULWHDE2OAGckVqnpectiyRil9j\nNTZIFO4ylAEvOVkZNgCoU/MCSMuGbV1fCb0IJry0WBYpqrpXKajFMil1K5ghaFv2AQXtmUkI8Vss\nAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{x}{x + y} + \\frac{y}{x - y}$$" ], "text/plain": [ " x y \n", "───── + ─────\n", "x + y x - y" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=y/(x-y)+x/(x+y)\n", "a" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALgAAAAxBAMAAACbon7kAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADhklEQVRYCe1Xv2uTURQ9qfnRJK2GCoKLphXc\nokWK4JZFFLqUTm5Wd7GDoA5CEEHr1EGhQYcKDk4SVHA0/0GLg+KmgoNbK4Iggt777nt59758n41g\nt77hy33nnnOS79d7J8BgnBtUaXEtBQbzUTXF3kCSFvvaKeLnI2uqeQ5AYTXHfGTNrRwDhi/7Xq3p\nC/9hNbYbNI56x+rM7IifWTlgNbYbNCwtduiQN6oL0rFyFDsC+6PtOs3UsbPHm8DYJl3bmblFczbA\n1FsUP6FMTR5BLmiqsV3WFJYqt8dXgfoycAg3mitiE45LzzG2hQoReAS5oKnGdllTbpS3a21gfB24\nhKuNp2wyGMX1D6j3UOsI4uUeTTW2y5oCqj1W7l8AGnjkTApr92is9Ln7GQeamNgivNztrn3tdmcH\nqNEMdZ2GxTTYHPjGBz1K29joiznB4cQFTTW2K+YkpsGXBRO/uNRjchUngFJHsCAXNNXYLmtqjZMY\na8gNfUL3blpbEzyLlxi6oYK6G6o0wTxqLq6/AS8/9OSUfta3isvWfLJX+gFMLgka5IKmGttlzcGZ\nqfdsSGdRODXdui4ug2PhdOs7UO0LEOSCphrbDRqntK/ywB10fXHeT4OczoXQ/Ndfa5zULkLeDWdw\ndCEuXIW24IICVmO75lWve2Gwlc+7eEHPtfuZquFQmo+syV74F1v9DA+HkvnomlG3LHUG7jnT81jn\nb42Rs1ftwhX4vYtjF37unuU/XoF0PY/ySlvq/Bc5MKImqeaTuZrOuTp7ORGaMJQkKR8kczU97Opq\nW0FJKYwEjNPKZqzTqtxkxC7hcffgnjC4yhzj7UzYgYWP/GE3LGsuDEfOOoT9LKuHh4QWO3SIw5o7\nRmymVYsAn0xVy+fOKwRxXlWMYK4YSpeUr2lP88lUdXzuvEkQ51XFCOaKoXRJeT8m09gJufMZQRzM\nQnalqTfXjKhLqy/0uyDJdCiNYoPYHCkDYyh7OkZqGedkDp9MIwifO4O5YoTLohhKl5R0WcCx1g6f\nOy8Q6vJqZARzxbBSPaMbGpKpgn3uDDdUMYK5YihdUtLTFpKp6vjc+Y4g/qejGMFcMZQuKenMQzJV\nHZ87HxPEqVsxgrliKF1S5r3+nCyLHSbnvf6RwazMkb1wSe7MWrhs9txh4cKrrO+U3CkL6l+yJ3ZY\ncjGfZS65U743e7PQjCwHwf7rNvcHzldXD4XJ5SYAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{x \\left(x - y\\right) + y \\left(x + y\\right)}{\\left(x - y\\right) \\left(x + y\\right)}$$" ], "text/plain": [ "x⋅(x - y) + y⋅(x + y)\n", "─────────────────────\n", " (x - y)⋅(x + y) " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "together(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `simplify` tries to rewrite an expression *in a simplest form*. This concept is not well defined (different forms may be considered simplest in different contexts), and there exists no algorithm for such simplification. The function `simplify` works heuristically, and it is not possible to guess in advance what simplifications it will try. It is very convenient in interactive sessions in order to check if it will succeed in rewriting an expression in some reasonably good form. But it is not desirable to use it in programs. There one should better use more specialized functions which perform well defined expression transformations." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEMAAAAzBAMAAAA+xqiBAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABhElEQVQ4Ec2UsUrDUBSG/9Q2jWmrIT6AQcGt\n2klwyyKuxcFJsC9Q8Blc1K1j49TZQarOYt9AcZGOurm1oDjGpOee5ARur0tB75CcfPfLvZeQ/wA0\nug+eqgo3ge1wqVeYoweJnbD+qVEkdtrlL51SwO5UowASO4FWkbirNSBw9VkpbmG1DCezRzgmp6hk\nGKhfXd9qFIX9zf2tYCWOJ0XFf0H5jbDVqZ454svyRp0blNRbtmdP3ZBWSK9KKQ/GqA0JW1hWVfJs\nR1H/I4pagIV3rAakQFQp4Y0qUzyNWMkrqTR62FaG6+2g5LGer1Jr4V7Rk8EjDnIj26gxrHwrvLbh\nv55qFGu3qfuDUpOPCySn0Q8rJL6H9bbeyOg57rJ6TnHYHM2Z+VMc/zYmiz2eaAFyYYFlCxCKxLIF\nCEXi/9kZxGGTkjrDLNN5Z2BllmnClOm8M7AyyzRhynTeGZRCmVadQWba6l8k43JkzjRvZMg0K4ZM\ns2LINCuGTLNiyDQrhkyzsuhM/wAE35dqoemJsQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{x^{2} + y^{2}}{x^{2} - y^{2}}$$" ], "text/plain": [ " 2 2\n", "x + y \n", "───────\n", " 2 2\n", "x - y " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Partial fraction decomposition with respect to $x$." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALUAAAApBAMAAACB2XWiAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnaZIu+JVLtE\nq2ba/z55AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACJUlEQVRIDe2WPUsDQRCG59So+VAPIViJ4bS1\nEsFK8g9Mk6CFBIJW4kcpIqKCtSLY2wiWaaxEtLFOsBCszE9QUGxEzd5lNrvue+uKWAhuszPv+8xk\nGY4wRMbxSgVa9w3ZELKL1LNjqHYhmdqmsh0J3YNTSjw4cCqy0Z2jc1XAcc9xhdJV7MWqfm+BnmNd\naXi0RwMFmToGNb/ryQHNPNJM3oHTkAoltjUBJ83RzWLHol5Qum6x2WpCFxw730tUazjA3dXMmwOm\nI8NHq2u6AjPvrvQCDbtYsdvsNif+zdOX815dSm5o5CqeO/WR19lIg8/2xECn6czQqIV5t/ewd6a4\nYNZwkeJcl/JK1grlE8qwt1kgFFmEbVYl9t+bR9IenZjJ4IQ4Y0TvMeehWXcYBFNBMC46xFDvnzD6\nnzeet1S/COSHa+ck9ovzXt4fb9hfobjyQYoGQkdMrxzS07jsSyxViCv9uf63emfnN+eiYfC74cbX\nxnhAEGMzvL2D/snOXBhyb7TxKRiXI4y96E76ycfUmtobbnwK1qqHmN7bo46qUJJBMLobBHUiuPEx\n1v4DhZjem9qbI88Eb3zGgokxvbvcHLk33vgkxtUYY1fcKb9MCT9UuDfa+BSMqxHGXnTXji9pKwq5\nN9r4FIzrEcZedA8XsyuNKOTeaONTMK5HGHvGzb2JHDc+R0z8kBd95mTf+OSTHDHJhwHc+HREZI6Y\nXgg3Ph0RWRz2AV2IsNy8IJwsAAAAAElFTkSuQmCC\n", "text/latex": [ "$$- \\frac{y}{x + y} + \\frac{y}{x - y} + 1$$" ], "text/plain": [ " y y \n", "- ───── + ───── + 1\n", " x + y x - y " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apart(a,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's substitute some values for the symbils $x$ and $y$." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB0AAAAqBAMAAAC9wk0pAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnaZVO+JqyJm\nu0Qehw73AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAuklEQVQoFWNggANVAbcCOAfI6P//E5nLoLl0\nAwp/AQqPgQGdv+ZoCoqKiwz7H6AIMPAaoPLZfiPxuRQYOP8h8TkUGNg+IvHZGBiYFZD43AkMJ1Ac\nuG1WIpL0QDGFjEFAhYHhPwh8oKEzds68jmw6MDzqDyAJsH5n4EcOb74+BnkFJHkgE0U9AwOjJYo0\n92T08JzxAEUBA0cjEp97AwPvdyQ+/0dUPscFBmbk+OY5wFAfgKSe4VnaPQYGACEKLKF/7Ze/AAAA\nAElFTkSuQmCC\n", "text/latex": [ "$$- \\frac{5}{3}$$" ], "text/plain": [ "-5/3" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=a.subs({x:1,y:2})\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And how much is it numerically?" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALAAAAAPBAMAAAC2BVjNAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMlTvq5l2ZolE\nuyKPVsvzAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABf0lEQVQ4Ea2UvU4CURCFzwaVPwlIoeVuQWUs\njL4AiaUFvIFQ0FMYYrQhFmJhjKWJDW8AhYVIwxtIZWxMrKwFO2PE2bmwMw5beouPyfkmJ3dvAWBP\ndnAPGGB4V4aCaBXyTmgOTobDvtSu1nn2dnAOAxRHqUBBtAp5h01vNps1o+KtzoTnXBuvMMALcmMF\n0SrkHTbXQDLqBdKu+OmNMoP1H8oESkvIkzP0DPSa0ZkXP4eBQa5GmUBpCXlyhi5xE7bMz7x4eng7\ngkG+NLiCQGkJeXKGLrEoDX9dsTftomEAfxtrVYHoWENdjzHFswIuNv6i4E+Qqgu8SMeaArwPKi7u\nh6e0uDE+gd7IIL+LzLdA7UjIkzNIB8s3xh4Vdw0SATJfArUjIU/OIDGOKW6FNzZI1ujGAoiWkCdn\n4Ddjiiv0xjBYoTeuCZSWkCdnUGnbYj9Asu81LHCGzaqC7KiQd9jgSBenWtNTJOgbHjrlJWQvj+mP\nKYLakZAnZ96r+sb/PP8CCGYYzfPyLvAAAAAASUVORK5CYII=\n", "text/latex": [ "$$-1.66666666666667$$" ], "text/plain": [ "-1.66666666666667" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.n()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Elementary functions\n", "\n", "`SymPy` automatically applies simplifications of elementary functions which are correct everywhere." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEoAAAAUBAMAAADYerbFAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnZUZrtE7yKJ\nmatywa77AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABQUlEQVQoFWNgwAm4CyBS7BvQlXgFIER2wJiv\nYQwY7X8AxmJg0IYxhWAMLDT7BZggD5IFMDEYzQx3DuMCmBiU3uIAF9gMZzFoIpgMrulB3P0PWLSu\nhD4FicYCsWjczhigdWcRqhgbGJgZmB4wMLcy7AdZ1s7AwHiA3ZRZgYGhCKGKcyEDKwPHAwaOBQz8\nBUBhMwYGHgGej2xAHckMQsYgoAIUtm/dAFalwMAPtIVhJdAsBqYGIIvBH0RAgYz+X7CqBrgqBggL\nWRW3AEP9BJCNUFVAG4GmOIDIySACAtgCGPgKkFQBXc8mEM/AKoDieraFDBwbgAbBzAJ6f35CP8N2\noBl3YCYxMHAeDz/J8v6fyPt/bv3rgMJAa+RCRa+DvAvyGw6AiCFuAxxKgMLExTZDN8wEfCmHAZ4K\n4cph2pBppBQNAKW2Q7c+KCqVAAAAAElFTkSuQmCC\n", "text/latex": [ "$$- \\sin{\\left (x \\right )}$$" ], "text/plain": [ "-sin(x)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sin(-x)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIcAAAA/BAMAAAA4UMYhAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdlTdIu8yic1Eu2ar\nEJk85eg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD8ElEQVRYCc1Wu2tTYRQ/yb153CY3qaCTYDM4\n24iDi9qISl1sC7b4QsxfYIsiBQUb1IqLNIuDi60Ogl1acHBwaMHJQRoRxUHIxUlEa30/03i+893v\nOzfJzW0udfAbzvmd3znne78ARNlAMrywHM6J5hmHQ7c5/ECRcTj0vKzjt2sUFljDKiNRUghgb12U\nFSb8kdlDcQBvlH+Q+wSPFRms0yqlmnMDZznBLDEOQgeVMzEkUfSbYgAyOcZB6LVy2h8lSpYUA/AM\nYODtXbbbIDsP5vj5nPBOVChmdJ4UiddgL8KEGjDzTQg7PADR34IdlNlLHIEtpCsQG2LGH2GHe3Lw\nWTjlOOw/HJiYhxjW45kk9nnRBYAbZfuHoCJfhEz9FFIWbCFZW7sS7DAWORz7u8BdK0LKspmUUVN2\nGx2heXg2Ru5JIbMlwlYZVZ7gtPQSbhE3kTEE27+nQs6JIio3ZVMJx9dN9C6S/iJyFHl5cySOUci0\nSJILaj7FqaEWIOOQ018c6imrDsMIdaU6g5FTBMH+BfCAErf4p7ss5qTGEO8HmMsJzhhCQauN+kMB\ndgsy6oiAtiXzBQzRbL3iVpLGNTaxB1QGHWoBTgNsdCk/Za7KDh8H6CuIgARu3OiqG5quUQvmzvF3\neZfyVUsV6vBDiMqzl8KNEnGPIcS/bxNJSbxtAisZPeOIOGv5bVlosHDHZ+gYCWvyupBrluRRMSVc\nTNz9XXrX9zrsCUB6/CrmK3afDpAgkgVFB+srTe46QGytg9KU0mqeqkB2pZUOx+BK/yeVTBWhuu7h\nzJWhOkQzQA+aFi2T8nKHKFchq0MEkO1zJS1pnROikn8xnPWvzlS53RJXSx2PB1enTU8MOu8dVdRX\nbNj25vJsUeVtVcBH94/f8bC4Y72PzCtI6DM95glrgqYDvfPMncKrwPNmPgEYcZ12N0c1o8gnyOaZ\nxFOc+cTmYYClojRTzLYg6xh45t3Gm15fjxiLr4eqpCWzkfAMJ443fZQeZB3SV9EwANg72Sluujje\ns1ysxirZ0YDMs+/ZjuAlLX8ZijMWFQrW58ranxEr06dNBMteIwDHTmpncgXhh6K2IeIwbo/MAnTx\nmtJqeyYatgEGrFmyNW8low4mDC7qrLgDkYK22oLYDBj6oRE/QHwzePPtG7/4qG0qO1Lz0NutTfp8\nJrjSqXpdfTR0jB+4tXyPafwe4N+io63BSU3Ikh+Cy010ODNdo/iFYri0xuisQ3Z2rJEOZ7ldSMgO\nhcvV0ddcdEQz4YGl7rSFSvhklWE4LjLWMSm9qgNx3m6qgY71CR15X6OwIL2oM9KOhiGBt/lLIXNV\nuDmsEOoXHhwGurfPX5xaC9BYtn1WAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( \\frac{\\sqrt{2}}{2}, \\quad - \\frac{\\sqrt{3}}{3}\\right )$$" ], "text/plain": [ "⎛ ___ ___ ⎞\n", "⎜╲╱ 2 -╲╱ 3 ⎟\n", "⎜─────, ───────⎟\n", "⎝ 2 3 ⎠" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cos(pi/4),tan(5*pi/6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`SymPy` can work with floating point numbers having arbitrarily high precision. Here is $\\pi$ with 100 significant digits." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n9D99u/7wgtvYOgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068$$" ], "text/plain": [ "3.1415926535897932384626433832795028841971693993751058209749445923078164062862\n", "08998628034825342117068" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pi.n(100)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "`E` is the base of natural logarithms." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAUBAMAAADIGvgZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABA0lEQVQoFX2Sv2rCUBSHPxPTXhK1QqFr0zdo\n+wTp5pgnEKfiCxRfw1kcOnWWgjgVurRFCq2PIN0cBAdBwQ49JxrIldz+hpx/H5yTcy5UYpy60so5\nvD2/lDONpuTvoMW7erbMEGoJeClen0g8W1/tX0lM4KSJP8doZOtUU1O4gLM54dauSpQB1Uce4Dsl\n3JQDUcotXI6o78oBL6ErQOoETIfBvy3qKwVkSOMYUgBp4V/jOX4z7OiQsqggcQ45lkqX6ay2PkKy\nPQQjniT/2VvC/atFBIv1D1Rnuuq9TO4UOdmzHGuvqFjIfTkWN4fgI08WrJ5bH0ym+GCLxte2lVg+\nDsmT+wN0SjnDQZcuhQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( 0, \\quad 1\\right )$$" ], "text/plain": [ "(0, 1)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "log(1),log(E)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAAAVBAMAAACQ4lxbAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACJUlEQVQ4EZWUPWhTURTH/zfvNWlfb9KgKIrL\nq6Jdqy4uDyJuOlgnN3kRQRGHoIYMyRBxFeooipJJBxGyRMEKZhKkg3Sx6CBvc6oNiPhRbT3nfvTd\n3kKhB8495/zOOTc39+MBu5XJ5tcveY+Ic39Hb4/Odsq165gmnxV7NfTHlXMeEbMaZGEMlKtacdqr\nMqF87PGQGpRMkSNrWgtzBvom8cBRG68iA15RRFq0U9qktX53XSfE6CX6wHuKSPfbat963SLVBXL5\neXsIhD2lTYKytfSMl7JFqHux9Rp4MZi5RYkS/8PF1gVTM0kh6QmGONa4YvCmSVCpI2hEf3G5RDCI\ngaiOQyZfqAGk1wC8wdvhHbJbJEGxj8p6OcVH5sUucLArL5ma8RQgfUjhEGcMdEyC1S6wNnZfd0/0\ngE8zN4emojICSLkb+GmgYxLM94DvYl0+YMrd/9jRYrp55bRAAx2jf/uHaLczprzyNXa0RCltQ6p2\n7V5phI7l1iaYmEP0Z7ynAe/aI9p6ky7U1K4NaI5fwUjE+EDAkZOoPEHYj85+qzKl48FtSHtiY32A\n9Ckd93KneZjWdsPpxcrGEvYtfAbOb/ymRl4mShepTEuY0W3J3Ju67dC4MOjKA1fZMTeVXRK+oqTO\nK6HFbJe7hI4w3nwlqsa8EhxXEQ2yYT3XvsuAUwyCqoPtC82/DgUnm7tyoTXIOBSzOVRTqelE7NCd\nXPNlUiXTNJL+B6STcj/UoNv9AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( x, \\quad \\log{\\left (e^{x} \\right )}\\right )$$" ], "text/plain": [ "⎛ ⎛ x⎞⎞\n", "⎝x, log⎝ℯ ⎠⎠" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exp(log(x)),log(exp(x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Why not $x$? Try $x=2\\pi i$." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAVElEQVQIHWNgEDIxZWBgSGeQmMDAsoCBOYGB\n+wAD+0cG/gMMvN8Z5BUYeP8xzDdgYP3MMF8BREJEgLLs3xm4NzCwfATpYkpgYGhnkApgYBB+d5QB\nAPogE3QldevOAAAAAElFTkSuQmCC\n", "text/latex": [ "$$0$$" ], "text/plain": [ "0" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrt(0)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG0AAAAmBAMAAAA8SQjKAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZnbNRO8QMqsimd27\nVInIquLFAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACX0lEQVRIDZVUv4sTQRR+u7nkbrPZJCC2Gk6E\nq0xaCyGFYOedHmgnQ1A4sNj8A5IDGxtxRb3GIrlWEcVCbYRUIjaXVkFuLWwORAU5uWviezP7Zmd/\nGHYfYd73fe97O/NmyQIAWG1ciscWW88wKJaXesq3dK2YX7vWFLo11Mp/gTOPAypqrnvaffBJaJwE\nK32DO4dElo9YagYr0dFZ0fmRRgTkTpVt1twgfgZrUX6R4COBdByw5vadP4yTufaKeYNApYPLc0JR\nePLkzOJcnzHeF4isDVyusoTZ7RjEgLcZ134KhHQs5y9rmA8MbMJvTGxfELyBe/5iDfEkxiaKx7uj\n+u4C1PXIAJfhkmnX2G4zDFVfF0easgbLF75+0ITBRQQuEytQffsBtCYsQnU+Nw6tZHsT8ypbBqD6\nRjNodUgcrD0+JwERM3a6fQAaRTq+PHu5S1W/TT+AWmi9dnukZMKfghXGjrEgB242pr6maB56ASmZ\nqB+BK7TD2rtPjlYIeFR8GlSmxHPCOYZTKCcdeCkj2k/uLHN2eSDeSFFdhKpjnzwnwGiY7VDK6MdE\nAtPhh+B3UPVEF2why5mlskmFpAM3wxEB1md78BAzht9TWa/eMUHDgQwvpbqNeWt1sKvmBFdNgyLH\neQKGA9l6Hxrp539m/4J8WkBzI1UPUzyPfseBU3/xWifPmNLe4Qv9ndSsJM1lsudjbmmh6NGn8+RC\nS26xTnfpz3Jri8RqG6s2NZeLs9J+vVwTuq/IjhNl+6ITyq92md4ngXTX3pZpwjf+PvI/Vf1Fuxt0\nmxTOUOWC603y/QNG+IM1H3mZogAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( x^{2}, \\quad \\sqrt{x^{4}}\\right )$$" ], "text/plain": [ "⎛ ____⎞\n", "⎜ 2 ╱ 4 ⎟\n", "⎝x , ╲╱ x ⎠" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrt(x)**4,sqrt(x**4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Why not $x^2$? Try $x=i$.\n", "\n", "Symbols can have certain properties. E.g., they can be positive. Then `SymPy` can simplify square roots better." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAANBAMAAABvB5JxAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARIm7IjJ2qxDdVM1m\n75kH/PNjAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAV0lEQVQIHWNgEDIJS29gYFCoXMBkwMCyYDsD\nzwcGDoZfDEw/GBgYfzAwX2BgYJrA0P+AgYH7AcNZoEp+A9arDAwM8mJ5DkBKE4iBYB+Y5PgFplb+\nTgDSAMIZEzBjvGNEAAAAAElFTkSuQmCC\n", "text/latex": [ "$$p$$" ], "text/plain": [ "p" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p,q=symbols('p q',positive=True)\n", "sqrt(p**2)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANcAAAAmBAMAAAClnRM6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZnbNRO8QMqsimd27\nVInIquLFAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEoklEQVRYCb1VTWhjVRT+kpekeXl9aWRw68TK\nwNiFDYKCgkwQxZ2J8+dCkUtVKHTRbNy4aWBEBgSNP6M449hoF2qtWF2oKGODoA4y0GzcDMhEwU2t\nnY4Okdah8bvnvt9MbGWkvTTnnu+737nn/px3CwCJAs0ut0l//tt8Zxf7VMlMnjq+i0mCqQ8a7+la\nwAxycr2+tj5ItSNnmbs6GRfa4zJ5QL4VeP/BmY3HRiLsrgZDGxGKbrYcx8/F4fZoG7HsyarH41+N\nQ9u72Tj7L2g78Yxi0GwjHvlRHObKHl75QcVHBqBcewDpUVaRzofx8cxiHD/pwXwju/Mep+KxMZSo\nEh6OUehfnL9Rp9F/ufE4Qb44OvSK1Mw67KuA/RdH7PkLNU/Axdlrq21fHmzUKWv1oHZ64XuPpjga\na9igZp7gW7VObhJ5f6afgdNwr/iz5gu+B1eKN4C+k6njctkAiqOxQoY1cwLILZJ7Hjhm9Hon4238\nbRAQuQWn6JOxPquQrhqG4miskOG1jANOi9xjwEs1GUsWgAfLmT8F0NzqO8BK6Ea99CKy+irYKI7G\nCheu9lIDI01yh5RO9gA9RxThMXKjXks0fS/eW12dLFUmK+IwVnRhzcy0MVIUDksqeYTeqKCpDjvF\nX7JIM3HwtTuKeBgPYeJd2AOebaeLAyVPDMamVt8Y5c3oxmvJjBVxSgHTBf2nW2oLr4+XvcW9/aUC\nznRI641mOolPndLQfT99h86PSK6T6muVjj3BApNT0bH57DmsGg1rJu9WwfvS25o1yZw6U7eQ6Igm\nfxSpfVW6t/CXV/mu20j3eut2ew7DLVHEzBdc0TUjpvwozvIJ3G8UU8DZXAkXiEY64EnqNs9fbgOO\n0oC1qUz5f0Y/A6ulOe0dDo7dMGJzTXYfN6DFbMeUGmnjshLAmlHpIv4gYHXMyM6STSJ7U3aCN4Fl\nLoEl6nZIywFIj1QXMzXjRuyY9mebciomtqLwLYKaqaghXa5MZo7xIuwGy1/J4npKkvEKLUURwgQ8\nkAPCRI3b1MvLduVUTOxvyGyGNTOHZJUB0x1MF9kPNZFkspnfmwR4HFgi4hVe1NBV40gq7WG4jvPi\nRM2zwO2cYkvEJvZeJI6HNXNex3HvBX1trLy1lRfYWUcULW6Cq8+YV3iPhpX2Ml7WDqlW6grCL144\n++u19xfp3XW3hib2Gp6phTWzgEqBQ6yOdJ39oV5PP1DuJg0/g/mFMjt7K1Vnh8nRiXe0mC3z4tgG\n8JUS4BmLr7pOdqmpCYlNXR39gL5fM5O/0OOiyxguaY3XZCc+wLKlNfHGW4N7PU1RRJxflCCvZujP\nabyfH2BVBgaZysl+9gSmy/yS+ul+bDWF8WomW8rIv5RfucxuvzTAjve+BgQ+wTcEEyEx2JtuC+/V\njFMYLmqsP/3gX5cIoibZiiLt3z9Woy30033YXbrTMKZmUqPvaSiJrq/lvtgbh6ZmvHiXpYWbb3yy\nnSIjNcPPpkS5d8A7Bf7v8bQ+/aTOuAfNvHOP7kEmpnhE0uzbk2TeAVrFvch2qiFZMp/vQbLMOS/J\nGZN0V1MO61rUza6ZfjftU3ryfwAWo0DzWWqzlQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( 2 \\sqrt{3} \\sqrt{x^{2} y}, \\quad 2 \\sqrt{3} p \\sqrt{y}\\right )$$" ], "text/plain": [ "⎛ ______ ⎞\n", "⎜ ___ ╱ 2 ___ ___⎟\n", "⎝2⋅╲╱ 3 ⋅╲╱ x ⋅y , 2⋅╲╱ 3 ⋅p⋅╲╱ y ⎠" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrt(12*x**2*y),sqrt(12*p**2*y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let the symbol $n$ be integer (`I` is the imaginary unit)." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAPBAMAAAArJJMAAAAAHlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAACGjDitAAAACXRSTlMAVO8Qq5l2zWYZcMvdAAAACXBIWXMAAA7EAAAOxAGV\nKw4bAAAAHUlEQVQIHWNgAANGZQYGk5DJQDYbqQSr03QPsBkAJYgIYEZbtZEAAAAASUVORK5CYII=\n", "text/latex": [ "$$1$$" ], "text/plain": [ "1" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n=Symbol('n',integer=True)\n", "exp(2*pi*I*n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The method `rewrite` tries to rewrite an expression in terms of a given function." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nhKnXoN5oAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( \\frac{e^{i x}}{2} + \\frac{1}{2} e^{- i x}, \\quad i \\sin{\\left (x \\right )} + \\cos{\\left (x \\right )}\\right )$$" ], "text/plain": [ "⎛ ⅈ⋅x -ⅈ⋅x ⎞\n", "⎜ℯ ℯ ⎟\n", "⎜──── + ─────, ⅈ⋅sin(x) + cos(x)⎟\n", "⎝ 2 2 ⎠" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cos(x).rewrite(exp),exp(I*x).rewrite(cos)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANcAAAAmBAMAAAClnRM6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMqu7ZnaZiUTv\nIlRQnRDcAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADr0lEQVRYCa2XW2gTQRSGz6RN2ibdZFEEqZbG\naEVEoXhDvAZ9VRIUryANPvkkAR/Ep0ZBqSK03kWFRlHsg2IQRR+EFlFEXwwi6IOYiCDirRG8i43n\nzOxlMt04K/RAZs/5z5f5d2dnNy2ALnbrAF/9Sb6o5rgvTAdFfE1zx9TNM1D1EZX9ummwz+7pICOj\nI3g/kNVjwbSOCRZ0BO8bn/VYqqhjnugAq79Bz3VqkbNaQgApUwcaf3QEiytE+OQRRRFlIOcpS2JL\nl1R4pi1lRb4K6xRFlE3DnrIktuakwjOdqKrLwfs+G78lMpiBxnV5SaC0lKRxIw114rKqL4WS9/58\nJJHBLMDUtCRQ2sPrTYoqlcxjnUdMCaD0AxfU1Q2pZseUr2EZzclac1auRL7Ykt6KI9vSzc36FHKM\n2SIFwLLWrGEsEO63NMsMoI+bjRRr2TFmP2v7VDlmjKpeGmpjj10qZqmy3YDJpzFFMzZ4qACRrad6\nM9T6gR92MAesd9vtQRJcM2MJVV00WCGgSD6SFIJi1pG1QcjfwRTNVhdhBwyZDdkc1uw7DuHIMLTB\nrtw8zDHsK7s1B4umPElWCGjVpzd81QAUs1jOBo3yUUzRDM83lVwPQX7KBpm9bInDebhmfhSsbQYj\neKYN1ry8JaDH1aoAx5jlYcJ8ihmMr1go3TgKEMufs8yoAhNPyYSZfIZwIjH9biKRpqIVz+cdJdYU\nDkQaXEgkliUS4tUqNkisnzdoiNJPQCgdxec8liklp5ZJbKQrA/7c0N3j4VxZM6LTbFUcHYiX6jK6\nZoG0SWb8yvqfD17kOF9G6MR91/jFntYxY98g6n6f2i7EYcWsI89VGjrKmOM9ewgwVHhvyYzvxtEw\nvGquwF4hOmYwUAwULZAfJIjXilkp68BDBuahDKxJwmy4fmOtaPzCQ6TyLDIaqlCfwjUr5W8KSYwy\nxBXFLFV26OBuXIbur0XjzKUCBKpVvEKM+zRsyrLNew9in4drFqrMtTR+kCEu2GYnHnfSiQ4VZNrN\nd0L76xyV213NzlyzyNe0LXoebTOr2WN6UtEMPq74AbhCQ22wolOvTDqpV9JeK3rMRQBbgLevTBnf\n9ZR4xgFPtZ64sE6jbfDQcd6S3md1UN8yf/X9k8ZnYbwiqv3bqWl4vLygJa6bitHLcXyiNaudZ5+W\n8Asc1oOtST3jj3igx5riesYX4ev/vFm+ptJDL9x3QX14YrJ+7z86bIUf2Fjuh9IyIf1epDmeaify\nA0wh6C9DzfZPhPWv2wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$- i \\log{\\left (i x + \\sqrt{- x^{2} + 1} \\right )}$$" ], "text/plain": [ " ⎛ __________⎞\n", " ⎜ ╱ 2 ⎟\n", "-ⅈ⋅log⎝ⅈ⋅x + ╲╱ - x + 1 ⎠" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "asin(x).rewrite(log)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `trigsimp` tries to rewrite a trigonometric expression *in a simplest form*. In programs it is better to use more specialized functions." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGcAAAAZBAMAAADeRy17AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJVCLvMs1Edmar\n3bti/yyrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB9klEQVQ4EY1TTUgbQRT+wmTRbNy6tAhFAl1j\nvViQkCDU1oNIT5WavYqojYggpZhTaAslgVKaQiE59Cou5lLagqGn3loPghdR8Af0Yi69KFiqXjxI\nfLOZWd1pWnZg93vve9+3b+axA/gW6+vy5YGSfqwF0vlEO8jbPiJIsoepchCdokmbChEk3XdFWrWh\njQbaLLNc9WTDA6zKQKAWP84qFPCtwbyVhdsyEBgDO1coRBIR/qGoJQvMEdHjBq4As7Im8cWjUZNi\nwztK6KkoCdNzYEPd33y9zkUTQknwXoTCVDJd083UXYQeVMp4NfJJapco6Pw6VnGApN9E2YEJbQY5\n+7WNw1ANhhDgCAglovtGAfiumiKnQGsB6ewWkH+ZgS5N2wAz2Z8wHe2JajJ+AncsoOUMaE8cHHrH\nn6NOaK1xfZ6/7heLu8XiBx4iTs+iA4Rp9O21W6UTTvJFJmIc/nZNhGIQ0C1KvE49Jn6UieCLtkdy\nd7QLPKQlTcPQbH4mDE1Tx48O2qpuHXwQYXMZuvnXIFos6Da0Z2B2Los34Qxu2MJEc14c+o1xSrsF\nJTpNpJLrxMR6+6F1D5YjD78MCAFoT7HPnfd443d+U6lev5AqBa9+I23Tb1KE19OoJTPmiKhDMv/G\nX7KkXg3JN0PvEnruZiqF+/91vwR0o2LuRwGOQQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\cos^{2}{\\left (x \\right )} + 2$$" ], "text/plain": [ " 2 \n", "cos (x) + 2" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trigsimp(2*sin(x)**2+3*cos(x)**2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `expand_trig` expands sines and cosines of sums and multiple angles." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbcAAAAUBAMAAAD8Rm4sAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIky\nEKtZsEGBAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEr0lEQVRYCYWYX2hbVRzHvzfJkjTJbS8bDiuK\nmej24IOZe+ibveIQ/AONuqHQgSkMFUQWxRKhzEVBxQdZFRQVJ3nyDz40E0thRc2T2r30gsqQjq4T\ndCBIC6M6urr6PfffOck9yTnQ3t/5/fmc7y/33NuTAlYZvSNypZzeiD+Pwvu0UcVpSNwdpho5MTIC\n9hEGlehT9wSlS/UYgdAFXJY+xYrCw7redRxtIqxKyNSEraOHOmFUB+wjrIvoU+8PIMvtEMZL6AJ+\nkT7FisK2qzgjU8fRJiITfTaa8CqKWyFRB+wjrIsoqKlqJCu+SlexHjulIcML0qmzDIl3xTVJzt/A\nR3E4NiRQKwzdRFKz0ecXIxSXPSu9sSUrfot9WsOQOBUXJTkfAOudOB4ZEqgVhm4iqXvDylslK3Ix\n8nDEVa4ynGkp7tDUcnSJVi0uToYnvLg5LVArrIdI6jSX+PH1l63xtdJDxxpXxILCdeHVW2a4J+dp\n2pPzTaw0zqH0ygE3CNvTdYx6KFY5VUaSoyb+uvgU7IWZlliORTkW243Ln3P39HJ85AnPJAyDiaTe\nyyUqyCKzhuwYbncIFq526tmsC9zJ6Wiz9G5pCun6z0AtCBfzszjF59XlVA4NR0m0PsSS84ODMT8N\nSJeBFeyvH09wfGLhulGYgZhy8RxQOIMc0mtIz2KEKwpX0Sv+l2ejb3J6GPntbBul7S891IPwzbtc\nHALyNU7l0HCUxIyL053ngeXzYjk+7E3gW3zvvZbg+MTsmlGYgUh1HxN1Yszxm3MxItTTZSNTEWss\n09wU1yZwPXv1ReFj2Buq41+gtMGp/eAzHMc7NJMcJfFSlQXXgJG2SAOGWuTgAVoBRxjKOCrsJFAR\nBgOR6kRzKxObfnOVuDlqqAs6myuwC5xuAVftb3Yo0K+Y80rbSVEajkycIzC/RXBFpAXNQXxESQ5d\n4ok0CIOByOa4By0P97TEtgybo4ttdcTvz5Q7t3kbUhQnKnAEuVn2XaMph44jE+PP+TGxXLAtuddF\neQ9HuN6A5RiEyTunJ5LKt0e+juGy0pxweaeQ84IXymFOh6oobL0F/M51GcZ94k4j5UIdGo6SyCcE\nzfeBuS/EcsEL5Z3cBk4mOGSWqsg5JmEGYsoVL/v8GaQd3rboztE11xz3T6GTXGi0jLOlT5Bpv+3h\nIOcM4wnMlYFdbZpyaDhKovUeis5SB4/4af77v3AtvWGVfc4lV3Jo7V2c/9MobDBRqOPGK3z90rnS\n+o2L6zd+Gv+UZLpWGxceL9N8lD/2HzMOblr8C18duLvFOcNYXXjaATIdmnJoOGri6pNnYU1+1xJp\nLOKusa+cnL6DJjnZFySH1sTOzj9GYRhI9KkU2TPkKceq9YTENAgfoSXPKpo0Y+JUXCQ4/ItgHAZh\nyvFLEPkjD6MxW7q051OGh11bvFp4uBg0DIndx9zuHa7HGoQlD87+Y9TDEk+WP/RfeQ4iW07XuV/d\nMK3fZXBiOtozgmOTZx4GYd1EUuU3U8mOvo3qGvcrCo1jvMYsWdlt7cGgRKsSZgtOqruyz8wgrIvo\nq7PKCVLk6vNtPgrvSxT2OAyJu8N0IyfGRsA+wnr/zfA/dOS6g/TnNygAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\sin{\\left (x \\right )} \\cos{\\left (y \\right )} - \\sin{\\left (y \\right )} \\cos{\\left (x \\right )}, \\quad 2 \\sin{\\left (x \\right )} \\cos{\\left (x \\right )}\\right )$$" ], "text/plain": [ "(sin(x)⋅cos(y) - sin(y)⋅cos(x), 2⋅sin(x)⋅cos(x))" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_trig(sin(x-y)),expand_trig(sin(2*x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The inverse transformation, rewriting products and powers of sines and cosines into expressions linear in these functions, is needed more often. Suppose we work with a truncated Fourier series." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAAAUBAMAAADW9p+DAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpmJdu8QRM1mu90y\nVKvMIHo8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEt0lEQVRYCZ2XX2gcRRzHv5vL7V5ye+lSqKAF\nPZsioiiXP9gKomtaqj4oWjRYVFwb+tKH5qD2TfFQkEPRpLUv4oNnqVL6IA0qig/mkBYDSnOKClZK\nooRqqeC1pw2tSc/fzM7s7M7NHdfMw+7vNzOf3/f32/lzCdCx3ShGD3acpQ9KivdfDyrBtTDdiVkV\nkeyAJ4xuXkRZm45X26F7n4kHcZ9UXnu5jkwnMRU8tDKyELukD3XwidqH1LKY0Yq+HWfdhvI6yHVi\nOoqp6Nw6FPmjwvox6mlvEHUOeEpOkGjOFz2rckR/t8p1xZjE9NDSn5EG9girm4qIoo31d1UgEpXZ\nOZejqJrRKtcVYxLTIkvXOiEtZIqh2UVFjJoKVEUSldmlVFSKaX0XaRjkumJ0MWtw87gIag8O1zCx\nfQvcRw+XqK83D9jbf3uR9k2KTNZkRTEKu0fugj26rYiTvzxMUxhFbTbQUJldZmmsxmdwmZuuYW7n\nycd86jHIdcXoYge8TB2YYxobau4T7gz6/b0A+5D908AE3vO/APpKbIKqiFOpO26jLus5nPK+9XDU\nriBLPqMAp6GjMrvJ1+2LcEs0h8vQmf/Sty6Sa5BLMMNHAiOjidm70FPB1xcoIsrIrWQLcFcOBPDJ\nz9aAe/BA8D2QYxVSE2sUUkP4k7oyJSxUPwHmvxlHL/mMoueijsrsFgI03LtZPC7zMfAhcEWAmlyc\nSXkDJSOjifVcRtYHfqWI9iV6zFM+jezVB8lEuggEeIOZbp0eW8vlz8pldpGG1AzmPWAyT8N0f60r\nzB4ll1PApiSaKpfffLpcXqTx22E3wi/EZaiiY8A/AozLaUzWc2klDYwmlq5gshpW5LCwC1TFVXtr\nM082qygUCysiR6xRmlOf4xaa8YpPS0i/PusqE1Psm3AqPEwsYITK7/0qnNWwIi5DFR1XFWlycSZb\ntEjFxCTFJgtYINnEGl26AX3sB5LvH3eFpeWcYM+oIkGBdpBao1sDvE8VcuoHWB5tX4ZIVGZ3ha0w\n38VcRlVkkEswyNG9b2KSYpM1HMt5vCI6R8il83CWaSXOUy7sqP7cW8eOlptBUPiUZtE5Qm0nrdXL\nPgaIYJSbR6+noTK7ZeyZDiviMqoig1yC4cfDwGhiGb/vq1S4RtgwjSH3WWQKPwX4gHKlK9tZ7a9b\nlGJPgXxqFJA1QdEEuut2IeWdquK13Dj6vfCi3zgyfEFHZXbncUTcNFyGtpzYdQa5BINhUmtloInZ\nS/fd/JCoyP59m4f1I39g/+F3ikTTfrGXdoy9S2amSg9qoiJBHeJ9+zYPwRq8v+jc+8gW6mC7bKrZ\n/E9HZXa7x6ZFRUzmdPPc6eZfZ/5dNMolmL48RW9ljGKiIgKSTf1ZslEMiIpCzyk41STAPUVxV6Iy\nO94pfw0SuAKNzH68lJjOHcVwV4K0mK1zqSdcAzY0KsZfEG/+mjt7Joj7wlYU75CoTTsyarnHI1MZ\nCjQx7ltnP1JzpaUY3iNBrJ9dklPib3YseLNLwki8nm82E75wIor7RtS685rfikagkUk3m/UOTHux\nOBT9CxZpxUfb2RHFJ1wHGoFrYboUW8u/yYCkuMjBdoUb+iW4FkaK/Q9kXM8ikSXXJgAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$a_{1} \\cos{\\left (x \\right )} + a_{2} \\cos{\\left (2 x \\right )} + b_{1} \\sin{\\left (x \\right )} + b_{2} \\sin{\\left (2 x \\right )}$$" ], "text/plain": [ "a₁⋅cos(x) + a₂⋅cos(2⋅x) + b₁⋅sin(x) + b₂⋅sin(2⋅x)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a1,a2,b1,b2=symbols('a1 a2 b1 b2')\n", "a=a1*cos(x)+a2*cos(2*x)+b1*sin(x)+b2*sin(2*x)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to square it and get a truncated Fourier series again." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nUVsTWeL+HzwkGFqNy4FNAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{a_{1}^{2}}{2} \\cos{\\left (2 x \\right )} + \\frac{a_{1}^{2}}{2} + a_{1} a_{2} \\cos{\\left (x \\right )} + a_{1} a_{2} \\cos{\\left (3 x \\right )} + a_{1} b_{1} \\sin{\\left (2 x \\right )} + a_{1} b_{2} \\sin{\\left (x \\right )} + a_{1} b_{2} \\sin{\\left (3 x \\right )} + \\frac{a_{2}^{2}}{2} \\cos{\\left (4 x \\right )} + \\frac{a_{2}^{2}}{2} - a_{2} b_{1} \\sin{\\left (x \\right )} + a_{2} b_{1} \\sin{\\left (3 x \\right )} + a_{2} b_{2} \\sin{\\left (4 x \\right )} - \\frac{b_{1}^{2}}{2} \\cos{\\left (2 x \\right )} + \\frac{b_{1}^{2}}{2} + b_{1} b_{2} \\cos{\\left (x \\right )} - b_{1} b_{2} \\cos{\\left (3 x \\right )} - \\frac{b_{2}^{2}}{2} \\cos{\\left (4 x \\right )} + \\frac{b_{2}^{2}}{2}$$" ], "text/plain": [ " 2 2 \n", "a₁ ⋅cos(2⋅x) a₁ \n", "──────────── + ─── + a₁⋅a₂⋅cos(x) + a₁⋅a₂⋅cos(3⋅x) + a₁⋅b₁⋅sin(2⋅x) + a₁⋅b₂⋅si\n", " 2 2 \n", "\n", " 2 2 \n", " a₂ ⋅cos(4⋅x) a₂ \n", "n(x) + a₁⋅b₂⋅sin(3⋅x) + ──────────── + ─── - a₂⋅b₁⋅sin(x) + a₂⋅b₁⋅sin(3⋅x) + a\n", " 2 2 \n", "\n", " 2 2 2 \n", " b₁ ⋅cos(2⋅x) b₁ b₂ ⋅cos(4\n", "₂⋅b₂⋅sin(4⋅x) - ──────────── + ─── + b₁⋅b₂⋅cos(x) - b₁⋅b₂⋅cos(3⋅x) - ─────────\n", " 2 2 2 \n", "\n", " 2\n", "⋅x) b₂ \n", "─── + ───\n", " 2 " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=(a**2).rewrite(exp).expand().rewrite(cos).expand()\n", "a" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\frac{a_{1}^{2}}{2} + a_{1} b_{1} \\sin{\\left (2 x \\right )} + \\frac{a_{2}^{2}}{2} \\cos{\\left (4 x \\right )} + \\frac{a_{2}^{2}}{2} + a_{2} b_{2} \\sin{\\left (4 x \\right )} + \\frac{b_{1}^{2}}{2} - \\frac{b_{2}^{2}}{2} \\cos{\\left (4 x \\right )} + \\frac{b_{2}^{2}}{2} + \\left(\\frac{a_{1}^{2}}{2} - \\frac{b_{1}^{2}}{2}\\right) \\cos{\\left (2 x \\right )} + \\left(a_{1} a_{2} - b_{1} b_{2}\\right) \\cos{\\left (3 x \\right )} + \\left(a_{1} a_{2} + b_{1} b_{2}\\right) \\cos{\\left (x \\right )} + \\left(a_{1} b_{2} - a_{2} b_{1}\\right) \\sin{\\left (x \\right )} + \\left(a_{1} b_{2} + a_{2} b_{1}\\right) \\sin{\\left (3 x \\right )}$$" ], "text/plain": [ " 2 2 2 2 2 \n", "a₁ a₂ ⋅cos(4⋅x) a₂ b₁ b₂ ⋅cos(4⋅x\n", "─── + a₁⋅b₁⋅sin(2⋅x) + ──────────── + ─── + a₂⋅b₂⋅sin(4⋅x) + ─── - ───────────\n", " 2 2 2 2 2 \n", "\n", " 2 ⎛ 2 2⎞ \n", ") b₂ ⎜a₁ b₁ ⎟ \n", "─ + ─── + ⎜─── - ───⎟⋅cos(2⋅x) + (a₁⋅a₂ - b₁⋅b₂)⋅cos(3⋅x) + (a₁⋅a₂ + b₁⋅b₂)⋅co\n", " 2 ⎝ 2 2 ⎠ \n", "\n", " \n", " \n", "s(x) + (a₁⋅b₂ - a₂⋅b₁)⋅sin(x) + (a₁⋅b₂ + a₂⋅b₁)⋅sin(3⋅x)\n", " " ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.collect([cos(x),cos(2*x),cos(3*x),sin(x),sin(2*x),sin(3*x)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `expand_log` transforms logarithms of products and powers (of positive quantities) into sums of logarithms; `logcombine` performs the inverse transformation." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJcAAAAUBAMAAABylbI8AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMqvNiRDvuyJ2RN1U\nmWaBK2/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACzUlEQVQ4EXWUTWgTQRiG322y3W2StrEHUTw0\nUAWxhxbTi4p01V6iFEIpQfFg/UEFFZZcqtDDHrxI/QkSkByE+HPx1Age6kVzEyxiBPFWzUntQdpq\nq9BW4vvNZpvs1gzszPe93zMvM7O7A2xpd13l+5ZCC6GJ7xkKMKbtCm1OsDA/GQe0PsuvN/P6OX8N\nIccV9MFAYQzhNUqZhF/38Vl/DT+8PFUPYjk32ANcZGQk6np98PFBs1mPzdQDz+wKMMB9Bs18fMDM\nLHlmoaIbeWbD6f+Z+XmajReOA49HFx5wdkcFeHp95/00woykeWYMX6fVyvRUvojI7s8F2+Vxc+FU\nUfFZaLMwcpFVvOogb1QBq78cttE1yJStYRZZYcpt7nJwAzPpaDXn8pHLGEgrPouoBW25rYR+mRot\nwyzvR9cSYiXJm82iCaY0ewH0xvvBKYpHpoo+ckyz6C0DK50Trll7ETo2EF6FtkQ2nEweOp9MJhgC\n89IZCW0D6LY+uWbk8QW4wC+QfBbvmf8xl/WrwkqRWzYmXDMqm9uU4xSzGD+3bvtePFNmKvwlmJRc\nM1nZXzOfj7Mm20S4hDMVREqSN5m9g+lsrqxyK3VEquT1FTkVxWfRzolrsaKUyFaBUAVf3QOlsLky\nrYIOR8xwDZgpvpWa4vUNGINQL2AS2lmErMjBbY4U5YPotimh05K8YTY9MiqvyLCxPY4hPHm0Q6rC\nH8Cipfie2l7cGdkHDNd+U1eLnXn20OH64kzZvDMbrtXWeTIDPx3z49EiQrUaV6j4sYIcu8dTNMr6\n7Zccwd/jhIyYVn3DrJ56wxROzuWYqN9pkYHHM3zD5xsf+dEPywjvR9cdlQa6mM1T4uNeDH0MPJ7h\naW5qSiYYDg+UbcsVJGKj6c9lN8wNhx0/s2ZeHymM0g8w7blfOY4KEqFFG0/lP0hJLsdj65UWfNM1\n3MLHLzf4f/W3vKRiPA96AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\log{\\left (p \\right )} + 2 \\log{\\left (q \\right )}$$" ], "text/plain": [ "log(p) + 2⋅log(q)" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=expand_log(log(p*q**2))\n", "a" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE0AAAAcBAMAAADW9S/RAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMqvNiRDvuyJ2RN1U\nmWaBK2/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACBklEQVQ4EYVSTWsTURQ9M8lLJjPJmHYRl8lG\n8GOThS6UlmZRCCipWbgTaRTcFJFQUTcK476SLKolpYtpKW7tUkHb2XWjmIWgP6C0dNUUWlsCJd77\n5uNNAtYLc+ecc8/c9959A5wftdf18w1+Neno5X/5NFdVLEc7RUbxOLoYI5Zr9GGWYoqCNxQklD0G\nZoaUgOTaQ6pF1KKzjF8fkoEWibGoEc50AfEoJjLkggqbLDB6lOaVKNGTIb6OVeKb9Iz4NNq3Cm3i\n23Niv+gZ8dkN5QJSgwGv+d733evcBtZq+0tEc2XArL7pXIIx8245+OZjnftpn5Bum8fY5MGnm0BS\n/4IqPjh6uIdinn1WBdqhvoFr/HWiBCxQOhBPEd1ty2Vf0QOOcg3fZ3WB+gUPdx/0kKrAjxY55vHD\nBU6MQyEnwv1A+3mRaoLbyFD9zozFRdqEvy7uQJzNVnDgu4Ciw/1SXZj9rOuLOp0Dk7Afz3p45kuy\nP15Ce4hExbw15rCcaVA6QSGfaNtHLHDs0n8wuIy301eBqcEfOgJoPtS98xviykpfmijxfQSR9sTC\nZ8ZzNL8NKdq9oIabIQC2Ce4x/Uln4cZQ4xPhvEm8nwdecbUA0BE4ovHZJcllEtOdGlmpi5fdkusk\np74GZUsWAhK+RDlE0XsnQnHwPU4YG81RRfJw4lExV4/gf8FfwmRxghoCoSwAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\log{\\left (p q^{2} \\right )}$$" ], "text/plain": [ " ⎛ 2⎞\n", "log⎝p⋅q ⎠" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "logcombine(a)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The function `expand_power_exp` rewrites powers whose exponents are sums via products of powers." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAQBAMAAACSDPCjAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAwklEQVQYGWNgAAP260U2EBYDg6xSFJTJHh9w\nAspk7OH5AmU6KjP4Q5m8F3geQJkMRgzroEy+BUwGMNE3DLZQprwDtwKUyfKFpxHK5Dtw/gCUyTVJ\nVwDKZDXKB7KElF3VFHgTQGJgJgNDJQMDYwJ7E8cEjgVAQQiTgcGMgYFNgO0jl8N9Q6AohMnA+/MA\nAyMD5wagCAggMRkY+BXAYiACiQl3CAMDnMkloM/ABHEVEjN+wX4Gd4gRSExhJaHrBRBRBBMAmSgp\nGT3FUhMAAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{p} x^{q}$$" ], "text/plain": [ " p q\n", "x ⋅x " ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_power_exp(x**(p+q))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `expand_power_base` rewrites powers whose bases are products via products of powers." ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACwAAAAUBAMAAAAEg8LyAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA1UlEQVQYGW3MPw7BYBjH8V+lVVp/mjqAhqSx\nFDFIbDWIVRxAe4SeQSLWHqEHEBEOQFxAYhGDgdmgicRK+jziFZ7l/TzfvHmAZNTD1iFBIFQvKLj8\n40N0aygalAUCLYz4iEhcccpxFyjfMJlRFgilCTugzDSrPduiYu4hn4mSr44zIdmfI3Ujpo10rLmJ\n5egIfUFZQpYFCRcULcoQpMTYbd75o3yIOlfNaCBl0KI3seLsRWv02fmF8mCWKuYhYEtt5878fl7X\nf6eD8uC3Yorln4qhs+H8BEG3LbvtrRKvAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x^{n} y^{n}$$" ], "text/plain": [ " n n\n", "x ⋅y " ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_power_base((x*y)**n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `powsimp` performs the inverse transformations." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJAAAAAcBAMAAAB8GisoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMkS7zRCZdiKJ71Rm\nq90icBAQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACwElEQVQ4EaVUTWgTQRh9u8kmmzR/iNBjcisV\nJQEFLwoBA56ERQR/LonYGg8ecjApFZEF8aAUm4tULxpBEU9GRSh6cE9aRCViIVYvMVjNwUMsBCtV\n6jfZnXE2plHiQOZ7731vvpn5kgnQZwSOTfZRh5CuYHGIVdjkWlQj1kLcdIkbk9DJ0RJQYAYl5bIx\n1sRswiVuTEJJK2hiGzN4DdsWKI2+JmSXfWKM17BsJwbO588iaiBgkSnvGIvhdJOgXegzyh2l4mSk\nMCNhLDBSxxaaaU+94+RiXouhbqFATt/f8Ns1nXQ36C4pbJJ4A8cVgPoUyHUtNEVNhDOZm5m9wFMg\nXA4XeEZErykgAS1N52ijeQ+YBYJVnosjRpDtqZbVWCQRZNQ9aAN5zJG1hmkLiFiIG3ZKb19DmSAr\ntPnxAyMSS9oJeW7JBDgiqC+F5w7R6uPTrCYrdHd9HWp9h7BxoDc4sqM3wbm/ggmGD0+d4BIrxMYh\n7LKBNPtz1Jipt2NzOJiHfkvqr9rBdjKqLVzgfl5oSU1zSUSPRXviVeEjyo/gbyMkLMpX7CPbxap2\nlLtNB2y9ypXfMVIFLuO6Ma9XJ+BJYaTBc/oKPhF+9+yMwaVBMZgADOyh++E2ogUobe7W17on+sn5\nXyIrBHyjD/UkHpMLrXQLfWf5fxjsaqB2AL40TlO5Bl+krOIN4TuAn0uDImv2Q2pyEZ4adkNqNp2Q\nCuMUNPH1uwpl0y5Kz0ld87R1C76U+oPOVebpUAVJarM//4Ir7hhZdnG6ilYvlsisLZVW6R8oxtP0\ny7YbyIXeOO8WpCdCXcIlkfUWpOMJVQLi7LYmHu0isgmAHq0zsgaUCid9olZwix7T4V+wk+6XFtmX\nhN4L9icI9Ujij22sRO0RZYEPZDzQYx5IZ+TsgiAh1oKRnOBDg3PdlfeHXi8WTgr0/+AXGXOTfAqx\ng9sAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( e^{x + 2 y}, \\quad \\left(x y\\right)^{n}\\right )$$" ], "text/plain": [ "⎛ x + 2⋅y n⎞\n", "⎝ℯ , (x⋅y) ⎠" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "powsimp(exp(x)*exp(2*y)),powsimp(x**n*y**n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "New symbolic functions can be introduced. They may have an arbitrary numbers of arguments." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHsAAAAUBAMAAABfS1/DAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACD0lEQVQ4EZWUMU8UURDH/8vd7d0Be2xINBqL\nI8ESYTk+gNsRsZCgsaHBUBgKIyZQc4YPcJhIqdmAFFCRUNkYPgIWlCbbasLljAUUFvzn7ex7T7Rx\nkn1v/jO/2Zs3u7eA2oLun8rAzb0EXFzR8U6K6pmGa6nLqxdM3ocDXFrR51vraJVVQe7y6tVeXsIB\nLl2gwdUdYM9GV9WrJ2Wo/bbrA2UYMGh9wMB7G7ynnivfkogDLAmDhjs8GS+1VrdwXPkaAx6gHDdB\nh5d3J1CZAIK5Z9tsJ6QrZssPPi/BB5gLOgkexwU6xkNGGXAbh8lH3i5nnmbL8YvKA6jC+jEeKvrk\nFGiuAy/wOt5gmZ7Dlld/s8ADqOaHcnxTVCYz0gViXNDD6IBL2O9//9LvL0rAjNYDGIpHEunJoDIZ\nycJ0WcQo7K/LaH1AyF48yp5M+Tml9AaJAA2habY8kh48QJLTqBwrekIpk3lTGWD2H6Njo38AVDiH\n3FSmHFxR8mk1LqNBNQOGVqhp9tfbXSoHtHPKB+hlBdr4ScmOg6eznSO6rVMuNFvei6kc0HxHeWt1\nJi3Q8IzSeycfiaTZ8ldGupeWD5c2zYvoZisT9fdfJkgljvriD7M7YAWo5ebIfEc/3DXZKDUbR5Gr\no1vz647xHJDwOWQRV0H3+Smg2c+FxUyY0+2kxrPAMGVjboqrjy4YCPi/j9U1H/R7s3X7S2cAAAAA\nSUVORK5CYII=\n", "text/latex": [ "$$f{\\left (x \\right )} + f{\\left (x,y \\right )}$$" ], "text/plain": [ "f(x) + f(x, y)" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f=Function('f')\n", "f(x)+f(x,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Expression structure\n", "\n", "Internally expressions are are trees. The function `srepr` returns a string representing this tree." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\"Add(Symbol('x'), Integer(1))\"" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "srepr(x+1)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\"Add(Symbol('x'), Integer(-1))\"" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "srepr(x-1)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\"Add(Symbol('x'), Mul(Integer(-1), Symbol('y')))\"" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "srepr(x-y)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\"Mul(Rational(2, 3), Symbol('x'), Symbol('y'))\"" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "srepr(2*x*y/3)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\"Mul(Symbol('x'), Pow(Symbol('y'), Integer(-1)))\"" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "srepr(x/y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One may use the functions `Add`, `Mul`, `Pow`, etc. instead of the binary operations `+`, `*`, `**`, etc." ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAApBAMAAADzOtVRAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAmElEQVQYGWNgEFJ2VVNgYExgb+KYwMAmwPaR\ny4GBkYFzAwMI8CuAqfMHgBSXgD4DkwBD/IL9DO4MDMJKQtcLwJJkEf/BgCytmJoYdRUY/AQY2Lge\nMOgzMHjxTmDYzcAgwKfA8AmoNl6A5w+QusnA9ABIbWbgNgBStxniQY4XTrrvAKRAsgwMzBMYvwIp\njgJuBSDFqnQHSAIAnCMf/cH6QSgAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{x}{y}$$" ], "text/plain": [ "x\n", "─\n", "y" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Mul(x,Pow(y,-1))" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\"Function('f')(Symbol('x'), Symbol('y'))\"" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "srepr(f(x,y))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The attribute `func` is the top-level function of an expression, and `args` is the list of its agruments." ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "sympy.core.mul.Mul" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=2*x*y**2\n", "a.func" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcBAMAAABCE4YjAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMkS7zRCZdiKJ71Rm\nq90icBAQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB2klEQVQ4EZ2TPUjDUBSFT9omTX8tDq7WSRyk\nFVEnoeAoQgZBnFpQcRKyWMWpIIibXaw4tYu4FkEQXTqLSkFBxaWCCoKKikVBId7kvUiSLr7e4d1z\nT+6X95MXQDxKw5o4ZBGhQizD0U7BV8QL0hd0E5LSomhSfUe/CQXEFx5pIlQjdN7kxSJOy70H1Caw\nNjMgxJaoOw+EcpDrKCcF2GiOmjeAcBUxDeGKANqHHiBeQzdxDcTe/o9K40dDgJLGMZ1xUwgNG8Yr\nEKxg1pouToflDnnpqnfLbQFT81B3mOlrYtBSqaK3axpn+p3XLB4iSDOaIb1hwhLP1ugcNlHWDpwG\nabU6C3+amXSjHkyl5FjtGDWMOSomZeyiQ2da/Waz0vdtjc9WizbYnWA2zWouOJLDeksfbaYllAxW\nuEl/zznJLmDZ27ZP57HoNf11jHKPFkBvUR+3Fxryh6vP9+1/VWvIZlyukvb9cCNaQUpDwDCMBl40\nZ5d8uZg/oetGP4gj5Ov8Fy/pNoWTXEcKXLiS9/vQblkEdChFrkM8u5P9lLkXyCb586wGqcL1FM+u\nJOuu8gkjdn1K4oYXNdt05qizAHrzCdu4JTFpF0I5au6E7kMbsWoxe22QmGsH+mN+ASTeZCGswSSD\nAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( 2, \\quad x, \\quad y^{2}\\right )$$" ], "text/plain": [ "⎛ 2⎞\n", "⎝2, x, y ⎠" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.args" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n", "x\n", "y**2\n" ] } ], "source": [ "for i in a.args:\n", " print(i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `subs` substitutes an expression for a symbol." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAOBAMAAAAyKEr9AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaJmUSrVGYizbvd\n7zLJaKAlAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAkElEQVQIHWNgEFJ2ZYABBwa2AiibvYGBcwGU\nzbyBgfEAlM36W4C5AcpmyP9hwcAgpDZVWYGBgfn/QgZGA45DPAsYGMpi/gYwCzB/ZJ/AwJHAoH+R\nkYFrA1AP7wQGvu8MDPxA1QzyQJzBwPD+AZAGijPsZBfQZ2ASYGBdyMChEF+wn2EGUOKZsyuDmJKQ\nRwMDAPz2HIqnXogjAAAAAElFTkSuQmCC\n", "text/latex": [ "$$8 x$$" ], "text/plain": [ "8⋅x" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.subs(y,2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It can perform substitutions for several symbols. To this end, one calls it with a list of tuples or a dictionary." ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAOBAMAAADZH/H+AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaJmUSrVGYizbvd\n7zLJaKAlAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAj0lEQVQIHWNgEFJ2ZYABBwa2AiibvYGBcwGU\nzbyBgfEAlM36W4C5AcpmyP9hwcCg/////y8MDMz/FzIw2xXN0JzAwFAW8zfgOYMl0wMGBo4EBv2L\nDAwb2AQYGHgnMPB9Z+BL4AHqlwfiDAaWBn6IOMNOBnkB/gAGBtaFDBwKDDoMvAZABc+cgW7bwcBm\nwAAAOegd2i56qU0AAAAASUVORK5CYII=\n", "text/latex": [ "$$8 \\pi$$" ], "text/plain": [ "8⋅π" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.subs([(x,pi),(y,2)])" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAOBAMAAADZH/H+AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaJmUSrVGYizbvd\n7zLJaKAlAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAj0lEQVQIHWNgEFJ2ZYABBwa2AiibvYGBcwGU\nzbyBgfEAlM36W4C5AcpmyP9hwcCg/////y8MDMz/FzIw2xXN0JzAwFAW8zfgOYMl0wMGBo4EBv2L\nDAwb2AQYGHgnMPB9Z+BL4AHqlwfiDAaWBn6IOMNOBnkB/gAGBtaFDBwKDDoMvAZABc+cgW7bwcBm\nwAAAOegd2i56qU0AAAAASUVORK5CYII=\n", "text/latex": [ "$$8 \\pi$$" ], "text/plain": [ "8⋅π" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.subs({x:pi,y:2})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It can substitute not only for a symbol but also for a subexpression - a function with arguments." ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEkAAAAUBAMAAAAzTQ3GAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABSklEQVQoFX2SMS8EURDH/8+tvXVu10YhRHMF\n/d75ALalIYhGgahUTkKluEt8AQUluaCh1XMf4Rr9NQqFzYrCFQr/efd2ZXcxyb75z8zvzbzNe4Cx\nZeNvk0TeTzZCWD2THQ3zZRNvtprwkqLq56kTXzJqMA1cp7U9o8qBFmptW1PlmOF5Ss1mKWBRU/YZ\nYPEz5rWHwvQyVGXrooZSjZMXNk45zqYUy1KYCAC3A0zhLrgCKn1hCtRKFxhrArs48I9YNcNzvVrc\nON4GfLxRoRpzsaPo9TGKViUxPP0+lVDAhyyaos/1emZKJqL6xQXO7xMfWJLTH5Zi1P86vRqQ4u87\nn25sER7ZYUzLTnTemeIYtV5v3FN6XS60hJp/eumwTU9yPze0JCEtoXRw7HXEF29bhZI3djmjhRua\nuPhypHAzp8vpK0xxsyvr/n3R33t9QJp8FDxhAAAAAElFTkSuQmCC\n", "text/latex": [ "$$f{\\left (x \\right )} + 1$$" ], "text/plain": [ "f(x) + 1" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=f(x)+f(y)\n", "a.subs(f(y),1)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAUBAMAAABscEDKAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAs0lEQVQYGWNgQIAiowAEh4FdgG0DEpdLgOUj\nMreB8QcSl4GB9ysKl+sAA6OSsQNMrIiBIYyBHaaDT4GBIZWBYSZUtp2hhWEWA0M+RDXL3rumDPsD\nYFzO//8/gNStD2DomsHyAMQEAo7vDKw2h5QhHAYGrgQGVgZGAxhXCcRwhnmGRwHI40gAEmBwiYFR\ngOEajMeiwMAjwKvAwAYRkCovymLwev5mBYS7////XwwKfLMbwFwA5Eck9jrnJ+IAAAAASUVORK5C\nYII=\n", "text/latex": [ "$$2 z^{2}$$" ], "text/plain": [ " 2\n", "2⋅z " ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(2*x*y*z).subs(x*y,z)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIwAAAAYBAMAAADaGQhYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABt0lEQVQ4EY2UPUvDQBjHn8Q0iWmjoTrXoOBW\n7SS4ZRHX4uAkWOrkUOhncHGToovnVBwdpOos5hsoOoijbm4WFMGlprnnck9e2yx3z+//wuUIAeBP\n+8XB3YSlc19gtLv2YEKey7o308s32i3jK18liulVvsmY2k55GrOp/aSyBNR8MhRtrWGBqp4WiDHJ\ndGNjYpjypQA6iWB81P7ic95kPOUpAa/52i+XL9OuGNqFPe6w3LTT9NR3TmOZNKpcXN1wmlVTaR94\n6QwnQJvnRiP8wBI11ZWtVRcDwSIyBCOqPoOGRx7bRQ3HSss4Msn3jRmKEbWuQSWfuqjhWHf0oeWN\n6/mDGYo50vpvUB4IW3QaxArMSu2QsRPGzgJvhCOkwAfMu1ijM3b+yVhjbEQcaaEFTwMyIq6rNIRH\nH2uCRbyUwFSTV0wi2Gz3YE22RDUcW846qI6UMUMxonID7qQvquF4v/8A20TFDMXiNIMSfumhXbyU\nHeKF5eprN11DMdYoG3X6xxI1CYxVmCHF4ooBgmuQj6hJYDQsSqPYIdqEpaZAwap4fEhg4sjeHsNt\nlpCDs6wh26n7WVqI/wFXp25pHD6lYgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$x^{3} + x + y^{2} + y$$" ], "text/plain": [ " 3 2 \n", "x + x + y + y" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x+x**2+x**3+x**4).subs(x**2,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Substitutions are performed sequentially. In this case, first $x$ is replaced by $y$ producing $y^3+y^2$; then $y$ is replaced by $x$ in this result." ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEIAAAAWBAMAAACGZVc6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA+UlEQVQoFWNggICkywJQFgqVuxcmzFvAuwFF\nCsJhc2CeABXmTWD/gEUFhwPPF7gwVjM4Ali+wlXIHYAzkRlcH2E8pkkwFirNoQDnY7WFgSEXroCB\n5ReCjWCxX4Cx5Q6wfIewuRRgYiA6jCEGyuVwYHoIYaKo4Jm1aiNUBU9SsgMWFXz//wODSUjZVU0B\nqhBIwcxACDMmsDdxwIIWoQJJmE2A7SOXA4YZSMKMDJwb4PJsM2fOeDlzpgEDA4owvwJcBZABcwcD\nkvD5A1hVwIW5BPQZmAQQaqBmIAnHL9jP4I5QALMFSVhYSeh6AaYKdGFMFUgi6ExGBzQRALRIMvdt\nTA/FAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x^{3} + x^{2}$$" ], "text/plain": [ " 3 2\n", "x + x " ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=x**2+y**3\n", "a.subs([(x,y),(y,x)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interchanging these substitutions leads to a different result." ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAYBAMAAAC4muZ3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaZIu+JVM27RDKr\nZt2dj8xZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABQElEQVQoFWNgAAM25YMQBiqZPFkAKmDLYIkq\nBeaxOfA0QIXNGO5jUcDnwP0FLozNBL4FLL9gChijYSwUmv0jjKuhAGOh0HwIYWxWMDAkI5T7FyDY\ncBavAZQJdIH/BQi7CC4LZCxjWA3lPmFQhQYJsgLu9vKJUAXb1I5AWcgKWP///8DAqKzA4ArVDVID\nVSBkxMASCNbDxh7AoA/VjaQgoZSB6QNY2J25gWEmhgKWAgsGzglgYQFWBYZPMAUZHR1POzp6GBgY\nGYIY+BUgwusFuH/DFABpqBu4PjLs3wARtmBgCsBUALRYFSo6h4HzAKYCoNgcqKglw/oLmAqYJ3D9\nhYrKJNk7YCpgPKaMSCsWSPIwRzIwAF0BBjwNjPBUAxIQgQifYJBfAGHxXeBUgLBQyLcMk6B8LiVr\nFBkoZ5EyNBQAvf08svW3kXEAAAAASUVORK5CYII=\n", "text/latex": [ "$$y^{3} + y^{2}$$" ], "text/plain": [ " 3 2\n", "y + y " ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.subs([(y,x),(x,y)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But if one calls `subs` with the keyword parameter `simultaneous=True`, all substitutions are preformed simultaneously. In this way one can, e.g., interchange $x$ and $y$." ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEIAAAAYBAMAAAC8bzZKAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABN0lEQVQoFW2SPUvDUBSG38Q0iWmiIe41KLhV\nOwludxHX4uAkGOpc6G9wcS1Oxqmzg0SdxfwDRQdxbDc3A4rgUtOc+5HgzXKe896Hcy+HAPQNXkNO\njTJ8EHEwCrLGETU2WxrzOEicT43hMv9LxtoZbt/6lkYnl1gHrxCdeSGoWd1Y9tpbgKEUYP0qVuQ8\nC+7k1g+xF4tsUY9wzFuXmVPChuFfXd9ywx+cMo2xMp+Xa4o297diLpZFzIheYNFYI3HOXLHampHc\nwKQ126FdeOzfDGvyjnZWxQaWCRadnaaXH2naAwzMsBpXBhRUvXhHq8BTzg0JDSMYY5sEL9yBGXK5\nLGJGu4d7Sk8mjzhQgjSCrMW3vLYRvY00hrHbVT9P7VzdApQv0X4Go3gP632tIMNz3EnWw2E3p4M/\n5jk7F+4JqyQAAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{3} + y^{2}$$" ], "text/plain": [ " 3 2\n", "x + y " ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.subs([(x,y),(y,x)],simultaneous=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A function can be replaced by another function." ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGMAAAAUBAMAAABrMp7fAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVJl2u4kiEO8yZt2r\nRM0tcn99AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABxElEQVQoFZWTv0vDUBDHv21jYlr7AxV1EKy4\ni7RIHYOCgziIDg6CZuikS0EUNwcFJ8H/wKLgoEtdRBxEEB210FGHDOIkpSpUFATv3stJoi6+4d29\n+9w37y65AHqZZd858O1Ps6gDAVyUlDZXvJA1HX0M4EdJsDzxQjbl6qPlaQvEs+Jhxvc6viPs7MlJ\nMBKuhLDme2HJiXDBWJIIkKpqPyQxK5KgcHu+EzmKWPnrGl3bkv0hYR6j4PIAzC2FWxzzBROUtoKj\noXNqywtLFDfKwFQPYg2F+0p4xjGlzWKh1AVE/BqkMMUTGZiZQRiOwpuwm9gmSQkP/Hy7Qdt8vX5a\nrz/xWfHWKixsID3E2P5ArKIkwCunKAlZ/xbNSYLkG3Z3GMebMLKqMNjvLEmGC9OcCkPUw4jCkQbS\nGdV+NzVX+NW+5ty+cYFJha0mbl1Mk/zZaPBwRqf4ru/CNOc3H3WSHxrfD88Bd/RZLgu5Q0pN7dBG\nS96Y4lytdZVrCh5FcGBkEEQCEIcaGOqG58SG9fnnWK7yVcJ5LG+wXgVP7UKJ2gLGGfOyPNoCy+eG\nizOMady7388JRckiFlo+Nx3UctRlAP/jR/4Cb05yezlFLDMAAAAASUVORK5CYII=\n", "text/latex": [ "$$g{\\left (x \\right )} + g{\\left (y \\right )}$$" ], "text/plain": [ "g(x) + g(y)" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g=Function('g')\n", "a=f(x)+f(y)\n", "a.subs(f,g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The method `replace` searches for subexpressions matching a pattern (with wildcards) and replaces them by a given expression." ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHYAAAAbBAMAAABb42amAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABxUlEQVQ4EZ1UvS9DURT/PV7bp4qmLCYvJLZi\nEIntLUJiEYMYJLoaJFabWCQGaYKhYhCTGKQ+EpPof0AMxIbErgkx1mnvOe8e9bThLvfc39e57753\nH/DPsXyV/qcT8aA1L96/xnhB6p29OkbiGs7ejPvBAhXT0KLIZFm8NkbRDUvPD+kwJkSaFMuWVzEG\ndFcs+b1KBLRO3FpQxRhw2nL11SgBc1gQWMcYbEeon3MvkNo7PhUijDlkpC5M4Bob99FZqbyx0saI\nyAuYMpPAtZXzpDkbI6IpTQMCG3SXyczAxKBvhSLKEqQohjN3cJ8BPlgnl1j3ws/aNrgENMXe3Ala\n6DlXTa94Ol5OBj/7bgKaMl734BHtReDI6B200YLHUqGwVShsV1ev1FeoEHbwgi4fuGF9bSG13TN5\noSjec6yMm5LyVhd2sAi0Z9KUhGC4I48hguYNnEwPoyUtEtuXzkpT7G0fwTlp+awWD64xaa3hi6TX\noCnpW4x9kvjeGLr7Mw8rEV7alqbY64xlq7+afWVQJYvw2zdJTwx3TRlU2cN13V1geBx9M/TifWWI\nKi+iwA2cEUx3sPGIvPuz2RK5ImN1WpN/Dkm/AFenar2hd94uAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x^{2} + \\left(x + y\\right)^{2}$$" ], "text/plain": [ " 2 2\n", "x + (x + y) " ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=Wild('a')\n", "(f(x)+f(x+y)).replace(f(a),a**2)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAAZBAMAAADAjh3IAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACAElEQVQ4EZ1Uv0scQRh9cz92b3fPy6AoaRLX\nC6Q7FAmWYRtRLPRIYRW40yqN5AiBpAlcfjQhzZZebC5oZeOJpYj3H3iFIJKAki7dGbQRQb/Z2Z0Z\nuWvOD3bmfW/em/32Y2YBGWsHPEYDTFaQDgeQx9JckL98gKucuRrcBbgXD3Hl/P6uuR76vcGsGTiG\nT0oBMq0ePh0oyu4oqMDMThOOliQ8091exmvJur5avRoFPiWZMa8mOP9ze1di7XK7xHxLFMb8NMGF\n21uhodAuqw5k6OkJpwwMP5t97usV5bJffu0g1QFY8cUrWRQr+VjksDpgVftLLuzjwiPay6sBY/jo\nf48ElnuOScAOYXHrwg36uZbaQK4JrOAt34oEC0Mh9ukj6mBwWspjNRrr/xqNqYjYobFQBjg2YgEv\n+PgP5LuUi0p0qO/CGyKFC0Ipo8LzN7HrqJ2QYtauPcpEhRBKGadInQPZOlw+iRRPaNP1l0jRjV+p\nLiakYA/eVNSNSvMQ5glV72Li6lCTs9deN1PDeEjpb1Rom6EqRorDJ4RUKFdWXB0qhk1PlD5QrZ8p\nHVk9CwCnTfB+KJfVEgv6RMnmnxI3f98hMhZIbtOJKtCntwqkw6hsdXql0hx/PI4yL4hJ5lOVNY9G\n46bEa3p6dxxhdSttSrPFPzSqjbS4B5n9lYv0B7gDFElfYCv0KU8AAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{2} + f{\\left (x,y \\right )}$$" ], "text/plain": [ " 2 \n", "x + f(x, y)" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(f(x,x)+f(x,y)).replace(f(a,a),a**2)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHYAAAAbBAMAAABb42amAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaZIu+JVM27RDKr\nZt2dj8xZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB9ElEQVQ4EZ2UvUscURTFz+7qzH6Ow5J0WwwK\nqQRjt0uUTCPBQKK2abKoRUpJI1ZOEXCLFAlJIyjZKk3AtUynTSBNYCH5A5ZFEayiWAQtxvdx7+y8\niYvMvmLeuefc33uzj30DjDjWPrkjkrD8ckCs1ZhNt4rjl66IWMfPlGx77JqIExz56WDYFwScY6md\nknW8CNhOe2xrEYr+QGo11k06XP+RovKYS1gDSd5ilCVF2RfOV3xj/zeLaH4XqbiwV4BMAJR2Nj+S\nX2wWD7V8S07snaRDdm1Onu4qMB6Gf6nz++aWqyWzjk+RaWcl+9CIXoch1cy+NHLeF4rNt3WYmfKw\nQHtKh9kpoavTzx950hzYiuWDtexlzOjcaNoXZ9Ks9J1AZ7ykYitkPssF2NW5enLTGWC51oXt64xt\nxdo9bbrjHi61BN60Wqet1ntZvhL7Iv9BJTFbsSU+4o5bumFWzLyBYIEJTz7lYNtk68gu69xoEu8M\nHB1yYrDFHtl7KBxzh5i5SZyV7c4g6+qMbeOs0ECnewcrrkln4wteUGSwuSa5tdWnPkk5cdMBUJus\nzvOyZOd+/PsF5KOfgnoMjdgh/0nVyv+5cpDhD4/yH9BCibvAtkrFXVDD6RY8kub02SxjlbyDahQn\nn5BKTMPvfsFPtP5X3vPNEf23RllmGRxsX9YAAAAASUVORK5CYII=\n", "text/latex": [ "$$y^{2} + \\left(x + 1\\right)^{2}$$" ], "text/plain": [ " 2 2\n", "y + (x + 1) " ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=x**2+y**2\n", "a.replace(x,x+1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Only a complete subtree can match a pattern, not a subset of factors in a product or a smaller power in a larger one." ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAASBAMAAADfxFGoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA+ElEQVQYGWNgVDJ2YMAAYQzsPzAEGVIZGGZi\nis5iYMh3wBDeH4BNFKhsfQDrmcSeGoYYHQbGqQwcKxv8gIIc3xnCGV4dWM1QcJOB5wND8BklA6Ao\nVwJDKUN9wEXGC9oMzAYMAQzCIGuUGICszQwMrAxzGPgPMDCwmAIFeRSABMMfIOb4yuDvwMDQBuJf\nYmAUYGD5AmQxbWA4ycDAmwBksigw8AhcBdpylIE5gcEMpIohgUGqvCiL4y/zB8YHDEwGHP8YWNbV\nnWpg2P///y/WnKOH3gGtSz/0kYGJ4eUOoBHIAGgyBshmiG/AEGRYx2CDKcjQc8gBKgoAOuw8cGEI\nCL8AAAAASUVORK5CYII=\n", "text/latex": [ "$$2 x y z$$" ], "text/plain": [ "2⋅x⋅y⋅z" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=2*x*y*z\n", "a.replace(x*y,z)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAI0AAAAYBAMAAAA122NmAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABoElEQVQ4EZWSPU/CQBjHn6tSkPpygcTVAxMS\nB0QNk1MXY+IgiV8A5AvAppuJcXFjtHHBxNVI4uiAk4OLm4SggdXEAU1cjIMtvYe28FxNO7R3v//L\nXa8FkJeBg8BTz28G5v9Pbjnl6UCPwmrGamTPC5yoM5SirZA9EHU/T4oe9kGtqmYVRc+aUGcIJW4q\neiK+VwpUPaUmsawS3bz1O66YFD6TfTql+mgewIRzHCrJ7xUMnMG6y4NYVQ0Qb29TqzzmihSmelKr\nOznhmp07LsyyxYNqKJZOlhewz4FV4qeJxnRgGY7FeSiWPXpyAAUAneufSXM6cAg1fh2KZc/eQgPu\nARjMtcZ23bIu3i1rwwYcLsOw5+SLAr4c65IYB+wBng+4IkoERlTm87+O7fkBzc4TVXBFlAiMqAva\nwM7xAmjuPzLKoHqlDSGDLV69D6PzDgz7IMrNNux6ftxP7McYztY9LkN+jD09KNvGdDbV8fmxh21l\n8kdeDYWxJ13tmz6nHKI6oRDYQ90JszNlJgFJLJ0zDfZNRiLCRN0QESOkPZZ9tfkf2BFXNupmPKQA\nAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{4} + x^{3} + x + y$$" ], "text/plain": [ " 4 3 \n", "x + x + x + y" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x+x**2+x**3+x**4).replace(x**2,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solving equations" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a,b,c,d,e,f=symbols('a b c d e f')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An equation is represented by the function `Eq` with two arguments. The function `solve` returns a list of solutions." ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAyBAMAAAC9habhAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhC73c2rRHaZ\nImaqCQggAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA00lEQVQoFWOQ//+JAQr0/39kEHZxhXFDXAwZ\nRECcMHGIkCOEy9CJyv2MwuX6isJlKkDhcszeYwASgBoV38r6F4lrH8AAdgxU9gQDKzK3h4ELbBVU\n9h8DD9gqKPcXQ+ADJKPmMeSAeDCLYvY8QOaC2QhZenH/g8AH+tsL8x8sNGB8aNChcXkPnRYFCUFl\nF17gADkZymWVY+BJQHCBUcC+AcFlTGCId0Bw4xUY7EE8qN54A4YM5gtwLscGvkomhCzrbJWbuxBc\nEAsMsDsSpyxaAkZN3gBGFkCdLnAFvQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left [ \\frac{b}{a}\\right ]$$" ], "text/plain": [ "⎡b⎤\n", "⎢─⎥\n", "⎣a⎦" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(Eq(a*x,b),x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instead of equations, one may pass just expressions to `solve`;\n", "they mean equations `=0`." ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACwAAAAyBAMAAADVdiTZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhDN3burRHaZ\nImamCFduAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA5ElEQVQ4EWOQ//+JAQ3o///IIOziiibKEOJi\nyCCCLBghDuE5ogozZGIX/oxVmOsrVmGmAqzCbLP3GIAk0KyMT2X9i0XYPoAB7Dk01ccYWLEJ5zBw\ngZ2IpvofAw/YiWjCvxgCH2Cxch5DD0gU3YExex5gEwaLYaoepMKs6eVAUObA8B8EPgwZd8OCE0Gj\nxSVMgjhh3kOnRUE60FQvvMAGChI0YVY5Bp4GTGFgkmLfgCnM2MAQ74ApHK/AYA8SRTM73oChjfkC\nhjDbBr5KJkzVrLNVbu7CFAaJgAGad8gVxlFwYC9mAMrFQ7NSUgoRAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left [ - \\frac{b}{a}\\right ]$$" ], "text/plain": [ "⎡-b ⎤\n", "⎢───⎥\n", "⎣ a ⎦" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(a*x+b,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A square equation has 2 solutions." ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n2d97/wsKDVkvv1rNcAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left [ \\frac{1}{2 a} \\left(- b + \\sqrt{- 4 a c + b^{2}}\\right), \\quad - \\frac{1}{2 a} \\left(b + \\sqrt{- 4 a c + b^{2}}\\right)\\right ]$$" ], "text/plain": [ "⎡ _____________ ⎛ _____________⎞ ⎤\n", "⎢ ╱ 2 ⎜ ╱ 2 ⎟ ⎥\n", "⎢-b + ╲╱ -4⋅a⋅c + b -⎝b + ╲╱ -4⋅a⋅c + b ⎠ ⎥\n", "⎢─────────────────────, ────────────────────────⎥\n", "⎣ 2⋅a 2⋅a ⎦" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(a*x**2+b*x+c,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A system of linear equations." ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARMAAAAyBAMAAACNACKsAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEImZRO/dMlQiu6vN\nZnZmcXX2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFbUlEQVRYCcVYS2wbRRj+xrGDn7FpaCRIFa+E\nKAhBCZVQeaSJOZQjEQ9FNGpRikQFBKqckOASX3pASMRQ4MBDNUI9gagpqsQBglElemig4cIFEaya\nqgdoHihSC6WFf17rnXV2d0xUeQ478///93/zeXd2dn4D1LYM82v32ntlPXd8YkYPu9PnJgtq4rmQ\nm3LLhACx0Qf8Km84FpLmB5Pd36xs4JWudw/IPvV3IIQCZ0Qwc8flNlC+3OYKc5yYC8anrsjMzFoY\ng5RQfLgkQW+0sOP6rrZcISO2flNIdGxGBPP1EExc6pzTEI+U7dpn1SdXw2CzDRHN10JAsSkRdKf1\nSDkVktYeUkTtAeEpDssuTEp2vlkGfp74QnFoKamdF+jRbVluW80K1+pSO0cfA3Inp+VsrUBs+QLY\nDrmYi1KD6loY76j4LfuL7Gvap6XsqaTXEH8eb+lAYL+nkl2lYL7hQ6SewwIeqaQc7reRMlfAn0Dq\nkuZRUth+9NTxTpnt0oGgniOrFDw640MkHHyZegr9wh8mZdtB3k5jBIykqDV318LCswsL/PXuWUOv\ng5NLFwu+CdpMjmyQVy589h2nfZFPP0apmf3LP4qMMCkCQJdTiNOaaK05dVcSVRRLULuBxm7YcySf\n2V34GjVJA/eNsZFyld8ApGuaQEkpOvxn0v2KbBIJfOJD8puNvKO8NlLWsXURSDRUCrSUMj5NVh4H\n+nQgqC8KJPC0H3CVnjutFzR4wEbK1/iYI0scz5uSkm3kpmP4AyzyZZZIsHWZ37o+BLarr47+CnfZ\nSOlv0k3BeEFTKCls/vb3f0Pf6C/aH9hLJNSu7YHF7l4Cmhc5vZ0UmXun7OiqpLi27SBWDUXa3BVO\nkKx97/Lc7I46Gryelb8+KMlWSu9HU0EUtv4XBsKR6q0+6oTDkAs59ESk6vBSxPLOVwXy15JO6F4v\nPlPAQaFg6Pe3zzVo1FvbpKChUaToUwxMd0CUpF2GNnX+5QVzcod66zTYyi+bac5h9K0SAdvXCcs3\nFULfVuIpsUJsLcnNzbZUeQTpascsmSeBbZ+LNIasNz//r23jN8DbGG3x3rNJNI/MPtzAwL2KyJvv\n5e50TPvq7EynScDLDnCfyvs/+RvNSEeq8xv5w30xekDoESe0ZGEFfYVwuF2UDhT+A4FF4j3ihoiX\nebx8HB/ylM7foGLdmKqnGhdvZkdvUPya4FgpUTe4PLR7kZud7yu9B3ie29iJptgeOtpX0qsiP3Lj\nx6tPuBPxATs2ZdivGRY98rrPIUxfjW2SqLJQlUMbpWufrFa1hWzNHfKBY1hfeQ5aRiBfNkyDxPbL\n3HbuMUlZw5jiJXxm2K7ROn8Jl0FiLaV14Je8JmnOnUwMHm2Kl8F0cmu76TJIrKVkh00WH6kZDLR8\nNbZBEilFlrtHdsyWTf4zy/fTV4tKXqt25NbzBcga24s3SCKliHI3vhfHC14OsH8KxYooeQ13gEH5\nZwFRY3sRJkmUFFnuUh004uWgs+4a1VK85DXdARblPwhZY3sRJkmUFFnuUm37DOfQVbTYN4oOL3mt\nGgEPqRo7mCRKSqLKy93JtnKKVvF4mZe8Vo3yLyFBVCUDbpJESSnywphq2+SqQYL8IsZutKmXeZrM\nF1QGi0kSKYWXu29eRrpubu35Ej16+uQlDe4Ag4l8XTm3QCZJlBRZ7v6An2pOi4JGmcX0MHjJa3iD\nDJGvKmcPxiRRUtw/OTxAMZTl7uC5V+ZLRoiN7qZthZe8Nk3kq8rZgzdJ1HcwUfcgujScdcTEGXm8\n6JIIOe3KjOj1v9pd1ML0f/srjS6qEFMPiHKShrkrtjvndZKc3OcKGKxdpzksaT9Y5MD/AB61tDyF\n40aZAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left \\{ x : \\frac{- b f + d e}{a d - b c}, \\quad y : \\frac{a f - c e}{a d - b c}\\right \\}$$" ], "text/plain": [ "⎧ -b⋅f + d⋅e a⋅f - c⋅e⎫\n", "⎨x: ──────────, y: ─────────⎬\n", "⎩ a⋅d - b⋅c a⋅d - b⋅c⎭" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve([a*x+b*y-e,c*x+d*y-f],[x,y])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `roots` returns roots of a polynomial together with their multiplicities." ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIwAAAAVBAMAAABmhxuGAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZpkQ3Ynvq81UMrtE\nInZCK3CHAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABnUlEQVQ4EaWUv0vDQBTHv21a04ot/gm1SweX\nbB0NaNFJRelsQRFxsf7AtUGUjgWHbkLo6n+gS6euFnEVRGdRqIKIEN9dcpdLExKlD3r5vpfv+/S1\ndwmA1Bwmit4La9dqE0GoeWDTknpXMPfzN0qWKAvlWxtIW2TMNmjxQmtiqy8SIL/ta6m6hpSoIvtD\nBJMqKkY3MNWQrmplJLUQ2lFLwRwDux5BxUyZ0L9FB1AMY4A3BbMDtGx3EBWTG/0P0zEiMTRIhk+w\nzEeKm8Z1AGuGO41u+b+C1N06Ldoer8VgPAdmPr297tq8RSziW1gegxH2TJPUGXC9T1ftfIlixaYz\nUKJUxB8wZebVV70zKBrxLBWJZEyxxPxt+gT+m3wJj+yGG8mYSxSG7nOQNUUXXXvAq58mYqZLKA7D\n56ZQq1cYVdmpBcvHcuUeP9fxUN84iTjFOcdxTGbm+5U+/TpEZpE3y6Vy0J6Vjo7jfERgpFkRV4qO\nlvw5UB+GKBs7jvHBCYH3TdivPYVrY5W0xQoXY9VgmgqmUdmgz6r5Sd/Fm8AvwjpftdP07AUAAAAA\nSUVORK5CYII=\n", "text/latex": [ "$$\\left \\{ -2 : 1, \\quad 1 : 2\\right \\}$$" ], "text/plain": [ "{-2: 1, 1: 2}" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "roots(x**3-3*x+2,x)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The function `solve_poly_system` solves systems of polynomial equations by constructing their Gröbner bases." ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left [ \\left ( 4 \\left(-1 - \\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right) \\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}} \\left(- \\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}} + 1\\right), \\quad - \\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right ), \\quad \\left ( - 4 \\left(-1 + \\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right) \\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}} \\left(\\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}} + 1\\right), \\quad \\sqrt{- \\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right ), \\quad \\left ( 4 \\left(-1 - \\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right) \\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}} \\left(- \\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}} + 1\\right), \\quad - \\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right ), \\quad \\left ( - 4 \\left(-1 + \\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right) \\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}} \\left(\\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}} + 1\\right), \\quad \\sqrt{\\frac{\\sqrt{3}}{4} + \\frac{1}{2}}\\right )\\right ]$$" ], "text/plain": [ "⎡⎛ ⎛ _____________⎞ _____________ ⎛ _____________ ⎞ \n", "⎢⎜ ⎜ ╱ ___ ⎟ ╱ ___ ⎜ ╱ ___ ⎟ \n", "⎢⎜ ⎜ ╱ ╲╱ 3 1 ⎟ ╱ ╲╱ 3 1 ⎜ ╱ ╲╱ 3 1 ⎟ \n", "⎢⎜4⋅⎜-1 - ╱ - ───── + ─ ⎟⋅ ╱ - ───── + ─ ⋅⎜- ╱ - ───── + ─ + 1⎟, -\n", "⎣⎝ ⎝ ╲╱ 4 2 ⎠ ╲╱ 4 2 ⎝ ╲╱ 4 2 ⎠ \n", "\n", " _____________⎞ ⎛ ⎛ _____________⎞ _____________ ⎛ __\n", " ╱ ___ ⎟ ⎜ ⎜ ╱ ___ ⎟ ╱ ___ ⎜ ╱ \n", " ╱ ╲╱ 3 1 ⎟ ⎜ ⎜ ╱ ╲╱ 3 1 ⎟ ╱ ╲╱ 3 1 ⎜ ╱ \n", " ╱ - ───── + ─ ⎟, ⎜-4⋅⎜-1 + ╱ - ───── + ─ ⎟⋅ ╱ - ───── + ─ ⋅⎜ ╱ -\n", "╲╱ 4 2 ⎠ ⎝ ⎝ ╲╱ 4 2 ⎠ ╲╱ 4 2 ⎝╲╱ \n", "\n", "___________ ⎞ _____________⎞ ⎛ ⎛ ___________⎞ _______\n", " ___ ⎟ ╱ ___ ⎟ ⎜ ⎜ ╱ ___ ⎟ ╱ ___ \n", " ╲╱ 3 1 ⎟ ╱ ╲╱ 3 1 ⎟ ⎜ ⎜ ╱ ╲╱ 3 1 ⎟ ╱ ╲╱ 3 \n", " ───── + ─ + 1⎟, ╱ - ───── + ─ ⎟, ⎜4⋅⎜-1 - ╱ ───── + ─ ⎟⋅ ╱ ───── \n", " 4 2 ⎠ ╲╱ 4 2 ⎠ ⎝ ⎝ ╲╱ 4 2 ⎠ ╲╱ 4 \n", "\n", "____ ⎛ ___________ ⎞ ___________⎞ ⎛ ⎛ ___________⎞\n", " ⎜ ╱ ___ ⎟ ╱ ___ ⎟ ⎜ ⎜ ╱ ___ ⎟\n", " 1 ⎜ ╱ ╲╱ 3 1 ⎟ ╱ ╲╱ 3 1 ⎟ ⎜ ⎜ ╱ ╲╱ 3 1 ⎟\n", "+ ─ ⋅⎜- ╱ ───── + ─ + 1⎟, - ╱ ───── + ─ ⎟, ⎜-4⋅⎜-1 + ╱ ───── + ─ ⎟\n", " 2 ⎝ ╲╱ 4 2 ⎠ ╲╱ 4 2 ⎠ ⎝ ⎝ ╲╱ 4 2 ⎠\n", "\n", " ___________ ⎛ ___________ ⎞ ___________⎞⎤\n", " ╱ ___ ⎜ ╱ ___ ⎟ ╱ ___ ⎟⎥\n", " ╱ ╲╱ 3 1 ⎜ ╱ ╲╱ 3 1 ⎟ ╱ ╲╱ 3 1 ⎟⎥\n", "⋅ ╱ ───── + ─ ⋅⎜ ╱ ───── + ─ + 1⎟, ╱ ───── + ─ ⎟⎥\n", " ╲╱ 4 2 ⎝╲╱ 4 2 ⎠ ╲╱ 4 2 ⎠⎦" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1=x**2+y**2-1\n", "p2=4*x*y-1\n", "solve_poly_system([p1,p2],x,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Series" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": false }, "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": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exp(x).series(x,0,5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A series can start from a negative power." ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMAAAAAwBAMAAAC1YGgtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiRInd\nuzLEnmxuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADsklEQVRYCc1WTUhUURQ+48yb/5kG+oF2VqsC\n6SGihIFTidgqwQmCqAZMNy0cKBwoqiEiXBTMRjAjfEm1aOOAPy1CjMLaVAotAjcOpYsWMWOC9j+d\ne9+9d968uaNeTegs3jnf+fveuXPnvgugKuMxXbVEKV9LaTNKBarJWsabV61RzN/iCQBqs4pvpJju\n7lEsAMc+tQrVJaqLLakR+BbV8sGtRFCb9X3bUoJg2q24pNIJ6s8PXIjbX5Q6w+OjaXtgDSxZImfG\n+yqYsNVJnbYcKZQQBPTAksP+olKntKPNKSFwgmfGlgUgdZZlccf8515uSggAtsV52KKlTkvcag4X\nohxKCXJZHrZoqdMSJ2bYMB0PPqGOU1tC4NC7wa2bmeIpdYooN74w4wnRDymQEAxH5qCfZQoldYoo\nNy4y41FXO0AghUg7utLKo1zXddWfIrESkTrNDH974/RlampxVjMAd9B6ydBmVad/dqFgkC6DxYXN\n4T7v3Gxns94VH9KhO0HAGO94DJoM5ONwY3oXK4s5D+DGzhO0h3faT4cJpjjekGYE/iXyifCQQzks\nTuYROozqt8P2Gowg2ObAQIhM4K3mKYGxDJpugblfSTOC4SypClXjQ0vgkdJ1/PE48aD4xUQmVnwy\ngnM6qatqw0doBqARbsdfs07hP8zYmGIEc7Q6Z6DyRAFGYFLfTV0Avh9QoEJwwxsi14i5ilOkP00m\nXySTlzD7Op3gAykM4hg6XCUmFeXvNy80NZvgRBZh+DvxkQkAlsmDCk6wGWEEk1Fs0mCQTpTAsvAm\nLYlsSBhBE14zfLO0gwt/5O3uPHSwfv9mF3kLRwZiadoS971/MZT3pRhB8X/BHGqKTQDz01NZsxLf\n2NnS0dnL+1T8J/ueTUR4kkUvAPToCyLCCSwZeChZxRO3IovdBw7Z/e0twMHCT5F3SFjCOC0sajTp\npVig7gj8EkAY7hqAKy3magtnqfGxFN4shUU0ZDhXiohb/fgPinIg1y6xfjT+Tp5FvLIlyqxN4ExY\nW3oziKTXUIDDJFYq3jQStN46W+q1oZ1WfB9BhRvnvSndmkntenLIvIdBoyxicTisUbxYQKUbZ8C2\n4TA1Y55ioedor18q3jj32kdwZE0CjR5r62eQXkPvAsxFbD0aAQlcCQionpC5rK0TwoJeTrCjuflr\nS1UCNLXPoPzGif+o6XQ5bw1o+FFJlAdW8chvnL3gWJYU/QZfG9yQMEtyuUt+4/SfPGPwjKKeKLRC\n3yjZe/+R/AWDFPUB55Aa3wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{1}{x} - \\frac{x}{3} - \\frac{x^{3}}{45} + \\mathcal{O}\\left(x^{5}\\right)$$" ], "text/plain": [ " 3 \n", "1 x x ⎛ 5⎞\n", "─ - ─ - ── + O⎝x ⎠\n", "x 3 45 " ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cot(x).series(x,n=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And even run over half-integer powers." ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\sqrt{x} - \\frac{x^{\\frac{3}{2}}}{2} - \\frac{x^{\\frac{5}{2}}}{8} - \\frac{x^{\\frac{7}{2}}}{16} - \\frac{5 x^{\\frac{9}{2}}}{128} + \\mathcal{O}\\left(x^{5}\\right)$$" ], "text/plain": [ " 3/2 5/2 7/2 9/2 \n", " ___ x x x 5⋅x ⎛ 5⎞\n", "╲╱ x - ──── - ──── - ──── - ────── + O⎝x ⎠\n", " 2 8 16 128 " ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrt(x*(1-x)).series(x,n=5)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$- \\gamma x + \\frac{\\pi^{2} x^{2}}{12} - \\frac{x^{3} \\zeta\\left(3\\right)}{3} + \\frac{\\pi^{4} x^{4}}{360} - \\frac{x^{5} \\zeta\\left(5\\right)}{5} + \\mathcal{O}\\left(x^{6}\\right)$$" ], "text/plain": [ " 2 2 3 4 4 5 \n", " π ⋅x x ⋅ζ(3) π ⋅x x ⋅ζ(5) ⎛ 6⎞\n", "-EulerGamma⋅x + ───── - ─────── + ───── - ─────── + O⎝x ⎠\n", " 12 3 360 5 " ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "log(gamma(1+x)).series(x,n=6).rewrite(zeta)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's prepare 3 series." ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARkAAAAwBAMAAADX6hNuAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFbElEQVRYCdVYW2hcRRj+Z/fk7D05qVBawXST\nlj4IabcXwVvNESw+lJJF6Is17GkKVsXQfZBUEZrgPYXiYlEaFdxCfZNmwRfBS7Z4eRHZ1UBFKzbF\nilQUE0M1KZH1nzmXnXOZOTm6FhzYPf//f9/3z39mzsycXQBxG53ThODHnxwTYgx4rLdXToiI5sq5\nmlBSahWEGAOGWi2xWi4NRHNGYiEQoMEHzwshE7jtwEEthBIRlozNgbBUVXg7jBIR76sLBSMDXwox\nEyBGCCEiHHtFLNgLT4tBhsQ7PFEgmSmAhi4v53M5HB1Vrgs1O2BTUQgyYEwOR0X76sqfQs0VGA6Z\nideE2n8EJPXYZaHwEITd+09CbVRg3ea9W/PZ0cN6gJAM7H5gFNQxIwBjIZMAz4vwqHFiJJ5JVgSq\n9fBkfkqAsXAoQSYOwFRNXUzrAQANHYKj2lkBxsKhBJk4ACOQqgWEzZAGbwgxBoQS/PLxQemS6Mn7\nJU7kd8cSGKEEjy5RJ+K7R26j7hFwbnaVc4LMUIIj+tS0MjpUIOZEPUZa2w4x0didiS1Av0fgckMJ\nDjtrjUjux2wBugpO3G2UqrNwvzvkeF3XMwtK2XH9RiihLUlZd0xe/hCDR9qAy7ppYN3Xog7Jzv5B\n6WtfKGGk95GVIuvvK7vX48s6QNKqzQ7ekGusefChS9doV8qi1aFqnMNdP9a8If27O9nZdRliKzSm\n2t1vAHICi1twE4VeOi+E1grYKXKFviJAi8q6q5Z4H8CtaL5ouWEXO1UYT4LbKUraRWS9peFXg37R\nltJhB14osJZmp1oLV8CxU5yEKjJmKes4/aKNXNiq42Ubfth5jVdZs1PJOCGYlaLL3Do/ouxv8MP3\nXtJAel7bPXSumpy5jn6lmd/HUeHfFvAAkJ7Xna8mwxZOlq3wU7is+LeF4SI45/XGl2h7kxbQajf0\n1Onp01enpwsehHEwRk5T3VQdzZ62rm3R7tspUmxsMhUMwkkU828Lw1UMSs9rqgLo3EzF2XPT0GlW\nHBtX7zg28vOa8rF1rhp1CdORV1lWVg33toA1Ss9rJupoNaRVBthHBwHgLrxN/m0B15TsvGYa+tW5\nsYGJpbMju83EuL+4esf9R3Ze/xfVZG9f/s7Ki2Ph6l2yF6ujjzvFeMdm/8UPAG45whEsaqo/+y3u\nrON19LNN22JgwPB2mxNmaQHEP/vxQaNbpdWIbltwDjfMAhwtwuuwoR214O5Wy4BUlTyHfrJmWwzk\nUlhkyBm2ZTLsFwxXlDmZJt0qfY3sGdIA/33onk/Mg1rx4qnDW9jx8ygC22r0IKKWqGXnXUii4HJ5\np6TzHmdvx1ImIb6aKUDadzNxSnwXYEYD5amaZXFij3mny0/WXS7vsGOND9g2VoP7aXy1B9+rfX9h\nsGpwRylVQcWfZKZlK/3Xja7QuMtzOSufDXqeMQvGarAlFzc1ocv3uyl+bLBO/sJq8vBEqmZZrrwu\nJ93kXKXGOW6TrJThZ3fI8sxqSsawAdk/vIyMplxTMNowSD5VMy0vh/f5vwZz7DZ51LFJS4PvA2Gz\nmmdhuBlQDerfU3BsGoaKx6FpOTn/hbEMMFEM0rNqck0InCkUXLqXzdQ7WE3oTAXlD4xNYTXlIIRV\nM4hnL64p31N8B+BOhM/uzBncdthTPFMNShI1do9sbPDpuy9Tg4RvhV/FsdFwn5q4edeuoR/y1Aqc\n7qjVNPC5CdTQsfkCYEtiHnIVL6MJMEX3PLqNd7Pdj9vQveQIftwgwjWlvPDw3CScAP+f2/shcQWS\nVfIL9tRTs60I3YqoY3P1IGjut1PlFL5mTsL6gbt9BOXCHjzGRjejVJ1dKpuWj/V/CfwNCC9u1NcH\ntR4AAAAASUVORK5CYII=\n", "text/latex": [ "$$x - \\frac{x^{3}}{6} + \\frac{x^{5}}{120} - \\frac{x^{7}}{5040} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 3 5 7 \n", " x x x ⎛ 8⎞\n", "x - ── + ─── - ──── + O⎝x ⎠\n", " 6 120 5040 " ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sinx=series(sin(x),x,0,8)\n", "sinx" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAAwBAMAAAAIpGlxAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdMiJE\nibtHdKBDAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE00lEQVRYCc1YXWgcVRT+NrOb2b/ZjZYqKGj8\nAREKDhJTioSsWvx96EIS8CV1NE0UpDSisFbELqKoFCXV2lL/sojFN7MKgtJiFpFCX5oFqYoSMi8i\nSDEJSdTGynru/O3Mzj1TNmkWz8Pcc77vfuecvTv3zuwCnGl7hzgKJstg/imea5P5BQ9witgKx0Ct\nfcFy7RLvY6bKaAb4DvahnxG1D3+A2RqjGuM7uImRbAy+UZfr0tv4DpYnhuSiDaHHGJWmsB1k1nCW\nUW0A1oqM6DDfgbKMfI2RtQ+/ykgUg+8Al5AvM7q24Ww9W5GKYiMja2UpQ+DzV3ANPr3qBuZORIa9\nD3AO13LNtYErE4+c+QF3NBohjc3grdWeEAWbS45eib0wgDeM4+EShPBMNCdNFgF+jwX9einPM0AU\nJ00WAep4iWF5BojipOneHOfuM5r+p1QiQJ6J5sIJkxXFDKMOkl7nKJ4BojhfvnTNDnJVTMLwET53\nW/cSxnxx0+UZIIprZgA+c4LEjnQB3/kZz88u55YyZS/0OTwDRHG+FMCzTqRM/wpo5QDnUvePjb8u\nI6CwDCI56m9oYPpFK2fCcFO/fLEKvONGWz2OZy+cbNRElVl3A2j1q28BxgmK0bjVFje+1XFgUpQ5\n79baBeUINQT0DfOHvDs5Zrhem+M1zvxhZQeQXxKR9xL1DfA4kCoD3VvfQXYlYQKqKJT2qqlV3AcI\nogMdpIoxKp4Ta5DspYtlyuj+KlXv7UgHcxVRM0fFkBA3Q/++0/sNGsmytCYdWIPHdFGsq0iXnEkb\nt548lhKdkImDtAMdLFrFZmo0qAU6hnRtJVa1MGQuuR0oB0+QHa8Qnm94tkShViodvK1UKoSZnUJy\n4gUi4CkcR2A/lkpvl0rPkXdIF/Fv4pIq0hpANcm1LLPsduAi0nGzu3FPhdKm/xG5xRrQhzTEVVhz\nDeyYuW62g4UCJd5ZE9ntDmYqwhcm+urAfTD4N33YC1bFuEmnsH4A3dYX07G9kGzcc3q4anUg9v9c\nzyK+siLrfEjc+9eDTsQOm/0W8Mn0uxU7u9j/fRP9j5adYuJMlFpm5I9Kk/A6cOA03dBBSx8dnZ/H\nl3t/B+766WePc58LHgDQA8JvquGPfH4fNNqorin2ClL3NpwyXcYdk7QLV5UCFmp4Brvc6bjb5Zvj\naNMV3qAejL2Inhk3e0HTceAnzCZkewkqWojr6Oqlg1+bbKV98cc+n9xXgmEzuh2wNnETsTwbzrxm\ntuDQ6OSqdE0hvp4rIOJPHiDeE9C+F4h8AZ1isg5sWFNN31TXPSMev/H1fIFeGV1MMiqBBUrWJVNc\naFp3vcBI8GHVDEB2YGGplcEislE/KrDdr6XXFNay/0opghVDNREyrSygufpsHWm51JHEao4jhiGf\n3+qmCq2IFROsQTUtP3AZtKKjmC1epoOAKioYkZMEXwfVDJNPCihRxGW/hbBUjnQXpTjBSh2qGSY/\nEtA4PfZoL0TdiWElg2xHpiqhCP589+49txqtnLJKSKyIUzkTSe9ttHVWGzGdu92SDhy4ywylSq8R\ndBJ4OtlrvwuGZrQJfD1//iGJxIHzZoiLUQeZD+eHp3AEd1ZCdPvAoUbjokRlw9riarmVzNAvEZUe\nDlMYmHi4lfyfx/8BEzdcKlOrtPwAAAAASUVORK5CYII=\n", "text/latex": [ "$$1 - \\frac{x^{2}}{2} + \\frac{x^{4}}{24} - \\frac{x^{6}}{720} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 2 4 6 \n", " x x x ⎛ 8⎞\n", "1 - ── + ── - ─── + O⎝x ⎠\n", " 2 24 720 " ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cosx=series(cos(x),x,n=8)\n", "cosx" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ngksqAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x + \\frac{x^{3}}{3} + \\frac{2 x^{5}}{15} + \\frac{17 x^{7}}{315} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 3 5 7 \n", " x 2⋅x 17⋅x ⎛ 8⎞\n", "x + ── + ──── + ───── + O⎝x ⎠\n", " 3 15 315 " ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tanx=series(tan(x),x,n=8)\n", "tanx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Products and ratios of series are not calculated automatically, the function `series` should be applied to them." ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARkAAAAwBAMAAADX6hNuAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFbElEQVRYCdVYW2hcRRj+Z/fk7D05qVBawXST\nlj4IabcXwVvNESw+lJJF6Is17GkKVsXQfZBUEZrgPYXiYlEaFdxCfZNmwRfBS7Z4eRHZ1UBFKzbF\nilQUE0M1KZH1nzmXnXOZOTm6FhzYPf//f9/3z39mzsycXQBxG53ThODHnxwTYgx4rLdXToiI5sq5\nmlBSahWEGAOGWi2xWi4NRHNGYiEQoMEHzwshE7jtwEEthBIRlozNgbBUVXg7jBIR76sLBSMDXwox\nEyBGCCEiHHtFLNgLT4tBhsQ7PFEgmSmAhi4v53M5HB1Vrgs1O2BTUQgyYEwOR0X76sqfQs0VGA6Z\nideE2n8EJPXYZaHwEITd+09CbVRg3ea9W/PZ0cN6gJAM7H5gFNQxIwBjIZMAz4vwqHFiJJ5JVgSq\n9fBkfkqAsXAoQSYOwFRNXUzrAQANHYKj2lkBxsKhBJk4ACOQqgWEzZAGbwgxBoQS/PLxQemS6Mn7\nJU7kd8cSGKEEjy5RJ+K7R26j7hFwbnaVc4LMUIIj+tS0MjpUIOZEPUZa2w4x0didiS1Av0fgckMJ\nDjtrjUjux2wBugpO3G2UqrNwvzvkeF3XMwtK2XH9RiihLUlZd0xe/hCDR9qAy7ppYN3Xog7Jzv5B\n6WtfKGGk95GVIuvvK7vX48s6QNKqzQ7ekGusefChS9doV8qi1aFqnMNdP9a8If27O9nZdRliKzSm\n2t1vAHICi1twE4VeOi+E1grYKXKFviJAi8q6q5Z4H8CtaL5ouWEXO1UYT4LbKUraRWS9peFXg37R\nltJhB14osJZmp1oLV8CxU5yEKjJmKes4/aKNXNiq42Ubfth5jVdZs1PJOCGYlaLL3Do/ouxv8MP3\nXtJAel7bPXSumpy5jn6lmd/HUeHfFvAAkJ7Xna8mwxZOlq3wU7is+LeF4SI45/XGl2h7kxbQajf0\n1Onp01enpwsehHEwRk5T3VQdzZ62rm3R7tspUmxsMhUMwkkU828Lw1UMSs9rqgLo3EzF2XPT0GlW\nHBtX7zg28vOa8rF1rhp1CdORV1lWVg33toA1Ss9rJupoNaRVBthHBwHgLrxN/m0B15TsvGYa+tW5\nsYGJpbMju83EuL+4esf9R3Ze/xfVZG9f/s7Ki2Ph6l2yF6ujjzvFeMdm/8UPAG45whEsaqo/+y3u\nrON19LNN22JgwPB2mxNmaQHEP/vxQaNbpdWIbltwDjfMAhwtwuuwoR214O5Wy4BUlTyHfrJmWwzk\nUlhkyBm2ZTLsFwxXlDmZJt0qfY3sGdIA/33onk/Mg1rx4qnDW9jx8ygC22r0IKKWqGXnXUii4HJ5\np6TzHmdvx1ImIb6aKUDadzNxSnwXYEYD5amaZXFij3mny0/WXS7vsGOND9g2VoP7aXy1B9+rfX9h\nsGpwRylVQcWfZKZlK/3Xja7QuMtzOSufDXqeMQvGarAlFzc1ocv3uyl+bLBO/sJq8vBEqmZZrrwu\nJ93kXKXGOW6TrJThZ3fI8sxqSsawAdk/vIyMplxTMNowSD5VMy0vh/f5vwZz7DZ51LFJS4PvA2Gz\nmmdhuBlQDerfU3BsGoaKx6FpOTn/hbEMMFEM0rNqck0InCkUXLqXzdQ7WE3oTAXlD4xNYTXlIIRV\nM4hnL64p31N8B+BOhM/uzBncdthTPFMNShI1do9sbPDpuy9Tg4RvhV/FsdFwn5q4edeuoR/y1Aqc\n7qjVNPC5CdTQsfkCYEtiHnIVL6MJMEX3PLqNd7Pdj9vQveQIftwgwjWlvPDw3CScAP+f2/shcQWS\nVfIL9tRTs60I3YqoY3P1IGjut1PlFL5mTsL6gbt9BOXCHjzGRjejVJ1dKpuWj/V/CfwNCC9u1NcH\ntR4AAAAASUVORK5CYII=\n", "text/latex": [ "$$x - \\frac{x^{3}}{6} + \\frac{x^{5}}{120} - \\frac{x^{7}}{5040} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 3 5 7 \n", " x x x ⎛ 8⎞\n", "x - ── + ─── - ──── + O⎝x ⎠\n", " 6 120 5040 " ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(tanx*cosx,n=8)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ngksqAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x + \\frac{x^{3}}{3} + \\frac{2 x^{5}}{15} + \\frac{17 x^{7}}{315} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 3 5 7 \n", " x 2⋅x 17⋅x ⎛ 8⎞\n", "x + ── + ──── + ───── + O⎝x ⎠\n", " 3 15 315 " ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(sinx/cosx,n=8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And this series should be equal to 1. But since `sinx` and `cosx` are known only with a limited accuracy, we obtain 1 with the same accuracy." ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF0AAAAcBAMAAADxW645AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWaJ3SJE\nuzID+9VZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB8klEQVQ4EY2Tz2sTQRTHv+v+yJrsbgPFk5dY\nD16E7sEiCYhrDyJ4MJhcepAGS702ILiglYqntgcvYlB6SC+i4CH+AUIXD167Nw8GXCQ9SiIBWxDb\nvpmdTSZ2pftgZ9/3+z7zZpidBbKF2aplAwX1Atcy8U4QY9+Qg5Fhxk/B3A16sLzTJzwUSOVvFXj9\nH96qlTurvKY3BGLOfgDybvqEZau7dxSw2k5CvFFmXBi0BpSLrCCH1vjsYqXJrFfCV7dRKaIwAK7U\nh8JTGiKpq5eBKaoBF4RVCGEUgfckjX95a6iHQI7ZTlLDE2gucC+Nz1cVsm3W3yzRwGOutUXv+/Sc\n6L8bMcIu0aA3AfXB7S8t5lDs0hon+EUygTNVGuwQKGOz8Y45FP0ohf8elwJ65TzgJdrueW7R8ZIZ\n9z/r+48v+T7Vscb7f2VInhZx8ZSlPHaKCU8yOc87EQnnDwNYf+A3G3iM+5NM+LZH4mpAQ8w7hyzl\n0f+Y0v/6AVDo8roWAtPGAEuCTz0f8+jGpzo1ojBKsH7Zg8IzroDndMTz+7dilewHvc7bKLasIdSb\nS8vrAuffN8lH+x8ZlNBFkuORLNR4D7KFhQmljq7ThC2JH1JO18mbkClCK8pmPpJVWq42ZXdDFun5\nOcmmn+bUUIIxorvjPGt2DBMnbclZ4lVPAAAAAElFTkSuQmCC\n", "text/latex": [ "$$1 + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " ⎛ 8⎞\n", "1 + O⎝x ⎠" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(sinx**2+cosx**2,n=8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here the leading terms have canceled, and the result can be obtained only with a lower accuracy." ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANEAAAAwBAMAAAB9DIL7AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiuzKJ\nRN0MreaOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEZUlEQVRYCc1XXWgcVRT+NrN/s7OzGy1V1AdT\nEXzSDqIWIZgRqyKCGUjyEgIujYn61IjFFUW7CKIVkSj44IPuvAlK6SIWwZcsSLXiQhYf+uCDiRJ/\nUZOQpChtXc+983d3Zu7sbMmDh3DPz3fO+WYyd87cBeRSnp2Sg7ATsGGhr/GwvCSzI8eGRn7DyrK0\naHw/mf5Esytlmt9PJuBmQ8akHdhfpp9lRCgrV8F0rfTCy5aU6dTwTMqDk1KmV6VESm14JuC4jElv\n6y0JV2ZmZq8hweRhKdNn19wouwhAvYrnFMOkLD5y4Usc7vVirs/B8MbuaAyYHIphGsdbtV8kVUmY\npMQLxzB9gVXjBg8P6SQslBp2Y5gMvBDO8v0kzE8Sjc5TnhfDBFz00BidhEXTC913vGAck3bJQ6M6\nCROyta7jPIF7kHfMGKYD+S3MC1WimYSJeZ+7ziHSusmdKJO+XdpSGxyMLElYX/Kzrre9OAWcZ870\n4RMNN+gp5aH5hdc9J6STMLr4qfHNl3hFruYUqnv4HqjIR0Cof1p3QT99tscfUNPtrWyj2kXeStsh\nZV629q2B40ss+5xXcgXVBtQtzx2kr0tMyNRceFq5HajyrmwjcHme3RN+9dxBOh2TvpOzgQKbvRpb\nuHyH60nPut5AlY6pYmWoU4ndU3HM61mco72HY547SKdjWmuxPqUxWnJLgDv1WQxrBleDl3RMj/N2\nIxb1K9mAOPVXWoNJeEY6pjM8d6VLqmAC4tSn81yPyRZhR/5i8iJLrvKgj3xVr/9Yr59gSAA4FoXK\n9frLt9XrJpknDVrwIVsqFiBO/eYoi6aQdPc02aJW2j+sH7sn8YuQcEZliYGkY1o1qeJIl5VxJmHq\nJ5y7WXog6Zgm/qaTzGlelbUBcerv894r9u5/f3qZM+XH0Df1XwmuOtlKd0/4dPMn9qhI9B30TX02\nI96d/Zhj4qLOfMQfruUFPSZtY67TcUruPv+Nh/pzzwuQpgEoynP0IptY7YoxZt+F8hVSFZs5TO51\nFIq0uXedkmdw37IbVTzD9ZmaE2xioTGYNTAy1hcl5wHgFlLH7DCQo54mL6HBVl4Kw4L/iWDTGDSB\nkXVkI8eTOwB6N9TX7L50csr01+IlJROJP0Czo2JtpcVnfJSJXnZiKhciTFR9gX0WspeqJm0usVnI\nVvpu+E0HrfjfEiF708CpWCabJVV2JizoF4X8iHlQiKi246y1haBr6peh1OKYyg2WsdZutqFdZqZM\nMt0AyRmOvRGEfKti0jOJY5rgKRtoWgOY/FaBkbMC27dmgJtimZ5kKVQy8L/ntwqMhcD0LTo1Ke1Y\npt9ZDpXQjsgk7Qi/VWBkLLwXeK51EOrbR49O3loLI8ouRVgJfVSLcTspXCD4Z4GnBZebmoX8Mr1r\ndhiAtkchVkJvLjsrDCHqH53p9XD+B51zj1GsaocBZIjJKfkBd7YicFKgQJNsPZxwstf7l6bBmd1G\nGFEP0cvOS8YXHw2D/xP/P/+/N/aQO5FlAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{1}{2} - \\frac{x^{2}}{24} + \\frac{x^{4}}{720} + \\mathcal{O}\\left(x^{6}\\right)$$" ], "text/plain": [ " 2 4 \n", "1 x x ⎛ 6⎞\n", "─ - ── + ─── + O⎝x ⎠\n", "2 24 720 " ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series((1-cosx)/x**2,n=6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Series can be differentiated and integrated." ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAAwBAMAAAAIpGlxAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdMiJE\nibtHdKBDAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEzUlEQVRYCc1YW2gcVRj+dmd3Z2+zGwlVUNB4\nAREEB40pIktWLV4fupAEfEkdTBMFkbYorBWx+6CoFCRqbam3LGLxzURBUCzuUqQgFLMgVVFCBnwQ\npJiEJFVjdf3PzM5ld84/dZNm8YfM+b/vO/9lz845MxuAM23PCCfBZBUsPM5rXSo/4T4uIrLKKVDr\nn7Bat8LbmJ1jYgp8B3sxxAR1T7+DWp2JmuA7uJYJ2Rx9jS6PS/fzHaxMjciDNsUeZaI0he0gs46v\nmahN0FqJCTrMd6CsIF9nwrqnX2RCFIPvABeQrzBxXdPZRrYqDYqMja1XpAqRz1zCNfjwsquZOxEZ\n9j7AN7iCa64LXpl66PR3uKXZDMTYCl5d6wtIsLXk+KXYCwW8YhwLliCGV8I1abIQ8lss6ldJdV4B\nwjRpshBSx/OMyitAmCZLp/Xfxt1nNP28LMTieCUsSpYu1mz+I+MtLr3BSbwChGm+fOm6DWJnzvwM\nwyf43P7EMiZ82HN5BQjTvAzARy0QQaSOr/yK62dXcsuZigt9Dq8AYZovBfCUiwqAVnGRz1HunZh8\n2Yc9l1eAMI36GynMPGclihtuvnvIe8NF2+xMZs+daNZFkZq7AdImwUn6i1xPl222mHFKx779ospZ\nt5T17K0Bg6P8Ie9MjhiO1+V4eWv+qHIzkF8WyHuJUhsEUxUgsf0dZFfjJqCKQmmvWpSKQwg96CBV\nilCxnFiD5ABdbEvVaUwM9KSD+SrVQo6KIS5uhqG9J580aCTL0pr0YA0e0UWxaIkuOZM2biN5NCU6\nIRMHaQ86WLKKzdZpUIt0DOnaamTO4pC54HSgHDxOdqxKfL7p2jJBrVw+eGO5XAwqO0XI8WdJgBvR\ncgT3fbn8ern8NHmHdIF/EZdUidYAqkmuZZkVpwOHkY5b3Y27q5Q2/ZfILdaAPqQhrsK8NbAxc91q\nB4tFSryzLrLbHcxWhS9M9NWD+2D4D/qw56yKMZNOYX0fEtYX07O9kGzedXJ0zupA7P/5viV8ZiHr\nfIjf/fv9LcQOW/0W8MHMm1U7u9j/g1NDD1daxcSZKLXM2G9VT3A7aNFpuqHbLX1kfGEBn+75Fbj9\nhx9dzXkuuARADwi/qYYf+fxBaLRRHVPsFaTubTplOoozJmkXrilFLNZxAHc403Gno3vjuOcKb1hv\nxy6il4frXOA5LfpR06NsL05FizEd0QE6+LX9nbIPv+/zyX2hHXroJsDaxB5jeTadecns4KHRyVWN\nTiO2kSsi5J88QKyvLfatNuQDdIrJOrBpTTV9Ux33tHj8xjbyRXpldDjJqLQtULIhmeJQM7rjtY1E\nH1bNNsoGFpdaHS4hG/ajAjv8sV/6QYef/buDsCHRiqGaCJhWEdR8o9ZAWh7aCqF3dM9GPDfgpYoB\nShBEa1BN8jps2MJHUCtdpIOOOB6OySWir4RqBsXHBBUv4aLfQjBUziRKUp5opQHVDIrvCWqSHnu0\nF8LuxGAkw+xAZk4iEf3xrl27bzA6NWWNmEgJX+RMJL230c5p/x3TuZuQdNCio2YgU3qdqBPAE8kB\n+10wMKNL4vOFsw9IQlp03gxoEeog8+7C6DRew63VgNw9cajZ/FMSZdPa0lqlU8zQLxGVHg7TKEw9\n2Cn+z/G/Rg1ZWrKzF8oAAAAASUVORK5CYII=\n", "text/latex": [ "$$1 - \\frac{x^{2}}{2} + \\frac{x^{4}}{24} - \\frac{x^{6}}{720} + \\mathcal{O}\\left(x^{7}\\right)$$" ], "text/plain": [ " 2 4 6 \n", " x x x ⎛ 7⎞\n", "1 - ── + ── - ─── + O⎝x ⎠\n", " 2 24 720 " ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(sinx,x)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/latex": [ "$$x - \\frac{x^{3}}{6} + \\frac{x^{5}}{120} - \\frac{x^{7}}{5040} + \\mathcal{O}\\left(x^{9}\\right)$$" ], "text/plain": [ " 3 5 7 \n", " x x x ⎛ 9⎞\n", "x - ── + ─── - ──── + O⎝x ⎠\n", " 6 120 5040 " ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(cosx,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A series (starting from a small term) can be substituted for an expansion variable in another series. Here are $\\sin(\\tan(x))$ and $\\tan(\\sin(x))$." ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$x + \\frac{x^{3}}{6} - \\frac{x^{5}}{40} - \\frac{55 x^{7}}{1008} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 3 5 7 \n", " x x 55⋅x ⎛ 8⎞\n", "x + ── - ── - ───── + O⎝x ⎠\n", " 6 40 1008 " ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st=series(sinx.subs(x,tanx),n=8)\n", "st" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$x + \\frac{x^{3}}{6} - \\frac{x^{5}}{40} - \\frac{107 x^{7}}{5040} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 3 5 7 \n", " x x 107⋅x ⎛ 8⎞\n", "x + ── - ── - ────── + O⎝x ⎠\n", " 6 40 5040 " ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts=series(tanx.subs(x,sinx),n=8)\n", "ts" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGsAAAAvBAMAAAAWWClFAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC30lEQVRIDZ2UTWgTQRiG391ks5vd/KwVSkVq\ntxW81UbxJIK5VI9ZhB61tUjrQW1O6kGkiCgK0igKRg+m4FW6gj3opYEeRbuhoAdR46EHPWgjxUIr\nxJnJTLJp/sx+h/l+3vfJLJPZBViE5neZlaqrNVAub3cFVMyBsbGXPjAduu0DA3p9UTjkC4s4vrCQ\n6wsLT/jCYukusZ79owcsaF2evzSh3tAyXW4FhMxQSU92jUkIO/8PqZMFYY5bouqcr2GvMK3kRdU6\nR/iJvUIYMrXp5ghkszVQUd5ywxd7GUqCNOO5JZzsROE+d/Rtu8A0aXYP9XxMN8eUQu/cIyZFLe5Q\nf90EtPYPN6wsvivbFEgJ45T+04Ts8h9pmgLWGRMjGapd5AZpFn05BNeb+HWLD1elNSDOLD/4KOhA\nzgG3eetNAlNKUQcIl4gWoQuLhwiYwCfRerLANFcnU4PuphbJwqJ/8hzJB3nnTQIbz9OpUSRLNANI\nQ0dOTdIJiXGy484Q2FemxVyiGw79RF217nBvs3slsCXmWbFJCieAs5gxn3MsZaNcCzIMZbOPv2ez\nxIZnJjW9povmAiae0pJFKscLTxK7Hc+TYWSDKnQ34DddWJDdGkJgM9S7hxkYFvlbta4kq2W1ENjA\nJhBcZOOAA8zL6xjkpnYnqZaPjq4mmVEuQtky1oNpjl3n2ZvEblieu5evCEoJ0uHB4SvCRm/Jiak3\nQP/0BTGrYmJAMrmc3nhAHt/FQhpP0JfkgiQKj/GDpyYXhlxReQvxWbWIUKZOqm/e17VqAlDWMJAx\nEtCrt7zOUmkCOe9Qy7NuIR1PkKPyKjtqqe5RLjNVuoUBF0rtEuxgaPvCMyPvKong+QJSE4j88SgN\npW7XRlGzUl+yU24HrAbVqti3jg9ZM/MqmISxRY5Eb3ckDRTiJYIZDtR2f0AjFnOgbahF9r1oVFtO\n1DQWLNzFvnxLS1Ph9GfyUvUOHWsqthr+A4B1oTCOIWT0AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{x^{7}}{30} + \\mathcal{O}\\left(x^{8}\\right)$$" ], "text/plain": [ " 7 \n", "x ⎛ 8⎞\n", "── + O⎝x ⎠\n", "30 " ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(ts-st,n=8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is not possible to substitute a numerical value for the expansion variable in a series (and hence to plot it). To this end one has to remove the $\\mathcal{O}$ term first, transforming a series into a polynomial." ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANMAAAAwBAMAAAB5+VLGAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnarIkSJZlS7\nme8N5bApAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADwklEQVRYCe1YTWgTQRh925+0223aVanSgxri\nD4o9lIqKKBIviofSKlTxUBvBtiCouSmCJBehINJUrKBYDIgXEVsP6k0qeBSNIgVFRETwoGCjFpWK\n8dvJbjM/O7vVHDzoHJL3vfdm3s7sLJMN4NPMWwtsH5qjduy8zlUiNHsPikRQFSkWfwTpwHAxqTW8\nwEutpgiRoaH7CikQZ7YLpVA8x7hQBxYWrEygAUOB8m/MCmgNHAo42/NE7zDe6jVVCbuxJ3BD7eQx\ne7o9NI/vmslQU1dKb/mdBTTz+nGYchDLM3pLekKvyUpVVmak+h3StkR5Jd2pdM4rwr+bwrwjGNOO\nsgkHdJch9GnZe2J/N6ozAskXRs/g6VGYY37zLmm79g/yHXTYyDZsqI7pVIdvxdXuDo0hSFO6mLZZ\nsFIKzREjuGLf5WoeBmm8j2EDVZMKKRA22oSaL4I03ufi5m4fUqBmhEosgjTRSVVXQqFEouaLWPNV\nkMb7HGzZfagN3Kq3aqexW+7m1kGa0mV44jFOKixH1M82TtflOIKDQRpnc+HinpYXOZUuM0b/7l7d\nARyklUf4J9HtP5y1FfrkKAP/j+KXxFvA0nnBK1pc4QKGnxfl5Aqj3PNi4XqnrQSKfs1JOxePb4vH\nVztQthBlrHD6dyQINpflaSrNeHzFm3g8SZ7Q84LsbqtwVnQV8971FUeFnhfepFBhVPh5MZdUaVTo\neVFOqjRKOS9W2Z0TWHrpvBPRCQ+xQHEBT718IMrcRcEcZQOUKO8R5g0O/lj8DqzDohThrXOIuZaw\nT+fjng0jiSsZzzgnuMBYg6dlznDG8mlr+1NoeA0zBtR+8JDoM44csxGx0fTaNYoyVY15PFRIhUg6\nziSsAnCyzUOyq49y2hH54hplGcOaeYjGJJXNSdTPAtk2D4kWgKKqChTlGmUZjxTGjzh87RmW51E/\ng4ZUm4sUH0VRqy6UjIqMT7t6MyorM/eRzqSzqPmOFvoFW0Kyx5kVteGsRjY+5fBe6eRDNLan805U\n1oliSDGVojbqZKNo4xW7GqWnSES/snWxEhSlWSEWFc3rZHwGxjPiqGoVicH8RnfbmqXXe7YtLNog\ncmNRvWz/+Mmg96HxnNxJrptiiBYaJ9FQuDMw8LOfIdnDdiCsPI5rZBydz6yitLFi9GRGYxTAHmGG\npDRnVp3APs8oyeiieyVzSl2Xx80UtmBZgqQf8JDko6i6zRen2jUyIlljHjvw1AX6h6W15xANfrl4\n2EVS0tTH1bkqOtfb/WVyj00lpD5/ofwF4IcgkeE4CnMAAAAASUVORK5CYII=\n", "text/latex": [ "$$- \\frac{x^{7}}{5040} + \\frac{x^{5}}{120} - \\frac{x^{3}}{6} + x$$" ], "text/plain": [ " 7 5 3 \n", " x x x \n", "- ──── + ─── - ── + x\n", " 5040 120 6 " ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sinx.removeO()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Derivatives" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOMAAAAUBAMAAACNN5feAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC00lEQVRIDZ2WTWgTQRTH/5tuvna3dWmlF0G2\nqfQglEZRvCjEgyiKIXjwaGJQoQcxFFEvQpBcRJCAFxcvUbwJWqgXEbTYkyA0J0UULOJFUIgfrWBT\n0ze7M7M7m0Ro5pB97//e7/0zs5sPoO862rdyuW+FFwZE9fm+g4dy3SXrc6BtEZVgusdcXtTqsksG\n1poMsUVUgtdlxIIHSlbmmarKFhU1HFmgQKBhTcQ1EXhXdfhOXlNVCaioailQ2RwEejWIKVKHpwt+\nMaTqb2S/XpUhC1RLho5OHplyAO3txQbGM+dh7Z5jtyrWJC2z71SZUdJSm3aQt5GgYkhlyIlfeP39\n1aRDcgTllgGqlZI3UuSRb1hfrBpMZwdQJc6sAOO45tykmBbfT8JYwQyQJCCkesgd4Jaj/yY5gnLL\nAE3YiR9GDnBhtFMlWO0zNhziUg3gLC7ZDymmxS2PD9fxnM6q6olC9ZAF4AXwhwoRlFsGqIb0PLVp\nG/Sy3ADWUuu7KMRIAbBxj4WYdd3brkvbgD3i4CdgtRTVQ8jyGVhRQROue/er62ZVdJtDbXHW+4Rs\n1rXZTpNz/gRK5C5RtK02twxUDyFL2r+wDKF8l2F0eZFgucuNw0iuksBOh46ZXrzFDxbvEVuhN1hV\nVA8JLCOosJSoYc8gZrN7CWOkifgqDT9AA9kzcD/WwoQyHAsws12Pj4cElhFUWEq02HgJ9i2cr+Cc\n9Q3p0mMbTymnz0H8r9nSyZktscsPKJIyXPJEoXoInSo/2AgqLCU6lhl9x8Zqh6ZyOHlhP07PXSlQ\nTmen7Z2YvurPFsMxVv6UA9KLvszfCEOWOnuWOgcf/ct2ocJSRflc5VJTMrFL0N0EjvFaoCrNKios\nVVQBeKJ+N2/31aG6xp6tMu/hKs/kRUW1nFeIoLI5FJh+Z0ihMFUxHboJdVWNZoOiPX9n45mPNL/n\nyJDvwOiA/yaY9X/RTUF80vTqfLvhAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x \\cos{\\left (x + y \\right )} + \\sin{\\left (x + y \\right )}$$" ], "text/plain": [ "x⋅cos(x + y) + sin(x + y)" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=x*sin(x+y)\n", "diff(a,x)" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG0AAAAUBAMAAAB1+65sAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB5ElEQVQ4EX2Uz2sTQRTHP7PZbJPd/hga6U3d\nRqh4KC2lf8BeRPEgwaOXxPgLT+Yg6EUMIoIXXSgUQg9GETwa6tGDQRA8tUVEqQq2J0EQouClKPgm\n2bQM3e07zMz3fb/fmTeP2YXMOJXJ3MhkhHA7mWwuyqSgmE2q+ADfbYt7aqG6hWxwz4K274jFWcBt\nWtD2FSsweezkTCiaw1c+o+ozFd48PyHQ2QBVXjyXlJT41GzIWY23gaqN3C3IPd0frEXvIlZVh4L4\nggZMcSt8IGuJxOf5W8zBSIynvV9+JO2LedG9D+tvt3FEWGjDBa7rZ7KWSHxnxmJegd9EUewY4qjU\nNboDE7VHq5Hg8QpoVgzFtVbrYau1JCs9HvJbhD1ZT4QyUJXR/yOoM/X4n2Djw2gGkZxHVY/+TXzr\nXUPtnvdBc0c8pk6MZhBD3ybOFuSb+HoOR/fvR/unnHs+JNcY9OWJ02Pa9r0kmO/3pdp+jXnB7ne8\naK3Lsr9NEGFand8Jeq5sYWJ43heqkhmrUSpPfupzpfeXcD9erOSvHr8sQilFLUzP3uy79nyl+rdI\niusm6ZQp651tivZ0in6Yst/1oUE6FyvpOfWhKGU2l9wXhUYQyvuL9xF7idTvNl/+KorULXedB/4n\n/gNJUWpP1QFvegAAAABJRU5ErkJggg==\n", "text/latex": [ "$$x \\cos{\\left (x + y \\right )}$$" ], "text/plain": [ "x⋅cos(x + y)" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(a,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The second derivative in $x$ and the first one in $y$." ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAAUBAMAAACQbP5sAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnarIkSJZlS7\nme8N5bApAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADQElEQVRIDaWWXUgUURTH//vl7JfsIGn4EC6T\n9AGRUfRQQQ5EEAS6BgYGW1sh0pMD9hARtBA+9eAWWBlIS731khERBNW+bEEELpGEhaBFEUWhVPYh\nYefMzp2ZO84W4gVnz/2fc37z33vv7Aj8byjFWhVxo1ZG1ldIOCPT3LM+94RiZeqZbkkdGSe3DILT\n5ETrndAbNXiEJsR+WlJnwcktg+A02VG8YocUJFxfDIiJ2d1qzVHgi7u6GssEWLXVnE1Y2iaUkCEi\n/pQNBKatnAV9C/TrluR8yATZgE1wyr3RgCTIBrDBSloG2lTbwEnd7pMJsgGbAAS6+waHqWnNyGsE\nhnvy2Hv/ADOy9Nd48FRPdbWFgcYJKDPAKFfQcJa1XQV3KuO58OYX3b2clAmi1kMAmnEjs5UO8id0\nGHsMlAMlhLj9KXkrxLeH0jyxt6DwEJFZ4LopugxEf1E5dwZzCJVxlvdPJggDHgJwAdfUe0AwjUf6\nDqBz3wwijN9FZ02NzSUYZRtQxp4jWQLumKLLQCgHRLkzmUNyGqkiFcgEy4BDaNjGoxUqNlExWipA\neAFIFdrL5j0/0FdCsMS5mKatfaNpOVbeIZUhmyxf1LTdmraOQ0zxhTvZQNqsgYvg1EoEbqLxnS9D\nhE3Qw5wqNbf9YYHaaUaqOcQZiM6hU7cMUEKcgUiFq7iTDZRsAy6CqPUQqC38jZvtFXip4laeBFpA\nupHOVxrCQH0ah2l6zhQdAw+gGFC402VAJggDHgJwmw5Vl3kGMPaZVuJ8BnVF4tMRSqhHEFHNewkD\nxH9MgucQhiuIGGyyrugyIBOEAQ8B0YXkLL80lI+IGR06NiZmkDToHvSkDY2N47R5f2cFStHfpExW\nVQEdGBk9Tn65k9ZfbIFMELX1MgGB3q7sTcY1TVyGMnkpH7166ArPaZWbuhtfFTl2tiBwIvuDpq2m\naG9B2+LiV3oKqDPcP7+qf37/+HsqkAnCgIdggXw+5B9SsQUA7SGULVaDOIQ+/YBMEAY8BN9OU5Rf\nJQHeFRrH0JJ3vYxWm2KNi0yAVesh1Ohl+YlfbifKJHtfx36VKyf4/jsxmNVrkZe6WCGBnw3/Ebf2\nwz/rqP8k/AUxx+IWXADDZwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$- x \\cos{\\left (x + y \\right )} + 2 \\sin{\\left (x + y \\right )}$$" ], "text/plain": [ "-(x⋅cos(x + y) + 2⋅sin(x + y))" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(a,x,2,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Expressions with undefined functions can be differentiated." ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/latex": [ "$$2 x^{2} \\left. \\frac{d}{d \\xi_{1}} f{\\left (\\xi_{1} \\right )} \\right|_{\\substack{ \\xi_{1}=x^{2} }} + f{\\left (x^{2} \\right )}$$" ], "text/plain": [ " 2 ⎛ d ⎞│ ⎛ 2⎞\n", "2⋅x ⋅⎜───(f(ξ₁))⎟│ 2 + f⎝x ⎠\n", " ⎝dξ₁ ⎠│ξ₁=x " ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=x*f(x**2)\n", "b=diff(a,x)\n", "b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What's this?" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2*x**2*Subs(Derivative(f(_xi_1), _xi_1), (_xi_1,), (x**2,)) + f(x**2)\n" ] } ], "source": [ "print(b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `Derivative` represents an unevaluated derivative. It can be evaluated by the method `doit`." ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAArBAMAAAAatA7MAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMrvvmVREEIndzSJ2\nZqtw62vAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADFklEQVRIDbVWTWgTQRT+NmmySbaxehVpg721\n+AfiRYUcexGCHkQUGuhFQeiilyLFRChqq2ARPGilRBEPFSS0onhQVqi2YKk9eFBbQUH00Apt7R/4\nE9+b3dndmmwgOH3QmW/ffO/LvJnd1wcI05rTNlA7NmTU6tlqneZGqPZuhCjuqVc12l4sq1ftKIZW\nlavqB1FXUK5at4p4XrlqOIVcVrlqLo925aLIZdASKarWTVjJwZhqUehzF56/ClB95vinA9Z9bmPK\nfkhWTFs74FGNlIM3VaR6RELD8mlWAv+srXlPCSmmFzxnAHog/eckCJrfugtXXRQAkmm5ELMkCpgH\nXP9ZFwWAuEwL+u4KFGOL6zT6XZjIurAyeOq573tQIO3lTGH4D7bu3TZpkaM+DegTs6cp/RjBdaa3\n9WTQNXERHEMro/TXPfl43AJ6CPrtDNCPh8B1y/hJ/tAU0IX31i0gWWBe3xCbKMYjGW2/NoCQJWKA\nHbSBfPJ2nHgfmOqzDhMWdgLNwG9yxzPAJVwzjwMR7zBs/hAiC1SUtAURA9ygfMzYKn+kx3yKDOOL\nr8GqLcAvegxnARN3CUGb59EzfYlwE/3qmogB9tFekUgxowklzyhO7yulWXW7p2qjMtUo/2p7FlgU\nMUIVaLDIS6rr7QmSKz5VPgHKkTnRfh57b7INEnL3uiRixAmQ3mZmneLBZyeA7z5Vvq2j9fMYk7fl\now7RWYfTiK6IGHFbEfMN6s3y2zpiopXTd06AXqfocmie60Zd3qfIcGQKV7Q9SORFjHidOjO7wOWo\n7R/qyZl32cbSt8bS58M/Pom09bmx0Y/ESojcfHT9y3gRjy5/BceQn9I+P9F9iDaAOz5aJeh9sb5P\npxKRXp+i9NtfZJXW7X+qS3DrFpIb0AtyJ4Fzq1xxKmFw62akHKorL0PLZ7dqO/K95RTp4Stlm7an\nauO//2E2qnVzyl21rdS2Jlo3p9zVFlmFbbduTrmrwqttyW7dnHJXW2gVdthp3biwqbOc3brZ5U6Z\nrN26OeVOmapo3WS5U6YqWjdZ7lSp/gV1l+WbLBvGTgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{d}{d x} \\sin{\\left (x \\right )} = \\cos{\\left (x \\right )}$$" ], "text/plain": [ "d \n", "──(sin(x)) = cos(x)\n", "dx " ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=Derivative(sin(x),x)\n", "Eq(a,a.doit())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integrals" ] }, { "cell_type": "code", "execution_count": 97, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUAAAAArBAMAAAD7+ky0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYy3bsi\niUSr8q8rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE0ElEQVRYCe1YTYgcRRT+Znpmdma2exwlgijo\n+HPRiPZh2YAQEjWRoCE7YKJeIoPoXmTZleTiX3aQEA8izGE9eHFXxPgLWckIwgq2BzEkoHMZEMLq\nHAJiQDZukBjXpK3qnqrqel3z0wMLOWzBdr33ve+r96aqfx4L3PjjFjdxjSNIhsuRujfGs/ZOJS1w\nBEksrRmYOHjZEJhNWiAwgsSQ2ADltgo07EoSaGsHk+yWibu1g2JX2l8nfzVw7abv4AdhhY6XmRO1\nRuZaxDabm11gYTnMW/QK/xkquGDAdGizCxzrHmyxY1/XMweeUzeAGmQq8ODDR406u4vmPW0J7vSS\n4BlJTZk+CfhIxs1G9rEr+8wRYOFNEjkn/P3CoHNMYquqijWdbR9aaQAv6WAiz7qP0N8Q/g5h0Dkm\ncaqS0pZWaEzAYYf+M0ETuU2dnZfJnJoeUR6RIF0WMaXuIo8D9wDFuiCMMJNsRU+sYVWERWciwaIr\nGH/iD2GG8wPAVAPZZR1N5JFsZ5X4mDJ1i0jwlggXXrn5tLDDed7lBeYqOprIY9l2Tv8KXGifeJkJ\n+f08+eJPMzWA3k9yWSLBs0KT9v1LkiWMUy5K6ikS6PBzE4UvMV5ja3yaY6pvAKuVP1mcA97utQiR\nYEVp4pLSNaBwNY4PjTRRbLEVMkt4kms+BBzXuZzygNt7rUEkOKo0cUlxN2B8fcepGuLzwc+jicUy\ncC1bCQt8iO0GxpY5d5FfdnzOx6vc7CXBx0rDebBe45pPGoFziF3tv7hJlwrW63UJtMGlibs6wIZ9\n1bqb+6xA4KYavwYFcoMOIuE7KDSUilyVQaPsoFwp3MG/7ZmZ4BezI2alBeZFySEGkYQFhhrCBG6F\n7cHYQsSoPYAm0lWUrqc6YZw9JCl3Fjm370OiSfCU0tAkhSpyXv+neFAPuYLC/RhrlY697/HV2btl\nrfwdzjDzMPdNg0jwgtJQ+tnVNnv28hWKK79HDykJC/5+/LB6AJj31/ntws51YnryuTozgydDEpVB\nJVhzpUaxQmve9/9F3y9Jjx6Sy9+LrjZetr4/yQD1qbOXonFuT848H4WEBOlOFDbYY7U4KLLHe0hr\nut0J+F9EVXcw5x32pz73Ti0a53YVmXIEExJkWxHUZO5idzQdKjvtIbPAo5yd2x7VPNIAvuLAtwKN\ntVupOuw5EWWzlBQqEdRkHo+Dkey0h7wN+JELzrwelVmr021WI3BOoLJSATjLsJaEw2YpCX9wJELN\nzyigZWfPpTbOs9/OgZZWoKTY9dDMexLqGqUN16lTMPBjm62z8i3d557Krm6qLmvtNH5hZt4zF9hl\nmaapf7jQMFJVA6ggeSgKCrKHXVOsh8z479YZcxKJC3T8IyqFZt2pedR5mgJh9rBriveQ+O2KyxSt\n5AVuu7jeiecaCeHZw64p3kOmDpxiHUGqkbjA/G7Mxv9VO1J9QXbRNYUrqF7nOHLrLnYicYFp9tUP\n+qaRatJE3exh16RFmPMg61bK2LZnz/oTNNTf38XC+/pTho12sxs7IOsSkKnzlbQXNQcGDLaD6jU+\ngDs4vF12TZTLdnCcpWJNKo0M8EtHkK8N4Awf3pBdE9X87uIEx877Sc9r4bDWLNCFE/ksu+iaqK6w\nt9ss0MAN5f8PjtiGNjhoUEAAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{1}{4} \\log{\\left (x \\right )} - \\frac{1}{8} \\log{\\left (x^{2} - 2 \\right )} - \\frac{1}{4 x^{2} - 8}$$" ], "text/plain": [ " ⎛ 2 ⎞ \n", "log(x) log⎝x - 2⎠ 1 \n", "────── - ─────────── - ────────\n", " 4 8 2 \n", " 4⋅x - 8" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(1/(x*(x**2-2)**2),x)" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIkAAAAVBAMAAACArtDCAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACJUlEQVQ4EZVUP2jUUBj/JZfmLn/aCz1x6xGu\neE7Fm7RdahBEt2ZUEC7G1aGCqxBERMHhJu1ttxQcg2MXM3ToZA8EuxTBSRSEFnXQpX4vL+/dvdcr\n0g+S7/f9vl9++fLCe8A5Ij1cLs4h16S3eG0Ga41Ya1H5+DRFjL+WqLyV89rHG7XBq1o0i0W7p9KO\nlP1SG4D7BTAGOlvWnubyRKj8I59DN+S59fGYQMoL7a67PKv6G3ZmcyhcYDKXtvY8LzUXK6tUrUvp\nfQ5VFycGFpdvdsNKxxO5GGk3xtzVg04OmGOijXQlmohUF3sMI6k/bQwmAkLkshfhHfpBYzOkcpO4\nO5GVUKpCdakPYAf2sRuJdpnJ5TmwX6yilhHRGAHWdywVhKtQXdwMBhyamkbeekHxsiDo9fy/QDP5\nzF0WYqD2tfOIqVjYw+HWt+Gwx3C5uv4RoWbI6qnweu5vovONoj0imrk0y2ekRp2ldNkvZJeDapbx\njfQhI9gXNROGZKgucxnc4ArMQPYZoHX5AfTjbc6y1V1IgJCX7K660Or2R+9R7Tah8nJ8KPAad+/t\nMop+JMwBliLR113mE7Q6iwf0sqnwr/+MrE8PYjgnJzQTaGBg5fK0SMwyv/7nGuAUJDgzdnDhbUhd\nsQMmQuHCmduTxmnk5kCdLsjdKDVGJCGB2buxUhivaKFHVHhRxcxOZ5wMQnwx7R4yLE4pwWv5Py+R\nau0fSp4DOjH/AaHFbR4SBEonAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x - \\log{\\left (e^{x} + 1 \\right )}$$" ], "text/plain": [ " ⎛ x ⎞\n", "x - log⎝ℯ + 1⎠" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(1/(exp(x)+1),x)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG4AAAAUBAMAAACezBVvAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABuElEQVQ4EY1UPUjDQBT+rqb/VUOFoltaoYsU\nQSo4ZhHFIogublbBbsXiouIiImidHKwIClZwEBwUIgg6WOgqtJOuBXERBxV00Gp9l+b6E2r1weX7\ney8XjiTAbyUlyold/a1D97M7pjgidFiQhsjuTfa20F2CNEat3rbnhbYpgjVE05xDFV2sIFhDNM0N\nV5tSVVrDvN2DQYU0zfkCs8BEfL6HZIiWEcWJ1hQLhMdnwKL2VccW2Ro8a3Ar1hesW0heoBIt1QwR\n9WFRScIm215cKkkNjig8xZYVDPC+TVSiY66rNY05+QgMzjPd05BLA++thfLcA+1nRDnK2e4GVTJD\nVMYeXYF2RQcNp2PAp1Rkj1zTnIj4XF296iqX0aG835cUDOqanhMoR5Oc1pSnSMIl98IiE9HQlof1\nzUWb8qJzEZHpXA4tz/BjKn2NId54Bc8TnFFr6kblkg5fRLdcV8r64X6md74j4L1LkJkthTEa6wcO\nSt950vRwItqvzHDC+vyhhTpHF+40G1kl5lBFJq0I1gxPKFym9e/32rhZZwa45PzcMPDHd2S0sVgg\nnuE8YhjVGwijOTb/T/wAtM1kFi/cfW4AAAAASUVORK5CYII=\n", "text/latex": [ "$$x \\log{\\left (x \\right )} - x$$" ], "text/plain": [ "x⋅log(x) - x" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(log(x),x)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAAUBAMAAADvmLu0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnarIkSJZlS7\nme8N5bApAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACaUlEQVQ4EZWVT2gTURDGv81uzJ8NdilWCXgI\nS1EPoqUiHgTtxZNgUiFKlWIupSJIU/QgRWtAPHjRWBCrUAxKD3oxIiJ40FyK4CU5eKmnFkQ9Voil\nYoN+s5vNJttHG4fsezPzfvNl9u3mBdjKIiWXiOe3ILsGRee6JzbuOW3zqYwfbAr6mOvt9RK9ntM2\np4t+sCnoY44Xr3mJmNfXGy/TMSvAjvWOQM97obbU9NSqCtCr3Dhf8VP7NqpeHWotK0BAy47ffkBE\nW5wrI5mdhXF+PsV4lFffmWsjvP05umLNXk+8Ox2p5owDn7NjklWAQBLPMoNcnC4b340jSGR2AwOM\nP/GLivHDegp4ylDMVdUq0BHKQV/ATdklBQjcxxPrLRdtmHW9CKN+1wL7w1EgZsV+mix8zVDMVY0u\nI4xEDokl9JSY7QB7D4n1w8J+qdAaHNJl4Le+flYSP5hDqCJuWoYZ2z5m23voHV/IO6op9MjXB0GB\nab9kiMr4oQCsazN/a/QJwy1zVRm5vSJ5sOGoVlqqQZCsUZf6Vq+NScTXmOCNscshGW/JQHNVIxZe\nFmQHmqoKEHgVXsEwS2zA3F5DdI21lxjzIZjWBYSt4NMyM9hWalNVgIj+Saw4x8N0CQ+NrwgV31v4\nSFW+TvfKVUzRXeQl5vZqLiORZ6P8OPuqAKGNDY++kBLt8kgeNx5dxJ355wXGvO2d2b4vJbr9vMRc\n1ejjc7PGxOqOidWT1W/MKkCHVg7+DzEy0ARc1SCtAIOIHysOjV3+apunANtWg65srmOqk9Bbk7lr\nUODWYdyqkqzCugal1nkzOP/PP8w/nEeeiBx+z8UAAAAASUVORK5CYII=\n", "text/latex": [ "$$- x \\cos{\\left (x \\right )} + \\sin{\\left (x \\right )}$$" ], "text/plain": [ "-x⋅cos(x) + sin(x)" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(x*sin(x),x)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADsAAAAyBAMAAAAQBL5IAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMol2mSJE71Sr\nZruYlGYbAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA/klEQVQ4EWNgwAVc4xpwSYHEH3Aa4JNWYPyI\nT5qBG69uBqEGfLoZD+KTZRBvDMAlH1aS42D/H5fdbAKHmCfg0srAwMKgi11y3zsgEGBg+IFdGirK\n8oEFQ140rQIq1s9qwIouzWnB0AoVk8kMC0SX7trAWIIuhsQ/dS0X6Cac4A9OGbDEV/zSSxkY2PCo\nSGJghHkMmyq2srvYhEeomJAxCKgQ8j3/fyzgAyFdg0qeo/ydAx4HyTCw/sQjDcz1q/BIL2ZgOI/H\ndH0BvNJAg+3xZRcGTvw5gvkAHqcxMJTjlWUrwCu9nYGjAbcClgIGNjzSzaHhh3FrZtD///8zXBoA\nfutEoAOsGjcAAAAASUVORK5CYII=\n", "text/latex": [ "$$- \\frac{e^{- x^{2}}}{2}$$" ], "text/plain": [ " 2 \n", " -x \n", "-ℯ \n", "──────\n", " 2 " ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(x*exp(-x**2),x)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAuBAMAAACIZRm+AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAmYkQdqvvRN27IjJm\nVM1kwppwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABmUlEQVQ4EY2Sv0/CQBTHn70SSkopu0YbZXDz\nBmBuiMQ4weDiIjrKIv8BxLjD5Fp1cTGBVZcyusnsIoOjAwGV+AN/lLuDg5De69D3fd/v53q91wKw\na2mdchVS8tliSMoiMjRcJaT3lAiA0UBATfVmAIUK4kkeRUDvCMZ8Q0D6KwKKDRGQPUBAfk2GUsv5\nltxz/VCUTJ0eGGxst0eSDSVX6kx4Ed1IiKDW2UphfXIRlV+V/FKRB9XsmazVaqyO79bMwJtaTWNh\nIilB2gdv0vnrnJvZSW0E/WXK78DYGaeJPoOIEz8zukxDtAwelRybn0Kj2sC64FC2DasgOU1+HAKJ\nBkcA1iicguQ89URku0LBMZDgi06cra6I/JZQpA9WsHbieEkWWbQAOmWajCDWfZSckw4Lqh0PbpgE\neIb7ojN1JgPPbKdX2gLK5O72KlMnOjNwAc1VHfOHR77nVi1qja9F7pxnB/NQXX5DRfznBQcBlSoI\nqI5g4AcBmfy/DEXjmDFFDkOfwULbQUDVlhLahH0lA+dmWQ1d7ap3+wM5K19eQ9FudgAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$\\int x^{x}\\, dx$$" ], "text/plain": [ "⌠ \n", "⎮ x \n", "⎮ x dx\n", "⌡ " ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=integrate(x**x,x)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is an unevaluated integral." ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Integral(x**x, x)\n" ] } ], "source": [ "print(a)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANMAAAAuBAMAAABAJTEtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAmYkQdqvvRN27IjJm\nVM1kwppwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADxklEQVRYCb1WTWgTQRT+zKbubjY/pVdFUy0o\nIrqUWhBB1rYeFLURCqIIrYiI9WAQEW8N4qEUtDmIBxGyVVCLQnMQQUESpYciogFFRARzEH+hpq21\n1Frrm52dNZo0JG3cBzvvm++9N9/OZPISgNuSVbqN/rvb3hz57xpcQJpSDJekvDmXhAAl7prUkFvH\nB7RHXdtVQndN6rtrStqka1Leb65JqVOuSYUmXJNKxYpK+dKc9ptFw+WQt+2kxyL5WUQg3DUciEEB\nD9jg3iHBlOl9ogvVmHZFp2EDIBV2ID4LuFWAWQHK9EHTTpSyNugv2iz8tXYYHoMjudLP9CGvo7GB\nI2lOd6g8oJhiInVx5IlxX/bY52Q2cxTIaxa3kk70poPwgcOgs88/oVLIF3OiwagFPdOcufNmjy8R\n0d4va+tgxDZ6mrbfaDGAeoIYaEhlBMHmhSbV1WfQ2LYG2u7hLIW99GpS24FTdHoe/pbBcatKikNB\nMALlIoZMYq5QXth/TskCT2kqdyOhCwKeUcv+3ub1jNat9UE1NgMxKlHTQCNGjAuAP0tzIMQvlnwY\nXqgRqF0IpYk+T++ieyYCJvCKps1prHAImhexUQRmlDC0mdM6DIorGWA1NuqvgUDMyh/6YTn0XzQt\nqSxCBjFHaVcIxlksRc9KHWcdgpHCpI+9ZBeSkMaIokPGuDK9k0WXRgEdnxjUcmzEW+7Q+HXMkoo7\nUrRjg2UwqWOQWKvkBCMLTGZd+y0tPy1tmKslzKQAq5fbUhuzjIFPx7MoO0Bbig6QRJJsPEMbHEcg\n5xDwsJ309kZYVJizq7Fr8LPXYgdIx8nicoyNSNRaLmCgJp0nRdcioLfDq1vXQpqFmn0tCKugYBil\niqW1kKdeAAcpyq7Fc/o31upcixNMnLIOQzVpS2JXdMN7MgmwjllHzzuMRMKCYPmFdj2NddpxBMMv\ndVymMN1weVbNsba9JAwy0Szk9bvWaJ2TWzonHySOEE+ntqmtaXma4Bd6NrXc74gKguZFTNrbYmJg\n1T6cHH4UpTidmtTRuu0JwWCS5ct5zYLNhSmmQHnfekGV5/80Jt56vPP8syhst+Wtn5f1b7ut+ZkX\nzIfsuC1zfkQEUa5XTTvT/hFRrNtYpHpQcI6mIMr1vridaWuGcvNUspvDzG9abiHDbbvoMfcpIb2Q\ntSqraQ9Xlr+I7M7oIoorK+2vLH0x2b8WU1xRrcZ/gyuqWWCyf76v1QLXK1FW01UiWN1QKFzd9Uqs\n1pMsEaxmaC32V3O5Umtd0rpLhasZu7rDrfP7DRIM5klLJ7d9AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\int \\sin{\\left (x \\right )}\\, dx = - \\cos{\\left (x \\right )}$$" ], "text/plain": [ "⌠ \n", "⎮ sin(x) dx = -cos(x)\n", "⌡ " ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=Integral(sin(x),x)\n", "Eq(a,a.doit())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Definite integrals." ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOBAMAAAAPuiubAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAIpm7MhCriUTv3c12VLge\nopIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABOSURBVAgdY2BUMnZgYAhjYH/BwJDKwDCTgWEWA0Oe\nA8O+ABAJBOsCgATHcxCTKwFEKoEIHgUQeYmBUYCBRYGBR4BBqrwoi4Fh37t3rxgAK5QOlzv7snYA\nAAAASUVORK5CYII=\n", "text/latex": [ "$$2$$" ], "text/plain": [ "2" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(sin(x),(x,0,pi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`oo` means $\\infty$." ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAtBAMAAABL8MaSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA/UlEQVQoFWNggAL5/2AA4zKYwFlgBmMAKp+t\nAJXficplSEflc0xA5XNtYGAC2ZcAFQZqX/VccZMgTJU2A18Bl4AeiMviACRA2nkZLIAkgw7QJUwK\nQMZjsChj0xcGBk6QRDbDDxDF8ZeBYReI/sEAlAGCfAGGGUCKaQLDKTBfPoF7AZDBu4HBCsxn/sHZ\nAGZACb5fZchcBoaYCFR+fQIqn1UAlU8RDxINcJIis3BrFsu9hyzJYcCw3gFJgLmBgecAEp9nAgPz\nPyQ+6w9UPlCKExz4CDX+CxBsEGsyKpctAZWvhsplT2CApwWQzDMGBkUkFYyzViUjpyhWYHhB+ADK\nYEVdhUA7AwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{\\sqrt{\\pi}}{2}$$" ], "text/plain": [ " ___\n", "╲╱ π \n", "─────\n", " 2 " ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(exp(-x**2),(x,0,oo))" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACgAAAAvBAMAAABj1ZXmAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnaZiVQiZrur\nRO9IrJcIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA6ElEQVQoFWNgQANl2wTQRBgY2CfwKGAIMk9g\n+YkpeIHzL4YgAwPHRyyCzAFYBMuwiHElYBG8znAFQ5RFo2MjsmD8////v/H9//8BSZC9pHVW5AQk\nARDTg6GS1QFNDMjdwIMZFiwHmDEVsi3gx1QpL8B/AUNpMANfAYbgLgYeTEEMVYNKQMgYBFQYGIBB\nDAMD5cDycAcMq4UusClgCG5j4N6ALsiLmYgZGLgfoCsD8vlVSnMxhOW1GPga0EXlPzKwPUQX5Ddg\n4MLIG8wKDFy/0FXyPMCikgVo5gN0lQzHGeQaMATZ046AxACtIjk/RDuyRQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$- \\frac{\\pi^{2}}{6}$$" ], "text/plain": [ " 2 \n", "-π \n", "────\n", " 6 " ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(log(x)/(1-x),(x,0,1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summing series" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAvBAMAAAAV7ydtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdpmJMlQiZrurEN1E\n782PMUhmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA1klEQVQoFWNggACjpgVQFgNzAucDGJs7geUb\nnH2A7Q+MzcDA+gvB5hZAsI0QTHYFBPswwxEYh+VpaBeQLf////9PvP//f2BgYDYJTBdLgMi7Mpgx\nOkCYQLKBcwGMzTKBG8ZkYCrgh4uvX8B/ACYhzcBrAGO3M3DC2TAxGtFAn8AA5TYYCzvADFl3gOkB\njN3EwNEAZfPAo4SBgeMCTAEDA/8TQx0Yb/1zBt4AKGf9LwamW1A2/wYGdlgscj9gYP8OFee8gBBn\nAaqHGzuZYS3MHAZmpSkg5QADkTn1RYfm4gAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{\\pi^{2}}{6}$$" ], "text/plain": [ " 2\n", "π \n", "──\n", "6 " ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summation(1/n**2,(n,1,oo))" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACgAAAAwBAMAAACRVSWoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnaZiVQiZrur\nRO9IrJcIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA+UlEQVQoFWNgQANl2wTQRBgY2CfwKGAIMk9g\n+YkpeIHzL4YgAwPHRyyCzAFYBMuwiHElYBG8znAFQ5RFo2MjsmD8////v/H9//8BSZC9pHVW5AQk\nARDTg6GS1QFNDMjdwIMZFiwHmDEVsi3gx1QpL8B/AUNpMANfAYbgLgYeTEEMVYNKQMgYBFQYGIBB\nDAMD5sBp2VtQ7e4TYGA8wFCPHPyMx84LMADjk+8BitJ4oIgBA88XdEGmj1gEgYqYUVMyUDsQ3EeN\nPYigDYqRDGBBtgQsgmGoYmCVHAkMM1GEQdrdGBgi0QU5zctzDJAFc97rLGACxgiKIEIBAML4QTGq\nLPZuAAAAAElFTkSuQmCC\n", "text/latex": [ "$$- \\frac{\\pi^{2}}{12}$$" ], "text/plain": [ " 2 \n", "-π \n", "────\n", " 12 " ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summation((-1)**n/n**2,(n,1,oo))" ] }, { "cell_type": "code", "execution_count": 110, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAvBAMAAAAV7ydtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdpmJMlQiZrurEN1E\n782PMUhmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABCUlEQVQoFbWQPUvDUBSGnzQtN4ltQxcXB0MX\nR4MWHS1IZ1F/gNmcJP6EbI5mUOdYR5FM7v0JnXSNgwhOVVuEIsQj6U3cxXe457nn4z3cCwtZGiQe\nJeXF2anYSCse/GK/YhVUfE3FB931tdKT8MdnNc/zd9T5JZi9/ePloKgP2DL6BcoZ2Ynmerykkdqp\nW+bTxB3pwgotX/MZdsk6909RXqL1tw3DzSsYbvfExXnkJOCZ2wDsMbanxpgZuBnmxIppzCGNMKZu\nTHMGLcl/pR7NN/nPCe3P0Kf+IUZPHM5Cr2DV2Z0ueqRiz2W2IbOidmxFKPFUD+wFsquWgfHqvMA9\nd33p2OiO4KZzAd8WLlBCJhRAIwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{\\pi^{4}}{90}$$" ], "text/plain": [ " 4\n", "π \n", "──\n", "90" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summation(1/n**4,(n,1,oo))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An unevaluated sum is denoted `Sum`." ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG4AAAA5BAMAAAAl/gOHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaZZiKJVKtEu+8y\nzd3blrGjAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC40lEQVRIDZ1WO2gUQRj+5rK3l03uZQoRBHMm\nEgRf0SSCoOQQiYKCp/ggWCTYqIXxSgshIdiIimm00CKSViQqGCyULGnE6s5HYROMgmAQcjkxPkji\nujO3OzubvczcZoqb7/++75+dncftD9DW1AmcvMBgmB9y4/5zrSueCZNDvRHgUStwN2yeBiTKQGwN\neQ1zwJuweTET+za9Je2+PK1zyp67vPV0mGTgY9pn0kazjTkfU1twYidS/pFqy8MwHtTo9NteoiPu\nZ1RR09betkx0HrPXVE6fTvq1L8miMYS2rI9XBXpaL8eUS/nJ8toPNiRB4qFqbGDQMplpXe+RyUXH\nnso4QNLVWzOuqpXyFVgwXUrSl/5wsa5IYSy9CxH1lhesLE/cT9FofhynOLUq0KwFrtk3EdjQ0tSZ\n5VQQ6K1Ttyg7/i+oyZjN9cVZqm+02mW2gGYmsowzrN8BTUqkchX5yqJ69cSBCjBZmLCKIq3A0fkB\n9DMPmfyl8HJ5fUsXGb7X5sxv0BrhShBcnqbtPRWMrzgjGOqsp0IkgefyhB0N11ISJ+rdD8tyDU5/\n8+AW3xL2fV5hWCX0jnLFsC23ipHSA3O0faNQnJYdGkuUrKFNsI8JNxbyHMrBDpAuz0GeeViOInsO\nCYbEkBB4kL2RFwbR4yBlM9GVm7DSpXubIH4CiepaHvU24bA45rIYBLGwCcYTUX4hBkHcxzeBdLcz\n2bh4umUYYCc56HcYYu9lpZ294/wF1zWMoTmHMVeo2ieW2TWZ/m4fZ2clXieL6DNhFzWS1i0c/8r3\nAenmERwHLkmyqkuDwG1ge3VRwh4AfhKkJY7q0gRiZb26JGOjf6EXj5FXMo+oRc73s9CYQfR6Hspz\n7eb24KoLQ/Wza6t0yBIa+ZlTPVAo3+ILSGZVfldn5Vs9PWof4mUkMy6v6oXyzX5eY815Qvlmv19q\nRPUcrtPyjc3zHcKsp1i+tYbYP7F80/fu5tNQgP9Y3Mp8FSRuNQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\sum_{n=0}^{\\infty} \\frac{x^{n}}{n!} = e^{x}$$" ], "text/plain": [ " ∞ \n", " ____ \n", " ╲ \n", " ╲ n \n", " ╲ x x\n", " ╱ ── = ℯ \n", " ╱ n! \n", " ╱ \n", " ‾‾‾‾ \n", "n = 0 " ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=Sum(x**n/factorial(n),(n,0,oo))\n", "Eq(a,a.doit())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Limits" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAqBAMAAACuFQ3dAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiibvd\nRDIcHY1cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAtUlEQVQYGWNgQAdCBjARZld/OJuBIX9g2CH6\nJQ0wB9GS/g8HHyizZtaqjQwMpivWAU3hDGCQb2AoZLCZwMDA9pGB/wCHAgNXAQMDry6DfQG3AwPj\nZ7BV8g38Dgy8H0Fs5lMM9gEMvN9AmtcEM8xfwMD3C6xm0YX5ATA2kzJUDecEBu6PQL2MQL38n4Fs\n7g0MHEAzmTYw8PwE2sUKtIujgUE+geEgg9EDoDlXQ/cyMFil+TEwAADFljkpWmo5UwAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$\\frac{1}{30}$$" ], "text/plain": [ "1/30" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit((tan(sin(x))-sin(tan(x)))/x**7,x,0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This limit is easy: just expand the numerator and the denominator into series. Things become more difficult if $x=0$ is an essential singularity. Let's calculate one-sided limits." ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAqBAMAAACuFQ3dAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiibvd\nRDIcHY1cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAtUlEQVQYGWNgQAdCBjARZld/OJuBIX9g2CH6\nJQ0wB9GS/g8HHyizZtaqjQwMpivWAU3hDGCQb2AoZLCZwMDA9pGB/wCHAgNXAQMDry6DfQG3AwPj\nZ7BV8g38Dgy8H0Fs5lMM9gEMvN9AmtcEM8xfwMD3C6xm0YX5ATA2kzJUDecEBu6PQL2MQL38n4Fs\n7g0MHEAzmTYw8PwE2sUKtIujgUE+geEgg9EDoDlXQ/cyMFil+TEwAADFljkpWmo5UwAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$\\frac{1}{30}$$" ], "text/plain": [ "1/30" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit((tan(sin(x))-sin(tan(x)))/(x**7+exp(-1/x)),x,0,'+')" ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAVElEQVQIHWNgEDIxZWBgSGeQmMDAsoCBOYGB\n+wAD+0cG/gMMvN8Z5BUYeP8xzDdgYP3MMF8BREJEgLLs3xm4NzCwfATpYkpgYGhnkApgYBB+d5QB\nAPogE3QldevOAAAAAElFTkSuQmCC\n", "text/latex": [ "$$0$$" ], "text/plain": [ "0" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit((tan(sin(x))-sin(tan(x)))/(x**7+exp(-1/x)),x,0,'-')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Differential equations" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t=Symbol('t')\n", "x=Function('x')\n", "p=Function('p')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First order." ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHQAAAAYBAMAAADZgsQ1AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB+UlEQVQ4EZ1Uv0scQRT+9ty9H5s7spxiE5Is\nCoqE6KFFKuUak4AkCmlS6WllCvEQIe36A1GbuyKNgnilIGLgAhYp3H9AIklAA0FtYuuJv8DK92Z3\ndhf3ongfzLzvfW/eu9mZNwfUiIRdYyLw3Kg5da3mzHcLf71cNc900vPvI8v+gj5B67K+IpnyouuV\nmpOetOeSAF8AZRZK0Vcka89DPxB7Esr6d4KhHckwYruAXgFGPEWSJ1PEDrPSdW0k0yCVOMVS9JPP\npODZVYPooOe6JGXmpPSWSJy8xIBUXJu6ZrJzS4XWaQPp5t4WEy+BD9tlE9HdW4v6LRbc3TU2/Q6E\nlVxsOl7EFkmbNGK0aeDTEmOF6bjJM5CkgDaL144n5qgRPdWzWCTnDw3dEqo/FWzBk78s4H1J8RuB\nbgSJrxT8R2OORrJCUxAnBnuGqNkz0So8L/7YJEqpygXZUGqB1+m2SD1jHsQPmzzasFah4prFodF5\nxgxTcaMp50suWfChGx2IGHxM0SIVd47JD6M/R86wk3oMRAKhodI23gBj1BGZNE28Mgj9CtigL+Tz\na4MSvJz6pvReHvgIqFtkw4//abl7gGpxauTn52BVl3MjMrirqoJTq4PbnxFuf0eHfuSSsPkmpGqP\nTgTU/TMznOQozlN/lP1f/A79oX8wwA3eV2FLqlxrdwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$x{\\left (t \\right )} = C_{1} e^{- t}$$" ], "text/plain": [ " -t\n", "x(t) = C₁⋅ℯ " ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(diff(x(t),t)+x(t),x(t))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Second order." ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPkAAAAUBAMAAAC9u4b/AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADJ0lEQVRIDa2WTWgTQRiG32036WabmqUVL1pd\nKlRE1KAHT9K9iEKFBgQRERvr/6GYg3fjDyJemoOIEbS9CYI0tkJP0iAIItgWFf8QbRERBTGliiBI\nfWd2N9mdTYqHfrCz873zPfPObCabAF7oOdE566f/eV8uqlf6NTtRW23T9h16tqZP2bV+Q0qFagh7\nUeoaoF2CVgiVyWRLDuYH+WTcselsraYhpUI1hL0I1TIDmBVgIFQmktXn2Xx0RDcSKmXaXslSEFQK\nMBygjRtfG3EYtigdjshSUKmq+1JQHa89nM3IAomM4tP2RwjPAurecjVRKd89ClURdoJU+/pd3TY2\nA/smx23EZ4J17PflhbBSNIxHdzbqk+nk7fdd20SqUr57GOo88Q7aQHdG0AqlZVsuGAVMUB7l1cKn\nD5wuirglumds0QJJMaCVYCCRhjGGPod5mOLJsSkyfGjwoQXo3zDlPHEwJmmOBqi4FZ83HVyl+paX\nmWcTjKGyzJIv8rzH5tCE1jRaZ5HKMVcp392D4k4z15woYLR8GZh+LOgwpSFRovKZFyuQrLAJxg9L\nZJa3rKExR7oXkLIph6h4sXjja7GYpu5BhpP8Cayb4bQ8PamsoFXKn0f7xZGI+5CoN8ue+6rhv9K9\nVHUPUdW9u5CR0Tlnv80JeE+VBM3gmmvUdJkKn2Gswi3G8kxw6oqIi6Irv+lt3keiWziXEU/ecw9T\nLLIFUoNgzgf2/lLQHA1QprUVTZY4CfECt+ieOjmF2/RleT/iuXP25lzAXaV8dx+CYcvPHSPf+QwO\nCpqzBaj+kUnsBgb5skm3sxFmwTB/A/cs330OrQ437u9dpXx3HxLTQv+CuDNVxnVT0BQCVEdX+2su\n6ACrJnhPlDkcis7xnRkK8ssQO7nheLJnYU3PwtPJTxRVyneHB4l3KtDx/Bj0V0czgha5SrlvWjEi\n3kN1Q7qrI4bjKj5VdfcK9+OQijBXKb5l5Crr/cp4uDlbZx6V0pxQUfLm3fshwU1UiuoDOVLvF1YO\n6G8WbNkJN0tTKxYXK+F6N4tSvXJAnop6QANtuajl+o/UYJkhuer1D3509Mgc3XRoAAAAAElFTkSu\nQmCC\n", "text/latex": [ "$$x{\\left (t \\right )} = C_{1} \\sin{\\left (t \\right )} + C_{2} \\cos{\\left (t \\right )}$$" ], "text/plain": [ "x(t) = C₁⋅sin(t) + C₂⋅cos(t)" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(diff(x(t),t,2)+x(t),x(t))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A system of first-order equations." ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhsAAAAUBAMAAADWwOJyAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdt3NMolEEKsiZlS7\nme+E9sVtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE8klEQVRYCcVYXWgcVRT+Mjuzk9nZJJtKof5U\n16ho8CFL1gdFarfPollbjCgEVzHgUzsBCwrVrj6IFEoXEQVRs33wwYfq6puKdvtkW5As/oD4oAXF\n6pMr1ibahnjunTsz996dmZ2tFA/snXPO3O/c73y5M5kZbLsLwpw2c94TUdbD1UG9yZcflQuuiEwI\nKsw3sBj2/Rb3xlthInTsG1454tTDEA+WIj8RpYMiCHmJKH+W0+XHLFx8gBgTy+pk4juwZDnuAexZ\n2BVlAR7c2Ib7QzvKL0jSJKJ0UAQnLxHlz8q1MnPJVlYnE9+BLEehB7h94CFlARYcup2GH4lhjOko\ntyQmpYGgo/TCJygxOpfksmlkJC6yHAb1O1EBXtC5YbdHqf0DaZ7QUaEcaSDoKL32LCVG55JcNo2M\nxEWW41WiYNSBXIMc2SYusegBKfVaLQx0VCDHICiEkKOj5HPkO2UaMnKRoUllB8nEd+DLsbLj9e0l\n7ASeXjtdgtWTVyB/tcwSz7GBbM8n1zhrTfO+b6ZfZKGOCuRQQfa3Sx0cnF6Eef1x2oADKFbJt+Uz\ne3Z4Y0QhC5esZVUyyR1wOex64WajgrPE5yT9Cowv9lWZ7WLu4yU2AiY7YXdhINeEcQqrLYpVFF3x\nYnIAWvrSo1nvdMzfzFkUS4eAcgyKUsLqL3WsbrFN0XAumcsqZFI64HJYnrXutnAnUfiafm6ZBtnm\najwyvyvTMX8eYyg2UTyHqTbFOiqQQ4Cs1jgTsQr3Am1+88J+D0wvHUUp35zO3Sj0jQ5Fw7lkLquQ\nSenA3x3IdWn5X+h3G/3MPg2y/e6xyBM6zZ1qcTkqmGKNKSirWp3/qVptUl6AjJb5N22pTcosUI9/\nGZevJVdFsURgNi7BWp9sUDycS3pZe36G7JYalVLIILkDLgfCxuyLhB2QY46ScGtCjoO7N7kc3XhU\nuDt8kNFwqGb+D4pONoDL9r6tHvkkYvxayK/TxmNyxJ9XuGQuK1A+GSR3IORYqBFF2sD5Pm2CfJkC\n7GXSztzBXP7EMSGuIsfDBw12sQg5VBRNYltGAsFdl3bH5hsoMMl1FIfwwSrjcI9dLBm4hLtjWNmg\nA04mpQMuh+vdhDGP3RStCm2CQiUix73VOh0eEXJQu+NtSQ4dFcgRgGAwfaqEnuwhf/FD4AjFOoqv\nw4dcD+977FaagUvmsgqZlA64HAc6a6BXpiV68mmu0MC6l839B/jMC+Q4j2Kr2A13h44K5AhArCz9\nZ2njUfNn5OqfezhDsYQ6XJHXwlSX5lm9TFzSyipFFTJucgdcjmenV75vA0/S489ZOuZqSikKnj99\ntEEHt0xD/rHrFs1jG88c27h/7VeKdVQgRwAqUGd0tRzd3sLbD7+M5ePvNlSUwd4AIjvwxM4Wv14z\ncEkrG1VknuiAk0npgMshkOxhlRl7tIs1Lod+RkeFcoiJy3hKh1Asoz5Wzu/l0azIjcZFKatUFUEs\nGYmLLIf/d4x7hRPF3HMxS+goW4gqppr3fvrFEFRdOb+LRydEbvB1UpyI5cJf4diEBFg8GakDWQ5+\nUdO+rogV9YPz1UZJz1HMbgXJqMmtrT6foA0RylaK2vz9iG5PfP6oXK6MTMRFkcP/diKYaPSTw/+K\nKiilP/qTq+N0eXZULuKr0oiwqAOSY9utAZ/wI1mQyHS8Oqj/5ePg2EzjX4zy9xwco7MJAAAAAElF\nTkSuQmCC\n", "text/latex": [ "$$\\left [ x{\\left (t \\right )} = C_{1} \\sin{\\left (t \\right )} + C_{2} \\cos{\\left (t \\right )}, \\quad p{\\left (t \\right )} = C_{1} \\cos{\\left (t \\right )} - C_{2} \\sin{\\left (t \\right )}\\right ]$$" ], "text/plain": [ "[x(t) = C₁⋅sin(t) + C₂⋅cos(t), p(t) = C₁⋅cos(t) - C₂⋅sin(t)]" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve((diff(x(t),t)-p(t),diff(p(t),t)+x(t)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear algebra" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a,b,c,d,e,f=symbols('a b c d e f')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A matrix can be constructed from a list of lists." ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyBAMAAADb31q2AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhAimXZEzWa7\n3asFX9bSAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACAklEQVRIDe2Wv0scQRTHv+5l73Jr9ETjD9CQ\nJaS4RtjK0juIphJyVkdAve2sTIKFBJssNqekiX+AcE2IVbAJCCJcF0iRSGqR0+ogzRFROCzON7/c\nJ66yWwq+YuZ95/u5t7NzM8Pieec/4oTV6fRhYGo6Dgt76lUfnsZCBfQoGp57FlXhFhjfk8CnCeDs\nWQLYOrgDTi9/HOS206x6XCO/XrxajU3faXGz8tU+53rJc2oGtkeRqXOzUMK1v7UfvfQktXSZM/QE\nHF6FzWHyRSi4q45KUWrdfEOWLx75IhRccVGQ0jQX0MXUAPkiNOzhV8oXWkcbszsmpz5H4mrOTtB9\nZDET//CTy0wD5aKpbDdfvtvgbrnKCwMv9gKy1TQ4d0f+APPFud+rMTPM3+VGXq76fG/w3X6DxUnB\nY3D0VWF+Zbff8l1nHRgjqk+1aDRcZ+dDFGTGZCkDL+bfeMag3s7T+7DoPj6iWhrODuFPiZlbftpl\nkk5hQFLDdDxXmZkekGeOjbwvhvCnEv4yq3d0/QeTlMqbQlceg91mbq7BhEzHRatguqtSLebnXCZk\n+lu0Gj7Fk9pECHS5QBBKykaE0tPYxn7DFVrF4xrKvhGiV5PU8MLa6+YX5lY/7zAFqL2g4WtOhLDq\nYjAePOnIB8WDD+fl0+LBuysJYInGnXMIJ/qESPJxcgmgc2clQDWarAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}a & b & c\\\\d & e & f\\end{matrix}\\right]$$" ], "text/plain": [ "⎡a b c⎤\n", "⎢ ⎥\n", "⎣d e f⎦" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M=Matrix([[a,b,c],[d,e,f]])\n", "M" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAUBAMAAADIGvgZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIky\nEKtZsEGBAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABJklEQVQoFXWSMUvDYBCGn9Ra0saEiNTFJfoP\ndBaM/yBQukoWRRAUB2fzEwQnnTIJThZEHDro4p5JcfMniIgulniXNJB82ne4++7e98td7j6wAmZi\nVZkl6A82/2is8W2C50t+G/eNh9RU9LE/cENoRXgZ3TNTcJrwBffQ8enGeD+m4Dp1P+EVlqE9+UeA\nlqCdclJc7UzML8DzCJyIjYK5kcDAym4mHYbsF/lDg9XQuZQyMWJhPlJr4iJj4b0UlI00BIuwlahA\nS9gREjeRZyroxUWTT3DcpOEcjnxaIXdgHYx3Yh1LHWvY39LciCuZRp7nMXvyVzX0hoNUqEcddQm7\nOtRUOmdZVgmnTlRnWRbr0+ClSta8rlsfTIFg6utuTstagZgZkCf3CwruONxHdG4CAAAAAElFTkSu\nQmCC\n", "text/latex": [ "$$\\left ( 2, \\quad 3\\right )$$" ], "text/plain": [ "(2, 3)" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A row matrix." ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZBAMAAABQnWQHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAu90iVO8Qq5l2zWYy\niUQbaetyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA7klEQVQ4EWMQUjJgIAz4lHQZFAgrA6swp0yl\nRaMMskXMdy86MDBAzHRNQJZhK2C4/wBJwIKB5TdEJVtFPYpK9gQG1gAklfMdGD7BzJyPopJVgYH9\nD5LKpw/YfmFXyfUNVSUD3HYGBlQzgcYxfUMyk4Eh6QJ2M4GK3gOlEMBWIwGnSnWEMhCLNw6XSo4G\nVJUMoQnQ8ER35wwUhcYMDPIO2FWyNDAAZeHgfwJOlScYGCbD1TEwBDIw6BtgNZNZ9267ApLK3Qws\nP6E+ao9fvgFJhuv////IKvk6Gh/A/I6kDCeTwvSJ1dyhY6YSkfldHQCWOjvyUp0CSgAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 2 & 3\\end{matrix}\\right]$$" ], "text/plain": [ "[1 2 3]" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Matrix([[1,2,3]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A column matrix." ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAABLCAMAAABZRmeuAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRO/NZiK7id1su8c+aQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAATdJREFUOBHtlcuW\nwyAIhokapxMTL+X933UEND0kzDmzmVXrptVPEP8AwoI8HJyjyQrAgj70sZ4EDpo7JLS8Vl//jr+j\nNcVpp6yi8w5t1PeHDzqV9y7h7g5RUWk4hf0grQTNtFDZ+1JmKisUqSIqbuJBIcfpmZKBUqNFN76R\nsto5dU0kjtrIbWXFaMMqW+6ozcK9Ie/FRq789fieUwgngedD1fJKJGfeqR0ubBMMlFut1Tu++EXe\nXTqJhc5gjLMU02G8Icpd3jJ7sFIj0zdZ0eoAAckCLeW31HM64i5SKoe8ZDskFNtIw0sRQa7Nz5Z9\nd1jpQBp3BGm8AgpJAha+wsUKuUZMlAqd0dBI0YMkWjHQhotD2HxvASNAK0KxuVrNVf5VwSvyXw5/\nfbIjPdAhzPv0YPjJDgF+AByoGJW786j/AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}1\\\\2\\\\3\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1⎤\n", "⎢ ⎥\n", "⎢2⎥\n", "⎢ ⎥\n", "⎣3⎦" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Matrix([1,2,3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A matrix can be constructed from a function." ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGEAAABNCAMAAACBtvrcAAAAVFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAACwjqETAAAAG3RSTlMAMquZdlQQQOkwRO/NZt0iibvf81zR0/HV92xwb5fCAAAA\nCXBIWXMAAA7EAAAOxAGVKw4bAAAC6ElEQVRYCe1Z65qcIAwNoO7WGZXpveX937OBWQFDgMnO1+1+\n0+WHFzzJMQHlGAGETZ17Bn1Ey4Myem1dBygRyoWm23bp6thhAHhBrFfHyOnMgG1MPtpHNzMs3q12\nnkG1XZKrNzMEu+UfMIynidwzPb0rhkkb7f4qA97u8B4YTjRv9HzMEOVI92LYzOr0QH3m50eEnCH3\ndcvxf8lwfdXgtpohgniXWbLmYtoPpR2Mjgh5DHYD0M01yCwA5rJnkTIYfXJnjZBqW5FBOdxUm7EA\n3u+1UYa9v75fZ4DN4abZ6jE0zeLFsffumk5xyZHH4GnW5lsD357nBHgVgzUxmtrBfVla+gQ4Uvuy\n/4oYZpwqc0xzGUQYg83t87Fk6KkpdR4+j5f4QJUMsG6IiWsxZSjVFHXxJbx3aG9+/vXb9x86PjCU\nIaqp3IQc36UE0JfMnpC/nOY+PmLgc3TM9INmKVNTfBZyvdVH0Cwd1RRnL0VQBs7nfX2PwvD0/GlP\nBFFTe3e2FyN+P8u/4zK+Gw6LcRDqrRpFlEtB1+TfolK9VWHIxAiNQaq3eIbJJrlTMAj1Fs8wTHUG\nb5GFyDvI9BYLUGOHQaK3WAYLbQaR3uIYlq3NINNbDMOEirIVg1BvMQyjweb8R0RodC5J9RbDgF3q\nZ30uSfUWx6DM+ZfTdd2aax3O/rjO9xE0S1L7DwY+A9I8Pug4fCiyYnqUI11A7ux4cwax3mICJD7e\nPAaAQ32LucPQlfQWh1Babcu+ABWK7Fjf4uyxryNGZsxT+l1Cs3Ssb/EMud7iEPOosqIEZfAWqXLD\n2WP1KFvnOcR8KKAxDCK9xTLgT59UzSwZ8voWZw8HvcUhNoxhiZOhZOhl6ai3OAbfl6qZHEOqbzH2\nRG8xCPDV3ClWMwkDqW8x9kRvMQg4YW1pi4LpyhAe9DCF/fdDqm9x9tiXzFmAxRiC+I1//Cb/Y24Y\nwhxTdrCpvsU6wFFMeotFWOsfKxzuq2P4A8rEN49C0/bhAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & \\frac{1}{2} & \\frac{1}{3}\\\\\\frac{1}{2} & \\frac{1}{3} & \\frac{1}{4}\\\\\\frac{1}{3} & \\frac{1}{4} & \\frac{1}{5}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 1 1/2 1/3⎤\n", "⎢ ⎥\n", "⎢1/2 1/3 1/4⎥\n", "⎢ ⎥\n", "⎣1/3 1/4 1/5⎦" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def g(i,j):\n", " return Rational(1,i+j+1)\n", "Matrix(3,3,g)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Or from an undefined function." ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n6T9TGAb3BxURd9Q3yijvAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}g{\\left (0,0 \\right )} & g{\\left (0,1 \\right )} & g{\\left (0,2 \\right )}\\\\g{\\left (1,0 \\right )} & g{\\left (1,1 \\right )} & g{\\left (1,2 \\right )}\\\\g{\\left (2,0 \\right )} & g{\\left (2,1 \\right )} & g{\\left (2,2 \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡g(0, 0) g(0, 1) g(0, 2)⎤\n", "⎢ ⎥\n", "⎢g(1, 0) g(1, 1) g(1, 2)⎥\n", "⎢ ⎥\n", "⎣g(2, 0) g(2, 1) g(2, 2)⎦" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g=Function('g')\n", "M=Matrix(3,3,g)\n", "M" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADcAAAAUBAMAAADbzbjtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVJl2u4kiEO8yZt2r\nRM0tcn99AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABMUlEQVQoFW2SsUrDUBSGvzZpYhJbSxEnwdjZ\nQRD3Ij6AKE4OZrZLRoeCi6DgkkeQCs6ddLSbokP7AA55g1bBCEqt56a5sS0eCPf/zxfO+bkJZHWi\nhT5vtQCr8aex6rsRi0HeqYgsXGS2RWmEHWcO2tDa+MzsI1zCQQ7vRBkaXkEv4lRDqzMNB6GClb70\nalvLGP40FP0QUpJeqWG9Y17PwvIHuDGshbzhVWeh15XwsuocJ2FBzc8DQV2sM8T5wujMwzSCQDfB\n9OfH1rACyh0KQ5aqc4EcHyNQgeyEXpDGTneexbKtebj/AsU9eN0+Qo2g+PTzjHcvcDAef0MlEsmO\nPOr60lrRgqYExh6Jb+uezMpKLv44NLvizGDSsjcnJ9gxrN6sK6s/tqtMWvp1Zf77TX4B+bBKAxAz\nXBsAAAAASUVORK5CYII=\n", "text/latex": [ "$$g{\\left (1,2 \\right )}$$" ], "text/plain": [ "g(1, 2)" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[1,2]" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOQAAABLCAMAAABXw9uEAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRLuJIu9m3c1squoDVgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAB8FJREFUeAHtnOmW\n2jgUhIUBJwNmG7//u450tVRdbcgNOafJND/AFtLnKksWdkUds1vlNZm/8HX33ozZrfuDfR3/Qo/m\n5pxNqzO5q/m73GqlXHa78F5/+620jbBb0+TlLKrn/XJb9ElA0TTs0tPQsnZGhmltaZf9/nwWtQxr\nm3x4Aw87iue7MoOi+VETWyvzNLTkOsfrLLvDtKa02c0ry3qy7wxrmrzt5cC3q/tY2AwXLQep9fTN\n07hlbDJP+2n1Js0grS1tEtDVa4a0psnQeWeZc49RhpPGRbPwouD2p6dxS6p7iPRBWlva9e6wk8wx\nBGuZvEh1Y1YxeVpp6lVFDzc0nr4CTbVEo2TSDNE60h5yurxJguUmj/bX5GinnIMfrfMqn6cVfa+L\nFl8PinkrwgJNt0RFmByitaUF5N2PDMAyk4v1d3HGzv7347IuruXOfwhEF934ag0HiR8JFmi6Zaxl\nT2gcrmaI1pbmkacgFjBt0l97bmze/fgUw7lJ6bzg+xiGNSSnLcACrQKTyjA5RGtL84e+h1s3wLTJ\nq/tt3K32B+Pqr7XKCNNFO/s723gBFmi6JVrB5BCtLU2Q+3gBAaZM7lY3SA+ucwIpTDzHcuIJRSBB\ntN8iWKT5iUfBXN0Rk0TrSHOw6NF2lhdijDJ5c31ozq5aGBPmLPc9t3TVuO+56NQcrgSLNNUyKmCT\nQ7SONGOOTvxF7l0AUyaP4l16LVzdxv9+73l6UUW4uiHabxEsTmOqJeqjJ4doHWlmJ/14EJOAKZOz\n68lJujPNv+68zVd7Oziv0Wkqsjr3MvtCMLYIZiIttQTMNoDJIVqEyfjQ0i73ZVn2kx9dgCmT5jQd\nlkWqpL6eF/uoIre893u4+0KRMQ997w6PhmAm0tAywcx+uq6Pyf9iDdEizJS0h3969CYB0yadRrkk\n7UUpXc6izbEsincfqh7tBFiFVoGZQdpmacqk65VZ7uHtjJRmqaS5MjI7t9QMq9AqsN4NOtM2S2OT\ni5tD/U20NXbO+23GrV30zc8zsSx8alhBq8DU01GXtlUamzxOt8M+3YmHJ1McrRIUFEdDbQ0zOa0C\nK04EYEbTcpip0FgamySo29yYMWSt89230jbCOiZzmZ+7/2Pyc/tOK//pSX0+Pnev05Mbp7An5+C9\ntCcHy75umyx+jFJLRMSc4KavqxttGqqP09AGWlBWbLVNhgTXPqKF7De1RUTcueNJtf1GpBUw+3Us\nG6cBDi0oK7aaJsMNIme/oTFHxJ17V3UoT6vADJeN0oBmLSjNt5omcauPxz3fmCNiSnBzstpPtBzm\naqWyURrQrAWl+VbLJD31JA2hrYqIh+JgeobKYY6JsjEaeVBaqFxv5iZjHow8iDRIU525pcd0jfV7\nEUbpEgyhAcq6NDRIW1pLKs43MpMpD45Biq0PDdJYR8QIUnKy/WeimFTHjKeESSMcoEcr+S4HL7Lv\nWjVtEnlwjMRKXToiRoJb0AGLaV0Jk0Yw2aEVeFegtVSruEJtEnlwDDdtFWgQih4iCDflS34DLOau\nJUzq4wAdGpPTttaSivMNZ/LX7398cSXBtV9Ag6+lIuK2LIL9MZO17Dt3aPf//U1rBigPbg/XF8Ll\nyhlzknAWUxDnikdejbg6a6qGK+XB7YlH583tqYJgf2zi0Voya9hVJikPpsk8nGjkwSkithgkuGD6\nLYKlcDn1GmC2MnqyTcvpcZ+1xLLiU5mkPDgNHGS/KQ9GqLs1XK7ARsPlQrkvYC2NKvns6qp943C5\n6eLJF6onX0pw8wMx7PVwOadv2meTOg/m4FKQlTy483CkYUWmWoH1wuVNnorKbPK1BDdDa9ir4XIG\n37jLJrOm7w0s3kvLpD7Z7Zh80vKDvv4x+UGd1ZX605Pd0/NBX3Z68r3z4VtpG2FtkyEOxlrg1HUI\ndMfjYE+rwBLVrjvJ/22bvlObbWk4AMPaJn0cTGuB03EQ6HbueFJtvyG0Gsx+vTlcbkqjA7C0pskQ\nLvNa4KCbA93RONjTKrCvhMttaXwAktY0GeJgXgscTHKgOxoHe1oF5pjpeXKQ1pbGByBYy2QMl9Va\nYO9SBbpjcXCgVWDKJC029oeqvnekqQNAWm4y5sEULtsjhbXAckydkFGCUCqKMAqXM5i0ST1JCUIJ\ns2sD1aLqUIOl6SJIy0ymPJgyHruAjBYuZ4FuO+Oph8sZLDM5RGtL8yajWsC0SeTBlNbZjgxrgQWi\nA91OHAwYhcsZLDM5RGtL8yajWsC0SeTBFC6btBZYIHq4tnNXAxjlrhksMzlEa0sTWlILmDJJeTCR\n9OUZ/4riKyuXrYgc5nThmoQu0UtvY9IcLK0JBEyZrIbLtBbYH1QFuinVI0F+k2AYrgXM1YXJIRqG\na4VGRYApk5QHp6ub1wIH9fJXPWExM65u/yXeCZbC5RLm6sPkEK0j7Ysrl7EWGHkwB7rtOLgSLtdg\nyuQQLf40VGgosljAVE9WwmVaC/x6uFyDjYbL5aLqCo2KOPfWJt3g+cbh8lelKZOcB4e7YGc7viqL\njekuONaKnwx7PVxm2mZpbFLnwd8qXH5NGpvUeXCxhurJ8uDYg+FTw14NlzVtqzQ2mcncmDFkrfPd\nt9I2wjomc5mfu+9N/g/+M4XZ/YcDh8PQH+5+WnfKf6ZwOJj/AEGqcAx+LgEDAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}g{\\left (0,0 \\right )} & g{\\left (0,1 \\right )} & g{\\left (0,2 \\right )}\\\\g{\\left (1,0 \\right )} & g{\\left (1,1 \\right )} & 0\\\\g{\\left (2,0 \\right )} & g{\\left (2,1 \\right )} & g{\\left (2,2 \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡g(0, 0) g(0, 1) g(0, 2)⎤\n", "⎢ ⎥\n", "⎢g(1, 0) g(1, 1) 0 ⎥\n", "⎢ ⎥\n", "⎣g(2, 0) g(2, 1) g(2, 2)⎦" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[1,2]=0\n", "M" ] }, { "cell_type": "code", "execution_count": 128, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAN4AAAAZBAMAAACspI2IAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAu90iVJl2iRDvMmar\nRM2BZb12AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADS0lEQVRIDb2WTWgTQRiG3+xuk82vqdKLelhS\noR4E14onBVelNyERrL0UCWr14iEKbW92T4JQrHpSQcjFcwJSxYstCqL00OBZaMGbIC3GYvCn8Ztv\nZiebuJRe2oHM7HzzzPvO384GewsuditlC0NwdsuMfU6F/E72Or/oDXB9e5hZ7+mc5mUM+Zl54MSF\n/RKzx15VkYlaacLM0f5qSC0SO4YQxrLvRJeQX86FvYiZBivlPHsQ9io/d2eEzSLxVwWtx4jGvqCD\nSdn7okvIbx7I+Eg+YKXXwB1gSqmGC8I+AE9kaHa8RQ8RWLoUwqRsokxoyG8QSDrI/GKlg0DRxz1+\n7s4IewQsV2U0LvwiMIO2QmNS1hYz6fiZDpBrBX5/gBUPuYZUDeUCW/O7/SKwYeqiMSX7jWLSz7p0\nLR+nFaBkiAHD3iC/MhIyJiIijVw/A4Ud9TkCnl8ENiGbA4xlJykm/W7hdClWZ2SlIgrzJ1CrIL3K\nMZUl8uYGJJaldk7sF4Ed4FaNQci+oRj7WS3s8QyPqsARzklY+FkO11RW9PEDhidqxqLIKbFfBHaI\nWzXGsmcpxn7JPGpusiGQvhKDaj1T61xT2UOkmpDYaBBnvwjsGQMaY9kaxdivVscVJaTWHXReih66\nhFK/EXckpjaR+v/vJzH262Asq/0WXAzA8Ki7VcJxKoB+YMFH1uGKzNJNxEowPKqNwHSpoMR+ERiv\np8ak7CfieX5F0MbwQXgOXGUdet8vo/u8WOu0y4ylSoiH/brOi8TEeelgUlaflzk30+Szbw5Njzv2\nJrGGZz+l3aywuczsJpZdxoanJ99iblWEeX4RmDj7GmNZYIxiPL/s+2mH1y7XbrcdFHx6AaduVun9\np18nfb5xG4yttdvfYRymlr6Pm0uRmFg7jUlZfKUY+0FsDOiikslSa0UjDEKqHKBSY+d0YwRmaA2N\niZtJ+lUx1wDmg/6J4KH7Ik7BFl8FjVW2wsR9LZPGEmUKiPklWqDrGTFXAriryp4PzYwfWwxhdnlL\nbJ9q7WD6e2QtTXjUauYVUldlZwQcOP/yoigDLB1Q0Rh9bzl1MB6B2j9u2t4fBWwPM/WoA2NevrCf\natjRYvf9CgWe6I7OKhDPFo78A/r15qDXMSU2AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}g{\\left (2,0 \\right )} & g{\\left (2,1 \\right )} & g{\\left (2,2 \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "[g(2, 0) g(2, 1) g(2, 2)]" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[2,:]" ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEkAAABLCAMAAAALZVrlAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRLuJIu9m3c1squoDVgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAuVJREFUWAntWNuC\nnCAMjYB0qyha/v9fm4uAIqgzu0/t8OAFySEJSQ4IXeCm4N22CABAF7TB1r8LBJ7EVSCkrgoy+Wr3\nrtNP+cW3kaaRhlntvKvPhF9VhrpAWnnUikbbJQuIEv1s+cGu8o7XNpLXNMjPdHVZAN+s0ioIEjhD\n36m1kUSPkVe0j4IiBGBih+WZLpGmhaUCIw2hWNiEBOuwoZc69RgQPbnasHE28G0IyQiRy0iOB2Bv\ngeQQZGLpkUNgCo5EO7kJCl0zko8uPCKJP9iUhe0R1CukXrxQ6jSTXV2gNZ/Z/nvrOgxIbgedukAm\nGZ5FkEA83rc9XkfyrM3IPhTrYORA93HRt/l3fhqq1vWsqcwvHt8iU0e3npHqHrekk2LFIK4u6WZn\nTDwbdnB57TQvLs5w8BMMyjgn6katrcOCwRm8LFuGgFZzWJVUijVm9xGJlBc3AZyyFvoyj3H0lgql\nTgRvwxb+ksHYk1q0I3XgQz2DHa2QpCwNHgsVbJExNKZRVXrljc6pKpWOxkurVdDdbGc/RUH0QU02\nf8anh9X3IHP/cqXTvfR+xP+L9GNrV8bT3r3x+RXmBIgsGaXpHvsaMb4filEn5LJjyfj9PeZE6VyL\nItSu7zlz3iE9Zk7S4lKnVFuLmgklc94j1es4nJjzHukpc94jHfju19dvkiD2PTEn9l77KSH9+drt\nMyvMeYsUOejo8Qpz3iLVPV5jzmTdt5kzs+SHObfTxoc5MVIb7cOcDcdg98NdjzDnpPU4xl3pCfMF\n5rR0KnNx75mQ3mBOxTvnOZ0HCes95px5d67K03uqyM+Zc+UTSxvpJeZEe5b2CSieSo51HH1bnDnF\nxUN55NzxTb2O15kTVTr9ckl+gleYE3Q8NIuGdM1Iie8OGdxgzjPQLVKVOXsCmoozTNbpOXN2rJFp\nItU9XmHOaXHOaYXx+V3mXOV3F0X6hzn/ceb8qT+jln5sGhN/k1GGvtb4z6gx8BekszGvLwb71AAA\nAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}g{\\left (0,1 \\right )}\\\\g{\\left (1,1 \\right )}\\\\g{\\left (2,1 \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡g(0, 1)⎤\n", "⎢ ⎥\n", "⎢g(1, 1)⎥\n", "⎢ ⎥\n", "⎣g(2, 1)⎦" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[:,1]" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJIAAAAyBAMAAABFSZ9TAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhCZdrsiZt2r\nRM0zCZwBAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADWklEQVRIDeWXP0wUQRTGP+8P3C0cYLQwMQZC\nDBotgIaYYMKRYM1hjBYa2WiCjYXRBAoLrzJqLLY0oeA6Y6MklBZS+CdoAT0WJNqQaEAJmtPg+ebt\n7Oyb2bvkBDqnYN/MfO93s+9m5uPQXfuOvbf+2jccGju3dxAujA3isOHkKyYMAy9wBribkD3j4VFB\negJcPHVcJi/JThRLWX7qQRHt/IGStA58wuVoHYMl4GqULZ9SdgWpHWTX1LQgeT68LqR4GNm3y0RK\n3VIau1myN8BB4IRSCFJbgNwi0ts68R6Rsl02RfUs2VFguYgJNS5Is0DnIgpbapiaIuErh9YfS7ZR\nUqSOFVJo0tDMGUwDkz4KP3Uek/osSPrGnbIrw6sSUr4hpcr5H3gEzPUgE+1TJj23SCcx57uyAum9\nNUMaKWELC0TyHdKwJFEJOwdcWdsikJ43pCPIVHGsztuNS9KBMsYDVzZFisxmRMr8Quu8klDF01bF\nLdJ4BXfhyFp9i+RVkfPVsnNleHIXYJV0pr0IcB+ObAj5AAXzdulNVQCqOO3MljWdmaz4CKiatizj\nozUQFc9WsRxAfeMLmChm/zCLSdc0lh+TQXsVtmy2t+8D0NJD8+F++nj7NPhNzs+8Bl6WaOJm95cK\n8Jki0wrveuk11Asb2Uat9hvoKNJYtMepAHQMwpaOAuQpUzaqZj3ZrNIwKYPsDhWJZNxS+ume4CIm\nV+rK4hPcX6KjCzzUhEuGZN0qqW08VjMJmbhVzj69riR0hXGr6GecxAPp99MDKkjIclyNqE5KkrhW\nd337Ktrum1zT7ikq8/8hNfndNSinrFO0UWLpUhw6kWOxNCtJ69RXfhm2hs7J08JitV6QPF/7pZpq\n7JycGFus5lhr4ruAbyWeVVE95+RJabGaJdbEd4NNquecnNgpLNYmaefUzstzzFT3aL0mLVbPh2uK\nnDNBsp0zZkqLtUgj2jkTpOE42YqkxVqkyDkTJMvvBKvR2xnnbJpEFTcWK9dknDNBWhXrkGFOWKwk\nGedMkBpVXFqsJMXOqf7/auicclHKYmU/2uPGOdkvGzmnzGTvlAPmBDfnnFaq0+Gd2aRzOqlOl0nN\nOaeT6XaZ1JxzuqlOPzx34eD+3b7Oh/xjd3Qff5Xt2y/Fv6FXEqfmV8HGAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}g{\\left (0,1 \\right )} & g{\\left (0,2 \\right )}\\\\g{\\left (1,1 \\right )} & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡g(0, 1) g(0, 2)⎤\n", "⎢ ⎥\n", "⎣g(1, 1) 0 ⎦" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M[0:2,1:3]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "A unit matrix." ] }, { "cell_type": "code", "execution_count": 131, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAABLCAMAAADDCbAzAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRO/NZondIrtsRPdGkQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAiBJREFUWAntmW2T\ngjAMhMurngjq9f//12tBSzYlzWXknLkZ+GJhyUNZCl3BVX5earfTclt4zlW+acPS7cR1Y6TVPoKr\nvZgrZ7SA+2YaJ7kTIDNwN/TrQbPWNbjV3+7Z9ucGkCm4r5vaF8DjEAnTVQCjTMGhoC2BH/O46aRd\nULaA/Qy+eGH4oGwA976JJlx8u+kFkw3gu58isVp+MjiTTeC5xzIYZAOYnSvvMpMNYLdcna588V6y\nBfx4xF6O4nAD2QJe7oCmfIO8ZAvY3eItPYgPC5AB3NSDv9YjvyxpvZ/C41DkOpABnAg7NA5wMvGw\n4rAiOZAanxkVkDjSsX/dgHLoMSSOTV4x0EA5BWPiyMFKoMFyCsbEkYPDllKgwXIKxsRhBmM5AbNp\n1gpm5QTMEocVzMoBDInDDoZyAmbnYgWz8gg+nb9mihJI4j6lUYHl3+f1P4gSSDQwlhMrnBJINDCW\nU7AWSBQrsBzAkDhiB9miBBooBzDjvLV6gJN9hxWHFcmB1PjMqIDEkY69NjR93TP+HVyfxw4SB93r\n2dZ0R/IMBWPiyMGKjnmGgjFx5GBNh5mLgjFx5GBNl8Bsms3Amh4KyFxLeswSRwbW9AIYEscGuKyL\nYO1UNV0Ea29QVF3y2GHiyKxQdRGMiSMHa7oIxsSRg1VdGG7htUz5DYqmQ54h43iji29sOsDJvP9q\nxR99YOnjB5G2vSR/3mzMH1ja1v0A4UooEMbFTswAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 0 & 0\\\\0 & 1 & 0\\\\0 & 0 & 1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 0 0⎤\n", "⎢ ⎥\n", "⎢0 1 0⎥\n", "⎢ ⎥\n", "⎣0 0 1⎦" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eye(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A zero matrix." ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAABLCAMAAADDCbAzAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRIlmzd0i77ts7uXj/QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAgtJREFUWAntme2O\ngjAQRasg6wp+bd//XdeCvZ07BG7ioskm5Q+jJz2UoeJVwi6O2z5stF0mXwi72LSP7bCRNwzJto9J\nvNvKWTyDFXdNP/QrBxGcMInPj250l2s5rKsEJ2zFwy2J+rPT4aXgjK34Pq6LQ+yg4kJwxlYcR/Ep\nLi0PwRkbcRebNMNTbHmi+ZXgDhvxNfbJsZt2WVf2gjtM4nHGK+JVfp1OOA83YncuZarPSnCHjThM\n3T+Ii7fIebgV3+9pbsPyclvnPNyKpxXeiA/IIufhVhwu6SN9W75ZCE6YxF3/uN0te4PghEk8Wwh/\neKOK0bzaitoKdADFZ1YFJQ4cuxSCE6YZU+IoPlSCE7ZiThzQoRCcsRVz4oAPheCMrZgTB3woBGds\nxO5rFr5cCO6wEbvEkX3YC+4wiVcDSXCJBAd8Fg4bsTsXPzAI7nASfx2/RwsnjplYBRoe/nMsv0E4\ncczFgjM2rQicOOZiwRlbcQ0sH/gBOb9er79DF+91zXxkFaMntRUfbgUlDhy7FIITpotHiaP4UAlO\n2Io5cUCHQnDGVsyJAz4UgjO2Yk4c8KEQnLERu69Z+HIhuMNG7BJH9mEvuMMk/jeBJf+3yYkDLUAh\nOGPTisCJAz4UgjO2Yk4c8KEQnLEV18BSA8u0imhVYGFtULxZ/KYHLF16INK2pw0aMCrGByxtG34B\nrgYrgI5f00cAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 0 & 0\\\\0 & 0 & 0\\\\0 & 0 & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡0 0 0⎤\n", "⎢ ⎥\n", "⎢0 0 0⎥\n", "⎢ ⎥\n", "⎣0 0 0⎦" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zeros(3)" ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAyBAMAAADfKoqLAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhCZZs3dIrur\nRHbLQ9+lAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABHklEQVRIDWOQ//+JgQjA9P+/AIOwiysRShlY\nXZwFGESIUQlSwwJRG6augqIDjc+aVOQAV9vMELkAWTEan8OAdRZMLbsAA1MDklp0fiEDgwZMLfcB\nBuavSGrR+XsYGOwDoO7lP8DA+xlJLTr/DwPDfQOo2vgEBt5/SGrR+KzfgGofQNWuV2BgQY4QND4X\nUM4fqAQcZusT0NSi8rmA5sLVotnJgMZHcQPQL8xofkPh/wGGA8xv3BsY2FHCDI2/m4GhHhZmwLBn\na0AKB3Q+MC4yGKB+Y5jMEOiApBadz2nACkxh0LQT9O4IslIGND6r3hugUVC1KApxcUbVQkJmiIYD\nWtnBgMYfLUvAsTtalkCz/2hZglwOkpjnSWkTkNDWAACNI4zVcBPhcQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 0 & 0\\\\0 & 0 & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡0 0 0⎤\n", "⎢ ⎥\n", "⎣0 0 0⎦" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zeros(2,3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A diagonal matrix." ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAABLCAMAAADDCbAzAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRO/NZondIrtsRPdGkQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAArpJREFUWAntmeGS\noyAQhFHQ29MIerz/u56A4PQgUqSyW7VV+iNOaPjECUpDRGf90YsPHSbwhOisVPsxfIgrFkfrrQN3\nn2KenKUFPEq96HInQGbgYR7Pi2bRa8/WaNas/CgAmYLHXvb2BrzMjqBfBTDKFLw3UHfgzY+boVQF\n5Raw9eDJFoYPyg3g0UqXhMmqy1wwuQG8Wu2IXThlcCY3gX2Py2CQG8DsXnmXmdwAFuHXGe5/vCi3\ngLfN9XIpDjeQW8DhCZD3D0iUW8DCuEd6Lr4sQAaw7Gf76hf+s6Tvo95fh0WuABnAifCB4AGnJD6p\neFKRMpCCnxkV4DjStc9glXLbbt4V1M9Aj8FxnLwYjW6W1naK3/kZmlMwOg7eTIjem5nZ25ZcFdic\ngtFx5E1n48r6koXE5hSMjiMHv/ykVARjcwJm02wODiWmMOex5gTMHEcBPBX8imDNAQyOowA2pRXF\nGhxY9DMEzO7lGiz9xa801tyB/3z99TUrhsTVUUWuYH7m39e5BqkYkp07OO5asPTYnKTiGOHRcbgO\nsqPz/VUFMPoZCq4ZktVorWXvHxN2Sf+1bFjAceRNX2FhWARDc+hxznq/5AGn3D2peFKRMpCCnxkV\nNcNS0df9HbXFrQHoMTiOdFNncK+v7qU62GPRRcHoOE5ejCq68mthe7z8KBgdR8Sd54o+zbv5Gu2x\ncKVgdBwnMEY13dW7SgWbZiMunWu6qzgav1myR6THzHEkYAxq+j7NaiPjLhiA/VwZHUfkpTNzJKkc\nAu0S7Q4Crt1qTQ/A+dgSJGDmOEI9+lkxNMFvbMcGDAWj46DIEFd0623oFRgdRw6u6LPfujE2+Bna\n45phqeiLe5iHuN0HYHAceY9xCyXXJ7mvquLSB8B53fdLHnDK3W9NxTf9wTK6P0SUiiMwpendwP/B\nopT4DxWtKn8oVmeOAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 0 & 0\\\\0 & 2 & 0\\\\0 & 0 & 3\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 0 0⎤\n", "⎢ ⎥\n", "⎢0 2 0⎥\n", "⎢ ⎥\n", "⎣0 0 3⎦" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diag(1,2,3)" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAABkCAMAAACVbG8+AAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRO/NZondIrt8bFiOv0QAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAPvSURBVGgF\n7ZrrdpswEIRlbkkNBtzy/s9aSWCqWUk7R60h6TnwI8Ea735owXhWxtwWv1XmrG1agcbclrqxW3sW\n2Dwcrloc+XYa9A/oUUTu6vEx5g+TyAZ0SW777s9hRXuDPSPdNEfj2wCRDehA7qq6WhTyo3eIcciQ\niWxQB7LN2Gjkp7/829xbiGxQLyIvnnxfMp8CIhvUS8jdUrs635cmWW4iG6GXkOdldMjb+i+iE9kI\nvYzs55wnq7Ilg15CFuWSkybyv1R7u0Ra/QrLyiK8ZM7m+XTzfGQ/VboswovI662g1u8kWXm7k7z0\nIrKZ3N2zz964iYzhSK6rfhmqh7x29tfdaL/dsmBDZNSRvCNO2LnIJxR5R1zV3ktxws5V7ROKvCO+\nS7XBiu9H97YdSI9zBiv+N8CCRgHIaMWLyWWNApDRiheTbUBBowBktOJvJ2P6kMzMozFzPdaN1vNp\ncxbpQ7Kw4vGc771tIwfb92Y3jSzSIxmseJS+651Pqr3DjMR1QCdD+pAsyhElr73dndJdFSeL9I78\nsXysceslkLXqvZttpy5taHMWTv9nuFqhO/nOd3KtdprJpwo6gbDaworLane+q3kOps0uV+hkbBSA\njFZcks1gz/BjqozvZSPVD6jVxvRI1q16VzXjba6ae5pqL/uSRgHJuZRHjF/kI6qay3lVO1eZI8Zd\ntbtGWes8Aupzzva+9D+sb7+zAN/l2gYrnpgg0xMh4RCE45yZ02d6iEnsQziQmdNnegIWDmE4kJnT\nZ3qISexjOJDRisexTI8jYATDQ7IwhxDlXjCddAIiPCQLKx6RmW70TkCEIxmseIKs66QTUNb0RTki\nMtNJJyDC3Zw/Pn+sFOL0hVWPjox1Apj+12fwjaE7fSMW5SWZdgKYPjzPxOlbs+1/HXwtysdk9wua\n0glgOJDRisvM9rW+aE87AQhHsu707SdaXdOnnQCEIzkxzcOGLvJhpU0kvqqdKMphQ1e1DyttIvF3\nqTZY8cRxEp3IdsG2fj5fP+XinMGKJ8hEJ3LnHkcZl21pCchoxWMy0YlsKt8s9/5L3j00EHoS/ekc\n8fhNdGTo5CPZ9JMbq7aFUyCjFY9DiU5kuzLuJp0iC3MYkYlO5Fe6aXs0I5yzsOKvt+7/iU7kLc39\n9ewPknUnL6z6fkTbDpG3d9kV23ULyaxcRCfyyqv95Nx+SGZOnuno5FeS+NvsYCSjFRdB9iXRiWwT\ntA48rwvzMGe04jGZ6ES2Nw4/4yZBJk6eOX0WPk/jONaVv5+I80ycPHP6LHxYH6pNkuMCHzcC5/k4\nTCLzRU4U5bChr672Vz2z3rlHyJv8T29vL7h/Zr1pzG8fXUL8ehu4rAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 0 & 0 & 0\\\\0 & a & 1 & 0\\\\0 & 0 & a & 0\\\\0 & 0 & 0 & 2\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 a 1 0⎥\n", "⎢ ⎥\n", "⎢0 0 a 0⎥\n", "⎢ ⎥\n", "⎣0 0 0 2⎦" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M=Matrix([[a,1],[0,a]])\n", "diag(1,M,2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Operations with matrices." ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH4AAAAyBAMAAABol3KsAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhAimXZEzWa7\n3asFX9bSAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC5klEQVRIDe2Xz2sTQRTHX3adhKxNovgLtdhQ\nPIg/aAoi3lSoehGMIN60wYO5SVDBoiVGEa2npn9BepQFQ04iirCCJy+t9eCtBjzYU1utAa3o9s2b\nme3spFtqCqLgHGbnfd/77Hs7k53ZQI//BTptff5n2DJwslMczg/0w9aOaQ6eWBvPXk0aaYrDr1fl\n+/MhwGmGTGBN6KuiZOY/KsLYp7kwn8lJ3q7QIJ2H2CYcRfAAo2G+pkzJxyYh/fU3+EOUFTvJOy2d\nj18b2iYCZP1t+esj10WA5NFItbAT9Y8VnPlVebaYHyxQxDJfy6JAPNsNCY+8EJHfbkGGhwf142ia\nm8QnWpCqoLHfdd+6bp3rxvwlxmEwC2C57pNdrtvkAYkS74mPeTB4nFsQld8pQS1HAUH9D8kkHm99\njKxIPtOAO2IFFW+X4Aoygs/BG7tAd4h4/kwV54ia4k8DPECBeKeycdoS7gg+3eiixw3mLz7VW55U\nPJvZe/VRmC/31BtCoZ4N3ZaWzO/4vh/wWmCQX9NCQ1W/FKl+LeCCNl5xyAoh2eRDzjUY//k/sv9G\nrsRfOv/x3oM5o+YzOwxhQwmFiPqLYP8wwmHBEFJeO6/ejtEc/DTCk3y7xRa8YXc9tIz8ih+rskUe\nrDWLv67YFB9/7qEVweM+YdaPWyA1xVuOxlsj98mp8gNczJKguuK+s3JCFf9U4+PvwA3zl9/nFcqv\nye0wIQXJs4rGx7LwkcKX81s7SZDduQbckkPJW6DxYm/WTweAzXoBGDDF+eUT5rDOd8t7q9OVb+0T\n8nnJ1Q3su4wR+VlW41nwBabq9/MhHgPs+RBvz87O7amo9cO1ssmteCzoQ0ECeGEL0DV+RNhq/iHm\noSDWvwzsBnkV/wLsbyJc9I/hZTMrhgGf8VAQvHXgmXAqPnlzuCoU0V+6d2pGCoq3Jn41FB+EKj4Q\n2geKFx7j92ucDu00QPiEMfiVgFW1f59f7/f7Ov8/LAFv5bn8/BMIEQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}a + 1 & b + 2\\\\c + 3 & d + 4\\end{matrix}\\right]$$" ], "text/plain": [ "⎡a + 1 b + 2⎤\n", "⎢ ⎥\n", "⎣c + 3 d + 4⎦" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A=Matrix([[a,b],[c,d]])\n", "B=Matrix([[1,2],[3,4]])\n", "A+B" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nw/8AstfkrjSh7asAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\left[\\begin{matrix}a + 3 b & 2 a + 4 b\\\\c + 3 d & 2 c + 4 d\\end{matrix}\\right], \\quad \\left[\\begin{matrix}a + 2 c & b + 2 d\\\\3 a + 4 c & 3 b + 4 d\\end{matrix}\\right]\\right )$$" ], "text/plain": [ "⎛⎡a + 3⋅b 2⋅a + 4⋅b⎤, ⎡ a + 2⋅c b + 2⋅d ⎤⎞\n", "⎜⎢ ⎥ ⎢ ⎥⎟\n", "⎝⎣c + 3⋅d 2⋅c + 4⋅d⎦ ⎣3⋅a + 4⋅c 3⋅b + 4⋅d⎦⎠" ] }, "execution_count": 137, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A*B,B*A" ] }, { "cell_type": "code", "execution_count": 138, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARIAAAAyBAMAAABiwkmSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhAiu5lmdt1E\nzatYvhcYAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAErElEQVRYCe1ZTWhcVRT+ZqbvJU1mMkZtVSw4\nDoK1RTouFOkmI9SfnU8QLYidodASKEiLgi6UDP6QWGg727abKCIhCI51Ixbb6c5dslAQZZoBcWFc\nWBunUNsyPffe8967976fCbWls8hZJO987zvnfu+8O5n7ETzSv4y7H7v6/+C+Pc/ffSF4dc9TuH8I\ndAgJz8Uq2V9+G86RlqXRnXu3akGRNImT3vHFBxOUuA1MNVHoWuvsQ/a6BUXSBM6gjmsJSsbWUGyh\nWLHW+QOYtKBIanN2K8aAjvlegpL8NtSWseRZ6zwM/F21MDu1OaxkQMcsbYT4fQLxdnbaq6x4g5XY\nHFZCrdI6FhqJSpwzwMXFj2wtOO8hu/hFBDYA4kxv/4wHGihJ6Ti942XaCPEzcXd+AueGV6sbSwD5\ny3C/RcdCzZQ4+a1YYdBXktKR2DOkO14J8Gg710OxZC6C8S4yJfxuoWZKnFeamGXQV5LSkdjHiJ2k\nJLNldBm1EuD8dpbih6rsPAec4LHLPO6H4nwvbj3Z6XzT6VxUrLSOtBfilbh1jKzRLlqi16fHWAN4\nQAdirhXH+Zdv8UzSOzriz1TsTIo9UlJsRp7/WbgHBn1dKk7ukqkkvaNkxyrJHMb4lWLbech85k0N\njNWvAjkTNjLBObCGkeVnFMwzSenos2OVbG5ian6iOdIwFsGh8va/cBzOxyZsZJLzK053SwpmJWkd\nmR2rBD/OvQ/n6KfGGsBKv38N2SdOWbCRSs6+z19YbSuYlaR1ZHa8EqP5/0p8JYOb3Gklrw2WwIw7\nrWTdQuI/xesvv43MjZlEh7kxk42ZRCcQRYZ1nwh/FBNu+XHrpCJIPipsU2JI0ut04jdjevYdE7DO\nJ8of2RRgGjk6DNgRoGSbEkOR+NgWsJwudrWDTF0Yb0f5I4tB6dcVXNNQ/lbzUWGbEkORAq1cOuEh\nc49VYyhR/shiUHqh7dzQUG7no8I2JYYkhVq5NNPChH++9EsNJQSSP4oL4+1wOzq8yXcmbFNKECnU\nyqWF3kAlwh+5Hx7dYnd+o4TQcgVKBKpsk83XciIVVhd4xwelGKd3umOxGhLNmQh/hAv1wqWQIK/2\nf+dplstvJ1C2TRZfSwWp9rNzRUF+KbBUwqFKYTlkmkqEP6Jz9OjhkKCustuQCSxX0I5Qtk02X8uJ\nNOWBLUFQinPAvZjgUQm6VKK5K/JHPYzP0x0NpGzSY8tluCmJCtsUiTeFXzv7k8AnvWNwhBK9dLQB\nWkgPYybSH5EhqFV1CnAQmKmElosfjFFpm0y+lknSL8jz5ziYyQJAC+lhKJH+iCzolM6g676Hmad5\nvpRyO0YDk2UVqVSQKleD5/eV5Bo4SAvpYSiR/qhWwQe5us4RDvS8Zrm4nUB922TQ9USWXhfbSYav\n5CXgSzKZsPeJXyr9UWF+87msj6jfJ5H7T7Nc3E6imskyaziTpD/xHqdc6p4pH2+NdrG3GhYZM1H+\naPWxt74KCeIqPzfb1iwXt5OoZrLMGs4kae8Cj8R/sYV+v99C+eS8VmMq0W6kXLKSFEbirZTSW1Gy\nfjcVUZRSeitKIv1vC7ChJDrGYZrJ8PxXZWj+03QTG92Lfz3FbPwAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}3 b - 2 c & 2 a + 3 b - 2 d\\\\- 3 a - 3 c + 3 d & - 3 b + 2 c\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 3⋅b - 2⋅c 2⋅a + 3⋅b - 2⋅d⎤\n", "⎢ ⎥\n", "⎣-3⋅a - 3⋅c + 3⋅d -3⋅b + 2⋅c ⎦" ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A*B-B*A" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKYAAAA1BAMAAAA5VI2pAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhCZzXbdqyK7\nZkQR6/c4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC9klEQVRYCe2YMWgUQRSG3ya7mwsmd4G7WsVC\n7DwrLSw2EIsIki2SiFWuCocoBgyIjQTEeDkQLAzBRoIgWqayTiNYKKQRLSyuEwQxSgJCwHNm9nZn\n3sx7t3vKdU5xO+/tP98+dm/+e3sAxAgPiCSb+rLCnjJOBPtGkDsdadiSE92fdgpGC105XTZWT2fy\neLb7A6ozl8yUmrtXdiRGorJjBDA/cw5qZkLNg+ZDdGVHYCW+t16gzDTBvBbNxUiUE2zE60hBMZdh\nGmnygrfwEUkoZhXaSJMXHIfrSEIwgyN4v4BEOcEhVJGCYELNP9hDopxgc3IXKSjm1/vrAzEvn0JI\n8TTc7xJWDB4Nl9mlh13m1adyrALQ8q7QD7fOXkGZzRVzMCD0Tp2ZzRX0EULvMDObww5m39YsJvQO\nMysPO1jGsCeE3mAutlfBsDnpYCOtNZuhY1avmcET/xAMm5MO9syf0gxrxus1M2z4j8GwOeFg4W4Q\nWSQd8nrN9OqlbWEwbRh9J8YbEA7m1TXCmfF6zVzamfiwYNiccLC+j4nXa6YXzX0zbU442FgHGk59\naYLXa2b51YWbYNiccLBjzU9xinCOvF4znUV/nfjPJG7dmRaRdFNyg9qDu5/jnUJ9g9qgRZk3YN6W\nUrHaoPYJrk7cBdirslht0CzqTTjmkS2kY7lBnW3BMe9BSFNwVm1QnOJ/N18/emBLqVhtUPsEV6et\nGyQeGjO4K3uLrWiQYvpocZ0VumHZtwG0TPY1cmBmkvvXT5p5K0q45Tt9+URfI/U0cylFnU4n5JHo\na6SOZp5PEbfTCXkk+hqpo5lZef23KNHXEMyg+TKCxVZaXvlXOwbKSdm+hmDK3sbwxNJmqUE5Kd/X\nEMxlmAXhiVPylBgTa5MrlJPyfY1cZd1P2dsoT7woG5zY64TblJPyfU3CNN+11Suc4YmV2KtTj4nv\na0C9a6P/BGr+7z3hiVfk5cQYjz8D5aR8X5P8J5Cs7n3K3sbwRP/5SaCclO9rFOcPSL1UQwg2o8IA\nAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}\\frac{d}{a d - b c} & - \\frac{b}{a d - b c}\\\\- \\frac{c}{a d - b c} & \\frac{a}{a d - b c}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ d -b ⎤\n", "⎢───────── ─────────⎥\n", "⎢a⋅d - b⋅c a⋅d - b⋅c⎥\n", "⎢ ⎥\n", "⎢ -c a ⎥\n", "⎢───────── ─────────⎥\n", "⎣a⋅d - b⋅c a⋅d - b⋅c⎦" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(A**(-1))" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEEAAAAOBAMAAACC12zPAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpmJdu8QRM1mu90y\nVKvMIHo8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABBUlEQVQYGWNggIFTQTAWmM6KRuGCOX9RhfpQ\nuUAe+zdUITQNQEnmDSgq0DUAJTkUUFQgaWBUVgljYBAyOX8BRQXHEyeggInLAQaGUgGODwzsgQzr\nE1BU5LexfWSQvsDRwMAWycC0gCF1AoMGigKG+wkMnxmCGfguMDB9Y+B2YNBPYNgMUpGxGwR6gCwN\nBrbPQDkgYF3AkH+AIYqB7TuIhwBNDOx/WReA+PkGDPeByhl4P4B4CPATaDpQDgjyLzCs4BX7y8DV\ncBEhDWR9B7qNfwIDwwUGDgfOfcwMLQyzH4A1wFW9ZFjEwPSAIekAA9sTGzl3hjzng08K4LIgRpIT\n0ADjmQ4MAN0xQyCJfbPJAAAAAElFTkSuQmCC\n", "text/latex": [ "$$a d - b c$$" ], "text/plain": [ "a⋅d - b⋅c" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "det(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Eigenvalues and eigenvectors" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x=Symbol('x',real=True)" ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{matrix}\\left(- x + 1\\right)^{3} \\left(x + 3\\right) & 4 x \\left(- x^{2} + 1\\right) & \\left(- x + 3\\right) \\left(2 x^{2} - 2\\right)\\\\4 x \\left(- x^{2} + 1\\right) & - \\left(- x + 3\\right) \\left(x + 1\\right)^{3} & \\left(x + 3\\right) \\left(- 2 x^{2} + 2\\right)\\\\\\left(- x + 3\\right) \\left(2 x^{2} - 2\\right) & \\left(x + 3\\right) \\left(- 2 x^{2} + 2\\right) & 16 x\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 3 ⎛ 2 ⎞ ⎛ 2 ⎞ ⎤\n", "⎢ (-x + 1) ⋅(x + 3) 4⋅x⋅⎝- x + 1⎠ (-x + 3)⋅⎝2⋅x - 2⎠ ⎥\n", "⎢ ⎥\n", "⎢ ⎛ 2 ⎞ 3 ⎛ 2 ⎞⎥\n", "⎢ 4⋅x⋅⎝- x + 1⎠ -(-x + 3)⋅(x + 1) (x + 3)⋅⎝- 2⋅x + 2⎠⎥\n", "⎢ ⎥\n", "⎢ ⎛ 2 ⎞ ⎛ 2 ⎞ ⎥\n", "⎣(-x + 3)⋅⎝2⋅x - 2⎠ (x + 3)⋅⎝- 2⋅x + 2⎠ 16⋅x ⎦" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M=Matrix([[(1-x)**3*(3+x),4*x*(1-x**2),-2*(1-x**2)*(3-x)],\n", " [4*x*(1-x**2),-(1+x)**3*(3-x),2*(1-x**2)*(3+x)],\n", " [-2*(1-x**2)*(3-x),2*(1-x**2)*(3+x),16*x]])\n", "M" ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAVElEQVQIHWNgEDIxZWBgSGeQmMDAsoCBOYGB\n+wAD+0cG/gMMvN8Z5BUYeP8xzDdgYP3MMF8BREJEgLLs3xm4NzCwfATpYkpgYGhnkApgYBB+d5QB\nAPogE3QldevOAAAAAElFTkSuQmCC\n", "text/latex": [ "$$0$$" ], "text/plain": [ "0" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "det(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This means that this matrix has a null space (this matrix transforms vectors from this subspace into 0). Let's find a basis of this subspace." ] }, { "cell_type": "code", "execution_count": 144, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAPBAMAAAArJJMAAAAAHlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAACGjDitAAAACXRSTlMAVO8Qq5l2zWYZcMvdAAAACXBIWXMAAA7EAAAOxAGV\nKw4bAAAAHUlEQVQIHWNgAANGZQYGk5DJQDYbqQSr03QPsBkAJYgIYEZbtZEAAAAASUVORK5CYII=\n", "text/latex": [ "$$1$$" ], "text/plain": [ "1" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v=M.nullspace()\n", "len(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is one-dimensional." ] }, { "cell_type": "code", "execution_count": 145, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEQAAABPBAMAAACg+n5CAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMquZdlQQ3SJEzYm7\nZu94IiJyAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB1ElEQVRIDe2WMU/CQBTH3yFIE8S4ObKTaJSY\nuDakDmwubg4N0Z3NxEW+gTi7sBgTEl0gfgETJ0c+AJMzYTDqUu+Od/Wu914hxMHBt/Td66//vrve\nvy0AEcPnmKjapUq30LfHRF7uig+7XEuSmT2WebkXfGLpKkmmUDuIjjIIQOkdS+OoKZEtD5A6YVqs\nMsgwJYBBqnsLkVu4SRlaRdydvCxANtVMTdAq5qw+Lo+s31/IuKRWyJt04obqaPkbOf2ZgejrLEdF\nNDqLECitjoz2m2bqjEoxrpd72C+DCHhAQO48rhe5r09fZcQsIqbCyDAq15VOJUUmOssuXbs1ekIk\nOJyFKs0ispQ1q494ZvWRrFmJG1lmVZ2QvfyYlUcss3IqllkZxDYrg9hmpRHHrDTimJVGVNUJf3Wd\n02ogkfMYq64R03dDcAzbXUSYg9xZ5OsQnaiuYnoxTmSQgqrjvmWQjTxk7sQ8BJ2Yh6AT8xAA6cT6\n4HEwCNl2507MU0EnzpGJmpcOe+nQiQoxTlSMjehrALQK5qsjgaXAqGQIqpffQUpvro4/6XbDfKKR\n9BEo/iPkfvmVdVnb/dpxHhLxAJzzcvDXEP/v0OpY/x2eRVHLqmXScRSF3wTm2UHSE3zZAAAAAElF\nTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}- \\frac{2}{x - 1}\\\\\\frac{2}{x + 1}\\\\1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ -2 ⎤\n", "⎢─────⎥\n", "⎢x - 1⎥\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎢─────⎥\n", "⎢x + 1⎥\n", "⎢ ⎥\n", "⎣ 1 ⎦" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v=simplify(v[0])\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check." ] }, { "cell_type": "code", "execution_count": 146, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAABLCAMAAABZRmeuAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRIlmzd0i77ts7uXj/QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAMtJREFUOBHtVcsS\nwiAMDOVhBVqK+f9/lRClZETPztBcSndZCLAQUFhjgRY7IwAKtSlhGwOR/hckSp3o2YqCcjrE8O4n\nqa0M6vbESkHFg8CwDahck7ToKidUWCmPnGtPOdTU3aP5UCUMhCn+QK9KrBpRPwYETsMO0oCcaa44\nSp6XrEdLhp026nhtYp9hgUM5i/H20lQtpKrB1Jiemsait/XOJy8t+li7u3xZVDxff3JTprFoqynS\nouKNuixaLfq1ZDsq0Mb407u1ZBsDT+aoGdQmGjgBAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}0\\\\0\\\\0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡0⎤\n", "⎢ ⎥\n", "⎢0⎥\n", "⎢ ⎥\n", "⎣0⎦" ] }, "execution_count": 146, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(M*v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The eigenvalues and their multiplicities." ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left \\{ 0 : 1, \\quad - \\left(x^{2} + 3\\right)^{2} : 1, \\quad \\left(x^{2} + 3\\right)^{2} : 1\\right \\}$$" ], "text/plain": [ "⎧ 2 2 ⎫\n", "⎨ ⎛ 2 ⎞ ⎛ 2 ⎞ ⎬\n", "⎩0: 1, -⎝x + 3⎠ : 1, ⎝x + 3⎠ : 1⎭" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.eigenvals()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If both eigenvalues and corresponding eigenvectors are needed, the method `eigenvects` is used. It returns a list of tuples. In each tuple the zeroth element is an eigenvalue, the first one is its multiplicity, and the last one is a list of corresponding basis eigenvectors (their number is the multiplicity)." ] }, { "cell_type": "code", "execution_count": 148, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAKlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADmU0mKAAAADXRSTlMAIom7VJlmdt1E7xDNIS4hGwAA\nAAlwSFlzAAAOxAAADsQBlSsOGwAAAFJJREFUCB1jYBBSMmFgYAxg8E1gYL/CwNvAwLmSYe8BBiAA\nijAwcDcBCUaNaCDJwKA1AURyrWZgFGBgBiq+DSK5DBg4LjKwJTD4FjAwTA21ZAAAM4UOK1ZklQ8A\nAAAASUVORK5CYII=\n", "text/latex": [ "$$3$$" ], "text/plain": [ "3" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v=M.eigenvects()\n", "len(v)" ] }, { "cell_type": "code", "execution_count": 149, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/latex": [ "$$\\left [ \\left ( 0, \\quad 1, \\quad \\left [ \\left[\\begin{matrix}- \\frac{2}{x - 1}\\\\\\frac{2}{x + 1}\\\\1\\end{matrix}\\right]\\right ]\\right ), \\quad \\left ( - \\left(x^{2} + 3\\right)^{2}, \\quad 1, \\quad \\left [ \\left[\\begin{matrix}\\frac{x}{2} + \\frac{1}{2}\\\\\\frac{x + 1}{x - 1}\\\\1\\end{matrix}\\right]\\right ]\\right ), \\quad \\left ( \\left(x^{2} + 3\\right)^{2}, \\quad 1, \\quad \\left [ \\left[\\begin{matrix}\\frac{x - 1}{x + 1}\\\\- \\frac{x}{2} + \\frac{1}{2}\\\\1\\end{matrix}\\right]\\right ]\\right )\\right ]$$" ], "text/plain": [ "⎡ ⎛ 2 ⎞ ⎛ 2 ⎞⎤\n", "⎢⎛ ⎡⎡ -2 ⎤⎤⎞ ⎜ ⎛ 2 ⎞ ⎡⎡x 1⎤⎤⎟ ⎜⎛ 2 ⎞ ⎡⎡ x - 1 ⎤⎤⎟⎥\n", "⎢⎜0, 1, ⎢⎢─────⎥⎥⎟, ⎜-⎝x + 3⎠ , 1, ⎢⎢─ + ─⎥⎥⎟, ⎜⎝x + 3⎠ , 1, ⎢⎢ ───── ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢x - 1⎥⎥⎟ ⎜ ⎢⎢2 2⎥⎥⎟ ⎜ ⎢⎢ x + 1 ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ 2 ⎥⎥⎟ ⎜ ⎢⎢x + 1⎥⎥⎟ ⎜ ⎢⎢ x 1⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢─────⎥⎥⎟ ⎜ ⎢⎢─────⎥⎥⎟ ⎜ ⎢⎢- ─ + ─⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢x + 1⎥⎥⎟ ⎜ ⎢⎢x - 1⎥⎥⎟ ⎜ ⎢⎢ 2 2⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎣⎝ ⎣⎣ 1 ⎦⎦⎠ ⎝ ⎣⎣ 1 ⎦⎦⎠ ⎝ ⎣⎣ 1 ⎦⎦⎠⎦" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for i in range(len(v)):\n", " v[i][2][0]=simplify(v[i][2][0])\n", "v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check." ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "⎡0⎤\n", "⎢ ⎥\n", "⎢0⎥\n", "⎢ ⎥\n", "⎣0⎦\n", "⎡0⎤\n", "⎢ ⎥\n", "⎢0⎥\n", "⎢ ⎥\n", "⎣0⎦\n", "⎡0⎤\n", "⎢ ⎥\n", "⎢0⎥\n", "⎢ ⎥\n", "⎣0⎦\n" ] } ], "source": [ "for i in range(len(v)):\n", " z=M*v[i][2][0]-v[i][0]*v[i][2][0]\n", " pprint(simplify(z))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Jordan normal form" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{matrix}\\frac{13}{9} & - \\frac{2}{9} & \\frac{1}{3} & \\frac{4}{9} & \\frac{2}{3}\\\\- \\frac{2}{9} & \\frac{10}{9} & \\frac{2}{15} & - \\frac{2}{9} & - \\frac{11}{15}\\\\\\frac{1}{5} & - \\frac{2}{5} & \\frac{41}{25} & - \\frac{2}{5} & \\frac{12}{25}\\\\\\frac{4}{9} & - \\frac{2}{9} & \\frac{14}{15} & \\frac{13}{9} & - \\frac{2}{15}\\\\- \\frac{4}{15} & \\frac{8}{15} & \\frac{12}{25} & \\frac{8}{15} & \\frac{34}{25}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡13/9 -2/9 1/3 4/9 2/3 ⎤\n", "⎢ ⎥\n", "⎢ -11 ⎥\n", "⎢-2/9 10/9 2/15 -2/9 ──── ⎥\n", "⎢ 15 ⎥\n", "⎢ ⎥\n", "⎢ 41 12 ⎥\n", "⎢ 1/5 -2/5 ── -2/5 ── ⎥\n", "⎢ 25 25 ⎥\n", "⎢ ⎥\n", "⎢ 14 ⎥\n", "⎢ 4/9 -2/9 ── 13/9 -2/15⎥\n", "⎢ 15 ⎥\n", "⎢ ⎥\n", "⎢ 12 34 ⎥\n", "⎢-4/15 8/15 ── 8/15 ── ⎥\n", "⎣ 25 25 ⎦" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M=Matrix([[Rational(13,9),-Rational(2,9),Rational(1,3),Rational(4,9),Rational(2,3)],\n", " [-Rational(2,9),Rational(10,9),Rational(2,15),-Rational(2,9),-Rational(11,15)],\n", " [Rational(1,5),-Rational(2,5),Rational(41,25),-Rational(2,5),Rational(12,25)],\n", " [Rational(4,9),-Rational(2,9),Rational(14,15),Rational(13,9),-Rational(2,15)],\n", " [-Rational(4,15),Rational(8,15),Rational(12,25),Rational(8,15),Rational(34,25)]])\n", "M" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The method `M.jordan_form()` returns a couple of matrices, the transformation matrix $P$ and the Jordan form $J$: $M = P J P^{-1}$." ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 0 & 0 & 0 & 0\\\\0 & 2 & 1 & 0 & 0\\\\0 & 0 & 2 & 0 & 0\\\\0 & 0 & 0 & 1 - i & 0\\\\0 & 0 & 0 & 0 & 1 + i\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 0 0 0 0 ⎤\n", "⎢ ⎥\n", "⎢0 2 1 0 0 ⎥\n", "⎢ ⎥\n", "⎢0 0 2 0 0 ⎥\n", "⎢ ⎥\n", "⎢0 0 0 1 - ⅈ 0 ⎥\n", "⎢ ⎥\n", "⎣0 0 0 0 1 + ⅈ⎦" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P,J=M.jordan_form()\n", "J" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nvT4yUQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}-2 & \\frac{10}{9} & 0 & \\frac{5 i}{12} & - \\frac{5 i}{12}\\\\-2 & - \\frac{5}{9} & 0 & - \\frac{5 i}{6} & \\frac{5 i}{6}\\\\0 & 0 & \\frac{4}{3} & - \\frac{3}{4} & - \\frac{3}{4}\\\\1 & \\frac{10}{9} & 0 & - \\frac{5 i}{6} & \\frac{5 i}{6}\\\\0 & 0 & 1 & 1 & 1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 5⋅ⅈ -5⋅ⅈ ⎤\n", "⎢-2 10/9 0 ─── ─────⎥\n", "⎢ 12 12 ⎥\n", "⎢ ⎥\n", "⎢ -5⋅ⅈ 5⋅ⅈ ⎥\n", "⎢-2 -5/9 0 ───── ─── ⎥\n", "⎢ 6 6 ⎥\n", "⎢ ⎥\n", "⎢0 0 4/3 -3/4 -3/4 ⎥\n", "⎢ ⎥\n", "⎢ -5⋅ⅈ 5⋅ⅈ ⎥\n", "⎢1 10/9 0 ───── ─── ⎥\n", "⎢ 6 6 ⎥\n", "⎢ ⎥\n", "⎣0 0 1 1 1 ⎦" ] }, "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P=simplify(P)\n", "P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check." ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJcAAAB9CAMAAACYngGvAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRIlmzd0i77t8bBwggJIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAMGSURBVHgB\n7ZzhdqowEIRjRewVqrU37/+sTUBsZjFMt2uPXO/6R+LHxmFYsGN6DJs4PF7COh7HUU4Im7ht0mO3\nDlmhz2JeYta1WYmkLxk96Gq3Xd/VRRIcCNdg1PWWzmV7PH3Jxi2CA+EaDLr696yje0M11xHBgXAV\nBl3n4ZLcxfYqBTYIDoSrMOiKg65DrFyZBAfCVbjU1cZt9ucQG7BpGhAcCNfhUtcpdlnDZnya5Fyf\nCQ6E6zDqGvyq61rESdci1+FSl87pq4/Thq1cVJe6Lo27W+77KjaWj5fFNDvoOp/zsffV+8QyDrZy\nrAZd451vu3xfreLLfbXKVbODrnDMn0Pv1Q9Igo3lMDvqarv0F0ZVViCYcVIOGHVNl9bjn12X7hy4\nX+6XzgHd3t5f7pfOAd3e2F+a5HnjfWzlUI26NMnzhi5bOVSDLlXynOuylWM16FIlz7kuWzlWgy5V\n8pzrspVjdalLRBL5xgR7rhWGkWD6/+TafdyP1mC0FHYFllsZV83+UX6PidFypotgz7XSMUieEqYx\n4Rpc3r9S1vZce8Pu8iX0qySP3XZdOv/dr+fxq20qCy+6Q7zr3qe0trH+9ce7HrJpsn/jeoRoOT9e\ngn29Fi3D5IksjwhXYegvjJazNybY12vRMc+1uVeLPESCK8Gea7G9PNdmP8r+Mi64GsvH2+602gu6\njMHUWA6xF3V5rpXXlByjX5I+buy6dN67X8/jl+fa759L7/vve5X3RL9IcCXYcy16T4Kp51q067Iu\nVf03ZcZxQVbMPaWHafay70lwJdjXa4XVnmuTIbm/9q9/RmtUK6rCzTS0lWP139fi+2iyIEuwr9fK\nUwXJU8I0JlyDy/uXr9fe8Fq8hH4J+MCh69KZ7365XzoHdHt7fz2jXyS4Euy5FnvCc6343kSVPNHL\nPLKVY3V5/yLBlWDPteJMea5NhpT9ZQymxnLMtaCLBFeCPdeKxme5lXHPtdLQ+42h7+83rXkm16Wz\n0P36iV/r/B2kNv/wUNMcdEf0a3sPv4PUNOETddFnL6NH5foAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡0 0 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎣0 0 0 0 0⎦" ] }, "execution_count": 154, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Z=P*J*P**(-1)-M\n", "simplify(Z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plots\n", "\n", "`SymPy` uses `matplotlib`. However, it distributes $x$ points adaptively, not uniformly." ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A single function." ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 156, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(sin(x)/x,(x,-10,10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Several functions." ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(x,x**2,x**3,(x,0,2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some additional plotting functions can be imported from `sympy.plotting`." ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sympy.plotting import (plot_parametric,plot_implicit,\n", " plot3d,plot3d_parametric_line,\n", " plot3d_parametric_surface)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A parametric plot - a Lissajous curve." ] }, { "cell_type": "code", "execution_count": 159, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t=Symbol('t')\n", "plot_parametric(sin(2*t),cos(3*t),(t,0,2*pi),\n", " title='Lissajous',xlabel='x',ylabel='y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An implicit plot - a circle." ] }, { "cell_type": "code", "execution_count": 160, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n/wBuIgAuBXKzVgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 160, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot_implicit(x**2+y**2-1,(x,-1,1),(y,-1,1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A surface. If it is not inline but in a separaye window, you can rotate it with your mouse." ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 161, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot3d(x*y,(x,-2,2),(y,-2,2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Several surfaces." ] }, { "cell_type": "code", "execution_count": 162, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nVU8LlwzjaksAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot3d(x**2+y**2,x*y,(x,-2,2),(y,-2,2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A parametric space curve - a spiral." ] }, { "cell_type": "code", "execution_count": 163, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a=0.1\n", "plot3d_parametric_line(cos(t),sin(t),a*t,(t,0,4*pi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A parametric surface - a torus." ] }, { "cell_type": "code", "execution_count": 164, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 164, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u,v=symbols('u v')\n", "a=0.3\n", "plot3d_parametric_surface((1+a*cos(u))*cos(v),\n", " (1+a*cos(u))*sin(v),a*sin(u),\n", " (u,0,2*pi),(v,0,2*pi))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }