{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 8: Integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Robert Johansson\n", "\n", "Source code listings for [Numerical Python - Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib](https://link.springer.com/book/10.1007/979-8-8688-0413-7) (ISBN 979-8-8688-0412-0)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "\n", "mpl.rcParams['mathtext.fontset'] = 'stix'\n", "mpl.rcParams['font.family'] = 'serif'\n", "mpl.rcParams['font.sans-serif'] = 'stix'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "from scipy import integrate" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "import sympy\n", "import mpmath" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "sympy.init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Simpson's rule" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "a, b, X = sympy.symbols(\"a, b, x\")\n", "f = sympy.Function(\"f\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "#x = a, (a+b)/3, 2 * (a+b)/3, b # 3rd order quadrature rule\n", "x = a, (a+b)/2, b # simpson's rule\n", "#x = a, b # trapezoid rule\n", "#x = ((b+a)/2,) # mid-point rule" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "w = [sympy.symbols(\"w_%d\" % i) for i in range(len(x))] " ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "q_rule = sum([w[i] * f(x[i]) for i in range(len(x))])" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle w_{0} f{\\left(a \\right)} + w_{1} f{\\left(\\frac{a}{2} + \\frac{b}{2} \\right)} + w_{2} f{\\left(b \\right)}$" ], "text/plain": [ " ⎛a b⎞ \n", "w₀⋅f(a) + w₁⋅f⎜─ + ─⎟ + w₂⋅f(b)\n", " ⎝2 2⎠ " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q_rule" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "phi = [sympy.Lambda(X, X**n) for n in range(len(x))]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ \\left( x \\mapsto 1 \\right), \\ \\left( x \\mapsto x \\right), \\ \\left( x \\mapsto x^{2} \\right)\\right]$" ], "text/plain": [ "⎡ 2⎤\n", "⎣x ↦ 1, x ↦ x, x ↦ x ⎦" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "eqs = [q_rule.subs(f, phi[n]) - sympy.integrate(phi[n](X), (X, a, b)) for n in range(len(phi))]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ a - b + w_{0} + w_{1} + w_{2}, \\ \\frac{a^{2}}{2} + a w_{0} - \\frac{b^{2}}{2} + b w_{2} + w_{1} \\left(\\frac{a}{2} + \\frac{b}{2}\\right), \\ \\frac{a^{3}}{3} + a^{2} w_{0} - \\frac{b^{3}}{3} + b^{2} w_{2} + w_{1} \\left(\\frac{a}{2} + \\frac{b}{2}\\right)^{2}\\right]$" ], "text/plain": [ "⎡ 2 2 3 3 2⎤\n", "⎢ a b ⎛a b⎞ a 2 b 2 ⎛a b⎞ ⎥\n", "⎢a - b + w₀ + w₁ + w₂, ── + a⋅w₀ - ── + b⋅w₂ + w₁⋅⎜─ + ─⎟, ── + a ⋅w₀ - ── + b ⋅w₂ + w₁⋅⎜─ + ─⎟ ⎥\n", "⎣ 2 2 ⎝2 2⎠ 3 3 ⎝2 2⎠ ⎦" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqs" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "w_sol = sympy.solve(eqs, w)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ w_{0} : - \\frac{a}{6} + \\frac{b}{6}, \\ w_{1} : - \\frac{2 a}{3} + \\frac{2 b}{3}, \\ w_{2} : - \\frac{a}{6} + \\frac{b}{6}\\right\\}$" ], "text/plain": [ "⎧ a b 2⋅a 2⋅b a b⎫\n", "⎨w₀: - ─ + ─, w₁: - ─── + ───, w₂: - ─ + ─⎬\n", "⎩ 6 6 3 3 6 6⎭" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w_sol" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{\\left(a - b\\right) \\left(- f{\\left(a \\right)} - f{\\left(b \\right)} - 4 f{\\left(\\frac{a}{2} + \\frac{b}{2} \\right)}\\right)}{6}$" ], "text/plain": [ " ⎛ ⎛a b⎞⎞\n", "(a - b)⋅⎜-f(a) - f(b) - 4⋅f⎜─ + ─⎟⎟\n", " ⎝ ⎝2 2⎠⎠\n", "───────────────────────────────────\n", " 6 " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q_rule.subs(w_sol).simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## SciPy `integrate`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simple integration example" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def f(x):\n", " return np.exp(-x**2)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val, err = integrate.quad(f, -1, 1)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.49364826562485$" ], "text/plain": [ "1.493648265624854" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAAATCAYAAACJKwFWAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAHgklEQVR4Ae2b65EUNxCAlysCwDgCQwY8MoAMMEQAZADFP/5RkAEQgcEZABEAlwE4AmMyOH+fdnrQzGp3endnzy57u0o3erRa3a1+SFq4cHZ2tjjCUQNHDeyngadPn16Cwl3KQ+rXN1Fj/HPgXNyEeBw7auCogWkN4EzXwLrVYeqIawHcRwyKX+DogKGJ4/eogR01gFOdMvWU751NJBjXSb/WOCd141g/auCogcNoAOczM5r53tcrnKsDwkSfeoMJGaNcifb/+XvUz3969x+wvy/GEg6OoJ0BvAXpOvXvY+SpNnOej3B+o8/0HPCBtpEg+uK8PLi0djhPwPuT8jNFvLf0D6IHbR33MUW4QflGeUx/0Le/wCFoShi6UzLH+i9LZfnnMp/7zB3rOKWfio7rG9TW7hnj6i6jyxTeNmvXuNY7Xn2keDgem6Pd0V+ri46H2C9t6yrlOfMGx8I5eKlpQN+j6e91X9QvMqjiX1M0Xo1462wEDee8o6jc4iR8VYRFIQNcw6LRKLRMPQN3bIgqZbBJ0qOYLYsgfF1TvF/5FqCucn1huk0ZOCv9s9KEfkpm8NTvZ8pL6iUC8lX+P/ga6OrNT+mHOdvs2aTc8CKk8LZce0n5x1/t4fRHc//aNvyA6z5ob2FDZW9oay9lH/i6N+GkmxjU1uu9a+KCo51cXoerA2r8xYipD15omhTbnSr2PfNro1e4MYNeVHuHaZFi/AH9KmoM9+n4QIlIopLs64G5Zj/ny89PMXAImt0aGZkNbm5Af/ygrh4+0W/2rgPNpH7AXzA3tWfgpXSZxdtmbXFrYA1ta3bYUhd9AJcR51K0J08nt7s+A0Sp254B9IOrrBNObdu1bX88sbEPQMj0atSIo2AhR79RZRdBzJgbnbQssHz2/Ys1ikBdnx+DwPheOSvNLWVWP+NAJJ9utA5ySMjKncXbiVf0pX0YNCz/FGhTrez7kf5bDTuahU/oGlRNDKVANByxZOK9HRCC3i+MJHMp16OsCnlHqZ1Lxut7lI72dcO69dy5aaZkrvj/Bq9j8A6yAEfjPBRk5c7i7crnPeR8tevkmeb5E0BrH8JuHd8JkO0KRfvULqx73VjJ+PQZcMOGX9O+M3iE2Wn1ZfbTyzWkexQNy4i68mhC36JjIpxDPJntIxN1j3UeC8wcZjgzq3g6ZBw/F9TXZcli0IwfkqZrTMoMDwYmUBeX/TMCH5eEwRj4btJa/ZQZyT/QyuoyhZdcdoAGDxpiGN1g7Lwa8BD63LTkYB82IY7HoO8JZ3ACHOPYBs8gNAhEe2XAkWA3aJtmX1C81+iAOlENKuJNh+OdyKjho8kg+tDWueLOJM4NSu9Q1JvAPB3jCmVFGXPRhE69mRmZDRryNAZ5FeqxlH6W03J/s3Jn8XKrLrGgqWwGodYRfBtS++KGc31vEIqsWO9rA+0wXSczkb2GkgeeDd03FNNsLxh174W9Eqi7MR4lBxGS/nBcM5/jGusX+geOSt8YfHx5BV44bz9+AJopmWGgPBTVvFNXntBDGMCC/pR+eqESFWimdJnFSyxZo/hSOLaLevzfVI8TybnytJcDotwwolaE8yVT5zN7bQLnem4umYCvRzAN0WzqHc+HnDhulp8iWsTA04k9StWvigWVvtloQmsrmTv8X5SB+iOKGV1ZvfwLLd0tR5Z/B/qpB6bqrJWSO4s3tV493tEcBNZ6fKrO/EuUM0rrRXxq+ni8D3LjAdqRHcudvDF+0K69HLDjTAMJo2wxG47lHW6TMnVWQQMdHCGZ5zHObCjOShZkXENb8F1xPvuBuWmmZF4uXfjyGGY28HhuYAl5RCkOSF9WP0E2883KncXLrLlAFvdcByqypSaNkJirTTn/02ho62ZHy3lhYzWN6NuZ15rYtvWL205o4Mt4cbLGmF0hmJmwFYlKBEJJPmqoDDdO5Q+APrOhhhsRq4zT5xHL31l656MeTu+c2WmyXlbmwuOaP+rDjB2yTupnDZ1md1buLF5zkfWd6v8mtL0S1ODR29OO/e7NINDWiNYZN+jOBV5lWnYa9uT4ucPJDCsaPVuC+c/LjPwhmHezlkLNaAWHcY3ROS16DJUIFvQW4LmhbvR4I3XK4uyMzU4T2lmZ5fEOZfB7JW3lk/ea70n9gJ8G1kjJncVLLwwiNA0sHrkHhSF5irFa9m3I74qr0xvkxqCdGvzl7dwh7YAwaGZaOZPTp0OoVI2ygLhU7lLKA8Syt/zcMLgTgBe/lcQdT1TrK3c9cD1mekwrGZWvRqxS5cufMqLY53GvVuisNKGdlRlWSnAaZ371II+nInRQ+I+GX8Zb+qlRpuopuSGSxZtab2pcu7CcO6BLH4O+8TU4F6DestMYPpfvBf9HPIwUQ2ZFI4RMaeQax0fG+hdF6l/o09n64x7tAvTpgKFc0/oz+moDW9DWaSLyiaNheif6zrcH2maHJxTHA3TKOvt5nxSvBUY0I1sPB6I5KbMMsHYfnGiqo4Es4gjgpfTT4Wb3bFKXHb0U3jZriysglwFH24r9ch8Npr1t0d4ZoJPVhbrXruLB5Sb1FTvdmZEdJv4Nw7meCuUKE8kAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 1.65828269518814 \\cdot 10^{-14}$" ], "text/plain": [ "1.6582826951881447e-14" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "err" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val, err = integrate.quadrature(f, -1, 1)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.493648265645$" ], "text/plain": [ "1.4936482656450039" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 7.45989714445727 \\cdot 10^{-10}$" ], "text/plain": [ "7.459897144457273e-10" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "err" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extra arguments" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def f(x, a, b, c):\n", " return a * np.exp(-((x-b)/c)**2)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val, err = integrate.quad(f, -1, 1, args=(1, 2, 3))" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.27630683510222$" ], "text/plain": [ "1.2763068351022229" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAAATCAYAAACJKwFWAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAIVElEQVR4Ae2b2ZEUORCGmwkMGFgLAA8W1oIFDzgsADxggzfeCPAAsIDDA8ACDg9gLQDGg9nv0yo1qqOr1NPVsftQGSFKSqUyU78yJVX1cOH09HSz0orAisB+CDx58uQYDXcpD6lfn9JG/5eQuTgluPatCKwIzCNAMv2O1M0saSJuJWQf0al8ojUBA4n1uSJwTgRIqq8M/crz9pQK+k3S77XMUd1Y6ysCKwKHQYDk82T05PtQW1gTsEaDOkCV60F0CR7larTXZxsCK5YdnB6Ax/MOh0bnCpoBewv/OvWTvnBrO+vxZfTh2JhWO8g9641/Dc/jvhDtF6Wx2Vymfh/ewHd47kCPKT8ov1Fsv4Xf2ZHgfcyyYUc5qfNijYwJ+Vfq2Wxu8PxpG36My10pqZUNLNRn+9mI7TLGCv1uBqM40tc6n6Qz65pdW+RmMc++teDehGVycIF/WuZYzc84uEZxHTrXwgVc6ahAv1fTdx1mblyk04V8RTGADKQldnoXuhOIu9hBVh/eUwy+lCA81WkRtA1t/f5CeUE97Sw8Ddi/ebqB9EEV6EgCxJIOE9DTrQZHHCzqUod9T5E54ZmIeiTQnYpn4Pp16xalJDV1/TQxi23qD+C953mHUtsOdfEc4BgdPGfng+7mtUV2FnNtZ52tuM9iWc3nXNUd56jfrmXCPObC0zVL8cLTde9vQmO+GZv9GBvIISOul7fJmoAGVgok6p0vNANtDYysYyC5ox0D7wNjSiDTNpjqCbtpOLFyrFP3RfgzfE+mfsALfp/uw/hIqZNAHSWx+gNy2wVybCHGmGQmlr5fKh2bjTyvHyZc2HkDzxPEEzl4VM8IWddilLKd2fkgt8vatmCuP824I9uC5egcW5mtc8yYdTZbx1LE37W4pU3aHhypbnsBMm6voTeS2rZ2bH/qXEHt2IdQ6u7holvORejwuFbPn7UC+H1QlBOsPskzeEsCUvfUVOdLyhLk16xf+HSJUs/VDeM2vKuU2Cz0p4OJYyiwx4m+ORwXnQ/2WjHX4V1wH5/gf8N1Ux2Ll0/wH4GByVmv5SJeolObxS5tT0Q35XSrOlrEypmSexjYN8g9FQzQrWDQd5xN/jwzXWo/rCFjEAd5nb0Jz1MoxtrnLuTutyuZaN/Rtc3HYgMZT3ITtZzm1A1iaZvtORyXns8s5jqL3zGvVtwd9n8hN80xv2MN7T8XgYsbrrEkjtZ9LRrcYOCZeLHmr2jfvnguiyODssFQPiLRzDJxvLr4vEcxodzxywcT+uIEuQy/T35gkUof8iaBVw0D35PLK6o662shzX+JfoGKYFNOQOtdbNsVVZ83taztmuhzoV0s3yEGmxU8F24SR2R2mk9tf0tdvycxdxx2d8I9j5nEUplDE37HWk6ZKvEyJTTWh35vO/FBbkwk8ZBzvTtrvsgJiGKPVRcnrl1bnZjqYHwN1A3avlc9p3idNAHj5FCNCaXdPqUkgNnpY6xJE++LJsANSkkq6kH68CbbVV5ZP65M7pD0a1ebowthPyWuxtr9TOkQ/c04Its6n46NfgM9u2Du8F1wPxeWfR8XaEdynYzoilOxxmFE7DCso4XUju7me+g2WDs7Bbr8cOGxHUCljyC0S2JQNwkC5AA2uUFfJK8nmtdBZb/V4xWk7Rex0GHbTUX5yVOJfj9ivEQ+kpzmGcH3hHEzMXFeU0zq8CkEm3Gsxk7OJxQ3PFswV00z7vh4Xiwb3F1cJG5OiyueUrh3AgJyfa+dsjXbh64I/LGT1K9+Jp8n1ybLXqHqp3xfoj2pPEF8qZaKDvr00WDwRPXdzQ86cY1MP0U4YILU5d1e/QOCb3J6Law//AzkgoGcp4hzLbbhNeOYZfeZT7iyQVcz5g7K8k24FyPdyiSWIYqdY8opZexrb4i1PjubcW9QnI7p20Gv7+DNvd4BAceAFKgS7At4rK4IijF1JQmwq1wn6OHFSVX7ZHIaNIWQe0fx9PhG8RS17ccNf9ro/OgOL+g4KvFE1sTZ8Oz4UfV70trvtbMmr6DavZn7dsGxaT61sZl6M+bqwd9Z3JHZGcvaR21Q9GtwVa/lWupZl6KD9at4dby0qF1EZq8ExAOT4Q8m6PWrJoPOE0O+J87oe1E9oKoLREmyih/VOaA8IT2NDJINT0E3uFNbXhA8ffM0il3QsWO7ZepHtpNEtL1C+htPST7qyXee6tZ22sGp93+yoKtQM45ZZ+t8ioGZyr6Yq76De243YznmH3N1g1yKfI0Yi6tY+/KVeimDLXr2SkAA0umB4/B/yecZ17wWX0LG3d3ds0+eSu6KyR5Pg/8V5Qr1SDYBNvnLCWZfLm4IY8lrksQcfIcb2yw8qUKGakps7bj59OX1K72/Zrv6VjYE6kEGrBR9Hf12MH6AY+jk2TIf1bRQE+Yqwm4T7og2Y9ni4AIyHgbOs0/Giu/nKYb6nYduH7UawEF33dY7uUFt2ZmwYSAalAUsbcO7S0kfALJSk62/w3r99ENG56SC50ZQ3reoJ0LO66M/RURi+nNDXGFDJn7PKZsJMtp2QcUkjclPedqvF9ME7Wwo9BvEzqkvC6tDylj61Dqf/rjRNv60Yu74VtybsBx16ABM5uim+DNjnyxQF9t+XB3A+naVF/wf8TiSggkxd2WdMiAN4k/0la961H1fMjnKlYt2IfgGrzo8HSQX1gBPOng22XEgsiZgBJ/XhKfwOomVZRSXlDXJBieJnfD16TGlTtqBPHIGWJxq2lXejzcnPBNR91oZc8zc8nA3LSewXNqeoCWBqWtj6x9jIz+JI2PV2TqfRTHPtsvmSHsr7vg4i6X69iXsNM0ROX01BuKDyx/UB3G1rz+7jP8HuvOBYQsjTT4AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 1.41698523481695 \\cdot 10^{-14}$" ], "text/plain": [ "1.4169852348169507e-14" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "err" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Reshuffle arguments" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "from scipy.special import jv" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val, err = integrate.quad(lambda x: jv(0, x), 0, 5)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.715311917784768$" ], "text/plain": [ "0.7153119177847678" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2.47260738289741 \\cdot 10^{-14}$" ], "text/plain": [ "2.47260738289741e-14" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "err" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Infinite limits " ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f = lambda x: np.exp(-x**2)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val, err = integrate.quad(f, -np.inf, np.inf)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.77245385090552$" ], "text/plain": [ "1.7724538509055159" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.42026367809449 \\cdot 10^{-8}$" ], "text/plain": [ "1.4202636780944923e-08" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "err" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Singularity" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f = lambda x: 1/np.sqrt(abs(x))" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "a, b = -1, 1" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/dw/s8n_0fz93_517nztg9jpvkb80000gn/T/ipykernel_24799/525825373.py:1: RuntimeWarning: divide by zero encountered in double_scalars\n", " f = lambda x: 1/np.sqrt(abs(x))\n", "/var/folders/dw/s8n_0fz93_517nztg9jpvkb80000gn/T/ipykernel_24799/3799611134.py:1: IntegrationWarning: The maximum number of subdivisions (50) has been achieved.\n", " If increasing the limit yields no improvement it is advised to analyze \n", " the integrand in order to determine the difficulties. If the position of a \n", " local difficulty can be determined (singularity, discontinuity) one will \n", " probably gain from splitting up the interval and calling the integrator \n", " on the subranges. Perhaps a special-purpose integrator should be used.\n", " integrate.quad(f, a, b)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG8AAAAVCAYAAABIfLDHAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADhUlEQVRoBe2Z7XETMRCGDw8FGOjA6cCQCkg6SNIB0AFMftn/GKeDJBVA0oGTCpjQAaYCwB2Y91GkjIyls04X5HPGO7OWtFpptXq9+rpqsVhUPo9Go4Ff3uWX52dT8xHCpVd5NB6PP6o49ES7bHdmYGDxeRjRM/5JkCqOlOwr/WTLgHgqHojJz1S3p3SJJJtK8EbcF8/EN5J9UJpE0i1iJzaYUvYfw476ILjA4Rp/DHgqMPG3Sl8j9EkyJvdSTHqt8rFfT14y2t8pXQH3X91YWW2L2Nm0/bZ+qv2dfHirdO6WzYkE5xHH5rYOtI/UiAhdIjqS4GZJ2LxQyk5sZKXst7UDTuBVOfBOBMBFzCsrf6cUw5fS7a/RbVNdyk5sjKXsZ9mxOIFXv6efA3nBXlVL0gM4lkyAu6pVblFZyk5siKXst7QDXifP9QMgSUueDHIYIULfK4XXRWuFnvRdpL5SHvosOX+GIKmusZ1gR5nCHPuF/QSvQ5ZNToo/Uv3UIDlJgvy58pxEo6R69kfWZw46Z2JOsgB5K64l6Sbbqe0os7KJfemW9hO8BoDHZP5u6KM7ceYsn7QZyuFa4O142thp6FJQvY39/+knePUB76U4uoSFXNLEf5f8TAwI3D2CpDoi7oWYu0lfzP56GFQOCKWfZCfQ9FFEqfalV9pPVj4TeVmOasAsgXQyUT4aRaoDNI633BWJ8m/iZEq1k9xhQ8VU+4X9NAFH5AEAk5pDblnhlWWF5BB7wU/xlfLHYu6K2GtKtXaadpahX2t/A36arQ7wWD+jkaO6KLAaNMsaEUj7UB9E21fp+adZ/jWGJPf3vjZ2KvUVbe/srUmj7dV3Z/y0PjCHM8BjYPtWGEoAJfrsJcfY++gjRKEJGVpF6jjpOsq2Y4H7o5Sno1zKti+DRfz0HOMZc8o9jyVv5WlME8Ekc8znkFGpTMr9zDyKIvOIZcU8aHsyshg5VRvzoKo8E8TdkPseUflFzJ7IGLLtqP1cbJZ/pfQ3V39JJN2t8dNziLmauIdp7g3sSbEI8tp1N6vxs8dywU8Gr7vehEcm3wiAqdK9nlUhwpI/44S77YSUT1pPFjg7w6xw4HX/MC2HWcr42AeqW0kaO/vOr60cfOKgLT7gZJ4lXeTRnH1rZe9L7LcLary0c3h6ygQ+7tpy/zHWeWuRPXDIOvku3fwMCBMe+NnPH+7JfwFBhFKPBJMzcgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left( \\text{NaN}, \\ \\text{NaN}\\right)$" ], "text/plain": [ "(nan, nan)" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.quad(f, a, b)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 3.99999999999998, \\ 5.6843418860808 \\cdot 10^{-14}\\right)$" ], "text/plain": [ "(3.9999999999999813, 5.684341886080802e-14)" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.quad(f, a, b, points=[0])" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(8, 3))\n", "\n", "x = np.linspace(a, b, 10000)\n", "ax.plot(x, f(x), lw=2)\n", "ax.fill_between(x, f(x), color='green', alpha=0.5)\n", "ax.set_xlabel(\"$x$\", fontsize=18)\n", "ax.set_ylabel(\"$f(x)$\", fontsize=18)\n", "ax.set_ylim(0, 25)\n", "ax.set_xlim(-1, 1)\n", "\n", "fig.tight_layout()\n", "fig.savefig(\"ch8-diverging-integrand.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tabulated integrand" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f = lambda x: np.sqrt(x)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "a, b = 0, 2" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "x = np.linspace(a, b, 25)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "y = f(x)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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LYq7LFPdBxxQbEyQAs1ll77wCp/FELcAAHhHvU0g2KdPH/Xq1UvLli1z+35WVpZ69OhR58+ZMWOGbrjhBiUnJ0uSxo4dqz//+c+aP3++JkyYUKH9G2+84bJst9u1cOFCrVq1qs59AeB9drvjToe7gb8d6ww9+2xZ2DApIKhYUT22qV2f79Wl/y517n7uomFuQz36zB6Ds5Q86CeGuAUAoB7VW/CwWq3q3r17pe+vW7dOH3/8sf785z/X6XNWrVqlv/71r85ls9msfv36KT093W3w6Nixo8vyZ599psTERF1yySV16geAhrFmTXVD3DpCR+yV65R83VolX35Y0S1byGwyn3+vdsPcMsQtAAD1q8ajWlXm1Vdf1b59+1RaWur2/XvvvVenTp3S5MmTa/0Zx48fV15enmJiYlzWx8TEKDs726N9zJs3T2lpaRXWz507V6mpqRo0aJDGjx+vXbt21bqfAOqmrFbj+eelP/zBs20GXpejwcPOql2riPOhAwAANCb1dsfjqquuksVi0T333KMnnnhCiYmJkqT8/HytWbNGn3/+uRYsWKCioiJNnz69Vp9x9uxZSZLFYnFZb7FYnO9V5eTJk0pPT9ecOXNc1ickJMhqtWru3Lkym8168skn1a9fP2VmZiouLs7tvgoLC1VYWOhcttlsNT0cABc5e1b68ktp+XJp+XJDu3fXbAZwhrgFAKBxq7fgIUmXX365fve732nkyJHq37+/srKy9P3338tut8swDJnNZt1333213n9YmOORiYt/8Jctl71XlUWLFumGG26Q1Wp1WX/PPfe4LD/++ON69dVXNXv2bE2bNs3tvqZPn64nnniiJt0HUM6+fdLHH0uffCJ98YWhgoILtRrmwGK1uSRTMZd+r58//qXOnbKKIW4BAPBf9RY8nnzySb388ss6duyYDMPQ9u3bJUkdOnTQzTffrCFDhujaa69VmzZtav0ZUVFRslqtys3NdVmfm5urTp06Vbv9vHnzPLrbEhAQoKSkpCoft5o8ebIefPBB57LNZlN8fHy1+waaIk/n1ygtlTIyHGHj44+l77+/+F2TwtocU7u+GYq/4kf16J+rtq3CZDaZldVlBUPcAgDg5+oteMyYMUNFRUW66qqrlJKSomuuuUZdu3bV448/rpSUFP3mN7+pl88ZOnSoMjIynMuGYWjz5s167LHHqtwu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HNaNv5w/issBAAAAeB13PAAAAAB4HcEDAAAAgNcRPBqxpUuX6oorrlBKSoqGDBmizMzMKtuvXbtWAwcO1JAhQzRw4ECtWbOmzvv0ZzU51vT0dN18880aOnSorrrqKo0YMUJbtmxxaTN16lT17dtXqampztcvf/lLbx+Gz9Tk/M2bN0/du3d3OTepqak6d+5crffp72pyrOXPW2pqqnr16qWEhARnm+b2/SsqKtLkyZMVGBioPXv2VNue65+rmpw/rn/u1eQccg2sqCbnj2ugq/fee08jRozQsGHD1L9/f40ePVrZ2dlVbuM310ADjdK3335rhIeHGz/99JNhGIYxf/58Iy4uzrDZbG7b79mzx4iMjDS++OILwzAM48svvzQiIyONPXv21Hqf/qymx9q5c2fjX//6l3P58ccfN6KioozDhw87102ZMsV5fpu6mp6/N954w3jjjTfqdZ/+rKbHOmTIkArrHnroIePhhx92Ljen79/u3buNgQMHGuPGjTMkGbt3766yPdc/VzU9f1z/KqrpOeQa6Kqm549roKugoCBjxYoVhmEYht1uN8aPH2907drVOHfunNv2/nQNJHg0Urfccotx2223OZftdrvRrl0748UXX3Tb/sEHHzQGDBjgsq5///7GQw89VOt9+rOaHuvtt99u2O125/LRo0cNScbChQud65rTRa+m58+Tf3T5/lV+rNnZ2S7LJSUlRkxMjJGZmelc15y+fz/88IPx888/G1988YVHP1q4/rmq6fnj+ldRTc8h10BXNT1/XANd3XrrrS7LGzduNCQZX3/9tdv2/nQN5FGrRmrVqlXq37+/c9lsNqtfv35KT0932z49Pd2lvST179/fpX1N9+nPanqs77zzjszmC/85hISESHLcKm6OvPFd4ftX+bF27NjRZfmzzz5TYmKiLrnkEq/2s7Hq1auXunTp4nF7rn+uanr+uP5VVNNz6Am+g5XjGuhq8eLFLsvV/TfpT9dAgkcjdPz4ceXl5SkmJsZlfUxMTKXP+GVnZ1fZvjb79Ff1cazr169XaGiobrrpJpf1c+fOVWpqqgYNGqTx48dr165d9dbvxqK252/ZsmUaOnSorrnmGt12220uz4jz/avZsc6bN09paWkV1jeH719tcP2rX835+lcXXAPrD9dAV+vXr1dsbKwGDRrk9n1/ugYSPBqhs2fPSlKF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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(8, 3))\n", "ax.plot(x, y, 'bo')\n", "xx = np.linspace(a, b, 500)\n", "ax.plot(xx, f(xx), 'b-')\n", "ax.fill_between(xx, f(xx), color='green', alpha=0.5)\n", "ax.set_xlabel(r\"$x$\", fontsize=18)\n", "ax.set_ylabel(r\"$f(x)$\", fontsize=18)\n", "fig.tight_layout()\n", "fig.savefig(\"ch8-tabulated-integrand.pdf\")" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val_trapz = integrate.trapz(y, x)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.88082171605085$" ], "text/plain": [ "1.8808217160508505" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_trapz" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val_simps = integrate.simps(y, x)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.88366510244871$" ], "text/plain": [ "1.883665102448715" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_simps" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val_exact = 2.0/3.0 * (b-a)**(3.0/2.0)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1.88561808316413$" ], "text/plain": [ "1.8856180831641267" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_exact" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.00479636711327625$" ], "text/plain": [ "0.004796367113276245" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_exact - val_trapz" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.00195298071541172$" ], "text/plain": [ "0.001952980715411723" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_exact - val_simps" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "x = np.linspace(a, b, 1 + 2**6)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABkklEQVQ4EZWUTU7DQAyFQ+EAEUcINwgcIBL0BvycALgBhVWyQz1CywmgLNm1lbJh2exgR7esQLlB+N5oHEZRiool1/bzs8czk2nUNE30H83zPO3ywWI0Eb4XdaQoinEHegSrAmxJHBMbJl9yqJ+2IaSEeI5e4y+UxM4w0gPFXr6x0hRdo8/oPdwa+9sQX4ULa6YkotVVFEoF5ywEQt9NCOEUUCseh0nwYRhv4w886Q5b08CNvU3hJo6doabTVmQv0C9U5zYDc+eJ3wrYFYFdhngTMHdJuz5xi/2UkhhnWfaKvpRluUI/8N/JOSFWM2jFUjxi5d6wqlnblkVOIU3lBPKE/wBu00T4Q7Q9GnxdmnYxUd0gSHZvU/kVqmZHCv4Q1Sb0SmxCAe2qPYX6RiMK5qgW2SRx2LDdVg/bptekfbx91bBYZQ313NwUSgSi56TPyW56iq9b7coJgOO4hr5Ar6R9x/ia5By9DKr1ebjDN4z4xvvu9ezoH8LEN7QtaRt6o/Yn4GjE2snI14ijdz0Cr4X9ANE1yO1A5cbmAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 65$" ], "text/plain": [ "65" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(x)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "y = f(x)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.000378798422913107$" ], "text/plain": [ "0.00037879842291310695" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_exact - integrate.romb(y, dx=(x[1]-x[0]))" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.000448485554158218$" ], "text/plain": [ "0.0004484855541582178" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_exact - integrate.simps(y, dx=x[1]-x[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Higher dimension" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def f(x):\n", " return np.exp(-x**2)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 144 µs, sys: 35 µs, total: 179 µs\n", "Wall time: 183 µs\n" ] }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.882081390762422, \\ 9.7930706961782 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.8820813907624215, 9.793070696178202e-15)" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time integrate.quad(f, a, b)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def f(x, y):\n", " return np.exp(-x**2-y**2)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "a, b = 0, 1" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "g = lambda x: 0" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "h = lambda x: 1" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.557746285351034, \\ 8.29137438153541 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.5577462853510337, 8.291374381535408e-15)" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.dblquad(f, a, b, g, h)" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.557746285351034, \\ 8.29137438153541 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.5577462853510337, 8.291374381535408e-15)" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.dblquad(lambda x, y: np.exp(-x**2-y**2), 0, 1, lambda x: 0, lambda x: 1)" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(6, 5))\n", "\n", "x = y = np.linspace(-1.25, 1.25, 75)\n", "X, Y = np.meshgrid(x, y)\n", "\n", "c = ax.contour(X, Y, f(X, Y), 15, cmap=mpl.cm.RdBu, vmin=-1, vmax=1)\n", "\n", "bound_rect = plt.Rectangle((0, 0), 1, 1,\n", " facecolor=\"grey\")\n", "ax.add_patch(bound_rect)\n", "\n", "ax.axis('tight')\n", "ax.set_xlabel('$x$', fontsize=18)\n", "ax.set_ylabel('$y$', fontsize=18)\n", "\n", "fig.tight_layout()\n", "fig.savefig(\"ch8-multi-dim-integrand.pdf\")" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.732093100000809, \\ 1.6564972931774 \\cdot 10^{-14}\\right)$" ], "text/plain": [ "(0.7320931000008094, 1.6564972931774035e-14)" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.dblquad(f, 0, 1, lambda x: -1 + x, lambda x: 1 - x)" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def f(x, y, z):\n", " return np.exp(-x**2-y**2-z**2)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.416538385886638, \\ 8.29133528731442 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.4165383858866382, 8.291335287314424e-15)" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.tplquad(f, 0, 1, lambda x : 0, lambda x : 1, lambda x, y : 0, lambda x, y : 1)" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.416538385886638, \\ 8.29133528731442 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.4165383858866382, 8.291335287314424e-15)" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.nquad(f, [(0, 1), (0, 1), (0, 1)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### nquad" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def f(*args):\n", " return np.exp(-np.sum(np.array(args)**2))" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 589 µs, sys: 71 µs, total: 660 µs\n", "Wall time: 664 µs\n" ] }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.746824132812427, \\ 8.29141347594073 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.7468241328124271, 8.291413475940725e-15)" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time integrate.nquad(f, [(0,1)] * 1)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 10.4 ms, sys: 542 µs, total: 11 ms\n", "Wall time: 10.8 ms\n" ] }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.557746285351034, \\ 8.29137438153541 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.5577462853510337, 8.291374381535408e-15)" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time integrate.nquad(f, [(0,1)] * 2)" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 207 ms, sys: 5.22 ms, total: 213 ms\n", "Wall time: 211 ms\n" ] }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.416538385886638, \\ 8.29133528731442 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.4165383858866382, 8.291335287314424e-15)" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time integrate.nquad(f, [(0,1)] * 3)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 4.28 s, sys: 27.9 ms, total: 4.31 s\n", "Wall time: 4.32 s\n" ] }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.311080918822877, \\ 8.29129619327777 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.31108091882287664, 8.291296193277774e-15)" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time integrate.nquad(f, [(0,1)] * 4)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1min 31s, sys: 695 ms, total: 1min 32s\n", "Wall time: 1min 33s\n" ] }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.232322737434388, \\ 8.29125709942545 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.23232273743438786, 8.29125709942545e-15)" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time integrate.nquad(f, [(0,1)] * 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Monte Carlo integration" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "from skmonaco import mcquad" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2.01 s, sys: 160 ms, total: 2.17 s\n", "Wall time: 2.05 s\n" ] } ], "source": [ "%time val, err = mcquad(f, xl=np.zeros(5), xu=np.ones(5), npoints=100000)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.2315775914499913, \\ 0.00047512221420657915\\right)$" ], "text/plain": [ "(0.2315775914499913, 0.00047512221420657915)" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val, err" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.93 s, sys: 101 ms, total: 2.03 s\n", "Wall time: 1.96 s\n" ] } ], "source": [ "%time val, err = mcquad(f, xl=np.zeros(10), xu=np.ones(10), npoints=100000)" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.0540332249061147, \\ 0.0001721803643623528\\right)$" ], "text/plain": [ "(0.0540332249061147, 0.0001721803643623528)" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val, err" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Symbolic and multi-precision quadrature" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "x = sympy.symbols(\"x\")" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f = 2 * sympy.sqrt(1-x**2)" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "a, b = -1, 1" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sympy.plot(f, (x, -2, 2));" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val_sym = sympy.integrate(f, (x, a, b))" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAJCAYAAAAGuM1UAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAuUlEQVQYGXWPIQ7CQBBFW+AAnIEjNOA3gTrOATcgwa0jIJG1KM5ARU9QWYnF4pDlfdjZbEmY5Of/P/Ons837vs9U3vsdtAdT+T9V5VogfAyBG6yFBbiCefA1rFw7hgvwwpydc/emadb4C75DL9G1gswe6GwiAwtWJb1TMLpU2UA8Sg1BXXsmvYJe6ocLBLdAb7eamTCOF/iSfnYDPj9oAfor0+K4gFa4/XmCnlOCWOmCBoc4+YrBNbXekOM5QGb1RHgAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\pi$" ], "text/plain": [ "π" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "val_sym" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "mpmath.mp.dps = 75" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f_mpmath = sympy.lambdify(x, f, 'mpmath')" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "val = mpmath.quad(f_mpmath, (a, b))" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3.14159265358979323846264338327950288419716939937510582097494459230781640629$" ], "text/plain": [ "3.14159265358979323846264338327950288419716939937510582097494459230781640629" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.sympify(val)" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 6.90893484407555570030908149024031965689280029154902510801896277613487344253 \\cdot 10^{-77}$" ], "text/plain": [ "6.908934844075555700309081490240319656892800291549025108018962776134873442530e-77" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.N(val_sym, mpmath.mp.dps+1) - val" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6.08 ms ± 255 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" ] } ], "source": [ "%timeit mpmath.quad(f_mpmath, [a, b])" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f_numpy = sympy.lambdify(x, f, 'numpy')" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.43 ms ± 31 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n" ] } ], "source": [ "%timeit integrate.quad(f_numpy, a, b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### double and triple integrals" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def f2(x, y):\n", " return np.cos(x)*np.cos(y)*np.exp(-x**2-y**2)\n", "\n", "def f3(x, y, z):\n", " return np.cos(x)*np.cos(y)*np.cos(z)*np.exp(-x**2-y**2-z**2)" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.430564794306099, \\ 7.28494733311039 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.4305647943060992, 7.28494733311039e-15)" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.dblquad(f2, 0, 1, lambda x : 0, lambda x : 1)" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.282525579518427, \\ 7.2848958098526 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.2825255795184269, 7.2848958098526e-15)" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.tplquad(f3, 0, 1, lambda x : 0, lambda x : 1, lambda x, y : 0, lambda x, y : 1)" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "x, y, z = sympy.symbols(\"x, y, z\")" ] }, { "cell_type": "code", "execution_count": 97, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f2 = sympy.cos(x)*sympy.cos(y)*sympy.exp(-x**2-y**2)" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f3 = sympy.cos(x)*sympy.cos(y)*sympy.cos(z) * sympy.exp(-x**2 - y**2 - z**2)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left(\\int\\limits_{0}^{1} e^{- x^{2}} \\cos{\\left(x \\right)}\\, dx\\right) \\left(\\int\\limits_{0}^{1} e^{- y^{2}} \\cos{\\left(y \\right)}\\, dy\\right) \\int\\limits_{0}^{1} e^{- z^{2}} \\cos{\\left(z \\right)}\\, dz$" ], "text/plain": [ "1 1 1 \n", "⌠ ⌠ ⌠ \n", "⎮ 2 ⎮ 2 ⎮ 2 \n", "⎮ -x ⎮ -y ⎮ -z \n", "⎮ ℯ ⋅cos(x) dx⋅⎮ ℯ ⋅cos(y) dy⋅⎮ ℯ ⋅cos(z) dz\n", "⌡ ⌡ ⌡ \n", "0 0 0 " ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.integrate(f3, (x, 0, 1), (y, 0, 1), (z, 0, 1)) # this does not succeed" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f2_numpy = sympy.lambdify((x, y), f2, 'numpy')" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.430564794306099, \\ 7.28494733311039 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.4305647943060992, 7.28494733311039e-15)" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.dblquad(f2_numpy, 0, 1, lambda x: 0, lambda x: 1)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f3_numpy = sympy.lambdify((x, y, z), f3, 'numpy')" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( 0.282525579518427, \\ 7.2848958098526 \\cdot 10^{-15}\\right)$" ], "text/plain": [ "(0.2825255795184269, 7.2848958098526e-15)" ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate.tplquad(f3_numpy, 0, 1, lambda x: 0, lambda x: 1, lambda x, y: 0, lambda x, y: 1)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "mpmath.mp.dps = 30" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f2_mpmath = sympy.lambdify((x, y), f2, 'mpmath')" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "mpf('0.430564794306099099242308990195783')" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res = mpmath.quad(f2_mpmath, (0, 1), (0, 1))\n", "res" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f3_mpmath = sympy.lambdify((x, y, z), f3, 'mpmath')" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "res = mpmath.quad(f3_mpmath, (0, 1), (0, 1), (0, 1))" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.282525579518426896867622772405$" ], "text/plain": [ "0.282525579518426896867622772405" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.sympify(res)" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2min 9s, sys: 192 ms, total: 2min 10s\n", "Wall time: 2min 10s\n" ] } ], "source": [ "%time res = sympy.sympify(mpmath.quad(f3_mpmath, (0, 1), (0, 1), (0, 1)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Line integrals" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "t, x, y = sympy.symbols(\"t, x, y\")" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "C = sympy.Curve([sympy.cos(t), sympy.sin(t)], (t, 0, 2 * sympy.pi))" ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAOCAYAAADABlfOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABcElEQVQ4EZWTMU4DQQxFN5ADRBwhtFQR6VOQG0BLB9yAiG47BDfIlukQlJQp0lAh5QbkCJAbLO9tZkbDskLEkjX2H/t7bO/26rouyrIcFkUxQ5VT9BOdga8F9pVDEiR8gOByMpm8otVqtToBW3C+4W/2JT2QEL3KEyngq7foc47/15b0DP2CaNBKWuIPwO1kL5HU5A3JvqxL2sW6Yn5gPRfVJRT5AB9y9uI99i32HfpXoaofE/KT5BG+bccvogBz9soFKukYfUL9WvTt2Lh1Jyl3Lqgi4DEEWuQd/yX4vniO79jcyZIzfX6/SLmch6AbCZSQkJKApmBNQWxfXKFJXFQSAq91OBNhugwGd756m+EjsNwvEikX5wQe54TYLsrZ5mJBZxmlfb8jJdHqY860mJBhIX/ZRrh3IXbTLGWHNp051yT98BIX47CdZ5QjDFuLsxOXcA2Wt6s9RVMhFyWhLTTz5MwlX464yfd5AHYii/g3NPZ/I2AVNSwAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 2 \\pi$" ], "text/plain": [ "2⋅π" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.line_integrate(1, C, [x, y])" ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAlCAYAAACZFGMnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABeklEQVQ4Ee2VMU7DQBBFbeAAFkfIESLoLUE6SiRugG8AorI7REo60lKhHCEpfIKUlG4pSUdp3jezq3WMw4o6I41mdvb/ndlxdpK2bZtIqqq6wzygmdYjsgBXpCLhPBlohRXpHH1Dz2y9xgq3kT1Gp+gXgec8z5u6rq9Yv7J+x7/AXwvM3gd+JyfG7k6w2IzY3HxlXJjvzZH3cAAr6zaITYmF626rRyJSoLqLk4lzQutJnKgG3KLdpR2I+KXznfUkAiJsdspRaTMHdjYkafPRbZjtZXV73Xdyi1gbZorlJAeStepfjUjLsvx5hdENT5LDx41tOe9LT/4lbG7Md1pCOI0mkUEDdCCjmVQWaD33P6dReOoNxMHME+DXTFZW7/LhaQMShAmALbYJgaE/ILFZjJXliD0SYM2+0bIGJCsr21eWI/mnAVjjV7N8V64JqO0anA24+0R/avuUR/qJLkNM7067KWydYaVefHk+Yg5lqCH6+9QvQ6LyVsTn39sRmWv3QZSxAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{\\pi}{4}$" ], "text/plain": [ "π\n", "─\n", "4" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.line_integrate(x**2 * y**2, C, [x, y])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integral transformations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Laplace transforms" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "s = sympy.symbols(\"s\")" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "a, t = sympy.symbols(\"a, t\", positive=True)" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f = sympy.sin(a*t)" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( \\frac{a}{a^{2} + s^{2}}, \\ 0, \\ \\text{True}\\right)$" ], "text/plain": [ "⎛ a ⎞\n", "⎜───────, 0, True⎟\n", "⎜ 2 2 ⎟\n", "⎝a + s ⎠" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.laplace_transform(f, t, s)" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "F = sympy.laplace_transform(f, t, s, noconds=True)" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEEAAAAnCAYAAABQWiUCAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADLUlEQVRoBe2a33HTQBCH4wwFEOjAdECGCnA6CHQQ00EyPNlvjNMBSQUBOiAdJKSDpAMGd2C+T77TCNmWZAWf/KCd2ex57492f7e3J91lsFgsDrqg6XQ65LkX8Bz+Df+AT9FfIpPSoAsQcHSEl9/hY8pPeoz8iVB/RFlgktFhsieFB+HgS4oCcEE5AyBUWX5KDYDPTg4Cz5zBAvENLpJR4JJITl2A8BEvb4szHqLDHOGSSE5JQQjOGgUPJU8F5oD625I+yc+kIBQ8uiuULX6AM2AAwh3CqEhGSUHAObO+zuZOohuH3/fB63foigkzqHcnkm+ROOhyuIaNhtfwDSw4Jkx15ovyckG9O0oOwu5caT9y0uXQ3szd9uxBAN8ehB6E5TLrI6GPhD4SlgjwdzCZTLo5VclN6L7QvywxB31i7EFYLsUX267I8AH0OfQbBnmG3o+gvaQ6m7cGAS9nDPopekv5K+Vf8Juo20NZaXObnDDGcc8DI/kJPET3Nir2UFba3AYEoyAegOyhv2tNqrbZe4fnMO8ZM/ix7Rj0HcHjtv3b9Cvb3CYScqjDEjhFcZwrty940iQnoXU2twaBwYZYbT7wFmlvd4Yispts/md3CI1q7wfjYMgTH4I0Kc6RSQ9ISw46Id5pSp5dfsGefHIoZ5OGXLE5B4FKM77XYyv3g9RdwdmASAdzW/QaLe4IJh7B64Sww0sb7YnH9voiKNlWXmdzBgKNXJMC0OR+0HcC2ytzYozsgbkiUSE4OEIWT6idEP2JVGlzjARR07Ha+0EedhRH3kbSz+hxhsr0SgX160B8QO/FTC3RzmjQcY/ss5CPnfhdaXP2FUmjP3S4L3amLCjqTyjv7HqMsd1dfNlq/X8J9HUSz+FIl+gaL89DGuusXAwnB+v0flADmpIOwwPaGwFO2Hnwq9EQxS3yrtSj0/vBki1rf+Ko3wSPsZLyylKIdVXSSJjTwCgw62eErvP7wWhLjTTHmGtywnaXV76b5RUVhZgY39PmmgFcV/F+0NASaXU38D7SGUa5MxTzge8r65LsRvs7P17D4Gcnxo3eNawo5oSGXf57M5ej3Bn9BYsa80Iz5E9yAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{a}{a^{2} + s^{2}}$" ], "text/plain": [ " a \n", "───────\n", " 2 2\n", "a + s " ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAAVCAYAAAD1neayAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADTElEQVRYCc2X7VEbMRBAzx4KMEkHdgcQOrA7AKcD6CBMftl/kw4IFSTQAXRAQgdxBwF34LwnTpezuDNnuJt4Z2RJq/1e7eqcrVarbFfGbDYbtm1Llcx+tiMwn88/YcpBB+YMc9mF6J6RfQlgGkLzi3HO+ttL9NueI/MYniPm8215m9Aj14AumK+lb5ppnR4wDmVqEzBEuZ/bcFhZjN8M7S2A/Vc26lBXM6chvoV2n/lMppbhC/IuWpI5Ro7XeVEhTx3qaua0hAhaOncAU2S3VTIT7LuvsjHXoa5B0+tdJefNOAwwM1VZea1s5Xkr60Bd0z1PUW7XlMFshnvP/BH8IcP6uGI437I/Yc6Y5RH/jvGD4dWxIQlHjDtorKVNoKxNRqpHvTY4bfvDsBkdR9nM2m3Zabe0B+C0q0q/uiY93jGJryD0ahTA3oYwigj3rO+Zg9Ml/CNrhRVKoDEgdvsR69pMcibNBXPl9QavQzpg8IMc5hv24u0xBiIAawOuH70c9Wzi7BTkWZ+fDw4QOl+G0N5LiDrjf0Izhr/IKutYVxq3CdT5UEWQ26PDPpNl3a59fgqHc/7aei7JV9dgD2avrJtH18xG8pr1Nm+mjldBGsiUxtJIjY80lov8lk4ZDGSaEM/r8GVeAzY004Lvr5nSCJV5tdt6RhD3KpjCZUKKoLA2CNatiSmgDl8Q/FuEIPdhUEjG7DXS+X2GjeGUvbXZJRh5HVkD9IpzxDKJ5wYi4zxtfpboGj6XIboMynww0zpmgQeAeMmwsXiFgrCnk05+LasQ9BrpdwneJhoCgY128Mi7Vs+eQWdWUxC30Gmh+ER72oZfo5JGVFwKVcJTmrq9Dvi8rQFGL0F4Fp3KwJkY97F/+K0eG5z4sAanjXVfZd7kG58sG4CR8kmKTr33EAHWlDfBOo9ZV6kRV5F4+TVSvM1POs/Fa8izZw5cAGRL45NVPI35UQZOWy4ZZlt7vjPUo05x2hazri32ILu9vHVPoD5OGv3LUlBXgIEachId6FCPgTGRo35XSraQa+a6+COTmuAtVFfzPxyphLb2+VW0Bs1EJ5DLVke49ruQaR21B3T5XaBsdQT47zUdDcmzMY7ZiPi3zsiz69v0YqfP/gLRvPFYy2t47QAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\sin{\\left(a t \\right)}$" ], "text/plain": [ "sin(a⋅t)" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.inverse_laplace_transform(F, s, t, noconds=True)" ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ \\frac{1}{s^{2}}, \\ \\frac{2}{s^{3}}, \\ \\frac{6}{s^{4}}, \\ \\frac{24}{s^{5}}\\right]$" ], "text/plain": [ "⎡1 2 6 24⎤\n", "⎢──, ──, ──, ──⎥\n", "⎢ 2 3 4 5⎥\n", "⎣s s s s ⎦" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[sympy.laplace_transform(f, t, s, noconds=True) for f in [t, t**2, t**3, t**4]]" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "n = sympy.symbols(\"n\", integer=True, positive=True)" ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIUAAAAYCAYAAADUIj6hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEV0lEQVRoBe2a61HbQBDHZQ8FeEIHpgMeHZgOwKkgcQcwfPM3xukAUgEJHZgOEugAdxCPO3D+v+NOI5/1RtJIHu3McXfS3t7u3t4+ZAbb7TboKszn85F4n6rNND7rqhxt4/uobQzl5UdGcCrcicXHOHqoSANdNoo36eBNxnFVkS56MlYDtRqFDuy79sGtv6r9VXM3+0TvZpp3EsT7WG3VSeY9puNkGXo4dUx/i+hC7VwM/KBpPIWZOjarm6b4vtEehK5DAQwcmUKozVPYQ/+lnfAWa80fw12DgBxgHZlXPtR+HBzGiPF9sRvgrTZ2DA/ndvwo/Fs7TuyEQ6g6Vo9hdwasLricZxo7+Q3/mr/wXu1K7ZmHuY2ChcJHyVlAJbCigaj+Qt2DW6Q5IWSjPmRO40K0Ha20XjTJOS7tfkuNnzW+9tfoGbxlei3hYUR36jtR5Vh+f4pnLh/GnyijcPHgr2oYyKaIURgli3hRwAjuI4s4GOM1xAAWSrJYlnaEbOIwNfZrb4wYo8kCLkRo3FnIVbwXX+gO9x71srlIaw2XzlwCjfOEPGRDxtkw1w4lkcQM1jlSz6E7QNClnrWpakg1HMs4eVDhw3FCl+zxTrTawcqGjKPcnqIkVxiFiVOR9Vjkpdq7GPDfRdDSh1oLbSoYd5ugC80y8T7VU4gme+QxHKF1GpBxumMUEh738c+Kdaz+Xs9wQ6VAa1+0kBaCnpU5tHC9G4gOAmQmhw4/rRetLOPEDe/I4ehpLQaDkWOkjh+MFT1eqP2pSmbRqhuQ8XLodhHj3JYnBLBCMM+TWDoSh9yTqL0nCEgyizHg5vFWZPG3VoffNF9ojMF0AZBxbIzCMj1RH439CMpHpx4SSmjpi6rJhR4MJ9CzqCd0pXAjeUEFB7UWjd2cQgIhIPUspQkusYcPDXC4cWGU0pvqiUOn+Z6V0BKAQ58Eeo+HMbgejjEqvY/7+su+prrw1nxmSkgem5xCxBEOC6d0cYIQRlyM/MxGB7tW+nGG4nTm5x1cLP/Znj5EJ+7QAz2nQqMkjXqfvfUVPjDGH80piIMDbeAEudEc6+/ho/JI08VXKSnOG3CoeN6gI7pExvVQzJIIhUmUxn3o4BR3gVibliziKXY8gvSIQQTq3beNO+YtBzzFCk+BQMS0EKxA/B7g3GP4roODtBueVxy8AOXlHkhHGAt7PHkvwTfeQzj8/rOjYw+3LVM+4S+P9IeyaSLGo7+U8dtEbJxrC/dZfIj/U+FwO+kBSkWqKZIpvr/EuXvw4oAEPOlQMQqTcHoLweczvvtBkH0bBe1N6MJgTWWknt83kDvp2wkOYjHo8r/jSYDGQMokxF5bpTayr/ZqLNHUXhg3Pz+cDBuR7jA2odxs2nsSvmlNAJWmKal7T1FA3bpFhBHzrwEFlrUe1XqJB/Xm21TvKYodGR+LknKLYpTahY1M4Yew3lMUPBx7q0jMXalZkEK70CUHiTCfIcJE+D8I042Xj5Zv3AAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle s^{- n - 1} \\Gamma\\left(n + 1\\right)$" ], "text/plain": [ " -n - 1 \n", "s ⋅Γ(n + 1)" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.laplace_transform(t**n, t, s, noconds=True)" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEgAAAAtCAYAAAAN1C2uAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEPUlEQVRoBe2a4VXbMBDHHR4DQNkg3QDKBE03SNkAukF4/ZR864MNoBNQukHYoIUNwgb0ZYP0/3MlV1Fky0lJ5KS+9/QknSTf3d93J1t2ZzabZU2h0Wh0JV1ejD5Hqr+IN02p335K4a5sATFW/1L1E3zVPVUA9ol+KtpLJdiVKzC66vcsOGbsUvWjOy9FuzEehPECCC+6V3lQ+wO81NRpSg4SIITTwAHkWjy8KCk1BiCLgkAh9wAM9aH6SZN0coCM5/RVv7UgUavP9pocoCYkaTzlBlAsCZy+2reqk3oP+jTBg46lByC5NBU4ty4jVTs5QKkMryu3CSFWV9ck81qAIrC3ALUARRCIDLce1AIUQSAy3HpQBKDOcDhszolZRNkUw+2DYgT1NsQiAO1Hxnd+WO98BzLyszG0a+pz+6L83wMkQK4ERnHurTYnCxz15scvbYhl2YVAcU8TONnsiscpQ9YC9OeryU/ACBJn0qGi7b8b4m8bb1k7NP9KZWLtDHqQ3IvD89zFgqhuF5NwcT8GlGpvworTzBM7aQEgTWLCkervdtI217LjAf2NXaWmaLyrQfLPidp/j3qtK1HLtQ5UHl3errSxC/tC9ojfVbm3Y2ofw6Pvb/MgOHeAXgr5KwzoTrF7EAKbOH/GLuwrtnRMkGw8hzE+e9u0wpz8m5wfYmcbUlbyc+IhjbJ2MnZhny+PZx5uFLUtbP15mBUeJAaTnlV2mbDvTKXwWNl9WGVwAZAmfVTJE1rVAl0Ql8T9QPhFhWTOh79r1UlIsgkddIGqfpvBPr75FwCxoIrcEHuniZOqyVLEuiKP58QsoOSxrbbvulWXerUxyeWHhzt0MfrQB7AQYR83uDa5AGHgr7KVBgD+vAAYNxRpP4uXx2zZ+nXwJRNje6rzf4qMDLybXBIi7FvqRroh9kaLq4zkrnDxbyou4VWVz0wyAC9jnk/IzDQ+t7OYSU/iE/ZR0ry6v81wM5fyIBegmCIkN/7bKUBUG8AQiIKlpHkhADLxeShlm18pf2kdnstanpTzG0BfJd+iAwrFnGBhyZ7DAV0MXiAJhE9xXZl5gJZpPJrcmbcOAgyVjq5N8kWPgfpBOzQGvzSNaGyBXIBYGHO/H94VCIEcNCnFThZb7y1fvStZbBTFpqJ2nb/S8CA3f0YVcAHC0NPQCgmfis94AYB4F6ZvjwpOxVtKeEjWEjxCitxWkOQTslW/zfASWpkOiouZhpuDWDgn0Jv8Xv2vUoJ451njTgW35k7Co79JOpcwdjBkW+K3mWC+MxMAtewRwF5jvrYvaNR6QZvwouby1tmWrL7KYJ0y7LUlhxfS4pzH8mO1G2IgB7pVd2Ae3X/vEbqUTRA723Leg1Y+gkJ5DNo+f5v7xnvGq9jgexCYsTNV5SLmbBthT62HTt+w4JdVJTp2KxJg7Zc6/8JN6csGdlseAVbaYX8DB0t+WtlA9JsAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\frac{s}{\\left(a + s\\right)^{2}}$" ], "text/plain": [ " s \n", "────────\n", " 2\n", "(a + s) " ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.laplace_transform((1 - a*t) * sympy.exp(-a*t), t, s, noconds=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fourier Transforms" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "w = sympy.symbols(\"omega\")" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "f = sympy.exp(-a*t**2)" ] }, { "cell_type": "code", "execution_count": 128, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "F = sympy.fourier_transform(f, t, w)" ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{\\sqrt{\\pi} e^{- \\frac{\\pi^{2} \\omega^{2}}{a}}}{\\sqrt{a}}$" ], "text/plain": [ " 2 2 \n", " -π ⋅ω \n", " ───────\n", " a \n", "√π⋅ℯ \n", "───────────\n", " √a " ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAWCAYAAABUpxX0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB6ElEQVRIDc2W3U0CQRCAwVgAaAfSAbagHYglaAcSnuDNaAfECoh0AB0YKIEOjHaA33fuHovy+wDsJMPMzu3efjc7N0d1Pp9XcpVer3cH2xV6GWyf2Pg8V+DA9QZkXR9bw3yh1TMDGct1wmbGvx1nBU02J6hwheDPoo99QVvF2JrOQbvdbg0F5T8P8T7ajNdyyvQNWZwWmUx+yLYZbmOnwa9UpT+0sJkvkZtPUH27gZ1ghloOj6idwpodowPiQjq/iUZxfuPg0GwipJu3AogQjuuMhSwE39gzdhhCa80xysMMjwVOKL5T4BD3YczyVtmrT7ORNxZimzwyN775D0y+TRZYu0twzDW26kGSZQt3X2izlQIs7rTCA8bSUOID6Lv+PV7DWiJllkP8ApuucV0pBy2PAJTWrXBmVaD7cF2YBvqhg3Q2ATvhoNBugPhBsGVZJnaKNvr3tN6JNcKcAf5GWeoeLPI4O+hnWGUG3LDMVoif1JQ1DZjH1keL1iQVMY/ThzA72UgBDZzHNkJ969PW5IMYz0pips2wUgP6CesXSxkxXmpPv+HT/kZoMzoE8PW0OLvtnnaPtX1xt1sdb1aEXgtM9v0jk5XE8vDT7D+tUoC1/Rnf5bNdrjuGU/ZpIOMLGHt0hViWNf4DuKgrQW4hb4kAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle e^{- a t^{2}}$" ], "text/plain": [ " 2\n", " -a⋅t \n", "ℯ " ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.inverse_fourier_transform(F, w, t)" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0UlEQVQoFXWR0Q2CQBBEhVgAwQ60BLUCsQO0A+3BP/4MJWgLWgIdGCmBDiB2gG+OW0PIuckyO3Ozu5cj6vt+ZlEURenrFlyRJVojLTIjwht+BZ86ABNA2p66ib14BhMzee0Dqukm7ozggawlTOIFzzTdjBlCNzGJaqoii/1dBvr/m2pi6s+te2y3Lb/V48NQvdBE6woZbFurO9rKJOA0bXhHDBW5DBhtYmXP88C0CRjXaLW2OiPFHaEDczNTa+2RPEmb6+ND3RcMdoUtfAd3f+wLrOY/XeyA6s8AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.fourier_transform(sympy.cos(t), t, w) # not good" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Versions" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "%reload_ext version_information" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "
SoftwareVersion
Python3.6.8 64bit [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]
IPython7.5.0
OSDarwin 18.2.0 x86_64 i386 64bit
numpy1.16.3
matplotlib3.0.3
scipy1.2.1
sympy1.4
mpmath1.1.0
skmonaco0.2.1
Mon May 06 14:55:36 2019 JST
" ], "text/latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 3.6.8 64bit [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE\\_401/final)] \\\\ \\hline\n", "IPython & 7.5.0 \\\\ \\hline\n", "OS & Darwin 18.2.0 x86\\_64 i386 64bit \\\\ \\hline\n", "numpy & 1.16.3 \\\\ \\hline\n", "matplotlib & 3.0.3 \\\\ \\hline\n", "scipy & 1.2.1 \\\\ \\hline\n", "sympy & 1.4 \\\\ \\hline\n", "mpmath & 1.1.0 \\\\ \\hline\n", "skmonaco & 0.2.1 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Mon May 06 14:55:36 2019 JST} \\\\ \\hline\n", "\\end{tabular}\n" ], "text/plain": [ "Software versions\n", "Python 3.6.8 64bit [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]\n", "IPython 7.5.0\n", "OS Darwin 18.2.0 x86_64 i386 64bit\n", "numpy 1.16.3\n", "matplotlib 3.0.3\n", "scipy 1.2.1\n", "sympy 1.4\n", "mpmath 1.1.0\n", "skmonaco 0.2.1\n", "Mon May 06 14:55:36 2019 JST" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%version_information numpy, matplotlib, scipy, sympy, mpmath, skmonaco" ] } ], "metadata": { "kernelspec": { "display_name": "npbook_py310", "language": "python", "name": "npbook_py310" }, "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.10.12" } }, "nbformat": 4, "nbformat_minor": 4 }