{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Symbolic Algebra with `sympy`\n", "====" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from sympy import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "IPython console for SymPy 0.7.6.1 (Python 3.5.1-64-bit) (ground types: python)\n", "\n", "These commands were executed:\n", ">>> from __future__ import division\n", ">>> from sympy import *\n", ">>> x, y, z, t = symbols('x y z t')\n", ">>> k, m, n = symbols('k m n', integer=True)\n", ">>> f, g, h = symbols('f g h', cls=Function)\n", ">>> init_printing()\n", "\n", "Documentation can be found at http://www.sympy.org\n" ] } ], "source": [ "from sympy import init_session\n", "init_session()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Basics\n", "----" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAqBAMAAACXcryGAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMt2rmYlmIkR2uxDN\nVO+L8+I6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAmklEQVQYGWNgVHYNDWVgYPv///9nBgaWAgYG\nAwYGViASYACBTjDJsABMsSaAqf1gkmEOhNICU9xAzUDA+AVM8UIo9rdgHpkE0EX//38gSnOJ10Kg\nOm4DhvgGBgbmDQx8DxgY+BQYmD8yMPD8BlNAaabfQIKBoT8ATCmDSRYHMDUFTPI6MJQDGSIMDNMZ\nGNhVQ50VgNqBblBgAAC2GSI4Pf3nYQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{7}{2}$$" ], "text/plain": [ "7/2" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy.stats import *\n", "E(Die('X', 6))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACUAAAAVBAMAAAAzyjqdAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA+UlEQVQYGWWQsUoDQRCGvz28mNxdggZstDki\npBMC+gAhL+BWFjamsbFRbFKpV9ppq2muUUvxCYLWASVPYGerwWCwucysF4jcwP4z38eyDAsLZTKt\nzwUDpeQfOtgoKraKzk+LznvLnWlst/NxH+qbOwJ7LE9zd47f5SKBQ7j5c35KyVK5hls4bjsZvVMR\n/Q0Dq+5SbADhxDmBRxv1pQ3d7WCirfzD2msCqQJXJ5pBFw5a1Bxwr4qGHO+LwCp4sWakacZ8KPDi\ncoRZkX3snVI1ZhWWYiJxu2exug48w3rv9Egg7Otz5qHXTGXnLPsVqo4lCOXrxc3raT7ADIVyN2pP\nS3LmAAAAAElFTkSuQmCC\n", "text/latex": [ "$$2 \\sqrt{2}$$" ], "text/plain": [ " ___\n", "2⋅╲╱ 2 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrt(8)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = x + 2*y" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr2 = x*expr" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAAAUBAMAAAD7IecQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABqUlEQVQoFX2TP0vDUBTFz2vT2CZaHy0IbrGK\nW1GkHyCDIghKcXKLOri2m3YQgorg1kWw6FDBwVHQTUG/gLQgKKJiVzcruIhQ703y0ijFC333nHN/\nLflzC4Q1G6qeos+OxNpZxIRy/ulK6YIS1FN2xCgpJlEqBmZYhdQ3IxowLM/GJdKtYKD7ked2gsxv\nAZx2Ef8OBqIVEpobShYBnGp3YewDmdGZcQuINQGRKyyu+t8JYDLJtshbWJDAC8Ry31ayCphlYAgb\n1t5f2FnWjRYmKK5Al3rbsOkH6sAKSvLkL7yNuYEqLik+hUDqjOfpIiBx6KF6rXbwVqtNshloQqYt\nfJBs0GfQosOD4WXs1A0CeTKO7OdHwnDjhg7vMuBl7ELYaGIaj4i1KFuCIScQk/4NHsfeMcJoF74F\nxnAOky+pAqd+DV4hvYnEl/mulRkNYW137c7FExyO75HNZR5YJVyIqZH8OpNU6qV0Oh0X2dVXm7Ij\nHvjV83Wr4SMJzaUjqN+LJGyVA/Gq+CQXXSQzMu6CrJJl06IWXdHey89wIvfM7YIPVfxM/in6W/0A\nIx9SYGq6aPsAAAAASUVORK5CYII=\n", "text/latex": [ "$$x \\left(x + 2 y\\right)$$" ], "text/plain": [ "x⋅(x + 2⋅y)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr2" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAYBAMAAABJkb36AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABWElEQVQoFY2SMUvDQBiG32tqmqRpPNo/cFRx\nK+1PyKAIgtLJSUhxcCv2JwQF54zGydlJcVTRPyAGHKRUMKubEd2EmOQuiYml5Ib7vvd9n/suJAH4\nGt9R0S0usik5iwmRKqb+VQ0c1r8rgYAWVAQVVhEcl7jt2W3J4bLhFW0ywOGwaHG1iz3eaCypEoXh\nc6ew62cXV9wQoGFD+ikgXBhh+FEA1eAf2F7ZWGP5WTExMpQASUZ6DDsUZNQ4Uv58vhy0RjyTNR99\nQKZyoJnzJh6LbKvl4AYgUC8zTHbd03fXHcRGyxMZNRg+Y2eZxXu6sqt7sZNkFtWTF/D0kEJxTUHN\nwzqQZFPU/CigfdRojqbgI7Aqsms0o4exzu+xmXPpxPrJwbMtshmsCdDptl+iki0xUQ3D0BZZZ//N\nzPKsSa/OjLiZFhQXxCybkkOq/f3KpMnKh+fqpe5r5P8CnoZJkPN5RwsAAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{2} + 2 x y$$" ], "text/plain": [ " 2 \n", "x + 2⋅x⋅y" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand(expr2)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAAAUBAMAAAD7IecQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABqUlEQVQoFX2TP0vDUBTFz2vT2CZaHy0IbrGK\nW1GkHyCDIghKcXKLOri2m3YQgorg1kWw6FDBwVHQTUG/gLQgKKJiVzcruIhQ703y0ijFC333nHN/\nLflzC4Q1G6qeos+OxNpZxIRy/ulK6YIS1FN2xCgpJlEqBmZYhdQ3IxowLM/GJdKtYKD7ked2gsxv\nAZx2Ef8OBqIVEpobShYBnGp3YewDmdGZcQuINQGRKyyu+t8JYDLJtshbWJDAC8Ry31ayCphlYAgb\n1t5f2FnWjRYmKK5Al3rbsOkH6sAKSvLkL7yNuYEqLik+hUDqjOfpIiBx6KF6rXbwVqtNshloQqYt\nfJBs0GfQosOD4WXs1A0CeTKO7OdHwnDjhg7vMuBl7ELYaGIaj4i1KFuCIScQk/4NHsfeMcJoF74F\nxnAOky+pAqd+DV4hvYnEl/mulRkNYW137c7FExyO75HNZR5YJVyIqZH8OpNU6qV0Oh0X2dVXm7Ij\nHvjV83Wr4SMJzaUjqN+LJGyVA/Gq+CQXXSQzMu6CrJJl06IWXdHey89wIvfM7YIPVfxM/in6W/0A\nIx9SYGq6aPsAAAAASUVORK5CYII=\n", "text/latex": [ "$$x \\left(x + 2 y\\right)$$" ], "text/plain": [ "x⋅(x + 2⋅y)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(expand(expr2))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALsAAAAVBAMAAADsqILHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEIl2mSJE3e9UMqtm\nzbsXyEShAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACkUlEQVQ4EZWVT2gTQRTGv026SbtpkqVEEAq6\nNehFi1sbBWmFoHjQ03ryIrroQT01CIIXlWIvQg8VETyIBgpaLGJFvIhCtYoXweBVo4EiCKIE/xSr\nYnyTmd2dzexCfIfhm/fe72P2DbsLtKO4f6zK1X+sXUNJ83HajTA+JHLPI2qIg6BQBt56BsYFTwF6\nQ+iMEyR9JUF+joko6ofXYXz1FJD1XLVakJSUD0m5SMpoGqEWvnnm54pCXfYzJKIhqNSRRCUhg0Kf\n9nNrhZLtYyCo1OCO4pAw0G/7nnrFl1mXS9legvw+Eh2UVix5IzZ2LtUO/8adqdkxmxqTZUAbfXCM\nJtNDkoVnL0EobNgHrbjNxey1XdTSQR13dIuRFOuACt4A52yd3VpuERjAC/ss0C/u1rOXIP0i5pxb\nDpa1BtIKRdVClbIsTpiw8Qn4CPyhbXoGGMJW8wrQV2k3eKeXoWwNN6qngLs3J5FUqMz06BOOkt/f\n7WD2n4FvlOt1ARPvWNVo0jJcr5+p1+npIEPry1ReBfLW+WWHamEqv0ApEdpwq8zsvwT2XHF76hLD\nkaEJmx5uhewbA++/UwuzD6i8xXY8DqB/RbJnw4Hxi9VSFd7h2Vt8y1b/9HtNvHL5SAOq1wINnAfB\njyR7drWXkk2MKFcrQzR7zEwBEydtZIgIU8kaCo6wv2riA5uMGE6ijNRqrqkT02PxFnF6GdKnkXDm\nqnjdN4kcOSXCVGl8kaPA0aWn7nzr3nzr4fWfC+2JaPdHSi+pnK3yHmEPCcLgno3Qd292U1vGN1EX\nzbGT4qyyBq/3QVHz7JVWKaFSUlGW6sdpjVyO0SoV08hG2Y6YD3I01jXl/xh8ItownO2eUn5rYaOY\nnUT9A+bAupY4GcKCAAAAAElFTkSuQmCC\n", "text/latex": [ "$$e^{x} \\sin{\\left (x \\right )} + e^{x} \\cos{\\left (x \\right )}$$" ], "text/plain": [ " x x \n", "ℯ ⋅sin(x) + ℯ ⋅cos(x)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(sin(x) * exp(x), x)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAVBAMAAAD1D64kAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEIl2mSJE3e9UMqtm\nzbsXyEShAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABiElEQVQoFX2TPUjDQBiG3zRNW9Mfg3QQBEnJ\nLKa0ClKHzk51chEtOuiYxVEXXQQHRQQnKbhZBEVcREGt4uKQXREXQRAlKIp/WO+Su0uowW/oPfe9\nT/nu6BVwyxgq1Tz6/1PWjuLVEGWU9c55puJa4DwnQLllnKyI5isn9ZkTkOa5ZPOm6qgcA+uZYIPR\neMSKiKYPMwI7GXX1GzmGypZIFUtgugpIRpEfRR1o2GNf2F7YLJnEkcskLexPkrlRglMVRSddWt2A\nhStgzlTo5TLHQAcuzFkgZUNZRLZGurSmNZh4AO6Bb7KNLwM59GprQJuF5FLhxLVo8tMHKj4CL2Sb\nqAIabmiqOmjfoeCV1NMsU/HJFz1yRZ1rwDBSbwGRjob6SfOYhYQOcjCvVoHDgEgvsyI7yLuXkW1k\nK0xc13BH57LRkTJiHxlHIX5UB4qDBLyaaJxW683devNg450cncyT9vLFSxKma0wJX/yfcCRc4N2/\nj4InLWuGH95/Zi0G24qHK74R7gGBv8Ivd0pdrtwn+mYAAAAASUVORK5CYII=\n", "text/latex": [ "$$e^{x} \\sin{\\left (x \\right )}$$" ], "text/plain": [ " x \n", "ℯ ⋅sin(x)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(exp(x)*sin(x) + exp(x)*cos(x), x)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADoAAAAvBAMAAABAjsQzAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABiklEQVQ4EbWUP0vDQBjGn6R/TGpb4iI41S4u\nFengoC72G+joIPRAaAcRO3U16ORWcBEXOzl0sTg6uSp+BUUQ9As4xILW93K5NHd6meo7vH+e53q/\n5JIUiKIy5iEnva7qQnK2tpOT3uc7iiI4MehUMaFx2rBaTy9yicZxejhB4UO6GqcwxBrwKF2NQ+M9\nsCm3bstlotaAph+7xJGRbVAnxktfiMSx+ckxYJnOwV7kcnbEMwVxBu/VmznAOqYrdUPRrYcFqKHc\nKXgrfHK+gNtQblGOOSV+ExSHHs55tRmlmPMaXUuFzfZJRxeWN+HsI+AiMoHrUykz2F7McQKIkyuP\nunzRwuBqnUrEsXt44Cqwu8Nzczz+pBJxSkNscBU4YmERKeJMlJw36RFxEorSCo4iJQaFk9BFq3B+\nuVMT+FM2xtQo/7jR/MGzeXenjuuG0c74KN4Z3WIPmW+jmwvSXPqZK95TwwZbfYMRymdpZp6luUtp\n5gwDfbSmeAOqJg/WxWBP/Ef8tSRHr5Di/gBJmHmijB8tqwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{\\sqrt{2} \\sqrt{\\pi}}{2}$$" ], "text/plain": [ " ___ ___\n", "╲╱ 2 ⋅╲╱ π \n", "───────────\n", " 2 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(sin(x**2), (x, -oo, oo))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/latex": [ "$$f{\\left (t \\right )} = C_{2} e^{- t} + \\left(C_{1} + \\frac{t}{2}\\right) e^{t}$$" ], "text/plain": [ " -t ⎛ t⎞ t\n", "f(t) = C₂⋅ℯ + ⎜C₁ + ─⎟⋅ℯ \n", " ⎝ 2⎠ " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(Eq(f(t).diff(t, t) - f(t), exp(t)), f(t))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nw8A9t/K84/86Xb/K+TO4BwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left \\{ \\frac{3}{2} + \\frac{\\sqrt{17}}{2} : 1, \\quad - \\frac{\\sqrt{17}}{2} + \\frac{3}{2} : 1\\right \\}$$" ], "text/plain": [ "⎧ ____ ____ ⎫\n", "⎪3 ╲╱ 17 ╲╱ 17 3 ⎪\n", "⎨─ + ──────: 1, - ────── + ─: 1⎬\n", "⎪2 2 2 2 ⎪\n", "⎩ ⎭" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Matrix([[1,2],[2,2]]).eigenvals()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIIAAAA0BAMAAAC0vv2mAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADMUlEQVRIDZ1WS2gTURS9k+8kaZPZCJUuWrsQ\nRKWxuKirZuGmriK4cCF2Vi0qYlEoCEIfSoWC0ApSumvcKChKVHRRXCjYhSgSxYUgheLCH0gtSK0F\nG+/7zsxLZl6dB5l77znn3sx5ycsEQKyeJl2yihMPxmny91hVfxUnz4wHumJ4mg4MgBiexsAaXV6R\nY2J4smfhCuR/yQmaJwlHxXwdBgFeS4nmScJREVteAgytCM1YlLY9txdghKgJ6Ol/VqqCat6yQHgj\neoLhF0W8bmvtqwIkeqk0tSka0JP9bvdZUZmCdRk/gRxT5cpCjJ5ssBqmVsnbfwEWWTGKV8/TDyIV\nxnjOgXkqSrh4UZ5S8oYoZVg9bqFGJRNgOZ6nC4YuP53cyBGsiy4kHJCesi4k/aLIvLg5Qfmdd24d\nwiA8fVt8eCOyK0CeOE7LkWbzDwbhyS0sVSgatro5UXBYnHR9OuFJIZeISn2J+qgPMDDNB3GB8KTU\nj1TmT1TLlB8VOffUhvBDT2SR75WZFwOePDiYXZel/UxmXlQ36EEtmTWroGMqa5/YfY0gMchK9vXl\np5cehaiVgVcB+shzVnbW1el9HOBbiwfwOwjyDciNq9N7EeizLmwBkNRauwkdFYqy07sa5FurvLdn\njOT3wCakyhQxTki7rFFdPBfAT++wokKSGXTsX3wC3UlxevWdtPiW/FRNkwSeunBX1p/W2cS8CyBO\n72lJiZisaMApgHQd3mhoahZAnN6TGrVDq2EOoOQUqjrMzSDq+3Zyjfaw+mpt0d2+5mSXcX2AEppk\nDkNPlvawsjY7XYD99nt1C9/vOSzv5AFAP92ZcaVlycAZDAOfiUIbdAdwqV+Yt4riybRWs3LON7Zq\nb3BJ8FfOa8NPrR+trnuInmX5PeiwrHEb8vfPd+9yJNAapyI4VCfq8AVuJlZaGyVi898HWQbiYaxy\nFGkkCQ3t19WuWnsC334JmT58FctsTohuoRm6D139Ff4/JFMvkZB2AzzTgEINNTOkVDFIQ+jMGrAH\n8B7oqIVIDLC1zv+HfIRkzAkwROYNb2KiV2+7JomBTy8Rg8JEZyNOg6lX8Ee3qdNk/wAzsdZDyPoR\n6AAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{\\sqrt{2} \\sqrt{z}}{\\sqrt{\\pi}} j_{\\nu - \\frac{1}{2}}\\left(z\\right)$$" ], "text/plain": [ " ___ ___ \n", "╲╱ 2 ⋅╲╱ z ⋅jn(ν - 1/2, z)\n", "──────────────────────────\n", " ___ \n", " ╲╱ π " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nu = symbols('nu')\n", "besselj(nu, z).rewrite(jn)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'\\\\int_{0}^{\\\\pi} \\\\cos^{2}{\\\\left (x \\\\right )}\\\\, dx'" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "latex(Integral(cos(x)**2, (x, 0, pi)))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = cos(x) + 1" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFwAAAAUBAMAAADyykdqAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJVCLvMs1Edmar\n3bti/yyrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABk0lEQVQoFX2TP0jDQBTGv7SNNlFbUQSRQotV\nkOJQEMF/QycHRczuYsVJl04FBWnBwQiCHZwEMVQQwaU4uSmIIrgURBcHs7gUBysKiotfTFJCc3hw\nuZfv+/Hy3t0F8I0FW2nTfI5IkE1HvRa5Pi3sZu1ttkLZZoXvZ64WNJxoxl5jw3XX8qwPbiwtOpGD\nQxXgctXFsS3Cu0YGIE0clbA+e0JfTQB9Kciss1+Ay8vIaxsaapKJDvqRCpCehvoGnAvwcBHzuXug\nsJaFSr8jAzkzhIgJzAnweAJo/QCi6eeatYUtJUhYQdRgBgsf0/VHXd+xQqvVQwMIfRM3u3ffqRGH\nUkch5+CUvDvTyD7YiQuiLAaBIo6JHXBaw4uzdmSW+JU9A+0Vu9XIJV6JiVqVVxHU8jls8ogjGhBM\nMLup/BBPclrDmx2x1Cjk5FRJmTwdp6dUAemq/Mlwy2I5HDxw83VnC97n3yVg9Wicr5vdSzViXrFb\nxNl00HC0noYnCNjAE2o0fBdYALMGE/vlHK0Xoe0T//v5fgGuTlxwfPvx5AAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\cos{\\left (y \\right )} + 1$$" ], "text/plain": [ "cos(y) + 1" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.subs(x, y)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = x**y\n", "expr = expr.subs(y, x**y)\n", "expr = expr.subs(y, x**y)\n", "expr = expr.subs(x, x**x)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAAgBAMAAADj+0utAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACIElEQVQ4EY1Uv2vUYBh+ck0v4XKXhgoOLmYQ\nukb/AU9HKdIKgiBINkUcDqH44yz+GFxcnDtlsUuHZtEsDjcInQ5OENxKNgeH1t3B5/uZS3vm8kK/\n5/ne93mT9/nuS4EW4VhNaNlykluJn8EvkNh9AxlEouiMn86AbfifQuLy+C0lfi/JgSlwz4uX9wDH\nSuSNiG6ETbdc2FW5h7CfSlGwksUA37PxQu7PLZyEIY3QvpNKOtgoSsCfOfEHWT67KPdQRrbRSzQV\nul4SFmLS86HccxpRnqI301Qow6FYF4V2r4y4UZhAUaEVj1gcKRDs/DpWRry4n0JRoe7ki3uEe7wa\nDB+rsj/DkznhaqY2TqwQxYPdshMJw0Dpmix3z7VAgKv5BY3e5Ec3w3c9+hrbZdD+iqYC3ml+Q2OI\nm2TfeEx8F05Qqjzt+7GiXPtbinY0cveHf8EIdO+cfkGu68S3inL1Jop2I5MKT3l9+h9B9/2fB2Nd\nX81MfR4vms3lIA3Ib6Hm3to3MoU7hKPdS+PR9GXxlfwuau6t/XrXNU6Vdx52hzp9hTc0riTGfpWR\n7BFPYBL89Y2998xW7q39M117fBfcxGZPLGsi7ALWRlbSrosT8jctbde+ZU2Ep+FPXlfz8zRaxGfg\n8M11rBvpfUMakRNNnx3diY3otiGNWN0oKRMfV4uYu71CzdvbKq7WVPxSWoX5KpW4/oz/P8CJ52ri\nP0CL+AfrkmcMl0B8BAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left(x^{x}\\right)^{\\left(x^{x}\\right)^{\\left(x^{x}\\right)^{y}}}$$" ], "text/plain": [ " ⎛ ⎛ y⎞⎞\n", " ⎜ ⎜⎛ x⎞ ⎟⎟\n", " ⎜ ⎝⎝x ⎠ ⎠⎟\n", " ⎜⎛ x⎞ ⎟\n", " ⎝⎝x ⎠ ⎠\n", "⎛ x⎞ \n", "⎝x ⎠ " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARMAAAAZBAMAAADga9dZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEUUlEQVRIDb1WXWgcVRg948xmk9ndZKwKtg91\nrdK8qKx/b8EsPhlRMv6QIi24LQgixWwDmkKD3QehKEqqWFFB3bxY/KMRpSqLZCzUPBjbVPBBUbv2\nRdCiMU3aIpb1fDP33tmd3UAqsh9k7vn+zj25393ZBbphE7f53dhmHXukvZ7ZdZR1o8T1nL+6sc86\n9nAr1sV1lHWnJLf63/ex6lFvv9eZY7MK/9I5nYy6gUQ0KTp3WVtuL0oZbSQIl/BxlYY7NWhZrYJy\ne5JSN9xwR0tl5EyEiyFt6wrTY0jrOY6WY5KPNNyuQcua0QpSsy1xpErYX2kN0evPhyFDmuwCvveB\nx4DX21p1LxPpoD0LnDHBKYV+jNYeH30HTVKDA3iWUAmSoO5SBald45TyBjBeVJF4cT2NU+3ETM3o\nNB5RSEnpq6JnxSQVcL746U7CmNR0mcqTlDLnGylXF01mk0H4LIYGWVUDM5UIKimZ1Q5S+hqNJVY1\nkeouQyNSaEe43Pfz19Zwyfn8xoXdEjrGvx1fXTsfAFsIU4MTi9i2sBfON2dn6WfzjC3sfIHnfAWh\nmJJC5MoH98HJm5Gamq8IsaTFhDTRFcblEUnpvcCKAlxkSnCHcJ3HzF0Mlfs/cLnv73Q3LjovOTOw\ng4eAKn27DmzDb8H7vAAijRZLmS7zY/smRrx7PQyFxFGFkCa7VEZLcUtA7yFkYZdgH8RAHcCHvK9+\nejVHWT/QrSG34pbhrDznI6DvLgJPYb9/CshV6dNiKe/Qy8zidPEwMHqPECsjabJLp9SpyARwZMiD\nTSmzGAjovsZTQaZAhFHCZVm5/QX33JcS66sAPj4W6Czxsa9We7dWOyp+NLFH88xcAgbKQqyMpC1d\n298T+yTMhgOSufPg5pZhU0rBSCFPwIRI6f2H6+kKcC61r5EnFimARCMpXM2pyI3AdMDz4vtqoCDE\nykRKoktl1IC+heXB8vFnxY6lyFlitCjP55tOZfka9HODcEAcl6R7q/KMpeTyuBIwp3K9EIcF4dQp\nvaVLZSIpTh5ZD7kAPXU7lsIblvNPIutH17ZGty+P3ov8359ku1zb77JLON5+be8GOEPeFSy+zNN5\nUYjZIUbSZFcYl4cMaNPkxBPc6BBsj9PRA+J3xvTiMDazaJB/G+vY47yCTJnv51vppynrkr1k1Xk1\nyvRpakDW4cmtVX6C3kLaGyni05A4LABImuxSmUjKXKPxN0ueObHXGT//8Pj5+4dfZZ5TGVvYcUud\nUK5Vate8hw2Tj+PA2V8r9DmV1O7jx/4gzBT5oCkpmUajUaU7dtMeWINPV4RY0mIy6kRXlAC2vn20\nrnFijd/RTS/WppoZg/Ur1Fxbk2kDMWnzi7etLBHoz+tAOtCoeT1jnCmFHjCRNUFMmvw6XLNFEnIj\nQuv8I8H2VLr9614lOi2G9LK6zK8c097CbRWUazS1pNdwDOlldcmHQ+x/+kEZkWnSzj8o/wVK3SO1\nLaQFsgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$2 \\sin{\\left (x \\right )} \\cos{\\left (x \\right )} + 2 \\cos^{2}{\\left (x \\right )} - 1$$" ], "text/plain": [ " 2 \n", "2⋅sin(x)⋅cos(x) + 2⋅cos (x) - 1" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = sin(2*x) + cos(2*x)\n", "expand_trig(expr)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOIAAAAUBAMAAABi9fzgAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADWUlEQVRIDZVWTUgUYRh+xtl11/1z+jmEB9ss\n8lKxUUfJpVNG4RBhRELroUsIbkLZQXLPUiSB0Q/FdslDhUpBPx7cBPOQlAVdOtTasaAk0iSS7fm+\nmW9mZxyLPpj9nvd9n3me+d75+GaB4KGVrXzKCK432un54HJVVinJlJDTmvZk7XpbyQacNijYpYBn\n1jJ2WLvGE7lsKq3fulfFlOtAZNkO2/MqD4wreEIBzxxXRuExTz4gGEc4h4GCXaHcKeD6al4qrXKR\nkkLV8ycn6LdRsuSkPIBKtSbqhuwk5W4APVkPRwQxtQaEFdfDueNEx220liOV6oqo/WHTKDdpOo4b\ns45Og4PwxIUO0ooOjBcsuJYjleKLrqMlN2oChz681FpzoafbZruFwhSvzhebZkpAk4iP9O1EuH+m\nIHgME2kgPNt1kS2tIRRDOfqYUok9W6yWi/7k7RnEEM8h1oLNoqH7mMqn7sfGgC8MtVtoMw4aaJE8\nQC8Dx/C5dA9IkSKG7ehnCiWOy/lquVgOiA4jAT0HfQj1ZQAPgIgZWUzS/T3D+Bg+ZkeA9gOCx0ee\nA85iwHxDpyJjDtvRzxRKHHc9crJtoy0GdDqOob5ExjWuEfEMEdp5nUwDoRWgPi94QF0BMPGQCKEF\n/kQmJp7dnJjIrWYKJdn6KjnxTtijye/Q6ZhxHKlfYkE6XiZKLjOTETzLEfgtytKRs71GP9NyFNvC\nlXsLzYBm4ltBdx1lL9qz5GGQl7PGLYJndRUhueOjRdY5bEc/U3Y1mcY6PnpW8AYRSiNhCH5tWXcd\n+b6T5mskTGvn8O1g7go3wCXBg9w57xILmF61c/xMuXP2A89duYa+3tOUH4ZusKWqq71Un2tFIx+q\nmZd2GxGjLYvHksf3lkZ0RV8Qh3RNnnUOe41+JqikjfRtL7pyk5XKL+7VC6/Oh3qWjvYsHW69yvvZ\nyo7Zzl1lwke80LHjDLTmcwXBY8hWhrunp74SxrP84bAd/UyhFK9UKkWPnHWL59c95aqOlyqGe8qp\n00k5VpEkdJVkGCzH0v+f5GHD72XFrpKMI6VgGrBbFYK/VrrS//fXylGSisFyouR8kb03qOdwvsiO\ntaqsmh0lWQmWEyX1XyGlFuNTErtYjHlr+suvUpIUyv0B8BX0hVajoPsAAAAASUVORK5CYII=\n", "text/latex": [ "$$2 \\sin{\\left (x \\right )} \\cos{\\left (x \\right )} + \\cos{\\left (2 x \\right )}$$" ], "text/plain": [ "2⋅sin(x)⋅cos(x) + cos(2⋅x)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.subs(sin(2*x), 2*sin(x)*cos(x))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = x**4 - 4*x**3 + 4*x**2 - 2*x +3" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOgAAAAYBAMAAAACFaxSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMpm7du8iZolU\nq0RaI+fpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC+0lEQVRIDZVWTWgTQRh927T56W6TxUuRUgxR\nehNCBWspShA8eWgqNoeKuAfxpHYjhCpFWkF6U3MRtIqNimK9GBWs0kNbEEVQWr2UCsFexGMa8Bda\n42x2Znem2dmaOeT7vvfe916zs4QC9UfNfawH/RBDSqqZASknEkPIiMAWk1aRCl7hk5QTiWN4IgJb\nTB3y0F7057fYdujGvmlWHnoAU6uOq3+jXPbnRbZ5QR4KLOqiWjqdM6WUB6EqfqE9Hhsc1Jx2hs2P\n93rmpMPVNdMeoYeYSnVNbejW7GnGWTVgkA/79M+zrlaVJcytCgg3KKZH6F4meMAaWiNpLBY47Lxh\nD+RGp3gcaNMRHrdJ+/MtN2iDgz8Km+DQBBVEi9GUwIXWEUtSkpTIPYMOvXikuzjpwkm0fecRPpRs\nsjt14Mkuqj74/g21olz0KnbEXSu1yaDD4dEVF7a6popv6MONeVvvhBZZ6LVq1abgcMLjnSahysjK\ntxmqEkuggvaLd0ZNwV3JmbjBPRRm3JrvgoyD0uc6KyYJ7cB9s9vFuK5cVIqtPYG4DVF3VRvHGCdi\noe3ogoyLPB9wN1SQ0KeY09+5GNfth6qrFS1vQ9T9dkscpzgRCy2SUBkHvFzFtj3W2YXXVqhO1M5R\ndlpMd8oCWtJQLIF1niUS+xKJ3aTTwyZ+1TAB1lLERsIRYfgSW1GKtqfjwQi75qwSozcK560o6838\nW02/aQesv92bi+QRXGfeWqn05YoJwYNxgJbGTaA/xRD2HI8gNM4wUin8oVT6vQxvLlbhQslK2MBC\naA1ZzoW15FftgqaPIURfVRZ6BsElpiGVwcAE4M2RkMAfbiVmRNeDa5ECB9E20jd7PFmeH8YkBZh7\nBmVezmDgJ8g/Al5cawGLzi0B6vDG3eVs7nF9Jpqq1Wqyc6R9iCUw986ZE3lOz2C8qH6GhPs6eJbb\naKR13MnNcceFa6Afx239b7vdFrbFlb/8CoVrkB/H7zTcBwpB7n7EdT9OVDY4RUeOSjf8uH9lz8aX\nUT/0AQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$- 4 x^{3} - 2 x + y^{4} + 4 y^{2} + 3$$" ], "text/plain": [ " 3 4 2 \n", "- 4⋅x - 2⋅x + y + 4⋅y + 3" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "replacements = [(x**i, y**i) for i in range(5) if i%2 == 0]\n", "expr.subs(replacements)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANoAAAAWBAMAAABUGZ8nAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACrUlEQVRIDYWUTWgTQRiGv003u8kmTZYoBS/t\ntoq3amkE0Yt7UHuSFu/SNUpRBBNBUA9CqFoUQUQvLvXg38kfmosXEZKrgjTSQw+lqIgH6cFEBSEV\n19nsfLOzmcx2IMw37/u982T2D4CODBbiXFoxRZEq2tpHqRdjLEl3HKwM1qTB03BA6skNpSynOXpL\nGrwOy7bUlBqJESkNIOZsN2B6Rrqp1HgfRxtuSHMA8lsgDzkxtMQ9eQ5gPs7s7+m2SPvAWsUrmW2i\nqbGKKsfW3qIXmY/OvcF1AUTabTQh22ElLVI1VK5iQWdlAsr97qTahKUK7Xm1/mm1J5bYoMJwQ/0T\nlIaFPXuQlnSSDRS784AJuc+88iRYJDqQrzJ92mRlUEwtUiFl61+CktHUK0h79/xFNJirwsBffitK\nS36Dkbuo6/WDWNLZQVq2dMoONEbT0kj74XnRXLrdn0a6/CtZ2HlktxVN+CvdJrQej9EuEpoytu94\nScwRJdXmg/RsAMoC+Tn6fIodMUwXYFHwkKZYhDYEl61bYT9XzTr8pkhTz5AvqmZqbcPmemnpEFqv\nhzQNCO0klM1nYo4o1yJBpAGcnwHFT+LYcdMfD8nSaPhn4z3NdR98d90JYr70dZM0sBEGyXeuGQbP\nuu4d170f9OX8hy1vsVBYDEF3s6hHz6Y4wb/4Gbbz1bi/CIP0bKoNGf+1XW74ds94Wiz+m+z1KM0o\nFg99tSAbedBZ3mjCYT5Iafm2TzPMvZAwWS9XbAge3jeAXA0eJ1owyrVjST54u/hNKY0kUr9h9lEd\nprAzMm8KXkjL15KdTEutRALdhbowt1LlN6U0vQJLFmwbK6z2CQGc8/b3eoym1X9dmBwdvyTCIO15\nXpUPUhqcWH/dpz1GYrSYHsFCmmBsJSj2Vh19/O2c9h/ziKeQoRfsGQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$x^{4} - 4 x^{3} + 4 x^{2} - 2 x + 3$$" ], "text/plain": [ " 4 3 2 \n", "x - 4⋅x + 4⋅x - 2⋅x + 3" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sexpr = \"x**4 - 4*x**3 + 4*x**2 - 2*x +3\"\n", "sympify(sexpr)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAAAPBAMAAAAIUwCQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACh0lEQVQ4Ea2U30tTcRjGP5v74TY3V9BNUQwD\n7XL047rhP9CuDDNQpFZG5VBoN5G7L3AhRj+IBoFdKiy8LIsgwiCJCrqJdVNEBllpmdB63u/3aP9A\nB7Y97/O857P37LxnhLoOFNARfT5WxRVOQSQH2/ceJDLTU6lYBz52yabZK7fytGChED0XstBH/JdV\nYTjnC6cgmSc6xEQ102q11uBtcatXSWByFwaq4TlIT0N/M3QVTsINA76DXb5wCp7liRVJ1ML61qHo\n8KiAQa8SZ0LHFOynLU9f9yqMwDDchNGCgONwzBdOEfqcJ1En9iMOcTW8END3WhKYexq0r+hkoQXc\ngAl4WPTAyUNc8oVTxFN5UqsCqvuKXgb0vZYEZrlBW80KA0a/q6tgxax6ibU+NvWhwqv3/rSkvhkD\nGFCHeoNEZibboPP+xX3ybcJbmrAq3f5Tb9IbdooVpqILHjhZ1hU3FXig4iAx8zgNBh+QWPJAu15r\nTQ7pjfTp2eu+cCqOB87IG7TcA9UbJGaWDbhKeNoDUwvpCbHpsn4+0LGuEVU49coDwzlFi5Z7oOIg\nkZkuCNhZJ6O9s0tm+clEQTInCdqgI0uuMPW67IGPLdKyBUD1RoNE5lEETM6R+RMAtTCa6SWhrLb8\nq+5L04odpr6USqPXFkjn2EZUax0AFe/2iZlvSqX1s7Havwlh3j1HHQLahG3ZSI6OrFOQyEMvPCLy\nbRPoYp94kyki+g1rfsJP2cgK7KyMnWFwjstFln3hFHTmCd2rdNdJbwFdr0sCE63eKfqXPHCxONDU\njW61ftuNjgyPVX3hFPHDa82UHuM6oduasPvOfNPHLvEm463zxLtO6J9gZMOUbeT/Pv4C2eDxBXE/\nh3YAAAAASUVORK5CYII=\n", "text/latex": [ "$$2.82842712474619$$" ], "text/plain": [ "2.82842712474619" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrt(8).evalf()" ] }, { "cell_type": "code", "execution_count": 27, "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": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pi.evalf(100)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAPBAMAAAC/7vi3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADBUlEQVQ4EbWUz2tTWRTHPy/vpa/5nRlBShcm\npksRQuOATMU+UARlGMLMVjAFxUVFA+pOsOhiFhV8jIOgG1MQpVYhupFZDIaOgyjVBhciLjRQdOGi\ntRobbavx3Huy8Q+YR8L53vO55/tOzrsv8OO2nzCXjZsWthI9N1QqSeI3yZUegrM43MQZ2hGq4kLp\nrtkvOFYaqSqBaL6XpLRQVsxhBkKTtTFPsup1u911SUziXOVySAQeMBjEplXF8pwOLOZP/LYS6K9L\nTmrY2IxUVHk1XCNt9ANilYjcqQHpGZI1knlOwEUewayqdIfMhMUsVfmkBN4aa6nhDgmRRiUa+MuS\ntdGt40y44Jbhr3EyFdx3jMAAKzCqKnWLXMViXjSdFSXE9hhrqUl9lqg40yDVEW1jai3rBrJ4Kd/i\nOLk66Y+8us02Zw2WykYJsQMRLJffVoLbZ6wlmaiZvFHk8qS+itY437a1ss0Lx4lL119IdncFXJOu\nm1bJcz2rWKoGikrYa6xNTebQzq09fKVI9INs0uh2x0SbzjcxbqbR1xbPlaxMg2OBVcS2b1YMF870\niNMy1qYmd5B41Squ5HvWNp56vtqUXyD2RdnGUY538B+fv0Vfyx+tWiXs56ZiaaJHXIy1qcktE5lS\n/N1AvAZLU/BGhlg21t7i7x/5hfRqll9fj5ZVQXxKsdzlhpKTxtomMxN4XxTL4/N7j9HvxEOispiE\nDRhrSC4zDQeqIuezVsVCEh3Fl+CeJT8UjbVN9lfw2orlEHr28JloJnEfR16YU3Nzq09k1ddw3skN\nApFHVGWWxVpxN6vWR/y5ufmbLZtM1qRrxV6NSEUKbZSu+Zvoe1nDDN40B0LTdSLcF0Y/q4rX6Tdn\nd8Z+ziuRIdW1JiqzrinmDwbLcvJtTI3htfDVeo30mHMQnsk4eZPdGKjyAk63pFZO+m78r0rkvbDW\nkvyXwapiNiz+B+dkuibuH5JDGbsuiJHufYYLTfnjmZW/J7cgwCqeFv7p4VRhS4/g3lsPtMYtiI+t\nlvA/Xd8A9aQm7wPt4twAAAAASUVORK5CYII=\n", "text/latex": [ "$$0.0874989834394464$$" ], "text/plain": [ "0.0874989834394464" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = cos(2*x)\n", "expr.evalf(subs = {x: 2.4})" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAPBAMAAADjSHnWAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdiTIi\nu0T8UsK3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdklEQVQIHWNggALmqK4NQCajMpjPLsA8h4HB\nJOQzmNfEwLAcyGCD8K4wMMgbwHlfGBjeC8B4zF+BvAQYj+cXA8P+BXAeUA7BQ1XJADRFHm4Kw10G\nhn6EDUDbw6G22xcwcAowazMwsDp992DgdGBgXpayASiHDACNXiNTPqhPAgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$1.0$$" ], "text/plain": [ "1.00000000000000" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = cos(x)**2 + sin(x)**2\n", "expr.evalf(subs = {x: 1}, chop=True)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ,\n", " -0.95892427, -0.2794155 , 0.6569866 , 0.98935825, 0.41211849])" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = range(10)\n", "expr = sin(x)\n", "f = lambdify(x, expr, \"numpy\")\n", "f(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simplify\n", "----" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAPBAMAAAArJJMAAAAAHlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAACGjDitAAAACXRSTlMAVO8Qq5l2zWYZcMvdAAAACXBIWXMAAA7EAAAOxAGV\nKw4bAAAAHUlEQVQIHWNgAANGZQYGk5DJQDYbqQSr03QPsBkAJYgIYEZbtZEAAAAASUVORK5CYII=\n", "text/latex": [ "$$1$$" ], "text/plain": [ "1" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(sin(x)**2 + cos(x)**2)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH8AAAAUBAMAAABWoP+5AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABt0lEQVQ4EY1UsUoDQRB9l1ySi5doVLSwOkH7\n6AdobCwsJChWEjhBVBAhFmIhYipra7FIZWsasbDwikCwCKidXRprLSyDcWZWvSTMBQdub2/e27dz\nj50FLA8REcsZYCwCB6YZGVfhifUF4FkgK68yOJnlLZY0OPOEhyrqAtk/hfTxnCsgUwBixT5APrMB\n0hdwy/wxqxHQLLUpfwckVf20j+wXMhe8dksVQIoFHoFJFbbbLIAVAi1fZRgBu4ojghunUydSbTc1\nSTtsUCJV1BlSQaKIebKiFttNFroX8/ymBszQO+7pDBGIFbAHuIHbdnLE7YkD+jqnJ1nRGSLg+Lgk\nfdh5WVvf4ViVORUHvNOTroaMzDITtluUNh4Mf7AAMFLmsSfYmz8BjSEVkAD9AhFbPHaHU8QocE0p\n/gWNIQJDPpvoBGdIBUwL4w04DE3UGL8m3pLflUX0NYy1f1/ygU1SdMkMhWE8SNS4yuZxY80LN+eZ\n3el0fID9pCo1RuL184V4rYijTAspzCGMOMrCoHOsN5OgA5vJMKiZMGem2mjaOZ7TMMlxO0dcKIIb\n7QEXimhbnpCV4V9X2jeotmLj7Zf/KwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left(x - 2\\right) \\left(x - 1\\right)$$" ], "text/plain": [ "(x - 2)⋅(x - 1)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(gamma(x) / gamma(x-2))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAAAYBAMAAABJvX+/AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACj0lEQVRIDX2VP2gTURzHvxfvLvGS2COCONW0\ngltsERG63eCfSQwdnERjFBcpdquLS6mIQzE4GV0iOFXQqLM0q1P9M4gUBwUHETQpilqEmHt/8vu9\nu3e94d73fb+f933v7iAB5NV8FyqVHvzNN2nT4iy8tHZQdXmx3LWsk9ZlzGVmLPCjXS021ZJVlxv5\nvrZT4wo2opSZNgpR6WfahVG9w7PcxJm6ZXnSKtTdX0lPzFn1ZM9KSPNpuENIUTAgzRRV5+4yOyWX\nU47VKFRtNq9mjyVQ98rVjl7jv9aKj5yQ/gKPSbPq0jbZsTqN4Ld2bmhhjJwQQd56GGBcPdlzVWdQ\nlVUzHfxRpV7D6ykZDxZCpmdxTgpNiBlVoxDlP5nE+brzVzp4tfaYf33dwQgBlu6vPTM7xIyqUWpe\nipLE+I39GA5llkmIYM9w2E8So7msrhw8cagq0/iuTwrsb8CZPjrflFnlLVz5uBaCQgFrgmynkV8u\ntGRTfNcETq6G2Ifr1dsyazxBTh7VQlAoYE2Q7Yf+IIhkU3zXBOB/wUVcCx+JzO18QLErZJpgISeY\n7WC3XBznfrt972u7PStYfA9DPJASDj5joppB6FCw1GHY8WK69EmPA+sdYEsn3gAbPTGxEBQaBLfV\nYlWnO4ZhvEvpn7JRbuGw1BaCQmMXsoNwBrlQd9F3+QbciR6OPviUzIqzeGHuwggKjV3IvtBZxyna\nZPz1lxBsedvFvrsow3LXS/w6MIJCYxey905X3qsig/A+btadI1O1JXUC51hN/UfpN8YICo2OhK2a\n4kF3MEvJ0VsWl5XQYYIwbNUTD07EJkzO4UBdTi0EhQLRRMJmbVnyFp5nRUBGmGFn92C+1stOM8Kx\n/R+eeMRmL8OYPwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$x^{3} + 3 x^{2} y + 3 x y^{2} + y^{3}$$" ], "text/plain": [ " 3 2 2 3\n", "x + 3⋅x ⋅y + 3⋅x⋅y + y " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand((x + y)**3)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIoAAAAcBAMAAABMljoJAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACWklEQVQ4EZ1UTWsTURQ9M83HNIlpUXDhplNB\nwYUQ9QcYMVulqOCmQgW1KiLZlCK22OJCEcGsRTArXUkjKG4ERygUkSJ+gLrLwpWbRBAsEqz3vvtm\n5r3MDFgvzHvnnHveyXvzEWALVT45vQV3lvUpPmW1/kH/rj1n0RtP2ptJKU2p1rR6GRPtpOFJUkpT\nckGk3othpJV9gg4PqTWp1dNxdzaGMbpCcEdMh9A2uQnOINLLUxE0wBzhIwaPofcAqNQVN5buiQ2C\n2IYJwE2NXz/DG3ihrKNLaqKh1Cl1Bd+SSWwFHwXZtqjxWOSUN4r3glD+dvumxjoFypavYWdosWfV\nzrVZ3Bd1Hm5uamylFFvgW7O2uOt6M/IqID+iTnuKhMr8+8dyPrFZKaUBDpKl484W6tIOR5XiKvEQ\naW+xt3ku7NFspVT/4CJQDsoDb+j2qBRvhhceo+slXgXLTHRZKc5v3Ke9IFdT3dULXMcZq5Rqn+F5\nugIcZSj1rNG41GhwuNicDU4Bxpo8mmWkKDt+mV37RLQXOhHQ61oeIiqlNMOySqGzm2WdqPqD764X\n3EAxME06xa2z+JGuu8U+FpjoslLoGT0HVpYOY3vY17PaS77D7Bq9tBsjfcdnostKcVt4BKzPr53w\nw77M+a8/PwC5LrOVAJXPC3O7pSOjThEbvbsZX4Ayy3s92jbXWylCcs2Mr1Ha8rbKueyk1yZ9FwAH\nTMHC+p+h2rLUJNlPUva/1Mi4rPiSXGgpV4k5Pg2pNanV1dRuJLrqSUY0C3hTWR2lZx/GXnbHpkNs\neoj/N/0Lr9SFHhkL9u0AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left(x - 1\\right) \\left(x^{2} + 1\\right)$$" ], "text/plain": [ " ⎛ 2 ⎞\n", "(x - 1)⋅⎝x + 1⎠" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(x**3 - x**2 + x - 1)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUUAAAAcBAMAAAAErLDlAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMkS7zRCZdiKJ71Rm\nq90icBAQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD10lEQVRYCc1XTWgTURCepE2yadK1qCcvyc1b\nG/DiQTBqRS+FPRSqBzFQfxAs5NIWBWmwV7E9+HcQLIInDw2KPyhoDyIoIgFFiwqKqC0qoYLFg4c6\nM2/f7ubtbJOWUhzIvu998817XyZ5uwnAOkZ68Og67ra6ra7A69UVwka5rq0+LydWzsbyqmYechWF\nml1TJOiuTwIDiBXkAlumV8Nucos+w0S+tfp4jXRWDRRod+SyNfS419vhccRmnkCDqwTQIzA4rmlj\nZI/WjMEuO81WxHSy7NFzHmoCbHoz5JGAtRihZo/jEckIelbkJ2g/jnTJBU2HFCnJIwEuy9wIF7HH\n/WEeGUkOD9BJvyi/5LFPPaQBVZlBnLWALHkk0FEFODQkNJM8ZktmPc0leeLNRwffcFnS39RkfDLe\npfA9NagqnW7gfuKMPAKCHC4NqQiPdgWT4ZDkMIYLJabCYoh5i29+eJt2w3A9Alcpyr/SSjCIL/aI\n4DnlpE2pj+cpGQ5JrnbbHRZDdkqT00tLLmzu8TQq2SOCI1QlbUoeR/A1cObsqTKJ/JDkyuMxX+Sh\nZBEbPDq79bLHtNLHHmwme0SwjSqlTcnjDlx9MjtnF0nkhyRXHp/4Ig+1FQAOwsvyF49pxWOuy/WI\noI8qpU3J4w88Bk56MVMhkR+SXHl85Is81F4DuAjXnPse04rHibzrEcE3qpQ2JY/XsY/Qjn3A6K9T\n7CIoyZXHHKWNsEsADuzx2Qu9vd97e7k5qspPMeIzM1HVHqvL9xE9AmwoG2us0CP1EeBPwyLNz0yw\nj80+a7w7dTUsj5PoPnabUpyzx9ivhkxzj/QLic8MgldUK21KnzWemYwzBimHRH5I8ugz01kAuJNa\ngGF/gRbuj8FzTfch9ni4GFgDIXnEp1hPdSeca8yIcuXxBCoTvxvlqSmI/21bsGYCdLCPpl6tRPdt\n7iMC8pt89/sD2F8DayAkj9344BsdODnTmBHlQ9N9KOMjVW9se3wREm+HR14EF9EeucrQq5WCz5mO\nvK4N3huQI492RSfDoyFngfWJBvNWxSeP895Fe2TC1DO5D6/cRwTJSV3oAUWQx2xJJ8OjIWeB+k2R\nNsT0BTDiQHBu6imXoIc8eSQQmyIKI1FWo76SR9iuZ6HRlLNA/TYbMMRbjLk5NfWUz6I99sjgvVuS\ndUc9sMdxPQuNppwF6i3NGOLOqkEYU1NPabsLL9RHBvLvUvV9BEuqpzXEiPivkCiK6mXJZ5Qljwwy\nJVnMfZRTK2XvrrQArAKVoEcF4Ja8gr12/68zeXmLaDbpYK67XgMG0br/JvMPTcH06TjLwTUAAAAA\nSUVORK5CYII=\n", "text/latex": [ "$$\\left ( 1, \\quad \\left [ \\left ( x - 1, \\quad 1\\right ), \\quad \\left ( x^{2} + 1, \\quad 1\\right )\\right ]\\right )$$" ], "text/plain": [ "⎛ ⎡ ⎛ 2 ⎞⎤⎞\n", "⎝1, ⎣(x - 1, 1), ⎝x + 1, 1⎠⎦⎠" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor_list(x**3 - x**2 + x - 1)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAT0AAAAZBAMAAACx/+Q6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMnZUZs0Qu91E7yKJ\nmaurDqYVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEAklEQVRIDb1WX4gVVRj/zd69s7N31usmBCWk\ng6Yv/uFSUVAPu4gPgUkLMRgodt+E3HKVMkiKCxFBSt3qJWRh+ytECPMQbSjCZclA3NWLPvSgyBoR\nhAi7Ki5b2u37zpxz7sw3Y9PTPQ9zvvP9fr/v++05Z/YOkBpz79RT694uCrsPRdWx3lpKdivu7kXO\n30lFb+Pi7l7TX+6tp2S3/9O9dDep6HVc3N0L2JM/yk8aO+Kp8PmDZjyAXwDb8nF3SLrzlWXMqWja\nrKuRifR85teDOkqI4E/oZIav8gWw1tIUd8/QnXuG0t9W0W6zdsXr7M7jYjMGuyKgHGmB5MfpAtg0\ng+7+H/RJfEJszWPdjBY/Ec/VOipf6FRi2mljw7cJDrJwKUgR9CLunkM3ZOelJw9T7JntAF7VkPZX\naaC6aNjd+agNDd8mOMjCuf509yzdf0iXq3Q6CxT+pJc0lfVpan/lu9afFdHr1LACw7cJCnLgXH+6\ne5rurN82Nv0PHj65amtgim6hwF1341M6rBXtOKn90cKj/0BC1EekJP+12ctwZzY3seqpDaSQMKWM\nP/fqXA3j686pinEnQd8HNLAX+CDw7U/HG8Qcx/PB+3QVx2JV199UCxCigdEU3/8aq6NHIhxyJ+CR\nXMBc0Pg7VXO+d45iIFAVGZH043UEeBd4G7gT48B7FPyCi/XnqFAjTnb9fUQJIfJqKX55DCPDx4C1\nj55AH7EFzAWNvxClRa8FZ1FVZETSvaVNYH9vArdiHPiOgjp28dJZoMfZMPwwDGmTaagDF6JKM8U/\n0CbdbWBl6+NDEUkEjKEwfPnbMJynS3Gf4LU14J6qSAsaabp7ttNmf28Jf3qp/JHI7h/fTQgRV0zw\npwLaoGXyNzH+ChsQMHP1/g3yloyQeklVZETSf0T/svTH50t7zs/BBj+7/kptnAaEiA8wwbf7d6WO\nF6m5gLmc9mf3776qyIik08b8Lv3x+/F03wI2Zt+PxwC6D0LEL0CCT/cPtZPA1GcBqgQJmIobfwgp\nrLQxuKwqMiLpz9ZxhA83eb5ztG+3Bxb4K2FFiyV2//xjs9cagBANUYcE3/8GQ9HqYewpncBABAiY\ny5n349QozjtfotxSFRmR9MltLzTXdP5Y07n+zF/zCgc+pxv228Yt22lZHo5z9PfxKHc6nQYgRHQJ\nUvzXL52Hf/VCc/Dnx8+RSMKUMv7cm5sjnJn9U1WkPI8cegzYZ+L3zfyUaH+Wkg66P2CGn8KzsPGX\noplFlm4QPed8H+wXlPRyp13O2CgRZGGXjv2BI0uX1CMmkf+9ZFA78y1TI59fANsyOiimTxuJpZpE\n/my/KPP5BbCsWUznN1eNHXoumuQXueAXwIKd/L7/F0MDWufYTKFcAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\sin^{2}{\\left (x \\right )} + 2 \\sin{\\left (x \\right )} \\cos{\\left (x \\right )} + \\cos^{2}{\\left (x \\right )}$$" ], "text/plain": [ " 2 2 \n", "sin (x) + 2⋅sin(x)⋅cos(x) + cos (x)" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand((cos(x) + sin(x))**2)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAASEAAAAZBAMAAACMbYVcAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADxElEQVRIDb1WSWgUURB9PemZyWyxiSLmEscF\nb6NBRPEifXC7BAdPnnQcRRAPiojLQRjcPahBETLoYVwOoqAhehScoyKSaECRIKjgQQRNRHBBGP9S\n9XvJHxeQ1KGr6lW9qur//8xvQEt1zCMrolLjTyP+9DmFPYUhW7ftWGmDpwErVNITtjbHMOLb8OnA\n7Gt0HBvK09Hd1qO3aUOBO9bzZc/9r2jifJtyRxS+rk3UwGnfmHGjLXdfPDPq23cNqVGZ5g5Fk6Ne\n//h9YFkUC7z23A4/yFKWu2NXI4DyPwI7ZB1WdsYPQXHT6cPuMnriMPt2bvYN4AxwDul+ZL8y1Nt0\nyc4WGZM6WUk2hdJzSSAsV7XT4aHrNVJFChFqEiNcrj5zbFIkVE2SNpY08I2hTj8thpbCHO09unlL\nnuxj2os9qXdXDR0/4bymaHyiCNdUT8iJemMFN5ed7wzlq9t8bRuOcj+1WkK7NfGYKtQ7MyknwkVK\niE3k1sJEU11NlCmHY9JWu9a9YM2iYhBhjjN/2cYqwYnRII5N7/J7tBv07hRv/IpyCGW+5HY/g6u3\ngKtDTVQI11X0ORVxvCrpI50DVE0o5szGweJpgnM0gnSd4dI4wcFEWyrAoSjKfMmt3EZiQoW5up4o\nHeqrwmvPeEDKS01mfaomFHO2Yrd3neDORhB3gr+CYKKjIn6DcghlvuC6jZfIDakwV9cTZWvEMSr1\nTrwzMjpZoql6ffB9vd4nTA+XTF5XGeg5JeWywB57MrCzXj9br19QOWr1R6Io8wXXwVvMKEaq64ny\nE4LjDMrCp5uSDnyUxWVyIOYt8NmAciIjyT42zRqVJKImEtqgmi+5yUmMNGWO2YHQRArXj9XAg4Yw\nKZkiZqK8+P2QhHcN1xg1vbOjELU2Ec4TEV9yCwNYrKOmujrZyRpxSLU8OVHWW4KEXCoS5lwRZ3Ee\nYeGTLdp3EMy9nwALp5xs5kturg93NYer20/2B+Ccjy2NBwjfhcRJ/shNuKKYEn25afvh/r3HCaaJ\n3BM7xmrA8whq+JJbGErGbwT9668Qh9QBZMVWz5zf/YI7ywBN5CydVzrA+eHVHU2/LxNOE2VarVYN\nkIdeikYNX3Kd5aUvKsbVUVj1fQWQaWqUn8lX41ybIaHNuoaw398iOtGtEYH3klzNFSdJSbT6es75\nrXZ8SzhyW5r4LGMJw9y0EVQEBHcl5tK7R6tXwwX+zc75f8xv+zUiuCcxbONP+RqxJbXB2n91GcI9\nY8UMwd1YasZA5f7Fe9poGgv/Gq1Z/++r9hcxj9/TWoaIBgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$x^{3} + x^{2} \\left(- z + 2\\right) + x \\left(y + 1\\right) - 3$$" ], "text/plain": [ " 3 2 \n", "x + x ⋅(-z + 2) + x⋅(y + 1) - 3" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = x*y + x - 3 + 2*x**2 - z*x**2 + x**3\n", "cexpr = collect(expr, x)\n", "cexpr" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD4AAAAQBAMAAAC8SdExAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMkTvZrt2mSKr\nVIl7K2seAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAtElEQVQYGWNgwA12rWjBLcnAwHiA4X0ANgU3\nIYI8AgxsCXjk2QwYeL7gkWf6iCIfnMpSAFENNR/IYf4I18/YOWsFlIOQj3+AkGfgbsCQt2FgEDIG\nARWglIcASP6RkpKZkpIOWCnXAjAFIVgPwDhw82fBRED0HTgHJs+7gGE3XBDI4YFyYPJeDAyz4fLO\ndZWmqPLcdu/WGMDlF7AnwQIbqp/p////CHm4QgYGmPlIQihMaSQeAP6pKRpYwyi1AAAAAElFTkSu\nQmCC\n", "text/latex": [ "$$- z + 2$$" ], "text/plain": [ "-z + 2" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cexpr.coeff(x**2)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAqBAMAAAAAIxtcAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiRInd\nuzLEnmxuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABXUlEQVQ4Ee2TL0/DUBTFTwNdCxt/FF8Ah2rI\nsgSLQiIQyAnAIECQNLhZ3CQhkPABSJhh2IFAI0GxbwDJBBLev7J77ijUYajY6++e8+7ua0+B6le0\nXM3b3BpVM6L2b/zpSf3d44nX3zf8ZDOdsglPWLhgFDTdFQAcExVgwzV1WJBd001JWPLkw9WXUoP7\nB6MP16o0nktA0dEbk0sh7pr71s7ZftvXqGMsx3oyQ/fSh0YYnIxpKLoed0A9q4+iMCoZowE+3GWd\nK6Yjkke36TbP7/P8yN67KMy/ubL/MUZgoe1BHYaM5q+B1+G3xtlBUTarOUyUHaCW+RrNSIe5Aa4X\nX3Aa9pIx7omOV0Bzr7XdYaMPVzIMVbuUvELnoLemQrEmeqAvAc9EEjhmKA/uXFduwy+fgggMbdMg\nA6M1YhkYEjR8BUYLkzwOzKRGlXFgqKxBBkZrxDIwJGiQgdGa5E9tsFfHHO/BjwAAAABJRU5ErkJg\ngg==\n", "text/latex": [ "$$\\frac{1}{x} \\left(x + 1\\right)$$" ], "text/plain": [ "x + 1\n", "─────\n", " x " ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cancel((x**2 + 2*x + 1) / (x**2 + x))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = (x*y**2 - 2*x*y*z + x*z**2 + y**2 - 2*y*z + z**2)/(x**2 - 1)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMEAAAArBAMAAAAzs/FLAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiRInd\nuzLEnmxuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC/ElEQVRYCe1VTWjUQBh9a7rpJpvGbaHexGrB\ngwjNoVQ8iIsiCgpdsKuCFIrYXhRasbggYqXgycseRZTmIF4Eu5fFirceapWCBX9u4uJFL1KhB38h\nzmQy2ZnZZFParXjod0i+7733zcvMZBLgX0aqd5Pd+odWN9kB+pbDGpZ4a5XWsEjN3qXqO2ctI4ia\n7PBpsfTziH2wXZ/JltsmGuQJwDMch65oIhy+MolVtn8q4sTyJVbKZl6WRThcZQrLNX7J2uTqFWZc\nzEm69JHvJyQASI9wILWO877LgZW0fTOhwAq9mKdR/FDj7nH3BUAvxJEBXg35esagfmST1i1LRje+\nhSNEJ7s5nFGf5Siwh5PhfUeY0eQ2vSzSS3zY4eI/xhNZth8YrMkQIDmYFZMIhlWNXGd6gtq+0vlG\npqacJIfPnTsd4ILcplbpCWDgDIzebZ7XuKCvHZ+DOe9+YZ18Dj7S53kEnSUuTaJjGah0QW8cnTSZ\nvwPu0FiR6GhwhzqClZrPxF3a8zByZ0GNGsPKB5yDBwHLHeoIPXVeTNAmqwANe7F9JBhBu7FE4kXN\nL4shZ/t79LRUmi+VJn2OITSdyflA3IXMAeZq9EzpWQq4h7yfzwEhQufQLKgD2e3I96EbRplxKaJi\nwR3qCPn6cTLy3kY2oCOPtxGkXYBeZlw3kGcK7lBHkt4lvYfMYdn8EeFw/3n1FOPsxbnLruQgIJiO\n6BUgss7QTo5G/RqmPO8P49KYvh70BHMQkKQzjX20lZ67uJA5vkqC+pqQi2mXw6rzIL/Cw65IibnK\nHRRJP9fCL5tEaccGA4dP9OP4XiLFohnHdJm8qBfy8cChLYdHozWBkNNmHFNacc3cQWuyBbJZTHWH\n4gMX710aUQTcAeTN3kgYy6Rbq2QWLPVRQ4eUuxEDpOlqZ53saqqsjBM6KPi6Sg3tdCrAAfrdXLrp\n5y11QP3j7A++GQ4Rv6GWziHljEOnGyJGSx1mcx9xVxyd5i116B8bOHdLcRjqm1QhRfFflX8BCCrN\nVAS7j3MAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{1}{x - 1} \\left(y^{2} - 2 y z + z^{2}\\right)$$" ], "text/plain": [ " 2 2\n", "y - 2⋅y⋅z + z \n", "───────────────\n", " x - 1 " ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cancel(expr)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEkAAAAzBAMAAAAp5DhIAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB00lEQVQ4Ec2UPUjDQBTH/622jU2qoiDqYgYd\n3PxYReviIAiidvJbxK+pi3YQVBDFTWcR7ORoVRDXAwvdioh7q7i4OQiCVOq9C70kTUuCg/iG3v/9\n36/vXu5CAJdQJ2dcCCpf49UDtYhcozu2gY6kOwUcMy/UqhdIHReUT68C+8XYXUa1uQoEPPNK+Cr8\nQMBwVSrNK09H+4wvfmPfSqgaB86LRSoFxe6VIGgn0m6RyilGpbUJaJtxtDHpkAivJx+BmPT6AFU5\nwa40hLhPxHqATmmuAa2BKPqlIQQDHdChNE8BVhfHJzfSKxRjohQZ4EvOSiHFIt/SMMQlLSbFd8QU\nQuZDC0rJ03IhNP3w6TGImjxpMw6AvHX6W16aREo3Ca4iSzdbSWBamtQ1ezdvv4EAuulEjQch1Lih\nKZLl4VuQDr/t+qj2JXOLoNsuRS+Ceo0lL/n8/EzJDzmcmLXkpuw1JXy6JbFK4422On+oix7i/Q/n\n+Y9bKWcepsrOFTxQCP2Wyuy0b5e9ic5e2pV/NRi1z+GkVKYWlEY3SkNtDzHaCH0plh9IO3sBDWVT\nVaZy4v/UoxTOXgrbRYiV6sbqpFJ7Q2iyQxXmyiYyE7qdCrx9vNgdt+wHAo2AgY2J+8oAAAAASUVO\nRK5CYII=\n", "text/latex": [ "$$\\frac{\\left(y - z\\right)^{2}}{x - 1}$$" ], "text/plain": [ " 2\n", "(y - z) \n", "────────\n", " x - 1 " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(expr)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = (4*x**3 + 21*x**2 + 10*x + 12)/(x**4 + 5*x**3 + 5*x**2 + 4*x)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANYAAAAsBAMAAADrxFtiAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACyklEQVRYCe1Xv2sUQRR+F25vvb1scqbRSg4D\nKSWI1hf8B7I2KTSFVcBGj1iksPAKQawiiKLdYaEYA6YQCw9htVAEIVdYKsRakAieiBHXnd358Wbv\n+UZxQ5pMkf3mm2/eN2/C7X0HoMfU9AmNywaVlUsDVNM7B1e6aK5heEtDDrCyKQh/oc21COo30FzB\nhZmhgtyTl20O4AfaXe9B7Suaazj+V17Ayq53vR1dEKAx3EUvsO8wtQ2GsPjq8OsYnSCF7IGN1CE7\n0zFSgVY7XmdiPdiwWUcRJeZlh+5FSpg/74Mf+cOwabN8Ea11yPw7WinAWAs8aMwK6D1bS8ejOYEd\nRYREDJfsrtXYS7FlMhZ/8XAVkVpWdhCgPUBFwxak1PwcojLIFjFiVpZEttcpgBdhtAnjVrPuy5F2\nrNdNgMdNc67Kg5WZ3uqgDUcMlyG2iNGyss8Q/jRSaCRJ0lt4u3hsC5EpHDu/c8FmyBkvO3B0uktu\n2yddN/DeJShxfd/r/y9zD+8w/QT/y9hOmz0rvgPWnoi2/7RVrF3u9x/2+0+NTKDdG3t4h7Kp5eOF\nt3spzZJ9+c3aRinV7SKkV9CsfrFlpcxor27leynVRZFqS5UivdKs6E63bGJX5dNnMKsmpxWwn0Gc\nz4mjSIpP7AB65xvtZVvo2bJEeode0UXYb3njVfnk8Jpolebl5xHTnNWgPMFfg6s5pfpCwV5RVF+E\n7CPhlcvyBF99/uGk5YWDPeNFyLx41EvK8gRfT5JtywsHe8aLkPkyppubA/UzQSX4bMm8mjVtKCqx\nE7J3hJeW2QleNYGCvaKo/9eIzOsQXvpngp3gVWEU7BVFepnduSxcWrp4O8YXmOFMVkzwsjCmGS9K\nBvWRz5eUFRO8LIxpxouSweSIl5QVE7wsjGlJUYmdkIHf/rZVuEMsQ0uqCZ5CqxoSO/UaDYhXM0FR\ne52y3z8UPjg7AZ6CAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{2 x - 1}{x^{2} + x + 1} - \\frac{1}{x + 4} + \\frac{3}{x}$$" ], "text/plain": [ " 2⋅x - 1 1 3\n", "────────── - ───── + ─\n", " 2 x + 4 x\n", "x + x + 1 " ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apart(expr)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAZBAMAAABzxjXSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMnZUZs0Qu91E7yKJ\nmaurDqYVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABbElEQVQoFWNgQAY8168hczHZpxmeYgoii3Qz\nyG9A5mOwOxn2T8AQRBWwT0DlY/CawCLcDhAJFqiFjItgCnkugFnbYfzXEAbjH5iAL4QRDeOnwhhQ\nmvMApwCQyQIxB8jiUYDKQClRY/MEIJMDajUDA9sCsAy3IJhiYFj//z+ItQPKBVKRDIzKTgHb/zGI\nrhXSU4CJ6wIZSXo7dYACdxnSGRgaGOIYGNoVuH/DFJQAzT7A0sQRwMDgyjArgUGBoY6BoYqB4QtM\nQTPQdQk835iBTrFg4PiuzQBSUMrA8AmmYCXQBAbWAhBXnoHt6P8LIAXlqAoYGPgVIAq2MbD8RFcA\ntAKoVwBEzmAwYmB4gq4A6EjmBH0GpgSQI60SGKpB5iNbcZaBYb5BPcMWoAl3GOY4+UyQ+/9M7v9D\n818PgCIgMIOBIU8p6YoDkBkI4mMARFBzN2BIggRwRxZMeTWMgR7dMHF4goGrhMlAaaQkBwBTc1FE\n6yNodQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\sin^{2}{\\left (x \\right )}$$" ], "text/plain": [ " 2 \n", "sin (x)" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trigsimp(sin(x)*tan(x)/sec(x))" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAUBAMAAAA+U32BAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJVCLvMs1Edmar\n3bti/yyrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABrElEQVQoFXWTP0gcQRSHv/Vc9+705pYIVoKL\niY3V6WHhH4gRrCycPogxiI0RrghChOCBvXeFlY132oRLI4FUQTwLG0E8kICdV4pCPFQQg0Fnzp3N\nGuMr9v3evO/tm5l9C8/Y2/D693CgtXOS8pfsKnbnr4wftUhfBK6t7MuopJ3IjR9ZWV8ETpR9+Q12\nYMYkBowwPgB/whwcmN5tBjDegHYFcu5fMJqHF+lXWAMbeRbGviB2S3u6KO7VS49dq7S7qvo2eNjT\nzMvPklOrSgJxxqRUjNjUYOySVrYKR9CcJZplPHMIi5+miCPekdRMYliDiTI9vHZHobFCh6eu7wqS\nqeNTiciSLCikSe0JOsFlWSunxlpB8eq+ktXW3AWiGgIfNvrbB4M3drls5w1Ybz2CLXGuNRir6D0y\n/B7WVgq0bBpQH8bxiMs38RrF+mHsWSJyPsNS4xRCGjDiwUS6dz92JWq2KmpIQXt3H/bLoXxs8Gu/\nc3D78fzDQytyd3d/rL3i+g8VRzPq8V9TnzBsE+HgkVZDEbYnQxEkhQykEk/HLMiqwQ3Z47JQQsl/\nf4V7/dBpIs4//9EAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\cosh{\\left (2 x \\right )}$$" ], "text/plain": [ "cosh(2⋅x)" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trigsimp(cosh(x)**2 + sinh(x)**2)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQUAAAAUBAMAAAB2RTUoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMnZUZs0Qu91E7yKJ\nmaurDqYVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADs0lEQVRIDbVWUWgcVRQ9k2RndzObZFso1Hwk\nQ9R+1G67iNQSP7KEFgo1uH4sKi3tIhShpMkSFMFAWajiRwSX+CMiJE3bQCmBBcWEgLAEFUKSNk0J\n/WjEKFaQttBYMUQT43kzb968yU72z4HNnvvOeefeue9mZoGd19dy4dROwo2tjPu9C+1vkj4NZX9J\nRzvTGGM+axUkbg7fPFmDDvV56HtrqCqNsemzES+1mfUXNXRa4jA61Oe8ttmHNdP0KN2MQhpoWPQC\nj663vZXAt/JJhPKKhuej7R5S+IJCGoh5bYJH71KD8jFHte0KKtrzsfYozioqGCkp6IMpBT1aqyHc\n5y21xQfBNMaz3dnJf7FvYu9hm5o69trseDjMDjWJtpsrC2n0dsxC6BinuJSyMZ13aa7IGkJ83l6C\nNQ78SBEuzt+FOXOohL0vPc8wmOYdoIizwMe29Q/JaAboxUn7I6BB5JxOGzeNIURtRwe8CyTqR3FE\n0lTIGkJ8Kp2oewKcoMi6itby/jIGzAJijINpvsjDxiXgA+BPkrE08ANu51+heZFxDvVrsQqMNUcH\nXAa+asrifUlTIWuo9rHSy4gWgGMURbLoSn4CtD8zjjrGwTSx9RcgangP+INkYwnI4w0iGLwHc4ug\nnXVtOjrgBulGW0gFjUQu9+b1XG6VrlU+JsbQYnM7df2L3PAUaKl8OlBmHExjfr+9KGrgnXk1uMhJ\nEhdrXSVg3dE5NWAkb6zJGsjKPoT4xP9Ce9KtYcSmcIM1FHrPidsSNfhpvkHDhlaDaBI7LxTxotaH\nLUfnnAWWUTfq0kImawjx4ZkdpOBzflQf7ufxGvMH07wI/KrVIIblKCfpgBy6HJM0LiK+4eicmaQ6\nulo1kyE+VLHBzkxyHpCeAEY+s9GccWfST9OZx6A4CHkWCeZ7Gn0i3kxNFRpMZzBnXEGk4uiABa7d\nw4hHM5J9qPZBUyEuxnyFH+saEuXWJM7UjyNa5hwF0nzZ/Wqpbfu3tu2fX/571emw+cuB1HHuiyT5\nx3x8qIxv53+H0DEWje2b+Yk2Ds1I1lDtA/NRSvy7v84P+pbmYK3cKsW/e26WIc85kEZI/Mt/iE75\niz5yn9XLXPBoWYMvcZHjw4mA9kjUNDXT9CjhjEIa4DurOWtywtW7xmRPQi76PEA/W5ewQ1jUTCNO\ny7nCXs4kBhHLRG0eEm+x1kWfDzFAxflQVc006seFUgU9JhHvuMOlXWglps9wKslwUC3poHaanT+y\n9J3E/8Nvuf8AjsUp+QcIvw0AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\sin{\\left (x \\right )} \\cos{\\left (y \\right )} + \\sin{\\left (y \\right )} \\cos{\\left (x \\right )}$$" ], "text/plain": [ "sin(x)⋅cos(y) + sin(y)⋅cos(x)" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_trig(sin(x + y))" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x, y = symbols('x y', positive=True)\n", "a, b = symbols('a b', real=True)\n", "z, t, c = symbols('z t c')" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACkAAAAUBAMAAADiqgm2AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyUlEQVQYGWNgQAesM9FFwPxcdFFmkMAsdFFu\nkMAXhKis8hwgByTK+klZACrO2MPzESrK1Mh0ASrKe4GnASrKrcA+ASrKt4DJgMFy5ryZMxX4AngN\noKLyDtyFQNNA5vIL8C2AqT1wPhzIBIlyCFRDBRlYjRZdh4rymCUAWULKrmoKQBoEQGrBgDGBvYkD\nZilclE2A7SOXA1QJC5RmYGTg3ABjI9P8Csg8GPv8ARgLQXMJ6DMwAT2ACuIX7GdwRxUC8oSVhK4X\noIsCADRDHuGJh6BYAAAAAElFTkSuQmCC\n", "text/latex": [ "$$x^{a + b}$$" ], "text/plain": [ " a + b\n", "x " ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "powsimp(x**a*x**b)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAXBAMAAACG4mBhAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABKklEQVQoFW2RPUvDcBCHnyZpG9s0BgVRp/gN\ntM5i/AaiFTftpmOWUEFK/QgdxUGc3KRdpOt/ahEsOPgBMrlWJ6GIeHkxNdTfcC8Pxx13B/Oyjl/D\neQrDcKL+40e8CS64YjJtSHRNW+xyxqKg5mB9UH+GvRy3PLi1py7afo4zgIeLwKXk5PlTmq7kMcZd\nAgJxo/b6pW8FPmuKYtq3DlZfOyt5VbNLBzRPCkXnUFXVL9NZLXpsg9mMMTdSj7EJasHnE+z3jMOi\nL0lP2d8zLn1gEoppUO5CpSmhSOaaqkNZsYP+Mpv7KA2udlmCQ3ouFPtxOfcwbo0OhIwHpw4YYcL/\n3qEh6Hf/7G41z5oKl7sl2kp9ydV92cVL0+wvldaJIF1GJCq4aRC76I+RfgB0TDr4QxHv7gAAAABJ\nRU5ErkJggg==\n", "text/latex": [ "$$\\left(x y\\right)^{a}$$" ], "text/plain": [ " a\n", "(x⋅y) " ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "powsimp(x**a*y**a)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACMAAAAQBAMAAABuGdtpAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEN0iVJnNiUSru3Yy\nZu9l18v4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAmElEQVQYGWNgAIHq3WAKicXUcA4qBGdFMchA\nhSAsRmWGJzBtUBbLB4bPcCEIizWBIYOBFSoIYTEVMJju3QgVArM616/cAOZz6DWchUr4Q2mp3aEL\noMwwKC3AYAVlMajDGDwLoSzGHzChThiD4wODAJjNMgEmxJ7AcgDMdmVggAqyTpAGi/Do1m5qALMY\nmNdeADNYGe5lQEQAjHsh2LxtHBIAAAAASUVORK5CYII=\n", "text/latex": [ "$$t^{c} z^{c}$$" ], "text/plain": [ " c c\n", "t ⋅z " ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "powsimp(t**c*z**c)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACkAAAAXBAMAAABkPnsYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABE0lEQVQYGW1RsWoCQRScu3hynKcEQlJfKos0\namMlXlqrA/MBphNtgiA2/oLYWIjVVXaCjdjaiY34CUJASHe2qZy3u6cBM/DezJu9fXv7FrjDenBn\nAdn45x+3iT1dK2AyeCVPlX5KLXL+ETir+h3wP82KHwINOIAdAW5iXKyB596QR3KTw080doZfyNml\nKZCJteoDi3rtC/NZIeAu9hNUGGMeWO03qeyQiWgzPujCKlG5LSZixuiK+N4wFRKRyvV/yd5BqtRl\nBy/BBiMx4bUUyWm50D26EfI07JCJWPF3Dluc3oodVs5SmZhzapUAkT2JaWSO2pUb3yA3Fch0buB0\nNMqpIMskNf5O/eHazgrMMkleSHABdI8qY2Y5UggAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left(t z\\right)^{c}$$" ], "text/plain": [ " c\n", "(t⋅z) " ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "powsimp(t**c*z**c, force=True)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACkAAAAUBAMAAADiqgm2AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAtklEQVQYGWNgQAesM9FFwPxcrKKzsIp+QYjK\nKs+Bclg/KQtAmYw9PB+hTKZGpgtQJu8FngYok1uBfQKUybeAyQDGDOCFMeUduAsFIML8AnwLYAoO\nnA+HMjkEqqEsBlajRdehbB6zBCBLSNlVTQEigmAyJrA3cUAsRWKyCbB95HIAq0ViMjJwboDoZ0Bi\nMjDwK0BFUZjnD8BF4UwuAX0GJogHkJjxC/YzuEMUIzGFlYSuF0BEEUwARYoltCZcKa4AAAAASUVO\nRK5CYII=\n", "text/latex": [ "$$x^{a} x^{b}$$" ], "text/plain": [ " a b\n", "x ⋅x " ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_power_exp(x**(a + b))" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAUBAMAAAAJnbK1AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA6UlEQVQYGWNggABZ5TlQFuMlywMwZg/PRyhT\n4sB5ASiT9wJPA5R5l+EElMXAt4DJAMp+xaAME5V34C6E6GP8wrBdECrMd+B8OJT5hudrAZTJarTo\nOpQZrKULFBVSdlVTAIsw6iow+EHNSWBv4pgAFmXjesCgD9HBJsD2kcsBzPbincCwGyLKyMC5AcJi\nEOBTYPgEZTPwK8BY8QI8f2Ds8wdgrJsMTA8gbC4BfQYmiMUMmxm4DSCi8Qv2M7hDFd9miC+AMIWV\nhK5DmQzCSfcdoApQqJsoPDCHeQLjV0xRjgJuBUxRVqU7UEEA9sEuqsmyMFIAAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{a} y^{a}$$" ], "text/plain": [ " a a\n", "x ⋅y " ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_power_base((x*y)**a)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAUBAMAAABscEDKAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAnklEQVQYGWNgQIDICQg2kMV2AYXLuQCFy+8A\n58oqz2GIVzKE8hl7eD4yaAjoQrm8F3gaGDYxVEK5fAuYDBieMlyGcuUduAsFPjK8gskeOB/O0Mi+\nAcplNVp0neFwGpAnpOyqpgAVZWBgTGBv4kA4lk2A7SOXA0KWgRNmAESMXwEuB2KcP4DE5RLQZ2AS\ngAvEL9jP4A7nMQgrCV0vgHMBnogeK2wCIfsAAAAASUVORK5CYII=\n", "text/latex": [ "$$x^{a b}$$" ], "text/plain": [ " a⋅b\n", "x " ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "powdenest((x**a)**b)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [], "source": [ "n = symbols('n', real=True)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIsAAAAUBAMAAABPB9NaAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMqvNiRDvuyJ2RN1U\nmWaBK2/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACFElEQVQ4EZWUv0sbYRjHv5f0vOSSSPUfqKPa\nJTSFFhcD2iGF0KOICC6xo3S6xQ6l3KRDFW5QJENocJMOCoXSQikuxXZqxMHRbFqEkkBtqbTY57n3\n3ryX93JDX3jvfX58ni/3vPfeC+gj0w4j53pG9yXJ4OhdLbsm/ZQnLbEmkgyaT/ph3Je+WZSWWBPJ\nAHT74eFWz6+E1pdwTSQZ1JI5LywC5kMrQUaRDGoyL3sqSDeFnSCjSAZJZq7+ENipftumsgZNsz6+\nSy9aCPuLyGik2fCx6gSgC+MdLN++xMcsSbygOYcL/w0wHO6xktHJG/kaXgnQRa4Mo5vax21SwAea\nD/DI+Qzk9zkAKBmdXC8UsSJAF7cOgB+FmpBZpjoH97jc6NBjplR6WyrdYT9OOkM+fgvQxdcm8CvT\nNZ8yyzLgXChDq3qbGLnnGF0pw2/zN7O5eZNruSnqkZ92rKkYeYxsTYAuhlqwr/JNrhRb/Cnbwdag\nLY6RLqwxAa7AWEK6bE+NeCxTJfE/Vod/u0KZA6qpOIkT7LUDcPR6HBuzk8D09c8W1bymYzOx1fhO\nZjrosiczgMTjyqmnQKqxDsz197SqIw55TOUWU5ZHP3lMEQmSeUjzjOaAX3OBwpERIVNF84oyFZVd\npA6es/tMxvSLQsYjZK5t+bQJRZkie7ZeDfaid21ZnspGrQhp148oMxDkbxSM/7lE/wHlS6kYeyHC\nqAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\log{\\left (x \\right )} + \\log{\\left (y \\right )}$$" ], "text/plain": [ "log(x) + log(y)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_log(log(x*y))" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEgAAAAUBAMAAADcj2b4AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARImrInaZuxAyVN3N\nZu80gH0WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABjUlEQVQoFXWSMUgCURjH/3edep5aQmNDZuAe\n2FTBBVFQRGJcjUlDU0FwRRBER+FUYOBUi7c1NOiQSxBotDTlEhEEWU212VA6lH3v9Hkn1oOP9/t/\n3/+97z3eA/4bUqlRCai2I31ls0VTXEc5APKrzRZdc33IgWbdwYSBBNdijFOHyafyklzm1GGasStF\nCIMT2jBLULs9bQDojdwtklygSM6Px6nXCtyeTaRUy+Q9hycmVHHpIrlDdwkF8r4C8IgTmuaOLJMv\nBG+tK4cRUrgAREOsKipwBiMVxBPL6siYwIe73DA9007wr7NKBsgCowx1ZIPAl1ST35kkE9BDJ7JM\nq8C3TNjY6VOKx1lz1o7KFvYBL1CqIiV0dCcgVBTajg06uGIswWWwg0sViIUHym7B+wZ/SCgeq6QQ\nAfrNXcwSLkPIQRozgXQ9isnwEHBb/0lQhXrsa8m1EuENRfvwmPJ0nlL2s0i5dgepU4p7ir8fuGk/\noAttM95oJuD8Ks2cHNYi5ANan67l5qscs+P7/gLQHljxnskagQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$n \\log{\\left (x \\right )}$$" ], "text/plain": [ "n⋅log(x)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_log(log(x**n))" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEMAAAAVBAMAAADvM06qAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMqvNiRDvuyJ2RN1U\nmWaBK2/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABi0lEQVQoFXWSvUvDYBDGnzT9SNM01W5OdfRj\ncXAQFzt0USgEEaG4WEdxkC46iGYRwS+KFKSIWBxcHNrRikidHO0/YOmmbi1YBUHq3fsmrbT0ILm7\n537cvcl7wCAzayOXA2paXRbMYt1v452S6HQPeuDk+xeIWPDYgG+tB5lx83HcUHmK0owrSW9W3TyN\nVwWY70dCtoNoDdw/Acv9yJFDQB9Frg6oBTFoKb8AXCc/zqnMH5o6O8xlybOFaXAGyh0CWb2FxyBJ\nu3TEuFkO8THZTAoyCMWhND0lTLL0AHgtb8uwOSEzSozEKsBneFUi69QF6qYo80tpMPJSAL61pm+D\nJUKASJbfwiTCXX61XG6INRoExETIEfQSd/FXof8YBaHwcQ3rCkFLpuK4W1DSUOP67LDNahIoVvZw\n6hAIxxFtj+EkMQHMtb+qpN8Ci/lUre4iandmoOI7LpPeuQCH6fxt4JmkN3q61ygZvkbHVqjhDsfb\nriK8WAZH8SXySTHWXSmpB2yn/t+5iyk1Wsw/eyBWSRRzjG0AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\log{\\left (x^{n} \\right )}$$" ], "text/plain": [ " ⎛ n⎞\n", "log⎝x ⎠" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "logcombine(n*log(x))" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x, y, z = symbols('x y z')\n", "k, m, n = symbols('k m n')" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAOBAMAAADUAYG5AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARImrInaZuxAyVN3N\nZu80gH0WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAbUlEQVQIHWNggIDNUJrlP5TB8RvKYPgDYzxm\nYFR2CTVlYDjGwMZeytDvwFDKMIv7AIP/BIZchoZ+AYb7DAyKDAzrGRhsGBgiGRhyGBj+cjA0MDA8\nYuD6wQQ0heUjA9OBmxxvGBg3MLDYLmDYDACb6hfLboecFwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$n!$$" ], "text/plain": [ "n!" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factorial(n)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACMAAAAyBAMAAAAkfX9UAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABt0lEQVQoFW2TPUvDUBSG337mq7YBdxtHp2Zy\nbXcROxWcUvwA3TJ0EEHaUbeCztJFcLIOrmL+QQsWFBwa8A+UQhG0gufcexOb0juc+5zn5pzkJjcA\njZRDgUZLThzXFaZDBUjVInqIoOFHpNuStIPIQDuWqLuxQkOiF9cBhqy8ppXNnefRkObcD19mcnQv\nh5rIeB1GByjUb2HNOetzl4EDaNoU5oRVm8u3mXITZEOGIscjpkyIUo9r1qhj4ZtV3obn2wQWpayB\nFwcbZsBERXqTYQt4umPAFZV0BMWhTHd140xA38GAH2RhUO7VF3JCquoHSVWqYfy4pDooL6l8iKqf\nvCrfxV7SwGiuUsuFRndV+3GQbEZ7pj0lRsmFJ9XZqVpo2/G2P5WibdOFYsyUotdghILTX0rRBjMT\nwamuUrQbUy4X3dwoYHtCH002adc/Kj0y1i8F8WnhXfjnlMhvWGVCVd1Y554Vh9XN+5AneUwMXtem\n1lSosU+TuKU50WYpdrLzIVG2gzkreTDpyNDJ6OH1jVSRu8STYPVXyEMqTPxX7IuUgy7r6FTWIncf\nAXYV/f98yDjStfg58QfMZWoaZOeg5gAAAABJRU5ErkJggg==\n", "text/latex": [ "$${\\binom{n}{k}}$$" ], "text/plain": [ "⎛n⎞\n", "⎜ ⎟\n", "⎝k⎠" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "binomial(n, k)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG0AAAAzCAMAAACqonbjAAAAOVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXHtMAAAAEnRSTlMAiZm7\nECKrzd0yRFR2Zu/z+73DnwEWAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADrElEQVRYCbWY24KcIAxA\nuYkoyrb8/8cWAighYauzrQ+jhpADJIQ4QvyHa/tnNuX+d1MBqRiLXt+8SPVAG9PEvj7ow6nIR+Mc\naOL8DOeD4caQZYtSWleHjTSh5azbN3ITLqeNXHCOjKWd0Ezw35idNOnqNGOVjXiWFl5D4RCa8FQ0\nYVxi3xGO7jkrBJd/bYS1ZEy712vpungcaSvQ5zQflzyc59fZdxhpxYwrM2bmJvqhPmE63WmxtD2W\n9eJo57D0nS3ucasBV9pYmqu7kaOZeHBWZzKFbHA01fz6xdlYX23xgNIIQzsaTPziaEfvdk6hl23x\n7F8pzWfYApGHVqH1WrCBJubvw9AIbYOZHXOawIvDU5pU4wFXmonVG4uTUioLe1xg1ctCaWyvQhw6\nRm2t1YFEUOjjX9kQV5uX1rmSwdYI13c0GW9QfWpj1chLQph4xQDu45kcwc/tRFsoW2n7U5xXti/G\nNzLZCuXyH0+jJmSsR4MfagvfGiqk3Qy3Z3kaXZ6SXNPieHygiLNk9wa57sOCFzlPExHt2KQas5sX\nxsSwAS4a+1Bpu0un73YbiznQpNKqzmSHWLDg+A1lGvkmExSa0ceRyod7PCFZlMm2rZZlimsLB/DW\n9k5VVm9SeKWlrksHgxPXJdpWRw5uq/WfR5vR0s1yD3p8+t0Em+7d79IoXIr1pW4FcJspYfkDWvWb\n2HFYZFq+asVx7TaQobl9sJLCY1jKOwATruyaVqGBEM/tgyiBQ0F0xBwl6Wrltuudg2kHv9+WlIs1\nqRVhxTZ3yvPIfmpXSbUnpEBjU2a1CqI/t2MaTXJZZ8k9PTm4gJaazrB2MAHba0+pbh8SFaF5klIz\n7YB8BrGVX9vVoqS9l7vJNdK2eu9RpJZGXN7SlJq19lyqX2dc6Zd+eRqYCHAwXZr1YVEu2j7jzk6c\n6UqOFtOKEwcTnSZwKJE1abobWnTzc3sT1qqP1xu2SNeS7C3kaW/S0bzWlfd3VgXyNFRr3ENjn7b5\nqofxG5KtXpfZ6c/iuAKtlI96HMjPq1fBOS7COURo7EpqlHfZCXXCndnfxRVuPGk52suvDu4L7Mxl\ngCcO4WikuO4mwj1yUbmrVAv0uRA6cjTO7RzlkoVJAXsptAeG9vpLuJ25zeb8ztDWpyO9rT7tQmnj\n3yu3zfnTwh+ppAOhdX/rEOW5AJ+wUz1Ca3/rTHvwDaorM3iNLB1pZ19VzrvRFnTm0eYiGWgf/2Mo\nhCK7izLxApjyH1hW+wMWpRkMD99UuwAAAABJRU5ErkJggg==\n", "text/latex": [ "$${{}_{2}F_{1}\\left(\\begin{matrix} 1, 2 \\\\ 3 \\end{matrix}\\middle| {z} \\right)}$$" ], "text/plain": [ " ┌─ ⎛1, 2 │ ⎞\n", " ├─ ⎜ │ z⎟\n", "2╵ 1 ⎝ 3 │ ⎠" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hyper([1,2], [3], z)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAUBAMAAAA3uN37AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMrvvq4mZVCLdZs12\nRBDV26PEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABOUlEQVQoFWNggIEuGAODXgEUEbL/4qL8lYGB\nQwFDGibA0gBkySswMIQwMHCD2JiA3Y6BgW8DUFzegYGBiYFhGYoS9gMQ7pOUf0BGDBCDlLExMMyA\niENJmDIGHpCyx0AMUsbOwDEBqgBCoSrjvgBRxsDAkwB0wxmPOyDzgQBVGVsCTBnTAgaGpwwrD8wG\nKUJXxgX0A8hSBgbOAgaGOIb4BxUgDroydqCLIMqYgdY/YNgEVsO6e/dO6927HUAcsBcYPyArY2D4\nA1YGJFDdhlAGspSB8SN2ZbxwS0FeqOP5wHAOohDVNLAXFEAyrAkMvN+ZPnAsAHHQLWULYGiZ/ykD\nKA40l8/n3LFVYEUIZWzOv72A8S0AFcYZWWD5TrgqtKjna0DIQKIeymdCkUBWBElIUBE8yRLFBLyJ\nHABS8k+Rs7ZnygAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\Gamma{\\left(x + 1 \\right)}$$" ], "text/plain": [ "Γ(x + 1)" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factorial(x).rewrite(gamma)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFEAAAA1BAMAAADLxBpJAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADF0lEQVRIDb1UXUgUURT+xpn9cfbHLQvCh1y0\nn7dYMYJIcokQQsOBQol8WCFfSnITwqDIfYsiUAKjImgkqCCjjSLqyVHQHrKypIein82XoKS2H3+K\najp37szs7DYbveSBuec73/nmnntnzr2Ai/mqV7uwbtQB7HOjXbhBNEdcaBfqCipTLrQr9VpxpV3I\nIYMTMjwV5mtZWr3elG7TTABf1EDlVtzOgCeB3hRnmpPcA9Mc3LDi3Qx4FZT2W4zp/Ul/nGA4asbw\naYRKVXi/WozpG19OsR3JfHmEPGyuwKytXBanmNkFXWeugg3c7nAnzwJNr+4L9Qnp7qqJTiuLUUJt\n4yvuaUAVJ/uS8MQgI5CAXIdKu+ZmKpsMD8lp4D1XXgL8AwhCTEDsR1mGs8A1wKf4ZkP06nODK4mS\nu14XgUjKNMo0Cg07Q3MiEGO42SDYctA6/BkiKWP5SpihoQxFsQSCgo+pQiVVp9nibDzBhi3ACEIa\nvBmxYE7aUUh5hKDCdyRc7lmjIjQAMUKl86p3A32T9VhJ062lJ6Drugr/0YeHpK65nV1z2+tPE2sY\nlWyZaFuXoeAWZ4qNub8pqMU0nC/okL+Ja6yk0XVW4ObtTrZfcVMxruB0FJMtCk8f/p8suyir+V9F\nWJ/Z9sZGHEjnc4QQg1BVGzcJLx04p0nzuSgQQQt8CybhSecyhWga6ADOWvQRC/zpB4FzQFfczOzK\nVwhb7Zg1+LCSUwZSdkp6MJMun0PjqaZxjchglAa6KxTPRPtJKm3cHAaFHYCK28BFTfhEjJhhtH8e\nrXinXaVrNLel4wo0bAA2Ar9II08ypZzAQfQqj+nMqyw2TP4yAqbcBPwgojTFWLoHFdxkSMqy0TDP\nYT3KlLUOJV8se9GpXI7wgkNpVH8CIQLJuNb9qjEfG14A+x1KtiMpimDkaTCLsbwdPVNQw0qb1X1R\nuuJ7uvf6f4pZdjpLkjQbt2Mzb1MNekeDvmfqW4K+j0pfXte/ezrHRj+QIhCnwd3obzqtwhnkY+oQ\np9FvKmZixJn5W9dRJzss/z1HgkHX0/Ebn+rfk4sv9pMAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{2 \\sin^{2}{\\left (x \\right )}}{\\sin{\\left (2 x \\right )}}$$" ], "text/plain": [ " 2 \n", "2⋅sin (x)\n", "─────────\n", " sin(2⋅x)" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tan(x).rewrite(sin)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAL0AAAAUBAMAAAAq6iElAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACvUlEQVQ4EXVVS2gTURQ9k0zzmTRxaEVwI9Mq\n7opBC+5kQEWhCMGVu0YFwYU0i4K6EIYqgi60oIKDLqq4cNmF4EY0e5EEKroQoS5cuDJREPxAvPf9\n5r1J+yDvnXveOSdvPrkBzPA7BubAsqpP5HhTlmMDGWid9snNBUdjF8VYVP66TWp86tMrYJ6rt99/\nHnr9CzA65VPK+9rhrMEXwFsVVDV2dmThNbHUwm5R9OgA5wGjUz4pLPdtdxDJanpjSOCcKK5JSs1P\n5VoM0dhEKeKq1wRqQKaTPimsxHKVs85HgfP3CPKGLYDKbyQo/oO3yXucXwcynfRJ20m5qNnNr7aI\n9hOasqHyq0POxwPe4PwAfkJQDvZN7T2+P6Jyjj4ak4wpHuL89T4jmrzZ+dPqolU+bVToEj+zlvMd\nHfm8dnmlskr0S3JrnM8vs6DWAXbhSnSLQ6DvD6HFNnCVKZlv6chXCkvDIKbN28hwPj9ISFBZA85i\nKXxGmEZ2/utUPWdK5ls68nmorvMevtL5FS6l6cNvadpkWtyfyQGhRgsI8YhJXEzTO2l6T2Bx83oM\nZb6lE74dkZBRPqBw/vwmH/ghxDSZ8/ODQy5f6YSv12UB3x+SdXmm4T7fiYQovm5M0rsih84P+jgG\nnGEyuz9KR74gPIBCSJv0fA3O55vn+6QwwIyb/w7YN/Z8lY58i2tvZD+6RC+Cxvn8epsyS31M/KkN\ndBtU5/dvXthIgA/8pdwfHB35pmenPnaYpis0OMuvH/l9mDpKlwR0sd7BmbnLLKah8quj0SgBHhNz\n9O7f97RYOuEjisc2/UHsyd929rtnUt9/IfATscgp09k9we1vXmwZtuxvO22B7G+K2bq/4YVtcLDq\ns7XYYe1C9mfFGJ3Tn7FgGxysDOZ/w9kUhXM2ozNfJDT6xRh3LytK/++NKbb/f/wP9yuvczZIfNUA\nAAAASUVORK5CYII=\n", "text/latex": [ "$$x \\left(x + 1\\right) \\left(x + 2\\right) \\Gamma{\\left(x \\right)}$$" ], "text/plain": [ "x⋅(x + 1)⋅(x + 2)⋅Γ(x)" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_func(gamma(x + 3))" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIwAAAAqBAMAAACTq67+AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMlTvq5l2ZkS7\nIolUboL2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACO0lEQVRIDe2UQWgTQRSG/7G7Ns12a6gHL+Ih\nLXgIalEUrAgBhYIILQjqQbAtioceLAhFlOLe2oOUQi8NSA0ehIJIoIde60EWRSEgggcPPQaFQqUU\nQTHOy8w0O9sX6kAOHvogee99879/J5PdBdod/lg7HI/MbLbDBl37Ni3Pcf9sWh7N/3XfZKZ+PGK3\nGpZZ3ITZarPeqYZO7pSq+Jrqd7fTuxHEvRQ8kert9noO6LWR6mIbZiO7V50/38ji4RNp06MaW5ey\n6ajay5YN8FzaiFFGkrL5xEgAvRtlgwKjkTbHSt+B1dryM7m8mJAE5ypXVGvbzCY0pozhXUT3fLCJ\nwS7J3hsu89HS7JpqbZsXCY0pY3Ssw9vqHMADQmcNlzkH8+/bNtfQe4aiH4fqFDQSY3gE+JMZVTYT\n8gj7SHO6CHhvSNGTz/eN5/OTVNMRY5iqVMS4XQF+h1viLq1Im2asmtLeDW9Du/kZLi0VaSj5o/zG\nBojaNiuEUhHjYITgly+3RJE84puANrJtuCP+AO8ODqwHhctVsqnRlwpv8NuCNrdt5oyimYfq0/iy\n8Rg4Vd+OJE5sOIOXBS00NjP3j5eBfk2Z1D0iPp+XfI+HgSbDAWZeo1syv5If/tEUjR+speyjqdcO\nF4G3VH/UoHViXxRaLjZKtSLV5sbVnEl7X0gOOb5EVya8MnMpRyTeLT51HOHkAuEax53Z1ZzzCDMQ\nTDLQHd1wH2Em/AidDHZFl14vX3CdYfRRdrzC4H9DfwE6bn+pZClRiQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$- \\frac{1}{z} \\log{\\left (- z + 1 \\right )}$$" ], "text/plain": [ "-log(-z + 1) \n", "─────────────\n", " z " ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hyperexpand(hyper([1, 1], [2], z))" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = meijerg([[1],[1]], [[1],[]], -z)" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAI4AAAAzCAMAAAB2d8CRAAAAOVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXHtMAAAAEnRSTlMAEHa7\nq2Yiie9Umd3NRDLz+725LxzcAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD0UlEQVRYCb1Z7aKkIAjF\nsvKj3F3f/2HXLAUaHa3bbn8GBeFEgOgA/I/H/WMjy3bLgPoqLeRXdpu5mLYMlfgOB7aVCt+ml7uv\n04AD00/waCVuvkELDozLTY0oLlQKnAYuZDfhCKXRwD1qPAJHSCN93U2M3YQDui1SRqkRw4BkSRbZ\nHbbsw89lMavQXgkNILsDjvZzUUljciLL0F5xEbI74AB5TabN0axjg13MjiiM9nCOUMjugTMVv7wz\n0maVbBBnnU9pFYZoL6+gBLJ74Ag/0MWZ1ggHgA2CiKGa0V5eTAlk/6LTNXqlXwWFGAI2CDKKFmS0\nh6sJhezfZLZKDiQqiRBDwAYAzk9EEu2RSSSRTV2K/As1M92ZyRCwwR4tNB3RXl5MCWR3weGez4oY\nAjYAGJlitJcXUwLZbBUVYfSYglYMo5RygnkvjQwBG4TQIWlupPJrWFR5KLsPzuIPVYOKSrWJvwwB\nG4DwWJIrKIrTfXCmWETEaM+d0MTIOHazeYyTfGtzldpQxEAm++Ac2tdcDrfw8WZjvQwFye2eSoOk\nWftnfUAfnOh7g/nl2KcoWJ78sya8Dw54CbNP8QwgaBZrOjjdw/M8+az9W4Gz2dDJOUwGP8JSCweU\nQnMLKzs436LKcMQ4DMaQXFUr2Dv+NznMWgA4vwInCM0EDSgLKiW7Wdd1LzuLGQ32nLzBkKcwN9Ye\n/dlFxGrzs54x6I78PTVYFbyTtC0x7ZcQMjLtrdcG4ymcsncANrohh15KwVFrdkhrBGYDHIchwsvg\nux8LNEcD1obMOntm56NPbGivZuyxOJx3Q1nHukIghVAGfaSWk9jLk8MChzPcifsUBOG3+LGcnZZp\n2F8/PXFHFGaUxkygM8Nim8jhHLtKWh0ORxjzebJEFOEE30xqzUbDuvKOSC8EOByNXxHYua6EgcwV\n4RD+QYoUN4wz0a2Cw7lsodjQMAWfgz44F+2Hmi2E9pa3Jg7n4s6X4ZQ2aLdqrUNxKjYYYFNFitBf\nhlPKW+X3p9JghCpFv8TLcL4X2UKDAfyo+DIc2vnSt450qcEI9ZqC7IbTdeyba71FhFNqMO4d+/AN\nf3LsQy0FigVPt3e6Ej2fawpma1MbKYStKwPU0QOndmWAWkoUvYZ51TvdyhgqzC16rmMin4Me77DL\niE8VtRlF95Ca0GW+A87Dy7jQkHRu4wRSB5z1wVtGCw8WtuF09yrkJQ9yvt+DNeHg1fmHuebEZZdv\nyle6QbruvDqnU/20If1t16qWdyZ62urSyIT2O4U7TwPOD/9ACheotMVtA/vuTSFzrv4F9BMY6/qh\nXtgAAAAASUVORK5CYII=\n", "text/latex": [ "$${G_{2, 1}^{1, 1}\\left(\\begin{matrix} 1 & 1 \\\\1 & \\end{matrix} \\middle| {- z} \\right)}$$" ], "text/plain": [ "╭─╮1, 1 ⎛1 1 │ ⎞\n", "│╶┐ ⎜ │ -z⎟\n", "╰─╯2, 1 ⎝1 │ ⎠" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAWBAMAAAAyb6E1AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEIl2mSJE3e9UMqtm\nzbsXyEShAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAbklEQVQIHWNggABuASiDgU0jAMZkYCeLyWXv\nCTcBwfgPBAgeThajsgnQUndfIJEewKrAwCB4h4GBtZNBZAEDg+wEBgbuHuODDAyMlZwMDPwbQKaw\n7OsBMoEKoYADyDSAsJkvMIgAzQEDE5sDEAYA+h8TKCFcLjYAAAAASUVORK5CYII=\n", "text/latex": [ "$$e^{\\frac{1}{z}}$$" ], "text/plain": [ " 1\n", " ─\n", " z\n", "ℯ " ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hyperexpand(expr)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADEAAAAsBAMAAAA++k1qAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARImrInaZuxAyVN3N\nZu80gH0WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABE0lEQVQ4EWNgIAlwvUBXvhQi0Jz8A4cMAysB\nGUZll1BTqGaoaVA9bOylDP0OEClUmVncBxj8J2CTaegXYLgPktA5c2bfmTOHQUyoC9YzMNiAuECA\nahpDDgPDXw6sMo8YuH4wYZNh+cjAdOAmNhnGDQwstgtQZNjs/thCBOAkzAVwATijBc4a7Iz/OMCH\nweDw9tc4XXEMQwaWrn/BZLgCICxYumaEJ2KYDCxVMW1A1wOT4UngCoakUXQ9/QtC5C+AtaHLrG9t\n6IWYhy6TnwAWZzpz5vSbM2cMQBxout4cHgCWYmBA08PxEZhKIQBNhvcDxy9oskaTYS5g+Ildhv0C\nQ1gEqmmY6RpuGtReBMXhgGAzMAAAZkpuytnSMsIAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{n + 1}{k + 1}$$" ], "text/plain": [ "n + 1\n", "─────\n", "k + 1" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "combsimp(binomial(n+1, k+1)/binomial(n, k))" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def list_to_frac(l):\n", " expr = Integer(0)\n", " for i in reversed(l[1:]):\n", " expr += i\n", " expr = 1/expr\n", " return l[0] + expr" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAqBAMAAACuFQ3dAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMpndu3bvImbNiRBU\nq0Qb3U6NAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABAElEQVQYGbWQsUrDYBRGj22ahDYkxScIrl0c\nOkmHPoCIi7tDt4JkFJfmERw6OkSUIo6WOnTpE0jqILgUik/gUBVsod57o30B6R1+Dj/fvR8cgF24\nuD8UkGnixeSpYqVDZUW0r3zeJzxjcqmc9fW1jJ8o1w70Y4Swd9NQzpRhMIegXrDbhTHCXoKzgqfZ\n7PMlWhpLtIPbpvylWyzwU/Jjxdv1K297R4pbnvVm3v/XZCof7q7lSqHyimEiNlWlf0pVHJpKZ0qw\ntKo8jaaE4sRUTmLCD10Wlb2MnW/LDOa9+I/d7m/GVMpuILum0mnjy01TKV0l6SpUtnisyx1TOT55\nhh/sZVaaEUDKogAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{43}{30}$$" ], "text/plain": [ "43\n", "──\n", "30" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list_to_frac([1,2,3,4])" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": false }, "outputs": [], "source": [ "syms = symbols('a0:5')" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOkAAAAUBAMAAACaFQcXAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACNUlEQVRIDb2VMWzTQBSGvzixkzROawmVDXAX\nFpaCYEOqmcpGBUIMRbQTIIQgSwdgKQMIllbAhhgyISGE5CXKBHirspAggcTIRBgDYqigqLw7t0Q+\nXyUG5Dckvvfde7/f3bszlEKKtRklt69YTZgMRPFU0ap+BM5C0ap0wVP1Fms92F+solKrtFmRv9Li\nhWdW8T0B051biTXkH4C7wDGJfRFURlS7cS6NBnzI+Zl4xBnonEhMlILupT0AZQlwIq6C/xh3liOs\niSdjKfj4JePUg17IORrBZGQiDdxQ8hmmAawnUFvmKbhbeC2uMSWejKWA+xmnHiwlXJFGbH4zkQZu\n7IysAP9tAs2RUq3P0h/4v6mvGlM1wKb6BJnvtUs/jQg0kEJytaag2k9VZYX7MevIa3uhkUMDm6r/\ni5qqprZlROyC3sAOPinViWXVTf1VjtcO6GXOztUgsNTqb1KO7sphb2UD2AHVecO/C2Kl6kR05Py0\nnBsNqbXe8n9kZmuQ1tqPMmSew59jaWJ5ZSuQFbYBJ1Cqbsxz6eHh64O3ZZ+m2lwW59g0SFW962O3\nPL27837Y1repFdDcxAY2UKqVwfhG1D1cCzLJ04HuYVnPnL3kFVhAb1D6bgX3zi+d1dfh39t/RZ3X\nRi6zOB4qp6ynac3TD05agRc4ctdZIuBQgrr9ObqTrLF4ETbMzDKevjmUXWjlSX17e2QFze6bwApw\n5r6ivnTZr3qYz516nP8HymoXS6H8FGkz8AewLqkwVJgrOAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( a_{0}, \\quad a_{1}, \\quad a_{2}, \\quad a_{3}, \\quad a_{4}\\right )$$" ], "text/plain": [ "(a₀, a₁, a₂, a₃, a₄)" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "syms" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": false }, "outputs": [], "source": [ "frac = list_to_frac(syms)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALYAAABFBAMAAAAV2AGAAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpmJdu8QRM1mu90y\nVKvMIHo8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACt0lEQVRYCe2XPYgTQRTH/7fJbr42JlhYiQgn\ngqASuAinWAQbweJEBMEunghW5kAEBQsbYYtDAh5XpxLLWKiNeMEoWGmKEwRBLaIop0e8IlgI587M\nbrLZnV32YwY8yRSbmTdvfvPmveG/G+AfbMUL0oK6dnQojY30lO1J7jQnnpRM74k3JTJzonz5/Z2z\n4/9pWpd4rB3Dnpk94HyFCI37Rjk7QLpasfIskq1dhNLCfXyUwFaGKNTwFKW6CZ83jMeGcY9ss528\nQW2h0dH+QO0RIiAyJ40KPkH/hUIzPvs1W+p5Nnp4WNxLE0PnYsT9YsNDZYZsLfc8Zcat1tg4Bhsf\nfNha/+S+02a+S0vi2Yxo3RNzIDJuxj41ut+XmCHS0y8nDJKaPRiJNukczJ705Y2CcrVT2e94Bw2y\nhdfe3Wv9IBBnjmrv2B6U77FXuB7TXoykQiSbaa8lFQ7tDRdZsJdKtBdjqbDjDi3rA38+1V4O238F\nrp8LmHROUe0te+N2+rj7j9wGnzHV3mhxIyybaq8ktnWckVTYtXQcc5ejT7th43azOdqbT8j2SsXi\nwrLFdLNfblnfCu49+WOvVGjP9CG6J8qmv5vNR0SwKvv1NlqZtgy22kt/xh1tiG/GXcOo+X5/RQh3\n5Noo51frKPrHnTlG8hWrqZ23t4CrAfkuxGZn+uuHoH0lcfnUMj6bHnZxT8XLTtEpICF7bbvtZSti\n2IwyY8GsH6Fsxlw5U9dXDpt9i62fPTK5Z/xRsaIiv/QeyubG5s/4GO7KbOcNNMyZczRu+5U34DpH\nNBbq1R66LZsdcXWwe+b4QhO4KYVNdk6jVLZraZaWmIS1K3hlsnTCI6UFHpCumJar/rBBpLTIOf/E\n2zPJf2lpbz9JDuIQSGm1phw22S4Neezu3PkO50iCTHJqSYO7vGVed+AvsywxFQa9ppkAAAAASUVO\nRK5CYII=\n", "text/latex": [ "$$a_{0} + \\frac{1}{a_{1} + \\frac{1}{a_{2} + \\frac{1}{a_{3} + \\frac{1}{a_{4}}}}}$$" ], "text/plain": [ " 1 \n", "a₀ + ─────────────────\n", " 1 \n", " a₁ + ────────────\n", " 1 \n", " a₂ + ───────\n", " 1 \n", " a₃ + ──\n", " a₄" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frac" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [], "source": [ "frac = cancel(frac)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\frac{a_{0} a_{1} a_{2} a_{3} a_{4} + a_{0} a_{1} a_{2} + a_{0} a_{1} a_{4} + a_{0} a_{3} a_{4} + a_{0} + a_{2} a_{3} a_{4} + a_{2} + a_{4}}{a_{1} a_{2} a_{3} a_{4} + a_{1} a_{2} + a_{1} a_{4} + a_{3} a_{4} + 1}$$" ], "text/plain": [ "a₀⋅a₁⋅a₂⋅a₃⋅a₄ + a₀⋅a₁⋅a₂ + a₀⋅a₁⋅a₄ + a₀⋅a₃⋅a₄ + a₀ + a₂⋅a₃⋅a₄ + a₂ + a₄\n", "─────────────────────────────────────────────────────────────────────────\n", " a₁⋅a₂⋅a₃⋅a₄ + a₁⋅a₂ + a₁⋅a₄ + a₃⋅a₄ + 1 " ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frac" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(a0*a1*a2*a3*a4 + a0*a1*a2 + a0*a1*a4 + a0*a3*a4 + a0 + a2*a3*a4 + a2 + a4)/(a1*a2*a3*a4 + a1*a2 + a1*a4 + a3*a4 + 1)\n" ] } ], "source": [ "from sympy.printing import print_ccode\n", "print_ccode(frac)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculus\n", "----" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEoAAAAUBAMAAADYerbFAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMnZUZrtE7yKJ\nmatywa77AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABQklEQVQoFWNgwAm4CyBS7BvQlXgFIER2wJiv\nYQwY7X8AxmJg0IYxhWAMLDT7BZggD5IFMDEYzQx3DuMCmBiU3uIAF9gMZzFoIpgMrulB3P0PWLSu\nhD4FicYCsWjczhigdXcRqhgbGJgZmB4wMLcy7AdZ1s7AwHiA3ZRZgYGhCKGKcyEDKwPHAwaOBQz8\nBUBhMwYGHgGej2xAHckMQsYgoAIUtm/dAFalwMAPtIVhJdAsBqYGIIvBH0RAgYz+X7CqBrgqBggL\nWRW3AEP9BJCNUFVAG4GmOIDIySACAtgCGPgKkFQBXc8mEM/AKoDieraFDBwbgAbBzDrLwDA/oZ9h\nO9CMOzCTGBg4j4efZHn/T+T9P7f+dUBhoDVyoaLXQd4F+Q0HQMQQtwEOJUBh4mKboRtmAr6UwwBP\nhXDlMG3INFKKBgDEpkPH0/6h/gAAAABJRU5ErkJggg==\n", "text/latex": [ "$$- \\sin{\\left (x \\right )}$$" ], "text/plain": [ "-sin(x)" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(cos(x), x)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAPBAMAAAABlGKvAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAvElEQVQIHVXOwQoBYRDA8f9mt2VtcVZK+wRb\nHoBH2BNXDhykVkouygs4K17BwcED2JSDciHuHFwoOQiJmE/twRxm5jdN06A52TygZySpKGA+pFju\nT1CBgbSL0EPw82in0FNP2YyHlt2xx15sLMu9jjB6xwjERY7BSGyVMBG36HorsQMbZY+JCDuD0VCG\nl/IaLV2t+v0A/SqUR+0kxFy29oU5qXazJuOEG31HLtqO6efzBDN3O9Tns7M68BdfzNEtOQyaZk4A\nAAAASUVORK5CYII=\n", "text/latex": [ "$$24 x$$" ], "text/plain": [ "24⋅x" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(x**4, x, 3)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$x^{3} y^{2} \\left(x^{3} y^{3} z^{3} + 14 x^{2} y^{2} z^{2} + 52 x y z + 48\\right) e^{x y z}$$" ], "text/plain": [ " 3 2 ⎛ 3 3 3 2 2 2 ⎞ x⋅y⋅z\n", "x ⋅y ⋅⎝x ⋅y ⋅z + 14⋅x ⋅y ⋅z + 52⋅x⋅y⋅z + 48⎠⋅ℯ " ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = exp(x*y*z)\n", "diff(expr, x, y, 2, z, 4)" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH8AAAAzBAMAAABMCco3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZnaJIhC7RM0y75nd\nVKu+STY0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADG0lEQVRIDZ2WTUgUYRzGH52dHdf9zFSiCKYV\nJTByNS9RxoaUYB++mHrUvVS3XAgqInQjouvaIcTLbnSyS1uUWHsITbCPQxtRHSISg74ummEWgtu7\n887uzM7OyDs7sLPP8/x///+r787MLmB+dPT3mxd406VsNsLLmnLfLl4gpgXeMIMPvGgpV7MvDIih\n0gJnIoTFs4Cv/P9gGzAB3OJczgR7AvgDOGBS4Y88KVzjp0vIsYw/gtslMXcwXteZSGGemzeC0iQw\nLBtTG76HNr+O2mgwokv0ArhrDO34v/Qq/G2nwcCK60DlqiG0Y8UVwFP+fUCXOgd83XxFofnmD+kQ\nPMTxvM9kt4/XHUttPqDRF5sX/GQC7jdtZuTbWrNUl8WrAjhyBU10tzO62Ib0h4EvWAS6bDTp0QTi\n9FKfhCPqIvqcUzuWDyKEF9IyTnbUc/YUYeLi+QaCkaYY5InrRRUecyr4UMHEsDPAwxsZaQ6dSuYL\nXTLWuHx3RnysgNLWkNqQtXEs42fNrnL2XfvjNjRZnrJxnwtTjwxrRKi/Q+91Q2xl2/G9uOTNPSR2\nQ2Qfo75W0dBesJqeQyIMaB6ncgMqH2wpsAXRjoFo3mh6Hj001TwarR5TFTG4kuoAvcZnAp13vbMa\n4Kbdv9QBeo1ZQOcF0WpArveVOkCvhRQL1Vqt9QDXTvzJD9DpHbms4EXZcoDrat/+dfTu7WqQoWix\nWUY3kUJSnHlIL6Nj3nR6PZBfpvj9chzOFTFUMeuJQdGCN4kWjH96T5jHQDAdARwWe+DIfQ+sCURY\n9YaZPuGO4QzuZbNgHgRH6Zr1G5nilVXno4OrkyKq6CJMk2oZdCo9mKc7cVqx5id/DBgK0V81Mn0x\nPUpc/xQ4XxtRnMVpiH5aLQRIxOkgpqdRmVRo1XsXLHoZJAPP4CUtqCRDiqZfbs4FXQ0fAeaV0Hii\nrC+C0cwwDuf6qMYURgMKxrxrpnVP1NimecdMXxoYDPbeD4BpDLY9DSsA825sv6HxpcrbyuhcJa+n\nVSzvVcv55ouJa5yoOeYJOGXzCmcqBdmjnw//D1u/76sXtaBhAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{\\partial^{7}}{\\partial x\\partial y^{2}\\partial z^{4}} e^{x y z}$$" ], "text/plain": [ " 7 \n", " ∂ ⎛ x⋅y⋅z⎞\n", "──────────⎝ℯ ⎠\n", " 4 2 \n", "∂z ∂y ∂x " ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "deriv = Derivative(expr, x, y, 2, z, 4)\n", "deriv" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$x^{3} y^{2} \\left(x^{3} y^{3} z^{3} + 14 x^{2} y^{2} z^{2} + 52 x y z + 48\\right) e^{x y z}$$" ], "text/plain": [ " 3 2 ⎛ 3 3 3 2 2 2 ⎞ x⋅y⋅z\n", "x ⋅y ⋅⎝x ⋅y ⋅z + 14⋅x ⋅y ⋅z + 52⋅x⋅y⋅z + 48⎠⋅ℯ " ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "deriv.doit()" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADcAAAAUBAMAAADbzbjtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMnZUZs0Qu91E7yKJ\nmaurDqYVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABKUlEQVQoFWNgQAdboALeUJpxEUIFdwGUzbcB\nwmD8g5BkhYoxsAUgBGEsXxiD4RCcBWd0w1lZEBa3IFyEuwHOZJ3AwKjsFLD9H4PoWiE9BaA40wUG\nBjal15OAZvJeYEhnYGhgiGNgaFfg/g2UZHdgYMhh8FBoZWBgCWCYlcCgwFDHwFDFwPAFKMlhwMBw\njOF8gjUDA3MDA8d3bQaQZCkDwyegJNcEBoYEhnAgi4HxAwPb0f8XQJLlCEkICyS5jYHlJ5IkyFgG\nxo8gnZwNDEYMDE+QJEEOMmP6wKAGdpBVAkM1yEyosTwXGDg/s3/gBqrhPcAwx8lngtz/Z3L/H5r/\negA2i+2Rmq4L0FhWASCBChDBtwNVAsTDG/DsG6AasEUZPLLhqpBNR0omACUOR3UP731RAAAAAElF\nTkSuQmCC\n", "text/latex": [ "$$\\sin{\\left (x \\right )}$$" ], "text/plain": [ "sin(x)" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(cos(x), x)" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAPBAMAAAArJJMAAAAAHlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAACGjDitAAAACXRSTlMAVO8Qq5l2zWYZcMvdAAAACXBIWXMAAA7EAAAOxAGV\nKw4bAAAAHUlEQVQIHWNgAANGZQYGk5DJQDYbqQSr03QPsBkAJYgIYEZbtZEAAAAASUVORK5CYII=\n", "text/latex": [ "$$1$$" ], "text/plain": [ "1" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(exp(-x), (x, 0, oo))" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAJBAMAAAD0ltBnAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAdpmJMlQiZrurEN1E71u8\n6TcAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAA+SURBVAgdY2CQe/fu3SMGZpPAdLEEBlcGM0YHBiBo\n4FwAJFkmcIM4TAV8IN66BXwHgJQ0A68BkGpn4DRgAADO5AwIf9stDwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\pi$$" ], "text/plain": [ "π" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo))" ] }, { "cell_type": "code", "execution_count": 89, "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": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(x**x, x)" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHQAAAAuBAMAAAALoSCFAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAmYkQdqvvRN27IjJm\nVM1kwppwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC30lEQVRIDZ2UTWgTQRTH/8km7W42X/TgRQ9b\njVDooaGHHLw0thURDw3Sg3qwehXBRcRLwQTBi4JdUXrTLqLgoZCcRLw0vYkIFjwogjR68yAEay1+\n1PhmZ3bcZLfZdgcy897v/d/MvM3MALzFDhaFtefhWKmy5xyeoGyp5YipiXbEREC1IqfWo24XmDEj\nr7pUjJz6IyBz+O5u5tM3/alxO9nyUx9JfPchqLb+y099RNvyIahmKoD6dLkNHyKQCaQ9ypVaD3Bc\ncTaXRexVkAZvKgzr54yu6LDjpSwBkzY39MW8IGyYKztO9+1Jc0XWdmKA0hJGbk0YbFgwHUereBiu\nYJ65q5IVhFUtSgSlw52uVP3rx3tMckvqSsIakYQ+pThMXakDnU6bNKmaFGZNbn6SBIj/5A6lKoVJ\nE4OnDkxbIp7IU5XTZ6/SbmNkIjV0ctsF5Ga/ydTnNu6jWlSbZY6gNYFxvCzfAdItYtdsbcMF5Oa2\nqaNGq94AVhqnkaw5gDp1DTiEseIHqougcgmxlgsoXBeHVavoNEnO2OdJHTCBIr6wmfQ2bXoDquEC\nYuvEWNMqGTq2OaveKNFavLFUwLkeLHXAwgQj7n0Za7EwS3VWzT8ujHJAPdsw9N/MH6wBEwbWJSBj\nKU8dNar1AlA133GXsybwlh7MKf6ZJtbwMGMLQILLbGZqmoVnDXzG9fkXHFAfz2NwW2unmlSnQX9G\nOX0z7gL6auIw6XObdmrosIlsp0Or80a7VGanjr4mL9sg7ezok+MuoBp6X6YHOPK+LFI9B/Gpi/6P\niZ6XKWNRXfTjbdU14B5/CYDkH49DpnKbyhblk2WLqLx0HrXqfHoPGC9M7peuvOpyDhmiM9D2OH5z\nWaCgB2ZF1uXPCyEzRohg5/CcuXMsJLIQEu8T/tsn1j+kizeivyowmu79WwNVgTB5PhDvBuaM3agC\nNdVGIA6HIzgTLgpWLOoXgwPh9NGJqPv9B1boo+M9lsVhAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\int \\log^{2}{\\left (x \\right )}\\, dx$$" ], "text/plain": [ "⌠ \n", "⎮ 2 \n", "⎮ log (x) dx\n", "⌡ " ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = Integral(log(x)**2, x)\n", "expr" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAO4AAAAaBAMAAABCw30eAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD10lEQVRIDbVWXYgbVRT+JplkJ5nZ7NCWYl+W\nNEpepBhllfWpgygtlmJQEIXCxhUXBEMXKaiIEGqpP4guaAurwkZRKIoYf0CwioH64IO6AaF90MqC\nCCIqG7VF6mo8Z+45d5PsRPYlBzLnnO8753xz79ydWSDR6p+GifiYwWyUXhqzROJ4Lwr+TCTGDHpV\n99KYJUaMz3dHEGOGveKYBUaMrxv8gNDHRpQlw+6iwSeiZL4PDW6u9WWY6MSZ2xIwHfWzFB/+9hOL\nnDttQxMc0nxGA/HuxbPtIWi60g/cjSOc5iIBnSUJNK/gaFUh5weNxL+k+R4NxO9Edvi8+v26wctv\nvcelT9i+eRvFQTpEYc1CH9goDmSzKM4WhXnd+OuB3wRRN6Bb6PXWmTihLKZtFAeFBtIbFhrS9SJl\nnDWJRPcnYH9bSeMHdIVyGxLQjttdjaFc9390D9ounJJQdFfCTd0dV99WLgKk68yXq8jcdKHUkupU\nB3BKM3fSJk9SOGheF9IKWu/u0gPAXfWHr6WiffQT6qL0iC5lL4RmolObOO4txbpfRHgfc6G3WJRq\nf5EG4tHiM8AElQzaXE1bSTc4Ab+Y6eKpFBV9RHcrUx+THqubuSwTs2G2m49i3ZPAansW6YYUw2sC\n9+Fo+AaQt6CST0JbSderIdigxllmn6UDJVPPSLXV9Soy0UGuxaRfCa4AU7Xv+3QLVSDEK0wH63TZ\n8zTbq5zzxmsr6a42gcuTa0b3R1qvTF3l0geXl59fXn6RQ9DGy0RMFRnwK3n605pq3dGebnLOxrrA\n73yJdTlQ44coraT7LlX+7W44PzNKukrFupTpevnEyETaW45lvZ1b5h/iNDbeZ9o/jjMNvm5avoNb\n+bHEiFnvP265HOe0z0rdwyGZ6r4DNzIT8+F1SIXx8/0VmKu+aQrjK5+r11Lr2Lv1XH0FXKOttN5C\nB5lLeVo0G50rpYbOVdBBKjIT55qf4QAV+y183cZp3Hvkc+6NLUvTrvjr/JqfrAlmnHty4ZuGtuIs\ngl+Qq2VOfRkxXaf7l6nnTbmu9+BCfVYm7iztuEBzg/1/RO75+6vI9Xq0bmO0uc4Ne/c9QlmuLZhx\nVNVrSCvO9WZweOFGYKX3b4d42lylzBm0+7zS6/2lEwfmAR9j15miYpvvyb53kJJbvN90bj9OqBcp\n5TYk0uerxBafb9GzpJ+xkd8FLRjwb1P2OP0Svgu7BgoTEuc5etRNJfxIouHvoBYM+KvavF1kHyo8\n/B1UPMHvni9/Z2H73bc3YKmEwFko1duMH1LS3oAC2/V80tmOGbfN6zb+z/kP9lzyp+P2rN8AAAAA\nSUVORK5CYII=\n", "text/latex": [ "$$x \\log^{2}{\\left (x \\right )} - 2 x \\log{\\left (x \\right )} + 2 x$$" ], "text/plain": [ " 2 \n", "x⋅log (x) - 2⋅x⋅log(x) + 2⋅x" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.doit()" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\frac{3 \\sqrt{2} \\sqrt{\\pi} S\\left(\\frac{\\sqrt{2} x}{\\sqrt{\\pi}}\\right)}{8 \\Gamma{\\left(\\frac{7}{4} \\right)}} \\Gamma{\\left(\\frac{3}{4} \\right)}$$" ], "text/plain": [ " ⎛ ___ ⎞ \n", " ___ ___ ⎜╲╱ 2 ⋅x⎟ \n", "3⋅╲╱ 2 ⋅╲╱ π ⋅fresnels⎜───────⎟⋅Γ(3/4)\n", " ⎜ ___ ⎟ \n", " ⎝ ╲╱ π ⎠ \n", "──────────────────────────────────────\n", " 8⋅Γ(7/4) " ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(sin(x**2), x)" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\begin{cases} \\Gamma{\\left(y + 1 \\right)} & \\text{for}\\: - \\Re{y} < 1 \\\\\\int_{0}^{\\infty} x^{y} e^{- x}\\, dx & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ Γ(y + 1) for -re(y) < 1\n", "⎪ \n", "⎪∞ \n", "⎪⌠ \n", "⎨⎮ y -x \n", "⎪⎮ x ⋅ℯ dx otherwise \n", "⎪⌡ \n", "⎪0 \n", "⎩ " ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(x**y*exp(-x), (x, 0, oo))" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAPBAMAAAArJJMAAAAAHlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAACGjDitAAAACXRSTlMAVO8Qq5l2zWYZcMvdAAAACXBIWXMAAA7EAAAOxAGV\nKw4bAAAAHUlEQVQIHWNgAANGZQYGk5DJQDYbqQSr03QPsBkAJYgIYEZbtZEAAAAASUVORK5CYII=\n", "text/latex": [ "$$1$$" ], "text/plain": [ "1" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit(sin(x)/x, x, 0)" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAM8AAAAyBAMAAAAJo5KrAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMqvNiRDvuyJ2mUTd\nZlSFEfbmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEnklEQVRYCa1YW4gbVRj+prknk0mefDShfWnr\nJasFK4owqEV3+7DjtlT6tGtBqgg1T229sVPBCl7YULZguuBOSx9EEfMggiAYULAVtQuKpaJsXiwK\nhWYXS3VXW/9zy2RmlpnJJj/JnP9833/Ot+f2n8kC4bY3nI7DTsUJSjpxosJjCmPhPGcfjRETGfJj\nZASMZ3nMVSs6NCQiY4aQgjrQojK1szacUOpIpNDLImJxOCFcjRIyboxGSDcjlHRnNELG3xFCy/Zo\nhPBthNA3kh92jbAcvsja+qiEphuhQ8rPjEooMRYqlK6OSigXvhsqS6MSyv4XOqJFe1RCOBQqdFSy\n5168X47t3WB8VlJFO8gBCn1VkNo2E3c0AoGH/Ui27keANxW0XTmeUqKTEjxQRcX0BFAlteZHErYf\nAR5U0D7l9EqW9CW63BJoptpjXUf7x/WF94sfoLlxFJb0TYlI+hKtSHJDIeOW6kOVF5Tjlrqt/NSM\n8lTJEopEpx0BktCJsuJVWVxRniyzbR9A1Xdc6GHXFR7PXAItVQWUqWZnq9oDZ5s7Cs1XVHzglOUc\n+gvPT3Swv7kX2vtXxijyDH0Pnnp7nqbmQ9VQlVxIoKW6AGlEiSr0lzC3gJ9VXNJ/nDNLwMmO9px2\nAZnG00CbIl8jbbN4USfRwKsBFxJomnhmJMQ+MyDlis0hIC+vPVkF9A6wC8YK3WPaymcWGsT8ACSt\n5A3DBq71AqXDhQSabgtMCo2hZKJSlnFbutwp3WbG/HRLbPlKB/hLv/keo1+gESFRZ26FPfZ9x+w+\n5oILcRT6DEfUiOooNQJCIoI9SajAtvz1FnAz9dhth3wSAmtFJrpknrS4QhtNHT/EbERrb6C4Th3S\n1JFEmT2/YI9+40IC1duCkFPnHdGGm2EXYKQdFNb/BO6hxrQZDGsROSvmZqgjwz/9U5fznyP2fnxy\nCU9qzyBhUn45TkITwJedWbBse56+HuMjEmi6zhmttnqitvpUbfXO2UPJS1/LaD41/S0LbVr5nfM2\n3nr8Lnx65acWkTQzU82DHy+RK3aA20AkfYGWHBcPeAZbA4+FpqBs2xMrKxKdNjciJTZkUhW9+JKq\nVy4pq2temM617UfAF4qj8kLwRUj0eseHz88TkJfgVz4SWbGkHrh38bGtETSJTtpeqmgaVVfoEy9J\nNba5fBbvKq/5WuktUIJTI1q2OJ1qbv983Bc4aNXzVkC7dbqMI/mtd2+9l3fEMgDZfvzaCMwiZ2I/\nsixzjZ89VeYtFiiX2PjeHVG6yvE9mLT+4N6mH+xqy1nbaMKY0Q1TsXDRFcp3OW5hNy+HeGTagIZH\nZA/acTai512hgjqxgbeUQTXFSz4N64ljzP61aY2oc7UZ1M8azZ/0BtURN5PW1UTDogmx62Qd8mfN\n77kuTg/ct6cBeyOeS7ZlJnidFsxh56hndB8AhVuZrjosPWYwh/+0nFoY3yOafUDFxITV1wf/sZza\ncfrMb33gJtyE42nULyGJhzwBm66wd+NwmyuH8/HYFH+xCI012qF0TDLjRAeeiw6JjrgcHYItjRhB\nESGx/o2GjyJ6iUFP8a3wP66VGYyBXkPUAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\lim_{x \\to 0^+}\\left(\\frac{1}{x} \\left(\\cos{\\left (x \\right )} - 1\\right)\\right)$$" ], "text/plain": [ " cos(x) - 1\n", " lim ──────────\n", "x─→0⁺ x " ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = Limit((cos(x) - 1)/x, x, 0)\n", "expr" ] }, { "cell_type": "code", "execution_count": 96, "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": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.doit()" ] }, { "cell_type": "code", "execution_count": 97, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACMAAAALBAMAAAAHCCkxAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMqvvZom7mXZU\nIkRJD0iWAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAfklEQVQIHWNggAMBEAtMQIUYw74VMDB0Lt0A\nV8LA6cD9iUHoAIMHQqiEgeH8BBUGBvYLDELGIKDCANTA8RmkC6gdCkC8+SAChCEAxJr2j4GBsQAm\nwlDIwMDdm3aBgfsCXIiLgaGLwT+PoQIuwsC4KvIAA+P6tAaEENThAgwMAMSLGqu/gFQwAAAAAElF\nTkSuQmCC\n", "text/latex": [ "$$-\\infty$$" ], "text/plain": [ "-∞" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit(1/x, x, 0, '-')" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALYAAAAvBAMAAAC8ty28AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWaJ3SJE\nuzID+9VZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADHElEQVRYCbWWz2sTQRTHX7rZJJtfVqReilgp\n4kVw0VIQD0YPVewl0Ar1ULtQUxAPFhQWRDEHBfFiQFTUQ4s/KqJILoKgpXuw3rTFP8BWQTxJW1oa\nUDG+t7OzO+mPzE6CA515b97nffsymXktgMIwBvsUaDX0IRxTS1CgX8BCWQFXQl/ClKOUoATvNJVw\nJXhCiVaCjbwSrgRfV6KV4HQpPa+UoAD/2LrjP3yX2kjvh7uwr1pVqCQsehBuWs/CworcbRgz2xVz\nwuImXAmLEpdRgQFWVXC155v9K9fOOh6jjZlgyXmP2BZbhGEZ/ZMDscMmvOeObE0vZRZTRRl1gQNf\nUduQ4h6t9QwXbvDMNev0gQcVh/Z0i2YaJdSGx8xuZo7lP34a+kMKU/zNJsqkXcCtSGcz0tCT7oRY\nhSTucJ1uIO0pgK7+ZW8vYvGgv273rbUGj+i5/Q6A2wp2cabt5NAAQLIIEGtKe8YcRMmrWGeW66BP\nx6PPNqv9FFpRaw5/Eh04sZGYO4K6HRtos57nUvyTeznC4kXS7El9xog+ilP3mXdnLYal8XOsOxOh\n50m1dXYQu1Eug2eglRITSfodOOglr9MWep5UO7PoytAdjOcADNNYjpRpCyCFm0zbsO1Le2w7h5u8\n592z7Ue2fZG4LVV/kFgQibt1Z6jUZB7rhvgs8TRSS1wbneAOrrpBnKR1R93zdv/borqxCotmGkHd\n6PjaQc+TahsrmKhdJi2mvTBPNo3s7w3qFnqeVFurFgEmHdKK4mlEzPMQM8kD2OieiD1Pqg23Vtqn\ne10tus8zrXPwxvXc+64frRxnnncmYs+Ta2dP/DrN0qnOrpHugaKnTe/SH/55+zs13+XrwS9BoCbi\nbe8VwmjGLcHXyoLDzEPBjpaDMSdwhQjfPMUNtlIvDDmiJrR01GW/1Uav1br1vJZxYJd5UyjaWhN6\nVePVdfAFSrS1UVEgURI9qZ1kjWlTrk2MTIqO3J6RlBJxBI0+wQ5hPgnBNIjo+QYTQ6QVQjANIpE8\nvG0wVZr2HeCcFGoMSD2/3z/eWKo0K45/1RS1/wFGhbjjxubvnQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$1 + x + \\frac{x^{2}}{2} + \\mathcal{O}\\left(x^{4}\\right)$$" ], "text/plain": [ " 2 \n", " x ⎛ 4⎞\n", "1 + x + ── + O⎝x ⎠\n", " 2 " ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = exp(sin(x))\n", "expr.series(x, 0, 4)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAI4AAAAcBAMAAABFfZpzAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACRUlEQVQ4EaWTu28TQRDGvzvsOz/uwmFo0jgW\nkeh4CFEgaK5BKVLEEmWIfAoNVFhKD4KaIASicIWFoESkR8Ju0tDEQBEhQHH+gEixQgRBkcLOPuzZ\n4xJkWMm38/1mvtnd2zNw6Fj8FB2aY4kyi7PCsBmuZPE0e/OX1cLE3057mF7VsXMnQo3xjPCo/QRm\nr+5UhOsZZoaqXSZSYdGc5r3o4zVTWUu6TyxJYuHErb26pB9NLhF9cN+ozPmPc7m9+Rsbu1SbG2iH\nH1Ofs5l+A4NfJtLzxfwm3D0SXk+jCqjPnFZ6esFltZv7obTB4YVqHTggONFWKbz+trEOFJpaqskY\npCrE/qaNG9EXAZ6L9bFGDzXmRJh6A1afYPFmrCoNXkZbgA7Bu/SQw+9cAdw+UJm+dqammDEwRAmN\n8/uy6h09P4sfq8oP4CT+g8JjWWEMHFFC9wnVHW0RegvLGOzDi7xBKabc0MARw+VtEoG896fiypgx\ntwsHxRXK43ar9ajVEgUjZOOi3E9Z7n3ZrsrRF3K8RvU0zPthiOFj8v2sxYRoOVYl9iPusEuQxrDP\nCDHs7QjhPCOi+oyqgu8oRefhRjJp+nBECd3eOWgCs3VZehWWUdxXo93BjGpjDByxPri383Lhkio9\nB8vo93HydGVdrCOHXpgj4ua4weWfX1UhGpFlPOp71g7WZ0QwoY5nSLFmIjmfstRQZOAwGWYpoP/8\nP42gb9mWLDWOEH9ONh6yeLxwkpf7CVdjxaUeK59l8bjhK2b4wOL/DH8DgE2GFssHNcoAAAAASUVO\nRK5CYII=\n", "text/latex": [ "$$x + x^{3} + \\mathcal{O}\\left(x^{4}\\right)$$" ], "text/plain": [ " 3 ⎛ 4⎞\n", "x + x + O⎝x ⎠" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x + x**3 + x**6 + O(x**4)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAUBAMAAAAAdhLPAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARJkQid3Ndrsyq+9U\nImbvW+pYAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABKUlEQVQYGVVRsUoDURCc83Ix6uW8xsoih1ql\n0CskARvFH1BsbIQkpYV4BEGwSdLYaYKlzfkBEeMf2NhfCsFKUlkLV2ucedF4Duzs7uy+fY99AKzV\nzVoDQnFkHLxEvml1bsa+oleRcE+bj5ZDtOpKT0RChVa2H4HFD0ZeQDLIRbDSmTaQT5k7ZqwK9gBO\n4DIoqP9F0gQNlHqKCgNSk1a9GJ5FwAo2QukLAemaA3a8Q6cOvKNLAYh90hGQC3OpmwDPODX9lyry\nXTbybYUxHnp0c59KqPPFkTjG3h1dxVfCOVTUhyVsf3EvHcW61w1bmA11rzfuD8uJ0XeB0lMXb0zW\ngNvagTmqw9g6r66PqB+bxh/620NxP6v/21u2cPWbaM8ZTP9l2jApZv7xG8wCPFCsl93tAAAAAElF\nTkSuQmCC\n", "text/latex": [ "$$\\mathcal{O}\\left(x\\right)$$" ], "text/plain": [ "O(x)" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x * O(1)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAAAvBAMAAAB3QAsHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABfElEQVRIDWNggIDcvQJQFnEUmwPzBOJUQlVx\nOPB8IU1DAMtXkjQwMHB9JFEDhwKJGnJJVM9+gUQNYQwxJOngmbVqI7EahJRd1RT4/v//QKQGxgT2\nJg5SYplNgO0jlwORpoOUMTJwbiBBOUgpvwKJGs4fIEkDl4A+A5MACVriF+xncCdBPYOwktD1AlI0\n0FbtOmye5VLAsHQRRITR1p40DQwM+lTVwKhkEpQEcQvUSQRsEGOoUOgkRUMiQ77AEiwa/iMAUJZt\n5swZL2fONAAyBRhmg5VnzpzZN3PmZDCbgKc/gRUBCeL8wMDzhzQNC5k+MChCtBBlA+sv7g8sBSRo\nYDRS1C2Huglmw+X3k8FGsNzdfQAqBaRwpyW4GmEGNqSyntEBLgFjiMAYUNqQgeEdmhB+7gsGBvsD\n+JWgys4XIFEDUHs/toSOaiwKj/UbCpcwhwOU2kgBd0lRDFTLdIFEDWsZWBxI0cJzgYGJJA0eabkW\npFjAMP///x9EawAAre9YRmv7G00AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{x^{2}}{2} + x + 1$$" ], "text/plain": [ " 2 \n", "x \n", "── + x + 1\n", "2 " ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.series(x, 0, 4).removeO()" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nWwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$-5 + \\frac{1}{2} \\left(x - 6\\right)^{2} + \\frac{1}{6} \\left(x - 6\\right)^{3} + \\frac{1}{24} \\left(x - 6\\right)^{4} + \\frac{1}{120} \\left(x - 6\\right)^{5} + x + \\mathcal{O}\\left(\\left(x - 6\\right)^{6}; x\\rightarrow6\\right)$$" ], "text/plain": [ " 2 3 4 5 \n", " (x - 6) (x - 6) (x - 6) (x - 6) ⎛ 6 ⎞\n", "-5 + ──────── + ──────── + ──────── + ──────── + x + O⎝(x - 6) ; x → 6⎠\n", " 2 6 24 120 " ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exp(x - 6).series(x, 6)" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$x + \\frac{1}{120} \\left(x - 12\\right)^{5} + \\frac{1}{24} \\left(x - 12\\right)^{4} + \\frac{1}{6} \\left(x - 12\\right)^{3} + \\frac{1}{2} \\left(x - 12\\right)^{2} - 11$$" ], "text/plain": [ " 5 4 3 2 \n", " (x - 12) (x - 12) (x - 12) (x - 12) \n", "x + ───────── + ───────── + ───────── + ───────── - 11\n", " 120 24 6 2 " ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exp(x - 6).series(x, 6).removeO().subs(x, x - 6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Working with matrices\n", "----" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAyBAMAAACqpzYoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhDNdpmrIma7\nRN0bu2XYAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAy0lEQVQoFWOQ//+JAQT0/39kEHZxBbNDXAwZ\nRMAsEOEIZqcHeBjA2BA9EPGk6QvgaiaAlEPVI7Nnb2+Bix9lWH8BpoaBgecBgs3xC8rmTGBg+gtl\nMyYwcHyFsjkYGPgSoGyuBoaNC6BshhWarXDzgYwBZy9SOgxzA9Cd9hug7mT/zMD/AMrmlWWIT4C5\nnwGhhoGB9RFMLwOXHrK/FJHCjVEUqpdrAQPPZyib/yuCzXiAgQ8WntwbGOwLYHbd6DgLNx/IoJiN\nnGaQ0hIAAYI/VFjp+NMAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}5\\\\3\\end{matrix}\\right]$$" ], "text/plain": [ "⎡5⎤\n", "⎢ ⎥\n", "⎣3⎦" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = Matrix([[1,2,3],[3,2,1]])\n", "P = Matrix([0,1,1])\n", "M*P" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAyBAMAAADfKoqLAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhCrmXbNZiK7\nRN38cqFhAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABrElEQVRIDe3Wq0/DUBQG8K+U7kHZgwCOZTBN\nYPwFE4xgq5A8FAmGGTYzgUMghkJPo5aZCQwJWMJQSJYJkCSMJQwSym2a9p5z4ZLNQcJVNz2/nNye\ntl+KrPuMIdaY66YxXVwbgsIqrqYxM4z0zPj3tlW9oh3s3GJe2hWH1qxtLLfJhRbMt8Bau/vMRhwY\naWJreXwEFqgxa3QQeSH2tm0NdDbe5xbkDGpf0TLZJ32BzXldX8HuRVGu5qM4YzAzfl6BHiT0dmMZ\nvY2WuMWUo+17xOg5cJPXWbMEUQ+X6/xg14HjUAJzwFND09fu5sodYs9gvob3Vs6e1kkt7routYlK\ntR1a4vTbYL56ISv/1p/FL5pDM3cpn4/YKVlCz2uXUKgTrGYJzFlR9e8t1kOqQ2xEyZKNsvdV+zaR\nwdYJsWqWICatYOwMX7KEWatL2npbniXU2ksHiuVZQi2wID4SuniWcGt4U5EryrOEWLuByZ6EYsez\nhM4h1VeskiXUGhdIvtO+SpZQO1FH4ZBYNUuoxV3lmlCoWRLdGewFz5g6/d5/H/R1WvmDdpR/ghH+\nNT4BzXR5T3zOgf4AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 2 & 3\\\\3 & 2 & 1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 2 3⎤\n", "⎢ ⎥\n", "⎣3 2 1⎦" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAUBAMAAADIGvgZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIky\nEKtZsEGBAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABJklEQVQoFXWSsUrEQBCGv5znkbszISJnYxN9\nA60F4xscHNdKGkUQFAtr8wiClVapBCsPRCyu0MY+lWLnI4iINh5xZnOBZPX+Ymdn/n93ZmcWnJCZ\nWFVmCXqDzT8aZ3yb4AcS38Z74yG1FT3cD7wIGn38jPaZLThN+IJ7aAW0Y/wfW3Cdep/wCsvQnPwj\nQFPQTDkxR1sT+wZ4HsF8nw3D3IhjYWU3kwoj9k380GLV7V5KmhhZzU1qLFxkLLwXgqKQGr8IW4kK\nNIXbR/w68kwFndgU+QTHdRrO4SigEXEHzsF4J9a2VLGG+y3FjbiSbuR5HrMnr6qgMxykQj1qqwu4\n5aai0j7LsAp0q0S5l2GxPnVeymDF6rj1wxiEU1s1c5rWCWWZAflyvwDUONb/dudmAAAAAElFTkSu\nQmCC\n", "text/latex": [ "$$\\left ( 2, \\quad 3\\right )$$" ], "text/plain": [ "(2, 3)" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.shape" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAyBAMAAACqpzYoAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhAiu5lmdt1E\nzatYvhcYAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAl0lEQVQoFWOQ//+JAQT0/39kEHZxBbNDXAwZ\nRMAsEOEIZicpFcPYbA0M9hOg4lyfGfg3QNk8MgzxF2DqGRBqGBhYN8H0MrBpt8LZDAyKBxDqGUWh\nbLYEBvbPUDb/VwSbsYCB+xtUnHMCg/0CmN4THTVIZgKZUDeDWAPONgyAuYH1xXs4m4Fh/cCw++Tv\nTaBmmCCnGaS0BAB07TnTA6vUDQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}3\\\\1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡3⎤\n", "⎢ ⎥\n", "⎣1⎦" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.col(-1)" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAA0CAMAAAD15DXMAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMA74lUMhDNmavdInZmu8PxoeXVRExorfoAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAHsSURBVEgN\n7ZfbdoQgDEURUFTG3uT/v7UBBwyaKcfpmtWX5qHS4WQTEBJUajc77G2w9cDFunECCVl2dOkCmU69\n5ipLqbuLjpBOdcZa2/+S1RPDEMvmiPMg5X+gwaZi/1ntBXu8Xl3b+aCgl5eNr/3spjD63AM9KxfO\ngrx/EP0Vqx+mYsO+wUukLK54opKVzmYje4SkZKymZ0tQsbR343bIW26ln7twlrsp5ZYiQxqVS8Wi\nJHbbpo5wosZxF85KndfiqlwOrJ4ls6gDbHepWX64doRoKOZSsy6vfYy7vK4jywYDzKuSFBfGShOf\nA20M2GoXxlKTc8vbO7hZtxo7zbSNursLZ304rz+/oKByjbXa65F4yTgrDmJD7mkwWW7Oyoq1KjUH\n+oNYgxURJoDrBbAmdLO2Wdoh80sTOF9j+HrR64VR0tWjYq2UQVYhkUuxNuZoB2PMgq79XmPzUDyu\ndKnDcmFVYyVW/u3ZJ4/rWUb2exGrLpx5MPEpS18UFx1Gp7e7uRhM9aMk5XH5kUoBtvNFKWfFdDNj\neUKUMtYc4vGB8pcsZax+YyF1SJYyFn3MxBwN1SFRylmG7hIemqMSpZylrPdo7ZCknBWzzYrdc0Rp\nZOVvvoVy/YKlwpM0f/PF0xX3++q9A6vjSbp9i34DTAMRsMNREjMAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}\\frac{1}{3} & - \\frac{1}{3}\\\\\\frac{2}{9} & \\frac{1}{9}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1/3 -1/3⎤\n", "⎢ ⎥\n", "⎣2/9 1/9 ⎦" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = Matrix([[1,3], [-2,3]])\n", "M**-1" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAAyBAMAAAATs7BgAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhCrmXbNZt0i\nu0TKQvJ9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABdklEQVQ4EWOQ//+JAR/Q//+RQdjFFZ8ShhAX\nQwYRvCpAko741PCU33VAqDEMAGlAB2EMTP+AYmBzWNPzsapJZWAQhKlhYOjHqkaagSHfAe4e7Grm\nBxBWA7RnP9ACqL+wm8PAwAcKXwJquBNwqYncDQJTgNLlQEzAHI4CwmrMGXgOEDCHpYCBg5Ca00rq\n2XD3lMlPWwDkoIP5////BorhjXeonlE16IGHyqdu+BxSuoxqPAMDj5KuAXJc8BQw2C9AU3ScgfkX\nshqOzwz8G9DU9BswgOIcBMBu5pNjiJ8A4cPJhw9Yf0I5MH9h2MWAZhcDA+smuAFwRrQCijk82qVw\nKRjj0PYAFDUMDIoPYHJwmkkOTQ2jKFwOzhCEGgR2MzAT8X6GS0EYZxgY7htAmGA1/F8x1fwPQFXD\neIGB+w+aObLAcuUAkjlcCxjsG9DUrGJg/gEVgoTh8/J7aEoY+MprH6CoQVeAyofFBaooKm/wqSGm\nbiKijgMA9ShiNlHkRAIAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & -2\\\\3 & 3\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 -2⎤\n", "⎢ ⎥\n", "⎣3 3 ⎦" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.T" ] }, { "cell_type": "code", "execution_count": 110, "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": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eye(3)" ] }, { "cell_type": "code", "execution_count": 111, "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": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diag(1,2,3)" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAEJmJqyLvZs27djJEVPfV\nizYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABVSURBVAgdY2AQMnZlYGBMZwgLYGBJYGBRYOBrYGB+\nwCA3gYHrNQMbkP0GxOV4zsDQxXD5LQMD+6rNrxmAgOUhiORwYGBPZdgXwMDVyNgO5BspHWAAAM1O\nEeMqKO2rAAAAAElFTkSuQmCC\n", "text/latex": [ "$$9$$" ], "text/plain": [ "9" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.det()" ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALgAAABLCAMAAAD0671CAAAAPFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMA\nMquZdlQQQOkwRO/NZondIrtsRPdGkQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAA95JREFUaAXtm+2W\noyAMhlGUnfUDdLn/e10IdSyQWLKlPdOz+GMqGsPTV0R4y4jOwtaLD9lM4BWis3Jw2/gh3GL1tL31\n4N2nMJ+caw1wJfWqX/blN631njUHCnyc1fntHu0tLq0y26Ow8zwn+ybddaNdz6thDwVXvextOfg6\n+1R6SVJTRWb2wXq1rUnSoeAuZmCA79AfjYwrONmneXL306ay1AC3AD6BMokuRJEDDikKmwpPcWV9\nKxSTHaCOkj9ccGV0mraC4puFrF34SCtAyzzwTRuZPXFVwEHx14G77659Q4+2CuBvaCpCzGn3XAFc\nhIdzfNHDucH7YU+z1wDfd38T1xd1hxbyvgQ8vIBk2tNGTTIucB7OGWQxNnkx11BcGP/KnxmDFQ74\n6l/2Y9bX4uCyn+3Sp8ODWLW7ktJumFnOzcw+SSn3tFNxLfN/Htbeif+23ab426S+VdQUb4oXKtCa\nSqFQ1cKa4tWkLEyEK7650cFePvjALZtLgg5mTZcht5Od6aWzhHQy60TBlZ+2a5sNbIh6CMuGiA6H\nDQxWL0NuJ9dgcYbZynkBCt7D1HQGn+cMJfcIy4aMdyeGMMq+CjnOyTAQT71kFHwG26gv9UIJy+ao\nGfnc1qVY8dBEMmsSBV9gtlQMDmS5ZYMAH4e0KAeHa6bMs0HBQ37DmEQ6zzN5eA5G7HPduOD5/aHB\nJ4bBg1o2GDIcU04+nuI6n4zR4CZ9HEgQOJFbNmS8vzcscOWmaelGgsvijvaWMrNs0qqO8uhfECzw\nATEQPPivr99H0u/PgcFNWDbfueIdBQ8DCxzr9P98oZPl0XMHoLharERYNlioOzb2frNzn3UUxAXO\nHEdaLd5Uwgt5SDwYKjFh2VDhcLz8BQS/Cua5UPDNuKGB7NNfL/KrwxHCsqHC4bjNOzgyfgwGfHwe\nBV/C8KAUXOCWTVxRVNK7teV+0zZnv7l5qxJt41E1P7LQwN99W5riTfFCBVpTKRSqWlhTvJqUhYma\n4l4opjHEDPc1nD7SI8UrrOXxFWLbcz7SJXidtTwYtD/2nI90CQ7ZswUXFIhgGkPMcFftvY9UExy+\nEcsYwlaJkbo4O/Nujl0bnGUM+bVz/+oj1QXnGUOuF0KW/pCKxz5SXXBXKcMY8oiM8NhHisDVYr63\nJfj6V+sckHCHQhpDT4YnPlIE7iVItivwJPTmw2RLYtKwo/ycj1QTnGcMCV546iPVBGcaQ8xwuFGn\nj1QTnGkMMcMB/PSRrsGrrOU52nT2+ZSPdA2e1fVzDjTwd9+LpnhTvFCB0FQ+9B+YlP+HoGEoXXNQ\nKMnrwuAfmIZB/AVlKDGLIeTG7wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 0 & 1 & 3\\\\2 & 3 & 4 & 7\\\\-1 & -3 & -3 & -4\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 0 1 3 ⎤\n", "⎢ ⎥\n", "⎢2 3 4 7 ⎥\n", "⎢ ⎥\n", "⎣-1 -3 -3 -4⎦" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M= Matrix([[1,0,1,3],[2,3,4,7],[-1,-3,-3,-4]])\n", "M" ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/latex": [ "$$\\left ( \\left[\\begin{matrix}1 & 0 & 1 & 3\\\\0 & 1 & \\frac{2}{3} & \\frac{1}{3}\\\\0 & 0 & 0 & 0\\end{matrix}\\right], \\quad \\left [ 0, \\quad 1\\right ]\\right )$$" ], "text/plain": [ "⎛⎡1 0 1 3 ⎤, [0, 1]⎞\n", "⎜⎢ ⎥ ⎟\n", "⎜⎢0 1 2/3 1/3⎥ ⎟\n", "⎜⎢ ⎥ ⎟\n", "⎝⎣0 0 0 0 ⎦ ⎠" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.rref()" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ0AAAAyBAMAAAC0QsTeAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhCrmXbNZiK7\nRN38cqFhAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACsklEQVRIDe2Xv2tTURTHv83ra5qkqRF1qzQU\nB5WCz8W1ASuOxg7qVCNIlS4Gh4jQwUkFBwuCk4M6uhhcCjrUQZwE41/QoKCDgvijakV8nrz73jvn\nnmcCJs8td8n9nne/n7z7I/dLMO1/Rkot4/sl7Jg/khIO7vzhEnamRetwRrvx1laeqe8pzMx6snRy\n/x4p3Yv3K8w7WJXPALeGAy27tAbnp6zcwmJT6Jznvo947rkLijdWxUhJjKbuTQ+/RSVfQmZV6HvA\nvohHgxVvpI2xr2I0dV+13C1RmajB2RT6OTBXjddP83KbCR7s+W6rofhF8L4BG15XHg2clN8eGBfL\nwn+6juIP1u534l3pxduQ7o7x0Tu5KOtljIofQoH6x6gUnhc9X7K/7TCsltkt5Hrd5tH79eRl68Ic\ndreLF/zX+V7TuCfAS4+LtB+O2o+5Hvvh1EEA2fyqxZt4irzcsRfAw+7nBUeBG5IGTAEfm1yi85xd\nZQk6z5e7n+fC65lGW4ym7gM44nwAb3C8IkZMei7dLOH+NqZv3xXPgJzv+22rguKllZasLFw/K6W7\n92ol5skHA/Wj8zcQRJiHPLEYfXSH69fHognLf1s/uk9UMwHNRa1VnpuB8ft9YCP1nF10JQQBzWWt\nVZ4Hnuh+wTjdbtxONOimNAHNRaV1ngeemPf4DhupN048E9BcVlrneeCJeeUkzwQ085TWeW7x8s0E\nLwzomKe1yjczp+j9TiHBCwM65mmt8tzmlf/CMwHNPKVVnls8p5Lk6flp3Wu+C0jyQOtPAc1NaZ3n\ncj8OLS19Os9O8+4moLmqtM5zySPTFBup1zl/JqC5rLTOc8X7xcaQZwKay1qrPLd5s/4yO5E9s7UM\nE9Bc1VrleeCJzh+7BuzF98uAnMg+5EUr0d8nrV/a/1dT/j/9B0Ze0TQZYLG0AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}1 & 2 & 3 & 0 & 0\\\\4 & 10 & 0 & 0 & 1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡1 2 3 0 0⎤\n", "⎢ ⎥\n", "⎣4 10 0 0 1⎦" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = Matrix([[1,2,3,0,0],[4,10,0,0,1]])\n", "M" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/latex": [ "$$\\left [ \\left[\\begin{matrix}-15\\\\6\\\\1\\\\0\\\\0\\end{matrix}\\right], \\quad \\left[\\begin{matrix}0\\\\0\\\\0\\\\1\\\\0\\end{matrix}\\right], \\quad \\left[\\begin{matrix}1\\\\- \\frac{1}{2}\\\\0\\\\0\\\\1\\end{matrix}\\right]\\right ]$$" ], "text/plain": [ "⎡⎡-15⎤, ⎡0⎤, ⎡ 1 ⎤⎤\n", "⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎥\n", "⎢⎢ 6 ⎥ ⎢0⎥ ⎢-1/2⎥⎥\n", "⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎥\n", "⎢⎢ 1 ⎥ ⎢0⎥ ⎢ 0 ⎥⎥\n", "⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎥\n", "⎢⎢ 0 ⎥ ⎢1⎥ ⎢ 0 ⎥⎥\n", "⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎥\n", "⎣⎣ 0 ⎦ ⎣0⎦ ⎣ 1 ⎦⎦" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.nullspace()" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKgAAABkCAMAAAAlv4tJAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRCKJu2bd7818bEWMfqcAAAAJcEhZcwAADsQAAA7EAZUrDhsAAASASURBVHgB\n7ZzblpswDEUJEGYa7q3//1uLTQRIAfsoMavMqnmoiSPJ28LcTjXJbsZteXbRrZ/5suxminLa7hfl\nzDpLlxsLersq48rVMdC6aZoWz2xdFG2LTfJWrGOCezw6A61ttLvpwEiVXdWNeSDmfYtYbW1EdAZa\nGptN02/tPft5Zb8cBo8JfVUOalARnYE+hik7lRkpfKAd3IxyYIXX3agGFdEZqAPDD/1obEoR0CbT\ng4roL6BV3wQSKb7uHa7o5B+7+g3QOcQSXYDWTV+4lcdH8nx6mODEqjJ7F3SNLkAnosYuVHzrwzc0\nOxP9oXcIa/RX0Ok0PshpNfbLNj4vn0X4+ni3pmHQQHQGWtd2Gq27SLkJBf8pw5yVWxph0J2xttEZ\nqHHnhQL0bjnn6e2MM3fdc7uZIZ9Wqm5j0RnofFXujUssEHS+L5aIuf6Cn/HoDLSzN8+7Qade99Oj\nQZFDNzKjvuCL6Aw0exTTYwZ80o/zcyIA2rTG5OgjxPNQiugcFDjc/8okgcbOfMpoymjsDMSOl9Zo\nymjsDMSOx9foWFbTQ0tQgVDqFMSsdPMIENlgHzOC70BKnWLh/EjeEBltcuDpUqlTEKjSzSdAZOEX\nNTuqUqcgUKWbV4DAQN3IuE5BoEo3rwCRd11ZQPKcWqeYcdVuBwJEO70o14A8p9cpHKfezSdAZC3w\nbqHWKej4vy1v8LPehSuwt9BDnYKY9hQFq1K+J29Y0C/zNQfPneAYlGb1OoULr3fbChC/t9L44ECL\nkDyn1inmNKjdjgWIWZ/pQ0KuVqd4rgWtm0eAcPfGbggpH0qd4smZKd28AkRdNDmgj+p0CgL9TN7Y\nOeuXwJfaSaCxD0fKaMpo7AzEjmfXaDW90l1+qycd/Af+f/2F8/pDL0+gAEGJ5xIB9b60oJn04248\no5gAQRFFjQJ1yxY0C7hx0BESICikkAioW7agWcCNgyre66e4QiKQI9Fn0IzMqRVun4AKiYBGkC1o\nFnAToLAAsYZdJIK1a28PNJOuixsHRQWITbhVIth0vu6CZtJxdeOgzg4TICjkWqNAPbstaCZ9V7cd\n0EMBYk9RACog7OCAWSC6Bf36/jXPBBQgNtPeSgSbbrkLmvnc/nxvHkpAAWKNxySCtVvugWZeN3bo\nQQFiCcglgqVb7oBmfjcGCgoQFFFIBNQtW9As4MZAM1CAeMYUNQpyJPoMmpE5tcKNg5LRBdsEGvug\npIymjMbOQOx4aY2mjMbOQOx4fI2eI0AQM1gBsW/GQU8RIBZOrALioL6Cg54iQBAoWAFxYMZBTxEg\nCBSsgDgw+wT0HWUBLJx4NROg5wkQc17BCogdMw56ngDhOMEKiF0zDurCnSJA0EIFKyBezXZAYwkQ\ne4qCpwKCpjK3L4USDPQ0AcINDlZAHJgx0LMEiDlJYAXEgRkDPUmAeB5UsALiwIyBniNAPDnRCoiD\nQgkGeo4AQaBoBcR+fQUHXWJebyeBxj4mKaP/eUbdn3rpnppjZ8wTb/nFgsr+IkBZwn/C5ol5ylfu\nFwvKMvsLS4xH3W84LsoAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}3 & -2 & 4 & -2\\\\5 & 3 & -3 & -2\\\\5 & -2 & 2 & -2\\\\5 & -2 & -3 & 3\\end{matrix}\\right]$$" ], "text/plain": [ "⎡3 -2 4 -2⎤\n", "⎢ ⎥\n", "⎢5 3 -3 -2⎥\n", "⎢ ⎥\n", "⎢5 -2 2 -2⎥\n", "⎢ ⎥\n", "⎣5 -2 -3 3 ⎦" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = Matrix([[3, -2, 4, -2], [5,3,-3,-2], [5,-2,2,-2], [5,-2,-3,3]])\n", "M" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANAAAAAVBAMAAADFr31AAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZpkQ3Ynvq81UMrtE\nInZCK3CHAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACL0lEQVRIDbWWMWgUURCG/9u928uZ7CWVpayX\nIqDNdSldMCFWGtQzZQKKhCCYoFjqIoZ0iVikkyzX2ghWUYvDIq1HMKUYYi0Ip2BCZJ339t7Ok8ze\nVjdwb2fmfTf/2915jwVQuoghW/u7EnBnhyxD5fdiGko/LaH9y++tSHIPWrtS2sptNtsvs9BvfIgB\nJ6JEZYmGvrmrWOyYAKjdZb/v+QF2JjgrEHiY/GZgGpVT0ggpYwtVm/CWMmp6qpf5xqkfYzw0ASQC\n60+7GYBHwP2+hi3khaieMFU/KzT2AFeigQRWeRq4BzyL05uxhUZ6RUJUxH50wlL+F9pqikJUpqzv\nYk6vSipjujSfWLtwSf87JYAbzfSOqpFOm+HzPHnusg4lIf/2pJobQLzDtw4TGKPW0J29HVOWzaxD\nZSQh4E6HaZkYDZlAWb2z58CbFbq6L2bIrsXU8QGFxuQyntX0MuH8NRXo2lB+9Xp/12YTR5lHjlDG\n72L0mBmBoFehto6xeqC8DfrRBFstwFeOhDLjvSIhL4JjbYtXoLXpd1QJuTLawA8OBSHvLcrWgxEI\nhzo3ymqcC1Dvnt1H/mxrKiTI6il7e9JMaQI7hwMJOqTOdzPiS+vmY+FkGEmSJCQIuvecJ3/WUL6q\nYrZPjY86yCf2FyaZ2EqSX4IQ12PvNbs5XjGhTx/7CJIqqQ082IoJraE7Ir+Se5g/l84UE3Aiha6n\nfM5YyslzupjAXkfhteF/M9wC/gHeZIWi+FnL0wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left \\{ -2 : 1, \\quad 3 : 1, \\quad 5 : 2\\right \\}$$" ], "text/plain": [ "{-2: 1, 3: 1, 5: 2}" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.eigenvals()" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left [ \\left ( -2, \\quad 1, \\quad \\left [ \\left[\\begin{matrix}0\\\\1\\\\1\\\\1\\end{matrix}\\right]\\right ]\\right ), \\quad \\left ( 3, \\quad 1, \\quad \\left [ \\left[\\begin{matrix}1\\\\1\\\\1\\\\1\\end{matrix}\\right]\\right ]\\right ), \\quad \\left ( 5, \\quad 2, \\quad \\left [ \\left[\\begin{matrix}1\\\\1\\\\1\\\\0\\end{matrix}\\right], \\quad \\left[\\begin{matrix}0\\\\-1\\\\0\\\\1\\end{matrix}\\right]\\right ]\\right )\\right ]$$" ], "text/plain": [ "⎡⎛-2, 1, ⎡⎡0⎤⎤⎞, ⎛3, 1, ⎡⎡1⎤⎤⎞, ⎛5, 2, ⎡⎡1⎤, ⎡0 ⎤⎤⎞⎤\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢1⎥⎥⎟ ⎜ ⎢⎢1⎥⎥⎟ ⎜ ⎢⎢1⎥ ⎢-1⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢1⎥⎥⎟ ⎜ ⎢⎢1⎥⎥⎟ ⎜ ⎢⎢1⎥ ⎢0 ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟⎥\n", "⎣⎝ ⎣⎣1⎦⎦⎠ ⎝ ⎣⎣1⎦⎦⎠ ⎝ ⎣⎣0⎦ ⎣1 ⎦⎦⎠⎦" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.eigenvects()" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "collapsed": true }, "outputs": [], "source": [ "P, D = M.diagonalize()" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIgAAABkCAMAAABq4oiZAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRIlmzd0i77t8bBwggJIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAMCSURBVGgF\n7ZvtlqMgDIapWjtT7dcO93+tS+DQJpEY9jCi5yz+qNJA3scI1jStOVm/dWan7R70jTnZfnDbeScO\nM4N6ZwHktBfDR3cmIGM/zdPWVGkRCnJzl2e8Pz6c/Oj8HPlbuK2YQ9e0CAGZn9B1umHf6Hjs+s7K\nIIo5OhJECMjLL5zzitiwYnNKitmzCCIExHqQq5XXj6KkmD2IIIJBRttD16sd/IjUi6KkmMGjJIJB\nHnaCrqewg8PFpigpZnAniVAQH5GtQdIiGESKGoqLcsqKGRxJIhjEhHl0rjFZFyIE5PUC5nlliSqn\nrJjBuxFECEi41/TSDc15UZQUswcRRAiIucMt/rnyYaMoKWYPIohQkHFyn8cyR9897a2bg7/lq2KO\nA9IiFCT23WHfQHjQW0RaRHgEeLvNkRYRHgHePuwcUVKkMjOPAvZGIqKkSGVmTsG8ERDXV3miKDNz\nFuytgUB0WkSOMUfG2/293cJzMb80F3t5s2Lb+83PQZn54yccYW9/yFdXdP7wca6Nh/67mY/A3try\nhejIEVFSpDIzvzDUG780vHe1dgPhoW4RaRHhEeBtmCPjIH/Bzvtv1n64b5kPWK/Z7Hx1x//z8s2p\nYBmDc55EPMvMwWFGBYvlPBykzBy95VSwXF/8iBCHon2Z2TvKqWBVAcmoYAFw2Skro0Egq0xSAySn\nggXAyjmVmUHgEQqHizIZv6GVKSmjAWTt0ly+vqGL3xRXZWavIJTJfr7oh16ZkjLag+RUsFxHxVWZ\n2YNkVbBqgGRVsGjO408Av5SZo6dWwYqRWN/z+8h67w2tDYQHt0WkRYRHgLfbHNkyIunMiSsKbX5p\nSjKodOaUEE6JEJCyDErInDiIIEJA3JiCJx8hc+IggsgvggiZU3UQ6fG8OoiUOe0Akv7tX3WQw1ya\njB8YxuCkluYvrhohc4rqaL8xiJA5IYB4uDGIkDlFdbTXQcoyqHTmhADCYVqEz5HFsFpvNBAe6RaR\ng0fkIP84GuEfP8Nw5dGq1fb/OBoG8xeMkjfv6uCG7QAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 1 & 1 & 0\\\\1 & 1 & 1 & -1\\\\1 & 1 & 1 & 0\\\\1 & 1 & 0 & 1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡0 1 1 0 ⎤\n", "⎢ ⎥\n", "⎢1 1 1 -1⎥\n", "⎢ ⎥\n", "⎢1 1 1 0 ⎥\n", "⎢ ⎥\n", "⎣1 1 0 1 ⎦" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P" ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIgAAABkCAMAAABq4oiZAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRM3dIruJ72Z8bL0hKjUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAARESURBVGgF\n7Zttl6IwDIUrRWZW3nf7/3/rtsWKuZNw4Ryd2T0HvpSaNHmMFXqLukvIR+V+6OiW/M5dgq/jcf0h\nDjen7FVIIJefYljzzpsgvffDYFM2fpzHF5k3QZo0bcZwW7nlWRs/zabr5Ytr75B5E6RqUtRpWmOL\nszkbxla8uHaOmTdBpi6FrawpNOTv2TVk3BWgnB0zb4K0OYcJEjLILRhft2PmTZDlvXXGW26CTw63\nUJcaiPagmYPcwigSPDr9YrgY9oNmDtJZV9x+qYgNkgu21yxAmrZ7HO39+uBzuEcZnk4O1v5pZDrF\n0QIEfFO3NjmcW2bjdXuy7jUTkGvi6I1L1jAk1NmYy+6YeRvkkutRGyDLFctvX9D2mjdB+m4cR1/l\ny1p683h06RI/mTebQ+ZNkHZZKJggzRhv3yaHO2TeBMEKvLN/gmB1z4qcFcEKYP+cI2dFsALY1+cI\nUU4lSB/viYOxdI4+JIo06yBEGt1B+rRIuIa5cGFLokizCkKkUUlY57VZsG7OJAqYVRAijQrIbYpi\ntAnWwohEAbMKQqRRAcmt/dGQKGDWQHCBLRJDp+kM1fNlmY4DQZ5pIEQaPUXsx84byteRKGjWQfKa\n2ZJGTyDxdEwTRTsO6i8N5MhHk3Yt9JqQKGhOIB/hQ74lopyK86J3htcIrN/a1hWRRgUkZGllgpAo\nYNY+GkeUUwGZstLrwkv0lwriiDS6k8zp4n41tkeiiUSRZh2ESKNSkpuPu47Glyb6kCjSrIOUTN/Y\nniBY7LMiZ0WwAthPc6Sp9dsW+r6138dt4//gec1bayCD/+NfX6l9JPpTj7i1ce5dvCnA5Gi9IlL7\nPKWWp8RtSpuS1traOTlaBQHtI7OvPebWjpW1VxyDwGgVBLTPmlqeMTfrscYSBUarIKB9ZPq1x9y2\nQWC0BoIL7DW1OKNu1TzX3tqYxtEaCGofkX7tULchXrB762EtjtZBdgksoqDuxIOxWYCjNRCs2loE\ncbbPzRuLfBydQD4+f4kM7NFUcSY6rMr7FeaDdBj951O56YH2KYmxJW5TBvE7H3BpH81egUV0WJ5o\nrrP2cWC0CsKkUSmNlEjl1dLmLbZ5MnQg6i8dRGqfEvlLS9x6P1bm9gnqLx3kS8r3v3CCYI3PipwV\nwQpg/5wjZ0WwAtjX54jUPjjm0SduxCz1lw4itc8jMZ4QN2KW+ksFAe2D+UufuBGzk/pLBQHtUxJj\nS9yI2UnZo4KA9kGA0iduxLwDBBfYJTG0xI2Y448xhf7SKoLaBwBKl7gRs3NSf+kgrxBYqKAKv2wf\n+ksDoUVdYhE3Yr7zPPSXBvIigQUKSlYiThGpv1QQopxKSOJGzKC/VBDQPiUxtsSNmEF/qSCvEVgk\nCugvHYQop1Ia4kbMUn/pICXTN7YnCBb7rMg/XpH8S165UEHiN/Yf/zhq0j9+6tp+pP1GiBQ6/+Oo\nrt1fX39IyOXyrdYAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}-2 & 0 & 0 & 0\\\\0 & 3 & 0 & 0\\\\0 & 0 & 5 & 0\\\\0 & 0 & 0 & 5\\end{matrix}\\right]$$" ], "text/plain": [ "⎡-2 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 3 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 5 0⎥\n", "⎢ ⎥\n", "⎣0 0 0 5⎦" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKgAAABkCAMAAAAlv4tJAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRCKJu2bd7818bEWMfqcAAAAJcEhZcwAADsQAAA7EAZUrDhsAAASASURBVHgB\n7ZzblpswDEUJEGYa7q3//1uLTQRIAfsoMavMqnmoiSPJ28LcTjXJbsZteXbRrZ/5suxminLa7hfl\nzDpLlxsLersq48rVMdC6aZoWz2xdFG2LTfJWrGOCezw6A61ttLvpwEiVXdWNeSDmfYtYbW1EdAZa\nGptN02/tPft5Zb8cBo8JfVUOalARnYE+hik7lRkpfKAd3IxyYIXX3agGFdEZqAPDD/1obEoR0CbT\ng4roL6BV3wQSKb7uHa7o5B+7+g3QOcQSXYDWTV+4lcdH8nx6mODEqjJ7F3SNLkAnosYuVHzrwzc0\nOxP9oXcIa/RX0Ok0PshpNfbLNj4vn0X4+ni3pmHQQHQGWtd2Gq27SLkJBf8pw5yVWxph0J2xttEZ\nqHHnhQL0bjnn6e2MM3fdc7uZIZ9Wqm5j0RnofFXujUssEHS+L5aIuf6Cn/HoDLSzN8+7Qade99Oj\nQZFDNzKjvuCL6Aw0exTTYwZ80o/zcyIA2rTG5OgjxPNQiugcFDjc/8okgcbOfMpoymjsDMSOl9Zo\nymjsDMSOx9foWFbTQ0tQgVDqFMSsdPMIENlgHzOC70BKnWLh/EjeEBltcuDpUqlTEKjSzSdAZOEX\nNTuqUqcgUKWbV4DAQN3IuE5BoEo3rwCRd11ZQPKcWqeYcdVuBwJEO70o14A8p9cpHKfezSdAZC3w\nbqHWKej4vy1v8LPehSuwt9BDnYKY9hQFq1K+J29Y0C/zNQfPneAYlGb1OoULr3fbChC/t9L44ECL\nkDyn1inmNKjdjgWIWZ/pQ0KuVqd4rgWtm0eAcPfGbggpH0qd4smZKd28AkRdNDmgj+p0CgL9TN7Y\nOeuXwJfaSaCxD0fKaMpo7AzEjmfXaDW90l1+qycd/Af+f/2F8/pDL0+gAEGJ5xIB9b60oJn04248\no5gAQRFFjQJ1yxY0C7hx0BESICikkAioW7agWcCNgyre66e4QiKQI9Fn0IzMqRVun4AKiYBGkC1o\nFnAToLAAsYZdJIK1a28PNJOuixsHRQWITbhVIth0vu6CZtJxdeOgzg4TICjkWqNAPbstaCZ9V7cd\n0EMBYk9RACog7OCAWSC6Bf36/jXPBBQgNtPeSgSbbrkLmvnc/nxvHkpAAWKNxySCtVvugWZeN3bo\nQQFiCcglgqVb7oBmfjcGCgoQFFFIBNQtW9As4MZAM1CAeMYUNQpyJPoMmpE5tcKNg5LRBdsEGvug\npIymjMbOQOx4aY2mjMbOQOx4fI2eI0AQM1gBsW/GQU8RIBZOrALioL6Cg54iQBAoWAFxYMZBTxEg\nCBSsgDgw+wT0HWUBLJx4NROg5wkQc17BCogdMw56ngDhOMEKiF0zDurCnSJA0EIFKyBezXZAYwkQ\ne4qCpwKCpjK3L4USDPQ0AcINDlZAHJgx0LMEiDlJYAXEgRkDPUmAeB5UsALiwIyBniNAPDnRCoiD\nQgkGeo4AQaBoBcR+fQUHXWJebyeBxj4mKaP/eUbdn3rpnppjZ8wTb/nFgsr+IkBZwn/C5ol5ylfu\nFwvKMvsLS4xH3W84LsoAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}3 & -2 & 4 & -2\\\\5 & 3 & -3 & -2\\\\5 & -2 & 2 & -2\\\\5 & -2 & -3 & 3\\end{matrix}\\right]$$" ], "text/plain": [ "⎡3 -2 4 -2⎤\n", "⎢ ⎥\n", "⎢5 3 -3 -2⎥\n", "⎢ ⎥\n", "⎢5 -2 2 -2⎥\n", "⎢ ⎥\n", "⎣5 -2 -3 3 ⎦" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P*D*P**-1" ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\operatorname{PurePoly}{\\left( \\lambda^{4} - 11 \\lambda^{3} + 29 \\lambda^{2} + 35 \\lambda - 150, \\lambda, domain=\\mathbb{Z} \\right)}$$" ], "text/plain": [ "PurePoly(lamda**4 - 11*lamda**3 + 29*lamda**2 + 35*lamda - 150, lamda, domain=\n", "'ZZ')" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lamda = symbols('lamda')\n", "p = M.charpoly(lamda)\n", "p" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMsAAAAbBAMAAAAg62YvAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACy0lEQVRIDa2VMWgTURjH/5fES5om6YHYxSUV\n99aKIuIQIRQRtFkCQoVmKEVxsA7dHFysbm1BBItDFl1E7GAUKegJXVxsJtcoqJNgddBSi/H7vrt3\nd3l513PIG95973u/+//vvbx8D0horRNuAjGI6WGnVBmEToKG7RR/JCCDmLab1u4gdBI1cnuJyCAA\ne2EQKokarUTivwCrjMKYkZRsqiZz8VTK8V6OJ0TnIFHjTQ8N+szN4iWUWOAJnnLWSOHwxingk/eW\nkbDqx9uezlmi7AkPDfqhbncdhQpQPHf3DGeNlFXDchmb3ltG4j2Gd0VHNiWrn6bM6xv08kuA/LYp\nMlPZHYw0MLzAPhpxh3PAN+CB6Ni8M9ZvSYZdScJ3QcJM5dewVUFhhTGN8G3uA9/bIJ1RkZoKBL3A\ns8k0VdpM0SxtGs4zpRG+zbTLNqSzyAzG2/IIutKRRcocqKmEmQIK14ioM6URvg1NXHdZZ5IZbK3L\nI+jSLteYVEUlzBSsF5eJOMqURgQ2+T+ic0WUOivyiHYngVxDJWKpV01giSmNCGzsj6Kzxkxxkutj\nYWqe2hztFrdZB8VtLwQiFDaZmr/gTQ09BDocRonn1erVavWiELyjpCPTH9y/kgu6z8Cbpm7TR1kO\n0jtRm5BQq8nWPBtebH4Vs4GDBPdoNS7yDZU1UyN7YvOYKY1QNrdB30I6/NM9a6Jzi9mg0TfM6Ueg\nnxqagE2XXnAEIoRvU6wh6yBVQYsW87Ov3BxCapUO9LryNVOpMpYXgBmmNMK3Gd1ofRUdWnGa0Fzv\nVWzNfHGBTFvZmCk8qp8mQk6DRvg2093uL9GRIqHUtKf3z+bkfpTVMBDqt+EprhBS8mTQ31Hp9Nt+\nVKR0Khx4G4ZSOnEsmuiJC5VwGE+piyCeEB2+jswt7YT5eEp9ZzwhOlY5FOuNxiJDqxwZ9ISRS7on\nHw5I5x9427KU031n4wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left(\\lambda - 5\\right)^{2} \\left(\\lambda - 3\\right) \\left(\\lambda + 2\\right)$$" ], "text/plain": [ " 2 \n", "(λ - 5) ⋅(λ - 3)⋅(λ + 2)" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solving Algebraic and Differential Equations\n", "----" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEoAAAAUBAMAAADYerbFAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAdt3NMolEEFTvq5lmIsfa\npuIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAB3SURBVCgVYxAyYSAEDqsxhBFSA5QPQ1bFMR2Ljs4C\nVFVVu55jqGJfvQ5NFQMjpioGBrlBrqpYCQSAgTuYXV9ngBb+6KHKvfLxGgYmdVRVu+ZZHUCNbbB8\nL6oqMA8lTYBFAohRxS5AjCoeLIqA7hJSwSaOIiakBgD0ZimSClhTrgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left [ -1, \\quad 1\\right ]$$" ], "text/plain": [ "[-1, 1]" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(x**2 - 1, x)" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJEAAAAyBAMAAACufiRQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEImZRO/dIma7q80y\ndlRAyO8oAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC0ElEQVRIDa2XS2sTURTHz0wek+dkEHQRCQ2K\nG0EaLYJaMfkGSUHrois33YgYUINuNEt37UqoGyOiCC6ab9BZuXHR0S4EoUQQ91ZFbavE+0zmztye\nSZPcxb33/M/v/DOPO3cmAKQdqdB+7PagJkvji005HWtM7TqibqU8lgFA9n3uCi1t3eAG1q7OyF7Q\nqaqW6PfLVLH2uJ7Z4aPSFy/pVAUhx3T6I1eqLhsL3QDAwvwIThlZWG+z2UxHCv7xUE6P+M2fwOnx\nlst+XViM75R2rJ/TcSIuT6bmVGWLeuKzewMwW6MHNbHTEkCVPSgTO5F7f3M61+kOpK5HOsVe7r9m\nENZZ516wk8OvE+YQyqHXKURjwtSdNsvYz42UK6wybKU2Eo1B2QbLLrO+9OnuB4/Mkh0Wajtjy4N7\n9G4FIfsP5c3ftDfKqVvJLpkcpd0BzbQb0KO5ELTeJOqpGs2Zjrlj0xBrD2NdWNMCmasAx5+zlAHZ\nVR9T6NPmE9jUSXjwbyj6oa8eHDsrUgVvyBw0qzu5v/rcW1J93uW5TTHqSa7OQ76hzcfI2UGMPYS2\n04O8o6V84lNId3zhcDrr0jnbGOqfn8F9Gim3xdin0rBdBP4+UiCSjvOr16uReXG7dKFNxsBSWVYP\ns3iG77bB9ZT+RktB+7RYc2suyYUWxjytkE1AAOLlO1ORGd9YBJO+gEyfBJDpGvytJFQB4fs4WWXX\nCF9SnJLttOcXBIQ7LQKsuwBtfyHEty8rsYBwpw2HOSmFoWAARex0t9X7FvJhAodwp/h3fa2iCgh3\nCq4ZxUEGAsKd5iSNjQJCnfK6VRY0lRDq9AWsZrAwFEsIc8pVIB/pNIAwp9aJk69ChxAUBpB44ISh\nim30+79URRMNIPHFmuhqoMNJYjtJj/DlHWHMt0zI/YjgItOG/L/S8yJZHGgtiHxqz8HJiKy9NKgv\ndiJYPP2uTfP/AZyWvOgMhkGnAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left \\{ x : \\frac{1}{2}, \\quad y : \\frac{5}{2}\\right \\}$$" ], "text/plain": [ "{x: 1/2, y: 5/2}" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve((x - y + 2, x + y -3), (x, y))" ] }, { "cell_type": "code", "execution_count": 128, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADoAAAAUBAMAAAAuMzNdAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdt3NMolEEJlmVCLv\nu6sHwGgPAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA6UlEQVQoFWMQMmHABSarMYQxsLdOdcBQsDX0\nFgNQLoyBeQG7NrosdwPD+glg2TkMDMHosoy/GPgVwLL3GBjWF6BJsx1jqDcAy/5jYMhfgCYL5EJM\nZv8BlBXAkGVXBbuK+ysDg38Auix3UDtEFqgXU5aBISYBZC8Okxl4jsNctX4BmsncGxh4f4Fl7zIw\nzEf3Ef93mCwwNJrRtDLwXGBg+g3Wy7SA/QjI78iAcwLDegGwLHugnAMDkzqyJANDRsc1sI+goqtR\nZcE8UBxBAEZ4AIXhsuwCUFXIFFyWE1kUxg5jEFKBsTFoITUATRI3V24DuyQAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left [ 0, \\quad 3\\right ]$$" ], "text/plain": [ "[0, 3]" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(x**3 - 6*x**2 + 9*x, x)" ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHwAAAAVBAMAAAB2y5cfAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZpkQ3Ynvq81UMrtE\nInZCK3CHAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABuElEQVQ4EZ2Uu0sDQRDGv8vDcHqX5E84Y2Eb\nxEepICI2Gp+FVUAREYuIYmHjIYhYCRZ2ksPWJq1oESxSp9BawV4EFQyocWb3brOnF4tsMTv7zfz2\nNjNDABi96GhdPDEWn+gIJqjmkTFeyAzMLpP9b90vXrXCdu7aA2IuKckimWMM1mnzl7kSeGq3HZSz\n6jSC5CeRYyQwbhSRdMmXa6T/NXDVnm4gM6ZO28Ca/2HGe0owNSSt+T5ibWLUVfgqsO/JdzOeKcFq\nqCAicApqjz/Jh/BRB9Y345Pijkjc75DMAGby8uspF3gooPudyPh6W9xe6OOYnwGL0kXPzjzCHYkL\nGG0ev1T1w7wlSmQOgMsN2tXjOdIO79LbmeO81LScHSqd+X/p7Dp69AyH8SO+wqXGVWBozYooXeY1\nhJ+C7hO/nWeHxiZGtwQrAu+qIPEVxNHtIF1v9R1TGPYoqFVeGxKmjCzKjyrjbnFuR5s6DD3vcZLs\ne2z3YwuJcSEoc5u7Eb7o+0mz+abjKqvlnLfcNh7Pq/wFEQmFCC0sCVzUL6zzKf74V/ulyGof/lLl\n0YhUQ2Ktykez0/+6eeAHbOFio279biUAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left \\{ 0 : 1, \\quad 3 : 2\\right \\}$$" ], "text/plain": [ "{0: 1, 3: 2}" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "roots(x**3 - 6*x**2 + 9*x, x)" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "collapsed": true }, "outputs": [], "source": [ "f, g = symbols('f g', cls=Function)" ] }, { "cell_type": "code", "execution_count": 131, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEAAAAArBAMAAAA6dJN0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMrvvmVREEIndzSJ2\nZqtw62vAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB0klEQVQ4EY1TzytEURg9hvHezHiN/8CUHfmx\nsqJmYTElNTtJoayUmreQkMwoJaVMykaakGxsZKEsMGrCQtgSKxvFYixmZqP47r1z331vmDu+xf3O\n+c65P7r3fgCPutaoAFXHcLyqJISEXcOwWkPHvtYQil0WtIaJI19JZzD60LCjMzSUEEjpDPURJMd1\nhmQKYzodyTja/EcaSzBrZUyNDuNj6fzKYwg9CGr9se50jorH0v4ugcpvY3HgUPJ5CZxsFGcAKyq5\nmZVIZn+eUMDZ2uiWgsxmmtCpZMCBghxZr5kokCO8cHdykwX6edk1hKmIDsBIWduBHeDJpXF40Uxp\nEzBts8Rud7jSwB+lh1ZAMMK0FnyryFOB/00yAHwzMlREJ+O0Bc1lm2GSDe7oZYQO6bfv0WT/PqRR\nZIZlIBHvwhnBGOOuaOSfl9ZdvF0YfCBh1yUyaEbYqK46lGZcde5okM36/VhO527MMR1oFwkoP3eC\njsvjeUBk58OUnatl3UmVX+4fnWvcvk+tOQt4Ae/cWTxmt7x1yUTnrmDdHpElbxada2PPW1ZMdu6X\nKnlRuXPrPr1lxUTnDjXlca2KbsQ7t7Hgy8vLcYsM8841Pq5zL5WK4D+9hXahHs01oAAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$\\frac{d}{d x} f{\\left (x \\right )}$$" ], "text/plain": [ "d \n", "──(f(x))\n", "dx " ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x).diff(x)" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "collapsed": true }, "outputs": [], "source": [ "diffeq = Eq(f(x).diff(x, 2) - 2*f(x).diff(x) + f(x), sin(x))" ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nYII=\n", "text/latex": [ "$$f{\\left (x \\right )} - 2 \\frac{d}{d x} f{\\left (x \\right )} + \\frac{d^{2}}{d x^{2}} f{\\left (x \\right )} = \\sin{\\left (x \\right )}$$" ], "text/plain": [ " 2 \n", " d d \n", "f(x) - 2⋅──(f(x)) + ───(f(x)) = sin(x)\n", " dx 2 \n", " dx " ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diffeq" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAASYAAAAqBAMAAADsX+smAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEd0lEQVRYCe1X62scVRT/TfYx+5hsh7YWRVoW\nbQv1gZukRlC0YxGxhpKSPpBWcBulmC/N+kLED1kQAlKhEVMfiHYxIugHKSjiB7GL/gGJ0n4RwUVa\nqqDjpto2SEo9587cOzN3tm4ILiy458O9v3t+59zzm3vvztwFeoaX7W5bBGPsia7TBOzoaVrRQemt\n04qWqXeeVrZMvXX6n6xTsuY9aM6JP/Cjcdf1PR8GVHrw28eDkUBbTp+vaS5vqNVfO+gAu2XkPglU\nn1wgaNy//2CyrHwB0ImUo7iBVONtNWgDtPoHpirAOZmzSQLVFxyC99Vg3l5TvgDohNFQXL1QU7gd\niNY3lm4EckWZlC5JJPsPCGx8nZq7HOmCKaN0AnhSBWGNTHgu8LVGWn2zSWFZmQ3jlJ41S44/bGqO\nBYzSpBPAzUHUPOreoK0mrX56hvJ2BRP9EkCBksT3XWH4TcBITTECKFT9sGRzAmUPt9UUrZ87dKII\nDFLuursfGS4Bt3jTqDZB9CjrxnrlU3sXJoyhfa/QxvVRPLBhaLOxd3rY9lJimoyt4xWKeRrWPXMN\nitHqryEd+IF+WeXcG1niP6UhjrpsPzPsrwGTHENmNUQHpUkS49/b2ICPS+/T0eSYzCwe9kO5i2ka\nqVifW7PoL20E+Hm1+qN18r0FpO30oukAL9EwbNkKcLIuPNYWzmeTe+cTaSfVwGFM2s8TxTEjFeMO\nEeg1MU0uzOVsGdbyMRslitHqT3Hal7ROKCwwnOcmZPkqcNpmh+3VQ9p1f/3adfeQyyeyjvUX0b9z\nlNWk5tDcvSKFHbTm77rueYbX2Ig3LtJgvgJczl7dzoRWf8L3AWIXW2o6yTFm3dfEuMQeWkBuzHq2\nmlwi8CePhKZLjALT1ynDkVNV4Kpx9FqRMGkK1z/LQ1o7El7n9lVuJt5hO8GQ9068mfqo+gx7yKQm\nScBcJDXLTGU45jKjwHRNap0uPogcP41W/zNOpTNm2juQsP0zHkwnzvhomRyHW2iSBLIlPJNoYsA/\n418AidAcuia4NFe+iMwSMQcpMFrfYJkYB45XfgJ/bbfyOGTpIuX/DTxLemPrJAmaIHOlv8lf0r4y\nJT8AYzN10mKaRmp4yvoKhTL9Bz1DUdH6GVp0sWE3DK27rUbwNx6HTOzF2rNjVfLFNMEnckUYewcG\nP6GYQp2axK0MlcU0GWPDDnYeeQzTcx9VKYwOTKh+eoEzg3c7v7ajNhsM45p8bhqvyahdEoR6pWnn\nnT+G3AGM1H+hUGOGntO31t9gnzRP+cBwfOB11oUXv5MOepXHbL3vMfZgshpjyRGp/95NXghvqrBN\nEqi+35Ewue1SSeJInxdvHeEK3VUiIWKQspGXjxVlw/Xn/KO4W4YoUjog7nRq1A4ET9AiMj+DlHhh\nxLhW9fkXw/Zf3n29GcNtYfF6mv6tfniGjuCs+J13ZOpVT3q8vOrUjiWK71XHZl/VxN6Nb1WpHUvi\nC2WXmVnEQ10mif9mbO8yTck3j6jrc7dIK9DVN/aN18X9A+3dFE2FHo6FAAAAAElFTkSuQmCC\n", "text/latex": [ "$$f{\\left (x \\right )} = \\left(C_{1} + C_{2} x\\right) e^{x} + \\frac{1}{2} \\cos{\\left (x \\right )}$$" ], "text/plain": [ " x cos(x)\n", "f(x) = (C₁ + C₂⋅x)⋅ℯ + ──────\n", " 2 " ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(diffeq, f(x))" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAAAUBAMAAAA+f7/EAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADHElEQVQ4EYVVTWsTURQ906b5ahKDQlFEOqKI\nGzFNRbdjF0JbiqW14semtuLHQo1fC6mQiCCIC7uoiAs12CroStCFikjxB2iFdqGrLtwoGGKVtkKL\n3nPnvWm0iT0w9517zztz582bvAAGHWYcs4WaY6hopYDRtJJxddZDaMJYGzx7j1pjFwVn02ZAGTOa\nqhnXTPUV93CCYH8+h5SnVOzThtQcPlNpOD4HKGNGUxVj/SvgnFyEM78WeOBziYOGRTJB6S8Sd5k2\nXynAZyrSZI1aYHA+poG6n34eKcs44nOJ6w2r1SXmcUJeLp8xU5M1aoEh9V1C9Kmfh4eBkFwGqYJP\nanVpV/mkRJ9pSpM1aoFhe05CwiVF/PAtF/XCndZ9V2XVdUIJ28XZMpBDU+sJJHaNTks9S/Hhyx6f\nVZiskToR+sXoeIzAqgyQLAJNeJy5J12nWVzq0plLPE+MIJnZAHDFn1T9YViFSY3hksIVOcw5xDuG\nvePyimVxR3AmfUHuzlsJ7FpKiCzE+pFYuJGGPA9uUwwtGFZhskbqRIxzBG8PMnIjGwtAGt+YJsoS\n5JG+vCmVumXFM5K+zwGzscUd1F8w6BdDVmFSI0WDRm4+HOASR24kuwC6RDvZrCXKYl7kRef0b1e4\nduEX47MlkzWKoojxcXHZdJkSzjcmL4XlKG8gMF2CtczsRnxe6vrGkt2WLZnUGL6joOz/UlzT5ZlU\nuPtn68toWb77JWnY6CI6fx44JFN19xszhlWY7GcjiiI0K0M47Xdx+IBhuc1csszjr65fcoHd/c4i\njiZeI9U/lMak1AcoNhd8VmmyRuqKfBGRjcK4L1H9hQ7D6W3JPpE8NS5BYLs4PTs9tB07gGujjwpS\nv07xpjwiWaXJGqkrnG19W0nYJTxBNsKgaDej7WLSYNBz5RTTihOGJmsMZloiXS6misyWn5b2R2vn\n2jHuItL9lZkwi0EhvKpiCLi7TpWkZyZUOcD/sU4i9mFYa9wmRY2T3xfb7vdiVP6NBMG/WNDOn1Il\ndiGe9bTeZVWaVjbK7A7jGLPOmiM/RB8Bo+l/xj+9PMZAvMjSZQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$f{\\left (x \\right )} + \\cos{\\left (f{\\left (x \\right )} \\right )} = C_{1}$$" ], "text/plain": [ "f(x) + cos(f(x)) = C₁" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(f(x).diff(x)*(1 - sin(f(x))), f(x))" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a, t = symbols('a t')\n", "f(t).diff(t)\n", "diffeq = Eq(f(t).diff(t), a*t)" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGcAAAArBAMAAACX9YvdAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMrvvmVREEIndzSJ2\nZqtw62vAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACMklEQVRIDZ1UMUhbURQ9xuS/mJCa3UVwU7TQ\noUtbCJ2kBY2zoAEnF/PBUhBKk4KL0kGEgtIS/tCpCoq4uGhEEcesooK0i0OGWFC76b3v5ut/ifn1\neeD99+499zwu/917AUZbT0bvdp/OrF28js67TxDNPUGDn9ai5ODupbVoYj1ybStSbxD1bEXRa3QU\nbUXt3SjkbEWFIsZtNShk0Rtbt5QlyqlS3FIDVf2yfRAUJStsHQddoecP+5Tnhg559uiMz8ezwAqg\nvkN5D19PlAl19RFIZYBYDfhqcr7FlAHt6KC8uESmDerOaKqe+AJxW7S4RBI5OjSjsXpSf0oZYB+Y\nej5QRpTOJjZn91xNGe7OMpn9tLhEUh59MP+LofvNeYU1oZi4w06ajt9ovaMV41yDmK7grVBBr9Tg\nS3It0WqrGRww7OKHUDc+OESPChKpq4dEL6AuhDJuG2CL0nNqcOHo9OaWGSXyq3/8fJoyRK/Zoh8R\n92Lp+o+459UlIt6opu6d9awwS2979ok+xSBH51UcnRU1FSQcPV8mgWR/hR43HeTo/Pmwq5rTVJCI\nd7PFZcTgymgNf/yPJeh+KVjeWxQsUwwa/zN0/eKMmH16a9UaEgPkXf2sJ+/FIU0YqWfpBzXu9KZc\nNz4e1+5Ujlw3FuDx7/z+W7WQAHr8N/Vw+BUy/pt6OFwk47+xh8M1kPFfyP0nzKRl/OehTHe4JeN/\nHiPhYSYr439IlU13uCXjf+M0PMpkbwHiw5D2BoHHwAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{d}{d t} f{\\left (t \\right )} = a t$$" ], "text/plain": [ "d \n", "──(f(t)) = a⋅t\n", "dt " ] }, "execution_count": 137, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diffeq" ] }, { "cell_type": "code", "execution_count": 138, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAI4AAAAvBAMAAADHk+9wAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8y\nu83OyatpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACrklEQVRIDa2Wz2sTURDHv5usm2ySrsEfYC9m\nrVq8qMGTx4egoCAqsUIRMeQgFKSEiogoJCdBFOzBFESkQW8eRPFkvQT/AI1iDx6UIogeJE1RpAUl\nnXm7+bXtmjRvB97OvNmZz763mXkbQF1yH5LqEMAQmxaC4Jgi8TsQTlFfDoIDRJaC4Zhpdc6wAHLq\nGBSAmB0A5wBwC3fVQTNIfL/2XoWjj+5+Eb3wLxNvNOoqnDvCqiOihODHa3MIVRFaUFkK54aWQHVj\nZlU58SpSFaSKqpxUlmvnHjRFUCqPLxExiZuKHCsdKxnYq3l66wRjY6J/uJa5fPQwTj5tZ2w5JKBX\n5fxs29uyts6PlY+1Zv8xzhXysARArbtzbVh4Dpii0VO05R3AYwqj1294dkvl9ilJtdJxcF7xA8rS\nvk93qXW1594oi8+6aIfbl2NMAzoNzND44eUczJMnYbfdfpzY+ZKNsA1uXWCknSAtfYWVJuREXvw4\n2JwGhsp0Wtcp7pmMnayxfCXb+CUdwFtXw5dzqgKYtHrZuteb4a42/zrGm/HmDV8O/UyIF4mVJeMd\njU6Jy08K9ZDzAFrow1rtG0c0uoQcEzSYI1vXyzF5s9xDrYX6rmeeAnlfsnVvcxomHrCUyHIqx+6H\n85LC+T3L1nXeM3lc0f+QYST74Gj8cTZsOK076ua3VKGMyC6a9dxXVBbsNJzW/dkCuIa2f2wfmz05\nRpXDuC9IZF07pue6Pkcf+VxxAq9aZTa4T0nW9qnjB240jW1Ng/V2GO5/lkfD0j8kpFrn3JB+HJnN\nOEb39Qzw2vE82SO1e4597A7rOXsFXKx0RW34XJXZi0kvpwu6kcksFVcAEuVCDUDM0wFACOE9+Aak\nhu0BEz1pU9CFxzXIlD4A4SA4xy/lxgd5vjdnsdFYkb5V1uSadUMt2CgAAAAASUVORK5CYII=\n", "text/latex": [ "$$f{\\left (t \\right )} = C_{1} + \\frac{a t^{2}}{2}$$" ], "text/plain": [ " 2\n", " a⋅t \n", "f(t) = C₁ + ────\n", " 2 " ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(diffeq, f(t))" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAAArBAMAAABCy53VAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMrvvmVREEIndzSJ2\nZqtw62vAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACjElEQVRIDaVVPYgTURD+8re7yV70sLVIwE7R\nExEsRNjCIohorESucOEqQbzANSpiYiUnAVOqB7KKWIjFIjYWygriWViksDlFCLaXYhViLASdeW/f\n7sNEjuUN7M7szDdf8t7O9xZg23NUOIPbxKCXW62pIYEzMCSoeUYEL/uNtgmBdRxLHROCtSFOmfTj\nbAf3jAiOwP5pQmD/QiU2IpigGCybMDzH1qhnQnDzw96xrxO85ocvemZOLED1cE4FbpOzu+bWUrwE\nYTtNaEEthL0BO9BSsyGBcC3E9dkK8AnitfTn1dIcgXARcKI0kwUbQDkA1rLMnIhAPL/24dmaOwCq\nPaDmz9bSDIPE/D5NUxTYH7cv97Hg4crSoQhlT69x7LZOH8tA1rcfY+CkDrqKregBikOxOtQDrjnP\nhHkcr4S1GBlIzO9nLii7jbudZVTbYnWo8L/UzT6BchMZiDcKF3REB4/pseTL1RVietCtPEU1Qgbi\njUIDf5Qx/jddJV+qc4ag1ER3MQOh69NDg67MCt8ppiVYMf2QJZbg3Bc2okK3x28eCoRV2MAlyqR2\nfiHGJm+iE1QWk01Mi0TQxv5KmIJwB+cAfROtSTF2qdtDeXSDhqmnNXNYi+oPnQyEM3YEtDSQPd58\n95U+MgO4B4eE5/XqZo9vvXmfgfCCwHikI5KYp5TslXT/uScgMZEo7PN0GOuEbGcxESgR0+42S1NZ\nUYQ7yFmClJxXO+IFJQzyrEgQivVfnxwoB2R+XQ6vAuU/0p7I4VUEOb3bejuR0szZqOArYXFq8mlh\nkQbiDFOMOT2LtCfOsJyNCs4i9aU0VSqflyIV0szXqNBSpEKaKpXPC5FKaeZrVGghUilNlcrl/wJw\nELoqKqKvswAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{d}{d t} x{\\left (t \\right )} = a x{\\left (t \\right )}$$" ], "text/plain": [ "d \n", "──(x(t)) = a⋅x(t)\n", "dt " ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = symbols('x', cls=Function)\n", "diffeq = Eq(x(t).diff(t), a*x(t))\n", "diffeq" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHAAAAAYBAMAAADQaWRPAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHarIkSJZt3NVLsy\nme8Q6PJIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACDElEQVQ4EZ1UTUhUURT+7jhvfp7z6DWKCFI+\nFIwKU2whLpTZaEGUgptWNbrKhfSIoO1UIuXGWbQpEGfpJhJGmOW8pZsYMUEDNTe5kKAJ/8CV59z3\n7nuDM4bMB/ec73znnjP33Z8B6kLcqasMaDfrLFyqo06sDziPP277lWGb6Ws/vpS0OiUTX4L0I0kb\nUoGimLh7vz+cVhF2sAoc+SE+AWIGIhsoit2zoe/K9UjlAJ3Q9lQS0TVALwOTvqJI21tiv1IqFEco\nXA/1Nqs4RhmDfu6mEny/aBJ95of4kzi2DSuthIdEYhTFx5TieeOMyfdAHb/TbWt9DpDsHO6y0A2M\nF/MWjLVgimSjGXbeylo6NqTIRqSj72JZFIh+oxGl5QJTnxkLTF9abIEEJbQZjLgR2YgZ+aenMEf0\nJw09Q6YS846MEj8ywJOcCA5eIL5Mqd80ZmkkymQq8dfkyJQdh17dkpGXv2YRoUJxTL6qcJ5n6Y4s\nPGQeoOQQp6VqZWqsZTjx4gPjPVN5gob7DScsKOhmD0Imb04kS43dzVFJ8qNpMhNu4T4Q8lPPc0U8\nAKbp/HuTZHheJfRT4Ct9Ge/abYjgOJo6kps28BQIF8hXP+0b+cEx6sSFofU3lT0l5yvH4BtUE1xY\nC3zJGdWX3NWh73nkoluRQq1nJRPhrUPrYokbuw+5MVU7+x/1yn8dXo9z5NBpFAOdZBQAAAAASUVO\nRK5CYII=\n", "text/latex": [ "$$x{\\left (t \\right )} = C_{1} e^{a t}$$" ], "text/plain": [ " a⋅t\n", "x(t) = C₁⋅ℯ " ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dsolve(diffeq, x(t))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Numerics\n", "----" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGwAAAAPBAMAAADzKDcKAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIom7VJlmdt1E7xDN\nqzIhoty3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB10lEQVQoFZ2SP2hTURSHv5c0Tc217UNQ3AyV\nogg1Ql20SxcXQRqEDP6pvK3QpV3cRIuuilmcS2kHbQt9uAiiGHQQh9IubUUpeQidJbWD2sDznHNf\nNLMXHjn83vede+87gWNDF+lae1n9Md4bx10fCQlqownkzpwHC0GYoMpEZOjVWH8eyaPVWroPr6Ng\ngbfkfuE+cTsLjSkeMDgnqNtqqlZczKr3OyF8gS2+wjL5KqNgoTIcecG7hvDwQLUTH7JqU6M2VHgO\nzWRemoCFnqFzSNPK3Zr7Ic2SjVi0y2plmjG4hxbZbr1hR9ueugOrsltd3j6N29/uSmGhZ4Kzt/5p\nr+hoY5yqywnZiOQi+64dsQQWegbOaUN/t/JfDfJzHJ3tqYxD36ZLY27GAknoGSitqKWH7Em6tEIL\npu5XEqjBT5jR7oWWZ4KQ/IFaqr2ko/U3dFqymjHFKjwWLbLQM4OHXdq13d3fO9ag1KBwqNo6XCEI\nZYIzdQs9U7pAn5xGluwma9FXBblRg+lwoMVAlWL4Xe6GD43pjZiYdTLXTJNRaSX/uemQe/GbiJND\nw5/pL7ulLARlntUuwROYXFuP4HS67avjIzKXXO2GjCBN5YMMTyZgoTEi/sf6A7kFttvKLrt1AAAA\nAElFTkSuQmCC\n", "text/latex": [ "$$3.141592654$$" ], "text/plain": [ "3.141592654" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N(pi, 10)" ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x = symbols('x')" ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "collapsed": false }, "outputs": [], "source": [ "expr = Integral(sin(x)/(x**2), (x, 1, oo))" ] }, { "cell_type": "code", "execution_count": 144, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAOBAMAAADDIxFwAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAoklEQVQIHWNgEDIxZQCBPIGgAgaGdAaJCSDe\n+v+fGRhYFjAwJwA5DMnngILcBxjYP4J4B0AE/wEG3u8gxgEQIa/AwPsPxDjip8rAMN+AgRWonYFh\nI8P8CwzzFaA8oBENCJUMDEw/Qaawg0zhSWBg/svAvYGBBWQDVwID00eQ7UwJQB4TAwMHkG5nkApg\n/MbAqcDgBXSM8LujDAw9DAyTbBQZAHJpJhsPt5MdAAAAAElFTkSuQmCC\n", "text/latex": [ "$$0.5$$" ], "text/plain": [ "0.50" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.evalf()" ] }, { "cell_type": "code", "execution_count": 145, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAOBAMAAADDIxFwAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAoklEQVQIHWNgEDIxZQCBPIGgAgaGdAaJCSDe\n+v+fGRhYFjAwJwA5DMnngILcBxjYP4J4B0AE/wEG3u8gxgEQIa/AwPsPxDjip8rAMN+AgRWonYFh\nI8P8CwzzFaA8oBENCJUMDEw/Qaawg0zhSWBg/svAvYGBBWQDVwID00eQ7UwJQB4TAwMHkG5nkApg\n/MbAqcDgBXSM8LujDAw9DAyTbBQZAHJpJhsPt5MdAAAAAElFTkSuQmCC\n", "text/latex": [ "$$0.5$$" ], "text/plain": [ "0.5" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.evalf(maxn=20)" ] }, { "cell_type": "code", "execution_count": 146, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAAPBAMAAACGiUnsAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC/0lEQVQ4EbWUz2sUZxjHP7M72c3uziaDgpQc\n3G2CAdsU1mzipZIsePNgFr14EDLBFA+xdqG3ImShoIg9LNKLXlxBK9KDUfCg9jCk6UEJyR69JSgK\nQjFumx9Vq9vvO+9s+xf0hYHn833f+c7zPu/zDuwaG8eMs/6xWheOEUfl51VOLJbLJWfocFWLDEdj\nV/kxWDE5Ma7oUAMuf34f9j7/QitO84kEuNP581+4FEd7WomAqU6nE6ZqzkWImO98nBtcbRCJztcM\nM1DJ3MYJmWxRxKvhNkkGMuXUSqMLfT/H0T1yC+wHjyNwEAw7i6s+XhOvaMVckUc8gUU8n2wzXSET\nkAtJt41rqCeGH+dslH9rJkowzi8w71tmw6c/IPnGimtmp9swSbaOt5VcwKnTH5LfMS+HemIozdko\n15SmkV/nb1irxSzXwgJ9W1Z8qAXOe9ioptpyzb/3kxUKRfIfzatLR/fF4DbmbNT/1YSpPDmcP+S6\nHrNcs8r1gxW3jz9r8ZNybWllb5vVzTG4VqJHxwR3udaysJc5KxdmydY0NUZGS6ZLMctV209tRuKB\n7Qq3tH2+qWjlWolkZ0auxdhVKdUtlIyrkQttEte1vzdklKtcLcuVs3y7E4kHOj6f+an19KT5/g9w\n7um71n8VgMTbgilHuirXKOqv436AvqBbAcvG1X19fMtW4C+YanH0xWRVDkXckI3r5ljS5rQ8U6kI\ndiPXKOoNcDdVrAXMwczXYjaueqFtxfNyrYhXpT6DbIOeHdOQruks1T/RjuDc8vK7lSjymlGuhRC1\nJFN+zNY1FVpRrapc4Qyki1wpKFwy7Z4IFCWUU9CF6BYkgh7VsamCFjENP0zMcnVvM92w4rTqypFG\nj3pbF/2VcuUBXGCg6myT0VVpRKBPqP2MzK8M1LR1ufbWnJvELNe+GWc2Fr2Sc4uX/h7dqe/LI/X8\nDO467H79W3R2lw99GgNfdpasnBzUHFfl7Ez8XoWIR+6cqTA62OqKoyNVTaixU/ph1Dk5pPB/Gf8A\nJ7EeLFNgD78AAAAASUVORK5CYII=\n", "text/latex": [ "$$0.504067061906928$$" ], "text/plain": [ "0.504067061906928" ] }, "execution_count": 146, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.evalf(quad='osc')" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAN4AAAAPBAMAAAB5K2wOAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADeUlEQVQ4Eb2Uz2scZRjHP7M72c3uzm6GFKQU\n6W5TLGhT2HYTL5W4oCcPJrSXHgrZYMVDtAx4k0IWBUUUXKKX9pItKGJL6Sp4sC10aNNDS2n3KF4S\n2pMgTVbzo21s1+d9nlnxL3Bghuf7PN/v+53nfZ8ZGJ2YxF2nw2PRABwjidJTk5y4UatVvf1vzAip\n9tA95Rqt3QZLOo7hxYM/w96HhyBXOxqZ8D901fAeu1suebn/FwPwRRJ5H3CA6X6/H2ci73N4oZtq\nwEch3reca6FJ5Sj2Yl7vUiGIWCS7YUKy5+XFHN00fpu0rAHv3GuRgNLFJCpUuMrLEPAWvAo/Ueh4\nN+6HBG2CiiWVozgIybezdXIN1iIem/DF8Z7oHd00hZisZCCWOwHfzCfRiuu8CpNcg4Ww+EQgrIWM\nNEivW1I5ivNNgs10B6/Jb11vy4SUZHUtm2YkprjtVonlTkB1PomuuAIUV/kbVqJCW6H4lTuUNi2p\nHMWZnvgVd8J0XWiynypUPy2bplyh+Nwts/z2SxjwW/NJtHX8QVdKBbw/xW915N0pmQXXX176e2ZJ\n5SiW0nCP+xsTErBbtkWEqJ+WjbNUZUgGBX5kqWtgL/No5G3V+V5KE+SEMlstnyIfqZ9sZmZDk4eV\no1iYK1XS/TkJvv44VKH5adk4S5XET96maaDq/Fza64e8IsO4Tk76E78eqfPqx2k+3NbkYeM4LAZf\nwplfn7o9SV+SsVyXwJ2f0u1hWygpSD1RkJ0RP0s/hukupcZgP5v4z8zPf3R80/bTOA7LChX8mDV5\nJ7gQOmHip2V9jMh8ujcL3Iko2IX4WfpT8asz3MGNxkI03MCXMZDzc4KeJY2jmAeQbzG0zVm4HqnQ\n+rOy0xQ6+K5jOc1UT8GZu3ef3rP0He2vHCOfIdNh0P63P8jEljSO4myFs2VZaxnZZPFzwoGf0JXj\nt0k1JEzJcDUGQL93Sc/K+cnBVXCf9gGG5Pza2p//A7MtSyrHsPwGf5f++IWL8FVLheqnZePwGXtm\n5OPMye+ipUDMd7AoqHoynwviNxx538FN9kTqV5rzTiVJ5SjOfVIbbxbn8Fd5k+xzE6qflk3Drke3\ndK4WX9uHAY72l5PoyPgMnBMPb+oPidJjwh2//H6dI2PdQVI5DmfkR9vk5P5D8qGPHZS6E6bubC1j\ndNVIN//n9Q9jJHWgCJj6iwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$0.50406706190692837199$$" ], "text/plain": [ "0.50406706190692837199" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.evalf(20, quad='osc')" ] }, { "cell_type": "code", "execution_count": 148, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH0AAABKBAMAAABk0UYDAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMs2Zq91U7yJ2iRBE\nu2Z2muS3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD5UlEQVRYCe1XS2gTQRj+t2k2TbZNqvSgB0lQ\nL96C1IuKjSeRYhsUEUVpDoJ6kAaLUJFiwZuvBiyiBWkQPVQE91AIPQjBi+ClxQcVQdqLh/bSh6Gt\nfRjnPbM7E2magx7cw8z3f//3zc7OzL/ZAJDLStB+i63Vmt6ik9ns//6aFvCvr1+2puk3HCjlahrg\nHza/4nNzUhxV00eSQv1WIB0EXro6iZnnko4mJPajwULKT5HYvqnQXxXshc560LyBhSIWslEKGRyY\nrvC8iUXcR8yPtq6RtJ0lnaEJThhIRNnUGKYdnDOrAAbMs4dgkji4v7u/wgDDRXNijhq4nw2na6dc\nncPMBUpzf5Q9hyZe1hhCWOtev/Ozgq5k5gNZrx92m3XhCuOGUj7/cL9xgCY2T38yPk0Z/vwwwAif\nMFZhXfjthJ9PyOePp30ECydZL/xNZuFcyuzvo3Tg2GIHRZF5o7AzJ2jrhoDg/JCYoihfqF09aqqr\nKCJrVUCwtG2RzJKUgVN2lUhCWxURWsyoUV1xu8Lxiy7IsRjiBy2iLmRkQ+oatkkcXpGYIa6sSyqp\nOvbM1qOZxP0SbO/ZOUgWNKL7rxHb7ZF4BsYG7w0RGcTYc74BSMNeVHW5BuIMqA9J73cdd429MOU6\n+ejZYIKwA+w+71zIwScAdGx+4UT9PEmrzRkcFKZhP0TcyJrdT3LdTBfceAzY/wGA7Bzzl8lFlED8\nbS56kzlQN0E5eJ2gwHlWTmL/N+Y3zP80VvaBg89RLEdtMJWk4C6g86X4K6yfswo2nnG8mflvZSi4\nAtCh+sP6/vchpbMETYnLtjsMYRcbxfG75MIXPHk+f3Ha6fC4JRWxD76n8uOZKXhAEo38+L2fmS22\nlNtbykevLqdQyubVQmS4QVNH1+jQjuPF0SdjR6ZxBOES6fRGVgvP6QzK1JPN5hK11+pXrygkD+rL\nxAY5qQ6GsWFH0D7izTBebX7WcCLRPk74ZTyeI/vDI9SHTNLhvKLwQFRl+JKVZvyd7SwSlaGhr2ul\n0vgL3aPt8kRqECAro1TaZzXL8SIHWt9IDpCsNOPvp/rG9Y9wihK80sTviKozvCVFmm0ArzTjz1d9\nVsg1EEoiSlaa8fslltdsgiDfT7LS9oiEAsablcAPsUNUmudjkilfwAm/R40H1MELRTVF8aTVq5OS\nsdMS049JJcbwzlP1Dr4kClslFZ2QeNOoPiekf/p+FyINHOaM086Rpw+P5D1xtcEsXKzW4tGfh5jr\nIaoLnAUIZaqzeNTWCgSnPUx1gbUGFf66bG4cdP+Q3OLNeVQVev5YUSWqxTWuPzyscf8jBw9VO2VF\n/xvzdALdMJUmfQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\int_{0}^{1} \\sin{\\left (\\frac{1}{x} \\right )}\\, dx$$" ], "text/plain": [ "1 \n", "⌠ \n", "⎮ ⎛1⎞ \n", "⎮ sin⎜─⎟ dx\n", "⎮ ⎝x⎠ \n", "⌡ \n", "0 " ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = Integral(sin(1/x), (x, 0, 1))\n", "expr" ] }, { "cell_type": "code", "execution_count": 149, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAOBAMAAADDIxFwAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAoklEQVQIHWNgEDIxZQCBPIGgAgaGdAaJCSDe\n+v+fGRhYFjAwJwA5DMnngILcBxjYP4J4B0AE/wEG3u8gxgEQIa/AwPsPxDjip8rAMN+AgRWonYFh\nI8P8CwzzFaA8oBENCJUMDEw/Qaawg0zhSWBg/svAvYGBBWQDVwID00eQ7UwJQB4TAwMHkG5nkApg\n/MbAqcDgBXSM8LujDAw9DAyTbBQZAHJpJhsPt5MdAAAAAElFTkSuQmCC\n", "text/latex": [ "$$0.5$$" ], "text/plain": [ "0.50" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.evalf()" ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIcAAABGBAMAAAAUfZooAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEHaZZiKJVKtEu+8y\nzd3blrGjAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADcElEQVRYCe1WTWgTURCeTZNsEjebpQcpVGWp\nUoogLbSKgmJO3rTBiqCIDVYUL7UHxYOgoehBBZOLHkRsrHrqIS1SUC8GRURFEgVRUbB40Jtp/emP\nWuK83bzZl00sm2QvggO775tv5n28N/tmdwHQmnsAdh5mqH6Tzl2Z9K5X9PoVcKYHYGw1wKWGRLwA\n4RkAuVGR0BeAJw2JyFnYtOqF1NWQCGzrzkqDb7TGRP7PrlqBpkMu1LWjNVFVvBZSWlD1Ur48UctE\nMdczzb2WjdgB9ZmapnmeukX6dRdEOlMuiGSsB1z/dn7RQqBuEWXeBRHPVxdEQgsuiESEs1F3TXJT\nLqykN0EiTRcWz5BTDnxR0/fGyvmSl9Sr0kg+EyJ7edLZEnh6mzNsLFgHVqQR5+IW8YrDlRzMcYCj\nVLQOrEDboLeLE37dREHheYAsHFieWDmqVApp3Iz6p4Qs/0/BKYf7suTvJwRvTRimtaEfnrXiAnpw\nbJ0vk1DebW4bZix+86G5Y0+7DtDN/L4DuSFOoBsRC8TihklpUCGcAHUU+tlObmLx4t6Pah5gO7rB\nSchonEC//4cxy3YLTuBPRygBoXGIRDH2GcCv+WdkFDyFbmsUthCB/ulpvDErWoZeYTRmiOQhoqN7\nF1cC4TQiyOG1VYNPRKB/FFdYxZZ/+GaIpEkEd66zRCZyDyTWtiaBINOFtwrzadCbYtspieB2cHqW\n3a/homZBZhswCQT3h1jEsoEbGjqyDoGoIIKFlbVO8GAMCyvNQSh/nBPo2w6sPxbIM5EJCMVwGXwl\nAwAjQxnYhaENeL2EHYk4J/Bh2Q6sGlPY4woeXHNESc6vSM4/ztxBH/fQ0tbcE0X4Hq+W9kfDKU7g\n36PwhsUoqCkfK5ndrGPvm7LHAALf7ZwsdhYPVjYgj7BR/S16BqPbGebf4iS9CjiBY2RacAyINaxi\n9FIiNSEplxYcBq2FlwV8UdOt+nrsjFOu2aWX4SoxTkEyxTPNplRen7jOGcdjgTLNLl1WLFZUiVL+\nBhYpwLuUCMdAEd9r1JSOp5uJXvGYUFPWKBIYpwlWUxLlEETilGg1JVEOwUiWEq2mJMoRGITzjvKW\nTBpTJpeMOwruXpt1lPfPJD13YaUPL7ogYnxYG9ZhX+eG7b9IZQldqcnJSt2amb6C8W9Y8zxhwh9S\n8cz3p0rW0wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\int_{1}^{\\infty} \\frac{1}{x^{2}} \\sin{\\left (x \\right )}\\, dx$$" ], "text/plain": [ "∞ \n", "⌠ \n", "⎮ sin(x) \n", "⎮ ────── dx\n", "⎮ 2 \n", "⎮ x \n", "⌡ \n", "1 " ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr = expr.transform(x, 1/x)\n", "expr" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAAPBAMAAACGiUnsAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC/0lEQVQ4EbWUz2sUZxjHP7M72c3uziaDgpQc\n3G2CAdsU1mzipZIsePNgFr14EDLBFA+xdqG3ImShoIg9LNKLXlxBK9KDUfCg9jCk6UEJyR69JSgK\nQjFumx9Vq9vvO+9s+xf0hYHn833f+c7zPu/zDuwaG8eMs/6xWheOEUfl51VOLJbLJWfocFWLDEdj\nV/kxWDE5Ma7oUAMuf34f9j7/QitO84kEuNP581+4FEd7WomAqU6nE6ZqzkWImO98nBtcbRCJztcM\nM1DJ3MYJmWxRxKvhNkkGMuXUSqMLfT/H0T1yC+wHjyNwEAw7i6s+XhOvaMVckUc8gUU8n2wzXSET\nkAtJt41rqCeGH+dslH9rJkowzi8w71tmw6c/IPnGimtmp9swSbaOt5VcwKnTH5LfMS+HemIozdko\n15SmkV/nb1irxSzXwgJ9W1Z8qAXOe9ioptpyzb/3kxUKRfIfzatLR/fF4DbmbNT/1YSpPDmcP+S6\nHrNcs8r1gxW3jz9r8ZNybWllb5vVzTG4VqJHxwR3udaysJc5KxdmydY0NUZGS6ZLMctV209tRuKB\n7Qq3tH2+qWjlWolkZ0auxdhVKdUtlIyrkQttEte1vzdklKtcLcuVs3y7E4kHOj6f+an19KT5/g9w\n7um71n8VgMTbgilHuirXKOqv436AvqBbAcvG1X19fMtW4C+YanH0xWRVDkXckI3r5ljS5rQ8U6kI\ndiPXKOoNcDdVrAXMwczXYjaueqFtxfNyrYhXpT6DbIOeHdOQruks1T/RjuDc8vK7lSjymlGuhRC1\nJFN+zNY1FVpRrapc4Qyki1wpKFwy7Z4IFCWUU9CF6BYkgh7VsamCFjENP0zMcnVvM92w4rTqypFG\nj3pbF/2VcuUBXGCg6myT0VVpRKBPqP2MzK8M1LR1ufbWnJvELNe+GWc2Fr2Sc4uX/h7dqe/LI/X8\nDO467H79W3R2lw99GgNfdpasnBzUHFfl7Ez8XoWIR+6cqTA62OqKoyNVTaixU/ph1Dk5pPB/Gf8A\nJ7EeLFNgD78AAAAASUVORK5CYII=\n", "text/latex": [ "$$0.504067061906928$$" ], "text/plain": [ "0.504067061906928" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.evalf(quad='osc')" ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACAAAAArBAMAAADrk5cEAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIom7VJlmdt1E7xDN\nMqsI8sYEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABAUlEQVQoFc2RsUoDQRCGvzOcxgTMIVgLViGF\nWNiIjbVNbKwkcp1g5Rsk+ARp8hBikXsDDxs7O3sbtZRIGkkR/525hI294BQfw7+zswsfbO8dwlPx\ncuIgOaObM55/4WBjSmvA40eGg807HkpeURlCoyvWL4LmLbxf9SpA0r6AY3aHjnClMxRqgwWgca8+\nnVRIMmrTrZK1bwO0ZgoaJenMoPkD6pMU6qUB1nO6N/r/dWbQotH5Eezs622Dkv9R81/1578yy3rl\ntHC4ZZpvn4XDLeuwHyYEtxwFamV5JQiW48Asx0FleblUZ2Z5GZjleIdZjgOzHAdmWcHl+Dl3mOUw\nslI/RHt1xyJNyW0AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{355}{113}$$" ], "text/plain": [ "355\n", "───\n", "113" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nsimplify(pi, tolerance=0.001)" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "collapsed": true }, "outputs": [], "source": [ "expr = sin(x)/x" ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1000 loops, best of 3: 397 µs per loop\n" ] } ], "source": [ "%timeit expr.evalf(subs={x: 3.14})" ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 13.44 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 308 ns per loop\n" ] } ], "source": [ "f1 = lambdify(x, expr)\n", "%timeit f1(3.14)" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 16.41 times longer than the fastest. This could mean that an intermediate result is being cached \n", "100000 loops, best of 3: 2.2 µs per loop\n" ] } ], "source": [ "f2 = lambdify(x, expr, 'numpy')\n", "%timeit f2(3.14)" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1000 loops, best of 3: 306 µs per loop\n" ] } ], "source": [ "%timeit f2(np.linspace(1, 10, 10000))" ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "100 loops, best of 3: 5.19 ms per loop\n" ] } ], "source": [ "%timeit [f1(x) for x in np.linspace(1, 10, 10000)]" ] }, { "cell_type": "code", "execution_count": 159, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from mpmath import *" ] }, { "cell_type": "code", "execution_count": 160, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1.0, 0.0]\n", "[1.0, 0.0]\n", "[0.54030230586814, 0.841470984807897]\n", "[0.54030230586814, 0.841470984807897]\n", "[-0.801143615546934, 0.598472144103957]\n", "[-0.801143615546934, 0.598472144103957]\n", "[-0.839071529076452, -0.54402111088937]\n", "[-0.839071529076452, -0.54402111088937]\n" ] } ], "source": [ "f = odefun(lambda x, y: [-y[1], y[0]], 0, [1, 0])\n", "for x in [0, 1, 2.5, 10]:\n", " nprint(f(x), 15)\n", " nprint([cos(x), sin(x)], 15)" ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ntK0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sympy.plotting import plot\n", "%matplotlib inline\n", "\n", "plot(x*y**3 - y*x**3)\n", "pass" ] }, { "cell_type": "code", "execution_count": 162, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADtCAYAAAAcNaZ2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXecXGd577+nT9tetLta9W6r2HKVm2zLjZiaEEyJKZck\nEMzlhpgEQg33JpBgkk8gFxzAhMClBkLAJEAIjpFsyeqSJdlqq1VfbS+zU8+ccv94z2hm+8zuzFpr\nn+/nM5rVlPecmTnnd573eZ8iua6Lj4+Pj8/sIL/UO+Dj4+PzSsIXXR8fH59ZxBddHx8fn1nEF10f\nHx+fWcQXXR8fH59ZxBddHx8fn1lEnezJnp5hP57Mx8fHp0gaGiqkiZ7zLV0fHx+fWcQXXR8fH59Z\nxBddHx8fn1nEF10fHx+fWcQXXR8fH59ZxBddHx8fn1nEF10fHx+fWcQXXR8fH59ZxBddHx8fn1nE\nF10fHx+fWcQXXR8fH59ZxBddHx8fn1nEF10fHx+fWWTSKmM+PlMhSQAOlpUBJMAFJCRJRZIkJGnC\nYks+Pq9IfNH1mRaSBJlMHJBQFBXXdbxnbO/eJddoOiu+EiD7YuzzisYXXZ+ikKTszUVYtS62bY55\nnetaCJGVvP9L3vslX4x9XtH4outTELKcdSW42HYGyzLzntNwHAchwlmLNyvKIxHi64uxzysXX3R9\nJiVfbC3LxLYzY16jqjqZjBDhnJtBJSe67ji3kYwU45wA58Q4K87y5df4YuwzF/FF12dcJhNbVdVR\nFA3TTORZpyPJWaojcd3RwlusGDuXx8+KcW5bvhj7XPn4ouszgpzYioiEnNhKqKqGomgzErRyiHHW\nRZEd3xdjnysZX3R9gPKL7VSMJ8auO1qA8/8uToxBLOxJkuaLsc9Lii+6r3CyYuu6judGsAAhgoqi\noyjqJIIkkVs4Kz257U4lxhP9fzQurmv7lrHPS4ovuq9QZia2Ly3TE+Ms9qj3FOemEAt5XLHfjc+V\njy+6rzByYmuTyWRwnKzYyqiqhixfuWI7FROLsUNObGXGt45HjJQXMTFWjLOv8cXYZzr4ovsKYaTY\nmjiOECEhtjqyrJRIMLKpwFcS+UKpXH50fMt4IgtZvH86YuwLsU8+vui+zHGcFOAiy3qZxXbuUZyb\nwhdjn9Lgi+7LFMUz6CxLuA9MMwmUVmyzfk+RFizlidXcprRiLI34O/s9Zbchvj8XkXmn+GL8CsAX\n3ZcZiiLEwXHsEQkNsqygKNqsWbb5wvJyYXpi7I56rXh/vjUsfM4yruv4lvErAF90Xybki61lmXnp\nuAJdD75Ee/bypxRiLELv3LxoCsa1jH0xnvv4ojuHkSSxQDae2Mqy4tVESOO6zsvS8rzSKUyMs4WC\nsv+fzDL2xfjlgC+6c5BCxFaWFe+1+dW7fK4E8oVS/DY2IpQtG84GxbkpcmI83jZ8Mb6y8EV3DpGt\nZQsujmN5YitORllWvThbZdIxSrxH3r2v6qVg6roUUEjFtpFiPPKi64vxS48vunOA/MLhtm1h2zmx\nVRQVRdGRZb/d3dxmYsErVZGgicR44lrGvhiXA190r2CyOjozsc23Rq+sk2egt5eunVvRz7Rx4YXD\nLDAMDEXGtW1wXWTXRXIccB0k1wHHhexjjsOBaIJQZS3Nq1ZjtyzAXbqMxRuvJxAIvNQfbVYoX/nM\n3PgirtsFVO9Y88V4pviiewUytktDhuzJoigaqqpdTjstlGw8bSnJjjeez9g0Tc7ueQ75xAvoF9rR\nO8+j9XahDfWjxqOo6RTzcFjtWfGOAzstlSbboqXA/VwPHEnDwI7fUGvbtNoWA0BUlrE1HTsYwo5U\nYFdWYVXXYDU2cCpUSd2WB9h4510l+hauPEpbsS37uIPjuJfH97t8TB9psoD2np5h31k3i5RDbDOZ\nFLZtoeuhkrsg8sfuOn+GwZ98m8iBrYTOnaA3nmRDwiRYpIu5IwMXMVifSWMUsbu2Dc9kIKAEaEyn\naJ7kvH8mA4dVDamqGqm6lqbVa5j34OtYef8DqOrs2iGuayMiGJSif9vSbL+QIkGjkUbdvEdHiO0r\nW4wbGiom/LC+6L7EiIB4F1mWkSTG9B8TYqtP+4DNZNLYdgZdD5Z0ka3n3Bn6f/R1wgeeIXShjZpk\nlNq84V0Xnknr3DFO08pC2JORabBgsVR86cjuDBxxVapRaDXTTHz4Cw5loFdW6dY0JCNIbXU1teuv\nwbz+Rua/5nVU1ddP6zMUwkstuhOR0wXLuy9k0dQX4yy+6F6hyDJYVgrHsVAU9XJ5RZi52GYpleim\nkkkO/v1fsPDFXYTOn6AmFaN6iuH6bbgUg6unaTz2ZaANg3VWmlCBX4NtQz9wwYYeFy7aYGgaViZD\no+UV/QFsB6okaEDc8i3yExnokGVCqk7MtjluuVi6jqZqtNbUkNywgaWPfIDl69ZP74PlcaWKbhbX\nFVmNkqR5/y+3ZSxf/nsui7EvulcY+W4E0Wcs9zVn+4+V6oCbqehePLQP82ufou7FHVxIStwqjW1M\nORkHLZ11CfNyLYipsG3Yb0FUAl1X0DUFE7iYgnWqjIwrTkvXRXYdJMSCm+y64jEgIEFYEvfZr9Fy\nYK+lUuXAaterRwEkXUgCtutJiCThSpJIWZBkXEnCdF0Sps3TGRnXdFhlu5gOGIhbytCx6+tJrlpD\nxVvexg2vfk3B389cE92JX1doBEWW/MSRicR47haW90X3CmHiljgiGkFVjZIfUJZlYlkmmhZAUQoz\nOR3H4cR3v0zFk1+htfcs1d7bnuqDLUUGBtgubEuq3OVa2DYctqEP0HQZQ1XRFBldBg0HzbXRHJt6\nmTG+4LgD+9M6t1omM3FNOw7sshSqXInVjoVc5NedsGC7LVEtG5jxFJYNjg060AIkgEEgA8Q1lWgo\nRG9TE6k7t/CWj39yjM/45SK6E7//lSnGvui+xEzWf0ysBDsl97lmKUZ0B7sv0fsPH6d6989Z4sRR\n8w6bPguSUWg1pt6mbcP2NMiGSiigYrs20WGLFapLnQzhaX5M14V9ls6ChMm8Ga53OQ7ssRXCjsxV\nTqZo8QUYtmCnLVMl69QkUnQ64FpwwIUahBxEEFEWA8AzQAzA0FCqa2i6/Q6u//gnaWis5+UquhOP\nOx0xHi3I2feLjD5JUjl1qo2TJ9t48MHXlnR/i8UX3ZeI/JY4tj1+S5zswlkxlmgxFCK6z//6P6j7\n3t/QcPp5mtTxf/L2jMJS0x7zuGnDs2nQgyohQyUkOQQdkxYVtDwN2WfqXJMq3M0wGWdsmVjcYW0J\nxnIc2GfLBByFq5wMyjSNpV4TnneFANcmU5yzIZ4R7oesLGT7V9gISziGEOO495p1dTWkr1pL1f/4\nfa594Ldm/uFKgBBdCUmanaiO4sU4i8SlS13s2bOHzs4u3ve+D5Rl/x577DM4jsuHP/yxy4/t3r2T\nxx//IufOnWXBgkW8973v5zWvud8X3dkkKyyTiW12KjSd6X8xWFYGy0qjaQaKMtJacRyH7X/+Tga3\n/jtvr7QmGEFw1A6wIJ5iZwbCAY2QrhCSbAJOhvkaU1qKtgvbYyp3yJNvp1CiDhxKa9xiZWbkbsji\nOLDPkgm4CmuczAgrv1guZeBFV6UalXQ0xSAgOdCMWCYaDxMhwA5CkC3AkWBI1zleU8vim27mxo98\njJbFi6e/Y0UitCHbRfmlDemfSowvXLjA7/3e7wEQDIZYs+Yqli5dzpve9BZaWuaXZB+eeOIf+eY3\nv86rX/36y6J7+nQ77373w7zrXX/A5s138atf/YLvfvdbmKZ51fHjx4+ON44vuiUkJ7Y2lpXff0zy\nitCM7T82mSiWgonG7zi8l9in3kqsr48txviLY7YNW1NQETLozrhcK5k0q9NPsui1oCcKawpwURSC\n7cK+jM6KtEnNJMJr2nDMgk4XVAVUWUZWZVRZQpFlFFlClcSFQ8GlL52hw1TZqLhI+avzLki4uUmu\nd+6INVF3xOQ3e99vwR5LYaHrkEy5SCmodaGiiM/pACcRomwCdUBNMEiqsYHYmquY9853s27znUWM\nWBhXkuhORNYnnslYfP/732fPnt2cPXuOoaFBAN7znkd4+OF3zWgbHR0X+eu//j+cPt1OIBDg+utv\nuiy6jz32Gc6fP8cXv/iPl1//gQ+8l/37937l+PHj7x1vvCvzm5xjjBTb6bXEKVclsPGyxo59/k9Y\n9Ot/otdUxwju2TScQaU2oFKhpLmzxkWW0hxVDFpm2G29XoVLFTp2cmZuhgtpOGqDrsroussB3aAv\n6bLGkFFwxc11kF0HxXVQJVghwzop51uftHV8EOKaycGMwRorTW1W0KdxsWlVYT02URMO6ipNlUDS\n4nQCJAvmFTCsDKzK+38P0JtMEj57jgVnz1H9y19yCkhLENc0+kIhYouX0PC2h7n1zW+d9YSPlwJN\nM3j7299Fb28fDz30MDfccBOdnR0sWLBoxmMfOXKIefOa+PSnP8MnP/nnI557/vmDbNly74jHrr32\nOvbv33v7ROO9/H+NMlIKsS3/gmtuwaH7+GHSn3oz1w+f51lT5y5VJC7sjoEbNKjUoCGYZrNmkQuK\nF2juWH/udFirmmyVde5k/KSJHhMOZEDTJAxdxdAUNAk0yUXHRnVsKnSXe1SQpJx4dhnQE4c1JTqi\nwyrcqqZpS8NZS2eDa05rsS1LpQ53ICI4tgVkFoRUWk2Tf4xCyBKuB5eRlwNn1GPZ/2cfG/T+vogQ\n78UuLDIzrDOH4OBB0gcPcvZPHyUNPK/I9FdWElyxgls+8WlWX3/D9D/MFUw0GqWyspJQKMTSpctL\nMuZ9972K++571bjP9fR00dDQMOKx+voGgAUTjeeLbpFka9nCzMQ2b0TvvryenOc//6es3fpNmlSH\np5MKbsrkQCRApWSxrtoiqKQnfb9aItG9aMKgk+F7lsTykI6uSGiSi4GN4tiEdZd7Vby+YRnvNjXz\nVNAjsCeucINSmn0FWG6Ao5nsSqsssGxa5Zn9TooCdykOYLLDhvvrDerSafbGwMhA5TTGXAukEeFq\nbUAvMASs9J63gFbboWlgkNjuPTz9mt/iv4E6CSorIkRWroY3vYXbH377BFu4ckKxpiIaHaKqqmrW\ntpdKpdD1kf4yTdMAJgyu9EW3QEYXDrftzGWxne3+Y8Xw/Dce4/z/e4x7dYt2G55K6txpmLSEQJJS\nBY9jSC4xCyIFugUupuFFb9EtqCoEZBfDzVAVcHh9pcsxU2N+Jk1FCY/AGgWuDts8m9S4rcgkjsmQ\nZdgUtOjOwG7LYK2VJlSCxbtbggBpDjiwsD6AkkjRNgyVDoSKGEdCnOHZs3weQmgvIXzAKxk53o2I\niImYC040RmbvXpy9e9n2Z4/iSOAYBoO1dXRfdTWv+d+fpmXx0pl+1DKSvQiK805YutWztnXDCGCa\nI2dtmUwGxFc8Lr7oToJoh+JcDryeqkvDdMh1hS2tpXux7RhDH7qH2nSUlCwxFNG5VjVJ9VvM14sf\nr0GD7UOweZQpdikNL2QgZGgEtJHiem8lTGStrtYzPGsZ3MbkFnaxhBS4MZRha1LndmdmiRSjadSg\nUUvzfBIMW2W1NLNIDMuG0xYMuOA6KQZ00Jp0TgyZ1CRgvjv9E1QlN7+9iAhPayHnQ454tzG4QCoN\nHR3EOzo4+ev/Yjci+aM1GCBeX09i5Soq3/Z2bnzVlRHWlk/WvTBbNDbOo6+vd8Rjvb09IL72cfFF\ndwJEfK2FZaWRZdXrM1Y6sS0nO/9gM00XDxAAqgyJa6pcJMnkeFJlszE9oUg58IIFmiUsV0N2MVyL\nqoDNlgqQpMJdAVmuNdLsHJa4OVjaC44uwx0hk+fSOhtMc9rJGBOxUofnEhbPOSoR22KeLqPKMpos\nI8kSiiSJSAgpW9ZFLO7JriPSmF0HxXVRJGgElin5IXcmF0NwyTIY6E3TE4MmZjbBb/Luh4BDQBBY\nUcD7wsBV3t9J4FIyhXv+AvXnL9D61FOcRFjSCU1lMBSis7YOecu9/O4nPoWuT+PKXgIymcysbnv9\n+g0cPLifd7zj3Zcf279/L8C2id7ji+4o8rs0OI4Q2WzoV3nEtnQ+3QNf/UusH36ORQY0BqFeHzlu\nZxJWFXg8tiXhIjLhkE5EdajUTK5tNNikpClWXCcirMD8sMT5pMuCEoWRZZEkuCVg8ryk05IyaZjk\nSI/ZsD8FpgyKIqOpMrqqoCoilEyVXFS8SAjXQdddbovA3bLFJUuiKw7XqKWJPwaYr8F8Lc2+epnW\nCodf9YKeGWuZFnrEjC5JE0VkxyUQ1vDoyNfRUbDOqPse4ID3fx1oylgsHYpyy1AU94mvcvSJr3IO\nkQZNdQ1Vd2zmhk9+mvrGxkK/gqJ5qdx6b3zjQ/z+77+dr3/9K9x77/386le/5OjRFwC+MNF7fNH1\nyC9C4zgWmUyuS4MkSWhaoCyW7WSFwAvlzJH9tD/6AGv1FK3VYuV9NOfSMhvciYVhZwwsQ6UioBKW\nLep0i+W6A+T8vlHcUuntZRZoDntsgwUldjOYNuyKQ0YxOa2pZEyXZSENxRNRDRfFtVFcB0Nz2RTJ\nZtBl4wQKE9Fm1aUy4rItqXObW1p3xnVBh6gKNwUMYv1pBoeglN7KQYTfd+MMxkgB5xFz6WxmnYNw\nZTgZC7unh/S//oh9//oj8QsrCmZlBYPLVrDxf/0JG++5Z2YfYsylp7ziO1rcly5dzl/91WM8/vgX\n+e53v8WiRYv53Of+nvvvv+v4hGO80pMjRhYOH9kSR5YVHMdGUTQ0rcSmmIfruqTTcWRZQdeDRb//\n6w/dyKvix1gTmTwrbPuQwa1ehELShh1xCEcMIrpECJNm1SE4xSV4MANdA7CqmFWeAsg4sDOucrte\nuLV4NCHKNuqajKHlCufoOKiuhY7DvLxU5HZTQU/btJZp5um6sNfUWZoyqSuDKXMyDe0xmb4eh8YS\nnpUWcAbh5pg3g3H6gA7gJqAQ08QCznm3tYClaaQrKki2thK77npu/ONHC7KM82tDuK7Lb//263ny\nyV9O92OUDL/2wjhMJrbZ/mMApplAUVQ0rTx9t6Yrusd+/WPaPvduVis2N1SL3P9OBy6ZeAtYOV4Y\nhlPD0FwZIKK5REjTqk8vRviZ/uLEsVB6LeiKwdVB6DfhQAoUVcTqaqqC4cXqaq6F5trUKBQd+dBu\nyuhpp2zCC3DKVLCTNivLILyOA0/FJDq6XOZZpZ2m9iAs35lUCHYRAi4jhLTQ95xDZNtdj4iycL39\nSQMJSaIzEsa+8SY2fvYxmhaMDH/Nrw2RTCZ597vfyQ9+8JMZfIrSMJnovuLcC8W0xMkunJUrWyyf\nQqMXLMti//s2UdF1nI2G+DzHM1AXgqt1sHvE647GoF/VqA7JdOkOr23JkO8qmC7VIRWsmYvu2QS0\n2xAIqBi6ih6AftnhWNqkzoC7I8XH6k7FUt2hHYWLaXtaERyFsEy36ZNhd0LlRqW0FydZhnsrXTqC\n8ItLEnVxd/wIhGnQgPAZ70Nkv0UQhXn6EVbsINny4jlLNtemMrtgKO4zwM+BbC7Y6PpgjHofiEW7\nX5FbuMsiuS7NwzF6nnqKf7xpI+sNnaChs2/RUh79t58RCOZS24eHo1RUzF7kwnR5xYju9PqPlT9x\noZgFgCM//hrV3/sQ9ZZLwgIjAgtCYHhnwY5eQNM4Jku01Jis0YVYWU6AUglXrZRiMA3VBXhbkjbs\nioFsyAQMjYAqYUgOAcmiotrhLh3ERFOIk2vAdgxWy6X17+azVLdpK7Pw1qkQDls8m9a53jYJTNPP\na9vwogldjsjQkxUFTZPRQjI3LIej3WkGLrkMIaIL8gUxX9AURhbakZlYCA1gF7noBh2RLbcw73WF\nMOBttxiXRYpcpEUK2I048+JAZQDeWWFgyC7bWxbz8Z8/lVcbQjA0NLvhYtPlZS+6Y8W2+P5jpY6h\nLRbLsnj+3RuojJ7HkmB+CJrqxHMvDHkniwLXVENIHSuupk1hjrYCaNHhaVvmbnKzgP0xiMsSuqFi\n6F44GRZB1eaOSpAlBwpYKJMkuDacZke/xC0lDiPLZ7luc9JV6DBtWsokvAEFbguZPJ/WqU+ZzPfO\ntB4TDpsgayJSQlUVVEVGkyVUGVTJQXMdb5HPZUkI1qkg5Gek5bx+PjwdgJOnhSiWimrgNGK6P11q\ngBMUJrpJ4DCiqM8lCVIaxDWJt4ZkIq5DEy5BGSANLlxcOX56bzQ6RGXl7GWjTZeXrejmi61lmaO6\nNBQmtrMXhiIxkTW99Ysfo+rX/8CiILRWgSHDoSgMZMSJvSIC+hSCalt2SUR31xCkVZl+Q+cFDQLY\n6GRY0wAhtTSugLACCyslzkZdFhW/rlgwKwybNkmhI10a4T2dgpMm6KqEpqmiGI8koQahV1d5Pu6w\nVncI6XCnml30nKLwTgHcVQdWGro6istimwwNIZbnmaSAQAHUIXyz2coEx4Fhb3zFu1cRlxJVgT+t\nhyXeDGrAcemK2ywZVXivzYJ47ehGodlstCHf0n0pmExsp9d/bGJBLBUiEWPkY70XzvEff7iJN1YP\n01QvXAcuQnTXV01dvzafdMYW88YCMW3YEQU1oBIOqAQVFwOT9Y0uQdWhz0wxMAjLwoWPWQythsPe\nsE5rpjRFzydiuW5zwlW5ZFo0TyC8QxbsTwAKaKqKripoioTmtRhSXVss7IXEAmbOD52HBo2qRE8M\nFpbhQnJvC3w/AfZgySY0VCEWuFoofMyLiBA0mZxLowvhp1UR4ptvkbuIiIf6Svgfo2LhamQ4HjIg\nI2ZIPTb8srKeyCMfYfPb3pE3Qo5odNi3dGeTyVriqKo27WaP4wli6ZHIt3h2feg+7JM7ud2APgcu\nxKHOgJXFFGHNw8xMbE31m7AvAeGgV5hccQjKJrfPB0UaW20MoE6HNiPA8hIszE3EtUGTZ1Mam5US\nBwbn0Z6AM5bFoKwhx22WhHV0L45Xd20U1yaouWyuz17kxv8+CqFZdSEicTjusq4MgTBvXg5fOwJ1\nJfxJ5gMHgesQFupxRi6m5d9kRKbbyrz3dwK3MNYCzyAW7Go0eHvDxFEo86QMwxY8qYdx3/xO7v3z\nv5h0f4eHh6mqmr26C9NlzotuzhIqrdjmGCmI5eTAtx6j/ld/SUXKRTdgfhiaQrC7B64e5wJ+NAqO\nIlwNt01wrKVs0WocoC0G5x2JcEgnpEkEJYtI0OKe6uLTeBcYKS4NQ3OJY3azKBJsqMxwcACumYZ1\naNuwJw4JGTRdxdBkDFVG9SqaqdjUVLvcpwNkOJzUWZBIUV3GcLJm1cUNSxyOuawrg8X7ltXwncPQ\nUGCRNRvhQsgueuUvuGWFdQBRuUwHlsOEnS/GG3uYnOAm8bLYNNFn7yNVwqUwEftNuKirPHvVNXzg\n+0+iTDrlybkXmppK0yWinMxJ0XVdF9dNIUkyrquNaIkjxHZkS5yZIBpHZovflMfHe6n9OLHPvJpw\nehhJg3U1ov4qQHcS6r3Npiw4GoegLhbOltaAocKZ2NgxYybsjEJa0WiocDklu9RV2yw3XApZ1JqK\nlgBsi4uV7XJRrUJFhUpf3KJulHsk5kVGqJqErquoqoKhgC456Nhois2GMF7Cx9TW6bqgyXOWzo12\neV0aLVmLtwzCG1Hh3hXww2OiwI2MOMHzrVMZMSnPPhYGaicZU0UkThTLJYTV+xyg69AUgY/Vi0Lr\nzw+PFVzbhh02BCIBqmWbVcEMna2r+eC3/2OSrYx2L/jRC2UhW2LRNEWLv6xlO17/sSsdy7J49pHb\nqOt7keYgLKoduyi2uxsWReBkCkIqXNMwTlKDC90JOJKUqAgbRDSXKjXNlhaADE9fhBvLcCy2hiCW\ngkgZrMOkDTuGQNYddqBxtax4rdptdGyCqsNdlSCXMJb35ojJ1qGJC6yXCiG8ModjTsmFd1EQ5ApY\nNlzacQvBBI4i/LS6DI218ImR9b0JATURFTMuLoTPOFBTEaCaDDfLNppXbvSAWsXVT0wmuGPxoxfK\nRLbZY5bJ+o+VhvxY3dKN/7O//COWHPoOG0OwsHGkkB4dAscVAnxb0/gxsb0puJQUaa6yDMEA3F3j\nMl4CRCCYXSMuLUsCsC0Gm6cpuj0mHBwG3QDDAEMTK9oBIKjBna2gSA4py2F3v8MdgdIVJx8PSYJN\nFSbbhlTuKEPWXT4tqgMRmSMxh7VFCK9pw8442IrI1tO1bLaeg4GNJtk8tAx+erC4PmzT4STiaNO8\nmwMEVPijZtg4QdbGzhTYATika9yoWtytuGPqOl9yZAY//hWaA8U5v6PR4VktYD5d5pzoOo5zueoX\ngK6HymrZ5hekKcVmOs+e4pfvvZmHW9LUe1ZAwoLjUQgqIjphaVi4DfK5kID+tBBZXYYaXbghCiFs\nlEd0JQnmhcTUcKIpeXsc2k0hqoGAcIsYkvARRoJ4/uTJtxNQYXWVzQtDcHWZIiayGApsrLR4bkBi\nUxljhWF84U16oiqrwm2iqQoBT1Q118JQHW6pF4t9E1r4OsgGpfAiXeYS0C2GRkW4KqrJBcX0AY01\n8I6m3HuSNuzIQCRkENYkwq7JtQEHTbb4TRIWj6M+z6eg/dXvYNMdWwrYq9EFzP2QsbIgSQqaFiCT\nSQPl87PmbdG7n/kJuPszb+XCjn/nXfOF9doWA1OFYwPwhqaR4tMWFYtgugKqJKIXWqe5aBWUy2ch\nrgzBP7fD0gCoBhievzkgg+5CbTUsLYH7odGAzqDwVZfDnZFPRIWV1S4HBuHaEk//Y7boSSepIplE\nV2XMKpdfxW1W6C6G4nBHPSgzdJs018FQR/Fzs0HgAsJy1RERCA7CLbBknNcngKQBD7cK98JWM1cO\nNOKY3F0BkjRS/c+bcNuo3/BCBn4dbqHpI59h030PFrnXgng8TiRSbvt+5sxB0ZVQFPVyu5xyLnDl\nM5OstHMv7if+t/ejJNK8th5OpyEiQUutcCPYKSG4x6JgqxDQ4LwFd022wlEEQTKY9tRJFJNh27Bj\nAFxVuDKCGsICc2FjK6xShaVeTtZXwNZ+2FzezQBQp0GyUubEsMPKIma50QzsSoCqyRi6QkD3fNGe\npRpUHe6tc9ZhAAAgAElEQVQc4YsW7Jd15lvmjH6jfF61EL7SMX4pSBMRkZBN+82PXNCApd5zw4i4\n2oZxxrgA9EuwsB7uaQ4QlW2qybBZzSsHOsFnScg6uiJchKYD37cjqA+9h/sfeRSQcF2L/OoMhZ7f\njuMgl7K2ZpmYc6Kbozy+1jFbmaGg7/7ka1nT8xvORGFJCFIhuNbzdzkO/PI8LAlDuwWLG8RUGqAv\nWfg2TAv0SX7J+UHY2gF3jU7kGYeEBTsHQA9AQBfiarjC6rm5OVcqMZ9FwDN9cHupqq9Mwg2V8Gwf\n3DYL22o1HE6icSmeuZw8MWDC3gTouhBVPU9UdU9Ut1RnU58dCrVUrw2ZPD2oc7dSmkW8oAJxHTrM\nnEtAIhfNsIjJw79MRLGb1XmP9QHnJAhE4JYmuLsWXhiEDXpxwcFxR2z5F0mV87c8yG/9zZdRlGxc\nxeiS69k4+dElcubGYvl4zEnRzfevlsrXOjHTcy+c2v00mcd/m1rXZlCBu+dDhS4E8mCfSOE1ZLh/\nASjjHP3pCTwClgNHoqBqoGugKcLXe90kv6QsidfncykBL8YhFBKWdUAV7oCQDHfOLy7jDWBNhfBL\nryrz7C6kwrJqaBuC5WXw7w6ZsHsYdEPURTB0hROGxFLZJig5BDWXe2ry27+XJnlDkuDGCpMdA9mG\nlTOnIQC109TwDmANwmZ9EagKww3N8OioYgrxaRiWB4cd9i65jpv+5gmubW0d8VxuRjlZL4uRnDnT\nztmzZwmHI1iWhaqWR9bOnDnNww+/yQsjzTU4+NKXvsa6dRsKHmdOiq6g/BXAYHqdHX76nhtYax6n\nyYDFFTCcgdPDYnofVmFD7dQXimzYcXcKukzQNHEzFFjfMlIUVXlia7cvBfujIrPtUAav0DdUBWFL\ngQtxhVCvw/nylBweQ7MBB0OiseNkAfbjETNFlwxVE1ETmioufoYsXCWhIGMsVScC/90tc0+kvMda\nRIUFlTLtUYelJRDepGflFksXIs73RACW1cPfL2DCjhi6oiBSISYnYcPutMxRKUTVo5/l7t9587iv\ny80sR54gQuTGE2T4u7/7PIcOHQLgvvvuYPHiJdx//2/x0ENvm3K/iuHUqTaqq2v41rd+QL7uFBum\nNmdFt1xddMfZknc/9XYO/ewJjj3xJzy0GCxN+GhNB6p1WF839ZYcB44NifuKEJy2oToM66Z4b2sY\nDl8SJ9glSwhH2ICg7EUI1EJXCswhWFimDDKANQHY3g+3zkLUzoYwbBuEzaNEN2nD7ii4iuci0cTF\nTpOEJR8IwN3VxVnysgQ31Trs6oObymzJLzAc9oZ0FlkzT9IwrcJE1wbavftzsiii9Pk1TNlJBEDX\nJhfdHXEwwgEa1TQLDA3to99m2Q23FvYB8hDn+2ghFrOMD3/4o/zmN0/zb//2Y2pr6zhz5jTbtv2m\n5KJ7+vQpFi9eQk3NzKyVOSu6OWan7OJk4j7Y083Zv9zEcH8PdzXBBQt603BLw+SLV1ETzkSFi0CX\nxf2KqvH9pvk4DpwYEq4GVRavj1QIa3P1BIVtmoKwPVbaEoCjCajQXEHB9Xang23DngFIyWJR74fD\nsKYKUTPBFVETt80XacSlpEKD5mo4G6Os1c8ANoZMtg3q3Fmkf3fIhD1JEZcdNFQsa3xfawJRutFA\nLJzJiOgEoxL+Zk1uXaEQtHF8Y0cSEAsY1Ck211dZ6EqKdkvn4oe+ycppCO545M5HidbWBWzefBe7\ndu3iy19+Atu2y7Kg1t5+ikWLxovhKI45KbrCjytd/rucTLWQtuuv38iyzl/hxGBZFTRXQoUB28+N\nFVzHEfVvFU0kNqyLwPopFrdMC14czIlr9n5pZfHRCAuC5RVEgKVB2J6EW2ewjeNRuJCGgCHcAIYi\nfOAaQig2NuU++/kkOElYVOb4XYCFAdhtQuskccmlQJbgugqTXf1w0zgzkyETdqcgGBDiGlBcAliE\nVZstNSBJFmnb4r+8119AFALXJFBc8T0uINflIaHDg8tg0zSiZXSvCF93Go5LKnUBhYUVaSrVXJjY\nGVvj3Ae/wepbC4m9nR7Dw9HL0/zJ6zRMn/b2U5hmmve85110dnawZMky3vOeR1iz5uqixpmToiuY\nHZ/uRNs58p//D+Unj9AoATrc0SoEEaArDou8eV1nAnosEb8aUOFqb5FKH4DGUXM/yxGrwb0ZcYKr\nshCbDXWlWSxcGIFnOuH2MoouwFURcXG5eoI49SET9g2CqnvfiyY+q4E4iZuqCm8VvyAIe2ZBCLNc\nXwFb++CuMlu7FSoYQfheDyysUgkEVIJecfiIZnuLeRNXPfuvizAgwZArqn9VwZhTZQiY3wQfWza9\nfRwyYU/MwgoHmBdMcbs2dn/OWSrt//OrXLX5vultpNB9GSpvYkQ6nebSpYvU1tbyyCP/C13X+dGP\nfsD73/+HfOMb32HhwsUFjzVnRXe2fLqjF9Ji0Sjb/2Qdq4wBGiMwf1TokuPA9ouwugraTKivYNxS\nfrIs6iVc8hbJdFVkoa1rhbQFhy7CTeMFSM6QpggzjtmdikoFfpyAXltEWGQTJrLpomEN7motXdTJ\ndZXwdA9smQVfsizB9VWwuw9uLIF/17Rh+yBIusja01Vx8QkpMi3VDumgwU1qmmIyCgfTsOs41E1w\nalwEKiJwdytsKWCtIZ8dUZDCOpWGRK2WZrksc406vhvjtClz6pEvs3bLq4vbSFFks9GiZa27YBgG\nv/jF0+i6fjk64mMf+wuOHz/Kj3/8I/74jz9U8FhzVnRzzJ6l+9MP3cfG1E4eaIDqPCHtjENPUvhl\nDQVet3z8MLBjfZBxxesUCdQIbBjHYgpqIGljHy8Fy8Pw9AURYzkTBtPCt2oExEUjoOel+Crw5hWw\npxs2zUJ5U1mCG2rE/twwC8JbocG8argQg9YCLF7bhn1RSCii4pauC99zUBJW/h0LxvNBe+2QSNMe\nFanhhfLlvVAxqhppJzCsQlMN/NEyYRRsH9JhiuI+bUnokFWqQioRyeS6eQ6G52u+ZMJyZ+z7T6fg\nN6HFLP7zv2XtpjsK3/GiGHne57sXykUoNNLXI0kSS5Yso7u7q6hx5qToui7I8uz4dAE6Th9n26fu\n54EmkzWe9XkmCqcGYVEl1AVg3SjfbMKEE4N5i2QyLK4UJ1khVE4RfuU4IjrCAhRVhD7ZLlTY0DpJ\n4oAkQUvV5PUSsrw4KE6sbBSAoXkXFglCAbhn6eTW6vp6ONQnOl2Um0oN5lXAhWRhQjhTFgVgdwaa\n877HE8Nw1hYREgFdrP4HJPHbr2sqLBpgNPMCsD0lssQK4XvHwPVKfQ4A3QrUV8EbFsPto2ZOtQFp\nTJhx0hY++apIgErNplHPsFwf341x3gxwY15iRMqGH6YrCb7pg7zqne8v9COWhGg0SmNj+QqNHj9+\njA984D38wz98hZUrRcqI4zicPHmcLVuKc53MSdEVzI5Pd+/jf4h6+AfcOw8WVcChfiE4wSC0WrDc\ns+QSJpwchp64ENewBhvGK8NYIC0RONwNV1fD8SEwJVBV7yYLa3JFkxD1fI70QOv4Q15mRQSevSAK\nn+/oB1sGTReiGtA9oQBa6+GqGfh/aw3oqxSxwnWzEMO7MAh7RglhqTk8CJ2WuAhpGvxbAtaHRWhW\nYy2sLENdiGWBwqImnu+FQ2ehU4K6Crh9AbxukoOhWU5zPAFRB8yARlVAoVJLsaWSMZW/RtOfgepE\n6nKV8v+IqnTe+Hoe+PT/LdtC1vjk3AvLl68q21aWL19Bc/N8HnvsM3zwg39GIBDkO9/5JtHoEG98\n4/gxxxMxh0VXUC6f7kBPJ+c/ex0rjWFeTIMcEmmR61vE86f6hfAdGRA+y4gOG+bDb07lhLhYTg1C\nLCNcE5oEWhjOu7BkXuEW8vJqeKE3t4hl27C926vpoIsLhq6AWgsnMnDzwqlD1GbCigjsSIu2LbPB\nxghs64W7pmldJ214rg9QIeiVmzSUXHjV4hpYlyes3SEYHBZJMOWiKQDPJkXq7kScT8K/XITly+Gz\nkyyMmTY8MwThsEbYUGjTLO6vsLwu0oVn153JBNgYSrEvBvvnX8dNX/g6182fza4N4xUwL58vS1EU\nPv/5L/L441/gIx95lGQyybp1G/jSl56gurq47c5Z0S1XkRvXddj3rY9Te+D/EkFMme5aKvyslgMH\nu7xFIRkaqnPdS7MECrB0+lOi71lvAlrCuTCwphCEp2EpOQ6cHBILcIoEGQWOmF6qsQSbloy1iKmC\n7Z3lFdwsG6tgWxfcMQv+XUWGa2tg3wBcN4Hwtg3D2ZRXx9fzRWcz9QLA5vnj++THo9GAc+WteQ6I\nULwLw2MrzZkO7BwUVv5fjZOJemgIBhRRpCikCjfMXa0ge+2ZugfE48UQy0B3f4p/rlpA60c/x2vu\nuGfan6tURKPRstfSra+v5xOf+D8zHmdOim7WuM3PgZ75mC6x6CBbP7SOa6uiNFTAvAh0DEPbgIgs\nCKqwoXFyl0FwlEXanYCOpBA9TRVpq1UGrK+G/ZdgdRHJLaeHYDgtIh8USYh19n5hZOy2p2JjHezo\nhFtKVM1sIgIqrKmDFwYmDiMrJSEZjqVELd+mCi/ON5vu6029lxdQ/KdQ1gVhay9sLmFa9WhaAvBM\nYqTr6IUYxCy4vUYck0Mm7E5AOCTcW2EZljZAZILjwnXBLrL934UEfHswxOKHPsADf/DotD9PqYlG\nh6iouPJr6cIcFd0cM28a6bqiVfvBf/lLLvznF3jbKhGN8EKfqJlQH4SWAqeOnTHR0+yoJARWkUWN\ng2smELWVtbCvE67LKyISM4XVqnoifW4IllUIi7QxCEtKeDEParC0TmxvRZmP14YAdIUgmSn+4jCa\nuAk7+wFNuAA0zbPqFVFN0FDgoVVwYAhuKHPtXRAX5EVV4gLbWMY06yUhsQ1ZEr3yEjaEwrDPEcJa\nVWBR+CyDJiwv0Ne+dUhs68WMyqu+8Qzz5pczt7EQRhcwnxtdI2COi+5Mmka6rottZ+juOEfvV+5m\noTKIWgFn09BUC9IQLJ/EcrkQhYGkJ46yuK824N4CswQvRKE/CXEJjg+LhR9FgpAO1+TFsM6rhAu9\nY6MjSkVTCDqThUUzzJS1VfBsN9w2hegOmbB3UCwaarqI9Q14rXxUIGTAnUumdgFcUwlbu2HzLBhA\ni4OwIzW9Jo5TkU19TipwMgZNBqythRa9uJTd0Qzbk4eitcWhS4WGIGyaB9ttCfOj9eyJvRbpuEQi\nAb3dNkf32bzmps9z75ZXTX9nZkg6nSJQZHuflwppsul5T8/w7BQ2mAaqCqaZxHFsDCNcsOhmxday\nTA4+8T7qzv2EoFc3dmmNmLpbNuw4KeIns5zoB1MWCysWMDgIm6ZYN3AcEZtrOyDlpfEqEtQGpg4L\ny9LWDzVAXZmsKNeFpy/C3WWcHmdJZODpc8J/anhWqu6Jh4bokhHyrPpiy0uOx0AazvTBtbNgBA1n\n4MQkvuRCaB8WRe4NQ3R9DnuLeM2G+I6OxGBtiWK42xOwdNQZbtui711VhciqrDPE8fErW8L+qzr0\noEpvp8NQQmZeq4HjgJlyiA3Z9PfapNKgBzXiMTh7sJnPfOjJspRaFIXOXUD0RnzDG17Lk0/+Z8m3\nM10aGiomPHrnrKU7sv7C1JZuvtiePXaAi19/PauqMzTVQf2oq31XTPjEjgx4wewqLGwaGUGwZ1T/\nqZP9kHJFzOy5flhVIwR2+TgdfotleS08dx42FSC6jgPnY6KDgSSLw3J+UIj8REgS3NAAu7rgpiIz\nlEaTNGFPHziKsFIDunCTaLJI8dVUWLEQUnHh1y43NQb0V4r6wc1lnPqDSJoITtEzLkvShuf6RQx0\n0BBFxwNAdQVsmWRWE5JLNytxZS4XCDsSg2FDFE3a3Jy74Nku/FKSCX2hToSCudDSKtPsgu21PJFC\nYOBimhLLW3UyGRfbclmy5CI/e+E6kikX15GIRS3Ot2lsWvExHrzvd2f+AUYwd4qaz1lLV1HAstLY\ndgZdDyLL4x+FObHNAC5P/sVruDOwj0VVORF1HDjS7dVEUMSiV2vlOCv+QCwNJ/tEJIMhixKKmgIN\nIWGZABzvgRZFFL4pFakM7L0INzcK69mRQfZcEooiptrZW21gZBTEsV5o1afuLXY2BkoMWifwYds2\nHOiHqO2t/Hvpy6rqCaq3UNUQzNWhmGxb9rAo3DMb7O6HG8tccwKEMfBsH9ye9x0eGIAoXny37nU7\nBpqnYc2nLZHpd9sML44Azw9DX1ykqi/SoGrU8WHa8HNdJvIXFSiKwsVzNg2tgZH65ub+SCQdBvtc\napt1JEkcAFl56e22kFQVM+WiBySqamTiw3D8xQyhCp223Y187I9+SCRSWEuQbFlHyUvdfMMbXseT\nT/5ymt9E6XlZWrowef2F0WIL8MLnrqPVvMSqViGeh3pECcblEbi6cayP8GSfEDvVK7uoyBDS4Jrm\nyRcrVjXAztNCIIslmoK2QU9M86ITZAlaa6DbhtXzpxa1fFbXi4vKSnnitj62DdEkPN0NG1KiJm92\nMU/Pxg3LomDPTBfCABZF4IUM9CXK5zbJ59oq2NoFm8vkZrBtIeymDKYCP+mD1dVCYFfWiZlTKTBU\ncGewONg2DJdcqArB0SQ8NG/8YzllwVMNCjc8kZuOLFwks3dXkuum4SRPxGX27TK55tZKYlGboT4b\nRXNYsVpGci2Wva2Lw9ZmGJA425bBlRXaX7BZGvpD3vLGRyYdO51Oo+tlypsvA3Pa0rVtE8sy0bQA\niiLURIithWWZZMV2oKeHoX+6gaawydluaK6BypAow2hasOskrKiBnpSYEkdNUDOwpj5nvRZLOgOH\nzsMNo9qbdAyLOg2KCrKas05lBY51wXW10BgubQuilCUuIO1DIktM172qXmpeuUhJPBfSYet52Fw/\ncbeAUvJcF9wYnJ0KYQNpONsH18xAeA/0QVQS8b26IcIIda/z8bxAzpVUTsv6YAyuKVBjbBueGQA9\nKFwtTaq470iCkxq/w/SzfXBsqcLKj1SA5HUmk7LHpIudAVWX8h4T91bGYed2l4b5Kkhgmy6KLqEZ\nspiNKRKyBJICsiKhyMJwig+7hCoVejptqpqD4OYs5OEhm1MvZnh+Z4rzbTar1y/hrQ9+lus2XOdt\nV6O3t4ePfOTDfOMb35npV1syXpaW7mif7nhiqygax579V+I/fy9L6oSIbF4t3vtit5haaTI010Mg\nLPLjs+xqF6JUDI4DpwZESrAigRaEw1FhHcuKELfKKmhpGv/9i6vh2dPCVVGI6DqOKLrSn/S6uXqW\nsexZybL3t6HAVQ2wbt6UQwKweQE8cwFuryu/8N7cCL/pgLtmyb/bVzl1aNeLg9BliXq+RlZYJXGy\nrGoWv+dULAmJi9zSMjTQDE/xm7QPw3lHhJBVynB789hZ3KnE2EaibcPwlAKR9+msXq+RSZp090q0\nLNKEwOJ14zYQYpx3Q4KAJvNbr5cIhSVUVcJxXLY/43L9bbn8Zcdx6DhnMtDrIusykgQVVTKy7NLQ\nKKHrJrblsOeZNGfaHCpqVKSwxrpXNXNvi8z+p2JsuPo6b7RcCvBcCReDOSy6AvGlO46FbZuX3QyK\noqGqGge//UckjnyPV62GHaeFn9O0hDWyqmF8n22WGxbDzja4JS9CwXGExZh2QNbEgTyQAisFC6uE\nqM6vENbidJBluH0pbDsFLQbELWEBSp5rQ5ZzJ88Ll2Bjg2gFtLDEflFZgttbvfoMZRZeSYJb5sG2\nTrhjFqInlkfguRQkh0UFrUBAiGtAE/7oUtScABGXfDpeeKGaYqiRRZJC1kq1bXh2AIxQrvDP0kn2\n/3wSrsq7cAyb8JM4VL5T43fenv9GiT27bJYun/hEGRp06Djv4DjiOBnqd5FkMZMDiaYGl65TMeTs\n8auCPexy1bUhbFvizAmTwV4LWZNJpSAxBIMDDnHCrHhdE5KsUlEjRP/Qr/tYUHezFw2RK8AzNDR3\nEiNgDrsXJMnFcUxsO5cvnhVbSZLZ8zdraZbOkbCgIQzzq2H/Gdg0SUy348DpfuHvVWTxfxBirXiW\nan14bB2E45cg6ArhnQzTyi3CKVkrQRZWqip7f0uifUqt1+dsIlIZ2H0WbptXPlF03NmzeGMmHO6a\nXveC0dg2HOwXhVx0L8432znZkEX3hGN98EA5gmrz6E5CckgUSio1PzwjrPXqEFTIuaL3hbCtF+7w\n9umnPdC7SWHLJwzOnXFxLBfZOxYlSZwD6TRUVsuXrV1FcZEkcUwcPiyx+YHA5ap/o+nudOjtccTs\ny3MrxGM2g30ulVXCKh4YcHnm1xaJjELlsgbCSxtoXqATqVWpqNG5dCpBz9kU2oVreMd9n/WMKwuQ\nkCSVrVt/w/79B/jQhz5Sgm+2NLws3Qu2ncZxxNVOkmR0PYAkyViWxXOfqOOqeTbNVSOFa+18ONDh\n1RvICpwiFozO9QtLZ0MzhItIREiYokxIR0yUcmyuIHdVV7wDF9jbLqo+rayf3MIulIAGty2FXedg\nfeXkAj1dshbvtgtwR5mFN6KL2cf+Htg4hfAOpGBfn5c44XWf0FVvsc9b8Fszf3I3QKUOh3phfRmt\n68Yg7IxPXqimEGxbNPyUA6LRaFiBcET43YvlVAJuCMGuAdhbC1f9ncrieRqpJKxcLaOqhS8mDPQ7\npOI2xw+bqIqLIoOquigKnG13qWpQSAw7ZEyJ+mYVxYt0md+q0DAPLl1wePGQTdvFAGvefxuV9eIg\nvnB0kGTSJNHhcGx/FDedou+szafe8NlReyD2VdTS9S3dsuO6Fq6bwXFsZFlF10Ug6tZ/fj9Lur/F\nohoxPbcc2HMGrm0V1quuiCyv8bKZOobgbCcsrvW8wlLu8WRaTNvkPF9p1l9aF566FbjjCD/xqiqo\nLfFq/eFOaJBEV4hC6E+IWF4QrpAVU/hTHVd0w7i1tvwW7/lh2HcWwgGvIpomLl7ZAvGqBCEvRG+m\nyRMnh6DWLG/0RFcSUkVauy8OQpcLkYD4fSIyzA+NtGS3Xii+1oPrwr9ehHgE6h6GpVt0Gkf3jAIs\ny+HUMYtY3CUQVC4bEKoqXbZwZQWMgEtvjwSOK8IXvddkXx+ukHAduNgNsqzgWC5H9ltU1Un0dYMU\nCVL/hltQVZXBzhRDPWk0XUbVZeoWBOm/mOTkjn6kwSr+/A0/yPscDiLAWEaSFL773W+j60Eeeuit\nxX0hZeRlaenKsoosK6TTcfLLvPV0tDE8AAlvVV7XYP48UYpxWS0010LGhn97XrTGUZW8qb4ES1uh\nNjLSGm1pgn2nREWn1XVTC+z4+wublkNbF3T2iIWtmWJZcHZIBLC/kIATUSEg2QuDlH+fvVgAoZBo\n6y7LEE/D/i64pmZiQZUluHX+zIT37JCYCaheMXTFm2FoSi6CQpVBNWDFYqhyJ44XLhUrqmBnN5Qg\n5HVC5gVhe3Riazdmiiph4TBUBCAoF+ZTdgrv3gOIxbUfdkPkDrjhzeI37Dhmkuq2vPUCz60ggaa4\nrGqV+K8dMi0tMq7tkIg62LJMda2ITJBccGxpjHXsOA7HX3QBl2TSxXWhJiKRTGQ4cMChqxPaLkVY\n/LvXEB+W6No2xLxFBpFanUXrhH+usy3GxaPDDPearDfexIOvf4cntOPrWDQ6zJIlBa4SXwHMWUtX\nXHFd0uk4kiRjGCPNlVQqxb/87UMstp+hIWRRGRLTTcUF1YGmMLzQKdJQm6uFb6wQth8VBcaXzMD3\nGE/BnnaRIZWwvM/iiWPWlybJ4hDLngiXomLBbkltTjwVWfh+Zxo367riu2hRJ7fCR/t4+5OicLak\nihmEpIiID13zojeyccYSRFTR4qjQULj2IdDN8gtv2oKdHbC5jMp7KQFOXNRM2DUAti7cBBFVWLFN\nweJCBF0X/usU3DdFowTbhm2DUFcFXSbM+zgsWyfjOA5nTkM8PtIVll2olTyr1TCgvl5CliU6LjqE\nW4PoeemVgwMW59scYgmHhiYVVZXQdWhoktE0ibbjDumUQ9tJl1hM4pS+gpYbFyIpMpE6g2ClTseR\nAZavNeg+G2d4WKLz2BCqJqEoDvPMa/m9TZ+a8PM5jkt7+xl++tOfcNttd3LrrbcX/iUWgeM4fPWr\nX+YXv/h3EokEN920iUcf/TA1NROLwGSW7pwWXUWBVCo2ruiORywa5Ud/+xqWawfp63Np6xWuhsUN\n0BARlZpqwmOvp9uOwdrmXLyibcNQUmScGWru9ZL3T/Z1cdNbvFuce52c3XdZvD+sF245nuuD3gFY\n2zBxksN0iKZENbOuYeFGqQnlLFE1L9tN9Rb9DlyEddUirreuBNP8iZgt4e1NwqU+WFdC/+75YTgZ\nh0BQxHpfiMLasCjRWGwo4mgGUjA0OHHh9BcHYUgXERRLI/B8AnoehpYlOXGtq5MIBqf+4WIxh/ZT\nEItDdb2KKjtoivDbhsMuXV0SC9cHkCSJk0cdBjotEqZDLKaweJnM6TMy7Y3Xs+y2BSPGdRyHC4cH\nySQtKuoDJIYzqKqMK8GxX17k5qbf4aF73uctmuXfuHy/Y8cOPvrRjwJQVVXNmjVXcfXV63jLWx4u\nafGbr33tcX7+85/x8Y9/msrKSj7/+b9GVVW+9KWvTfiel6XognDKp9NxXBcCgSI69+VhWRbf/cJ7\naIn/B43BBBVeibwTXTCvSpwwtUE40SHCsxrCokV4MWw7LgRqeX3hHSAmY+8ZETZUE4S+pJii5sdM\nShJ0RMU2w3rO/yx5FnK+q0GSRCGV6kBxbpM952FxQPhWy0n7EGgmLCiz8J6MQoMlKsUVw+Fe6HVE\nBp+uilmHIYnQrbq89jrHorC6RAkg52Oirm6+dZzMwM4YNFZCqyFqNgPsSUDfw3D7XRNf2VMph7YT\nXvSMIs4rRRHhXYEANDRIY2qbtJ10iA6BI0tUVbp0XBAx6JYFT/03ZAJBWLaMlb+z/vJ7EoMmvefi\n6GcGBxMAACAASURBVIaCasjICiSHLLSAQnVrkEtHh2h7qpe/fvPP0NSJT5RssZtYLM4Pf/hDtm3b\nyuDgEAMD/QB87WvfZM2aq4v+XsfDsiwefHALH/zgn/HAAw8C0Nl5id/93dfy+OP/xNq168Z938tc\ndBO4rkMgULoodMuy+MW3P4lz8uu0hJJkbDGla64WUQLDMQirInMsWyxn20lx4C+dZEV5MCEWg6oD\nYzs2dA1DWzdsaMmzHCUxPXfxrGTp8sPIsgjaDxve1H6cn3hPuyhgsqRMK/Sn+yCdLK4Q+3SYLeF9\nruv/s/fe4ZHk5b3vp3LnJKmVR5qcdjZHNsISF1h7CTYG44M5NpiDA2vuA77Y58LBBuPEMRj7APaD\n4R7AgDHYXMBLMMvuzu7M5t0JGk2QNMqtVufc1dVV949ftfLMSDMa7F2f93k0GknV1dXVXd96f9/3\n+35fuGWNj1GzCYdT0FQECHmXTD6O6evz2CiZMJKAqzaBxjhbgkH3/X4mC7YPOgzYsqSpxnHgcA12\n/nf4/qOwd5+7WllC+yiSAMkTs3D3K6Rzyr7Gx21KBXcAqibAOZsGr19onDUdGg14+mk4Phlgy3te\niT/ioV6zmD1RpJy3CERkIj1+dJ9MarSM7lUIdBj4IwbZ6QpzpwvUEg4fuusbF3z9jtNEaIIUJEnm\nHe/4Ff7qrz6LJEnkcjkGBgYv/SS7ceLEcd797l/lG9/4Dl1di11Nb37zz3HffW/krW/9lTUf96Is\npLXiUjx1zxWqqvL6d3wc+PjC70qlPF/7zG/jPft9BmJ1OgNg1iDfFIMcr+kXH/TRtKg4Bw3o3kBG\n3N0GOzrgyBS0+0RWfKlKgRu2Qb4Cj8/ArrCgDTYztrZBsQqPJ+Ca2OZSHktjWxjGCmLJfjmBt88L\nnxqGa+PC+cvjjkrXJbhh4NLc4gI61DZJ1petw2RdGNXs7lzt6+A48JMy9L1PcNZvea0Ay7ViZhZu\nuwPAYeS0Q70kQFmT4PQY7L5GcLvTeYjEAEdI9K65TiKfh5EzkEo5nE15ydz8UprdJtm5Jvl0DdWn\n0nllO2ceTiLpBsWCQ/KpDNfeI8ArPVXh+I/H6dkfxipJfOiur699kKtiuYF5sVggGAyhKArh8Oa2\nNiaTSQA6OpZXvtvb2zc8er0VL3jQ/VmFpqn88vv+ZhWN8d2vfJzGsU8TVioki3B2XsiddneICm/Y\ngO1tsGMdQvyAH16y29VlnhETdLe1XRolEfbBTTtgLAVnE7C/fXPBMeiFm7bCoXHYE4DoZfKR3hoS\nY+/HC2Ls/UajZMKTc4AiAMjQFh3ldFkAjT8Av3QNzGdh/2UorF3suWk24XAaVK9QOIya8Maetbe1\nHXiwAXd8SqwEV8bMLMynXa5eFQBtjIltt4bhbBZwteU7+sEoQzEBkTDs2yczesbmqccgEHVoWKD7\nFA4FbiFyZSdtbTq+KwzmzuQxqxbNpkOzYbPzjk5kRcZxHJLDWcaez6F5ddLjJWpFixP/VOSPf/mr\nF3dyEPzw5ZpAXK/XROvziv3ruk69fnHD8V7QoLtRT91LC4m1RgPd80sfxLLux7aFMaksqzz5yHc5\n9YMP0Wsk8IVgqg6z09ATFnsxXGXC0vrAgo63U/wc9oumi389KbjXDr+gEmxHLAu9mvjyqCKz9qir\nM2PLEuY9pbowD8eA74xASBXz31qayxZ9gfv4VufR0qJgvSFG+pyrxfmWARhOQiYH2y+Tj8JgCM46\nq4HXbMITCTARyolWs4SuLGZthgx3bF/fwMl0Tcyi20xrThC+xs/MwrXraGo4kYGMLD4Hfhlu3CJu\nEGUTKud4D55KwVgb3PfnMDIGpimAVVUWudpwCLo6xd9rNfG7piXe51wB9u5ZNB+ybXj2CGRK0OeB\n2eM2Z0/B2AjUJAXzuqvZ+soDdCQqlFJ1mpZNNWsS6fFhLOlMsW2byedSSLJM/3UdhLv9DP9khsRw\nnnv3vIu7X/Pzl35yL1MYhoHjONi2jbzkAjNNE6/34u6iL2jQFdEC2p8N/dwCd9tuYlnmErBVUFUd\nWVa49e43cevdbwLgv/74frTdEfITWa787re5I5Sl3a36Pz8plohRH2ztgDv2w/C0KOaEvbAlClf1\nrT4G2xZa44YNDQtKTbHkxBFn4ckxkGzY2yk45zYf9ITExXfNGvtbb5zNQH4erjqHxnhPHNIleCIJ\n13dcvKqh2RTDQCdLixyi6oKGqkBFgednYF+by1FKcOPgpZvFt2JvDA5Ow22bDLp+HaxzXKfpChwr\nQygguuV647B3jecfq8D1K7LwqRI8VIc974Q33Sp+pyrQ1QujZ4Wh/Fwa+vrAykC+AP29gp9eGpYF\nx0+4zSi6OPcH9kEmC6dG4fgw1AJ+6m99OYU5C59fYn6kgL/NoPeK1cR+8lQeq2Gj+1R6r2xDliVm\nh3JMH52mmdL5i/s2a6rE5Uu24nGh/02nU3R0LC5XU6kU7e0X10f+ggfd83nqbvbzCO7YptFoLGtB\n1jRjlYn6N57+Nv+ffZDAvii+jgDtV/aQunmArySKyF4Nb7uf7LPjbPvqN7mxmmVkXoCprkFbFKoS\nPHhWTCOIGEKf21IXyLI72Rbcf5ZHn/v5f34SxrLQH96cNuHBGDRCwhRdt8R4o5XRFhA3kcfGYZdP\nZKUFS/jy4mpCDW1xcGdLitZSWCiI792dsGvLufWrcyUBJFdeptlx18Xh4IzwttjMiLiKhmYTDqbE\nsMegR+jE77xAw0zThnQOcLdrNOFrk9C4Bm56vTiXIyfFOVZlaJTh6t3iHKaysGv78v0lEnB6FGIx\nl24x4Ip94vGpNMwm4PFpIRd7dDZO/eV34gnreKMeYpEmIY+JN7Q87Z4eytIomfjbvET6/eheATGJ\nkzmapk2j0qRtdh/vftUfXMJZFNd6axr45Vzh7tixC6/Xy7PPPsMrX/lqAGZnZ0gkZrj66msuap8v\neND9WUUL002zCgiwbWW2S9/0VC7F+x77CKGrO+nqG0CSJIoTGeqFOp6oF0lVsE2L2nyZ6DUDVO76\nA3665HnSjw8T/It/4NpAiW0xUDygeCHZEP6nUlNwgz4dvnsULAfCHlHUcmAh4bcRbaR4IGtBIiky\nwbCxRl7gwENnYH+nmy22JGYs0gziNYvvhgaOBiPVFdsu+T7YJ0YYqT54Wc/GxP/ric6AUG88noCb\nNqG7b2V4NVHMPJWFXZugzhjPw5mSyCBPlOCqdrhtcH10RyvOFOE2V4//oxkY74F3fGFt7nZpHD0h\nKIShY4va65b+Wtdg/x5xwz8xDN98AvbuFl2T0TA8PhXFfuebadOWP0l+uoQaVShkamSm6qBrKLpG\n3dTZep0oatm2zYmfJpAsG09YBxz651/CG1/1rg2du/NFuVzG57t8ukVN07jvvjfz13/9l4TDYSKR\nKJ/85J9w7bXXs2/fFRe1zxe0ZEyWxdiORqOOqhqo59H2XWy0RrQvuplJaJqOLKur7rAf+OZHKd8q\n4+kNUjqbQ/NpqF6NaqqMYqioXg1fdxDVWH6ctmWROT6HrCnIuoqiy/h7I8juFVkrlQj8/ud5qTZD\nb8jBMt1GDkPwsx4NhmYFGHpU4ai20WJZswmHR0RWvSUisq/NCNsWUzQGfNB7GTxJ6g14cgpecplM\n14+kYY9n/dRFswmPJcBR3fE87nj4qKv3BvjpGNx1gW6yteLhKYg48KwOd78P+lY45o1PQr7oZrqu\nvEtVBHiGVqg+0hn46WEBsJoEU7PiMfkSPHQIIvsjlK+9ifabl6fHlmUzdzyDbdl4wzqesEGgY1GQ\nPPXkDP6QTMNScCSZ9EgecEg+n+ZlO+7jLXddOuAuHdUzMzPDxz72h3z2s1+45P2eK5rNJp/97Gf4\n13/9LpZlcfPNL+F3f/cDhELnlie9aHW6AnQtGo0aqqqjqpcwx2RFLB1kuTSWTqloRSKT5Dd/+hH0\nDg3fQDu54SRt+zsojOeJX9lFoC+8DKAt0yJ3wgVZQ0XRVQK9IaQLoEbu9DzNegNJVahlikT+7h/p\nyqaQLKiZYok62C4MYQxZTBve3b7xZo5jk2A2oCcIXZsElPMFOJuCvREIbDJX6jjwxDTs821+8ctx\nBNittfSfKsLJgpBU+QzwqWLAZI///E5yh2fg5g22kR/LwMF5iL8cdh4Qq4v5LHR3i2KZrkIsKhQw\na8WpEaibAog1DUoll7tVQTPEdOvnhuDpei9b3v861CWdMvNnclh1G9WQ0QyFUG9glaY3M16gkqlh\n+DVQJayKjSekMX8qS/lQk4++/XN4Pd6Vh7XhWGnrODx8gi9+8Yv82Z/95SXvezPjRa3TbcVmcbpr\nTaBQVR3btrFta1V2+zeHv8TDzhCeHVE88RCNkkn0mi34B9uo50yC/aKUnx/PUC9alKZzxK+I03Zl\nz3m5qPxICqtqIqkKiqYgazKB/gjqgn6sk0LvuxnJ1ZBVGUVXmHVsjv/zQe6afJqtnjp+P5ytQqIh\nAFiWhKBfvNDlX6YJSKKAt6dbZD3JPBweFy5q2y/RYawjJL5OJMDMw4FNzEwlCW7qg+NJiJriZrFZ\nIUmwPwp/fRT2d7jgqovsNeKHuy+C2livBLDZhIMJqCtwyIR3fgg6YqIhAeCZGuzesfZjj50UVI/u\njrgPhyCZWqSMtrkOPEeHRbFtJLSV4PtewzagkCxTSlRQdBXVUAj3+tHXMPgoJiuUkhVUQ8Uf91Av\nmjgOBNu82GGHE987y+36G7jv139xYydoA5HP519QUyPgRQC6m0WiC1lIE8uqr5hAoSNJkqtUWAT3\nmlnjHQ/9HsZAFM32YYQ96BEf0b1i3VidLwE2yePzSB4dTzxKeMCDVbcJ9C7XVFUyFfJjGZr5CoGB\nGIoq4+sOobn6LMu0yA3N0SgId3VZk1E0BU+bj9DAipTpA2/kGG/k2JJfpb59iNse+j57vRXaPAJY\ny3Wx9NwZFwBbrcO/PieaAXwqbImJbK3HLVRNlAVP3LpoHYR8bUFv5rTOo/heb4je//gKANzbtUg5\nbPGJqcubFfvjrpvZBnjYQg2emgNcox7DzQQ1eVFypnvhdde404s3gd+9kNn48/NQ1wR3f20fHNLg\nw2usys3m2o9/9jjUy0IvPjwC27eLNuUDe939HxcAXCzBWC3MsdtfjqJ5yJ+qIGkKubNl9r907cp8\nrWSSGc2jeTV8MQ/hvgD5qRKV+RrxPTEkWeLsY7Pkp0rcf+Wf0N81uP4TcxFRLBZfUFMj4AUOuit1\nuhe3D2dB/iXs40BRVBdsl14diyni7/3jHzG5u47WE8aI+fH1hNH8BrZtk3p+CkVXkTWZ6PXbUD0r\nKA8ZyqkS5VlRVZFUBS3kI3bddpIPnyQ4ECF9bI5qsUFltkB0WxTFUGm7svuC9MPKsG2b/Ml5pB0D\nPLb7vRxSZWRFQVIlmk8fZ/u//IDY8SptPqFuCLjSNceGU0nR6RQ1hHQtdBEcb7oMJ9KgOaIotXAK\nZHjJdkE5PJEQU3MvZv9rxUAY5lV4LiU6zJ5LCRDVNWErqcmujtdVTHh0MTdvPQWtp8ow0Lz0IZre\nNa668TxMNITEb3tcUDC1BjzswCvPQYPW6nD0ODhNIZ1TXWldtx86B6BcgXJV/G5uBp59BobOQCAI\nagAe3/NaAjt7aO8OLNQPAOqF6rLnmR/NU6s6lDIWoZBN94F2Rg4maDZsfDGD7ivEmzt3IkM5U8eu\nOvz36z9HKHA5wVBcjyLT/RkM2NvEeEFzukvtHWVZQdc3xhmt1tqqriJh9RXYbDb44RP/xt9Xf4h/\nWwwjFiCwJUqz3iB/Yg7Zo6IaGv6B2LIPMEAlUaA6X0RRFSRFxmj344kJ8q04nsbMV1E0YUOmBgz8\nPWEkWSZ7fIaudbRGWTWT7KmUsIFUFGRVRlZkJE3GGw+sKtytuQ/LYuYT32L388+yP2KyJQYdQeG+\n5lVhLg+SJdQPnW72alrwnSOCM24ZgS/1gVrIei3RjlysLhqx2I7InB0HZnIgN4VPhKYt2g22zLIX\nBm3Ky79LuK5ZLDeXBzHRYzQB96yzIWI9YdtwcBzuuMQxP+MFGNChasJjKYiHodsr2r9bYVrwYB1e\n9Tvi55FxId1StUXNsqZCT3y5esG24dgpwBH65qAfYmH40SE4MwF5xY90/y/jbT+3V8noT8YIthtI\nriLB3+VDVmVGfzJBbDCIYugUpvLsvV1wK5NHM0w+PsfgTR3kR6p8+PrPb5L+dnWsNDD/0pf+nkik\njTe84c2X5fkuNl60hbQLeeqeK87X2HCu+B8P/xXPlE4x8Nr9NGyb8lgaw2+g+g38fZFlNEd5Jkct\nU0ZRFWRNQY/58ET9WBWT3Mk5wdHqKrKuYLT70QNrp3lmoUptfI6OA93ucdtkhpI0bZA0DUlTKI6l\n6Lwijq8zsOFMeGVUUyXK03kkRUJSFBRNJvfEGW49+H2uC1fwqwKAPTKENdGA0R2CyaxYpntU0Xbc\ncRHeQ5YlWp87/GIJvxlubC0aY29YOLJtRhRqcDoB112kTG00C89mIKKJiR39wdVyuqYN30vBvjfA\nRFLQA+1R8K/x8TZNOH7G5W5VUdTr7RT7PDIMyTRMJCC1dy/Wz9+z5jFZpsX8UBpFV1B0BU/EwN/u\no5yqUJwtoRgqul8j1BMQEsjZEmYyjS3ryB6D5LF5qskikVInH3/bX1/ciVlnrATdT3/6L7nyymu5\n++5XXNbn3Wi8qEF3I566tm27YHv+xoalYVkWv3r4j6j5JYJdHixHpTpXpv/O/oV+7EqmRPboLP7u\nEIoLskbYR/7MHFatiaLJyJqK6lXxdoXXxUNXkgUqM3ka+Qq+rhCSoiBpCv6eCPKS0nglWYRCnuiO\n9aFAJVGgMld0M2EFSZaQFBlZkdBCHjznccUpjGcwc1VqJybY//3vcXtXlUQG6jXhsOaVYVtMeBS3\n2pT7ohvX6B4aES5uWzdJunY6CY65OXpbgLEc+Gur+eqVYTZFg4XHIzTTfkPYbRZN6JXXpimaNvwk\nA6/4LfHzkTNw5VXu805AsSgaSCYSsHO7KKr1drEwRHJoRNAMk7PC/eufuZb2t7501fPMD6exLRtF\nV9B8KqHeIJIkkRnL0Sg3UD0q3qgHX9vyu1VyKEWj0iC0JYyvzeDo14exsw3ed+OH2dW/9yLO5sZi\nEXSFw9jHPvZRXv3qe7nxxpsu+3NvJF606oXF+4V0Xk7XcWwsq7GgtT1XY8PK+Nrz3+e70RNYvT40\nSULp6cAX8WPbE1Tny1RTNfAaqGG/aC2SJaoVh8zoLLHtEXy9UTTv+WVstmWRHUqALAtaQFOQFRkt\n7KH96v7zPhbAFw8yfzbFUjwxKya5U/M4qrbQfF+dKxDt82JEfLRf1bvmvizTInV0RhTLZBlJFcck\nyTKSIi0W7q7qJf+WW/juksdWzs4T+NSXySen8OZFxhswYMI1e5dsQS1oiuCMcURmHPWtBuVbXGno\n85NgpmAwKjLgi42dcShWRCPFVbFLz6K3RuDQFKxkGYbmRRNLwC9afgMa3LlrNb2Rqa8NuD8ah9Ma\n3PxqOHZG0AgyMHZKbB8PiSaYZlN0pu0YXHzs0WGhtc0VxOSH2fgWCr/4BtrdJ0qNZCnMlgl2eFF1\nlchgCM2jYds2yaEM9UJaqBA6fRhbl39my6kKhdkyulcltiOCqqvMHkky/tNJ9gWu4L+97IOXdkI3\nFMuv83y+8IJTL7ygM104v6fuysYGSZJcsF3d2LA0SpUSv3X005TDEp72AL6+GKpXpzyRplGsIcky\nnu4QjmVTTeQFV6speHsiqF6d4sgc8e2riwiVVInsUAJfux9ZE0UtWVfwdodX8cAXCtu2KZyex6pb\nrpTARg15kRQVxavhiQeXvUbHcUg9MkzHlR2UzmYXjAyqs0WiAyGQJRRDxRsPbPhYzhWWZWF+/Mu8\nMj/MtkADjyoAuM+1gazWhcewY7sCCDeJ8atCYdGKM0lI5aEvLL4uJZ4ehx5DTG2+2Gg24YkpeDYB\n1/cIG0ifBh3e9RUEjyXFFIlWPD8npgYfuAcO7BI87PniyGnYtx+OnxRZr+TA0dMwnoT5bTuwXnEb\ntbKNrGuCxlIUfHEficPj7Lh7C7mpIuVMnepcibYdUUL9QZQ1JBWJYylkRcLf7sXvutWnTmeoZevU\nsia/Hruf7f27NnDmLj1Weum+5z3v4qMf/QRdXRfRbXIZ40VLL8By0DUM/0I/9vLGBgG2inJ+sAX4\n+A/+hud7c3h6IwS2tlMcSWLXLRRDQ2vzUpnIomgqkq6iR7142lZfvfVcmcZUApqIbFPXkFUVNeyl\nWW1gyDUC3euruNZSJUqTWSQX2CVVcYtlEp54CGWNIlk1mac6m1+gDeRWxqrIqD4dT5t/4Tw0TYvU\n4TNsuWPruo7nXFGaylFLlwUf3MqSFTdLViU8bX40n45lWVh/811uHj6E3rAolCHkEwbxPRGxeqnW\nIV0UM8T2tAt9Lwjd8HACugOwo+3iW4sns5DKwdUdq/eRqQgwVdRF0xdDcy0glUUj8DafsItMzgup\n2kbi6Rm4LgwzRfhJCna9HG688fyPMU04Pir+7zGEpabfB08NwelpeKjnVkI37MQT8aIHdfzxReRO\nnUrTrDexaw08bT68bV4kWaJ8dp6uA8tpqexEgcxojkhfkPCWIKrb2pibKGCWTOymw8zRHD/4yZt4\ndWeZP/4vryAYDNJSE1xep7/VoPvWt76FL3zhy/j9l7AUugzxogZdRYFGo4ptN9F130KRbGljg6Jo\nF/wwVGoVfvE7v0/Hz+3HaVhYxTqyoWJVG0g4yIaG4lHx9UZXFaxs2yY/NAs4KLqCrKrIHg1v99r8\nberRYfpvXT4fNnd6jnqlCYpGdSpNZEc7kqaiBj0LSoelUZpIY+YrwutTbfGyAly1kAdjvZM2gVqm\nRH16nviBc5i0AqVEgUqiSD1XwR8PIikusLrUgx7xYIQurlpl1WpUP/xFbsufpl0TpjltfpHtOgie\n03bAcr+bDciXYWRGaFl7XFB2WN1wYdvu71r+Ebj8pwMTKVEU3N4uQFWRBC3Qmqi8njgyKzrhNlKs\nf/AMTOUhfBXc+4bVfzfrcPIszGegMy5mqnncApltC6Ct1WE6A8/uuh3jdbcurE5s2yY1lEKSJCRN\nRtUU/F1+tBXNDbmzOeKDXmzbZu54GkfRUAwNu2HjDThEXAF18lSG+WNpwv1+JFVh4pjN98c+AI0K\nZKYg2Am+GJgV1EKCK9QUX/m1W4lGo1wOIF4EXZFA3XffvfzLvzxw2cF+o/GiB13TrLpvxqJKf2lj\nw4XioZNP8KfzDxDZESG6t5vEwVPI0QjVqSw9tw2g+ZevGUvjKRrFqgBXTSgUvD0R5HUMGSucnqOa\nyGH4NNSgF0dWkDQZoyOI5hN6qspEGlluICNRy1ZBUajNZogMCD8GSZHRoz70zTJIABKPjSA3GxhR\nn9BpKbKbVYvn04ICyIvjaZRmjej55hJdRKyVKZv/+wFemT1Ot2ERDwiHrr6IEP234rmzUKmIeWS9\nIdfkZwNxfFqA+N6LnF/nOPDICNyxjtXt87MwWoZns3Db3cLXtiWHU11vY9VtzY1H4eBRuPV6oa1t\nNOCZYbhiJ+ghle8Vd2L9yn1CeXA8taA8UA2FYE8Q+TwdGJVMhbkjSULdfhRDI9QfWgDtqUcniO8O\nkp+pIXt1ksfn8QQ0pp+YZq55DUPb/+ciIV3MwPhR0EPgiwp+qGmDWYFaEUo5PNUSsdosd/UrfOQd\n9xAIiKz4YkGyNR9tKeh+5zs/uKh9Xc540YKu4zjIcpNGwzWT5VyNDeeOP376Kzy/p0n5+Fm8nSHw\n+9E7I+ghH4UjZ+m6Mk5hPIVZtHAMg+pkiu4b+9EucHUXR+ZoVExkSRTHJEVG1hX09sACuAKYhQql\nkXkkt4AmtRoYFBkt5kMPet3tqjQmZmm/4uK4q9JU1gU1eUHHiyy5maqMFjYwwuvLjjNHpolt82ME\n1p/ZlqZy1LIVJNmlHRRpyfOvL1O2aiZzn/4+d50+xLWdlhgpkxR64lu2wdkkVKsi++3bIAA/ehri\nvoujLQpVODUN1694a8yG8OUNBkRhsTcEh5Kw+y5oj8BKD+xaDU5OiKzZaopmFY8u1AiPD0PwijgP\n6lczF+t3V1Qyqlcl2BO8IIhlRrM0axaKrmCEDfwrKpO2bTP12BTeiIGnzUd5rozqUWmUTIa+N8GT\n5ntoRHYLuzK7IcZY6B7RrldMQ2oG9rx87blAjgOltGiTK6ZQx4/RGQpwT6/Jf3/LHa5R1fqy4tWg\n+3N85zsPnPcx/x7xogbdZrO88PNGTG8sy+K/Pv9XFNpUaILRFcbXJxoRzEyJ6nQGp2mjhTzoHWE0\nF/yqMxm8RgOfy+VWMyVKEzlsWaU5lyG0vR2U5ZmrbVnkT8wCLPCxrSYGxW9gtAXWdecvT2XwyCaB\nntXVpPx4GjNXx5YlzESO4EDMBW8JSZXRw95NzYznDp5my23C5sqsmBRGUjQlFTFNszW3XaFRqKFa\nVWJ74hd8fsu0yJ+aB1zgW0KZtG5avvhqPXLxX5+i859/QJeZI2LYeHWoVWFHFOLe9QNwtQ6Pj4ms\nt3ODhbYzKYjakK3CrAnRoCiq9YcXQXwsC94bId4OkwlI5oQTmeq6gvk80LUE9JtNePoUPJDrY+yO\n16BGA+RPzLDnnu3nPhA3LNMiNZRG9aoomoy/y4++xtiPzGgWq9JA9+toQY3ybBk9oBPaEmL4n07w\n7IktjF79526XiiwOrpCGsTPQfzU0G9AwxfcFJ74VPeELXTJV0QoX7YPUJGQSUCpAqJeAVWSnnOTX\n98HPv/R6lhiLrigI/x/Q/Q8QFo5j0WxaazqArRUHjz7BnzUfwtgSw9MbQ5ZlCkNTbsOCihbxY7Sv\nvuoqU2nMdBGrUMXTGULWNZSAB6Pd5b9+chR/my5sm1SV6sgssb2dyLqCp3PjCoVW2LZNaWQeSHh9\n2wAAIABJREFUq1KnkavgafOi6JqgAGRhjqpHfQvZd35omnC3gTd66cWFBZVErSG0wu56WFJlsBHn\nzNDwrgGGrcgfnyLa76VpNilP5UVblSRRmSkQGQwtFNsUffPUE5VMgfBf/QO32xOolRoxWXhBTGXE\nFOdt7XCuRH10HtIF2Nex2vy9asLjE2BLbnux2x2mq2I+3q1bILbGgqFiwg/TcO11gjuumhCKCQBe\nK+Yy8KXhLpL3v3fZ7xOHxth2S9eaj0mdyVCcKRPq8qF6NUJ9a2fAtVyN/GQB1aMS6PZTSVWwKhbe\nNi+BzgCp4RTTj0/zw6m3Ugu7o8wlyb0btO4IJpRLEIgvGVPtbpNOQKCV9i8h020HbEt0wsiKywY6\nkBiD8KD4v9WAegkkGdlp4pk/zet74b33XMmOwS20RmZJkkaj0eCtb/1FvvWt7619Ev8d40UNurIM\ntt3AsupomoGinJ+Y+6OnvsZDtVF6XrWf3PFp6vNFovu68fTGln1ASyNzNKt1kZG6vK0a8aGH/dSS\neWqzQlEgq4L7lDUVJWBgxBbBulGo0hibOqcuthW2bVM8OUez0Viy/F7+ZbQHUC+g+V0amWfO0rE7\ngn6BkRH5syka+ZoL4BKyKtqRJdnlczUZT0cQ5QIGvbVMkcpE1uVkJWRFEpywhKAQVAk1YGBEfAvn\nuVE1yTw5xpY7Btf9us4Xtm1TGEljlk1UVfQKL9UZ26ZF8Ls/ZtuxI3QoDSLuoMf+qOBSbVtc0rZb\nsKvU4dlRuLJLUBiKa4ITDyxO8Vga5TqMzcEVK6ZNpEvw6Bzc+8bF3x2fgP0reglGp+CJ0zITWpzx\nO+7Ge8OeVc8x/9w0A1fHaNQs5k5kRGeiriIZGr64n8yRGbbetHrchWVZJI+n0HUVI+rBH/eJLjRN\nJtgTwAgalOfLpE6kKaWqfGvyA7DzApKKc0W9Cieeg+23rG/7uVHwDiwfzjb0Y6hkQe6AvjvxHPwj\n/sfrBnj7fa8C4Ktf/SpnzowwPj7Ob/3W77Jz567L7sHw7W9/k09+8k8WFFIAiqLw058eXrXtix50\n1+OpW6lVeMeJv6PS4cWuNvB0R/H0tVE+PUPbrkXZTHlsDqtcx7+tk1qqQLNQdSv1igtKCmrYhx5Z\nXxZZm8shFdI4dRsHCZvWlEAFSVGpjCZEI0VfFFnbvF4Vy7SY/tZTRHe1I+sqTqs4psggCUAVqn0H\nO1ek7TzKBbNQoTSWFomOLKFoskhqlJYsTEL16xgx/4YLJGahSvHEFD03bbnwxkAtV6EwmllQTsi6\ne7OQ3RuEK01b9/ObJs5nv8PLMsfZqRUJyg5Bj5CvtV7KM2NAQ9AUF+pCO5mELR6h3W1Y8M3joMXh\nTa9Zvt0jw3D7dfDQszBW8jOqdzN15Y3E7lq7q6s0U6CcquCYFp6oF8WrEehencnOPnKG7beLm3wh\nUaKYMsHQKIwX2HpLO9V0jcTzKTr3xogMhpFVGbtpM314Gi2oMz9a559Dfw9nnofuqy/O3adWgecf\nBG+nIK6llnmGSzvJEqRmYettYvvECDz4Zeg+IOzpqjZErkGqzKGVU7y0e4K//cBbXI9f0br//ve/\nn6effnrZ07797b/Ku9/9Xi5X/Pmff4J0OsUHPvD7LB0DL5Qay+M/Peh+6fHv8VXlBJ6BdoyeGNqS\ndWWjVKVxZhKtPYiZrYCq4jRBCfpQgh4qQxN03rbzvMdgmxbFk9PC9cwFtgWNqiIj6QpGPLymusFx\nHLKHhum6rmddxjQA1USOSiKPrCoLWZykyEiS+39JQtIVPB3B8yoqrJpJ8UwSK1/Frpt4O0MLYCzJ\nMsXhaeIHOlFWaHs3OyrJItZchtBAhPxYxr3Q3eNQBEfcOpeFkXkG7xq4LMeSHxPNL1apRt+PH+Sa\nwhjdWo1yBQxFmMSbFegNCte0c8nKDo0IeiKrw1vvE9McjpwVq2pVgdE5meG6l/ruXdRffyeB/uWm\nRrZtkx5KAuIGpxgiO/WEz19otC2LkW8fo/1AF7KuY7R58YS9pE/NU02WCXQF8LT7yRyZZscdvVRy\nNaaenqcwlqJjV4zJcZUHB77YOgh45hHYc6cA0blRYWcmL5FatL4qOWioEIgJlx3dA8G25YBt2zA5\nLPYhyaLi6QuJn4eeglQ7qieEqgawZD+WGgFfO3rxDOMfERnsUgNz25Z49NFH+MY3vs7VV1/H6OgZ\n7rrrbl7zmtddzFu/rnjve3+d6667gXe+88LTL170oAtNTLOKomho2vLl9Kef/R7fLh2l+/XXLlyo\nlbE5rFJNAJKuoigyalsALbiajGvWTQpPnsQb9dFsOiArSJqG7djUT04TuXoLkqbg6YwIwLrISD92\ngkC7TrNiiQ+rJApRIkOVaBTqyKUCwW3taEEP+nmUBlalTvH0nBja52boC+Asywt+C5J2fmBumg1y\nT5yh77bBi35drTALVYpjaQGiSIs3CkVGdo9P8Wl42s9fVLStJnOPnmbwzotr5iiMZzDzVeEkp7aU\nHKLgaLT5zknHmKZJ+XMPcHPhNFub8+RmGmzxiQnJe/qEllbVRFFsOgPTDbj1gPjZq0IsKAD3uVmd\nL269B/UV1y3su5arkj+bE7IvQ5jWB3rOf8NsRW4sg1VpoBgqiqES7AvhOA6ZoSTIMqpHxdcVWCii\npY8l0FWLhi0oiflnpiiezXGicgNz2/+LWyxzC2aS+3/dEAT0ucZh2TYcfhh2XA+JM0L0rMqQnoXY\noFtY1SDSuXwfuST82yNIxQGcWB8EV3PVg/UnOfQh8V6vnBpx8OAjHD78OB/84O9f8DxtRtxzz928\n//2/ty5znRet9wIs99Rd2Zf9o+EneWCniTNkkD0yCYYXR9ewRpPE775i2cVdGU9SHZ1zgWBxKS4p\nMp7BHvTO8Krlv9Yepj45R/SawXMen21alE7P4tjOgjJfUpYAn/uztz+OHPFhBNfOZqyaSebQaerH\nZvH3xkAqgKxQSeTx+iU87UHBxSoyikcjfEXfJRekFF0jctNOJh8+Rf85OtZs26Y4maWRr1FNV/B3\n+BcAVV7yOhWvRuzK3kvOUGVVof36rUwdHKfvtoFVfy+nSpSn8jiKCrJCNV0mFDdQDU28l2sZvy+J\nSrJIZbYgzp0iI6uSAGVdIfQbr+WkpnDS3fYwwpho8mv/xE2VMXooYyhw2y74x2eEL+58Hp4ZgVoT\nyvFOvn/zz4HhwRnKImkqldkCXXsjdF69PimgWaqTH8sg6yqqruKL+9H9BrZlMX9snka5jmpoxPZ0\nLANts2KSHkpiBHQ8A3GcTJXJH52hWPXxaOxjcNM6+NtsEuanBYAqruSiNeJ56yBoFThw1RL5RQ16\nloy2SE1BckQMkKuacCYEgTfi6A7M/9sq0NXPfoe33aUCa3/2CoWf3dSIVGqeYrHA4cOP8oUvfI5q\ntco111zLe97zO7S3b0yz/oLPdM/lqZvJZfj5oS/h292LGvKhx6PUJpJY2RKOIuGUqqhtQSRVpVkz\nsSdmaLt9N6rv/Noi27Yxk3nqiRySKuNYNla+hNEeQtKErEZ2TV/ryTzk8nTctW8VYNuWRWU8TaNY\ncbNPoQiQAFqA7P4eCSRdxWgLrMn7Fp4eITIYWLMl+WLCtm2qU1nqmRKSqoDj0MhW8HYGwM2UkV0l\ngywvKCdsq0n60WH6bh9c05P4UsOqmeRPp4TxfN3CsW3RzKEoQsWhSGIVsKRY5zgO848MM3jHIkBX\nchWKo1nMYk34YKiigCirF3Zau+AxWhb8vz/Afuw4s1391Ds7iN62Ez0k/DY87YFlnHMlWcKgTOAc\nZLFt28wfTSArKqpHRg968HcKjxGzVCc7kkX1KGhelWB/ZNVNLXc2g1W1MEIegr0hLNMi+fQMudEM\nzxpvI9F/H8ychelp8AfcrNSV/bVkYhNnoH8veIMQWqdVW7kIh34M/TtFH7UiwZFHIF2H3CDEl9tM\n6tnDmH03ix/mnuZG4zn+7ndup6N98Qa5mOkKW8evf/0fcByZt73tV9Z3TOeJRGKWN7/53mVFsoVj\n03U+8Ym/4P3v/21e97qf4w1v+AXy+Ryf/exnqFYrfOELX0HXl9OaL2p64Vyg+7KvfZTaYAx/XwxJ\ndqidTRK6ZQ967Nxu9sXHjxLoDOEbXCysFY9N0ChU8PTEBADKEmrIixr0IkkSttmgOpnCKtcFCCEt\nbCdJEo5t45gmRiyApCo0zQalJ04Tu3EbRmcYZeVkiYuM8qkpPJpNcOvad12rZlIaT1NPF9FDPpdy\nEBIfkY0q7opS0BBaxHfBBpC1wrFtUo8M03f7wIaA17ZtSmNpzFJd0DTy4kqjxefKhoan4/ySMtu2\nKU9mqGfKyIqMorpaT9tG8erImrLAUWePzdCxO4SqX/x7YJkW2eGkoEiWusQFDbxt6yu2zj10gsE7\nxU0hN56lWmyCqiJpGrKmUJnKMPgSUejMjmXITxQIdQfQgzqB7tWfZ8u0yAwlUX06gZ4gekBMNZk/\nksAsmuSm6/xQ+gNhLiHLInONdpybPjj2JOy84fwvolSA2VF3PIchzCs6+mBiWGTHw6Mg/ypoa3+m\nPMWj1Hwx+vI/5k9/aQsvvenAqm1Weul+/vOfZcuWrbz2tfee/9jWEZZlMTMzvebfZFmmr6+fQiG/\nbAJwOp3ivvvu4Q//8E+4887l9pkvanoB1h7Z85vxG/nHseOMl+eRwjp2qUbiX57Av70HoyeG4jdo\n0RHl50fw9MeRg2GKWZPCzKjgTDUVDD+WR6KeqxHY1o5j26R//DzBAwPIXkMsWXvbNgSe3oEuik+e\nEn4OXRu74M1ciepk2qUrlgKnTKnuUD6SRPG5HXlLxilImoo+uAXFX8BOpWi7um9Dz7vekGSZ9jv2\nMnVwmL5b+mjULIpjGRwbHLfYt7SKXZ3N44sa6GEvRk8M/3qsMI/NCE2XK02Tl9IZioyvzUtk4MIZ\nWfSKHqYfOcXAOiVrudPzNGsN1/JSQVYVFF2m/YquizKQr6ZKVGbyOIaHxJkSsqZitLURGRDAZNs2\nmWMJmk1InC4iqSqeeAdSsk5s1+qba+ZUCttsogV1Oq7qXrgu0sNJnKb4rA8dD3Hsmk9u7ECXvrZa\nBaZPLY6uUFTRFDF6Em77ecHvPvsT4S85Nw51A87sB+NV595/egiSD3L/PXE+8PbXrvuwNnM+mqqq\nbNmymq5aGitHrre1tRMOR0gm5zb2XBs+uv9gsdRTdymn+4aXvZo38Opl2/7kqcf4xOlHKRQb6L0x\nKsfHkcMBJM2geXYe/9YOfDt6UNcoqAFUMwWkUoGO115P5fSs8ITdGhejds4RVqWGOZenUaiIESoS\nYunmNciN5+DUPFrMJ3hkSQBkS2Rem06hWg382ztdsJJQfDqhff0XXbTz9bVhx8MkDp6g/fr+1TPc\n1hHVRI7KTB5JXVKYk2W37iJ+9vZ3kJkxhfHPvq3nzE4DO7rJPD2GN+Kl2bTJH50WNxRFpjabJ9Qf\ncottQusrayqxPfF1FZkuFJIkEbtmgOnD4/TePEDDtMifTGLj3hhUZcF/ollvItVM4hfQXJ8rzIpJ\n4fT8guZbVhX0sEHblYv7M0s18mfSwvDeI7aL7e9ade6cmuj8aloWyeNpJM1AMnSyJ/Psef1it9r4\nT8cIxP1ofo3SXIknTx/gzDW/ub4DrpRgasQVJNsw5/7f44W9S3jbWgUOPQADuwVfm5yEsWNgyjCn\nQfd7hP/kysiOolZnkPUYJl7+7zft5F1vvEA2vRDiufP5PKHQz2Yo5Te/+TW+/OUv8U//9N2F4QWJ\nxCy5XJZt2y7cIbg0XvD0ApzfU/dC8dUHH+CLpWHyEQ0HB6fRwNsVwRMP4u1vI//oEHa1jtHXLszK\nW501Lbuqpo0kSciGsvBBtKt1So8eJbi7B+/WDtSgF9mzPvOdlVGdydCcThK+ohfVe/5Gh42EVTOZ\nf+ApvFEPeiSw0OLpSCIbdVw5kN1sUjsxQdvV/a5fgowaNNDDvnW9nlqqSHkys6icWCgkLgJ0iydW\nvJpoiXYzq3qmRGM6uTCuaDOiPJOjni7jSIsZsiQhmlsMFU88eM4bRPqZCXquXd14sDLEWKUEMkK6\nJ6sKqk/D17lcV1uaylHNVFA0BcVQ0fw6vgv0H5emsuSOTxPc1oHs0Qn0inl65Zk8HrWGbUM5ZWI1\noDAyj1VuUE0XORu9j+l9v758Z7UaTJ0UagNNgWQCYn2un6UXovE1vC+TQmOrub6XHr/YbvQYjB4X\n84HKN4F0I9TmQapA2M0gi7OohdMoRoy62g2eNmiavDL8AF/60EsueF5X2jref/9vc//9H2Tr1m0X\nfOylxvT0FO9859u4446X8va3v4NcLsenP/1JPB4Pn/nM51dt/6LmdGFtT91LiX958Af8ZfYIpYhG\nYEsMSYX6bBpPRxgtEkDrjKCFLszXVaeTOJOz+HoieLdsfKiWbdvYlTpWoUr+qdMo2Hi3xBCVtSVf\nSCBBdWyO4PZOl25gOf3gZtGtjFnSFPSIb120SD1dwBqZInpVL1apTrPeACTq2Qp2uYoa8Lq8sMsP\nS/JCu7Dq19GjF/+ebBR4LdMif1Is94SOmWXUgx7xol+kBWWjalI4Mr7QyNGomWSH58UHUFFFIVRR\nKI3Os+Wly7N727bJDs/h2CyArBHzXtDkx7ZtMVlEUlC94jGeFbadlmkx9cNhors7ULwGlWQJza+R\nOzHH2KMphvd+EMIxd6Kl27csu1KwtvgiffDM47BzydibWg2mhiGXhvZeAbTB6GIxbewE2E2YGRNN\nDUeuA//yJboy/2McZHRPBzU1LhomlkS/+QhP/Pn6xvysBN13vvMdfPKTn6Gt7cLDWzcjhoaO8bnP\n/TUnT55AVVVuv/0u3vve9xEIrE70XvSgu9RTdzNAtxWtyRP5Ypbf+vxfMCSXcboiyIqC1h7Eu60b\n1adRenJY+DW0BfFs7VymXHMcFizvJFlCNtRlyUPh8RNoukRwXz+SLOPgiMWTqBCKCROGhuLVkbTz\nm7DX0wXMM1OEdneJ7HVJmLkSteksdtMWB+UW+lqALLndaZKb8S6AdOuClCVkTUaL+JcBdeHJk8R2\nxNA3wefhnK8rU6I6MoPuVbCb4KjCWEda2uUkSdiNJs1kiq6XbNu06RcgJjbX81VkRcFuWOgBHUlV\nUTwa3s7VXWHJx8dQVRvFYyxQFOXxNH239q+rAaaWqVCcyqEaCoqhEehbu7EmezKJ07RRAwaSBI18\nDT3iRQvqnPrKMzxu34t559sv3FVmmjA2DNOT0L99ka/VDfD6YOQsbL8KcinITIuM1h+BQBuUsvCE\nDzx3iH01mzD7MLrqRZKD2OURGoOvX9O6zVs9xSMfMOntXttLYmWsBN1f+IU38rWvfRttLWezf+f4\nTwK6NWzbwjB867Z1PFcI9zJriRm6tODN22jUXFN0hd/48qc4EnfQBzpQ2wJURqZRdBV/d4TykVEU\nv4Hq9+Dd3u2agrgFP9teDsy2RXMui7fdi39rB4qhkz54AkmS0OMhhCJCco9EhCS70hZJckHa/UcC\np+kgyYgBlpKEXTWpnpyi7fpBjPjm6xrLp6bwKE2C2zeWza+SpsGC9WQL7CW3K03WVIz2wAW53Ops\nDqVaJLxBv1+rZpI/lXSLcy1nM+Gtocd8a05srmVKlMazyK7NouwCrBYy8Ky4CRVG5ulYY4QTiOJg\n4vFJjLAXxaNgRHx429e+iZVm8tTTZVSfjr83TGEsjSRJeONBPDEfs4+OkTwyx6O3fnW1s7plwcgJ\n18TXlYSpqugga+9a3WI3MQLjZ6B7AKw6lAti27FhGBmB2g5ovhayw2g4KEqIOn4cox9k8dxy/kHs\nvuWVfWwb3+w3+NO3t/PGl199nndleaxlYP4f0UsX/pOArmXVaTYb6Lr3vNN9zxeO47iTJ+pLDC0W\nzdBt+9ydbwDjMxP8t//9KWZCErjTHtSIHz3qx9MRFFMg+tpRzsPNNpIZZLOGETaw8hUa+QpaxIe3\n99KXUJWzCcgVCe7pvqgC2lphmxbV2SyV8STNVJ7gtnYXQEWm7rh0hrgLQHU6g0e18ffHhGdD2Lvg\nGbxZUR5P4VEaBPoWDVCEbWQSu4lo9ZZkqok8kYGQ4JMNDV9XcE0VglmqLRbBXBMgWVVQAwbe9vXV\nEKyaSf65cbpu7CMznMR2bcpkVUUyVOy6dU5QtkwxvFT16njjQiqWPpJADegEt0RRPRqFsTT5kRTp\njMFjxrtAaoquMF2B0XEY2AWqDh3da4+5sG04fUxcTJouVAnFnJB/GQZ4A0KvO/Q8HGqiGtegqiFM\n/NhaL6hrSMFq86DXIbxEKTN/mDvan+NLH349Hs/GahQvFANz+D+gu66wbWGGLrSAa5uh27aNaVaQ\nZRVdX5+G9YZX/ZhE32N0vDGIb2sbOE1kXcGI+vG0BZC9OunvPo6kq3i3dyPpGjgOTqOJZFsgOUgO\nNAtVVK/wcJAUyc2UxdsjSVCbTiO7TmALy93W294q/Lkbm8k8iiZjxPyC/lj4eEgLGXP5zAyBvpi7\ndF3CCy/hiVtNHFrYi+Iz1k3rlE5N4VEsQts3OFzsHFFLFSlPZUSW7PpP2FYT1aOJuXKS2/IcX95a\nazdt0gdPsOXObdiWRe5UiqZlU8tUCXQtDg9VvBre+IWNwteK/Ok5rGpDvDe2g+rX8fdExCpkSRTP\npmkfXATwzHASqykhGRq5oVl2vH4P+bEM+dE00e3tBAejSJKEWaiRPjaLHvJw4pkmR/a+T/C0LWBt\nNuHhx+CGFdnm5BmYm4RYlwDZlr42O+8WyXTo6IFqWWS2Z0/BcxJq5SVYahdoF77Z6NVhzLjrlFae\npa/2A/7nr23lthv2b/g8wgvHSxf+E+h0YW2t7nrCtm0sy8S2LQBkWUFVjTWF/edqN14rHnrsDG/+\nDRureSvM9FAeXlKgqDxA+Jb/hW9XFD0eQg36kWyHxpkkRlsAI+rH6GtHC6+fJ7XSdVRT+PxuRlbs\n3zdA/qnTqEgEdm7upNXArj7q6QLJJ8bouH5gzezStiwqiQJmuoxZrGNEPAsuby25XKtxQg0axK7a\nck5QtG2bynia3PHpJc0W4obh6etgfqyEbKh4dm0RUq5ilerQBF3rdD5rRWkiQz1bERmxoSIrMr6+\nKNo6LDnL0znsUhXJUJF1Dc/WLryKxPwzk3i7QqTGiuBoRHa2ERqIUUoWmf63ESI7YqDIPPl0kNGX\nfmjlC4enD4kJlpPHXE8E96snAqefhngHUIZjw3DDy2HnFeKxJ49Aek7wvUOz8HAf9N6NtYFFieQU\nADCmv8Wv3VrjD961eWY0G73O/yPFiyLT3ainLqw1nl1emBh8vses7HxbK976G4/xwCP7QQqCMgSB\nW8AyofoIHjVKvRHDkQaWFxd8X6Hj3p+i+C3UgBck8PS24+mOogY0QgcGkTWVysgstdFZ9O4Y2LZb\nqBPGNmosCLJN8+wMnrYA3oF2YXZ+CWHVTMrPjhAcbMO7zgnG4DZxTGVwbGehUw9YUqBDSNLqFqpX\nXWwrbikvZAU15EH1e6hOplFKeaL71gb/WqZEeSK93NmtJVFrDeuM+lbNujtflMZTePXGmlObLdMi\ndyJBLVvH3+ETnK6mYLT51z2dozSVpZ6toBhizp43HkTzG1SSBarJEqquonhU/P3RhZtJ4uGTeEI6\nkseD40DmuXHyIzmOXPEbWN4ewBG0gNpy31GhvROqFZiZFBIvVRUdaLoG8W7xGXzmCaEqsEpgVeGJ\nR0D2geSDQ1eAdgNy+RHs+O3rPn84NvLM33H9Nocvf/hVBIMbk3KuuUunda1qVCoVfu3X3snXv/7t\nS97v5YgXPb2wXk9daBXJFsezS5IoksnyhcezA9RqJSRJxjBWN1Akkzluu/cYqdIdro73ScDCo7ZR\nb0RXA+0aoUvDmH53SaZ8g553PkPgQBynXEP2amjRACgSillDDXpRgz48/e1g21jlGnaljtMQnqNO\nwwLHEd4CuoqE05JT0MgUqTw/Qvj6bQtL7tZHQXKLcwuOoZKE49g4li34WgnkViFvyWSA8tAknpCO\nb6ADxaejhX3rbmKwbRszVaQ2m2096TK5m2PbOA0LLWAsOGE5zSa1U1PEbx4QbdabaPdo5irM/ugo\nsb1xHMltklBV0S7tTgJxmk3yh0/Se8eFxfGVZIFqooCiq2KSSHtgQbqWHU5A00E2BHCvLMKVprJU\nE0WMqJfAYBu5k3PMHxolU48wdOB+oTSIu1zt7BTks4ugq2gQCEB0xeonlRRfdhP8QWjrgOGj8MxT\nUGjCyXtB2b2wuVo+iBW/bX0nb/4xfIXH+NT79/O6u9fb8HDhWAq6iUSCj3zk/+Fv//ZLm7b/zYz/\nFPTChUIUySwajY2PZ19PfP3bY/xfH/NRbrwG6oeRlSnQrseWtlBriiLSekKSltznmr/AzN/+wvIN\nwp+j67XP4+nx06w1aKSL6B0holcPUj09hWKIKcN6bxtq0CdGmFvQtBqi08vNjFE96FfvoTCWwNcV\nJrC1A821i6xOpWmkCy64LRyZ+OYCehNp+f1DAs9gF1a5SnE8jbc7imXaC3/OPz1CcFf3ct2wtJj5\nIkuoAQ/hA1s21FJr9MTIPjdC960bN/upTGWopUvupAsxlbmVHasBgy1vuvH8nw1FRmlb3W5cK9Uo\njqRBUanOlwlvCWJEfbRdKQpK/z975x0eR2Gt/d/0Wa206t1y78YyxtiAARvb4BsIISSUcAkhhCRw\n0z5ChwDhkkIINUBICCWNEMiFVEhMCt0GY1nuXW6yZVu9a3dndsr3x+yqrqSVvDLG5n2efaTdnZ2d\n2d1558w573mPFTRp2V6D5FMQNZm0cdl9pGReu/MhJJ+KLz+N1JMzCTe2U/P+Hjr2N7GqeRbmieeA\n2wG2CO9tgvHTIT0TCuO0eLe3Q9XuaL5Wg0A6TD0Bag5C9UFY/R7UAauv8eaY9TpXCnG7+q2gAAAg\nAElEQVTbyrqvvxY5uB1BykUQ0/n9D+dzyuzJA7/mMNDa2nrEHMaSjWOGdAfK6cbkX11FssTHs8d5\npx7v0dTUzhXfOsT76yeDsQZNChFxU3GkC0AcukJAEKyBFzh4GrW/mIIqp+K6PoywgjLp90RqNiEX\npENrCDnkoDoSarrhOYBl+NGL+5FQzRgLQKi5jVBVC4rsohWkY9a3ImkKWlFmD9P34SJ9kZ/Qlv2k\njstGz0le66bi10mdN4Wqd7ZTcGoJoiwSrm8nfKgFByE6i8v7G9xfT8aErGhLsYiSkULWqP5tHgeD\nFTaxwhF2/7OCtDFZnkmNLCOlqPhLJ3hXDPsbsNqaCVe10VIdIlzXRu6kTLJOHBX399e6tx47GEHx\na2TN8paxgiYN66qwghFqdocoP/l/ERZlI3b7zbv7D8GoaGOC43heCFYYampg7GRI8cPUUu/5YNB7\nfv8e6OiA7Qfg3SuiaYn4+9pv23ndB+iiTFgoxPKfiRzZz7Nf3cspsxNreEgUXcect8+trS1J8104\n0jgm0gteUd1TFkiSjKJ0GYZYloHjeNGZKMrRVMLwdbzd242ffm4Xdz2citVRiSwWYloTQVTRlTWE\n5ZOGtX5dWkfYF9UudpQjuh2oUgqum0LE8uGQC+Lg+TFl0s3kX6GSMjoHOeCD9iBqth/Fr6OPykTS\nVKz2II2vleObMsqLWh0XJ2JhN7UhCY6ntjAtcFyUzFT0wgRt/QZAuKoBu66BwNTCQduau1IOzdG8\nMCAIiHJXw4YgSV12mDEXuDQdJU6bsh2xaH1/G8ULhtY26lgWLdtqABdRkhDV6OgmXcFXkN75Po7j\n0LLlkJfPlCUvpSOJ6PmBzvl2HZUN5IzpmZpq2lFLy94m0sek4y/O6NQEO45D4/oDyD4FK2iyZnMq\nB5be0HPbDh6A/ZWgp3vjhFWvYUTIL8BtbIQOPDLeuwPCbbBpo9fiO2oc1NTCq8VgDZ4C0MJlGNnR\n5UINyG1bEOVcTGmMN44dECOHeOS/N3LJubOgn2m+w0VvA/M33nidzZs38+1v33zY6x4JHPM53d72\njoqiRYtk3RUJ6rD1u91hGEEO1TRxxddqqNgdwbXHYLkTu3K1rgHCWvCdOsQV70Z09qGI9eCbgRnx\n4Yr5ICRBw+qGIfJvAue9ROpEHSwTJSMVOSsNbVweQnMrWkkuit+HnBtACfhxHQe7I4zdFsK1Ha+h\nw3IQcBG1qMmNt3JwoX3bPkTDwD+xsOuz6OTJXr8/Aa/AFiuadZOqdWYxGtuJVFaTs2AKamby8rWu\n7dC0fAtFvTx/jeYgbXvqcAUJV5KwaptJG5vtkasioRdm9Ohys0yL1i0HokNJJQRJQlIlfEUZA+ax\ng1WNSOE2Iga4qoqoKmj5AYJ7G8if6hXt2g8207CtHsmxcRwHxaewpaaYvVlneMoDKZqvlSXIyERM\n7ZlacRwHNm7wUgoFhdDW4kW/sgRr10J1C+wdDR2Xe4W3BKAbqwk7NrqoEKYAtJ4z9QSzju99ajVf\nvjRes4PQ6zZ0Iu5Nun/5y59pbm7hy1++dkjrOVI4rnK6juNgGEEgViTTEEUpaQft9368gude8hMM\nT8URopdz3VatSPuIaAkQbqgcWQwiS6lYViqWnYMjjsd2K7CcSfGdmYYLQUf3jaF15W9p7T64NLyJ\nrE/9lMDsLNqr92BWNSCIImmzxuAbk4ue6UcryUnos8soLiB0oBZjfzV6tp+U8Xmec9pwMSYPZ9ZY\nmst2kFZkklIydBmc4ziEKuswW4LdZsiJyPmZ1Gxu9FqrJS9allJUfLOmdOaT27bsR81LAdulbW89\nwaYwRl0LacUZCLLnnZBZWpJQ/rltVw1WyELSvKnRanEhWi8ZWfveOrBMBF3DMm1cWcHocGlaf4C9\neQtoOfVCxOz4KSInHIZdFdGZ8GrXePPcbK9FesxYWLcGNm+HFfNAP8t7YSJfT8P7aIKAbVZCzgWE\n5ThBQKSR6xev5iufm9uZwosWD3rduuC6wyXiWHqhlfT0w7/y+jBwTES63hdqYVlG9L7QKf9KFtm2\ntQU587wN7KueCUL/veKa/AGGckrPB20bjHdQZA1JTMOMpOC4BSDE0eG6BghrwJfg+OpE4bSDtAP8\ng6Q9zPfJvuAZfGP83nBOTULJCqAVZqIENJyWdoLrd6HkpKOPL/SmZbieKsJ1AcfFdWwiB+tR/Qp6\nXiDqXQwCrkd6fs1rphBFHDOC1RrCavNuru12HocCgCRitYewW4LoOWmImtwtKu6KkENV9fjSddTs\nVGIDOhFFlCx/v1Ixs7Gdjr11nQU0MarM6G6cLvk11KgyomN3Df50SBlkQkf7Hm9sjicHk9Hy0lBS\n+qZSwvVtXtuypqBk+QlVeScCPS9Aw/u72FNWR+VXf47Y7eTlOA7s3QUN9ZCR7Um/fCneb6ypCTQV\nNB2hsAga6nF3VsDOClg+ByIJ/KaMdoTmlWhaFhEngC2NAqcV1A7wj+u7fEsZVy2o4kfXzceLQruI\nNMYt8Ym4P/Qk465aTU8D8yeeeJypU09g6dJP9L+qDxHHfKTrOBaOY3Te9/wXkicfAvjU5QfYV3NO\nj6i274a0Yth+EFrAXIWmpAFpmKYfVziTiC3Hiv/9r0fQ0GQZo5+nhw0xFV2A8GDLqafR8Fr04Axu\nBLsRjJ3kf20NqScV4xuVg3LyCQQ3V2JW1OIrSkdNT0HNz8Bq6aBjSyV6SS5qQTa4XkOT2xpEStFQ\nsgOIAR8RI4JdY9D69lp8mSmkzhyNlp+Bb3TOkKNjx3GwWoMIukbLur2kueAriRXHBFo2VaGkqF5n\nWudgziihpmpkzB6b8G/FPz6fppXbO0k33BykfW+D11YsKYRrW8kcE0DLSyPVH9+HwmwO0rG/AUlX\nUTNT0HPTCNe1I7SEyCwtIVTdwqFlG9jiziA4az7Kvq2IioigCJ5cT5FwfUHCoRaU7FQ4uJtIWhGU\njEYsLPKIbuN6qDmEGw7Dex3oK88kHJjV/461bkeO1CBLWYSdDNyUJYS7fSaavRHD3yvva9RR5Czj\n4RtLWHDaqZ3E2j2G87o5BUSxPyKOCRP7j4q9xbt/P95zR9JLN9k4JiJdbx9iOVx3yJ66g+GmO7fx\nyz+UgtBP4ce2wVqOJjbg6tMwI+kgdMttDhEiu3DUsYO7Qw0VTiMo9eCLSnlsG0JlCBjIoo4kKuBq\n2LaOZcu4Qnb/RTvtl+Rf+h6uYCDJEoKi4hufh+KTkFNUfGPyEDUVfXSuF9FGLOz2EHbQ9PKLrut9\nby5YtU0oukBKUTpaTgCzsY2GNzeRdsLoTl2wJzODWIQrRB9DFBE1GTlFQ9SVPpf7jmXRsaaC9OlF\nw1JhWMEwbTsOdY27jxb0JJ/qRcHZXe3BthGho3w7BfN7FupadtUSPNCCvyANNcOHnpdO08b9Xq44\nN4CWnYptRGgo24vZEmRNykKc6bNB03C3V3jexoqnjECSEVL9iNlZOIaBsWoTdno+ih1EaK7DXLsZ\nUjPATYOXloKej2Tuwg700hLXr0ATRVwhA1MoBLmfxherFaiEjK7xOWrj37nqrBZ+eNO5AD2I1Lu5\n3aLbnogRcf8RcTwi7sLu3bt55JFHkCSJSZOmceaZC5kyZSp+f3KPefAmQF9zzVVcfvmVfSLqP/zh\neV566UWam5uYOXMWN954G6NGlXQ+f8wX0iD5nrox/OWVvVx9QzEIvaRFkSokZxeKnIURDuC6JQhC\nJa4++vDJ0rWB5ZCy8PDWA9HUxkoE0UKRNHAOIvimYtsalqOCkAvi0GehxYOY8Rvyv7wJJSAj4ike\nJF1Gz09H9qvoRVlet10/sNqDuM2tKJKNmhegY/N+by7aqGzkIXSTxUPHln3ofpmUMV15Uce0CFY3\nYza0YRsWout6qgc52skmSYg+FS0vkNDvyXEcav+xhsDYTFxZjRKlgpqXRuOKraTmp+GqKsGKA4xa\nOq2zW7Bp3T5s00KQJd6unYlQHP0NaRpifl6PE4njOB4RO1G70PQAbk4WzvKV2Bu2YTfKUHYl6F0E\ngB2G0PsItoOmZRJx0r20gTS44YweWU84Mxolt21hVvb7/O6HCynIHzjHfjhE3J2SuojYBly2bdvG\nLbfcQmtra+cyKSl+fv/7Pw55Ku9ACAaDfPe7t7Fq1UruvPN7PUj31Vf/wk9/+hNuv/1uSkpG89RT\nT7Bnz26ef/5l5KjnxXFBuiPhqbuvqpFT/8slHBnrPWCsRZXCCE4GhpnjEVZ3OAYoZaAn2LkzAIYk\nO7NtMMsRCCFLOpKogati2RqWrYKQD0K0cOMGEcR1uPrgTv2HA9Hdj6M4UPI7ii9pJK10DIIAbksb\nenEmemEWekEGDa+txgmbqHkZKPmZCHgRsGvaCK6NIIvYrUEQQQ3oSH69SzWBF+x2VBxEz/IDgjcZ\nGLfH2KNOuRn0zdkGfMh+HUEQaCnfSWBsZkJTlR3HoX3HIVzL9qJgJVokywsg6yrtu2qwQ2a0RVhG\nyfKjpvuJtIWw9uxDCfgIdzi0rN9PYFw6zVtr2HTWN1AKRvd5H3frNlwEBF0HWUIsLEBQVZwdO7Eb\nGnB37sHalY6z8r+7jG5CtQjBzahyKrh+IuGdONnxfW37hR0Cay1knERG2/9xz9W5XH7hEFU5vRAj\n366/gxOxVzKI6dclHMfhK1+5ms997nIqK/cSCoX51reu7zORd7goK/uABx/8EWlpAXbs2NaHdC+/\n/CKWLj2Xq676CgChUIhPf/oT3HLLdzj7bG8W3DGf0+1CbD97WGcNC47j8KnLagm3taHJ9dhWOpY1\nGdPy93yr7hA1ZMllkPaGhGCYWUCoUwMJQHgDOPUoso4k6tFUgEbEVoGZuKKPiE1X3hj6dsIJKeCO\ng/Au0Ic222kocIQSVLsMs+4ODvys2xNmMymTv05qqYCWn4GSlQqIGGIQtd1Ez0lDyUrFN6Eo4ROn\nnpaBsaECX37AU00M84SbPmciHTsOYrWHSR2Ti9EaJLSnDgdAlIi0hVFkAS0nDUERSZ2Qj6jIOI5D\n25YqnLCFY3iOYnpRRh8dckdlHeHqZrTsdOScdKyOOqxgmMoVQQ5e8yPE7dtxGzYiqiDKIsbWvQgn\nlCJOmeylFgCncj92xS5obQNJxHz1AO76b0LrFsTIe6hyGo6biumk46qLumoD4sEhp7tUexeWGOH8\nkt/z1A8v6JwNdjgQBAFB6LmevkTcFRXHYkLLsnjqqaeQJIlgMMSOHds599xPHZbmvj+8995yzj33\nfK644ioWLepZfGxqamL//n2ceGJXQOTz+Zg6dRrr16/rJN2BcEyRbqdU1nWHm07txD3fL6Nqz0Rw\n52DY0S82gXXKQurhkW6kCuxtHqna7yPrM7EdH5al4ArjQSgdnFgHgUshqrAO07aTnzfuBtM+Ebnj\nbSx/tzSJmkFw7+8J7u22YLiWwKLbSRmDN9031YesKaRMK0HWRHyjc9ALsxAEgbpXVqKPze/6fmMW\nl6lptDWbNP21HD0njZQx2dGiXNfFmiBLGNWNXhQldA3VJDqOXhAFBFXGApr3tyL6VPSZE7yctGXh\nVByidct+UjUFQZIJNddiHKwjY3oxgWmj4nZtBasasJqDiLqClp+Of0wuZmM7rZuqCO6q5cC4+UTG\nTkFv3Yc0u6STXO2qakKlpUgtzQi7WxCMIOEP1iNlZGD703FrDZyn09DE07DsXVjCKBx1elehtPvX\n6hgJNdT0QPMKcpRl/PahC5l1wmeG9tohIh4RO44TNaPyvr9QKMTf//53Ojo6AG967/nnn8N99z1E\naWniRuiJ4Lrrbuz3ubq6GgRBIDe3py1pTk4utbXVCa3/mCLdw41uu0OSM3EZO+RV2nbK4J+qbUNk\nJaIQQZZ0RHRcx0fEUnCcdBDOxrJBEA5iYYNcMmRiHQymPQuFt4lIZyV3xd0hKlj2DAhuhpQBPFT1\nPFrff5bW97s9Fq4l45x7yD6/hFBbNeKGA4i6ijJ1PMahetSAjpzqQxuVjaSrtG3c7bm/jSvGlSSC\n7YDoeCY1UUczLIHwwTbSRqWTOn1UZ67UbG4ntLeua6qxJIIkYhsRTxkhiQiyRMr4AtKmlfTYdMdx\n0IoyOwk30h6mbWc1VlsIX2EmWl6AlFFe/tNsDdK8cR9EbNqrmjjwea+bSgHscBhrU0V0VI6CC2i1\nVYgZAURZxnU8Xxvjg2rsVblgXwSS5pHsoL+3BkhLMFXV/C6aqDEpbzNvvtg/+YwUYlFud/c/SVIo\nK3sbvz+Vq6/+Ko4DO3Zs4+DBAwO6AsZDdfUhLrnkgmjaomf2VFVVXn99xYCvD4fDnct2h6IomKaZ\n0DYcM6TrTa7p339hqND0+LmmwRCJpIHU7pmGmLXgrEcWfciSD1wNy/JuMBdHUDF7h8XdSN51i1Cc\nDUSc5BW7ut5HIGLPgfAHoJ8y+PLDhZiD4lQTsXqlSmII7YRIJZKoIosqgqDiRtMmza/eQvPfM0GM\nSoPMnWR++l4CswK4kkSkthlRV/BPKkRNkVHzMpBTdJScAFJaimd96USd1RwX13GQTz3Ba6/dVoem\nCfjH5xLeU4vk1/BPSjylEa5uwjzUBIpEXfl+T8UgiUgpOimzJtG6uoK0iQU4jkPzpv2Eqlvwj8rE\ntR06DrVSUXQGyqaKTrtFR1VxJRkxWr0XNAX9lFLsHXuIbN5O6J16rOW3dV2ZDOECRcDElQbId4Zr\nUYwKEPOIyHOYOfptlj1zSeJvkCTEHABjqQVRlOno6OCuu25EEER+85sXDttvIScnl+effznuc4mk\nKjTNOw57E2wkEkHXE1PHHDOk66HHNedhIWUoHBepAnagyD4kdBxzJZY5C8cJAGdjCQJWJM5mJrLq\nSCmquAJTPH0IG5QghDREtxDHrAI1jjPV4cK2IbKOiNOMHHofyT8rSqoKtqNi2wqukAPiRGzA7n6e\nE+hLLOpEmpb9kqZl3R9bRe5/v0DKeA13T5M3xcKnohdkoAR8aLlpqDldblSO4+CETeScTMyOEK1v\nbUe2TWQX2l5dg16YgVbUXakiYDa147QHvXZkyTPLkQMpBGb39XBwHIf2LftxTJvGnfXYRgTHcJGy\nM6h5YxsGEk1jT0JpbkEMpEJHkEhjO/KksUjTxiHIMvaBapwD1RgVu4lUhgk9cQnIWcPuUpQEO37K\nq3UNumATdouJqKeDYzJn1Osse+bwimXDgePY3aJbAUlSePfd5dx77w+4/vqbWLr0vKS8jyzLjB49\nZtivz8vLx3VdGhrqKS7uOmbq6+sYOzZO80i8bRj2ux+F6J7TPVz44p20rBagzItcBR0XHxFT91IC\nLCZigfezKQGtBcShj12PBzM8B1kvw5KT500ag8NoVLcMkyGSrm1DZAM4zZ63haQhCgqg4tgKtqNg\n2woI00BMwXLng7EJS+mWf0tGOtmcR91v5vV8zPkVuVevJGP+RJTGIJG3NiEIEoHSEtxgGONAI2pe\nOvr4AtLPnBVtERbw9XMFrhVBsHwbcoYfvddgT8dx6Nh2EFwHQVM8pUJuuuf/a7toOQHkQAo1r5RR\noxWhff5SfN1mgwXfWImcl43Y0Ya7sZ7gO2We/21aOh1PhqHtusM+SiXB6iJd20ZseRtFzcMQJxOW\norlex2R20eu89uyRJdx40W04bPCDH9xNQ0MDzz//EllZR2bEeiLIzMxk1KgS1q1b05lLDgaDbNu2\nlQsvvDihdRxTpJvMnK4gtCI5b6EIfiAFy9KxLD+wBAthkGJZDpLVhi3VgZQE4hV0LGMssBPkiYe/\nvl4w7ZNQjDeJaIu8B2wbIpvBqUMUFS/vLMiAihMlU9uWQZgMoh/HpW+aBHqSquDDMieCuwnUE5K+\nDz0gfomWX8+m7g8zYwP0kArvJ2fhCvTCdOSMVNoP7IP1+0mbMRotMwXfmNzO0fLtm/aC60QlZ55z\nmeD301Zr0FZbg+RTOx8Pbt2P6nNRsgJEDjSRUpSBlKISmDkWgOZVFUSaO2guno6YkkdkZyWCIkdt\nICW0k2fgtgeJ7NhLZN023EaZ4G+XQGgOOuWEkzDZXhAi0LEbza7GIhdbPwuj+8RsJ8Ksgtf516+O\nLOHGi27LylZz9913cc01X0uYxI40Pve5z/Oznz1GcfEoxo0bzy9+8QS5ubksWHBWQq8/Zkg32Tnd\nL33xZJ55agfbt5/McMjctsehyuswnbQk5WNzka0mLFpAPgzzZrMSnB0IgoIkykiChiDIOJEASuTP\nONIsj1BFTymREKEmCjETwQrjCpWgDP8SLxGYbilq+F1M/0KQZey671DTPZVnWSjFt5G9cB1qcRZy\nyh6UjFTUoiwEVUZob/fsLIuzCe05hGPayGkpIICL2Fl0S5s7GSXba54QqhtxmuoJHmimoy5EaMMu\n/CeMomldFcanz0PJy8abKu1gbd4BooS1sxI3YtH2txDmW9/vsQ8ufaeTDAmhBkRjIw7VkHo2hhLH\n0tKJUJr/H/7zmyNHuF50a0VHqnvRbSRi8aMf/YCKigp+9avnyc/v39/kSCJejv/CCy+ivb2Nn/70\nJ3R0dDBr1ok8+OBjnY0Rg67zWGmO6M9T93BgGCZz51ZRVTVA3/ogUH3LMTn8ZokYNO0DDDmOoY61\nGdx6RFFGElQkUQZkcBUvOrVkbEcGUoHM+JpNtxFBP4Arz+z7XBIhCbuwpQAoyUm/9AunBaSd4J+T\n8EvkkrsovCBI6oxRhCoOYIcM0maMhrCBVpiBXpiJVuhd7tphk+D2Km+UjyojypLXGpyXSevaXXSs\n3k4w6MCCM3ERsWsbEBQZ17IwKmuIBCPYHaMJ/uZykOJIuiJ7Ia1kaLK+ju3Idj2SlI5hZYOgg1QN\n/jim4pEGZuS/z1vPj0C9oB940W1sqq+ALCts2rSJ22+/jcsvv4LLLvtC0n1TPgwcFx1pXhu+Z+s4\nlBHpA8F1HerqGjn99A4aGoZ7SRxB0cuICEPsALMNcNYBHQiijCTIiKKCgIAjbEVS5kbzphKOI4Ob\nMXQtZjy4jYjafhxl+CeaRKCK6zClKfEVDUmE7O7C0gKgDkLwHeUIbqvnQSHouK6GZWvYJqTMf5rs\nz8j4ijJRMlIRcFB0GQELuzmEb2wu+ihv/W3rdyHKMpHmDmrNVNQxozy9sE/FPlCLXd9McFMVTc+P\nhbarBiZU1wJ7BaQP0g7e8gGa5OKSgekUgNTlo6C5ZRipfWsBSsc/uOLsBn54+zlRnazY42+yERuX\n1TVQQMJx4LHHHuWDDz7gwQd/QknJyF79HEkcR6Sb2LTewdB7eGVVVQtLlsi0tQ03n9oG8nrAs6cT\nRQlJVBAFGQEZUHBdCbeTRCVcVwaygXj98SaqfxWmNW9YI4EGhduEqO/FkWcnf93doMnLMaT5noZ2\nJN9HeB/DfxqEKiGyE1nSkUUd8Mx9IrYS9aBI8HI+/D7p5/yEzCVjUQqzCO3YT9qkQgKlY7GbW7Fb\nQ7Rur0Y6Yx6RQ/W0lVfghiMos0upvv9EqD454W1XnOVE0npdKVkmtC9HV9Kx7HQsRoEUJ8iwW0Gs\nhNRuVy7hHZyQ/y6//vE8iovz+mnDFboRcIyMh0/EPRsdvNztrl0V3HzzzXzyk5/i6quvHZHOsg8T\nxwXpgqcrH2ha72DwzsY2lmV05oVlWUMQJLZtq2fRouqoZ6+EKAqIohydIiwiCNHLeQRc14s+HUeI\nEqgINKCqEUzzZJLV6SDrK7GYBsIIDOhzWxD13SNLvK6DqryHqSQp/RLeAs6haPFPQxRUcBUsW0Fg\nGxH1TBCHPxNtQHRsJHDR/WRM8uOEQrRs3o//5BNwRR8tb88kvO1ikId+9aWzlrB/NoQPIRk7UORM\nDCuAKw0+WVpz12CkRiUZToRA5EXuuiaLqy7ruupyo9Oh47Xg9kTiRLxv3z7q6+tITU1lwoTxPaJb\nEHn66af417/+yf33P8KECZOG/Jl8FHCckW4HggCaNrSyr+PYRCJGj+GVoqggCOA4LmBTUXGI224L\nsXz5aFw3fxhb6CDLK7GsCcBwXh8H4iYEPRPXLU7O+rrDbUXSd2IPc95bYu8RQlY3DS6HsxrBKEeQ\nvCYKSVTB9TS/VlSihpAJQj9mNW4diLWgD9AZd5jQxJUYKUkqSFkmBN9BEeoR02ZiWLkg5w3+uhic\nNmAnpM1G6FjO0lnb+c1PPp2Qf8JwiNi2HTZsWI8oiowaVUJubg6W1TO63b9/HzfddCNnnLGQb3zj\nuqR4ORytOK5I1zA6cF3Q9cRI13WdOPPUNMCrMoPTo9IqCCJVVS3ceGM7775bPEzy3Yem1WIYs0mO\nWLUKxd9CxBkBQnHbkPXtWHLil8RDhnUQnP+AMgpZUpEkDQGPUB1H9bx9XZ+XAhCGf5WgiFuICCWg\nDn1ce0JwqkG1QB9Go0loO6JdjSKl4DqpmFYqiMUo4k4i/qGPMtfcdRhqPqNT/snP/3cq8+ZMGfo2\ndUNfIvbI+MCBA1RXVyPLMqWlpVF3MACXcDiMKEr4fH5+97vneOml/+O++x5i+vQRlgweBTjOSDcx\nT93eeVtBEKNj2SXA8TqXHBvHiemlBCRJ7jHcsrKygRtvbOGdd4px3aFLXGR5JbY9GtctGnzhQdGG\nmroe0zoNhCRHEG4Hsm8rlpQg8dohiKwFgoiCl7uWRBUBiR75a0fCsSVcVBBc0JpBnp7cbe8FVVyO\nqSVPTdIbmvgeRsogRVPbhuByFElBEtKIWCnYbg6IfdNEmrgNI2Xq0DbC6UCP/IKvXFrE3TcO7no1\nVFRV1fC3v73OKadMprCwkIKCAlzXiQYpHmVYlsVnP/tZOjo60HWdrKxsLr74Ms4995OkpCRBfHyU\n47gh3UQ8dWNV1EjEpEu24pGtIIBte8WuLlkL0Vlr/Q+33LevkRtvbOSdd0pwnKGS70E07QCGMQs4\n3KKYg+p7D9OdTdz5a8OB3Q5OBbAf5AMI6gwkQUYSFa8I6CrgSh6BOl4u23VVIIFssXMAACAASURB\nVLvLwzdh1CNoh0ZWsuaGEMVynCR4HseD4BzA1TVQuxlqhysRrN1oUhqu68eMpOCKoxI6OeriZsID\nmQV1hxVCDK0g1/cGb7/yVbKz+5kGMUQYhsGvf/02r71WxaZNzchyPc8+eynz53sdWbFaSPcARRBE\nfvKTR1i3bi1VVVVEIl4TxJVXXs0113w9Kdt1NOM4I90wjmNF56T1Gt2SQN7Wa0n0dlsUpWihLLHK\nbVVVI9/61l7Wr9+OYYwDAriuHf1Rds+NxcaQ6MAooAhJ2oDjFOG6g12a2niTzkKAEf0/CJjR+yYI\nO4AckAIgKIiCiBgtgIjI0c9Fit68wh+uhOOKuI6I44i4rhgtACpAILqtrWipWzAiJ4E4+NSBYcFt\nRNT348gjKFlza0BsAH0EomrbBOMZZP8sZDEVy/ZjOVnDLuDp0ibCvkEux4Nb0YVWzEgeRdm7Wf2v\nWYeVL3Uch2XLVvHyyzspL2+kutrEdQOAwcknG7zyyrc7GwFijmCxY0aSFBobG7nttlspKCjiO9+5\nG0VR2LNnN3v37mbOnLlHrK33gQfuxXFcbr31jn6X2bZtC48++hAVFdvJzc3ji1/8Mp/4xCcP+72P\nK9K1rDC2baGqKZ0yFNd1iETMzjNxInlbL7odfv6wvHw/zz4bZsUKnUOHUqPph97fQwTowCNNB2hD\nklYB47DtmJi9+2ti/0t4Sgmpn5sI7EDTWjGM6UByL+dk7QMsYXzfyRnJgtuEqFfiyMn1Se0ORdxE\nRJowfJ2w1QLGKk9+JvvA1bFsH5atIYutWL7kELourSfsi3MCsm0IrUCXsghHSkAIUJjxDquWTUHX\nh35CXLeugt/9bi0rVtRTWRkkEkmle71Bltv45jcLuOOOy4G+0W3MgnHZsmU89tij3HXX3cyfv2BY\n+5wMPPPMk/zmN89y/vkX9ku6zc3NfP7zF7F06Xl85jMXU1a2kscff4QHHniUuXMPz3nvOJocAd2d\nxuLlbRVFA8RoIcAeNG87XMyZU8KcaCNUW1uQZ55Zx2uv+diyRScczgd8eFFkRvTmwSNb7xJYUYow\njLEMjzSnYBgAZaiqjmlOI1lft2WcAuxB8dcRcUYgWhQyccIior4GZ4SUExHnBFQhgW5BYz/YFShS\nCpKk4Lo+LEvDdvye77Hby0FOBMsxIfQu+M48/A0VeqkGwlWo9l4cJw+L0wnbEoiQn7aC916ZkBDh\nbthQwWuv7WTNmhZ27uyguXk3LS0FeFczCtA9t+yQk9PEb3/7KebO9dIcvU1qJEmhra2NO+64A1XV\neOmlv5CaOkLFykFw8OAB7rvv++zZs5uCgsIBl33llT+TmprWaVo+evQYtm/fxgsv/O6wSXcgHFOk\n291/wbatXu2GsSIZ2LZN77ytp7ntP297OEhLS+H666dx/fXe/Tff3M3zzzusXOmjpiYN6C0F8uE4\nZ0RJsxxNUzGMMQxPZjYX0wRRfBNBGI1tJ2tEzzgiHR1oqSswrDleu2kyIaTjhCci6auxR0g5YVon\nITorcPTTIbwZ3AYUSUMSdVxHJ2KpOG46iIuJOBDpzn8DXQSJKpqsd43KOQx0zgZrX4UuqYTNIkzp\njB4XQDn+Vbzz52JSU3uenC3LYtmy1SxfXsumTa1UVgZpaLCxLB8ewYKXrkrtdr/bbogVnHpqDn/6\n081IkhRNj9mdSp9YdPvWW2/x4x//iJtuupUlS5JfuBsKNm3aQH5+Affccy/f/e7tAy67YcM6Zs3q\nqUOfPXsODz98/0hu4rFFutBldhNzL+qdt/WiW6ubldzQ8rbJwKJF41kUNfSqr2/mySfX8O9/76C6\n2qStLeQZobMAL987J0q+VSjKdlw3D8uaxFClZo6zCGhDVd/BNCcDyTAU8WO0n46krMaWRyVpnd0g\nBLDDk5F9ZVjSYdhaWk1glSMgIUlRkx88G0rb8OGYb4A8F4QZPUchxaaEDwNmJAcEE+TDKI4aldhs\nR3X8mO5Mwravz9ee6VvDmy9l4bo2zzzzOqtWNbF9ezsHDhi0tjq4bjreGULGy813h4MkHcS2u2u8\nw6Sk7GbhwnweeugWcnO9gmC86LajI8j3vvcd2tvb+f3vXyIz88O3YFy69FyWLj03oWVra2uZPLmn\nMiQnJxfDCNPa2kIgMAJNRxxjpGtZ4R45JlXVvaEBjhuVtHT1ficjb5sM5ORkcOedGdx5Z9dl+u7d\nB3jiiX+xdWs79fUKLS0yHR0Stj0Ky2oGtqHr4wiHx9LzUnAwpGGaC4DdnnGOMY2+B+LQYUdOhkgl\nSup6IlbpkAcgDgghgBWahqyvwpJ7+eZ2Gv3UIEYbJiQh1jQhY9vezXV9wGJcQcSy6WPLqQhbiEQ4\nfPFIN7iMRbDexJUXJ/4i2wbjHTTFj+sEMCN+LGkSuNPjkr9orkIM/5v58xtoaysAYpf0OvEi195Q\n1RpMM3airKGgoJVLL53CXXc90rUf/YzPWbnyA+65526+/vVv8qlPjewMtZGCYYT7jN2J3U909M5w\ncEyRbqw90RtMKWDbduePZiTytiOF8eOLeeihy3s85jgOb7+9g7feivDuu7upr19Ja+tyQiEJUWxH\nEMYBudEDxOksCsJYYDw9Q6TxGMZ4YAOa5mIYU0jkIB0YY4i0F6L6V2DaJ3lThxOFbYO7D9y9gAWC\nhChIUcWFjIgEYQdRfA5Rnd3LNW2cZ0Fpe6XISLz1D3IOiFjTUZXkusEhCGhSTtegyP4Q3oIsNCCL\n6RiRNFwWYFix72oL+OLkFs1KCP4Vp82igWKgiS7CTRRBTLMdQahl+nSJm28+h09+sqexTjyDcdOM\n8IMf/JC9e/fym9/8nry8JHVWfgjQNK1TyhZDjGwTHb0zHBxjpKsgSWI04rU7o9qu58Vo7vajZ64h\nCAILFkzkjDMsYBKCICCKCi0tbbzySiV/+9s21q2roa1tWlQpMRrvsrIV2I0gOAiCgyTZCIKLIFgI\nggtYaNo72PYeBGECopiOV4TsvQXxhCwiHtXF/gciGirvYlONLM6IelII4Eq4iNHGCAnHEXBd0XNI\nQwQyo9vsEY7Tbc1dmIkqrveMfgQ5mZ71mOZcZN7BUpNXcQ+b+cAhULoVdKwQGCsQSIvKsIqxpOlY\nDn33x2nodd+B4AvQthus2IBMT1c+NLTi85Vxxhnjue++bzB6dF+ZYjyD8Q0b1nP77bdz5ZVf4rvf\n/cFH3oIxLy+fhob6Ho/V19fh8/lITU2CY18/OKZI98c//iEbNqzj5JPnkpmZTkZGBosXLyYlxYu6\nvCjQxLZjUXFyXJRGGj09SHs2a2RmpnPllaVceWVp5/KPPPIfnnrqTRobJ+M4OUAOrpsTTbX09y5n\nAmXoukQ4XAgMXPkdHLXI2k7C4fFAskxm/Jjt81H0FUTc0v59FoYDQcMyZwIbQC0ddPGEIOZD+G2w\naiDSDqSBmAniEtzBfm92LWiju+4bZdD2bwhlA90nErf2uh93ZcDeqAmUy7hxtbz55s/jmm7Hi25t\n2+Hhhx9gzZo1PPXUryguHuz9PhooLT2Rf/zjlR6PrVmzmpkzR9bW9JjS6QL88pdP8atfPY3rukyd\nOhVBEMnKymLx4sXMmjWLnJwc4kVtvR2UYmYeHyb6HgBDL/pZlsX117/IP/8ZoLl5Aq6bCRQxcDqh\nGtiDp5aYMMiyg2ErmtYRzR8nTy8sSutw1EKSZhwUhcAuXDWlZ3SaKGwbzDJwDHD16O0QpJ4J4hD3\n3SqHtDlgNUDHS9DaTLxCpSA04LrxUjnVyLKBLKdhRuf4yXIbN9yQyc03fzruW8aLbrdv384tt9zM\nhRdexFVXfeVDPyaGgm9961pGjRrdqdO1LKuzQCbLMk1NjVx++cUsWXIOl1zy35SVreRnP3uMhx56\nnNmzEze+j4fjSqfb1NTExImTuOaab3DaaafjOA67dlVQXl7GQw89wvbtW1FVjbPOOoszzpjPxImT\n8Pn0TjlM90u1npHwyJg7x0Nf4bl3AAyn6CfLMo8/fkXn/XA4zJe+9CvKyibR0lKI15gxie5aYe/g\njh3gK4EUvEv/4agTpkXVF7H1zCAZJj+OfaLnj6ttB/HwzFy6w2UChFaCmDewwbhZBZGtUWL14e2b\nDzjRG88UUz44qUMnXNcBoQmCr0DbOjBL6O+zl2XHKwJi4hkppeE4KUQieViWH8sCcMjLO8jvfncW\npaVTcBy7x+853vgc14UnnniCN954g0ce+Snjxyd/Nt9Io/fxunHjeq677ms89tiTnHjiSWRmZvHQ\nQ4/xk588yNVXf56CgkLuvPN7h024g27XsRbpJoL29nY2bFjL6tVllJeXRccnj+Xss8/mpJNOoqio\nKPqF9d59IZoXFqIEmPxoeKBUwkggGAxy662/5r33TGprJcJhGc84PZZjPRWPJA8B+/Aiy3EML/q1\ngXfxLoeTpRduAnkbyKcmTzXhOuC+DWmLotHru17q1PWB68cj1wwQE5BIOc2g1YM6BNIKvQ7Oagjp\n9K9OqQbaUZQWRLEYw9C8beqTGA6yYEELzz//hTitwQKCEFMouFiWhc/nZ+/evdx0040sWnQ2//M/\n3zymLRhHCsdNG/Bw4VnUVVFevorVq8vYtGkDrutyyimnsHDhQqZPn05aWmrcgZc9I+HhR8NevvnD\n1Q93R1nZFh54YHO0OKdhWRqepqoEOAiMAWYxvOi3GVgPTCU56QEHxHdBmQfiEKrOtg32ZqAWXDl6\nU/C6sgQQ94ByMghFXuFu2HgD/INIx6x2MFaBJUHk70BMQtgB7EeWU5FlH66rEokoOE4K3slwF97J\nsS9UtY477ijm61/3dKs9bRmdHr/nxx9/nD//+c/k5xfQ2NjAxRdfxqc//VmKikbAp/k4wMekOwwY\nhsHmzRtZs6aM1atXs39/JTk5uZxzzjmccspcRo8eE40A+iPixIp0yUwljDQsy+Kxx97g73+X2bWr\ng46OJqAFT31QgkeiMd2B3e1vLGVTCEyhSxC7C6jDSzkkoSgmlIE6Dk8/th5cEVzNI1Pk6Pt69pJd\nt0y8jqx4OACKDXJ8UksY7kpI7cfcPPQeWAreySsfrGfRlVZAx7LU6MkunXhSDU2rwDB6n7TCpKRs\n5fTT0/nhDy9i3Li+295zfA4IgsRbb73Bc889R2VlZaeMKjs7m7/+9Z/D3OnjGx+TbpJQV1fHmjVe\nSmLdurWEQkFKS0tZvHgJM2eeQFZWFokW6aAruu1KJShHNHecLGzevJMbbvg7mzeHMIx5eOmHAjxC\ni8HFi9pa6SLi2M0APsAj5GK6EqK9byTwfzXQBiwmOWORtoBSAvJhnBScDZDWTRFhVoBZDW4OMN5z\nbHNdsP6Kpx0bHILQiOs2AzELySoKChq5+OIS7r77qriviTccUhAk/u///o/f/vbX3Hvv/cyYUUpl\n5V62bt1MVlY28+ePnPdwDI7j8NRTP2PZslcJBoOccspp3HjjrWRmxle93HXXbbz11uudmnyAk0+e\nxyOPPDHi25ooPibdEYJt2+zYsY3yco+IKyp2kJqaysKFZ3H66fOZOHEimqbGTUt0R6zL56NGtjH0\nPpirqmr55jffZOPGQkKhErxcYwmD12234xFmMR5xD/fzMIFVwAn0LBAOFytAO234AzSdneArhvAK\ncPOAUX2tHu0VYO4j/iDSPitEljdgWWORpM3MnClzyy0LOeec0/p9hTchpef4nIaGem6++SbGjBnH\nbbfdha4n2T8jQTz99M/5xz9e4c477yEQCPDgg/chyzJPPPF03OWvuOISzjvvAs49t8uCUVHUEdXW\nDhUfk+4RRGtrC2vXlrNmzWrKy8s61RRLlpzNrFkzMYwwgUAgKl3rjpEv0o0EusuM+uv2W7eugm98\n4x0qK6dhGEV4ut2B5n2FgDV40fIEvMLVcLADz294JofXSWGDuAK0ITROWO3gvA+2D2gC5QSQxsYv\n9tnbvGIdiXkXKMoOVPUAS5bk8NBDV5KR0f+JpXf6KlYrePXVV3niiZ9y993f49RTT098v5IMy7L4\n5CeXcP31t3T62FZXH+KSSy7g5z//JSec0NPQPhKJcM45Z/LII0+MuMrgcHBcScY+bAQC6SxcuJiF\nC73Cieu67N27mz//+WUeffRhDMMgJyeHSy+9jAkTJjBt2lT8fn+n1aTdrbkoWUW6kcBQNMQnnjiJ\nFSu6pr7+6U9vc999TRw4MAHTbADa8VQSsc4oHxAjgrLo/bHAUP17J+NFve/hFaYyB168X0jgzAFz\nHahxPH5t24tUHSGqbvDj5ajPxiP7ff3nhe0yT9s7YEHSBHahaWmoaiWXXZbOvfd+b9Ctjmcw3tra\nyu23305qahovvfTXDz06rKjYTigU4sQTuwi0oKCQgoIiNmxY24d0Kyv34jgOY8eOO9KbmjR8TLoj\nDEEQGDduAjt2bMe2ba644iouvfQydu7cSXn5Kp5++mkOHTpIUVERixcvYd68uZSUlCCKMc9f6CpE\nJT4Ge6SQjMLfZz+7kM9+tut+c3ML3/72b1mzpp3GRj+mqXeN/OlMTTQCW/HIaSKJ52tVPAKvAKrw\nUg7D+cz8YBeCtcebtOs2g6PjFeH8wGl4hbl4iHPBaO8G+59IYgs2vQdPtuNpbjOBlKgcbDb5+fv4\n4x+vYuzYgaeL9P2OPHe1N954nQceuJ9bbvkOixadPYR9HznU1tYCkJvb84Sak5NDbW1Nn+V3796F\nLMs888yTrFz5HpqmsWjR2Xzxi1/uY15ztOJj0j1C+OEP78dxHHJzvcvqefNymDevq6J96NBBystX\n8fzzL7B+/ToiEZOTTprDWWctYubMGWRkZMQdh30kO+l6V72TpSHOyEjn17/+Vp/H339/A088sZ/V\nq/9GS4uNZel4xFuGF7XW4OV/Y0jHk6AV0dcybBKev9gKPLVE96jXxJOwNdNzIoeKR+4KnaqHSD1e\nRD6UVuFuvmZOBOznvfQDU1GUfdiRekSxAVVNx3FSMM0U4BQMI/a5tnH++VX86lefG/Sd4kW3wWCQ\n7373uxiGwYsv/pH09OFG/MmHYYSjJ+6eKSlVVTGMvk5fe/bsAmDs2PFcdNHn2L17J48//jB1dbV8\n5zt3H5FtPlx8nNM9ShGJRNi2bXNnA8fevXtIT09n0aLFzJ9/KuPHT0BR5AG0w8nrpOtdKPswC3+W\nZfHss2/yl78IbNpURTicgueiVowXBYejNxvv5OB0+0v0/3Y8kp2PlwZQ8PLMieaOy/A0yolGVjvB\nNxGsN8B5G1koQpZ1QMV1KzGMSfTXBKHr1dx7b4AvfGHgKRT9jc957733+P737+Fb3/o25513QYLb\ne+Tw9ttvRNUIK3sYUX3ta19m2rTp/L//d2Of17S1tZGW1qUmef31f3PPPXfw6qv/IRA4fKvSZODj\nnO5HEIqiMHPmicyceSJf+tJXAWhqamTt2nJefXUZa9eW09bWxtSpU1m8eAmzZ58YvUTrEsB3YXhF\nut5eqkeDLaYsy1x77Tlce23Px7///dd47rl3aG6ehOvm4mmCB8pXzsJTONjANBJTDcQwF3gLOCvB\n5SvB/DfY2cBSLOhsz/U6/eIR7nbGjYvw8svnMHp00YBrj2cwbhgm//u/93Dw4EGee+4P5OSM0Dy7\nw0TMGrKhob7zKhCgvr6enJz4xdbuhAswYYLX7VdbW3PUkO5A+DjS/Qijy1diFeXl5Z2+EmeeeQZn\nnnkGkydP6fSV6I3BinR9O+RGbpxRstHa2srnP/8y69ePJxQahZcbjjcYNIaVeHrX7o0bg8EC3sdz\nZ+sNE3gbzyA+HXgHL6XRE6J4EMcJ0OVFUUNa2i7mzVO45ZYzOemkgUev9zc+Z+3atdxxx+1cffVX\nueiizx3V31kkEuH888/mxhtvZ+nSTwBequ3SSz/NL37xK6ZP7zkJ+bvfvR3Lsrj33gc6H1u27FUe\nfPBH/P3vr39osrfe+Fgydhyht69EXV0tY8aMYcmSszn55DkUFxcP4CvhkXCX+c/RM2HjcPD222u5\n7bbd7Ns3GdOsxGvSKAIW0pNk38OTsk0nMVOeILAZL/Jdh6cxTo/eSvDywdV4fhN9o1VN24Zh5KOq\n5UyfrvCVr0zic59LrMAVL7qNRCwefvhBNm3axAMP/ITCwo9GC++TT/6UZcte5TvfuZuMjEwefvjH\n6LrOo4/+vI8z2Btv/Id77rmDr3/9/3HGGQvZsWMbDz98PxdeeBFf/vK1g7/ZEcLHpHscoz9fiblz\n57Jw4UJmzJhBIBDolY6IIZaWEDtJ92iOmuKhr45YwXEc7r//b/zlL3uoq1MJhVKwbQ0vt1uC15qc\nixcZq9G/sdH23f+X8KLaFryZdvHSGa/Ss2jXAuxEFFvIza3i4ouncdttFyNJUkK5+P7G52zduoVb\nb72Fiy/+HF/4wpc+Ut+TbdudxGtZFqeeOp8bbriFQCCdtWvLeziDAfzzn//g979/jgMH9pOZmcUF\nF3yWL3zhqg93J3rhY9L9GD0Q85WIpSUqK/cAkJ4e4KSTTuLb3/52NG878kW6kcJwvIgty+LJJ19n\n2TKJiooUWlp24jgT8DTC4+hfprYTL0Lu7YOwFlFcjqoW4TgqlqXgOBqS5HDDDU3cdNNZPUxo+qLr\n6sOTENJrqGrMgvGnvPvuuzzwwCOMHTt+KB/TxxghfEy6H6NfWJbFZZd9hurqQxQUFDJv3imsXr2a\nUCjIjBknsGTJYkpLS8nOzib+yB4hGgkfHZ10fSPBwzcQ+te/1nLDDWuprT0R1y3Gc/XqvY878BQU\nOXjtzMvxcsk9STAtbTe//GUWZ501k97o6QLmxiVi13V57bXXUFWN9PR0fvzjH/Nf/3Uu11zzjY/k\nGKpjFccE6ZqmyTXXXMXll1/ZmXDvD//61zJ+/etnqKmpZuLEyVx//c1MnTp9wNccr3Bdl4ceuo/i\n4hIuueSyzhEu/flKnHnmAk4//XQmT57Ur6/Eh9VJF2/UTLKLf1u37uFLX3qfysqZWNYOPPlZCZ6J\neQNQhShqOM6S6CtsYDUpKSHGjdP54x+XkJ2d2PiirhNIlylSc3Mzn/nMZzo/d78/lRNOKOWrX/0a\nU6dOS9p+fozDw0eedD1x922sWrWSO+/83oCkW1b2Abfeej033HALpaUn8sILz/PWW6/z4ot/Ij09\nGeYnxy9ivhLl5WWsWbOapqYmxo+fwJIlS5gz5yQKC2Mjbvov0nnRWHKj4b5V/CNnj2lZFi+88Dav\nv25SUeGjvn4NHR1N5ObmMX16JqWlEtdee+6A/gj9Id74nKqqKh566EEyMzOxLIdt27Zw8OABrr32\nm0ckrzlUR7Bt27bw6KMPUVGxndzcPL74xS93eiwcy/hIk25Z2Qc8+OCPSEsLsGPHtkFJ94YbvkVO\nTk5nd4rrulx22Wc4//wLj7pk+0cdMV+JWDS8ZctmZFlm3rxTWLBgITNmTOv0leiNnpFw8szfR3rS\nRiJYuXIDp546/OGWfS0YPfXIiy++wPPP/44f/egBZs7s8oAIhULoun5E9nkojmDNzc18/vMXsXTp\neXzmMxdTVraSxx9/hAceeJS5c+OMlj+G8JFujnjvveWce+75XHHFVSxa1L91HXg/1o0b13PDDbd0\nPiYIArNmzWbDhrXAVSO7sccZYr4S48ZN4OKLLwM8Ati4cT3l5at49tlnOHToIIWFhSxatIh5805h\nzJjR0aLQQDPphmP+fvTYYx4O4fYc1yQgywo1NTXcfPPNTJ48hT/+8VU0rWcjh883XBe2ocGyLF5+\n+UWuv/4W5syZC8A999zLJZdcwKZNG/uY07zyyp9JTU3juuu8rrLRo8ewffs2Xnjhd8c86Q6Eo550\nY19YImhrayMcDvXobAHIycll+/atyd60jxEHPp+PefNOjesr8cILL3b6SsyadSKLFi2itHQmmZmZ\nPcbIdEHolKt195WI5y9wNCspEkE8g3FRlPnrX//Ck08+yT33/IB58wYOOkYaQ3UE27BhHbNmze7x\n2OzZc3j44fuPyPYerfhQSTfmm9ndAT4GVVV5/fUVQ1qfYYQ7X9t7XfHMMz7GkUFhYRHnn38h559/\nIdDTV+JPf/oTe/bsJiMjgwULFnL66fOZMGEiqip3RrPdo+GeEJBl9SNNttDbSMjL3TY3N3HbbbeS\nlZXNyy//Db8/eePrh4uhOoLV1tYyefLUXsvmYhjhzoaH4xEfKunm5OTy/PMvx31uOPKX2GVXbMZT\nDKZp4vMdHe2BH2NgX4l//OO1Tl+JKVOmsHjxYmbPno2maZim0euAd7Esc0SLdCOJ/qLbf//73zz8\n8IPcfvtdLFiw6EPeyi4M1RHMMMJxAyDwjsnjFR8q6cqyzOjRY5K2vkAgHV330dBQ3+Px+vq6PimH\nj3F0ITMzi8WLz2Hx4nOALl+JVave57rrruPQoYMAXHXVVZx00hwmTZpMSoqvh6bViWYmklWkG0nE\nG5/T0dHOnXfegevCH/7wJwKBo0tto2la9ETh9AiK+gtqNE2LGwAB6PqRyUMfjTjqc7pDxcyZpaxd\nu4alS7vGTq9fv5ZPf/qzg7xyaGhqauLhh39MWdkHKIrCeed9imuvHVigfv7559DS0tx5XxAEvvKV\n/+HKK69O6rYdCxBFkUmTprBnzx4OHTrIqFElUZs/l+XL3+fRRx+jrq6W0aNHs2jRYubNm8uoUaM6\nU1WHU6QbSfQ3Pufdd9/l3nt/wLe/fSP/9f/bO/egKK8zDj9yKRed2CYGkfECSDgREBG1jngDjXFU\nEmIajLcmNVRtbGtqKtbGmDYNmhowQCzgGERGEIgktTbGGpWqjI1EDYhi9Ng61fHGwAKJU0Rlhf6x\nsIHdxQ3C3vA8/+zM+x32e5dZXs53zu/9nen2KanqrCOYl1d/kxMgDw8Pm59YYUscvug2NDTQ0HCL\nRx/VnS/14osLWL36dZ54IpBRo8ZQUJBLfX090dEx3XrfNWvicXJyIj394oQXQAAACPhJREFUQ6qq\nqli37o+4uLiwePGrJsfX1dXy7bffkJ6eycCBg/RxT0/Pbs2rpzFpUiQJCRsYN248bm662VREhM7Z\nq7m5matXr1BaeoKsrGy9r0R4eDhRUVEEB4fQt+8jJjfprGn+3oqpDcDbt+/wzjtr0Wg07NhRqP8e\n2yMBAYF4eHi0TGq+cwSrrLxOWNhIo/GhoWHs3ftpu1hp6UmGDx9hlXztFYcquqb+KPLzc8jOzqS4\n+DgAY8eOY9WqNWRnZ5Kenkpg4JMkJ6d166J9RcVpKipOs3Pn3/H29sbfP4Bly5aTmprEokWL9V1d\nbWk9ZiQoKMRoTUzRMe7u7kRGTjV5rVevXgwaNJhBgwYTE/MToL2vxI4d+Vy5cpnHHutHZGQkERHj\n8PX1w9XV2cxsuHt9JTo6PufkyZOsXfsmS5e+ynPPvdAt97Ikrq6uzJ4dS1paCn379tU7goWHjyYo\nKMTIESw6Ooa8vBySkt4lNnYeJ06UUFS0n40bN9n6o9gUu2+OsEfy8raza9cnFBbu1scqKyuJjX2G\nLVuyGTbM2Ae1sLCA3bs/ITe30JqpKoDq6mpKS3UNHGVlpdy+3cCwYUEtm3Qj6Nfv8ZbZp6lOOl3x\nfdBNOlOz28ZGLYmJ7yHleRITU+jff4CZd7EfOusI9vXXFaSkJHHx4r/x9h5AXNwvmDLFPs5nsyQO\n3ZFmj6SkJHHhwnnS0zP1Ma1WS1TUOBISNuhPAm7Lhg3rOHv2NN7ePkj5Nf36eTFnzjymT59pzdQV\n6AqHlOcoLT3ZzlciImI8EydOJDAwEHd3ty510nXUvHH2bAWrV/+OefMWMG/eS3a5yafoOg7dkWYL\nzOmHn356ppEUxsVFZxvYkR740qWL3Lx5kyVLljFgwC85duwo69e/TVNTEzNmRFvssyiMcXZ2Jigo\nhKCgEBYu/Bnwna/EoUOH2bgxibq6Ovz8/ImKmsKYMaPw8dGZkH+fTTrAyGC8qamZ5OT3KSkpIS1t\nC4MH+1rzIyvsCFV0TWBOP/zxxwVGUhitVktzc3OHeuBNm7bQ2Niob9kcOjSAyspKCgp2qKJrBzzy\nSF8mT56if0pp6yuRkbFZ7ysxatRoJk+OJCQkiD59+nTQSaeTRpWVnWLIEF8aGm4RHx/PrFnPkJ//\nibJgfMhRRdcE5vTDXl79KSn5ol1Mo9FJYzrSA7u4uBhtsA0dGkBR0f4uZquwBOZ8JbZty+LGjet4\ne3sTGRnJiBGh1NXV4eXlRUBAAMXFxSQkJOjfKzQ0DA8PT+7evWs353gpbIMqug9AaGgYmzf/herq\nKn2RLS09Qe/evQkICDQaf+/ePWJjn2Xu3AXMmTNfHz937ix+fsrp31HoyFeioCCX5ctfQ6ttJDg4\nGH//ofj5+TN27Fjq62+h0WgoLy+jvLwMf/8AIiIm2CR/pS23D1TRfQBCQkIJDg7hrbd+z4oV8dTU\n1JCRsYm5cxfqZ7Nt9cPOzs6MHz+J7duz8PEZiJ+fP0eOHOLAgX0kJqZ2OR/lcWo7Bgzw4dSpMlxc\nnFm+/HWio59FynN89tmnzJ79IhMmTAJ0DQU3blw3qWyxFkpbbh8o9cIDUldXS1LSuxw//iWenp5E\nR8e0+/JmZW1ppx/WarVs2/Yh+/fvo6ZGw5AhQ4iLW8qECZO7nIvyOLUtGk01Tk5Odt3YUFFxmmXL\nfq7XloPu6PLU1CT27DloUlv+1VcnWLlyOQcPHlXa8k6iJGM9GK1Wy6xZU1mxYpV+ttqqvsjIyDKy\n28vJ2caePbv56KO/6WPr17+NRqPh/fcfbtF6T0Zpy63L/Yqu2kZ1cMx5nBrSkcfpmTPlFs9VYTuq\nqqpMWjLqrhnbMoKui9LJyYlVq1YQEzOduLif8vnney2ea09Hrek6OMrjVAFKW+5IqKLr4CiPUwUo\nbbkjoYqug6M8ThWgtOWOhFrTdXDaepy2RXmcKtoSGhrG9evXqK6u0sfMacuff34WO3fmtYsrbXnX\nUUXXwWnrcdqKOY/TU6dK28WUx2nPp622/MKF8xw79i+T2vLa2hqAdtryo0eLuXbtKnl5ORw4sI9X\nXlliy4/i8CjJWA+g1WrvjTf+oPc4dXd3JzU1w8jjtK6ulvnzX2Dq1Gl6j9P09A/YuHETI0eOMn+z\nTtLZxo21a1dz+HBRuw2h0aN/THJyWrfn9rBhT9ryno7S6fZw7NnjtDONGwALF8Yyc+azzJjxXYec\nq+sP1NKHwqFQRVdhEzrbuNHY2Mi0aRNJTk6zyKxbobAWqjlCYRM627hx+fIlmpqa8PX1s2aaCoVV\nUZIxhcXobONG6zlymZmbKSn5Ajc3N6KinuLll+OMtMUKhaNy3+UFhaIrCCEWANlSSleDeBFwUUq5\nxCC+DvgtsAooAoYDycA+KeUi62RtPwgh3IAvgfeklHlmxi4A1gKDgXLg11LKk5bPUtFZ1PKCwpI0\nAE5CCMPvmRtQbzhYSrkG8JZSfiClPCulLABeA14SQvzI8unaD0KIPsAudP94zI19CtgKJAIjgTPA\nfiGE/dqePcSooquwJFdaXg2Pu/UBrpn6ASnlNwahMy2vgwzH9lRaiugp4HFzY1tYCeRJKbdKKSWw\nFKgFFlsoRUUXUEVXYUnKgf8BemGnEMIX8AWKDQcLIT4SQvzVIDwGuAP8x2JZ2h/RQDYQAdz3uGAh\nRC9gPHC4NSalbEb3+51osQwVD4zaSFNYDCnlXSFEOpAkhKgBqoE04JCU8rgQwhV4FKiVUjYCHwP5\nQogVwG4gHN0jc6KU8pY1chZCbAacDNebDcaMBlLQPcpfBRKklDndlYOU8jdt7mVu+A+B3hg/OVwH\nRndXToruQxVdhaV5E933LAdwBf4B/KrlWgTwTyAKKJZSFrZsHsUDCUAVkCyl/LM1EhVC/AlYAmTe\nZ0w/YB+QC7wCPA1sFULckFIe/B73GAL8F2jGeBZ7W0rZ2bNwWsffNojfAdQJmHaIKroKiyKlvIeu\niMabuHYEcDaI5aIraFZDCOGHbiMqGLhsZvhi4Js2s9ELQohwdOuqZosuuhnpkx1ca+ogfj8aWl7d\nDOImNysVtuf/NjihLmZLvJcAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sympy.plotting import plot3d_parametric_surface\n", "from sympy import sin, cos\n", "u, v = symbols('u v')\n", "plot3d_parametric_surface(cos(u + v), sin(u - v), u-v, (u, -5, 5), (v, -5, 5))\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Statistics\n", "----" ] }, { "cell_type": "code", "execution_count": 163, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from sympy.stats import *" ] }, { "cell_type": "code", "execution_count": 164, "metadata": { "collapsed": false }, "outputs": [], "source": [ "k = Symbol(\"k\", positive=True)\n", "theta = Symbol(\"theta\", positive=True)\n", "z = Symbol(\"z\")\n", "X = Gamma(\"x\", k, theta)" ] }, { "cell_type": "code", "execution_count": 165, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAA0BAMAAAA5/3i3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMARN3vMmYQu3aZIqtU\nic3QRwAsAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACmElEQVRIDe1VO4gTURQ9yb5MksmXbSwsDIjF\nooUKioVgUCzFwLIWVkGRdUFMYDHiYjG4fjZuExRE2cJBCwubRQuLbcZKrEwj7CrCCFooFgnoKiQQ\n7/tOJiNhG628kHvPPffMvDfvcwMIW2zLSJ75BkqQnvoaMPGixmylpKGK1sVKwNSqBmdLBkpgfRsi\nJgMcEZ7xvKC6wZZ1EhGuzA8N/fmlGTwi1G8QsVc26VghO3QVeHWZrAojzPK8gcJgMOjo16Tqx5jG\nRqgJzDgCxnYWjyedoznNZ/cSstabriZy7qqAs0sP6nk3c13x9p2eA0y6dlsLn+KTgFU80ZSJ9mHM\nlXX2/sOmhKyhKRMzB5ZOmWSB8cmQbZdh2BfkrCRVyjkCZIdJpS6YCRLRyFcF/RqISCdI6IgquRPv\nBGK73l4rak7HlI85VycqpjH9cYSitHmjEiX/M/90BehGbMU6f3VSi3S2tmRBRxsjt2YA01S4zlbH\n7PTIQ9sutMA7GpsfrL04QnOgmzm7n4iMG1Kyg9iE6GjsJ5BbBXiT/UI/yw8J4xX0IToa61GhjkSL\nQp9r1rkzNg38gOhoQthC3AVi4t6fNSIOpsD6oqNBCD08IjJX4qV8kXtlsS5SXdnRhJAuF1Xyrexy\nGWk+CW2Z3trzjuxoSniJSjXv9o4KEr5WUYz7KPiyoynhHmLfnK+eQ9BXuZ46yEmPA1pI/tXAPvo9\nFIOyjiCkq3m4q9Ih4e5bDpFhYRG/wkIa2uraXSJjJXLaJopyKSgPPibRsfrUr0Mfk3Yeu+ohvoVk\nG7TLdXwnYbqtKjxY9++pzH42uOISpgOSrKB5k1azrEp/DnwLpfE9GmPiUIh6+FBEH1lQ1Mgxiwr1\nX0rSjdZCTOQq/AbIF8R1bCnEaAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{z^{k - 1} e^{- \\frac{z}{\\theta}}}{\\theta^{k} \\Gamma{\\left(k \\right)}}$$" ], "text/plain": [ " -z \n", " ───\n", " -k k - 1 θ \n", "θ ⋅z ⋅ℯ \n", "───────────────\n", " Γ(k) " ] }, "execution_count": 165, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D = density(X)(z)\n", "D" ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\begin{cases} - \\frac{k \\gamma\\left(k, 0\\right)}{\\Gamma{\\left(k + 1 \\right)}} + \\frac{k \\gamma\\left(k, \\frac{z}{\\theta}\\right)}{\\Gamma{\\left(k + 1 \\right)}} & \\text{for}\\: z \\geq 0 \\\\0 & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ ⎛ z⎞ \n", "⎪ k⋅γ⎜k, ─⎟ \n", "⎪ k⋅γ(k, 0) ⎝ θ⎠ \n", "⎨- ───────── + ───────── for z ≥ 0\n", "⎪ Γ(k + 1) Γ(k + 1) \n", "⎪ \n", "⎩ 0 otherwise" ] }, "execution_count": 166, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = cdf(X, meijerg=True)(z)\n", "C" ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHUAAAAxBAMAAAAW4/v1AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEGZEu1SZMu/ddqvN\niSKgCzzVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACz0lEQVRIDZ1VPWhTURT+XtKbmLZ5CUVEdOib\nHDWrU2MHCQ6SycHFN1fQDg5urXQSxBbBSamvIFkELVLwJ4OZCkKQTIK6BHURB1vT6NCWes79eclL\n3mtzPcP9vvPzvXveyz03QGhTXkhtSfrCFVtJWH+7WCiGjiV5gELVUmLKU4soeMaxxJyPhf/dd6aE\nFyXL/Uz5u3p92XBbfAzs2WpM/T6yXcMt0ekis2ipMeVOB4XAOLa4hE+2krB+zr0fcltyohZ3ml0v\n6TlnkxLZykF9Y7kFfAeO342tmmjHhimY3QHy68AH4ptDReIO4DSGwjqQ3SVSRsonCH92EZBHdvr6\nNq2fJY9ZpNZHrg2kuVCaCBRinEMntTMEUlvFD0rkV0xWBJpJ7WTJxAdQaoEahSd98WxepkUgAWrf\njK+9QdDaWYpPV5/PeDIvAglam2pobxC09iHFr50qTqm0CBSqfUX4LjpqQGuXyL/py2C+2Xx/r9lc\nZ0e+b3YLBzG2hT7to6eBFAPCEKPV8QHo9ex03I5OikATqU0f0TN9q9SW080rTVSb/K3oTJJ9BCbK\n+BurzbRkydDivjm42KboeWDMQ21NFYhAYeb13kv63eeVx+tXTfuHi89kz0TQ4+Azd2t5t17ZB9wy\nnAq/fv9wyVkIBU47pER4FhbKwBdqoc3Hj/zIcF2mQLzJsoV1eingDJWoP7P+4aLZT7CxNiVYmwFW\nic4UubB/uI64c1gr4K6QSt2UicPFD44aa+mI+rRs4uoraoLpaKa09DPC6Y5/+00nqTGakKqUNlel\nzrfXHI+A2x/NlPZYiZr9IxU0XKNaT5t7e4lF1lruebr0i3ZH4nANd9P7VufobmrZfasyPy/vAxso\nzJM2abi4LGo/n+zcoAg3OovxuWJ0uKK1SR6fSWV8odsZz4Ky/lkwscNRzgWXRGbwcI3J0uwrCx9i\nMiNg3J1zuOwfvGq9BZo/zpAAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{\\theta}{\\Gamma{\\left(k \\right)}} \\Gamma{\\left(k + 1 \\right)}$$" ], "text/plain": [ "θ⋅Γ(k + 1)\n", "──────────\n", " Γ(k) " ] }, "execution_count": 167, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E(X)" ] }, { "cell_type": "code", "execution_count": 168, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\frac{\\theta^{3} \\theta^{k - 1}}{\\theta^{k} \\Gamma^{2}{\\left(k \\right)}} \\Gamma^{2}{\\left(k + 1 \\right)} - \\frac{2 \\theta^{2}}{\\Gamma^{2}{\\left(k \\right)}} \\Gamma^{2}{\\left(k + 1 \\right)} + \\frac{\\theta \\theta^{k + 1}}{\\theta^{k} \\Gamma{\\left(k \\right)}} \\Gamma{\\left(k + 2 \\right)}$$" ], "text/plain": [ " 3 -k k - 1 2 2 2 -k k + 1 \n", "θ ⋅θ ⋅θ ⋅Γ(k + 1) 2⋅θ ⋅Γ(k + 1) θ⋅θ ⋅θ ⋅Γ(k + 2)\n", "─────────────────────── - ────────────── + ─────────────────────\n", " 2 2 Γ(k) \n", " Γ(k) Γ(k) " ] }, "execution_count": 168, "metadata": {}, "output_type": "execute_result" } ], "source": [ "V = variance(X)\n", "V" ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB0AAAAUBAMAAACDsiv0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAELvv3c2ZVESJdqsy\nImaEkRGMAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA2UlEQVQYGWNgQADOpEQEB8iay7AVhe/LcP4C\nsoAHw/0GZD4DQ70AnC/3AMj0YmBgVHYAiXEoljEwcCYAWawgguGwAL8AwzMQi78ARPoBaY4JHAcY\nGPpBZvAZMPA/OFpeBGRPAUmzJDCcL7D//x/IDGOo2sPQ38CwvgEkwcD4nevGP4b9u3fbg7kM7B8X\nMj5gcGVg+Arhs30D0T8ZeL5D+Cy7tECaGNgMIHz5BqAnGH8w8C+A8N8zyBdMYLCAWAsU2sTAf2AC\nQxavLUSaQY+BK0uAQWwZyJVAAAACXDJ3UibcdwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$k \\theta^{2}$$" ], "text/plain": [ " 2\n", "k⋅θ " ] }, "execution_count": 169, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(V)" ] }, { "cell_type": "code", "execution_count": 170, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJkAAAA0BAMAAABr8Ie5AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADcElEQVRIDa1WT0gUYRT/7Z/cmVVnlpBACtw8\nLMUKbiFRHXKhk4dgpUMeAjeKjDokFYYo9JFgKIUegrq5eojQkD2F2KEuEVHQdgtCmEt/CAKLShPK\n3jcz3zcz7qo7Oz3Yfe/93nu/ed+fnX2AR1rWuXigAE5HgNqy0lCuDAoA1PUHKC4rHStDggB9CJ1f\nMoIwuGqVSYwg/sOFBDHjRRwGXgehcNXStr0EOg0XFMBMA73sf7BFs9TFpNnJFDOV3y9t9q0saaN7\nG05yN7omQa8RYV5/g9eILoGEbtJJqqanZgTo1dFHCQuwlSdqADswwQSm/AEWTee8gDZq1aKJe/AP\ntKSZAq5xcNCJXE7gPvfCeQfzWjbbATf68Qhv4irq6ElKtxNpydcXuDeAUKWlUMRi08wsnmkK9XMX\nOlMywAizMVKRVZV7Wh7hLdkiBmU5MgjlLxr60Q3lzLgDa2sD3GmefUDNVxSrN35UzT1NImMQ2jeo\nRaShrv8WIOnTPdzpXfeArrjW3se9Zvr0LSa5yYXYVqEmaeu8ciPv9TfxTnD8lgyavTUkYcISpftS\nebtiSyTvoJt/GPSXcZxKQlnYMPVG+6ZnQTfFj1xXEsrcQ+ArFTXhsyi1z9R8iMCq0E9/JhrZHWCM\nWjs6VBIVw0CKb5p18wW6rV5g0NHAoDKEtefMzt81dRDxixeAc9sSQJlJyc188tjYA9VAuL9iXa4i\n6gG7EqGCBLRJkw1ykTJCRqzo9iraoRcYNUQkh2VzpRgSiFuP2o598uVqGZFXrQuypKTlzFNALCEx\nx9jnmJtZesYV+ZJKKJemXYBfUy/4rdgqv4HYklslVBPbae3hMsI5jFbapGpIZE6HtFLp7Q9eJruM\n0bl54QWcuoYZcApjYk2Bpi7lUCdD/TPEc3Zz9LMOIu0MjRnEVm0O8w1bOx+x0T2NrlgMNHUFEmKb\nyCP63SKhqQvtdEd+1chJbC0FaPb4QdsWn7+ye684FL+knC0v2dLAJ0yHDb8sIl+u1Jm6ShEmon41\nsdEpxFbQRpfEnLq0jOqXROYTW2MJ9avO1FVX1JkM+zSIjW5vXQ5y6ppgetYniUwnNtzDbQMQU9d+\n8JdRTXL2zckixluPUbGYut4jUqiJy1NkT10erHbHnrpqJ/BWWlOXF6vdq3LqqvIBm0xdVVYD/wDb\nRuFt6B2K7QAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{\\sqrt{2}}{10 \\sqrt{\\pi}} e^{- \\frac{1}{50} \\left(z - 10\\right)^{2}}$$" ], "text/plain": [ " 2 \n", " -(z - 10) \n", " ───────────\n", " ___ 50 \n", "╲╱ 2 ⋅ℯ \n", "──────────────────\n", " ___ \n", " 10⋅╲╱ π " ] }, "execution_count": 170, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = Normal('Gaussian', 10, 5)\n", "density(N)(z)" ] }, { "cell_type": "code", "execution_count": 171, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAAPBAMAAACGiUnsAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77ur\nRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACuUlEQVQ4Ea2TzWsTURTFz3TSJJOPSbALRYoZ\n40LEQkNTQVRoFiK4MujGXSMILhQrihsRGijoQsFQXWg3bUFErWI2oiBiLFVUgq3+A8bu6qI2aFu/\n6njufTP6D/gW98zc97tn3rx3H7CufwdkqI5uf8in4usgAAeB6MfOrZzv9ILk1eIj4Tmc/JMyDk8X\niwXzrrhW4xg21CQpajUwMGfdxFhNA7OXgITvS1W8Dk06HoZLwLks0A17DQd8328gNklEcFMYmYBd\n4btqKovERGoCKU8D4E5xrXsWOI9PdWjSXUWmak3P0vU5cBfbgBS6e9rCEDeFSX5HMqqJKlLLmQrs\nJQ3AteNSI8PZV4cm0/eRqwCf6XobmC3zP7iFrroSN4WZBtKrrFKNtumaq8M1ASj8dbWjdegMWdkB\ncR3K0hVIt0JX4obJeUj/JhlqvJ3gWtc0IFIT173zLN1PV5OENUJeXDmuUJJUXavghhkvoPML06F+\nKNhLiH7VgE2gazLrrMFq0dUknZ2byRvXtJT2h66CG2bcC1wDvQycxJlVEwriyvEYNuhqksCuudA1\n3gCsJRK6VsW1OvzzQDs8tsPioWUNsXLg2ls7q646w16bDF3zYlgJXA2uTIY9EJyW6DwJbqWcaKrd\nBXF9CQy8K6irJJ0akgR1B1yPHBvZrNXgWp2sI6KdpRrzcINMtKHhfLP54y1uAb3rm83Zey1NZtr/\nXE+D38gJLDtgcK1m93dUmDbKC7oQuYPBmgampwAPuMCnBD8rM9T4d7NWXmK3hkECQb8SDwovYmPZ\nWgFEnZFiT9U9Yh2FBtI/gVEh2dBsY5mJlDDcMq7Xi32v2L0eZ80tIB4Udi2+AHjyolHe6Sr68jxj\nDdjtz8DZMp0F7Ge/Sib5Pv8U6HlwooQh3/8GjJ0COt6szNBbcFPIl/8+/gCIVw9EhBlKKQAAAABJ\nRU5ErkJggg==\n", "text/latex": [ "$$0.029945493127149$$" ], "text/plain": [ "0.0299454931271490" ] }, "execution_count": 171, "metadata": {}, "output_type": "execute_result" } ], "source": [ "density(N)(3).evalf()" ] }, { "cell_type": "code", "execution_count": 172, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\frac{1}{2} \\operatorname{erf}{\\left (\\frac{\\sqrt{2}}{10} \\left(z - 10\\right) \\right )} + \\frac{1}{2}$$" ], "text/plain": [ " ⎛ ___ ⎞ \n", " ⎜╲╱ 2 ⋅(z - 10)⎟ \n", "erf⎜──────────────⎟ \n", " ⎝ 10 ⎠ 1\n", "─────────────────── + ─\n", " 2 2" ] }, "execution_count": 172, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(cdf(N)(z))" ] }, { "cell_type": "code", "execution_count": 173, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAqBAMAAACXcryGAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiuzKJ\nRN0MreaOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAcElEQVQYGWNggAEhAyCL2dUfRDEw5FODCtEv\naQCbRhbxHwQ+EKV1atRqoDpmB4bzFxgYWAwYmBQYGJgeMLD8ZmBg/wymgNJ8n8Fm3T8App6ASdYA\nMJUKJhkDGGYCGVsZGDIZGDjfnAl5ANQOdMMDBgC/syNtm3aMLwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{1}{2}$$" ], "text/plain": [ "1/2" ] }, "execution_count": 173, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P(N > 10)" ] }, { "cell_type": "code", "execution_count": 174, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKAAAAAPBAMAAACRq9klAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiXYyEM1Embsi72ZU\n3au6f2Q3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADI0lEQVQ4Ea2Uz4tbVRTHP5m8/HjJy68WcXCw\nSasideFk15X2VSzCQEnULgYUzUYEoUwG207dSMDiDxCbLmSoLibgOExd6OuAC0ewD1wKTbpSQdq0\nBQc6MtNqWmemsfF7b1L8B7yLvHvP+Zwv595zToDC3jJaZwsfwwsTu2H+1Hvwkn8glDVax9n3cA1n\n9oIo67HMM2uFQt6Z3dPELYwbkAPw3N6T2hyuJar6uHXaAa9ypOl0Kdb4ZnDbYJkGCfiDWOj8ytBj\nGC4OBoPuVOCeZx7vniF/gTrZED4g2dB5rE+uk24RqWZ9Ui1evN6Ulaca/ASfsgoPYT2W4R3IchPW\nmAz5x8Qv4wW4VeLbJg7iS1SqyS5eL9Uh+xdda3W/bTAOR/gE2r71WIY87OYOFHmr5ujL59NEGjgd\nki0baX7aQa5LvB/r/ScYiTWYOc0E92EmtB7LiI6XnC2Y1MvaK+eniW/5kYDcy7vMS2o5l6nUif+p\nbabH+srb2nwnwezgQuD8LcGS9TxgkvClMqwpf6Wbbk7D5r0JqLxCKhSJ++hxFvJETS1m8pxmQbUt\nSZDiHd+V9aDi5HnAKLYIrwec/dlXgZFgZHBUgj0SiyK1Hqkt1IeCV8wx2SGCBL3fry65ytAKXmHE\nOLcgVvKKoXSW0JtK8NKxnZpKS/quiYfU4ug6ibo5Jrb50Qj+wNjO86MryzNixqpCVh4rlvX5yvfK\nEkx3mVwkUyVt+shtkuzrwb0+PKmeqBK56+SN4HklF6oo7dB6Rowa1KxN/xycCQ8hwVSTaJ9sa5hh\nrifBZIN0D6/OuVSVRM/b2Nj8+nHdLRt8CBd96xkyVLpW8DUGvgQvbWzsXK/Isk5Ub9jSLtUgs62m\n1dhoiPZrPJS7NSvDZFONfcKO1/4hw8E6rDaj2yzD1abIZZMhH8E1pkK1ZjqgXeI3psru5cK7HU3i\nqsFyDd7wWSETOl9gPZbRA0jwCf9wwPd4ptPYIn6UdEk1mrsBKuubc+/DoX03iGlMO8zvOS4qcuZ+\nEF0zfw67ni6PPIaBz0ITqhaOz52q6Tw+WOfZ2VFL6/y/rX8BAHgULtEn92MAAAAASUVORK5CYII=\n", "text/latex": [ "$$6.30254802079348$$" ], "text/plain": [ "6.30254802079348" ] }, "execution_count": 174, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample(N)" ] } ], "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }