{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "

\n", "\"UniFI\n", "

\n", "Massimo Nocentini
\n", "\n", "
October 22, 2016: Horner method, binomial anti-difference\n", "
October 9, 2016: computing sums, Stirling numbers, thms coding\n", "
October 7, 2016: operators and powers theory\n", "
\n", "
\n", "

\n", "
\n", "
\n", "Abstract
\n", "In this document we collect notes and exercises for the first chapter of the course.\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "from sympy import *\n", "from sympy.abc import n, i, N, x, k, y\n", "\n", "init_printing()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "%run src/commons.py" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "---" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "delta, antidifference, I, E, f = symbols(r'\\Delta \\Delta^{-1} I E f', cls=Function) # combinators" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAO8AAAAUBAMAAACXC3dQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRImr\nMhBQc+7aAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACx0lEQVRIDb1Wz2sTQRj9kqZpyNpNUPAgHuIP\nPFfPgivGi1RSvOohB6l6MiilB0vVi97Es6B40mN7ULxZq6AUesgfIHQFJYg5RCwoWlvf+2ZnM7tp\n2j35QWbevHnv+5LZmdmI5GpiwoJ8NSKydtYoh7I6VLgP6rmts1Uh0Fi2YJf+5tbJ1ffr0jfuyfqV\nVXia6WEXBRx8ZpMl6DriGP0gg6v0RITC/BTE5T8RUKPXyuCn6yeaLyaDcbzawXjfzHUvbQJAWOTy\neL8joJP+Q6PZrfX+QtExGYz26w6WqLCMsTCE+6kt9CJgjOdMt1sLlyc5k8FoC0+HexKFIZyhtBKI\ngs7cgVtY55dpe8Sn6MqE3ADFDP7s8nMsnzeVkjjGRGEIT1C6gGoA/mL+SjEQOUrOq2swleVJO7Ew\nufIdQ2b4Jsdal7FPAuAhxkRhCK9CKkttIfBCb7NUFblHzgnLOxQhXAE6ZngtS+FdkVIT2AnXmCgM\n4SPqGvgA+FKY4HCNjROWdyhCuKakrRlCOUNmvMe2H7HxRb1+rV6f5IxuLgi18A8QCiotzqULYxMo\nzzkn4Ar9ljEKj9ZAYdeY+MUozIXSA6lrvtam/xkbb1rjDbEYXmHcqMsLzcMa59GSchPNEGOiMITc\nGnogAUrhbRkLo80F3obl7dj06vpoNteDsZ7MR5vLUbnGROF8oEenyEeDM7Rw55TsBbzoeAkN7/OG\ndIKu8mM1ln+N9HI1kdFFZx7QJiSbKAwhlvVgYwMGgO5s50INmvMUOhHx06HDSbexsfrueqBG/8P8\nzGFMFtquop+QbFR4dGX9rQr1yuREDCTX5HgweNK2ib7RvcQGhPYX6wTuS31JcBADGfaS8AaSKdE3\n8u4fGp/cGQqPWyIGw16LHatM9bEx02uRZhXG7/8YxIlSBWqpsR3GxpHtn4XV9XsV5moRYcH/+evz\nD30lvmygG3B0AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( I{\\left (x \\right )} = x, \\quad E{\\left (x \\right )} = x + 1\\right )$$" ], "text/plain": [ "(I(x) = x, E(x) = x + 1)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "I_eval_rule = define(I(x), x) # identity\n", "E_eval_rule = define(E(x),x+1) # forward shift\n", "\n", "I_eval_rule, E_eval_rule" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\Delta{\\left (f{\\left (x \\right )} \\right )} = - f{\\left (x \\right )} + f{\\left (x + 1 \\right )}, \\quad \\Delta^{k}{\\left (f{\\left (x \\right )} \\right )} = \\Delta{\\left (\\Delta^{k - 1}{\\left (f{\\left (x \\right )} \\right )} \\right )}\\right )$$" ], "text/plain": [ "⎛ k ⎛ k - 1 ⎞⎞\n", "⎝\\Delta(f(x)) = -f(x) + f(x + 1), \\Delta (f(x)) = \\Delta⎝\\Delta (f(x))⎠⎠" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "delta_eval_rule = define(delta(f(x)), f(x+1)-f(x),) # forward difference def\n", "delta_pow_rule = define(delta(f(x))**k, delta(delta(f(x))**(k-1)),) # repeated applications of differentiation\n", "\n", "delta_eval_rule, delta_pow_rule" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALQAAAAUBAMAAADW/wrvAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZjJ2me8QRFSJqyLN\n3buI9fnTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACg0lEQVQ4EYWVz2sTQRTHv8nG3aTZJBV6U2n+\nAxdaCnpxBS8igjePXQgeFA8FEXqR5CSCCAHFkyUFT6YF48lTZZGCB38FvIi2NJ5FGrQUxdD4fZOd\n3fxy9ws7783s572dfTM7C1Cz0gAvBgYnAjvNJDH5IFeqpaLTv5TJd4JcM4PhoKeMsX/UbO75iGGM\n571LwCsdtaGczLIn1tYZTV+6oyr5QKoTywiCtzrspnJW5+ti5/QoHoZe6FQdwHRjmSqzpFwdkWMA\n4B47FPNVGqVr2olso8zUTizTWAEKLR1iXqFn1VJ/aPJtPQqb0Jg+AnW0Yhki2IrC3tDNAFJsw+W8\nFjZusRo5umM6gjGbwPQYssircvblGQd4RHcVkGIXGXodp5wdVsznMJ68E22LC6vXXG5NYdTNQWPJ\nPvvG6dVTnwo+cJLddUCKXagBj9Hw7gPZNodHlPsJmwNxDBHgM1/Zyx1mOY0HzFPjNA+YfgXw8EEy\nprvSDsvusm7pCcZ8v0vtlAUlAlzlrGF3pH8amBHLYktqQH09k6lLHYZUYhkiKjVQciQTU98TO++q\nl0Va3gpWW9o1mdHuF3Eh25rlkoKMMOxqKYQFYdKytHdUqVmNv2oZ7xpdLOlllPtasq3T67GMILKM\nWe8cDE+WMbt9gbp8IDvO+l3syvmSqZMa0R57t8uxjCCy46q1fXXQXUShP5DHKphPlxaPE7DLgkUy\nN/vN5g/u2/8z+c3+MwawCjcWKuc5PbyO4oc+4q2h0VE3OgymM9GHPvThJhxPwRPmwidNOcJ4b/x4\nCvBiK3BMP3AmTSLzXccMDtWgl+8EThivscgmMuGvIHyGCk76OQmUxMgGE/EH9g/zV74AMqJK1AAA\nAABJRU5ErkJggg==\n", "text/latex": [ "$$\\Delta{\\left (x \\right )} = E{\\left (x \\right )} - I{\\left (x \\right )}$$" ], "text/plain": [ "\\Delta(x) = E(x) - I(x)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "delta_EI_conv = define(delta(x), E(x)-I(x)) # conversion via combinators\n", "\n", "delta_EI_conv" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "def rewrite(eq, rule, **kwds):\n", " return eq.replace(query=rule.lhs, value=rule.rhs, **kwds)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAAVBAMAAAB7+SUdAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZjJ2me8QRFSJqyLN\n3buI9fnTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADaklEQVRIDX1Wz2tTQRCelx8vSZO0UQoeVBrw\nDzDQUqggfYVeFITixYNCHxQP/jgURCiCtCiKIEKl4kkwUG89GC96qgYRhJpKQETBFurZg1FLUTzo\nfLs7b9++Jh2YndmZb7432ezbfUQsFQxEz4zCP4gB4jW07TYWTWFPDBi7iluR+qVAxS0iqJK+6Lkr\nJtLFvJRYD0zEJjhrnYrMdIhMiZ8JVeI3tSW6LM5u+05CPTARm+C0vRUmWOeGFpEZNAqfaEkbokJN\nvKT1Aom4mLxUgNHKTe36T56GCdYgu4PcF6Pwic5rQ+RPiZe05YZEXEzUABitmAaIxkOXNbfg/WFY\nsa3VVJRmpfStOEm7agMORhoAY0ycBihWkSHCJkgHWv3hlSu8/gWeankgTtKOcGDm2IuxGpGDkQbA\naNhQ6jYQq5gjwibor2i9QIdrG/z6NVEEOYSh0FISwBf5yvyL3ody02AkLg2A0bAh5TagWHVFnQib\noLyg9SE9Du8S5ds6S3RPnKT9zH2FhZ18I4GRBsBo2FDqNmBZ8wzztrmJWa0hvQc81cEIOapNNPrr\nmywbVTrDK0ClLSQshpdq/VyrVecgGA0bPWq1PrZaa8CqTRir6EOMN4E0QKTOpd4NAK+EGyAaqGG0\nDfBEVgCMhg2OuwK24g6SQ0H0F1DqJyK5NkbIdQwF/OrNzTp8Ef4L+NFVjAoDByIN4C8wbAi7DdiK\nOpLZv9EmvJ3u0OiuTQhQUngT5sNxSod7bELDhlK3gWgT5t9MspzaVu8dv3u53/0dXDKZRRRBTmiz\ne+Q3aX7hu7rDHIysQIwNxW4DUUX5n5YQa87qL4+O7GN4qUqD+4cD9l6zdhVexYvDMxPcLWO8iSMj\nBiUNxNiQkQZOTq9xCbMaflOVPIpXiQ78oLPO6RhBtWOPYj7zvPlKtqHj0oA63G2NNKAiOCU1vwUM\nsgvVskTFmTbx+eBeNJKG9QKZMeb5cRoI9dw3jcTYkLiks3rkCsNvo/1cB1XiN4n6armpxMWpkzJ+\nEwfX8TJdlanYiE0C1qJC89tYcSv2QYLabDUTVCl6ikWKF32QAHOaJlOSMBaMPQQVmj8GSH6SvaLy\nXNX9eIqh2S1W9ByYYoc+3XDT+iMvGVNzxar4u6ZN8Bql7++Vd3K5Oo2Zfpz4HhPF/x8KGtv+EJ6i\nQAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\Delta{\\left ({\\left(x\\right)}_{n} \\right )} = - {\\left(x\\right)}_{n} + {\\left(x + 1\\right)}_{n}$$" ], "text/plain": [ "\\Delta(FallingFactorial(x, n)) = -FallingFactorial(x, n) + FallingFactorial(x \n", "+ 1, n)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = Wild('s')\n", "rewrite(delta_eval_rule, define(f, Lambda([s], ff(s,n))))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAAcBAMAAABVHdSvAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZjJ2me8QRFSJqyLN\n3buI9fnTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEDElEQVRIDa1WTYgUVxCu6fnt7Zl1IQpJEHZA\nQk5hBqMHPZgOmkOiKwt7EA+yDRsIiLJ7UfYiticlJNkJ7MFLQpMfUAJhcsop7poEAq6HFQVDQrIT\nAhIi6GKCJuag9dV7/bp75u3OrNmCqvd99arqva5+/UMUS/5ojP7PuLtlsp1FAwcBtwcJ6hdTm4kj\nnLeWYzjIWHo4SJQ15uXEOx0YXOmzfN5EApT7RGeCM8TpJPRMAvstX46SWCLX35Hh6bn1cTVI5ued\nvTHptzx9qCNHMFafP432e0LgiFGuTQTtFR26X2ZyYq+eN+1Xy39l0nrq1QKZc/7CsOUTIVdgS/sP\nEgkC+0IrcFpUHnnq0DSamHtcNxGyvNcBf3sXb7+nXt7HHBUmA7Yv7QvZ0hLM0MV/NAI7oRU4LSqP\n75o438AunIk/iD64xxKQLF+Vtl2eCy31vFVJnB1t8bivPF7nLvtwTZ+e0QjMbSoFTovKo2IIZ/nc\nv2zznVMOGESW3wpUevROXBnU1LsBRn4RG//dWeZd1NrwzLEqBFYaVwqcFpVHjQDOAqGHw81XXDBI\nhdPoZ0GrbC31DmOyHOaw8SX6tE70DTz0EatCQn9gC82KzqNt4p4l9LDaHtqpo7yxx03ylsFcWEu9\n3ZgskGwckGgXzIvHPlNoau/Xe5pE8+yDZiXOOyRun6SH2RCS05X7/CffWu9swOGzJBtXib/JgEeB\nUamVu1lbJNrOFErudREf2OTdAymHJD0ETsnwCMgWvgRbvUad/RGlNv4jO8h7wIaRG7gPK22i95lC\nsxLpvGtwD7Hi5ndJLYRjoc7GUm9hhk9IyKfyb54XOQJbWWXDqETVDnhDK7ARk3cLrgusoz5QRoq8\ngDrJtnoLodp3snFZXo6KIGmbfXlcr+TJ1UdMLDdfLY+TjOX1bTD1cPXYd7Jxaf5wxC5BcnfoDFMo\nub+IRMAmD8ujFakeMlGimv8niKVeoy23njf+n46Xo1dsMmNUCV6jfJA6euw2EgEh70sepRU0yeWy\noo7eBJyWenzyK98fYBmLb748X9PcFDxpZ8P7hE/Gm1p5MJLk4el9D0UOrPhmWgMXntIjMEs9fmPU\nnigJEKJ7zLsSdPzVqddHGH6rlQcjSR6iV1QR9fExMfonoixuvnvd9Q6nIhWUV+PHwMlLEq8u9frq\nCYdDHS/rlHrpuh1MWup915PEn5xKdBVu9fEBcptKgS1SaFmcsWsr0btVdNBSz/Z7d5dqd/hqWe6K\nZXNCa8y7Rme8y5Gmw2369aRy9NTLRelIha9QDv8GLOb3AHkmV6ay5lKWZpjXoecOKk9PvVo9Eyok\n/iUa5GdLZ6M7a8o6P1svrJm0oYmKv6HwOJgbszly/pnKFIJnStvMpKch7SPaJBzcMQAAAABJRU5E\nrkJggg==\n", "text/latex": [ "$$\\Delta^{k}{\\left (f{\\left (x \\right )} \\right )} = \\Delta{\\left (\\Delta^{k - 1}{\\left (f{\\left (x \\right )} \\right )} \\right )}$$" ], "text/plain": [ " k ⎛ k - 1 ⎞\n", "\\Delta (f(x)) = \\Delta⎝\\Delta (f(x))⎠" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f_wild = WildFunction('f')\n", "D=define(delta(f_wild**k), delta(delta(f_wild**(k-1))))\n", "rewrite(delta_pow_rule, D)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "class ForwardDifference(Function):\n", " \n", " def _latex(self, *_):\n", " if len(self.args) < 2:\n", " func, args = self.args[0].func, self.args[0].args\n", " v = args[0]\n", " else:\n", " func, args = self.args[0].func, self.args[0].args\n", " v = self.args[1]\n", " \n", " D = Function(r'\\Delta_{{{}}}'.format(latex(v)))\n", " expr = D(func(*args))\n", " return latex(expr)\n", " \n", " def doit(self):\n", " \n", " if len(self.args) < 2:\n", " func, args = self.args[0].func, self.args[0].args\n", " v = args[0]\n", " else:\n", " func, args = self.args[0].func, self.args[0].args\n", " v = self.args[1]\n", " \n", " return func(*map(lambda a: a.subs({v:v+1}, simulataneous=True),args)) - func(*args)\n", " \n", " def _e2val_power(self, k):\n", " if k.is_Number:\n", " return ForwardDifference(Pow(ForwardDifference(self.args), k-1, evaluate=False))\n", " else:\n", " return super()._eval_power(k)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# know the difference\n", "Let $\\{y_{n}\\}_{n\\in\\mathbb{N}}$ be a sequence, where $y_{n}=f(n)$ for some function $f$. Assume that each coefficient $y_{n}$ *is not known*; on the contrary, assume that there exists a *known* sequence $\\{g_{n}\\}_{n\\in\\mathbb{N}}$ which satisfies:\n", "$$\n", "\\begin{equation}\n", "\\Delta y_{n} = y_{n+1}-y_{n}=g_{n}\n", "\\end{equation}\n", "$$\n", "By finite summation on both sides:\n", "$$\n", "\\sum_{n=n_{0}}^{N-1}{\\Delta y_{n}} = \\sum_{n=n_{0}}^{N-1}{g_{n}}\n", "$$\n", "many terms in the lhs disappear, so:\n", "$$\n", "y_{N}-y_{n_{0}} = \\sum_{n=n_{0}}^{N-1}{g_{n}}\n", "$$\n", "therefore, if the initial term $y_{n_{0}}$ is given, we can compute any term $y_{N}$ by:\n", "$$\n", "y_{N} = y_{n_{0}} + \\sum_{n=n_{0}}^{N-1}{g_{n}}\n", "$$\n", "since each term $g_{n}$ is known by hypothesis and the summation can be done." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## a little generalization\n", "\n", "Consider an additional known sequence $\\{p_{n}\\}_{n\\in\\mathbb{N}}$ and we're required to find a solution for equation: $ y_{n+1} = p_{n}y_{n} + g_{n} $. So define an helper sequence $\\{P_{n}\\}_{n\\in\\mathbb{N}}$ such that $P_{n_{0}}=1$ and $P_{n}=p_{n-1}P_{n-1}$, therefore $P_{n}=\\prod_{k=n_{0}}^{n-1}{p_{k}}$ holds by induction. Now study the following:\n", "\n", "$$\n", " \\frac{y_{n+1}}{P_{n+1}} = \\frac{p_{n}y_{n}}{P_{n+1}} + \\frac{g_{n}}{P_{n+1}} \n", " = \\frac{y_{n}}{P_{n}} + \\frac{g_{n}}{P_{n+1}} \n", "$$\n", "\n", "calling $z_{n}=\\frac{y_{n}}{P_{n}}$ and $q_{n}=\\frac{g_{n}}{P_{n+1}}$, it yields: $z_{n+1} = z_{n}+q_{n}$, with initial condition $z_{n_{0}} = \\frac{y_{n_{0}}}{P_{n_{0}}} = y_{n_{0}}$. So we've a recurrence in a simpler form, whose solution is a sequence $\\{z_{n}\\}_{n\\in\\mathbb{N}}$ such that $z_{n} = z_{n_{0}} + \\sum_{i=n_{0}}^{n-1}{q_{i}}$. By backward substitution:\n", "\n", "$$\n", "\\begin{split}\n", " \\frac{y_{n}}{P_{n}} &= y_{n_{0}} + \\sum_{i=n_{0}}^{n-1}{\\frac{g_{i}}{P_{i+1}}} \\\\\n", " y_{n} &= P_{n}y_{n_{0}} + \\sum_{i=n_{0}}^{n-1}{\\frac{P_{n}g_{i}}{P_{i+1}}} \\\\\n", " y_{n} &= \\left(\\prod_{k=n_{0}}^{n-1}{p_{k}}\\right)y_{n_{0}} + \n", " \\sum_{i=n_{0}}^{n-1}{\\left(\\prod_{k=i+1}^{n-1}{p_{k}}\\right)g_{i}} \\\\\n", "\\end{split}\n", "$$\n", "\n", "which is the closed form for coefficients of solution sequence $\\{y_{n}\\}_{n\\in\\mathbb{N}}$." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "### Horner method\n", "\n", "Let $p\\in\\prod_{n}$ be a polynomial over coefficients $\\{b_{n}\\in\\mathbb{C}\\}_{n\\in\\mathbb{N}}$, defined as $p(x)=\\sum_{i=0}^{n}{b_{i}x^{n-i}}$. Define the difference equation $y_{i} = xy_{i-1} + b_{i}$, for $i\\in\\{1,\\ldots,n\\}$, with initial condition $y_{0}=b_{0}$; therefore, $y_{n}=p(x)$ holds.\n", "\n", "In order to see this, recognize that we have a recurrence of the last form where $p_{i}=x$ and $g_{i}=b_{i+1}$ forall $i$ in the domain, therefore its solution has the generic coefficient $y_{n}$ which satisfies:\n", "\n", "$$\n", " y_{n} = \\left(\\prod_{k=n_{0}}^{n-1}{x}\\right)b_{0} + \n", " \\sum_{i=n_{0}}^{n-1}{\\left(\\prod_{k=i+1}^{n-1}{x}\\right)b_{i+1}}\n", " = x^{n}b_{0} + \\sum_{i=0}^{n-1}{x^{n-1-(i+1)+1}b_{i+1}} =\n", " = x^{n}b_{0} + \\sum_{i=1}^{n}{x^{n-i}b_{i}} = \\sum_{i=0}^{n}{x^{n-i}b_{i}} = p(x)\n", "$$\n", "\n", "as required." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# $\\Delta$ operator relations\n", "\n", "On the other hand, assume that no initial condition $y_{n_{0}}$ is given, we obtain $y_{n}$ on the lhs by application of the *anti-difference* operator $\\Delta^{-1}$ on the left in both members $\\Delta y_{n}=g_{n}$ so \n", "$y_{n} = \\Delta^{-1}g_{n}$. Use this identity as rewriting rule and apply it to the former equation, obtaining $\\Delta\\Delta^{-1}g_{n}=g_{n}$, therefore the relation $\\Delta\\Delta^{-1}=I$ on operators holds.\n", "\n", "Moreover, let $\\{w_{n}\\}_{n\\in\\mathbb{N}}$ be a constant sequence, so we can augment:\n", "$$\n", "y_{n} = \\Delta^{-1}g_{n} + w_{n} = \\Delta^{-1}\\Delta y_{n} + w_{n}\n", "$$\n", "because $\\Delta w_{n}=0$, therefore the relation $\\Delta^{-1}\\Delta = I - K$, where $K$ is the constant operator, holds." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# computing sums via $\\Delta^{-1}$\n", "\n", "Let $g_{n}=\\Delta y_{n}$ and assume to *not* have a closed formula in $n$ for coefficients $y_{n}$, but to *know* that $y_{n}=\\Delta^{-1}g_{n}$ holds. Apply summation on both members and manipulating on the rhs:\n", "$$\n", "\\sum_{n=n_{0}}^{N-1}{g_{n}} = \\sum_{n=n_{0}}^{N-1}{\\Delta y_{n}} \n", "= y_{N}-y_{n_{0}} = y_{n} \\big|_{n_{0}}^{N} = \\Delta^{-1}g_{n} \\big|_{n_{0}}^{N} = \\Delta^{-1}g_{n} \\big|_{n=N} - \\Delta^{-1}g_{n} \\big|_{n=n_{0}}\n", "$$\n", "therefore, if we have an *unknown* sequence $\\{g_{n}\\}_{n\\in\\mathbb{N}}$, which has a closed-form of \n", "$\\Delta^{-1}g_{n}$ as a term which support *substitution* of symbol $n$, so the sum $\\sum_{n=n_{0}}^{N-1}{g_{n}}$ can be easily computed by a difference, as done in the fundamental theorem of calculus." ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "g = IndexedBase('g')\n", "n = IndexedBase('n')\n", "f = Function('f')\n", "\n", "anti_difference = Function('\\Delta^{-1}')\n", "\n", "def accept_replacing(thm_ctor):\n", " \n", " def replacing(subs=lambda *args: {}, **kwds):\n", " \n", " weq, variables = thm_ctor(**kwds)\n", " mapping = subs(*variables) if callable(subs) else subs\n", " for k,v in mapping.items():\n", " weq = weq.replace(k, v, simultaneous=True)\n", " \n", " return weq, [mapping.get(v, v) for v in variables]\n", " \n", " return replacing\n", " \n", "@accept_replacing\n", "def summation_antidifference_thm():\n", "\n", " (n, sup), inf = symbols('n N'), IndexedBase('n')[0]\n", " eq = Eq(Sum(g[n], (n, inf, sup-1)), \n", " Subs(anti_difference(g[n]), n, sup) - \n", " Subs(anti_difference(g[n]), n, inf))\n", " \n", " return eq, (g, n, inf, sup)\n", "\n", "@accept_replacing\n", "def antidifference_of_ff_thm():\n", " (n, i), w = symbols('n i'), IndexedBase('w')\n", " eq = Eq(anti_difference(ff(n, i)), ff(n, i+1)/(i+1)+w[n])\n", " return eq, (x, n, w)\n", "\n", "@accept_replacing\n", "def antidifference_of_binomial_thm():\n", " (n, k), w = symbols('n k'), IndexedBase('w')\n", " eq = Eq(anti_difference(binomial(n, k)), binomial(n, k+1)+w[n])\n", " return eq, (x, n, w)\n", "\n", "@accept_replacing\n", "def constant_sequence_thm():\n", " variables = w, i, j = IndexedBase('w'), *symbols('i j')\n", " eq = Eq(w[i], w[j])\n", " return eq, (w, i, j)\n", "\n", "def doit(thm, lhs=True, rhs=True):\n", " eq, *variables = thm\n", " return Eq(eq.lhs.doit() if lhs else eq.lhs, eq.rhs.doit() if rhs else eq.rhs), variables\n", "\n", "def rewrite(thm, rule, include_rule_vars=False):\n", "\n", " eq, *rest = thm\n", " try:\n", " rw, *others = rule # so, `rule` can be a thm too\n", " except:\n", " rw, *others = rule, []\n", " \n", " augmented = []\n", " augmented.extend(*rest)\n", " if include_rule_vars: augmented.extend(*others)\n", " return eq.replace(rw.lhs, rw.rhs, simultaneous=True), augmented\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nURpCr/zlAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( \\sum_{n=n_{0}}^{N - 1} g_{n} = \\left. \\Delta^{-1}{\\left (g_{n} \\right )} \\right|_{\\substack{ n=N }} - \\left. \\Delta^{-1}{\\left (g_{n} \\right )} \\right|_{\\substack{ n=n_{0} }}, \\quad \\left [ g, \\quad n, \\quad n_{0}, \\quad N\\right ]\\right )$$" ], "text/plain": [ "⎛ N - 1 \n", "⎜ ___ \n", "⎜ ╲ \n", "⎜ ╲ g[n] \n", "⎜ ╱ = (\\Delta__{-1}(g[n]))│ - (\\Delta__{-1}(g[n]))│ , [g, n\n", "⎜ ╱ │n=N │n=n[0] \n", "⎜ ‾‾‾ \n", "⎝n = n[0] \n", "\n", " ⎞\n", " ⎟\n", " ⎟\n", " ⎟\n", ", n[0], N]⎟\n", " ⎟\n", " ⎟\n", " ⎠" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "thm = eq, (g, n, inf, sup) = summation_antidifference_thm()\n", "thm" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## $(x)_{i}$ application" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOkAAAAVBAMAAABRSdSyAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC40lEQVRIDa2WP2gUQRTGv91LzP3Zyy0G1CKY\nTSHaeSpiJytoK0EQLU8QERG5JlEIhBPRTiPYCcJVggh6YIyFhdda3XWWibFIYeGdIASJ4Pdm/87s\nbrBwYI553/u9b3dmZ2cPsDwUt/1har4IiYCivKGLj/KaMRLp0GqG0bSblpNxDCTSHqNvEB/ldW4P\nbCK6mOPnUzGQnzbULYiPdHvBSKXDI3HwIR5pgwTQ5OJAfNj3RdPJI6/F4ud4pA0SQJOLA/FhP1BM\nwGrFyYluPEwNUkBK3WsoPuyLwjy8+yAPneLqv/56cKUN1HIfhAAoX7nXNKrDIl11FkMfep1kqta0\nfsXE2nlpFyQuecDCqbYz5uP3kdMEwDvMmbcUFukVterTwMf2cZOp1T52dCKI9nVQ71yH9YcTahUA\nKO+i0dGTUZGuHpr0Ax96PWfqGeqcTrZVunCc37BHQJ092wig0sSGq6eiIl3tN9qBD7141fpPTLV0\nIojEtDzCtB/Q6ilqnAAbHpY0kUFYZMhcUnX3vCpX2B6jtGBf+qI2FtZvSLsjFVxhcFkaXh/VFiuM\nKQXAcRenBU63sCgtcXzRgfKhF3cT76zRsd96FdNVNkulx8feg+0jpwmwiuymCIv0CmenFu+m9zyi\nxvjhzi6h0dcx9brMdbFmDzHZU7mBryHyPg3c6TEMPSgyxOqInwrxYX9JmzfL68A2XmmODGRZmT98\njG/2ENUVLultjRGguv2xZepBkQFjy1M+4hWciHwyL3C5rlkySA48HmG1QR+4ryMKKHHGhh5QOaIc\nhew8/evg62GNcOuxbgkkhztP7NlHTAcLHXMEhhh0M3oAGLCI4emPE/jUL22iuollL4CT35IbjtWX\n7gy3QDtJyqjk1nZxNqsryoQpRl86zODJ0auKyv5YzVCTyzu7Q9gGYzXLW4sdrpihqzBHFB81FcvL\nqwi16A/KPOOy38uSEZDN5CriI/3fm/OdN/p/2l/SPp4VcGmVUwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( g_{n} = {\\left(n\\right)}_{i}, \\quad \\left ( g, \\quad n, \\quad i\\right )\\right )$$" ], "text/plain": [ "(g[n] = FallingFactorial(n, i), (g, n, i))" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "local_thm = Eq(g[n], ff(n,i)), (g, n, i)\n", "local_thm" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\sum_{n=n_{0}}^{N - 1} {\\left(n\\right)}_{i} = \\left. \\Delta^{-1}{\\left ({\\left(n\\right)}_{i} \\right )} \\right|_{\\substack{ n=N }} - \\left. \\Delta^{-1}{\\left ({\\left(n\\right)}_{i} \\right )} \\right|_{\\substack{ n=n_{0} }}, \\quad \\left [ g, \\quad n, \\quad n_{0}, \\quad N\\right ]\\right )$$" ], "text/plain": [ "⎛ N - 1 \n", "⎜ ___ \n", "⎜ ╲ \n", "⎜ ╲ FallingFactorial(n, i) \n", "⎜ ╱ = (\\Delta__{-1}(FallingFactorial(n, i)))│ \n", "⎜ ╱ │n=N \n", "⎜ ‾‾‾ \n", "⎝n = n[0] \n", "\n", " ⎞\n", " ⎟\n", " ⎟\n", " ⎟\n", "- (\\Delta__{-1}(FallingFactorial(n, i)))│ , [g, n, n[0], N]⎟\n", " │n=n[0] ⎟\n", " ⎟\n", " ⎠" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inst_thm = rewrite(thm, local_thm)\n", "inst_thm" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\Delta^{-1}{\\left ({\\left(n\\right)}_{i} \\right )} = w_{n} + \\frac{{\\left(n\\right)}_{\\left(i + 1\\right)}}{i + 1}, \\quad \\left [ x, \\quad n, \\quad w\\right ]\\right )$$" ], "text/plain": [ "⎛ FallingFactorial(n, i + 1) \n", "⎜\\Delta__{-1}(FallingFactorial(n, i)) = w[n] + ──────────────────────────, [x,\n", "⎝ i + 1 \n", "\n", " ⎞\n", " n, w]⎟\n", " ⎠" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ant_ff_thm = antidifference_of_ff_thm(subs={})\n", "ant_ff_thm" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nqEMAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( \\sum_{n=n_{0}}^{N - 1} {\\left(n\\right)}_{i} = \\left. w_{n} + \\frac{{\\left(n\\right)}_{\\left(i + 1\\right)}}{i + 1} \\right|_{\\substack{ n=N }} - \\left. w_{n} + \\frac{{\\left(n\\right)}_{\\left(i + 1\\right)}}{i + 1} \\right|_{\\substack{ n=n_{0} }}, \\quad \\left [ g, \\quad n, \\quad n_{0}, \\quad N\\right ]\\right )$$" ], "text/plain": [ "⎛ N - 1 \n", "⎜ ___ \n", "⎜ ╲ \n", "⎜ ╲ FallingFactorial(n, i) ⎛ FallingFactorial(n, i + 1)⎞│ ⎛\n", "⎜ ╱ = ⎜w[n] + ──────────────────────────⎟│ - ⎜\n", "⎜ ╱ ⎝ i + 1 ⎠│n=N ⎝\n", "⎜ ‾‾‾ \n", "⎝n = n[0] \n", "\n", " ⎞\n", " ⎟\n", " ⎟\n", " FallingFactorial(n, i + 1)⎞│ ⎟\n", "w[n] + ──────────────────────────⎟│ , [g, n, n[0], N]⎟\n", " i + 1 ⎠│n=n[0] ⎟\n", " ⎟\n", " ⎠" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ready_thm = eq, *_ = rewrite(inst_thm, ant_ff_thm)\n", "ready_thm" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nK0K8bqUNdAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( \\sum_{n=n_{0}}^{N - 1} {\\left(n\\right)}_{i} = w_{N} - w_{n_{0}} + \\frac{{\\left(N\\right)}_{\\left(i + 1\\right)}}{i + 1} - \\frac{{\\left(n_{0}\\right)}_{\\left(i + 1\\right)}}{i + 1}, \\quad \\left [ \\left [ g, \\quad n, \\quad n_{0}, \\quad N\\right ]\\right ]\\right )$$" ], "text/plain": [ "⎛ N - 1 \n", "⎜ ___ \n", "⎜ ╲ \n", "⎜ ╲ FallingFactorial(n, i) FallingFactorial(N, i + 1)\n", "⎜ ╱ = w[N] - w[n[0]] + ──────────────────────────\n", "⎜ ╱ i + 1 \n", "⎜ ‾‾‾ \n", "⎝n = n[0] \n", "\n", " ⎞\n", " ⎟\n", " ⎟\n", " FallingFactorial(n[0], i + 1) ⎟\n", " - ─────────────────────────────, [[g, n, n[0], N]]⎟\n", " i + 1 ⎟\n", " ⎟\n", " ⎠" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "done_thm = doit(ready_thm, lhs=False)\n", "done_thm" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## ${{n}\\choose{k}}$ application" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAAyBAMAAABhUBCTAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiUSZq1TvELvdZiIy\nds1Wk1T5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEnklEQVRYCbWYPYwbRRTH39pne9ebuwuCAtFk\nCyioYho6uKuDDq6KhCh8fEkgGhcpENJlLZEGISRLRIoimhNpKKLYNRTnhtqWAgKEorOgRSiKdDrp\nEhDvY2Znd3Y94z0uU8y+937v/Xe8X2+9ADiCBCfHCBKB1xw59VFO7VlPteaNhSexFjZqwba70PB7\n7sSaNFO7OnBXGh5edGfWo1qt8567Lsc7H7pT61GtFvbcdXl+1Z1akyq1vucM5Hl0rudAqX3tWTfx\nxnM/PNjBbeuxJ7kWFrWuR5N5M/wK0gmq+1ZbawGiFg3dRcx/jBZwOMXEsed8ubVsymqzxA4XfeaD\nNIExxdN5kf4/j9Ve9WgI7wO8SYkbC096LcxqH3hKhL8OcNrBzHXPFeMRszCpXTi1gpar+LvQOgkQ\nxZ50q9rjkprvJwmPH0GwuEtyvgPm2aWFUS3cs2KWK7wxgvjKLqEvLM7u91VBV6xLtzQOVGsP2Vo6\n2fxSRWbs0SiUfPoxuW9IDNXSXgGXHJuPk1IKbKjfUyZVkT8peF0Iqs3mVUkmZnPbp8w7Jn0F65hy\nAtktqvV33TU2t48IVX/jlijSxgn5nT2Ootp4ytbSyeab26XUeFQKOQKBZP/BKah2NGGr9drPw8oq\nxTO2WU5b7yGtENAtNKtlY6PX+mkKIO+ZqHZJFvA8HJIMj+BvHuIrrhm0F5mpjfAArbyAAlkL1Ym8\nTXd/v3wAcI8dVNsakNU6gc1dDtmTcBNtj4ytrAgrqwSyFlqo6O8PPsPA2xxEtbfEGMJsUsjTjnDt\nAUR7xlZWO+HHSUkga6GFiq0euzOeUU12MDuA3wppmbPiAioFdAvNxMi4+eucNtkC5BCPJ/A53Ln7\ngFcX3OaxTXnqFLHJUzQytrLoFLCATXQLzcc7j7Cv4HiZg6gmFxmu9Ri+PYVP8rlsr3gRsoBdrFto\nPt592DmmtppdhEdTwulk7XG8PwJ+SFAgG8Izl3tHujA+WgEeNxKAzr+FuLRQK7g2hCe0gFc4FTuN\nPNsbO8+MYG3e2ONwfhJuIpu4t+iW8dHCVgksALcHeaBaaDGI9+z9XzDrL85EtX4iNWEP2tNmbyqe\nmRWXHobh9CJO7xhOFj+KUQBakyJgrzKonp6oJs1lCmkChxC9NLUVhANwD0PIPi0iN7AZsQDQsS2N\n6uCc81CNDikEJ3AD4EVYf6FUzhyj3MNwS82pI9VZbjgRAdjPQjmjMnhdElAtWqDZunIfdSsHczzH\n+vKku6JrZcZDJXBgAXYrg19KJqo1H1YVmZjiqoeBenAZztaZX8nwMdfVP83S1K7iqocBfKTBuWxR\n7YI+uUsEFVc9DOJ/luSdKcxqvvds4aqHed/i662D3/m3PDXCVQ+DcORJr4VZ7XLirhGuetjT+HMa\n9dwLYK57GBwN3Nn1KKutdBvoHnb+/8xwxe97Vk18TfWwp/GJBvqeo0pc97ANz/ny/BYLKzWfaJ6b\nb5aW1plcpRY/cVfneO6bpbtmJZqpyRvy8hrDw3M9A5lac3v5zokY/p07sSY1ajueSs3NB3ZPwUo4\np9ZM3BWaX/PcL24Vm4raf5cULPmv0CT1AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( g_{n} = {\\binom{n}{k}}, \\quad \\left ( g, \\quad n, \\quad k\\right )\\right )$$" ], "text/plain": [ "⎛ ⎛n⎞ ⎞\n", "⎜g[n] = ⎜ ⎟, (g, n, k)⎟\n", "⎝ ⎝k⎠ ⎠" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "local_thm = Eq(g[n], binomial(n,k)), (g, n, k)\n", "local_thm" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n3YEtG4SS1wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( \\sum_{n=n_{0}}^{N - 1} {\\binom{n}{k}} = \\left. \\Delta^{-1}{\\left ({\\binom{n}{k}} \\right )} \\right|_{\\substack{ n=N }} - \\left. \\Delta^{-1}{\\left ({\\binom{n}{k}} \\right )} \\right|_{\\substack{ n=n_{0} }}, \\quad \\left [ g, \\quad n, \\quad n_{0}, \\quad N\\right ]\\right )$$" ], "text/plain": [ "⎛ N - 1 \n", "⎜ ____ \n", "⎜ ╲ \n", "⎜ ╲ ⎛n⎞ \n", "⎜ ╲ ⎜ ⎟ ⎛ ⎛⎛n⎞⎞⎞│ ⎛ ⎛⎛n⎞⎞⎞│ \n", "⎜ ╱ ⎝k⎠ = ⎜\\Delta__{-1}⎜⎜ ⎟⎟⎟│ - ⎜\\Delta__{-1}⎜⎜ ⎟⎟⎟│ , [g, n, n\n", "⎜ ╱ ⎝ ⎝⎝k⎠⎠⎠│n=N ⎝ ⎝⎝k⎠⎠⎠│n=n[0] \n", "⎜ ╱ \n", "⎜ ‾‾‾‾ \n", "⎝n = n[0] \n", "\n", " ⎞\n", " ⎟\n", " ⎟\n", " ⎟\n", " ⎟\n", "[0], N]⎟\n", " ⎟\n", " ⎟\n", " ⎟\n", " ⎠" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inst_thm = rewrite(thm, local_thm)\n", "inst_thm" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\Delta^{-1}{\\left ({\\binom{n}{k}} \\right )} = {\\binom{n}{k + 1}} + w_{n}, \\quad \\left [ x, \\quad n, \\quad w\\right ]\\right )$$" ], "text/plain": [ "⎛ ⎛⎛n⎞⎞ ⎛ n ⎞ ⎞\n", "⎜\\Delta__{-1}⎜⎜ ⎟⎟ = ⎜ ⎟ + w[n], [x, n, w]⎟\n", "⎝ ⎝⎝k⎠⎠ ⎝k + 1⎠ ⎠" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ant_binomial_thm = antidifference_of_binomial_thm(subs={})\n", "ant_binomial_thm" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Previous thm holds by the following argument.\n", "\n", "$$\n", "\\begin{split}\n", " \\Delta{{x}\\choose{j}} = {{x+1}\\choose{j}} - {{x}\\choose{j}} &= \\frac{(x+1)_{j}}{(j)_{j}}-\\frac{(x)_{j}}{(j)_{j}}\\\\\n", " &= \\frac{ (x+1)x\\cdots(x-j+2) -x\\cdots(x-j+2)(x-j+1) }{(j)_{j}}\\\\\n", " &= \\frac{ x\\cdots(x-j+2)(x+1 -(x-j+1)) }{(j)_{j}}\\\\\n", " &= \\frac{ x\\cdots(x-j+2) }{(j-1)!} = \\frac{ (x)_{(j-1)} }{(j-1)_{(j-1)}} = {{x}\\choose{j-1}}\\\\\n", "\\end{split}\n", "$$\n", "\n", "therefore, to find $\\Delta^{-1}{{x}\\choose{j}}$ we are required to provide a term $t_{x}$ such that application of $\\Delta$ to it yields ${{x}\\choose{j}}$. So choose $t_{x}={{x}\\choose{j+1}}$, according to above identity." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\sum_{n=n_{0}}^{N - 1} {\\binom{n}{k}} = \\left. {\\binom{n}{k + 1}} + w_{n} \\right|_{\\substack{ n=N }} - \\left. {\\binom{n}{k + 1}} + w_{n} \\right|_{\\substack{ n=n_{0} }}, \\quad \\left [ g, \\quad n, \\quad n_{0}, \\quad N\\right ]\\right )$$" ], "text/plain": [ "⎛ N - 1 \n", "⎜ ____ \n", "⎜ ╲ \n", "⎜ ╲ ⎛n⎞ \n", "⎜ ╲ ⎜ ⎟ ⎛⎛ n ⎞ ⎞│ ⎛⎛ n ⎞ ⎞│ \n", "⎜ ╱ ⎝k⎠ = ⎜⎜ ⎟ + w[n]⎟│ - ⎜⎜ ⎟ + w[n]⎟│ , [g, n, n[0], N\n", "⎜ ╱ ⎝⎝k + 1⎠ ⎠│n=N ⎝⎝k + 1⎠ ⎠│n=n[0] \n", "⎜ ╱ \n", "⎜ ‾‾‾‾ \n", "⎝n = n[0] \n", "\n", " ⎞\n", " ⎟\n", " ⎟\n", " ⎟\n", " ⎟\n", "]⎟\n", " ⎟\n", " ⎟\n", " ⎟\n", " ⎠" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ready_thm = eq, *_ = rewrite(inst_thm, ant_ff_thm)\n", "ready_thm" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nCkUoiQAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( \\sum_{n=n_{0}}^{N - 1} {\\binom{n}{k}} = {\\binom{N}{k + 1}} - {\\binom{n_{0}}{k + 1}} + w_{N} - w_{n_{0}}, \\quad \\left [ \\left [ g, \\quad n, \\quad n_{0}, \\quad N\\right ]\\right ]\\right )$$" ], "text/plain": [ "⎛ N - 1 ⎞\n", "⎜ ____ ⎟\n", "⎜ ╲ ⎟\n", "⎜ ╲ ⎛n⎞ ⎟\n", "⎜ ╲ ⎜ ⎟ ⎛ N ⎞ ⎛ n[0]⎞ ⎟\n", "⎜ ╱ ⎝k⎠ = ⎜ ⎟ - ⎜ ⎟ + w[N] - w[n[0]], [[g, n, n[0], N]]⎟\n", "⎜ ╱ ⎝k + 1⎠ ⎝k + 1⎠ ⎟\n", "⎜ ╱ ⎟\n", "⎜ ‾‾‾‾ ⎟\n", "⎝n = n[0] ⎠" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "done_thm = doit(ready_thm, lhs=False)\n", "done_thm" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJEAAAAVBAMAAAC01xHeAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMiJmu5l2VO9E\niat+9JXfAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACEUlEQVQ4EY1UMUwUQRR9e8fdcQcnGwIFEI/N\nqrEzREMBNDTWkJhAQ3GJgVDSaAsVpTk6rkDBxMJSawsSKirAxAQqaSAhNoex0Yr353Zm/+xyib+Y\nef/9t2//n7tZwMVSglYdo0GpqTONc/rSRlJ+sKh1Fi9bkNtz+oI1CKKcmMST+0jUvgBBlCmtu/zC\nIeBzgstbikSt1c0a724JtF746W6R64RDqVPRdmxq1glVcdJ6pqUp93zh0EHX06uUIvKdtJ7F6hYn\nbl8ds9U6oQ073S6Jsfcre92xfCetp6zSBB7ides5UI6YJ2Gd3vI9p+WZYmR430nrWS7uA2f4GX5i\n7+mgbrpZthrWb2vd4/KdEv3wC4nHGDgEQjyVV/Z1ZGV8j+O5OH4m8Bt7QmFDYD2OH32N40vB5sSd\nXhgYJ+CvQKnIuUjY6egEDLVkZfg9aT2LMh36/nDB4BTwUgDDOnE6YGFeVobvpPUsyokfVDvY6Xni\ntfADqqEYZZwyJ86fcvBfpSMXtf/UyM1iezoHTvY3kdxyvyet50NsMbjZ2V0jLMzj+JK7hHU6Ahrt\nse2mIV1P/b9+X/t6qae3hf/nM7kFEtapx20xGq0XQt/g0jgP3cRosvs3OFhMaLNdINULUbHVIGLS\nEkrHG514OIgyevelE8vJEU/MpPeXLq/XX9+P9ayT/Kj3xyrpvN5qGz8s+r+d+jsYGHC5ys7nIQAA\nAABJRU5ErkJggg==\n", "text/latex": [ "$$- {\\left(x\\right)}_{i} + {\\left(x + 1\\right)}_{i}$$" ], "text/plain": [ "-FallingFactorial(x, i) + FallingFactorial(x + 1, i)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ff(x+1,i)-ff(x,i)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# powers" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## in $\\mathbb{R}$\n", "\n", "In $\\mathbb{R}$ the $n$-th power of the symbol $x$ satisfies:\n", "$$\n", "\\begin{split}\n", "x^{0}&=1 \\\\\n", "x \\neq0 &\\rightarrow x^{-n}=\\frac{1}{x^{n}}\\\\\n", "\\frac{\\partial x^{n}}{\\partial{x}} &= n x^{n-1} \\\\\n", "\\frac{\\partial^{-1} x^{n}}{\\partial{x}} = \\int x^{n}\\partial x &= \\frac{x^{n+1}}{n+1}+c\n", "\\end{split}\n", "$$\n", "for some $c\\in\\mathbb{R}$. In $\\mathbb{N}$ its counterpart is the *falling factorial* function in the variable $x$ defined as: \n", "\n", "$$(x)_{n} = \\underbrace{x(x-1)(x-2)\\cdots(x-n+1)}_{n\\text{ terms}}$$" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## in $\\mathbb{N}$\n", "\n", "We apply operator $\\Delta$ to derive an identity about forward differences of $(x)_{n}$: \n", "$$\n", "\\begin{split}\n", "\\Delta (x)_{n} &= (x+1)_{n} - (x)_{n} \\\\\n", "&= (x+1)x(x-1)\\cdots(x-n+2) - x(x-1)\\cdots(x-n+2)(x-n+1) \\\\\n", "&= (x)_{(n-1)}(x+1 -(x-n+1)) \\\\\n", "&=n(x)_{(n-1)}\n", "\\end{split}\n", "$$\n", "Previous identity allows us to recover the *anti-difference* of $(x)_{n}$: it requires to find a sequence $\\{g_{n}\\}_{n\\in\\mathbb{N}}$ such that $\\Delta g_{n} = (x)_{n}$, namely $$g_{n}=\\frac{(x)_{(n+1)}}{n+1}+w_{n}=\\Delta^{-1}(x)_{n}$$ where $\\{w_{n}\\}_{n\\in\\mathbb{N}}$ is a constant sequence.\n", "\n", "Moreover, in order to provide corresponding identities for the left ones, we reason according to:\n", "$$\n", "(x)_{m+n} = \\underbrace{x(x-1)\\cdots(x-m+1)}_{(x)_{m}}\\underbrace{(x-m)(x-m-1)\\cdots(x-m-n+1)}_{(x-m)_{n}}\n", "$$\n", "substitution $m=0$ yields $(x)_{n}=(x)_{0}(x)_{n}$ therefore $(x)_{0}=1$. On the other hand, substitution $m=-n$ yields $(x)_{0}=(x)_{-n}(x+n)_{n}$. So:\n", "$$\n", "(x+n)_{n} \\neq 0 \\rightarrow (x)_{-n} = \\frac{1}{(x+n)_{n}} = \\frac{1}{(x+n)(x+n-1)\\cdots(x+1)}\n", "$$\n", "requiring $x\\not\\in\\{-1, -2, \\ldots, -n\\}$." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## properties\n", "\n", "- $(x)_{n}$ is monic polynomial of degree $n$ with roots $\\{0, 1, \\ldots, n-1\\}$\n", "- $\\Delta(x)_{n}\\in\\Pi_{n-1}$\n", "- $\\Delta^{-1}(x)_{n}\\in\\Pi_{n+1}$\n", "- $k < j \\rightarrow (k)_{j} = k(k-1)\\cdots(k-k)\\cdots(k-j+1)=0$\n", "- $(k)_{k} = k(k-1)\\cdots(k-(k-1)+1)(k-k+1)=k!$\n", "- $(k)_{k}=(k)_{(k-1)}$\n", "\n", "and, finally:\n", "\n", "$$\\frac{(k)_{j}}{(j)_{j}} = \\frac{k(k-1)\\cdots(k-j+1)}{j!}=\\frac{k!}{j!(k-j)!}={{k}\\choose{j}}$$" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## $\\mathbb{R} \\leftarrow \\mathbb{N}$, via Stirling numbers of the *second* type" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "from sympy.functions.combinatorial.numbers import stirling" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "deletable": true, "editable": true }, "source": [ "The following identity links the two kinds of powers:\n", "$$\n", "x^{n} = \\sum_{i=1}^{n}{\\mathcal{S}_{n,i} (x)_{i}}\n", "$$\n", "where coefficients $\\mathcal{S}_{n,i}$ are Stirling's numbers of the second kind, defined according to the following recurrence relation $\\mathcal{S}_{n+1, i} = \\mathcal{S}_{n, i-1} + i\\mathcal{S}_{n, i}$, for $i\\in\\{2,\\ldots,n\\}$, with initial conditions $\\mathcal{S}_{n, 1} = \\mathcal{S}_{n, n} = 1$.\n", "\n", "In the following matrix we report the upper chunk of the infinite matrix generated by the recurrence relation; for the sake of clarity, according to Python indexing which is *zero*-based, we include the very first row and column, which yields $\\mathcal{S}_{0, 0}=1$ and $0$ everywhere else." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{array}{ccccccccccc}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 3 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 7 & 6 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 15 & 25 & 10 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 31 & 90 & 65 & 15 & 1 & 0 & 0 & 0 & 0\\\\0 & 1 & 63 & 301 & 350 & 140 & 21 & 1 & 0 & 0 & 0\\\\0 & 1 & 127 & 966 & 1701 & 1050 & 266 & 28 & 1 & 0 & 0\\\\0 & 1 & 255 & 3025 & 7770 & 6951 & 2646 & 462 & 36 & 1 & 0\\\\0 & 1 & 511 & 9330 & 34105 & 42525 & 22827 & 5880 & 750 & 45 & 1\\end{array}\\right]$$" ], "text/plain": [ "⎡1 0 0 0 0 0 0 0 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 1 0 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 1 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 3 1 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 7 6 1 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 15 25 10 1 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 31 90 65 15 1 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 63 301 350 140 21 1 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 127 966 1701 1050 266 28 1 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 255 3025 7770 6951 2646 462 36 1 0⎥\n", "⎢ ⎥\n", "⎣0 1 511 9330 34105 42525 22827 5880 750 45 1⎦" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stirling_matrix_second_kink = Matrix(11,11,lambda i, j: stirling(i,j, kind=2, signed=False))\n", "stirling_matrix_second_kink" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nAZAuIMcAqQecAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{array}{ccccccccccc}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 3 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 7 & 6 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 15 & 25 & 10 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 31 & 90 & 65 & 15 & 1 & 0 & 0 & 0 & 0\\\\0 & 1 & 63 & 301 & 350 & 140 & 21 & 1 & 0 & 0 & 0\\\\0 & 1 & 127 & 966 & 1701 & 1050 & 266 & 28 & 1 & 0 & 0\\\\0 & 1 & 255 & 3025 & 7770 & 6951 & 2646 & 462 & 36 & 1 & 0\\\\0 & 1 & 511 & 9330 & 34105 & 42525 & 22827 & 5880 & 750 & 45 & 1\\end{array}\\right] \\left[\\begin{matrix}{\\left(x\\right)}_{0}\\\\{\\left(x\\right)}_{1}\\\\{\\left(x\\right)}_{2}\\\\{\\left(x\\right)}_{3}\\\\{\\left(x\\right)}_{4}\\\\{\\left(x\\right)}_{5}\\\\{\\left(x\\right)}_{6}\\\\{\\left(x\\right)}_{7}\\\\{\\left(x\\right)}_{8}\\\\{\\left(x\\right)}_{9}\\\\{\\left(x\\right)}_{10}\\end{matrix}\\right] = \\left[\\begin{matrix}1\\\\x\\\\x^{2}\\\\x^{3}\\\\x^{4}\\\\x^{5}\\\\x^{6}\\\\x^{7}\\\\x^{8}\\\\x^{9}\\\\x^{10}\\end{matrix}\\right]$$" ], "text/plain": [ " \n", " \n", " \n", " \n", " \n", "⎡1 0 0 0 0 0 0 0 0 0 0⎤ ⎡FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 0 0 0 0 0 0 0 0 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 1 0 0 0 0 0 0 0 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 3 1 0 0 0 0 0 0 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 7 6 1 0 0 0 0 0 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 15 25 10 1 0 0 0 0 0⎥⋅⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 31 90 65 15 1 0 0 0 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 63 301 350 140 21 1 0 0 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 127 966 1701 1050 266 28 1 0 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎢0 1 255 3025 7770 6951 2646 462 36 1 0⎥ ⎢FallingFactorial(x, \n", "⎢ ⎥ ⎢ \n", "⎣0 1 511 9330 34105 42525 22827 5880 750 45 1⎦ ⎣FallingFactorial(x, \n", " \n", " \n", " \n", " \n", "\n", " ⎡ 1 ⎤\n", " ⎢ ⎥\n", " ⎢ x ⎥\n", " ⎢ ⎥\n", " ⎢ 2 ⎥\n", "0) ⎤ ⎢x ⎥\n", " ⎥ ⎢ ⎥\n", "1) ⎥ ⎢ 3 ⎥\n", " ⎥ ⎢x ⎥\n", "2) ⎥ ⎢ ⎥\n", " ⎥ ⎢ 4 ⎥\n", "3) ⎥ ⎢x ⎥\n", " ⎥ ⎢ ⎥\n", "4) ⎥ ⎢ 5 ⎥\n", " ⎥ ⎢x ⎥\n", "5) ⎥ = ⎢ ⎥\n", " ⎥ ⎢ 6 ⎥\n", "6) ⎥ ⎢x ⎥\n", " ⎥ ⎢ ⎥\n", "7) ⎥ ⎢ 7 ⎥\n", " ⎥ ⎢x ⎥\n", "8) ⎥ ⎢ ⎥\n", " ⎥ ⎢ 8 ⎥\n", "9) ⎥ ⎢x ⎥\n", " ⎥ ⎢ ⎥\n", "10)⎦ ⎢ 9 ⎥\n", " ⎢x ⎥\n", " ⎢ ⎥\n", " ⎢ 10⎥\n", " ⎣x ⎦" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m = Mul(stirling_matrix_second_kink, Matrix(11,1,lambda i, _: ff(x, i, evaluate=False)),evaluate=False)\n", "#.applyfunc(lambda i: i.as_poly(x).as_expr())\n", "Eq(m, Matrix(11,1,lambda i, _: x**i), evaluate=False)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "ename": "AttributeError", "evalue": "ImmutableDenseMatrix has no attribute as_base_exp.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0m_\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlhs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdoit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sympy/core/basic.py\u001b[0m in \u001b[0;36mdoit\u001b[0;34m(self, **hints)\u001b[0m\n\u001b[1;32m 1554\u001b[0m terms = [term.doit(**hints) if isinstance(term, Basic) else term\n\u001b[1;32m 1555\u001b[0m for term in self.args]\n\u001b[0;32m-> 1556\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mterms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1557\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1558\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sympy/core/cache.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 93\u001b[0;31m \u001b[0mretval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 94\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0mretval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sympy/core/operations.py\u001b[0m in \u001b[0;36m__new__\u001b[0;34m(cls, *args, **options)\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0mc_part\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnc_part\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder_symbols\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 42\u001b[0m \u001b[0mis_commutative\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnc_part\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0mobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_from_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc_part\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mnc_part\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mis_commutative\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sympy/core/mul.py\u001b[0m in \u001b[0;36mflatten\u001b[0;34m(cls, seq)\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[0;31m# try to combine last terms: a * a -> a\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 341\u001b[0m \u001b[0mo1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnc_part\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 342\u001b[0;31m \u001b[0mb1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0me1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mo1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_base_exp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 343\u001b[0m \u001b[0mb2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0me2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_base_exp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[0mnew_exp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0me1\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0me2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sympy/matrices/matrices.py\u001b[0m in \u001b[0;36m__getattr__\u001b[0;34m(self, attr)\u001b[0m\n\u001b[1;32m 1841\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1842\u001b[0m raise AttributeError(\n\u001b[0;32m-> 1843\u001b[0;31m \"%s has no attribute %s.\" % (self.__class__.__name__, attr))\n\u001b[0m\u001b[1;32m 1844\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1845\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__len__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mAttributeError\u001b[0m: ImmutableDenseMatrix has no attribute as_base_exp." ] } ], "source": [ "_.lhs.doit()" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "__Proof.__ By induction on $n$.\n", "\n", "Base case $n=1$, so $x = \\mathcal{S}_{1,1}(x)_{1}=x$, which holds.\n", "\n", "Assume the theorem true for $n$ and show for $n+1$, so:\n", "$$\n", "\\begin{split}\n", " x^{n+1} = x\\cdot x^{n} &= x\\sum_{i=1}^{n}{\\mathcal{S}_{n,i} (x)_{i}}\n", " = \\sum_{i=1}^{n}{\\mathcal{S}_{n,i} (x-i+i) (x)_{i}}\n", " = \\sum_{i=1}^{n}{\\mathcal{S}_{n,i}\\left(\\underbrace{(x-i) (x)_{i}}_{(x)_{(i+1)}} + i (x)_{i} \\right)}\\\\\n", " &= \\sum_{i=2}^{n+1}{\\mathcal{S}_{n,i-1} (x)_{i}} + \\sum_{i=1}^{n}{i \\mathcal{S}_{n,i} (x)_{i}}\n", " = \\underbrace{\\mathcal{S}_{n,1}}_{\\mathcal{S}_{n+1,1}} (x)_{1} + \n", " \\sum_{i=2}^{n}{\\underbrace{\\left(\\mathcal{S}_{n,i-1}+i\\mathcal{S}_{n,i}\\right)}_{\\mathcal{S}_{n+1,i}} (x)_{i}} +\n", " \\underbrace{\\mathcal{S}_{n,n}}_{\\mathcal{S}_{n+1,n+1}} (x)_{n+1}\n", " = \\sum_{i=1}^{n+1}{\\mathcal{S}_{n+1,i} (x)_{i}}\n", "\\end{split}\n", "$$\n", "as required. $\\blacksquare$" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "The just proved identity allows us to easily compute summations of the form $\\sum_{x=n_{0}}^{N-1}{x^{k}}$, for some $k\\in\\mathbb{N}$. One way to do this is to use the result seen some cells above, where it is required to know $\\Delta^{-1}x^{k}$:\n", "$$\n", " \\sum_{x=n_{0}}^{N-1}{x^{k}} = \\Delta^{-1}x^{k} \\big|_{x=N} - \\Delta^{-1}x^{k} \\big|_{x=n_{0}}\n", "$$\n", "but such anti-difference is unknown. Therefore put the last identity in:\n", "$$\n", "\\sum_{x=n_{0}}^{N-1}{x^{k}} = \\sum_{x=n_{0}}^{N-1}{\\sum_{i=1}^{k}{\\mathcal{S}_{k,i} (x)_{i}}} =\n", "\\sum_{i=1}^{k}{\\mathcal{S}_{k,i}\\sum_{x=n_{0}}^{N-1}{ (x)_{i}}} = \\sum_{i=1}^{k}{\\mathcal{S}_{k,i}\\left(\\frac{{\\left(N\\right)}_{\\left(i + 1\\right)}}{i + 1} - \\frac{{\\left(n_{0}\\right)}_{\\left(i + 1\\right)}}{i + 1}\\right)}\n", "$$\n", "where we recognize $\\sum_{n=n_{0}}^{N - 1} {\\left(n\\right)}_{i} = w_{N} - w_{n_{0}} + \\frac{{\\left(N\\right)}_{\\left(i + 1\\right)}}{i + 1} - \\frac{{\\left(n_{0}\\right)}_{\\left(i + 1\\right)}}{i + 1}$ where $w_{N}-w_{n_{0}}=0$ since $\\{w_{n}\\}_{n\\in\\mathbb{n}}$ is a constant sequence." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "### applications" ] }, { "cell_type": "code", "execution_count": 138, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "def power_summation_thm():\n", " n, S, (N, x, k, i) = IndexedBase('n'), IndexedBase('\\mathcal{S}'), symbols('N x k i')\n", " inf, sup = n[0], N-1\n", " return (Eq(Sum(x**k, (x, inf, sup)), Sum(s[k,i]*((ff(sup+1, i+1)/(i+1))-(ff(inf, i+1)/(i+1))), (i, 1, k))),\n", " [n, S, inf, sup, N, x, k, i])\n", "\n", "def expand_Sum(aSumExpr):\n", " \n", " generic_sum_coeff, (sum_index, starting_bound, ending_bound) = aSumExpr.args\n", " \n", " summands = [generic_sum_coeff.subs(sum_index, n) for n in range(starting_bound, ending_bound+1)]\n", " result = Add(*summands, evaluate=False)\n", " \n", " return result\n", "\n", "def stirling_row(row, indexed=None, *args, **kwds):\n", " return {indexed[row, i] if indexed else (row,i):stirling(row, i, *args, **kwds) for i in range(row+1)}\n", "\n", "def do_powers_summation(power, bottom=1, top=Symbol('n'), expand=True):\n", " eq, (n, S, inf, sup, N, x, k, i) = power_summation_thm()\n", " inst_eq = eq.subs({inf:bottom, k:power, N:top+1}, simultaneous=True)\n", " rhs = expand_Sum(inst_eq.rhs)\n", " rhs = rhs.subs(stirling_row(power, S)).factor() if expand else rhs\n", " return Eq(inst_eq.lhs, rhs)\n", " " ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left ( \\sum_{x=n_{0}}^{N - 1} x^{k} = \\sum_{i=1}^{k} \\left(\\frac{{\\left(N\\right)}_{\\left(i + 1\\right)}}{i + 1} - \\frac{{\\left(n_{0}\\right)}_{\\left(i + 1\\right)}}{i + 1}\\right) \\mathcal{S}_{k,i}, \\quad \\left [ n, \\quad \\mathcal{S}, \\quad n_{0}, \\quad N - 1, \\quad N, \\quad x, \\quad k, \\quad i\\right ]\\right )$$" ], "text/plain": [ "⎛ k \n", "⎜ N - 1 ____ \n", "⎜ ___ ╲ \n", "⎜ ╲ ╲ ⎛FallingFactorial(N, i + 1) FallingFactorial(n[0], i + \n", "⎜ ╲ k ╲ ⎜────────────────────────── - ───────────────────────────\n", "⎜ ╱ x = ╱ ⎝ i + 1 i + 1 \n", "⎜ ╱ ╱ \n", "⎜ ‾‾‾ ╱ \n", "⎜x = n[0] ‾‾‾‾ \n", "⎝ i = 1 \n", "\n", " ⎞\n", " ⎟\n", " ⎟\n", "1)⎞ ⎟\n", "──⎟⋅\\mathcal{S}[k, i] ⎟\n", " ⎠ , [n, \\mathcal{S}, n[0], N - 1, N, x, k, i]⎟\n", " ⎟\n", " ⎟\n", " ⎟\n", " ⎠" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "power_summation_thm()" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ0AAAA5BAMAAADehTQdAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZpkydkTvIhDdq1SJ\nzbuhrXSrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADa0lEQVRYCe1XS2sTURQ+k8l0Jp1JGxQUdGHa\nrixIs3DnokGqYCmYlSAILSiiUGkEi1YXmUUpkk2z8LmQpFB8LEqD/oAE6UJEcVy6KO3CrW1EW2u1\njPcxrzuZG2t6l57FzHe+75xv5s6deycBwCH1HD9JgKCDNJrqyAvywja3zkC3KdAP5uGcSDu4CL2y\nQEO1AfdfCfRTKjCSEuj33yr0BJS3N4fmQ9xe0ljXZ5gVuIJOJCwoZHZ1Ryu2H995HeZsDo7wRJav\n2fS6dycPTWyyUiCrASwE0haw0y65qlSuujB8PgbwVQuT0Xl52+NjlgdDYBz0LSPEcdJBO+UpfR5i\ngboBhrWf5XiZZP/wpLiHWKCUQJ1zHsZ1VgpkByle/xng/grVVW5JZ55IM3aaW9IsJGlTWNCvAGgW\nYRX7V1htke9jND1L02L/FgJLNPmwaVKwm+NDpsj1gzj2m6Fa0qY3ylRyErXECKxfMkdEbeJ3oGh6\neHIkG8hZGE8DXHh2Y9ipYP0MJOKo2dQYY60u3UOrH8BYJpHGpB9dKYD0WlZz3jHWT8J9KGI2mh0n\nDNPY0vNu1nROVEGuPgH1G1VYP73k1Jf9AWuQXG1yoVtQA/EdOdC0DZAwRiP4dG15uYLLyXzImMVR\neETP5NidDSRhiPxAb0CnRQX2/jy/0/lA32CGJMZjEpWAgiAaL8Qs6E6ZhGf90LIkoThPAye6eRbi\nJgLRgeejow41s0501s+dj0F0UTdGq+vAX/KAX4lCDt5LGdLA+sXqhNQukRM9FIeme9A98AIP6TzA\n7cO0wPWLPd2ZA0jSiyQrvG6PV3vXaC1w1hupnKL1X7w2LiiCsUFFdj/Q8sEWuh8Y/suiB9Ugfg5w\nmeZdjEOwxt2vDvgVzlNhqkhyFWCRDlhdbVYdhl4q8LIoY7zaFdP1azH5dL8vVF0TbSDtwohz2Ywg\nmylt3OXuLDqfdpdgzoq/xBk+nCR36L70AK35Vh+mRCXcGZ0P+D9fbO7vF9TaG93eLov3ZZHxElT/\ntdq7sZyGuEi/qXevX/zzXckWt2Wl9eRH9sn9pUi+bdL7PLXtwDYK8VvqG844tiL84uZCIreAl1wK\nRPjJ8NEbtAg/AOeXCHIV4ic3ZCDjzQrxKxgl73+APuYNvW1QPLX0xmlWj25n2/ZxGv8ADrvrq+xS\ns7cAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\sum_{x=1}^{n} x = \\frac{n}{2} \\left(n + 1\\right)$$" ], "text/plain": [ " n \n", " ___ \n", " ╲ \n", " ╲ x n⋅(n + 1)\n", " ╱ = ─────────\n", " ╱ 2 \n", " ‾‾‾ \n", "x = 1 " ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "do_powers_summation(power=1, bottom=1)" ] }, { "cell_type": "code", "execution_count": 131, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPMAAAA5BAMAAAARqwDeAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZpkydkTvIhDdq1SJ\nzbuhrXSrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEYUlEQVRYCe2YTYgcRRTHX0/PTvds93yQS5Ac\nnKx4MCDuIfc0Yg4uC5kgCEJgB4SoB8kICsZLmhA2sBAyBxPxII4Y8gEJGTSneHBY9mAggQmeogy7\n5OQpTiIxu5rQeVXVVfVqZroT3LHHg3Xo+terX9W/q7p6Xu8CsGLt3vs6F9lfrKVqoZm9LXP89E2o\nhNOxhnPw9pSc4V2Ys6fj7QzgzPfTsZ5pw2J1Otb/u/4nd+DQhY8XguncWe1e4D6airXd+QqcPyZo\nXYpISd1O130I1mCC1l4kFuKePHg+auiJV++GuiGUN4DZ3nBwO+2rW2r0C38r6TdHXXI9qFRDhWxf\nFKO2muRVpYpNe+REFbrwY9hVyPaFHd1Xk+TmpSzWnYdSy/pYHW5ZipDR7dQvRk01PFAKvE2thXoH\n4LNdQn403KfaO2OVTHBAYOWopQYSUQxIY0g6G0MB3ZwV60DCmbuXvEUCc4880CO1WtVyRJX0PtE+\n730At8cjSKyAP/LMeB/BlqIOnUBoqzYaU5EdSjHhBaK5soc9ozXeQOIiwGHREV+viZpifoR3O1wO\nwVvDId3+QktU0hryzHqZ9yHxAcBVY8dja4rB+hNjKtawf/3ht5GgDDgtqXhtWpfqGGTEephmzTG8\n0ahL5jqx8MliUIiiAYmZMl8DIGnMtPaxExiB5euQYGCsmmO4YxE5D27X+rzY4yMB/D4vtbgZV+Uq\nAEljprXFxjICYOYxxUxrjiHz2p8hQ3nxQ3/Ta8rW2LrYAZrGTGuvhWOQYNc2xUxrjjGG7LgLpQ02\nbqRURIrDeKEOKo3hvtz5sN9vM5wfM3sgCLzOaQxu9ftn+/1fTAxbzlbIYnGpBFIl1GgNnk5j5qq1\nNXvgBDNXzTGcP/8eNdk3r1r+l7y0VYALtp05ncZM65kWMnzDvwOnSTDTmmNILmkz8MIDkA8xmFzY\nISroNGZaq2Nm1yDfJJhpHR8zW+dpvI3O7/CM3372YpA0ZlrnuoBvBhJHb65eophpzTF8rwOkZVl5\n48RuXFVaYZtF0pi0zp1/8g1AaR6HMmI9irYoJq0JBsDPXZqX7Lu5yOYFSPgh5X1HxxA8JK1FQ2Dl\nnmg983qqjqeGFTN9uE06UqUPGuT6JI0I7EaoYh2lxom7UN7g8bJhZqCuuLkUguMCs/SbZaVazzyS\nJs6GVCN17JlC8CECI29W+r8Wyg1llPwK7IyZZIIDHHP0m3X8gZp7nKj8vPbyuPg/ji1346HO9fiv\ngaSpTt+GQuoTSRqYFF8XefHOEcwOrSSIx09vQm7M90zqmLTOHPmTKwrSSKi0wCKJPZWdcCd+QFj3\nJzznc04325jaqm181o3nvM1JY5dheaInnNyf3SONMdKf+3ZMdBIhe0/6yzUJj6Q55FdiUv+/GM/a\neu2lhfl4ORlb58MrxfoV9mNahYytbbitHmHG1gDqAyDrVYM9sIFveJC19TG/5csd9xpSZVKv7F/7\nKTZyXvkryMRTmDwFZPpWbB5u+w4AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\sum_{x=1}^{n} x^{2} = \\frac{n}{6} \\left(n + 1\\right) \\left(2 n + 1\\right)$$" ], "text/plain": [ " n \n", " ___ \n", " ╲ \n", " ╲ 2 n⋅(n + 1)⋅(2⋅n + 1)\n", " ╱ x = ───────────────────\n", " ╱ 6 \n", " ‾‾‾ \n", "x = 1 " ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "do_powers_summation(power=2, bottom=1)" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALoAAAA5BAMAAABzBCy0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZpkydkTvIhDdq1SJ\nzbuhrXSrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD/0lEQVRYCbVXTWjTYBh+k7RNuqRbUVBQxKon\nB2IP3jwsiAqOgQVBEAQFPYgoRnD4d2gOMmQXe/AfZBOGgjAsePSwIj2oIFbxIlIs4sGLrkOncyrx\ny5d8f2uyZKF9D/me932f98nXr9nTDMANadOOXRj05CIdyWesuMrPPtlxqR7vwj4YiDtiWH2NlanD\nFByMO5G1lF9xuT7vGGxWYo5kS+p8TKpPU9tw40nsEX0hNhUT05Mwko89kjVjUxMQnyWYiT0iFWJT\nExAPw4EEU5Ej6Zfnd0+B8uHpl0hqAoLc/xmuWRnHaScYjhzZmW1AuRhJIwTsGB8dFj9IJ3C1r5Vg\nY2AnqOg5xozjbefq6LozPxmtPmizxEczANMdxbCC5xh9ToUQpIkqgXJebhFM120AcxrNIoDvGBOL\nlCc3CJRrUptgup4CfcGgWSTAjjHk5ClxC0XQuXfkXkZjNWNEIewYksMcNcUmxooMeyhdAfV+lVXP\nMrgErcW55xizv5c03TT1LqAolNSWkPJJn4UyqYAuAGOOt+KEXjpPhrY8kHMlOkM/AaA1UN13jLTz\np5MEalCR563iE9BNLx0fdN2/DswxXv+0vRa7jhXVOZYFoltClahDylUfA6COkXPcTyJE1kqhT7hc\nqBWhK6rnSqypnfnLErgyPDpiKvWXFlcLgKkCOtqH54ZNryeqG6hJY8Zh99Jq0nVkV368arrxlqTc\n2p8HKHwzNf9xFtUlKoAmZIcdg2EbC7rFyYTAbBWU6j1Qv3t9UV2v8FMT7Gg0yLX4FsPMSx1UzJRA\n0+YBG4bRbL4/3WxOulz8rSptF5Io3yYIrQMml4RCpA56G8iLmbh3UX0vfxRDRSb54o4bd1mBInQy\nIDdgIG/jkqiOTINF2j88t6Lb+yFlIxAR7reaqcGMXcNEUV34VofQPkgcqc5CuD8RFoD70JVL8Eoq\n4pqoLtcYUTvOMIzvvrIJbSsy3A9/CODSeo9J1OUH/+4D5Lxb4lZuMlKLEpQCgSFOgNsXCQmtXzkc\nBbMtwhBdTLNI3V2Ri5Ew2OOok1rourdFWv2CHqniFTuwX1nDaP4hClQhUTe0SK5SRCp05W7MPY7p\no5QQAgzuDzn8yfJ++bBEuUqUtO0FAsPWtZx6GIeva6dIdvmx/+JECp2rZq5QPfcPm2zzJjKpoJ9v\n4RZGqMUJNJZs56xv+fdINPNkpersPtFIq/VSXX/06PFJM3oXiRmZVuLRGIMDidWVRqS8MbuYjyQF\nEpTBSmC9S0Xxl7xLolSmB+r1LcNFX7/76il7Oluads0gD91XV+BNL08G/BdBdI/u7x2UtgL4ZMwe\nqJeNCv0nUT9KD6lLYHxP/bkvpW5dNLuk6sv8B+44GS18SsvkAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\sum_{x=1}^{n} x^{3} = \\frac{n^{2}}{4} \\left(n + 1\\right)^{2}$$" ], "text/plain": [ " n \n", " ___ \n", " ╲ 2 2\n", " ╲ 3 n ⋅(n + 1) \n", " ╱ x = ───────────\n", " ╱ 4 \n", " ‾‾‾ \n", "x = 1 " ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "do_powers_summation(power=3, bottom=1)" ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\sum_{x=1}^{n} x^{3} = \\frac{n \\mathcal{S}_{3,3}}{4} \\left(n - 2\\right) \\left(n - 1\\right) \\left(n + 1\\right) + \\frac{n \\mathcal{S}_{3,2}}{3} \\left(n - 1\\right) \\left(n + 1\\right) + \\frac{n \\mathcal{S}_{3,1}}{2} \\left(n + 1\\right)$$" ], "text/plain": [ " n \n", " ___ \n", " ╲ \n", " ╲ 3 n⋅(n - 2)⋅(n - 1)⋅(n + 1)⋅\\mathcal{S}[3, 3] n⋅(n - 1)⋅(n + 1)⋅\\ma\n", " ╱ x = ─────────────────────────────────────────── + ─────────────────────\n", " ╱ 4 3 \n", " ‾‾‾ \n", "x = 1 \n", "\n", " \n", " \n", " \n", "thcal{S}[3, 2] n⋅(n + 1)⋅\\mathcal{S}[3, 1]\n", "────────────── + ───────────────────────────\n", " 2 \n", " \n", " " ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "do_powers_summation(power=3, bottom=1, expand=False)" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\sum_{x=1}^{n} x^{10} = \\frac{n}{66} \\left(n + 1\\right) \\left(2 n + 1\\right) \\left(n^{2} + n - 1\\right) \\left(3 n^{6} + 9 n^{5} + 2 n^{4} - 11 n^{3} + 3 n^{2} + 10 n - 5\\right)$$" ], "text/plain": [ " n \n", " ___ \n", " ╲ ⎛ 2 ⎞ ⎛ 6 5 4 3 \n", " ╲ 10 n⋅(n + 1)⋅(2⋅n + 1)⋅⎝n + n - 1⎠⋅⎝3⋅n + 9⋅n + 2⋅n - 11⋅n + 3⋅n\n", " ╱ x = ──────────────────────────────────────────────────────────────────\n", " ╱ 66 \n", " ‾‾‾ \n", "x = 1 \n", "\n", " \n", " \n", "2 ⎞\n", " + 10⋅n - 5⎠\n", "─────────────\n", " \n", " \n", " " ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ten_powers = do_powers_summation(power=10)\n", "ten_powers" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAPBAMAAABgjEDtAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA782r3SJ2ZjIQmUS7\nVIlAnjihAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAv0lEQVQYGWNg/GQs72z0hQEV8Acw5BcwNKIK\nMsxiAIkyo4mGg0XZJqAKR4BFOUCi0Q2c3QFwWaAJ3Iq5j0LXH+A9n8DAuvwxWAooysC4dn4B0wEG\n/gSGLRO4JUEaQKJMDgwMPGBROQYGMaAgRNQAKsrxq7zcHC66ACrK/hckBARgExbA1H4DiyFEmQ8w\nxCcwODEwTIOpZQGqZRdguHiSob+AYSUDA/caeZkV3Of/XGBgeJc2RWQCp1XeBKghaBQAM0c287zN\nvm0AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\mathrm{True}$$" ], "text/plain": [ "True" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ten_powers.replace(Symbol('n'),20).doit()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "deletable": true, "editable": true }, "source": [ "## $\\mathbb{R} \\rightarrow \\mathbb{N}$, via Stirling numbers of the *first* type\n", "\n", "It is possible to revert the previous argument and find a characterization for $(x)_{i}$ using powers $x^{i}$ as follows: \n", "$$\n", "\\sum_{i=1}^{n}{\\mathcal{s}_{n,i} x^{i}} = (x)_{n}\n", "$$\n", "where coefficients $\\mathcal{s}_{n,i}$ are Stirling's numbers of the first kind, tabulated in the following matrix:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nPrb/A3w4tJcpPPkfAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{array}{ccccccccccc}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & -1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 2 & -3 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & -6 & 11 & -6 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 24 & -50 & 35 & -10 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & -120 & 274 & -225 & 85 & -15 & 1 & 0 & 0 & 0 & 0\\\\0 & 720 & -1764 & 1624 & -735 & 175 & -21 & 1 & 0 & 0 & 0\\\\0 & -5040 & 13068 & -13132 & 6769 & -1960 & 322 & -28 & 1 & 0 & 0\\\\0 & 40320 & -109584 & 118124 & -67284 & 22449 & -4536 & 546 & -36 & 1 & 0\\\\0 & -362880 & 1026576 & -1172700 & 723680 & -269325 & 63273 & -9450 & 870 & -45 & 1\\end{array}\\right]$$" ], "text/plain": [ "⎡1 0 0 0 0 0 0 0 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 1 0 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -1 1 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 2 -3 1 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -6 11 -6 1 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 24 -50 35 -10 1 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -120 274 -225 85 -15 1 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 720 -1764 1624 -735 175 -21 1 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -5040 13068 -13132 6769 -1960 322 -28 1 0 0⎥\n", "⎢ ⎥\n", "⎢0 40320 -109584 118124 -67284 22449 -4536 546 -36 1 0⎥\n", "⎢ ⎥\n", "⎣0 -362880 1026576 -1172700 723680 -269325 63273 -9450 870 -45 1⎦" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stirling_matrix_first_kink = Matrix(11,11,lambda i, j: stirling(i,j, kind=1, signed=True))\n", "stirling_matrix_first_kink" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Stirling's matrices of numbers are inverses the one of the other, namely:" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nPrb/A3w4tJcpPPkfAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{array}{ccccccccccc}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & -1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 2 & -3 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & -6 & 11 & -6 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 24 & -50 & 35 & -10 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & -120 & 274 & -225 & 85 & -15 & 1 & 0 & 0 & 0 & 0\\\\0 & 720 & -1764 & 1624 & -735 & 175 & -21 & 1 & 0 & 0 & 0\\\\0 & -5040 & 13068 & -13132 & 6769 & -1960 & 322 & -28 & 1 & 0 & 0\\\\0 & 40320 & -109584 & 118124 & -67284 & 22449 & -4536 & 546 & -36 & 1 & 0\\\\0 & -362880 & 1026576 & -1172700 & 723680 & -269325 & 63273 & -9450 & 870 & -45 & 1\\end{array}\\right]$$" ], "text/plain": [ "⎡1 0 0 0 0 0 0 0 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 1 0 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -1 1 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 2 -3 1 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -6 11 -6 1 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 24 -50 35 -10 1 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -120 274 -225 85 -15 1 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 720 -1764 1624 -735 175 -21 1 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 -5040 13068 -13132 6769 -1960 322 -28 1 0 0⎥\n", "⎢ ⎥\n", "⎢0 40320 -109584 118124 -67284 22449 -4536 546 -36 1 0⎥\n", "⎢ ⎥\n", "⎣0 -362880 1026576 -1172700 723680 -269325 63273 -9450 870 -45 1⎦" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stirling_matrix_second_kink**(-1)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "therefore their product yields the identity matrix:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nCBwnuLvhfyWMnjN+rq6kAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{array}{ccccccccccc}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\\end{array}\\right]$$" ], "text/plain": [ "⎡1 0 0 0 0 0 0 0 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 1 0 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 1 0 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 1 0 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 1 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0 1 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0 0 1 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0 0 0 1 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0 0 0 0 1 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0 0 0 0 0 1 0⎥\n", "⎢ ⎥\n", "⎣0 0 0 0 0 0 0 0 0 0 1⎦" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stirling_matrix_second_kink*stirling_matrix_first_kink" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "---\n", "\"Creative
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License." ] } ], "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.6.0" } }, "nbformat": 4, "nbformat_minor": 1 }