{ "cells": [ { "cell_type": "markdown", "id": "fb60fd9f-1c5d-420d-97d4-ff6a67dd5dcb", "metadata": {}, "source": [ "# 2025-11-10 Transformed Quadrature\n", "\n", "* Singular integrals and Tanh-Sinh quadrature\n", "\n", "* Finite element integration and mapped elements\n", "\n", "* Adaptive integration\n", "\n", "* Integration in multiple dimensions" ] }, { "cell_type": "code", "execution_count": 16, "id": "13b23cda-f635-478b-b6aa-88cd2b9441e7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "plot_accuracy (generic function with 1 method)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using LinearAlgebra\n", "using Plots\n", "using Polynomials\n", "default(lw=4, ms=5, legendfontsize=12, xtickfontsize=12, ytickfontsize=12)\n", "\n", "# Vandermonde with Legendre polynomials\n", "function vander_legendre(x, n=nothing)\n", " if isnothing(n)\n", " n = length(x) # Square by default\n", " end\n", " m = length(x)\n", " Q = ones(m, n)\n", " if n > 1\n", " Q[:, 2] = x\n", " end\n", " for k in 1:n-2\n", " Q[:, k+2] = ((2*k + 1) * x .* Q[:, k+1] - k * Q[:, k]) / (k + 1)\n", " end\n", " Q\n", "end\n", "\n", "# And a utility for points distributed via cos\n", "CosRange(a, b, n) = (a + b)/2 .+ (b - a)/2 * cos.(LinRange(-pi, 0, n))\n", "\n", "# Some test functions\n", "F_expx(x) = exp(2x) / (1 + x^2)\n", "f_expx(x) = 2*exp(2x) / (1 + x^2) - 2x*exp(2x)/(1 + x^2)^2\n", "\n", "F_dtanh(x) = tanh(x)\n", "f_dtanh(x) = cosh(x)^-2\n", "\n", "integrands = [f_expx, f_dtanh]\n", "antiderivatives = [F_expx, F_dtanh]\n", "tests = zip(integrands, antiderivatives)\n", "\n", "# Plotting utils for accuracy\n", "function plot_accuracy(fint, tests, ns; ref=[1,2])\n", " a, b = -2, 2\n", " p = plot(xscale=:log10, yscale=:log10, xlabel=\"n\", ylabel=\"error\")\n", " for (f, F) in tests\n", " Is = [fint(f, a, b, n=n) for n in ns]\n", " Errors = abs.(Is .- (F(b) - F(a)))\n", " scatter!(ns, Errors, label=f)\n", " end\n", " for k in ref\n", " plot!(ns, ns.^(-1. * k), label=\"\\$n^{-$k}\\$\")\n", " end\n", " p\n", "end" ] }, { "cell_type": "markdown", "id": "de268a4a-7ce4-47a5-b5a1-274dc76b9ba1", "metadata": {}, "source": [ "## [FastGaussQuadrature.jl](https://juliaapproximation.github.io/FastGaussQuadrature.jl/stable/)\n", "\n", "There are packages to help us here." ] }, { "cell_type": "code", "execution_count": 2, "id": "b6921db5-6d87-409c-bfe1-c1ce86f7a76c", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m registry at `~/.julia/registries/General.toml`\n", "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.11/Project.toml`\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.11/Manifest.toml`\n" ] }, { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Pkg\n", "pkg\"add FastGaussQuadrature\"\n", "using FastGaussQuadrature\n", "\n", "n = 10\n", "x, q = gausslegendre(n)\n", "scatter(x, q, label=\"Gauss-Legendre\", ylabel=\"weight\", xlims=(-1, 1))\n", "scatter!(gausslobatto(n)..., label=\"Gauss-Lobatto\")" ] }, { "cell_type": "markdown", "id": "a3f98625-a751-4878-b4d6-dccccad63b5e", "metadata": {}, "source": [ "Other reading: [Trefethen, *Six Myths of Polynomial Interpolation and Quadrature*](https://people.maths.ox.ac.uk/trefethen/mythspaper.pdf)" ] }, { "cell_type": "code", "execution_count": 21, "id": "3e22e5c9-679b-4eea-a647-9d7a9397d1d4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.418783 seconds (16 allocations: 305.187 MiB, 64.74% gc time)\n" ] } ], "source": [ "@time gausslegendre(10_000_000);" ] }, { "cell_type": "markdown", "id": "d863dcf0-f1d6-4d17-adb5-da7984882cac", "metadata": {}, "source": [ "## Singular Integrands\n", "\n", "What should we do when the integrand contains a singularity?" ] }, { "cell_type": "code", "execution_count": 22, "id": "42610d0d-a7aa-4570-acb1-a09ec3e189fa", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot([sqrt log x->.5*x^(-.5)], xlim=(0, 2), ylim=(-2, 2), label=[\"\\$sqrt(x)\\$\" \"\\$log(x)\\$\" \"\\$1/(2 sqrt(x))\\$\"])" ] }, { "cell_type": "markdown", "id": "6660b3a0-1110-48a6-a968-ee8404710342", "metadata": {}, "source": [ "Error is higher than we would expect with other functions." ] }, { "cell_type": "code", "execution_count": 23, "id": "239cb18e-66f3-40e5-b2b2-f8e8722282cc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "fint_gauss (generic function with 1 method)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function fint_gauss(f, a, b, n)\n", " x, w = gausslegendre(n)\n", " x = (a+b)/2 .+ (b-a)/2*x\n", " w *= (b - a)/2\n", " w' * f.(x)\n", "end" ] }, { "cell_type": "code", "execution_count": 24, "id": "f2235106-b5dc-402b-be11-a646f68baed6", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd1wT9/8H8M/dJYSZsMEtDtx7r9rWVSy02lq1y4HWtvZXO+zXutpqXZ22jtZqK9Llbm0VpSo4qrVuwQ1oFRRlQwYjJHf3+yOI4RKQ4MGR5PV8+Id87kg+jsuL+3zu83lTPM8TAAAAZ0VL3QEAAAApIQgBAMCpIQgBAMCpIQgBAMCpIQgBAMCpIQgBAMCpIQgBAMCpIQgBAMCpIQgBAMCpIQgBAMCp2V8QLlq0KD8/X+pegN0wGAxSdwEARCbudW1/Qbh58+a7d+9K3QuwGyUlJVJ3AQBEJu51bX9BCAAAICIEIQAAODUEIQAAODUEIQAAODUEIQAAODUEIQAAODVHDkKeNZamXuWKtFJ3BAAA6i+Z1B2oLXxpSdZXbxvu3qRcXD0Hj/Ia8hzt6iF1pwAAoN5x2DvCkqtnDHdvEkL40hLt/s0ZiyZrD/7GG0ol7hYAANQzDhuEMr8GhKLKv+QKNeo/v89YOrXwxD7CcRJ2DAAA6hWHDUJ5oxa+L81ilL7mjWx+Vv6m5ZmfvV588bhUHQMAqEz//v0pqIS7u3thYWFt/LU77BwhIcS9x2NunfrpDv+hjd/Gldz/6zNkpOb+sMAlpL0qYoqiRQcJewgAYK6goODy5cvt2rWTuiP1kZ+fn16v9/AQ/2kPh70jNKFcXL2GjQ/+MNpryFhK7mJ+qPTG5eyVM7O/nWNIvy5V9wAAQHIOHoQmtLuXKiIyeO4PHn2GE7rCH1mffC7zi//L2/glm5clVfcAAEBCThGEJoxPoM/z7wbNWuPWsW+FAzxfdHJ/xtIpBX+s4wo1EvUOAACk4URBaCIPbuY3dUHgW8sFs4O80aA79HvGokmafZv4UlSwAwBwFk4XhCYuIe0DZnzp/8oCeYPm5u1cSZFmz48ZiyfrjsbwrFGi3gEAQN1x0iA0ce3QN2jWGt8XZjK+gebtrCa/YPvqzGXTis4eIjwvVfcAAKAOOHUQEkIIRbn3HhY8d733qGm0h9L8iDHnTt5Pn2R++WZJ0lmpegcAALXN6YOQEEIIJZN7PvpM8AcblMOep1xczQ8Zbl/LWTM3+9vZpbeSpeoeAADUHgThfbSrh/LJicHzN3gOCKeYClsN6JMTspa/lfvjUmN2ulTdAwCA2oAgFGKUPt7P/V/QnHXu3Qab71ZKeL743N+Zn7yav20Vq8mTroMAACAmBKF1Mv+GvhPnBM1c5dqmu3k7zxoL/9mdsThSvTvafNs2AACwUwjCqsgbt/J/fWnA9E9cmoSat98v7XTod5R2AgCwawjCB1OEdg18d4XfxLmygEbm7VyhRv3HuoylUwtP7kdpJwAAO4UgrB6Kcuv2SNDstT7PvWmltNPGL1HaCQDATjlyGSbRUYzMY8CT7r2GaA/v0MVvt1baqYMqYrKiRUcJOwkAjkRjIGz1xpv0LJl7ms0sJoQQQhHCE0LIwh50Sy+qyu8r4y4jCsb6oQsXLsTHx+fk5DRr1mzUqFEBAQHlh06dOsWybN++fY8dO3b48GEXF5eZM2eePHmS47i+ffv+888/f//9t6mREGIwGHbv3n3+/HmKonr37j1s2DDarApCXFxco0aNWrduvWfPnoSEhDZt2owbN65af/KHRvH2tnNKhw4dtm3b1r59e2m7wRVqtPs36/6JsZwjdO3QRxU+WbB5G0hFq9V6eXlJ3QuAamnfvv1vv/1mqkd46C7/xj/s5YK6+4j2VZDZXZj/db4fTgaDYfr06evXr3d1dQ0ODr5165a7u/u2bduGDx9uOqFv377FxcUDBgxYs2aNUqlUqVRpaWl9+vTR6/X9+/dfs2aNSqVSqVSpqalpaWlhYWGXL1/29/c3GAxqtbpfv367du3y8/MzvRRN0y+88EJaWtqRI0d8fX0HDhz4559/mnfPz88vJSXF19eXiH1dY2i0hmgPpWrUNKulnUouncj87HWUdgKAGrtTxEfsM9ZlChJC8vRk1kn2l2v370AXLFjwww8/LF68WKPR/Pfff6mpqaYbtdzc3PJzLl++fPz48aSkJLVafenSJVPjpUuXTpw4kZSUVFBQcPHiRULI888/n5KSsnHjxuzs7Ly8vJUrVx4/fvzVV18178CWLVsCAwNzcnJyc3N/+eWXOvlDE4IgfEj3Sjt959apX4UDKO0EAA9hVxqvM0jz1puulwWhTqdbsWJFeHj43LlzZTIZIaRhw4bffvttQUHBpk2bys9nWTY6Ojo0NJQQUn6XJmg8derUsWPHJk6c+PzzzxNCaJp+8803R44c+fvvv6elpZW/lLe3d3R0tOkesS4HcjBHKAJ5cFO/KR+V3ris3rVe/9+l8nZTaaei4395Pv6c16OjBZu3AQBURi7dTYoLXTanePLkycLCwiZNmsTFxZUf1el0NE1fuHChvMXf379z586CFwkICOjUqVP5lydOnCCEREREmJ8TERGxe/fukydPNm3a1NTSp08fT09PUf801YIgFI2ptFPJpRPqmA2GuzfL202lnQqP7vQa/qJHvycEm7cBAFh6uhk925XNlqI06pQ2ZSGcnZ1NCPn55583b95sfoJKpeLMFowFBQVZvoigMT8/nxDSoEED80bTl3l5eZV9V53Bh7LIXDv0cW3fu+hUnPqvn83nCE2lnXSHfleOnCDcvA0AoCI/BTnwpGzmcfZ0TnUfaNSzpMiiiKqMIl4u1X3TRu7UnK50eNOyTyfT4OQnn3zyxhtvVPFdNG3l7lXQaHqpnJwc80bTl0qlsrLvqjMIwlpAUe69h7l1f7Tw6C7N/s3mc4Sm0k7aA9tVEZGCzdsAAMx19KH2htn2Ef3hmXvLJ+75uAcT5FbDDvTs2ZNhmNjY2KqDsDq6detGCDl8+HBYWFh548GDB8sPSQtBWFtMpZ08+oXpju7S7t/MlRSVHzKVdnIJ6eD9VKRLSAcJOwkAjuTjHpWsBKyRwMDAiRMnRkVFffHFF++88w7DMIQQjuPi4+ObN2/eunXr6r/UoEGD2rZtu2bNmtGjR/fp04cQEhsbu2XLlsGDB7dp00bEPtcMnhqtXZTCzWvI2KC56z0HCks7ld64lLXyPZR2AoB6a+XKlWFhYf/73/+aN2/+xBNPDBw4sEGDBsOHD79586ZNr0PT9KZNmxQKxaBBg/r379+rV6/w8PBGjRpFRUXVTsdtgzvCusAofbzH/J/X42M1cZsL/40l5WP+PF987u/ixH88+o5QjniRUflJ2k0AgAo8PDz27Nmzf//+v/76Kz09PSQkJCIiIiwsrPwx0dmzZxuNwpnJOXPmsCwraOzateuVK1eioqIuXLhAUdTEiRMnTZpk/ozod99917Zt21r941QGO8vUNcPta+pdUSVJZwXtlIur5+BRXkOeo109JOmYo8LOMmBHzHeWAQHsLOM47pV2WlZpaaeDv6G0EwBAnUEQSkMR2i3w3RV+k+ZZKe305/cZSyILj+0hnHBsAQAARIcglA5FuXUdZL20U0FO/taVmZ9NR2knALALLMuato+xRwhCiZlKOwXPj1I9OUkwO2gq7ZS1Yqb5tm0AAHWstLRUr9dXfU5cXJy7u3vd9Ed0CMJ6gXJx9Ro2PviDDV6PPkPJK+wDUXrjUvbKmTnff2S+bRsAQB3Iz8/fvXv3wIEDY2Jiqj7z8uXL5puL2hcEYT1yv7RT72Eo7QQA0jp79uyqVasUCsXp06fNNxe1pFarvb2966xjosM6wnqH8Qn0eWGm5+NjNDEbKswR8nzRyf3FZw95DIxQDhtPeygrfw0AgIfVvXv37t2rtRPkjh07BJUl7AvuCOspeXAzv6kLAt/6UtGiwh5sptJOGYsmafZt4kul2JoeAKCivLw8f39/8xaN5v4ey2q1urS0Xi8Jwx1hveYS0iFgxpcll46rY6JR2gnAqfCssejk/tJbKXX2jozKz6PvE7ZucZWSkiLYEWbx4sUlJSVFRUVTp06NjY1t2LBhTExMeHi4qSpvPYQPUDvg2qGva/s+KO0E4EQ4LmftB/rkc3X8trojOwPf+Vrm1+DBp96zZ88e8/IUJ06c6Ny5c5MmTfr27duuXbuZM2cSQjw8PObPn19vgxBDo3aCotx7DwueF+Uzdgbj5WN+xFTaKfOz14sTjkjVOwAQV8mVk3WfgoQQTqfWxm214XyOo2laJrt/T3Xjxo0RI0acPHkyJCRkypQppsZr1665urqK3FfxIAjtCcXIPPqPDJq3Xjn8ecqlwv8qw92budFLsr+dXXorWaruAYBYjLmZ0r313eqfHBcX9+ijj5q3jB8/XqFQHDp06IknnigvtPv3338PGjRIxE6KC0Fof2hXd+XIicHzN1iWdtInJ2Qtfys3eglKOwHYNZemklXps+mtL126ZLl8kOf5Q4cOPf7446YvNRrN3r17R48eLVoXxYYgtFem0k5Bc9YJZwd5vjjhSOYnr+ZvXclq8qTrIADUnEvztl5Dxtb9xL9L87ZeQ8dV82SNRmN1+WBSUlJWVtbAgQNNX+7atSsoKGjAgAGxsbEZGRmi9VU8eFjGvsn8G/pOnOM15DlBaSeeNRYe21N0Ot5z8Givx8fQbp5VvAgA1EOqiEj3XkNKU68Si9p+tYGSKxiVn6J1F0H6lpSU8DxvdYu1P/74w+rywUOHDnXq1MlUL4kQcvLkyREjRlAUde7cubCwsNro/ENCEDoCU2knfXKCeleU+RwhX6rX7t9ceGyP19BxngMjBJu3AUA9Jw9uJg9uJtW7p6SkfPPNN+np6T169IiOjj516lS/fv3Gjx9ffoLl8kGT5ORk84HQp59+eu3atV9//fW4cdW916xjKMzrWHi+OPGoene05Rwh4x2gDHvZo9dQweZtDg+FecGO2FFh3pSUlJSUlJEjR1oe4nmeqnhbadlSAyjMC9VDUW5dBwXPWeczdoZgVSxbkJ2/aXnGp68WJxwh9vbTDwDUN7GxscOHD7d6yDLzHj4FaxWC0BHRjEf/kcHzrJR2Mmbeyo1ekrVypv6/i1L1DgDsHcdxFEWZLx+0awhCh0W5KMpKOz32rEVpp8vZK99DaScAqJmDBw8+9thjUvdCNA6S51AZ2kOpevoVz8GjNLE/F56KI2a1VEounSi5fNK95xBV2ATGN1DCTgKAfencuXNAQIDUvRAN7gidAuMd4PP8u0GzvnPr1K/CAZ4vOhWXsXRKwR/ruEJNJd8NAFCBI6UgQRA6FXlwU78pHwW+tVzRoqN5O0o7AYAzQxA6HZeQ9gEzvvB/ZaG8QXPzdlNpp4zFk3VHY3jWKFHvAADqGoLQSbl26BM0a43vi+8JZgdNpZ0yl00rOnsIqywAwBkgCJ0YRbn3Gho8d733qGm0h9L8SFlppy/fLLl6RqreAQDUDQShs6Nkcs9Hnwn+INpKaafb13K+m5f9zezSNJR2AgCHhSAEQqou7ZSSkPUVSjsBgMNCEMJ990s7dbdS2ilj2bT8rStZda50HQQAEB+CEIRk/g19J8wJmrnKtW2PCgc4tvDYnowlkeqYDVxJoUS9AwAQGXaWAevkjVv5v7ZEn5ygjokynyPkS/XauC2F/8aitBOA6CiKeuedd5RK5YNPdT46na6WNu9GGSZ4EDsv7YQyTGBHjh8/fuvWLal7UU+5ubmFh4ebfi/udY0ghGrhWWPRiX2av35hNXmCQ/LgZsrwyW4d+0rSsQdCEAI4HtQjBAlQjMyj/8jg+RtUEZG0m6f5IUNGau4PC7K+elt/7bxU3QMAqDEEIdiAclF4DRkbPD/KSmmn1KvZq2ehtBMA2B0EIdjMVNopeF6UR/+RhGbMD5VcOpH52eu50UuMuXel6h4AgE0QhFBDjLe/z9gZQbO+Fc4O8nxxwpHMZdNQ2gkA7AKCEB6KPLiZ39QFge98rWjV2bzdVNrp7scT1buiuJIiqboHAPBACEIQgUuztgH/95n/KwsEpZ14fbE2fmvm0iko7QQA9RaCEETj2qFv0Kw1fpPmyfwamLebSjtlLIksPLYHpZ0AoL5x2CAs5Ui+vuxXIW5F6gxFuXUdFDRnnWVpJzYvK3/ryswv3yxJOitV7wAALDlsEG68xvn+bDD9+r9jrNTdcS4PKO20Zm72tyjtBAD1hcMGIUjOVNqpwUc/eQ0ZS8nk5of0yQlZy2fkfP8RSjsBgOQcLQjLR0TNh0NLWYyRSob2UKoiIoNmr3XvVrG0EyEll06gtBMASM7R9hqNTuYm/13pQOikUHrDI0xlR6G2Ge7e1Oz9tTjhiKCdclF4Dnraa+hYweZtosBeowCOB3uN1hxrZ6HvaOQNmvtNmhcw/ROXJqHm7XypXhu/NWNxpPbgb7yhVKruAYBzcq4g3H6D+/ICpzNI3Q/npgjtGjhzpf8rC2QBjczbuUKN+s/vy1ZZcHi+CQDqiKMFoYIhPgrioyAe1koOFxvJeyfY5psNi89xBbjxkJRrh77Bc9b5jJ3BKH3N29mCnPytKzM/m1584V+p+gYATsXR5gjLmU8Wymhi5IQneMnJ5FB6dhemgXttdBOqiy/V6w7v0MZv40oKBYdcQtqrIiIVLTo+zOtjjhDA8WCO0GZjQuiPutOqClWDiNZAVl7iWm81vPUve7vQzn4acCSUi8Jr2PjgD6O9howVlna6cTl75XvZ384xpF+XqnsA4PDqURDevn37zJkz+fn5orxa+Ripj4L4KsiC7kza8/JPejG+igqnFRrJyktcyy3GCYfYFDXiUDK0u5cqIjJ47g8efYYTusJ/S33yucwv/i/v1y/YvCypugcADqxeDI1+8cUXX3zxRWZmJiFky5YtY8eOreLkag6NVkZnIOuTuE/Ps3ctKiLQFHm2Ob2wB93Om7L2rVBHjJm31LE/FSceFWxMSjEy9z7DlWEvM14+1X81DI0COB4HHBpt1qzZkiVLDhw4UAfv5Sknb3Wkb4yTrx3INPaoEHgcT7bd4Dr+ZozYZzydI/3PB05LFtTEb9K8wBlfCmYHedZYeGxP5pIpmr0beX2xVN0DAAdTL+4ITXJzc/39/Wv7jtBcKUc2X+eWJHDJ1gZFhzaiFvVg+gbi7lBKJZdOqGM2GO7eFLQzXj5eI17w6BdGMdaeDzaDO0IAx+OAd4RScaHJhNb0lTGyrUMYy+HQuHS+307jwF3GXWkWj5xCXXHt0KestJN/xdJO2vyC7d/cW3SIfyAAqDmnDkITmiLPhdAXn5XtHM70ChDG4T+Z/FP7WFMc1pd7Z2djKu00e5336Fetl3ZaPqPk6hmpegcA9u4Bw0oP75VXXklISLB6aNWqVX379q3tDlQTTZGIpnREUzounf/wDPtvVoXUM8VhF1/u3U70i61oBsOldY6SyT0Hj3bvM0J3cLv20A7zOULD7Ws5381TtO6qioh0aRpaxYsAAFiq9SAMDw/v0aOH1UONGzeu7XevgaGNqKGNZEcz+E/PszFpFeIwMY+feJj97Dw3qzP9QktahtvpOke7uivDJng+Mkp7YLvu8A7eeH+7PH1KQtbyGYrQbt6jX5U3aC5dHwHAztjwsExubu6ZM2fUanWLFi2sZptWq922bdulS5eUSuWTTz7Zs2dPm7pS9w/LPNCxTH5ZIrs7zcrfUYgX9VYH+tV2tCuqWUjEmHNXsye66NzfglUWhGY8+o5QjniRUfkRPCwD4IgkeFgmISEhJCTE399/xIgRY8eOXbduneU5N2/e7NKly9SpU/fs2bNixYrevXsvWLBArF5KpX8QtWu4LOEZ2csWw6E3tPzbx9k224wrLnJFKHMoBZl/A98Jc4JmrnJtW/HHMo4tPLYnY0mkOmYDV6yTqHcAYDeqFYR6vT40NHTu3LkrV66s7JwJEybcuXPn0KFDV65cuXPnzujRoxcuXBgXF1ed19+0aVPLli1Nd5kzZsxo2bLlm2++Wc0/QB3o7Ev99CiT9JxsWlvhcGiajn/7ONt8s2HBWVaNXbylIG/cyv+1JYFvfalo0cG8nS/Va+O2ZCyarD/yB0o7AUAVbFtHeP369VatWk2bNm3t2rXm7adPn+7Vq9fUqVO///57U8udO3eaNGkSFhYWExPzwJf977//zpyp8NRfkyZNKnuOpi6HRi3d1PJfXeTWXeVKLMoEKeXk9fb0rM7CXdygjvB8ceJR9e5oY3a64AjjHaAMe9mj11DB5m0AYKfEHRoVJwiXLVs2d+7cP//886mnnipv7NOnz/nz53U6HcOIOY3m6+sbHBzs6upq+rJTp07ffPONiK9fHVkl1Ookem2KzHJQ1EPGT2jBvduODXbDagspcGzpmQMlB7dxmjzBESawseuwF+XteknSLwAQkU6n8/T0rM6Zrq6uMtkDHgsV56nRpKQkQkhoaIUn10NDQ0+ePJmamtqiRQtR3sXE399/4cKF5a/p4+NTzb8OEXl6kuX+ZE4P8s1ldsXFCqUNC43UmmQm6jozsTX9QTdasIsb1IXHRvMDRur+/kMbv818jpDNul3466eilHYCAGnxPC/iJ784QWgqGeHn52fe6OvrW35IRHK5vEOHDlINjZoLcCULujPvdmLWXOY+O8/m6e8f0rNk3VUuOpkb14L+oBvdWoU4rFOUi8Jr6DiPfmHauC26o7vM5whNpZ1c2/dWRURilQUAELF2lmFZlhAiuP2Uy+WEEKPRwR+pVMrJ+13o1PHyr/syDd0rBF4pR36+xrXdbhwbz14pwEhpXaM9lKqnX/F8a4VlaaeSyyczP3sdpZ0AgIgVhKZJy7y8CrMypi+VSqX173EspqIW/42TrR3INEFRi/qEVvn7PP9u0Kzv3Dr1q3CA54tOxWUsnVKwYy1XqJGodwAgPXGC0DRjd+fOHfPG9PR0mqabN28uylvYBQVDprWlr42T/TiYCVUJ4zAmje/1h3FYrFGwfxvUAXlwU78pHwW+tVxY2slo0B3ekbFoEko7ATgtcYJwwIABhJC9e/eWtxQVFR09erRHjx5ubm6ivIUdMS9q0d5aUYv+KGohEZeQ9gEzvvB/ZaFgdpArKdLE/pSxOFJ3dBfPOvhgPgAIiBOEQ4YMadKkSXR0dE5Ojqll9erVRUVFkydPFuX17ZGpqMWFKotaDEBRCymYSjv5vvge4xto3m4q7ZS57JWis4eE27YBgOOq7jrCli1bEkIMBsOtW7eUSqW/vz8hZNasWa+++qrphNjY2KeeeqpBgwajR49OS0v7888/Bw8evG/fPtMjMyKSdkF9jVktamHS2ZeaiaIWtaaKhbe80VD4T4xm3ybLOUJ545aq8Ejh5m0AUD9Is6C+PPDMPfPMMyNGjCj/8uTJk8uXL79w4YK3t3d4ePi7776rUIi/yYqdBqGJ1aIWJu29qfe7oKiF+B54wfD6Yt3RXdr9m7mSIsEhl5AOqohIweZtACA5KXeWqQ/sOghNzuXyyxK47TesDIo296LeRlELUVXzgmE1+dp9Gwv/jRXOEVKUW+eBqvBJsoBGtdVFALARgtDug9DkQh7/+Xlu43WOtfgXCHIj73Rk3uxAu9d6vUjHZ9MFU83STgAgLQShgwShyXUN/9l5LiqZM1o8QxrgSqa3p9/uyHi7SNEzR1GDC8aQkar565fihCOCdspF4Tnoaa+hY2m3ut7VDwDMIQgdKghNUNSi9tT4gtGnJKh3RZWmJQvaaXcvr6HjPAc9RcnxEwqANBCEDhiEJpnF5KuL7KpLVir9espJZCj9fhdasIsbPNBDXjD65HMFO9Ya7t4UtDPe/srhL3j0HUFoTOcC1DUEocMGoUlOCVltUdTCRMGQia3p+d3oJihqUW0iXDAcW3h8r2bvr6w6V3BEHtxU+eQkt079H+r1AcBGCEIHD0ITjYFYFrUwcaHJuBb0/G50KIpaVINYFwxfqtcd+VMbt9W8tJOJS7O2qvDJitZdHv5dAKA6EIROEYQmOgNZn8R9dp67UyT8Z6Ip8mxzekEP2nIXNzAn7gXDFWm1cVt0R3aal3YyQWkngDqDIHSiIDTRs+THFG7xOe5WoZU4HNmE+rCblV3cwETcC8aELcjR7NtYeHwv4So+3URRbl0GqsIjZf4NxH1HADCHIHS6IDQxcGTTdW5pApektvJPNrQR9XEPpl8g4lCoNoLQxJCRptm9ofjCv4J2Sib3GBCuHP487eEUNcgA6h6C0EmD0ITjye5b3EdnuHO5Vv7hBgRR73ehI5pil7b7ai8ITUpTr6p3RemvnRe0Uwo3z4ERXsPG067utffuAM4JQejUQWjCExKTxi0+x53MtvLP182PmtOVHhNC4/aQ1H4QmpRcOqGO2WBllYXSx2v4ix79nqAY7BIEIBoEIYLwvqMZ/Edn2QN3UNSiUnUThIQQwvPFiUfVu6KMuXcFRxjfQOXQ8R79wgjl3P8YACJBECIIhaooatFSSc3qTEeGOm9Ri7oLQkLIA0o7tVKFT0ZpJ4CHhyBEEFqHohZW1XEQmnAlRboD27SHdvClJYJDitZdVRGRLk1D67hLAI4EQYggrAqKWghIEoQmXKFGe2C77vAO3mgQHFKEdvMe/SoWHQLUDIIQQfhg/2n5TxNR1IIQSYPQxJhzR7PnR5R2AhARghBBWF2pOn75Be77JK7YYhdv5ylqIXkQmhju3tTs/RWlnQBEgSBEENrGyYta1JMgNEFpJwBRIAgRhDXhtEUt6lUQEkIIzxefP6qOiTZmpwuOMN4ByrCXPHoNI7SzPuMLUD0IQgRhzWkNJCqJW5bIZhYLD8lpMr4FPa8b3caxilrUuyA04fmi0/HqmA2WpZ1kQU1UYRPcugzEokOAyiAIEYQPq9BIfrjKfX6BS69kF++PezDd/BzkU7ieBiEhBKWdAGoKQYggFEcpRzZf5z4+x13XCP8PUIQ82ZT6oBvT2/6LWtTnIDSpqrRThz6q8MlYZQEggCBEEIqp6qIWA4Koj3swjze04zis/0FogtJOANWHIEQQis9U1GLBWe5sjqMVtbCXIDRBaSeA6ofq1TMAACAASURBVEAQIghri0MWtbCvIDQpvXFZvStK/99FQTvt6u752BivR0dTCjdJOgZQTyAIEYS17mgGv+AsG2+tqEUnX+o9uypqYY9BaKJPPlfw5w+G9OuCdtpD6fX4GM/BoymZXJKOAUgOQYggrCPVLGqx9iq3/UbZTm6vtqXHhNSvEVT7DUJC7q2yiP2JzcsSHJH5N1COnOjebTBWWYATQhAiCOtUQi6/tJKiFs08qXc60jd0/IqLZUH4RR9mZicEochQ2glAAEGIIJTAxXz+s0TrRS3cZaR88zYEYe3h9cW6o7u0+zdzJUWCQy4hHVQRkYoWHSTpGEDdQxAiCCWTpOaXJXAbr3MGi6IWJq2UpLkXRerTGKnDBKEJq8nX7vu18N+/eLbi1rEU5dZ5oCp8kiygkURdA6g74l7X9eKjCuxFGxUVPZhJGSub0cF6yftrGhKXzsel86nCnVJAHIzSx3vM/wXPi/LoP7LC7CDPFyceyVg6Ne/Xzy23bQOAKiAIwWbNPKkV/ZgpoVX95zmSwVvWfgKxML6BPmNnBM1cJZwd5PmiU/EZSyLVMRsst20DAKsQhFBDnlU+uv9nKtdqq3HVJU7PVnUaPAx541b+ry0JeOMTl6ah5u18qV4btyVj0WTtge2W27YBgADmCKGGUtRl45/myycsNfag5nalp7ShXST6ocvB5ggro08+V7BjreHuTUE74+2vHP6CR98RhGYk6BZA7cAcIdQLrVXU0EbU0EZUM7PK6sMbU6qKlWVvF/LT/2FbbTGuuIi7w1qkCO0W9L9vfMbOYFR+5u1sQU7+1pWZn71efOGYVH0DqOcQhCCm4Y3o6+PkH3WnlRUHTm8V8m8fZ0O3Gddd5YyV3j3Cw6EZj/4jg+dFqSIiaTdP8yOGjLTc9R9nLX9Ln5IoVe8A6i0MjcLDKh8jJYS0VpFmnhQhJKeEfHGBXXWJK7J4ZKaZJzW3a9muNHXASYZGBaoq7dS+tyoiEqWdwK5hHSGC0G5kl5AvL7ArL3GWT5CGeFGzu9RFHDpnEJqwBdma2F8KT+0nXMXbcIpy7/m4MmyCzDdIoq4BPBQEIYLQzmQVk+UX2RUXuRKLOcK23tScLrW7hbczB6GJMfOWOvan4sSjpOLFTjEy9z7DlWEvM14+UvUNoGYQhAhCu3S7kP/8PLfuqpU4bO9NvV9rcYggNCm9eUW9cz1KO4FjQBAiCO1Ymo7/8gK39qqVJ0g7+FAfdRe/3iGC0FzJ5ZPqXVFWVll4+XiNeMGjXxjFyCToFoCNEIQIQruXquOXJnBRyVaeIO3kS33QTcw4RBAK8Xxx4lF1TJQx567gCOMTqBw23qPvE4TG8+RQryEIEYQO4qaWX5ZoPQ47+1LzRYpDBKFVVZZ2aqkKj0RpJ6jPEIQIQodyQ8t/ksitT7JS4KlPIDWvKx3R9KHuThCEVeBLS3RHdqK0E9gdBCGC0AFdKSgr8GQZh/0CqTkPEYcIwgditfnavRsL/41FaSewFwhCBKHDulzAf5LA/Xqd4yz+Vw4Iohb2YIY0tHmsFEFYTWxeliZuc+Hxv4SLDmnGo+8I5YgXBZu3AUgIQYggdHAX8/mPz3Lbb1imIRkQRH3cg3ncljhEENrEcPu6Oiaq5OoZQTvlovB8ZJTXkOcEm7cBSAJBiCB0Chfy+EXnKo3DxT2ZRxtUKw4RhDWgT0lQ74oqTUsWtNPuXl5Dx3kOeoqSu1j9RoC6gSBEEDqRxDx+yTlum7UyT0MbUUt6Mr0DHhCHCMIaQ2knqLcQhAhCp3M8i1+SwMakWfm/OrQRtbQn06vyOEQQPhSOLTy+V7P3V1adKzgiD26qfHKSW6f+kvQLnByCEEHopP7N4pdWHoef9GJ6+FuJQwThw+NL9bojf2rjtnLFOsEhl2ZtVeGTFa27SNIxcFoIQgShU/snk//oDBt/R/j/liLkyabUxz2Ybn4V4hBBKBaUdoL6A0GIIARyNIP/8Ax78K71OFzUg+l6Lw4RhOJiC3I0+zYWHt9LuIrbxVKUW5eBqvBImX8DiboGTgRBiCCEMkcz+Pln2MMWcUhT5Nnm9KKedBsVhSCsDYaMNM3uDcUX/hW0UzK5x4AnlcOepz1VknQMnASCEEEIFcSl83NPs6eyrcfhnHbF3Rpi6VutKE29qo7ZoE9JFLRTLq6eg57yGjaednWXpGPg8BCECEKwIi6dn3OKPZ1jPQ6X9KRbq2qt+K9zQ2knqHsIQgQhVCounX//FHvWIg7lNBnfgv6oO91SiTisBSjtBHULQYgghKrwhMSkcR+d4c7lWo/DBT3oFl6IQ/GhtBPUGQQhghAejOPJ7lvcB6e5xDzh/3AXmkwKpT/sRjfyoExnqu8tB6AposLeYQ8HpZ2gDiAIEYRQXRxPfrlSuPSSIkltPQ4/6k5ThGq40WBqbOBO7rwgr/NuOiCUdoJaJW4QYtQeHBlNkdFNuMtjZFuHMIKHZUo5su4q12KLcdZJtrJvhxpjvHy8x7wRNOd79+6PEsrsb57nixOPZCyblr91peW2bQCSwB0hOLjynxw5nvx2k5t7irumqfT/fJAbuTJGTjBGKipDRqrmr1+KE44I2ikXheegp72GjkVpJ7AVhkYRhGADwQVj4MiGZG5JApemq+p/PsZIRYfSTiAiDI0C1JycJtPa0iljZUt7VlVCyM5+PLQHitZdA99Z4Td5nmB2kCvSqnf+kLFkSuGJvYSzUm8LoLYhCMEZmZ6UqeKErGLyxQWuyFjFKWA7inLrMih4zjqfsTMYlZ/5EbYgO3/TVxmfvlqccITY2zAV2DsEITgpmiI+CuKjIEprA3IcT/53gm211bD6MqfHwzTiohmP/iOD50WpwicLZgeNmbdyo5dkrXhX/99FqXoHTghzhODgHjiXcLeIlC+foCnCWVwQTTyomZ3o19rRCtRjFxtXpNXGb9P9/YdlaSdFaDfvp6bKG7eUpGNQz2GOEKC2BLqRT3ox3hXvEW8V8m8fZ9tsM667yrF29nNjfUe7e6kiIoPnrffoM1ywB5s++Vzml/+X9+vnxrxMqboHTgJBCM6ufIzUR0G8Xaj3u9DXx8k/6k4rKz40mqrjXz3KdvrN+FMKZ3nXCA+D8Q7wef7d4PfXunUdJFh0WHQqPnPJlPytK1ltvnQdBAeHoVFwcDUeQskpIV9cYFde4ootHpnp6EN92J0eE0Jjx1LRld68ot653nKOkHZ193zsWa9Hn6EUbpJ0DOoVrCNEEIINHvKCuV3If36eW3vVyiMzfQKpeV3piKYYVhGfPvlcwc4fDLevC9ppD6XX42M8B4+mZFjl6dQQhAhCsIEoF0yajl+SwEUlc0aLdW79g6jFPZnHGuDmUGw8X3T6gCb2J8s5Qpl/A+XIie7dBlcYRwVngiBEEIINRLxgbmj5TxK59UlWHpkZ2oha2pPpFYDPZZHxrLHoxD5N7M+Wc4Ty4GbKJ15y6zpIko6BtBCECEKwgbgXDCHkcgG/4Ay3/YaVJ2aGNqI+7cV090cciqzK0k7tVRFTUNrJ2SAIEYRgA9GD0OR8Hr/4HLfthnColCLkyabUkp5MZ1/Eoci4Qo32wHbd4R280SA4pAjt5j36VXmD5lL0CySAIEQQgg1qKQhN/s3iPzjNxt8RXkQ0RZ5tTi/tRbdSIg5FxuZnafZvLjz+l3BjUopy6zJQ9dRUmW+QRF2DuoMgRBCCDWo1CE2OZvDzz7CH7wovJTlNxregF/agQ7wQhyJ7QGmnIWNpd5R2cmQIQgQh2KAOgtAkLp2ffYo9kyO8oEwbfC/ozjRwr4NeOJfSG5fVu9br/7skaKfdPb2GjPV8ZBRKOzkqBCGCEGxQZ0FICOEJiUnjPjzDJeQKLyt3GZnahp7blQnCcnBx8Xzx+aPq3T8as24LjjDe/sonXvboPUyweRs4AAQhghBsUJdBaMLx5Leb3PzTXLJaeHF5yskb7enZXYTbmcLD4vnixKPqnT9YWXQY1EQVNsGty0AsOnQkCEIEIdig7oPQxBSHc05x1zXCS8xXQd7sQL/biVFidxRR8aV63d9/aOO3ccU6wSGX5u1UEZGKlp0k6RiIDkGIIAQbSBWEJgaObEjmFp7l7hQJLzR/V/JeJ2ZGB9pNRggh/2Ty5ZuaDgiiTI1QA1yRThu/FaWdHBuCEEEINpA2CE1KORKdzH10hs0oFh4KdCPvdmTe7ki33278T1t2MV4fJ2uBB00fDqvO1ez9tfD4XsJV3CXWtMoiPFLm30CiroEIEIQIQrBBfQhCk0IjWX2J+/Q8m68XHmrqSRUZSU4JglBkhsw0TUx08YVjgnaKkXkMDFcOe572VEnSMXhICEIEIdig/gShSUEp+fICu+IipxXujnLfT4OZBu4UwRipSEpvXlHvitJfvyBopxRuXo+PQWkne4QgRBCCDepbEJrk6snn59lVl7gii2KH5nBrKCKUdnIk4l7XWF4DIAE/BfmkF3NtrFwpR87VEUVot6CZq31f/J9gDzauUKPeFZX5ybSis4eIvd0YgCgQhACSaeBO/F2rOmFsvJWd26DmKMq915Cgeet9xs5glD7mR4w5d/N++iTz09cst20Dh4cgBJDSgCBqaCNqaCPKlbFy9EwO/+huY/heo+VWNVBjFCPz6D8yeP4GVUQk7Vph4ztDRmpu9JKsFTMtt20DB4Y5QnBw9XOO0FLLLfeXT1CECC5LVHeqJSjtZKcwRwjg4HaPYJ4LqXBt8oTEpPHddhjHxrOWW9VAjdEeSlVEZNDsde7dHxXswaZPPpf5+Rv5W1ey6lypugd1A3eE4ODs5Y5wwiH2bnHZxfjTYFkDd/JvFj/vFHvQWnWnyaH0R93phu64OxTTA0o7DR1Lu6G0U32B5RMIQrCBvQRhZeLS+Tmn2NMW1Z0UDJnYmv64B8pZiEyfkqDeFVWalixop929vIaO8xz0FEo71QcIQgQh2MDeg9AkLp3/30nW8pEZlLOoFaZaFrujjdnpgiOMd4Ay7CWPXijtJDEEIYIQbOAYQUjulbOYd5pLsajuZCpnMbMT44UV4SLi2MLjezV7f7WcI0RpJ8khCBGEYAOHCUITA0c2XecWnOVuaIVXboArmdmJeasjbXUlBtQMX6rXHflTG7fVSmmnpm1UEZGK1l0k6ZiTQxAiCMEGDhaEJlWUs2jqSc3rSkeG0jIM3YmHK9Jq47bojuy0LO3k2r63KnyyvGGIJB1zWghCBCHYwCGD0KSKchZtVNTcrvSLrWgGQ3fiYQtyNPs2orRTfYAgRBCCDRw4CE20BvLtZW5pAquxKGfRwYf6qDs9JoRGGorIkJGm2W2ttJNM7jHgSZR2qhsIQgQh2MDhg9Akp4R8cYFdcZErYYWH+gRSS3oyQxpSaTp+ypGyw009qPWPYC6x5ior7US7uns+9ixKO9U2BCGCEGzgJEFocruQ//w8990VrpQTHhoQRL3ajp5wqCwI23lTl8eg1OHDQmknqSAIEYRgA6cKQpObWn5ZIrc+iWMrv7gRhKIxLTqMiTLm3BUcYXwClcPGe/R9AosORYcgRBCCDZwwCE0u5PEfnOF2pnJWr3A3GRkQRBGMkYqENxoK/9mt2b+J06kFh+SNW6rCI13b9pCkY44KQYggBBs4bRCanMzm3z/JHqq8qCFuDUXEl5bojuzU7t/MlRQJDrmEtFdFTFG06CBJxxwPqk8AQHX1DqC+HVDVDV9mMcmyWIwINUO5uHoNGRs0b73nwAiKqfDjRemNy9mr3svdsMSYdVuq7kFlEIQATi1Pz7fcaph/mi0QrhSHGmK8fLzHvBE8P8qj/8gKs4M8X5x4JGPZK3m/fo7STvUKhkbBwTn50CghpNBI/s3kCSHmyycsecnJ9Pb03K6MEs85isdw+7o6Jqrk6hlBO+Wi8HxklNeQ51DaqWYwR4ggBBsgCMtdKeDbbzeaft/Ig3JliGWNX39X8h42LBUbSjuJDnOEAPCwlHJyZYxs7UCmgXuF9pwSMvsUG7rVuO4qZ7RYjAg1o2jdNfDdlQHTl8kbNDdv54q06p0/ZCyeXHhsj3DbNqhDuCMEB4c7wnLlY6SEEA856RdIEUKKjGRVlRuWvtSKxhZtoqm8tJM8uKnyyUlunfpL0i+7g6FRBCHYAEFYHVVsWNrRh/qwO/1cCEaPRMOX6nV//6GN32altFPzdqqISEXLTpJ0zI4gCBGEYAMEYfVVsWFpv0BqSS/msQa4NxQNV6TTxm/V/f2HZWknRWg376emyhu3lKRjdgFBiCAEGyAIbXWrkF98jotKtjJHOLQRtawX09MfcSgatiBbE/tL4an9hKv4101R7j0fV4ZNkPkGSdS1eg1BiCAEGyAIa6aKDUuHNqK+7MN09qUIIasucUVlD6KSNzvQ7tijpkaMmbfUsT8VJx4lFT+QKUbm3me4MuxlxstHqr7VTwhCBCHYAEH4MC7l8wvPcttvCDcspSnybHN6WS+6/y5j+cY0mS/KA1F66CGgtFP1IQgRhGADBOHDO57FzzvNHrgj/KyQ00RGk+J7d4QIQlGgtFN1IAgRhGADBKFY9qXz80+zp7Ir/cSY35XxlBOCMdKHx/NFpw9oYn8y5mUKjsj8GyjDJrh3f5RQTj1TiyBEEIINEITiikvn3zvBJuZV9bmBW0NR8Kyx6MQ+TezPrDZfcEge3Ez5xEtuXQdJ0rH6ADvLAIBkhjaizo6WKavcEawUe6SIgWJkHv1HBs1brxzxomB20JCRmhu9JPub90vTkqTqniNBEAKAbWiKVL0TaZ+d2KFNNLSruzLs5QYf/ug1ZKxgdlCfkpi1/K3sb+cY7t6UpnOOAkOj4OAwNFobFp/jdEaeVFw+IdDWm1rUg342BBu0icaYc1ez58eic4cFqywIzXj0Ga584iVG5SdR1+oa5ggRhGADBGGtCvrVUL58Qikn2KGtDlRV2mnQ015DxzpDaSfMEQJAfXRylPz9LrRbxedFL+bzY+PZAbuMh+7a2c/c9Za8cUv/15YEvrVc0aKjeTtfqtfGb81YNEkbv9Vy2zaoAu4IwcHhjrBWlY+RknvLJ24X8osq36Ht015Md+zQJhaeLz7/j3p3tDHrtuAI4+2vfOJlj97DCO2YdzsYGkUQgg0QhJIw7dD2QxIn2JOGImRMCL24Jx2qQhyKhOeLE4+qd/5gZdFhYGPVyIluXQY63qJDBCGCEGyAIJTQxXz+47PcthvCe0PTDm2f9qZDvKhSjnx1oewEF4a809Ex72BqW5WlndqqwqcoWjlUaScEIYIQbIAglNzxLH7uKfagxRyhC00mhdKzOjOttpY9Y+MlJ5qJ2D+s5pyntBOCEEEINkAQ1hNx6fzsU+yZHOEHjruMlC/AQBCKgi3I0fz1c+FJa6WdejymHDnRAUo7IQgRhGADBGH9wROy7T/uwzNcktr6x46CJgt7MARjpGJ4QGmnJ15mlHZc2glBiCAEGyAI6xuOJ7/d5Gad4G7qKv3wwa2hWEpvXlXvWm9Z2olSuHk9PsZ+SzthHSEA2DGaIs+F0KdGVVWfwsARYQlEqBGX5m0D3vw8YPoywewgry/WxP589+OJ2vitvNFiHwQngyAEAAkoqtyttIQl3XcYY9IQhuJQhHYLmrna96VZgtlBrlCj3hWVuWxa0ZmDwm3bnAmGRsHBYWi0ftKz5KOzLCHEfPmEpQFB1NJezCPBjrYMTio8ayw8GqPZv4nTqQWH5I1aqsInu7brKUnHbIU5QgQh2ABBWM9pDUT5Y9nQnAtNKIroLao4DW1EfdKL6YEtaUTC64u1B7ZrD/3O64sFhxStu6giIl2atpGkY9WHOUIAcEwKhiQ9J5vWlmYqRl5cOt/rD+PYeLayx03BJpTCTRn2cvD8KM9BT1FMhclafUpi1ldv525YbLltmwPDHSE4ONwR1nPlY6TEbPnE5QJ+wRlu+w3hEzPmW9IQQnQGklVSdoqnjAq0y+cfJcbmZ2n2by48/pflokO3LgNVT02tn4sOMTSKIAQbIAjt14ksfu5p9sAd61vSLOzBHLzDvXCwLESfb0lvfKzKJ3Cgcob06+qYDSVXTgvaKReF5yOjvIY8V99KO2FoFACcQp9AKn6kbH+YrGfF2cFSjqy7yrXaYth0vdKnbMAm8kYt/V9dHPDGp4LZQb5Ur43bkrFosvbAdgcu7YQgBIB6bWgj6uQo2c7hTGffCnFYaCS7zNZX6Iz8f1r+Py2fJXz+A6pL0bpL4Dtf+02eLwtsbN7OFWnVO3/IWBJZeHyvcATVIWBoFBwchkYdhpEjP13jFp7l0irfkoZgjFQUHFt4fK9m76+sOldwRBbUVPXkJLdO/aQt7YShUQBwRjKaRIbSyc/JXm6FD65aRjMe/UcGz4tShU8WzA4aM9Nyoz7OWvGO/ppw2zb7hf9PAGBPFAwJa1LVvcieW7xlBUSoAcpF4TV0XPAHG7weH0PJXcwPld68mr36fznrPjDcuSFV90SEIAQAO+MpJy28qBZelL+rlaPqUn5sPDs4xvhPpp3N+9RPtLuX6qmpwfM3ePQfSegKY84ll09lfj49N3qJMeeuVN0TBeYIwcFhjtCBbbp+f/kETVnZp3toI+qz3kw3P2xJIw5DZppmd3TxhX8tSzt5DAxXDnue9lTVTU8wRwgAIBTehLa6JU2PHcax8WwKtqQRgzyoqV/kh4HvfK1o3cW8nWeNusN/3P14onpXFFdSJFX3agxBCAD2qnyMtIUXFaIkawcyic/Ingup8LHGE7LtBtfhN+OrR9k7RXyhkVA/GEy/PKOdvfxQzbg0bRPwxqf+0xbJG4aYt/OlJdr4rZlLpuiO7ORZo1TdqwEMjYKDw9CoE/o3i597ij10V/jh5i4jE1vTa66UPUrjISO6SSj/+xB4vuj0AU3sT8a8TMERmV8D5cgJ7t0fraVVFthiDUEINkAQOq24dP79U+zZnEo/4hCEouBZY9GJfZq/fmY1+YJD8uBmyidecus6SPQ3RRAiCMEGCEJnxvFky3/ch2e4a5qqPuiQiA+vjks74WEZAIBqoSnyfEv68hjZyv7Ya6Z22XVpJwQhADg4OU0iQ6v6rCs2km0WJZ+gBhgvH+9npwfPj/LoP5LQZn/nPF+ceDRj2Su50UssJxQlhyAEAGfHETI2nu2/03jQ4vkaqAHGJ9Bn7Iygmatc2/WscIDnixOOZH4yTR2zgSvWSdQ7KzBHCA4Oc4RgrtBIql41MbQRtawXIyj8BDWmT0lU74oqTUsStNPuXl5Dx3kOekqweVs1OeDDMkaj8ciRIxcvXiSEdOvWbeDAgVWcjCAEmyAIwZx5ELoz5KXW9Pokjq34KUgR8mRTamlPppMvtfgc90dq2XKL+d3oUc0wilYT+uRzBTvWGu7eFLQzKj/liBc9+o4QbN72QA4YhM2aNcvOzm7fvr2Li8uJEyfCw8N/++03mUxm9WQEIdgEQQjmzIPQ9LDolQL+ozPcdos5QpoizzanaYps+a8sCL8fxExtgyCsKVFLOzlgEK5Zs+bFF19UKpWEkPj4+OHDh3///feRkZFWT0YQgk0QhFAdJ7P5uafY+DvCz0PzLUwRhA+PL9Xr/v5DG7/Nco7QpXlbVfgURatO1XkdBwxCgebNm48ePfqrr76yehRBCDZBEEL17Uvn551iT1eyBr+JJxXoSgjGSB8aV6TTxm/V/f0HbygVHFKEdvN+aqq8ccuqX8HB1xFmZGTcvn27Xbt2UncEAJzO8EbUqVGy/WEyX4WVo7d0/Jkc/kwOn1NS5z1zLLS7pyoiMnhelEffERVWWRCiTz6X+eX/5f3yWV2usqhfQcjzfGRkZKtWrSZMmCB1XwDASQ1tRFV9w3csk2fr3VCa/WG8/X3GvxP0/ndunftXmB3k+aLTBzKXTCnY8R2nU9dBT2o9CKdPn96wEps2bRKcPGPGjOPHj2/ZssXV1VrBTQCAOkFX+dDGhmSu82/GHTexBl8EZaWd3vpKMDtYVtpp0STN3l8tt20TV63PEZ49ezY9Pd3qoS5dujRt2rT8y1mzZq1du3bfvn19+vSp4gUxRwg2wRwh1ECqrmz803z5hKXeAdTSXsyQhhQh5PebXMq9u5dnmlOtVViJaDN98rmCnT8Ybl8XtNMeSq/Hx3gOHk3JyraEleZhGY7jkpKSzpw5k56e3qJFi+eee87ynIKCgu+//z4xMVEulw8bNmz8+PE0Xd07zg8++GD58uV79uwZPHhw1WciCMEmCEJ4GK8cYX9IKgvCJ5pQh+7wJazwHNMa/CVmkbljGIOnaWqoeqWdxL2ura/VE0hNTe3UqZNWqzV9GRYWZhmEt2/fHjhw4O3bt/v27avRaKKjozdt2rRjx47KlgOaW7BgwfLly2NiYh6YggAAUnm2Of39QGrROS4qmTOa3SXGpfNx6cYAV9wCioGi3HsNces+uPBojGb/JvM5QmPu3byfP9Ue3K4KjySNQkV8z2r9zCKTyZ5++umvvvoqPj6+snNee+219PT0AwcOHD169Pz58wsXLoyJifnmm28e+OIGg2HhwoVFRUWPP/44dc+4ceNs+EMAANSO+d3o06Nkpl+jmtGNPai1A5nzz8ieaS6cRswuuT+69vsN/tNE7tNELkWNacSaoBiZ5+BRDT6IVo54kVK4mR8y3L6e8928ot9Wifl2Ns0RlpaWKhSKsLCwPXv2mLffvHkzJCRk1KhRO3bsMLUYjcagoCA/P7/k5OSqX5Pn+bNnzwoafXx8WrRoYfV8DI2CTTA0CrXkVDY/9zQbl17VRyjGSB8eq83X7ttUeGwPzxrN24Nmr5MHN63su2xSraHRBzp48CAh5Mknn7z/ujLZiBEjNm3adPv27caNG1fxvRRF9ejRo/rvlZ6ePnz4cLm8bMq0Q4cOlk+fApTT6erRJvfgSNq6kt8HkuHxiuM5lQ6KFuhKtFqLSUWwjYwZ/rJnz+ElcZsMF48RnieEnRsHMAAAEGxJREFUUIysiKPoexN2VXB1dS3Pi0rfQJRupqSkEEJCQkLMG023dCkpKVUHoa2Cg4NXrlzZqlUr05e+vr74eR+qhv8hUHuCPViSU+ljpTNOyzONrm91pF1RGPgheXmppnxguH1dE7eZzc+W9R2pathErNcWJwjVajUhxM/Pz7zR19eXEFJQUCDKW5RjGKZx48aVDZwCANSl0c2pNt40IeT3G3yKRjhMqjWQ2afYNVe4hT3ol1rRNEWGx5aN71GE7AsT5xPYecgbt/SbNI8Qoq3GvWD1ifPPYJpopCpuHG5aO8Fxlf6sBABg7ya0LpsCTCpgy4PQW0EK9PfPSdXxkw6znyZyC3rQ5XOKeMa0/hBnFtdUOCI3t0JxDdOX3t7eorwFAIC9WDOA+aQXo6pYcfZKAT8uHvOF9ZE4d4SmGbu0tDTzxtTUVEJIy5YP2EQcAMABlI+REkI6+VDjW1CRbeilCeyaK5zeWvzxhAyLNRKMkdYD4vztP/roo4SQ2NjYSZMmmVo4jtu3b1/z5s2bNWsmylsAANRn5WOk5QJcyVd9mXc70YvPceuuWpkkMg2TYoxUcuIMjbZq1eqxxx7buXNn+YrA1atXZ2ZmTps2jap2xWEAAMfTxIP6bmBVz4zyhNwuxLp7KVU3CJs2bUpRlEKhIITExsaa9n958803y0/47rvvlErlwIEDn3766cGDB7/99tuDBg165513aqXXAAAOpOUW46tH2axiQghJyOVnn2JNvzZfx8OGdaG6Q6Ovv/66aY2EuX79+pX/PjQ0NCEhYdWqVQkJCT4+PitXrpw2bZqLiwsBAHBuFCH7w2SEEJ7cXz5hrpQj665yW/7j3uvENHQnnyaW5d+LrejxeMqi9tV6GSbRYYs1sAm2WIP6gyeE/sFg+j1FSEdf6kKe8BPYS060ZaeQF1vRvzyKpfhWiHtdYxM8AABpnB0l+2EQ08SjwoMU5SlICDl3b5gUY6S1Cs/sAgDUkfIxUhMZTaa0oV9uTUcnc7NOsGqD8PzL+fzlfJ5gjLSWIQgBAOrO0EbCB+ldaDKtLU1T5JUjlS63Nz1HA7UEQ6MAANJzq3IqcH86NyzWeDaHJ4R8eIZtucVo+vXrNQyZigB3hAAA0uvmT33SiyGEnMvlt/xnffV9rzvG8S1oipD/tGWP2GgsRlOhBhCEAADSa+9NtfemCCG/XuO2/FfW2NSTuqW7/2Q/x5ON1zkam5SIDUOjAAD11KBg6miE7JHgCtHHmS24+OA0hzHSh4c7QgCAeqR8jJQQ0t6H9A+iDofL4tL5Fw4as0uEJ+fq+Vw9IRgjfTgIQgCAeqR8jNTc0EbUsyH0d1cqve07msG/0obIaPJnKvdvVtk949PN6H6BGEh9MAQhAIAdqDrQNl7nTufwi3rQRzL41ZfL8rKxB4UgrA4EIQCAHfi4B/NeZ5oQ8uEZzuqMYLKaH3eA9VPUec/sH4IQAMAO+LsSf1eKEKKU328c3pg6msEXme3jbZoyNNmZypkKPGGMtGp4ahQAwF6NakbfHC9/vwvNWIu5/en8p4ncp4ncmRw7K65Qx3BHCABgT8rHSAkh/q6UUk4+6cWkF5JfKl9Bka/nCSFpOv7be4/bNPWgprfHjVAZBCEAgD0pHyM1511l7deF57jbheSpZnR5pcN+gQjC+xCEAAB276lmdGMPihCyM5U7liUcCGU5su4qV8Uto5NDEAIA2L1hjahhjShCyO1CvjwIG7hTd4vuh6L5MzWpOn72KZZgjJQQgiAEAHBUc7rQwe7k7X+5O0XCe8Q7RcQ0TIoxUoIgBABwJOVjpISQAUFUd38qyI0aHGOs7Px8PSGERCVzS86VDZxGtqHndXWuaEQQAgA4jvIx0nLyKkPtqprvu9PY3Y8qL+2Up3e6tRYIQgAAR9bMk5h28U4r5L+9bOV5mRNZ/AmL52ucCoIQAMCRNXSn3u9CEUL+zbofhAGuJE9PWGvx9/1V/o+bRuJMY6QIQgAAp9NKSa1/hHn+AJuYJwxDrYHXGgghJE/PZ5eQqKR72elGIkMdMxcRhAAATqF8jJQQ0tCDtPOmJrSmZ55gKzv/n0z+mrpslQUhpJMvhSAEAAA7Vj5GWk0nsviwvyp93NSRIAgBAJzUlDb0qOYUIWR9Erc0wcpzNGqzwvdZxWVLDx1vjBRBCADgpFQuROVCEUL8FPfvFIc2ohJzSXaJcO4ws7hsmLSTLzWkIXUyu+yEZp5U7wD7rvGEIAQAgPs6+1JLetJ9/qx0UFRnIEcy+JcPlc0dvtSK/vlRpq56VysQhAAAzq58jJQQonKh7hRWtazwhpZfdK7SR2zsEYIQAMDZlY+Rmhg46v0uNCEku5hEJVuZO0xW3/99qo7fdoMj9jxGiiAEAIAKgt3KFlpcyOPLg9BbQdSlhLe4VzySwR/JYAkhL7WiH29IGe7l5uRQuurd3eoPBCEAADxYEw/q3Y7Uh2cqLWpYypK3/mW19x40fb4lghAAAOxcgFvZGCkhJNiN8net6uTfUzk7CT4hBCEAAFhXPkZqciSDfy6EJoSk6vjy5RPljBXvFTckc64MIfYwRoogBACAahkUTA0KZgghv1zjypdPeMopncHKU6Zv/Vt2wr9ZfOG98dJ1gxhvl7roqk0QhAAAUHMRTanfb/L6ytdTxN7iMovLfr+yf31ccYggBAAA2zTzpExjpISQfoFUTBqpIgjz9HXUqxpDEAIAgG3Kx0hNrmn4EpYQQjYkcwaLp0rNW6YdYV0ZwhPyeW9G5UIIIQxNlPJa73DVEIQAAPBQVvQrC8VN160EobldaWWHt98o+013f+rMKImTqH4/ygMAAPbJVyF1D6oNd4QAACCOyaF0yb3Jwj9Tq7w3vIflSL6eEEnHSBGEAAAgjvIxUkJIeFPKFIrTjrAFpZV+S2Ie7/uzgRAS7E4GBZUNUi7pSbdW1d22pQhCAAAQX0TTslSbcaxapSq0BrLt3sThzE51Om2HOUIAAJBecaUFEGsd7ggBAKAWrRvEmMZIU3X8kgSOIsTIkfK9uctxZrvTzDvN+SpIVgkZ2pAEulGEkCENqZbK2hosRRACAEAtKh8jJYS814khhJzN4Xv8ce8GkCLEYoO2+DtlY6SH75a1bHyMqb0gxNAoAABIxq0e7LmGO0IAAKhTMpr43FtlyPKkuMqTTQ7c4bUGLlXHt1FRDd2poiL6EQURa/9uBCEAANSpzr5U3stlawbj7/B5ep4QMu80l6K2UsXC5Ick7ock8waXoxH8gCBxBksRhAAAIJkhDSlCKELIlxeqtQC/NiAIAQDA/pzO5k0rLnoGUA85RoogBAAA6S3pyZjGSOPv8CVGomBI/B3+uqbSwdK3j5et0z8aIXvIMVIEIQAASK98jPS5kLKWFw6yVQShiLB8AgAAnBruCAEAoD56vCHlJacJIceyeHeGKF3IySxec29LmvKpwYdfRIEgBACA+mhqG3pqmwotA3cZ/8ksGyz9ui8j1vIJDI0CAIBTQxCCI9NqtVu2bJG6FwAgjp4B1NBG1NBGVDtyR8FWZ0eaakEQgiO7fv36qlWrpO4FAIjj677M/jDZ/jAZ/+UT7gU3xXpZBCEAADg1BCEAADg1BCEAADg1iufrYt2+iPz9/YODg11dXaXuCNiB4uLimzdvtmvXTuqOAICYLl++3KJFi+oEwTPPPDN37tyqz7G/IExMTDQajQ8+D4AQQoharVapVFL3AgDEVFBQ4O3tXZ0zW7Ro4ePjU/U59heEAAAAIsIcIQAAODUEIQAAODUEIQAAODVsug1OqqCg4Pz58wzDDBgwQOq+AIA4Lly4kJCQYDAYOnTo0KdPn2p+F4IQnI5are7Zs+f169d5nm/ZsuW1a9ek7hEAiOCRRx75559/QkJCPD09L1y4MGLEiB07digUigd+I4ZGwenIZLI33njj8OHDr7/+utR9AQDRPPvss6mpqdeuXUtISDh8+HB8fPzq1aur841YPgHO63//+9+OHTtwRwjgkHr16tWmTZtffvnlgWfijhAAABxNcXFxSkpK69atq3MyghAAABzNO++8I5fLp0+fXp2T8bAMAAA4lK+++io6OnrXrl0BAQHVOR9BCAAAjuO77757//33t2zZMmzYsGp+C4IQ7JjBYLh48WJiYmJpaWlYWFiTJk0sz7l48eLmzZuzsrKaNGny0ksvhYSE1H0/AaD6WJZNSko6d+5cYWFh//79O3bsaHlOamrqL7/8kpqaGhAQMG7cuM6dO5vaN2zYMGPGjB9//HH06NE2vCUPYJ+WLVtmvkJoz549ludERUXJZDIfH5/evXt7eHh4eHj89ddf5Uffe++9li1b1mGXAeABNm7c6OnpWX5dr1ixwvKcuLg4T09Pd3f33r17+/r6ymSy77//nuf56OhouVz+888/2/qmeFgG7JW7u/vLL7+8Zs2ayubDb9y48dprr3Xr1u3GjRsnTpxITk4OCgp66aWXNBpN165dfX19V69efePGDV9fX19f3/Pnz9dx/wHAkouLy+jRo7/++uuPP/7Y6gk6ne6FF17w9fVNSko6ceLEzZs3e/fuPX369GvXrr377rscx82YMcP3noiIiOq8KYZGwV7NmDHD9Jsvv/zS6gnfffddaWnpokWLTPUIGzZsOHv27GnTpm3cuHH16tUl/9/e3bO0DoZhHL8jqZDaDDGLg5ZCdBYKblapH8Cl4KBbK+Ls0k8g2ElB8AVnV0EQitB+ARenCgY3ERy0voEEpM0ZAqH09Bw9yeHkmPx/U3PzNLmHPlxpnjR1nN7BXDIF/gelUqlUKonI6enpwAHeSsfu7u74+LiI6Lq+ublZLBb39/dPTk4+Pj56B3/6T4QeghCx1Ww2dV0vFot+xTs9bDQa6+vr0fUFILhmsykii4uLfmV2dtYwjEaj8atz4k9xaRSxZdv2xMTE8PCwXxkbG8tkMtfX1xF2BSAM27ZTqVTvnXGqquZyOdu2A++TIEQ8dTqdt7c30zT76qZpPj8/R9ISgPCenp5M01QUpbdomqbjOH3rHV9HECKeut2uiAwN9X/CVVXtdDpRdATgL3Bdd+C8FpHAU5sgRDylUilN09rtdl/98fHRu3cGwHek6/rAea2qajqdDrZPghCxZVnW3d2d99XQ8/r6+vLyYllWhF0BCMOyLMdxHh4e/Irrure3t5Zl9V0v/TqCELFVKBTa7fbFxYVfqdfrruvOz89H2BWAMAqFgojU63W/cnl5eX9/Pzc3F3ifBCFiq1KpKIpSq9W8lQPHcba3tzVNW1lZibo1AAEtLy+PjIzs7Oy8v7+LSLfbrdVqIlKpVILvNOzzcICInJ2dGYZhGIamaSKSyWS8zZubG39MtVoVkenp6XK5PDU1pSjK3t5ehD0D+L2rqytvInsPWkun097m+fm5P+bo6EhRFMuyyuVyPp8XkY2NjTAH5Qf1+K5yudza2trP9d57Yba2tmZmZo6Pj1utVj6fPzg4WFhY+Ic9Avgzo6OjA+d1Npv1X6+urk5OTh4eHrZarWw2W61Wl5aWwhxUcV03zPsBAPjWWCMEACQaQQgASDSCEACQaAQhACDRCEIAQKIRhACARCMIAQCJRhACABKNIAQAJNoPbATIABRMP9IAAAAASUVORK5CYII=", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(3:4:100, \n", " n -> abs(fint_gauss(x -> .5*x^(-.5), 0, 1, n) - 1),\n", " marker=:auto, yscale=:log10, xscale=:log10, label=\"error\")\n", "plot!(n -> 1/n, label=\"\\$1/n\\$\")" ] }, { "cell_type": "markdown", "id": "729e3fa3-199f-441e-96a2-201b48bfdeae", "metadata": {}, "source": [ "## Tanh-Sinh quadrature\n", "\n", "When functions have singularities near the endpoints, it is usually more efficient to integrate via a change of variables. \n", "Suppose we have a strictly monotone differentiiable function $\\phi : \\left( -\\infty, \\infty \\right) \\rightarrow \\left( -1, 1 \\right)$.\n", "Then with $x = \\phi \\left( s \\right)$, our integral transforms as\n", "\n", "$$ \\int_{-1}^1 f \\left( x \\right) \\, dx = \\int_{-\\infty}^\\infty f \\left( \\phi \\left( s \\right) \\right) \\phi ' \\left( s \\right) \\, ds $$\n", "\n", "The tanh-sinh method uses a transformation such that $\\phi ' \\left( s \\right) \\rightarrow 0$ faster than the singularity $f \\left( \\phi \\left( s \\right) \\right)$ grows, such that the integrand goes to $0$ at finite $s$." ] }, { "cell_type": "code", "execution_count": 25, "id": "8e314f0c-dd46-4892-8e85-7b284f9e39da", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tanhsinh(s) = tanh(π/2*sinh(s))\n", "\n", "# Here's the transformation\n", "function dtanhsinh(s)\n", " ds = 1\n", " t = π/2 * sinh(s)\n", " dt = π/2 * cosh(s) * ds\n", " (1 - tanh(t)^2) * dt\n", "end\n", "\n", "# And lets plot the function and integrands\n", "p = plot([tanhsinh], color=:black, label=\"tanhsinh(s)\",\n", " xlims=(-3, 3),\n", " xlabel=\"s\", title=\"tanh-sinh function and integrands\")\n", "for f in integrands\n", " plot!(s -> f(tanhsinh(s))*dtanhsinh(s), label=\"$f ∘ tanhsinh\")\n", "end\n", "p" ] }, { "cell_type": "markdown", "id": "1f5b7579-2c7f-49e2-a7a0-0b3aa1404cb5", "metadata": {}, "source": [ "### Implementation\n", "\n", "The function below implements tanh-sinh quadrature on the interval $\\left( -1, 1 \\right)$.\n", "Given the number of points, we need to choose both the limits of integration (we can't afford to integrate all the way to infinity) and the spacing.\n", "Here we make an arbitrary choice to integrate on the interval $\\left( -L, L \\right)$ where $L = \\log \\left( n \\right)$.\n", "The grid spacing thus scales as $h \\approx 2 \\log \\left( n \\right) / n$.\n", "\n", "Modify the quadrature so it can be used to integrate on an arbitrary interval $\\left( a, b \\right)$." ] }, { "cell_type": "code", "execution_count": 26, "id": "18af080b-8694-4d15-bafc-da3e3de1619f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "fint_tanhsinh (generic function with 1 method)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function fint_tanhsinh(f, a, b; n=9)\n", " L = log(n)\n", " h = 2 * L / (n - 1)\n", " s = LinRange(-L, L, n)\n", " x = tanhsinh.(s)\n", " w = h * dtanhsinh.(s)\n", " ## Challenge: modify the weights w and points x to integrated on (a, b), not (-1, 1)\n", " w' * f.(x)\n", "end" ] }, { "cell_type": "code", "execution_count": 27, "id": "fbc57597-3b9e-4880-9a59-3b2b3cdac549", "metadata": {}, "outputs": [ { "data": { "image/png": "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5szOnTs3btz42muvXXvttWiCb5dQmIXN1dXV9dBDDz366KNLliwZ9wBorkTbt28X5hsLfvKTn9TV1T311FN33323MEF0XFnbXGPBqVERtFqtVCp1uVyJhTzPezweo9GYqlqlHE3T27ZtO3LkyIsvvrh169bEpwwGg9vtTjre7XZnbXNpNJqrr776+uuv/8EPfvDpp5/qdLq7775beEpok6Rvl9B6Wdhc3/ve9woLC2+77TaPx+PxeLxeL0KIZVmPxxMOhxE016QMBoNwE74PP/wwXoLOtU+c8FB4KstBEIoglUrLy8sdDkfiv6H6+vpYll20aFEKK5ZCDMPceOONH3744QsvvLBjx46kZysrKwcHByORSLwkEAgIa07mt5rpyGq1btiwweFwDA0NIYQqKioIguju7k48pqurCyGUhd+uU6dOtbS05OTkmM1ms9ksnGbYs2eP2Wx++OGHETTXVOx2O0o4Syy0idA+cV1dXVqtVjgyy0EQinPFFVcMDQ01NDTES9555x2E0MaNG1NXqZRhWfYb3/jGu+++u3Pnzn/+538ee8CVV14ZDof/8Y9/xEt2797NcVx2NtdYPT09EolErVYjhHQ63erVqw8cOOD3++MHvPvuuygrv11PPPHEcwmeeuophNDy5cufe+45YXMZvV5fW1u7f//+xEmSWdtcY33yySfo3OwhhNAVV1yBEHrvvffiB/T39x8/fvzKK68c9xJs1pm3hRqZZaJ1hPX19QRBXHfddfEF9VVVVWazOQsX1HMcd9NNNxEE8dRTT010zNmzZ+Vy+WWXXRZfUL969WqVSpWFC+o/++yzAwcOxNd60zT92GOPIYQ2b94cPyZphbiwoH7NmjVZuEI8STAYRGPWET7//PPowgX1Wq127dq1WdhcL7300sjISPzhK6+8olAozGazx+MRSoSFOjk5OfEF9cJc3HfeeSc1NU4zEIQX+POf/zzuPxd6enrixwgbgpSVlW3dulXYYu3NN99MYZ1T5cSJExP96ypxjfPOnTuFLda2bt0qbLH2hz/8IXW1TpnnnnsOIWQ2m1etWlVTUyNcx6qurhY6JgHHccKeYStXroxvsXbq1KkUVjtNjBuEHMd99atfhebieb64uFgul5eXl1988cXCZocGgyFpff3hw4eTtli7++67U1XhdEPwMGUowenTp3ft2jW2/Hvf+17iut19+/b97W9/czqd5eXlWbvp9vDw8O9///txn7r//vtJkow/FDbd7uvrKyoqytpNtymK2rt375EjR3p6ehBCpaWla9as+drXvpbYUOjcptvvv/8+RVE1NTVZu4t0EpZln3zyyYk23d69e3eWN9fBgwf379/f3t7ucrlMJlNtbe2tt96am5ubdJiw6XZzc7PZbIZNtxNBEAIAAMhqMFkGAABAVoMgBAAAkNUgCAEAAGQ1CEIAAABZDYIQAABAVoMgBAAAkNUgCAEAAGQ1CEIAAABZDYIQAABAVoMgBAAAkNUgCAEAAGQ1CEIAFqBvf/vbTz755K5du+rq6mw227p16xLvRQcASASbbgOwAFVWVspkMpZlv//97+t0uqeffvr06dPt7e3ZeXMGACYnS3UFAABzoq+vr6WlRUi+q6++uqys7JVXXvnBD36Q6noBkHbg1CgAC9Pll18eH/8VFxfn5uZ2dXWltEYApCkIQgAWpqT7sqrV6nA4nKrKAJDOIAgBWJgIgkh1FQDIDBCEAAAAshoEIQAAgKwGQQgAACCrwTpCABagU6dO6XS6kpKSSUoAAAIIQgAAAFkNTo0CAADIahCEAAAAshoEIQAAgKwGQXhEvHUAAAALSURBVAgAACCr/X859EI1E6zCnwAAAABJRU5ErkJggg==", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot_accuracy(fint_tanhsinh, tests, 9:4:60, ref=[2,3,4])\n", "plot!(xscale=:identity,)" ] }, { "cell_type": "code", "execution_count": 10, "id": "ec5c0a61-793d-43bf-9195-cd2d321f3fbe", "metadata": {}, "outputs": [ { "ename": "LoadError", "evalue": "DomainError with -0.9999999999999508:\nlog was called with a negative real argument but will only return a complex result if called with a complex argument. Try log(Complex(x)).", "output_type": "error", "traceback": [ "DomainError with -0.9999999999999508:\nlog was called with a negative real argument but will only return a complex result if called with a complex argument. Try log(Complex(x)).", "", "Stacktrace:", " [1] \u001b[0m\u001b[1mthrow_complex_domainerror\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mf\u001b[39m::\u001b[0mSymbol, \u001b[90mx\u001b[39m::\u001b[0mFloat64\u001b[0m\u001b[1m)\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90mBase.Math\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mmath.jl:33\u001b[24m\u001b[39m", " [2] \u001b[0m\u001b[1m_log\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./special/\u001b[39m\u001b[90m\u001b[4mlog.jl:295\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [3] \u001b[0m\u001b[1mlog\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mx\u001b[39m::\u001b[0mFloat64\u001b[0m\u001b[1m)\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90mBase.Math\u001b[39m \u001b[90m./special/\u001b[39m\u001b[90m\u001b[4mlog.jl:261\u001b[24m\u001b[39m", " [4] \u001b[0m\u001b[1m_broadcast_getindex_evalf\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:678\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [5] \u001b[0m\u001b[1m_broadcast_getindex\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:651\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [6] \u001b[0m\u001b[1mgetindex\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:610\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [7] \u001b[0m\u001b[1mmacro expansion\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:973\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [8] \u001b[0m\u001b[1mmacro expansion\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4msimdloop.jl:77\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [9] \u001b[0m\u001b[1mcopyto!\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:972\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [10] \u001b[0m\u001b[1mcopyto!\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:925\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [11] \u001b[0m\u001b[1mcopy\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mbc\u001b[39m::\u001b[0mBase.Broadcast.Broadcasted\u001b[90m{Base.Broadcast.DefaultArrayStyle{1}, Tuple{Base.OneTo{Int64}}, typeof(log), Tuple{Vector{Float64}}}\u001b[39m\u001b[0m\u001b[1m)\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90mBase.Broadcast\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:897\u001b[24m\u001b[39m", " [12] \u001b[0m\u001b[1mmaterialize\u001b[22m", "\u001b[90m @\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mbroadcast.jl:872\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m", " [13] \u001b[0m\u001b[1mfint_tanhsinh\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mf\u001b[39m::\u001b[0mFunction, \u001b[90ma\u001b[39m::\u001b[0mInt64, \u001b[90mb\u001b[39m::\u001b[0mInt64; \u001b[90mn\u001b[39m::\u001b[0mInt64\u001b[0m\u001b[1m)\u001b[22m", "\u001b[90m @\u001b[39m \u001b[35mMain\u001b[39m \u001b[90m./\u001b[39m\u001b[90m\u001b[4mIn[8]:8\u001b[24m\u001b[39m", " [14] top-level scope", "\u001b[90m @\u001b[39m \u001b[90m\u001b[4mIn[10]:2\u001b[24m\u001b[39m" ] } ], "source": [ "# If you complete the challenge above\n", "@assert fint_tanhsinh(log, 0, 1, n=20) ≈ -1\n", "println(\"Tests pass\")" ] }, { "cell_type": "markdown", "id": "2f0d9d42-6d0a-4f92-a9d4-bc6e86766a13", "metadata": {}, "source": [ "## Finite Element methods\n", "\n", "* Need to integrate the product of basis functions over every element\n", "\n", "* Choose a quadrature (e.g. Gauss) to minimize number of points needed for sufficient accuracy\n", "\n", "* Bad effects if insufficient points" ] }, { "cell_type": "markdown", "id": "9f4006bd-ff22-4d9d-aa5c-de3e5f382713", "metadata": {}, "source": [ "## Rough/singularities in middle of domain\n", "\n", "If a function has rough or singular behavior in the interior of the domain, we will get low accuracy results" ] }, { "cell_type": "code", "execution_count": 11, "id": "39add0ed-857c-4eaa-b045-b93f1985d336", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.11/Project.toml`\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.11/Manifest.toml`\n" ] }, { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Pkg\n", "pkg\"add SpecialFunctions\"\n", "using SpecialFunctions\n", "\n", "f_heaviside(x) = 1.0 * (x > 0)\n", "F_heaviside(x) = max(x, 0)\n", "f_mollify(x, sigma=.02) = 1/(sigma * sqrt(2*π)) * exp(-.5*(x/sigma)^2)\n", "F_mollify(x, sigma=.02) = .5*erf(x/(sigma*sqrt(2)))\n", "rough_tests = [(f_heaviside, F_heaviside), (f_mollify, F_mollify)]\n", "plot([f_heaviside, f_mollify], xlim=(-1, 1), label=[\"heavyside\" \"mollify\"])" ] }, { "cell_type": "code", "execution_count": 12, "id": "96afc94e-fb1b-46cf-bc52-29fd07e3cbcd", "metadata": {}, "outputs": [ { "data": { "image/png": "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x4FoiyihSper0uW5p6S6R/yh+4h+e3DaOXxAsO5xWvc4MTmqr9IY6whtiRpGwU9kgQGD7ihy/x8fRGpPgypmm41U4NyZ97z37jsdHR1zfOU33njjpJNOstlsX3/99UknnXTSSSfNMS74ww8/XLlypVarra6u/sMf/jAtk6ilpWX9+vXp6ek4jtfW1j7zzDNTT3j33XfPO++84uJiHMczMjIuuOCCvr6Duz/zPH/22WfffPPN0y7373//+6STTtq/fz8EQdu3bz/++OP7+/tDh5xO580331xWVobjeHp6+sqVK5977rnQoba2tuOPP/7jjz+efJ3x8fFNmzaRJGk0Gs8999yBgYGZb+2DDz448cQTSZIkCGLt2rXxvSG6KNDoCped+OAplzeWr7hRpjBMO2oZ+Oq/b23Y8Y8TBva/PnXdKWDBUWfK805LbbizxHR9YeZaMuzebJyftzQ69z87sPu3Hd2vjzi73DM3tQEcMUCE0WJwcLClaZ+wYuOczl72M1ShfvvtuY4IU1NT6+vrURTV6XT19fX19fVarXbWZ+3YsWPjxo0rV6687bbbVCrVnXfe+cgjj0we3blz54oVK3bt2rV58+Y//OEPubm5W7Zsuf322ydPePLJJ/1+/6ZNm/74xz+ef/7577333jHHHGOxWCAIQlFUq9U+8sgj09bCPPzww+3t7WVlZRAEDQ0NffHFF273wRUZGzZseOKJJ04//fS//OUvt9xyS1lZ2eeffx46RNP0F198MTY2FvrS7XavWbPmX//614YNG+6++25BENauXev1eqde6K9//evpp5/OMMxNN930m9/8hmGYk08+edu2bXP8fi5lQtEWp1zeWHfCn9S6gmlHQ9EWHz6/vPO7x4J+Oi4VLh3UOYr8M9KW31la+38FGasNYfdm47z8xG5H69P93/62o+eNUWe4bd4AhwuYGo0WHR0doihC+cvndLZEDmfXtrW1zfHFV69evXr16meffbaqquqBBx6Y47P27NnT1NRUUlICQdD1119fXFz8wgsv3HDDDRAEcRx30UUXpaen7927F8dxCIKuvfbaK6644sEHH7ziiisKCgogCNq6datSqZx8tQsuuGD58uXPPfdcSJYXXXTRiy+++K9//eu6664LndDV1bV79+7bbrttZn8IwzAff/zxnXfeee+9904+GCky99FHH+3s7Hzh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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot_accuracy(fint_tanhsinh, rough_tests, 5:4:800, ref=[2,3,4]); plot!(legend=:bottomleft)" ] }, { "cell_type": "markdown", "id": "00d22b5e-95c4-4314-b690-d91ccd60267b", "metadata": {}, "source": [ "## Adaptive integration\n", "\n", "Adaptive integration is a process where we adaptively subdivide the integration into smaller pieces until the numerical integral converges." ] }, { "cell_type": "code", "execution_count": 28, "id": "34ae1b3f-8831-485a-9608-1a1eb29cf04e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.11/Project.toml`\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.11/Manifest.toml`\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "F_heaviside(1 - 0.3) - F_heaviside(-1 - 0.3) = 0.7\n" ] }, { "data": { "text/plain": [ "(0.700000008169331, 9.264907000048497e-9)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Pkg\n", "pkg\"add HCubature\"\n", "using HCubature\n", "\n", "@show F_heaviside(1 - .3) - F_heaviside(-1 - .3)\n", "hquadrature(x -> f_heaviside(x - 0.3), -1, 1, maxevals=1000)" ] }, { "cell_type": "code", "execution_count": 14, "id": "1d64a739-ce3d-4dbc-a1de-d3d2cb26a8d8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1.0000000000000002, 6.773756033519694e-10)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hquadrature(f_mollify, -1, 1, maxevals=1000)" ] }, { "cell_type": "code", "execution_count": 15, "id": "546c9eb1-1933-4756-aa5a-c737b14d1a41", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F_mollify(1) - F_mollify(-1)" ] }, { "cell_type": "markdown", "id": "664753b9-26d4-4a5c-b03f-b6900cc09cf8", "metadata": {}, "source": [ "## Quadrature/cubature for multiple dimensions\n", "\n", "Here is one such package: [quadpy](https://pypi.org/project/quadpy)" ] } ], "metadata": { "kernelspec": { "display_name": "Julia 1.11.6", "language": "julia", "name": "julia-1.11" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.11.6" } }, "nbformat": 4, "nbformat_minor": 5 }