{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# *Sampling and Integration - From Gaussians to Maxwell and Boltzmann Distributions*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Doruk Efe Gökmen -- 01/08/2018 -- Ankara`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sampling and Integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider 1D gaussian integral $I$. We calculate it as follows: $I^2=\\int^\\infty_{-\\infty}\\frac{\\text{d}y}{\\sqrt{2\\pi}} \\int^\\infty_{-\\infty}\\frac{\\text{d}x}{\\sqrt{2\\pi}}e^{-(x^2+y^2)/2}=\\int^{2\\pi}_0 \\frac\n", "{\\text{d}\\phi}{2\\pi}\\int^\\infty_0 r e^{-r^2/2} \\text{d}r = \\int^{2\\pi}_0 \\frac\n", "{\\text{d}\\phi}{2\\pi}\\int^1_0 \\text{d}\\Upsilon=1$. \n", "\n", "The variable transformations indicate a transformation between uniformly distributed random variables $\\Upsilon, \\phi$ and gaussian distributed random variables $x, y$. Changes of variables in integrals also apply to samples. This is a relation between the integration variables on the exponent of the gaussian and the gaussian distributed random variables." ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%pylab inline\n", "import random, math, pylab\n", "\n", "def gauss_test(sigma):\n", " #the 2nd transformed random variables are uniformly distributed\n", " phi = random.uniform(0.0, 2.0 * math.pi) \n", " Upsilon = random.uniform(0.0, 1.0)\n", " #the first transformed variables are\n", " Psi = - math.log(Upsilon)\n", " r = sigma * math.sqrt(2.0 * Psi)\n", " #the original variables\n", " x = r * math.cos(phi)\n", " y = r * math.sin(phi)\n", " return [x, y]\n", "\n", "#exact Gaussian distrubution:\n", "list_x = [i * 0.1 for i in xrange(-40, 40)]\n", "list_y = [math.exp(- x ** 2 / 2.0) / (math.sqrt(2.0 * math.pi)) for x in list_x]\n", "\n", "#sampled distribution:\n", "n_sampled_pairs = 50000\n", "data = []\n", "for sample in xrange(n_sampled_pairs):\n", " data += gauss_test(1.0)\n", "#graphics output\n", "pylab.plot(list_x, list_y, color='b', label='exact')\n", "pylab.hist(data, bins=150, normed=True, color='r', histtype='step', label='sampled')\n", "pylab.legend()\n", "pylab.title('Sampling of the gaussian distribution')\n", "pylab.xlabel('$x$', fontsize=14)\n", "pylab.ylabel('$\\pi(x)$', fontsize=14)\n", "pylab.savefig('plot-gauss_test.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plots of independently distributed Gaussian random variables is given below. In the figure, each point is an independent random variable in $x$ and $y$. The resulting 2D distribution is isotropic. The reason for this can be seen in the previous section where we have used the variable transformation to get an integral over angle $\\phi$ on the $xy$ plane which can be seen as a randomly distributed number between $0$ and $2\\pi$ in the evaluation of the gaussian integral $I$. Hence, this property is unique of gaussian distributions, and is generally valid for gaussians in any dimensions, as the 3 variable case (plotted in the second figure) also suggests so." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%pylab inline\n", "import random, math, pylab, mpl_toolkits.mplot3d\n", "\n", "nsamples = 10000\n", "x_list, y_list, z_list, x_list_n2, y_list_n2, x_list_n3, y_list_n3, z_list_n3 = [], [], [], [], [], [], [], []\n", "for sample in range(nsamples):\n", " #two gaussian distributed random variables:\n", " x_list.append(random.gauss(0.0, 1.0))\n", " y_list.append(random.gauss(0.0, 1.0))\n", " z_list.append(random.gauss(0.0, 1.0))\n", "\n", "#begin graphics output\n", "#2d distribution\n", "pylab.plot(x_list, y_list, color='black', marker='.', linestyle='')\n", "pylab.title('Samples from the 2D Gaussian distribution')\n", "pylab.xlabel('$x$', fontsize=14)\n", "pylab.ylabel('$y$', fontsize=14)\n", "pylab.xlim(-4.0, 4.0)\n", "pylab.ylim(-4.0, 4.0)\n", "pylab.axes().set_aspect('equal') # set the aspect ratio of the plot\n", "pylab.savefig('plot-gauss_2d.png')\n", "\n", "#3d distribution\n", "fig = pylab.figure()\n", "ax = fig.gca(projection='3d')\n", "ax.set_aspect('equal') # set the aspect ratio of the plot\n", "pylab.plot(x_list, y_list, z_list, '.')\n", "pylab.title('Samples from the 3D gaussian distribution')\n", "ax.set_xlabel('$x$', fontsize=14)\n", "ax.set_ylabel('$y$', fontsize=14)\n", "ax.set_zlabel('$z$', fontsize=14)\n", "pylab.show()" ] }, { "cell_type": "code", "execution_count": 257, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%pylab inline\n", "import random, math, pylab, mpl_toolkits.mplot3d\n", "\n", "#we can also give the distribution a \"haircut\"! Let us normalise each point to a radius equal to 1:\n", "nsamples = 5000\n", "x_list_n2, y_list_n2, x_list_n3, y_list_n3, z_list_n3 = [], [], [], [], []\n", "\n", "for sample in xrange(nsamples/5):\n", " x, y, z = random.gauss(0.0, 1.0), random.gauss(0.0, 1.0), random.gauss(0.0, 1.0)\n", " radius_2 = math.sqrt(x ** 2 + y ** 2)\n", " x_list_n2.append(x / radius_2)\n", " y_list_n2.append(y / radius_2)\n", "\n", " radius_3 = math.sqrt(x ** 2 + y ** 2 + z ** 2)\n", " x_list_n3.append(x / radius_3)\n", " y_list_n3.append(y / radius_3)\n", " z_list_n3.append(z / radius_3)\n", " \n", "#figure output \n", "pylab.plot(x_list_n2, y_list_n2, color='black', marker='.', linestyle='')\n", "pylab.title('Uniform sampling of the circle')\n", "pylab.xlabel('$x$', fontsize=14)\n", "pylab.ylabel('$y$', fontsize=14)\n", "pylab.xlim(-2.0, 2.0)\n", "pylab.ylim(-2.0, 2.0)\n", "pylab.grid()\n", "pylab.axes().set_aspect('equal') # set the aspect ratio of the plot\n", " \n", "fig = pylab.figure()\n", "ax = fig.gca(projection='3d')\n", "ax.set_aspect('equal')\n", "pylab.plot(x_list_n3, y_list_n3, z_list_n3, '.')\n", "pylab.title('Uniform sampling of the sphere surface')\n", "ax.set_xlabel('$x$', fontsize=14)\n", "ax.set_ylabel('$y$', fontsize=14)\n", "ax.set_zlabel('$z$', fontsize=14)\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, the renormalized distributions indicate that the gaussians are uniformly distibuted on the suface of the (hyper)sphere. We can also directly sample the points inside the 3d sphere of radius 1 as done by the following program." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "data": { "image/png": "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3nnnHZmdnS0//vhjjegqbrjhBvmd73xH+/zaa69pD8rjjz8u8/PzDdtv2rRJPvroo1JKKc866yz50ksvyY8//lhu2bJFXn755XL37t3y3XfflatXr9b2WbBggXziiSe0z3fccYe89dZbg851OOION0cplWv2zjvvaJ+fffZZedZZZxnG+O53vyvvuece6fV6ZVRUlKyoqNB+27dvn1y4cGFI8xnL/RntWO+9954MCwuT/f392u/l5eUyJiZG9vX1SSmVB//ee+8NOjebzSYB2dXVpV0nlbg///nP5fbt22V5eXnQffXQE/fEiRPSZDJJu92u/X7nnXfKG264QUqpEFcvaEbCAw88INetW2cgt9PplICsra0NaQw5Xfm4CQkJ9PT0aJ8bGxtZsGAo2ScmJoakpCQaGoaSfdLShrKwoqKi6O3tDTr2DTfcwJNPPgnAk08+yXXXXRd0u69+9avcfvvt3HbbbaSmpvLd734Xu90+6vH85wqwYMECba6bN2/m/fffZ+/evWzevJlzzjmHDz74gA8++CBgeRDqOQ2H0fbPyhpKyKmtreXTTz8lPj5e+/fUU0/R3NxMW1sbDoeD9evXa7997Wtfo62tbdLmoiKUY82dO5eIiAjt89KlS8nJyWHXrl04HA5eeeUVrr76agA8Hg933nknS5YswWq1snDhQkBRi/1xxx13sHTpUs4//3wWL17MAw88ELBNMDQ2NpKYmEhsbKz2nf6eg/FaD4fdu3fzX//1X7z88ssG+47KBf0yaDIw6cTNzc2lrKxM+zxv3jxqa4ey/fr6+ujo6CAjIyPY7iPi2muvZefOnRQWFnL8+PERLYL/+I//yGeffcbRo0cpKyvj3/7t30Yd33+uACdOnNDm6k/czZs3D0vcUGHMJBvffllZWWzevJmuri7tX29vLw899BDJyclERkZy9OhR7bfu7u4xv0hCmXsoxwp2vldddRXPPPMMO3fuZOXKlSxdqhSIfPrpp9m5cydvv/023d3d1NTUAAS1gcTGxvLb3/6Wqqoqdu3axe9+9zveeeedUc9h3rx5dHZ2GoSN/p4PN2c9SktLueGGG3j++ecDSH78+HEWLlyI1RoslXn8mHTibt26lQ8++ED7fPXVV/Poo49SUFDA4OAgd911F6effrr29hwLMjMzyc/P57rrruOb3/zmsJbrAwcO8Omnn+Jy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GHl5eTQ3N48oiRXSCiFcBt4MBgP33HMPzz33HEuWLBm2cw/khr53714eeOABAFavXs2nn346qje14cSoNxksXbqUmpoah7//+te/JiMj45KvH03R6bGACRMmsHz5cpYvX65K9Lz11lv8+Mc/5tprr2XlypVcf/316PV6cnNzsVgsqoztSHUyOYMyWaG/iX0NDQ2sXr2aX/3qV8M+5nIgTQPaY/R6PQEBATQ0NIy6NM9wYNSJ+8knn1zW60dTdHqswcPDgzvuuIM77rgDk8nE559/zs6dO3nqqacIDAxkypQp/PGPf3TwiYerk8kVlKkOZrPZZbNEU1MT99xzD//+7//OnXfeOaTzXGoN9nBWbnmpY64WXHVtffPnz6egoIDi4mJiYmJ48803eeONN670skYd7u7uLF26lKVLl7JhwwZycnLw9/fnxhtvJC0tjYyMDJYsWeKQ87WfLqBUNuXn5/fbyeQKQgguXryIyWRySdqWlhbuuecennzySVasWDEsn98eA7mhK8dMnDgRs9lMS0uLS+XMMQ8hxGD+jSh2794tYmJihIeHhwgPDxfLli0TQghRWVkp7rjjDvW4ffv2ienTp4upU6eKjRs3jvSyxjzOnDkjZFkWQghhNpvFoUOHxOOPPy6Sk5PF2rVrxfbt24XBYBAdHR0u/7W3t4vKykpx+vRp8cknn4hjx46J4uJi0dra2u/rzpw5I44fPy7a29udPl9TUyOuv/568eabb47od2AymcSUKVNEUVGR6OnpESkpKeLcuXM2x2zZskU89thjQgghtm/fLu65554RXdMQMSAujql00EihsbGRtWvXUlJSwuTJk3n77bedCqG5ubmRnJwMQFxcHO++++5oL3VYIcsyJ06cYMeOHTYSPbfeemu/ypGid86PIrbu7e3tVGz94sWLdHV1MWvWLKeWtr29nTVr1vDII4+wbt26EfmMWlyqaaC7u5t169aRmZlJcHAwb775pssOpSuIqy+PO1J46qmnCA4OZsOGDWzatImmpiY2b97scJySPvk6QpHoURrIJ02aREZGBnfccUe/Iu9CU56o7WTq6Oigp6fHJWk7OztZs2YN69at46GHHhrJj/Z1wzhxFSQmJnLw4EGioqKorq5m8eLF5OXlORz3dSauFor6xI4dO9i/f3+/Ej326Ojo4MKFC7S1teHv7++0k6mrq4v7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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%pylab inline\n", "import random, math, pylab, mpl_toolkits.mplot3d\n", "\n", "x_list, y_list, z_list = [],[],[]\n", "nsamples = 1000\n", "for sample in xrange(nsamples):\n", " x, y, z = random.gauss(0.0, 1.0), random.gauss(0.0, 1.0), random.gauss(0.0, 1.0)\n", " length = random.uniform(0.0, 1.0) ** (1.0 / 3.0) / math.sqrt(x ** 2 + y ** 2 + z ** 2)\n", " x, y, z = x * length, y * length, z * length\n", " #if z < 0.075 and z > -0.075 or z > 0.85 or z < -0.85:\n", " x_list.append(x)\n", " y_list.append(y)\n", " z_list.append(z)\n", "# graphics output\n", "fig = pylab.figure()\n", "ax = fig.gca(projection='3d')\n", "ax.set_aspect('equal')\n", "pylab.title('Uniform sampling inside the sphere\\n(only shown three intervals for z)')\n", "ax.set_xlabel('$x$', fontsize=14)\n", "ax.set_ylabel('$y$', fontsize=14)\n", "ax.set_zlabel('$z$', fontsize=14)\n", "pylab.plot(x_list, y_list, z_list, '.')\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following program distributes the $d$ dimensional gaussian random variables on the surface of the $d$ dimensional hypersphere and calculates the corresponding radii distributions $\\pi_d(r)$." ] }, { "cell_type": "code", "execution_count": 266, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.42951734083905774\n", "0.46408913359880166\n", "0.4790036671204991\n", "0.4890500521524456\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# %pylab inline\n", "import random, math, pylab, numpy\n", "\n", "nsamples = 100000\n", "\n", "colors = ['0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9']\n", "colors2 = ['r','g','b','y','c','m','0.7','0.8','0.9']\n", "i = 0\n", "for dimension in [2,4,6,10]:\n", " r_samp = []\n", " i += 1\n", " #analytic distribution of r\n", " dd = dimension\n", " #plot the analytic distribution: a gamma distribution with k=d/2 and theta=2.\n", " norm = math.gamma(dd / 2) * math.pow(2, (dd / 2)) / 2\n", " x = [j * 0.1 for j in xrange(1, 400)]\n", " gamma = [math.pow(r, (dd - 1)) * math.exp(- r ** 2 / 2) / norm for r in x]\n", " #figure output\n", " pylab.plot(x, gamma, color=colors2[i-1], label='analytic: d=%.0f' % dd)\n", " \n", " #sampling distribution of r\n", " for sample in range(nsamples):\n", " R = [random.gauss(0.0, 1.0) for d in range(dimension)] \n", " radius = math.sqrt(sum(x ** 2 for x in R))\n", " r_samp.append(radius)\n", " print numpy.var(r_samp) #calculate the variances for each dimension\n", "\n", " #print [x / radius for x in R] #print the points that are rescaled to be on the surface of the sphere\n", " pylab.hist(r_samp, bins=150, normed=True, color=colors[i], histtype='step', label='sampling: d=%.0f' % dimension)\n", " pylab.legend()\n", " pylab.xlim(0,7)\n", " pylab.title('$r$ distributions in diffrent dimensions, $\\sigma=1$')\n", " pylab.xlabel('$r$', fontsize = 15)\n", " pylab.ylabel('$\\pi_d(r,\\sigma=1)$', fontsize = 15)\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using a similar strategy as we did for 1D, one can evaluate an $n$ dimensional gaussian integral by variable transformations and get $1=\\left(\\frac{1}{\\sqrt{2\\pi}}\\right)^d\\int_0^\\infty \\text{d}r r^{d-1} e^{-r^2/2} \\int \\text{d}\\Omega_d$. Hence we see that the radii $r(d)$ in $d$ dimensions is distributed according to $\\pi_d(r)\\propto r^{d-1} e^{-r^2/2}$. In other words, the transformed variable square radius $\\rho=r^2$ is distributed according to the gamma distirbution $\\Gamma(\\rho)\\propto\\rho^{\\frac{d-2}{2}}e^{-\\rho^2/2}$. This is confirmed by the following program. Furthermore, intriguingly we see that each distribution is approximately centered around the value $r^2=d$. That means that in order to *re*normalise a gaussian random sample in $d$ dimensions, it is most likely that a successful approach is to rescale it by about an amount $\\sqrt{d}$. This implies that in very high dimensions, the renormalising points towards the surface of the unit hypersphare becomes unnecessary if the variance $\\sigma$ of the Gaussian was choosen correctly." ] }, { "cell_type": "code", "execution_count": 265, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# %pylab inline\n", "import random, math, pylab\n", "\n", "nsamples = 20000\n", "\n", "colors = ['0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9']\n", "colors2 = ['r','g','b','y','c','m','0.7','0.8','0.9']\n", "i = 0\n", "for dimension in [4,6,8,10]:\n", " i += 1\n", " \n", " dd = dimension\n", " #plot the analytic distribution: a gamma distribution with k=d/2 and theta=2.\n", " norm = math.gamma(dd / 2) * math.pow(2, (dd / 2))\n", " x = [j * 0.1 for j in xrange(1, 400)]\n", " gamma = [math.pow(rho, (dd / 2 - 1)) * math.exp(- rho / 2) / norm for rho in x]\n", " #figure output\n", " pylab.plot(x, gamma, color=colors2[i-1], label='analytic: d=%.0f' % dd)\n", " \n", " \n", " r2 = []\n", " for sample in range(nsamples):\n", " R = [random.gauss(0.0, 1.0) for d in range(dimension)]\n", " radius2 = sum(x ** 2 for x in R)\n", " r2.append(radius2)\n", "\n", " #print [x / radius for x in R] #print the points that are rescaled to be on the surface of the sphere\n", " #figure output\n", " pylab.hist(r2, bins=150, normed=True, color=colors[i], histtype='step', label='sampling: d=%.0f' % dimension)\n", " pylab.legend()\n", " pylab.title('$r^2$ distributions in diffrent dimensions with $\\sigma=1$')\n", " pylab.xlabel('$r^2$', fontsize = 15)\n", " pylab.ylabel('$\\pi_d(r^2,\\sigma=1)=\\Gamma_{k=d/2,\\\\theta=2}(r^2)$', fontsize = 15)\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this case, we may rescale all points *not* by their actual distance from the origin, but instead by this central (most likely) value of $\\sqrt{d}$, i.e. $x_i\\rightarrow y_i=x_i\\sqrt{d}$. This corresponds to transforming the gaussian distribution as $\\pi(x_i)\\propto e^{-x_i^2/2}\\rightarrow \\pi(y_i)\\propto e^{-y_i^2/2\\sigma^2}=e^{-x_i^2d/2}$, or in other words, taking the variance as $\\sigma_x=1\\rightarrow\\sigma_y=\\sqrt{\\frac{1}{d}}$. Incredibly, as we increase $d$ the variance decreases, i.e. instead of true renormalisation, if we choose a fixed scaling factor of $\\sqrt{d}$ the risk that we have the wrong scaling reduces with increasing number of dimensions!" ] }, { "cell_type": "code", "execution_count": 264, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6645927747878635\n", "0.40020680536587616\n", "0.20079653557590216\n", "0.11102109574157934\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# %pylab inline\n", "import random, math, pylab, numpy\n", "\n", "nsamples = 200000\n", "\n", "colors = ['0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9']\n", "colors2 = ['r','g','b','y','c','m','0.7','0.8','0.9']\n", "i = 0\n", "for dimension in [3,5,10,18]:\n", " i += 1\n", " \n", " #sampling\n", " r2 = []\n", " for sample in range(nsamples):\n", " R = [random.gauss(0.0, math.pow(1.0 / dimension ,1.0/2.0)) for d in range(dimension)]\n", " radius2 = (sum(x ** 2 for x in R))\n", " r2.append(radius2)\n", " print numpy.var(r2) #calculate the variances for each dimension\n", "\n", " #print [x / radius for x in R] #print the points that are rescaled to be on the surface of the sphere\n", " #figure output\n", " pylab.hist(r2, bins=150, normed=True, color=colors[i], histtype='step', label='d=%.0f' % dimension)\n", " pylab.legend()\n", " pylab.xlim(0,5)\n", " pylab.title('Rescaled $r$ distributions in diffrent dimensions, $\\sigma=\\sqrt{1/d}$')\n", " pylab.xlabel('$r$', fontsize = 15)\n", " pylab.ylabel('$\\pi_d(r,\\sigma=\\sqrt{1/d})$', fontsize = 15)\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a given kinetic energy $E_k$, the speeds of $N$ particles are constrained by the equation $E_k=\\frac{m}{2}\\sum_{i=0}^{N-1}v_i^2$, where e.g. in d dimensions, the speed is given in terms of the two components as $v_i^2=\\sum_{j=1}^{d}(v_i^j)^2$, where $d$ is either $1$, $2$ or $3$. Therefore, the energy constraint implies that a legal set of velocities is a point on the surface of the $dN$ dimensional hypersphere of radius $r=\\sqrt{\\frac{2E_k}{m}}$. Hence the problem of finding the velocity distribution of a statistical ensemble is reduced to sampling a random point on the surface of a hypersphere.\n", "\n", "On the other hand, since an ensemble contains about $6\\times 10^{23}$ of particles, what we have is an hypersphere of a very large number of dimensions. Following the previous argument, for a sampled velocity component $v_i^j$, the suitable fixed scaling towards the surface of the hypersphere of radius $\\sqrt{\\frac{2E_k}{m}}$ is $\\sqrt{\\frac{2E_k}{mdN}}$ with certainty approaching to absolute as $N\\rightarrow \\infty$. (Please note that this implies that the kinetic energy is uniformly partitioned and distributed equally to each degree of freedom, i.e. to each velocity component of each particle.) In other words, instead of sampling velocities as gaussian variables each with variance $\\sigma=1$, if we choose a variance that scales each velocity towards the surface of the kinetic energy hypersphere, then the probability that we are mistaken on the value a specific velocity component decreases by increasing $N$!\n", "\n", "If we take the mean energy per degree of freedom at a given temperature $T$ as $\\frac{E_k}{dN}=\\frac{1}{2}k_BT$, where $k_B$ is the Boltzmann constant, we therefore arrive at the celebrated Maxwell velocity distribution $\\pi(v_x)dv_x=\\sqrt{\\frac{m}{2\\pi k_BT}}\\exp{\\left(-\\frac{1}{2}\\frac{mv_x^2}{k_B T}\\right)}dv_x$. The speed distributions clearly have the gamma profiles similar to the ones shown previously. The equally famous Boltzmann distribution for energies $\\pi(E)\\propto\\exp{\\left(-\\frac{E}{k_BT}\\right)}$ is also readily obtained as a result of this approach." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sampling discrete and continuous 1D distributions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A naive random number generator (NRNG): congruential linear random number generator.\n", "\n", "Observe that $\\text{idum}\\in [0,m-1]$ because of the $\\mod{m}$ operation. The method generates an erratic sequence which can contain all integers $\\in [0,m-1]$. For a seed equal to e.g. 1000, the NRNG yields the same sequence of numbers at each run. However, if we set the initial seed \"idum\" to e.g. the system time, then the sequence of random numbers is different at every run.\n", "\n", "Note that the output of the program is periodic, if you hit a number a certain time, you'll generate the same sequence as you did the first time. The program generates the same numbers it generated before." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "m = 134456 #mode\n", "n = 8121\n", "k = 28411\n", "idum = 1000 #seed (initial integer value)\n", "for iteration in xrange(200000):\n", " idum = (idum * n + k) % m #modulo operation (fold back to the range given by m) \"congruential\"\n", " ran = idum / float(m) #divide by m to obtain a \"random\" number between 0 and 1.\n", " #print idum, ran, iteration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rejection sampling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Direct sampling of discrete and one-dimensional continuous systems is an important subject.\n", "\n", "Here we sample 1D gaussian distribution through Markov-chain rejection sampling. (Calculating the area under the gaussian with the same method that is used in the calculation of $\\pi$ in the first week.)" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random, math, pylab\n", "\n", "x = 0.0 #start at x=0\n", "delta = 0.5 #maximum step size\n", "data = []\n", "for k in range(50000):\n", " x_new = x + random.uniform(-delta, delta) #propose a random move with step size between \\pm delta\n", " \n", " #if the randomly generated number between 0 and 1 is less than the acceptance rate, then accept the sample\n", " if random.uniform(0.0, 1.0) < \\\n", " math.exp (- x_new ** 2 / 2.0) / math.exp (- x ** 2 / 2.0): #acceptance rate \n", " x = x_new \n", " data.append(x)\n", "\n", "pylab.hist(data, 100, normed = 'True') #histogram of the sample\n", "x = [a / 10.0 for a in range(-50, 51)]\n", "y = [math.exp(- a ** 2 / 2.0) / math.sqrt(2.0 * math.pi) for a in x]\n", "pylab.plot(x, y, c='red', linewidth=2.0)\n", "pylab.title('Theoretical Gaussian distribution $\\pi(x)$ and \\\n", " \\nnormalized histogram for '+str(len(data))+' Markov-chain samples', fontsize = 18)\n", "pylab.xlabel('$x$', fontsize = 30)\n", "pylab.ylabel('$\\pi(x)$', fontsize = 30)\n", "pylab.savefig('plot_markov_gauss.png')\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us do the same sampling by direct sampling on a limited range given by a rectangle. (Note that we have to introduce an inelegant cutoff $\\pm x_\\text{cut}$ for the $x$ range of the rectangle.)" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random, math\n", "\n", "y_max = 1.0 / math.sqrt(2.0 * math.pi)\n", "x_cut = 5.0\n", "n_data = 10000\n", "n_accept = 0\n", "data = []\n", "while n_accept < n_data:\n", " #select a random position within the rectangle\n", " y = random.uniform(0.0, y_max)\n", " x = random.uniform(-x_cut, x_cut)\n", " if y < math.exp( - x **2 / 2.0)/math.sqrt(2.0 * math.pi): #check whether the sample is below the gaussian curve\n", " n_accept += 1\n", " data.append(x)\n", " \n", "pylab.hist(data, 100, normed = 'True') #histogram of the sample\n", "x = [a / 10.0 for a in range(-50, 51)]\n", "y = [math.exp(- a ** 2 / 2.0) / math.sqrt(2.0 * math.pi) for a in x]\n", "pylab.plot(x, y, c='red', linewidth=2.0)\n", "pylab.title('Theoretical Gaussian distribution $\\pi(x)$ and \\\n", " \\nnormalized histogram for '+str(len(data))+' direct samples', fontsize = 18)\n", "pylab.xlabel('$x$', fontsize = 30)\n", "pylab.ylabel('$\\pi(x)$', fontsize = 30)\n", "pylab.savefig('plot_direct_gauss.png')\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Rejection sampling can be problematic It is not due to the presence of rejections per se, but because the rejection rate can become really enormous, even prohibitive. To see this, let us look at a function that is not quite as friendly as a Gaussian distribution: the distribution $\\pi(x)=\\frac{2}{\\sqrt{x}}$. Here, we do not know what box size to choose: what should $x_\\text{cut}$ be? With increasing $x_\\text{cut}$, the rejection rate will increase enormously!\n", " \n", " Below we compare the results from direct sampling with a cut-off and Markov-chain sampling methods." ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random, math, pylab\n", "\n", "y_max = 100.0\n", "x_cut = 1.0\n", "n_data = 10000\n", "data = []\n", "n_accept = 0\n", "while n_accept < n_data: \n", " y = random.uniform(0.0, y_max)\n", " x = random.uniform(0.0, x_cut)\n", " if y < 1.0 / (2.0 * math.sqrt(x)):\n", " n_accept += 1\n", " data.append(x)\n", "\n", "pylab.hist(data, bins=100, normed='True')\n", "x = [a / 100.0 for a in xrange(1, 100)]\n", "y = [1.0 / (2.0 * math.sqrt(a)) for a in x]\n", "pylab.plot(x, y, 'red', linewidth = 2)\n", "pylab.title('Theoretical distribution $\\pi(x)={1}/{(2 \\sqrt{x})}$ and normalized\\\n", " \\n histogram for '+str(n_accept)+' accepted direct samples',fontsize=16)\n", "pylab.xlabel('$x$', fontsize=18)\n", "pylab.ylabel('$\\pi(x)$', fontsize=18)\n", "pylab.show()" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.2360679775 0.2 0\n", "4.911152595 0.0414603671158 21\n", "7.58973327104 0.0173598901546 68\n", "11.3758766412 0.00772734410312 196\n", "14.7582356921 0.00459125184976 369\n", "29.4346418263 0.00115420377131 930\n", "32.9788774849 0.000919450305395 3647\n", "46.9006508302 0.000454613429938 6548\n", "106.487244559 8.81870512329e-05 8023\n", "122.781918606 6.63332336615e-05 8855\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random, math, pylab\n", "\n", "x = 0.2\n", "delta = 0.5\n", "data = []\n", "y_max = 0\n", "n_trials = 10000\n", "for k in xrange(n_trials):\n", " x_new = x + random.uniform(-delta, delta)\n", " if x_new > 0.0 and x_new < 1.0:\n", " if random.uniform(0.0, 1.0) < math.sqrt(x) / math.sqrt(x_new): \n", " x = x_new \n", " if 1.0 / math.sqrt(x) > y_max: \n", " y_max = 1.0 / math.sqrt(x)\n", " print y_max, x, k #print the maximum y values and their x values\n", " data.append(x)\n", "\n", "pylab.hist(data, bins=100, normed='True')\n", "pylab.xlabel('$x$', fontsize=16)\n", "pylab.ylabel('$\\pi(x)$', fontsize=16)\n", "x = [a / 100.0 for a in xrange(1, 101)]\n", "y = [0.5 / math.sqrt(a) for a in x]\n", "pylab.plot(x, y, linewidth=1.5, color='r')\n", "pylab.title('Theoretical distribution $\\pi(x)={1}/{(2 \\sqrt{x})}$ and normalized\\\n", " \\n histogram for '+str(len(data))+' Markov-chain samples',fontsize=16)\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Discrete distributions\n", "\n", "Here we discuss rejection free discrete sampling algorithms.\n", "\n", "#### Tower sampling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The tower sampling is **rejection free** but has logarithmic computational complexity and this is not optimal." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import random\n", "\n", "# bisection search to find the bin corresponding to eta\n", "def bisection_search(eta, w_cumulative):\n", " kmin = 0\n", " kmax = len(w_cumulative)\n", " while True:\n", " k = int((kmin + kmax) / 2)\n", " if w_cumulative[k] < eta:\n", " kmin = k\n", " elif w_cumulative[k - 1] > eta:\n", " kmax = k\n", " else:\n", " return k - 1\n", "\n", "# sample an integer number according to weights\n", "def tower_sample(weights):\n", " sum_w = sum(weights)\n", " w_cumulative = [0.0]\n", " for l in xrange(len(weights)):\n", " w_cumulative.append(w_cumulative[l] + weights[l])\n", " eta = random.random() * sum_w\n", " sampled_choice = bisection_search(eta, w_cumulative)\n", " return sampled_choice\n", "\n", "weights = [0.4, 0.3, 0.8, 0.1, 0.2]\n", "n_samples = 20\n", "for sample in xrange(n_samples):\n", " print tower_sample(weights)s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Walker's algorithm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Optimal." ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[(0.05, 4, 3), (0.09999999999999998, 3, 1), (0.1, 2, 1), (0.17999999999999997, 1, 0), (0.19999999999999998, 0, 0)]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random, pylab\n", " \n", "N = 5\n", "pi = [[1.1 / 5.0, 0], [1.9 / 5.0, 1], [0.5 / 5.0, 2], [1.25 / 5.0, 3], [0.25 / 5.0, 4]]\n", "x_val = [a[1] for a in pi]\n", "y_val = [a[0] for a in pi]\n", "pi_mean = sum(y_val) / float(N)\n", "long_s = []\n", "short_s = []\n", "for p in pi:\n", " if p[0] > pi_mean:\n", " long_s.append(p)\n", " else:\n", " short_s.append(p)\n", "table = []\n", "for k in range(N - 1):\n", " e_plus = long_s.pop()\n", " e_minus = short_s.pop()\n", " table.append((e_minus[0], e_minus[1], e_plus[1]))\n", " e_plus[0] = e_plus[0] - (pi_mean - e_minus[0])\n", " if e_plus[0] < pi_mean:\n", " short_s.append(e_plus)\n", " else:\n", " long_s.append(e_plus)\n", "if long_s != []: \n", " table.append((long_s[0][0], long_s[0][1], long_s[0][1]))\n", "else: \n", " table.append((short_s[0][0], short_s[0][1], short_s[0][1]))\n", "print table\n", "samples = []\n", "n_samples = 10000\n", "for k in xrange(n_samples):\n", " Upsilon = random.uniform(0.0, pi_mean)\n", " i = random.randint(0, N-1)\n", " if Upsilon < table[i][0]:\n", " samples.append(table[i][1])\n", " else: samples.append(table[i][2])\n", "\n", "pylab.figure()\n", "pylab.hist(samples, bins=N, range=(-0.5, N-0.5), normed=True)\n", "pylab.plot(x_val, y_val,'ro', ms=8)\n", "pylab.title(\"Histogram using Walker's method for a discrete distribution\\n\\\n", " on $N=$\"+str(N)+\" choices (\"+str(n_samples)+\" samples)\",fontsize=14)\n", "pylab.xlabel('$k$',fontsize=20)\n", "pylab.ylabel('$\\pi(k)$',fontsize=20)\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Continuous distributions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us investigate the continuum limit of tower sampling method. \n", "\n", "For instance, for a **gaussian distribution** $\\pi(x) \\propto e^{-x^2}$, to obtain the position corresponding to a particular value $\\Upsilon$ of the cumulative probability distribution $\\Phi(x)\\equiv \\int^x_{-\\infty}dx'\\pi(x')$, we need to calculate the inverse of the *error function* $\\text{erf}{(2\\Phi-1)}$ which cannot be obtained analytically.\n", "\n", "Below we pick a random value on the \"tower\" (i.e. we choose a value $\\Upsilon$ of the cumulative distribution), and find the position that it corresponds to by numerically inverting the error function. The sampling is given as a histrogram. " ] }, { "cell_type": "code", "execution_count": 215, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import scipy.special, random, math\n", "\n", "n_trials = 100000\n", "data = []\n", "for trial in xrange(n_trials):\n", " Upsilon = random.uniform(0.0, 1.0) #pick a value for the cumulative distribution (or a value on the tower)\n", " x = math.sqrt(2.0) * scipy.special.erfinv(2.0 * Upsilon - 1.0) #calculate x's from the numerical inverse of erf(x)\n", " data.append(x)\n", " \n", "pylab.hist(data, 100, normed = 'True') #histogram of the sample\n", "x = [a / 10.0 for a in range(-50, 51)]\n", "y = [math.exp(- a ** 2 / 2.0) / math.sqrt(2.0 * math.pi) for a in x]\n", "pylab.plot(x, y, c='red', linewidth=2.0)\n", "pylab.title('Theoretical Gaussian distribution $\\pi(x)$ and \\\n", " \\nnormalized histogram for '+str(len(data))+' \"tower\" samples', fontsize = 18)\n", "pylab.xlabel('$x$', fontsize = 20)\n", "pylab.ylabel('$\\pi(x)\\propto\\exp{(-x^2/2)}$', fontsize = 20)\n", "pylab.savefig('plot_tower_gauss.png')\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us now consider a **divergent distribution** $\\pi(x)\\propto x^\\gamma$, $0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "\n", "gamma = -0.5\n", "n_trials = 10000\n", "data = []\n", "\n", "for trial in xrange(n_trials):\n", " x = (random.uniform(0.0, 1.0)) ** (1.0 / (gamma + 1.0)) #simply invert the cumulative distribution\n", " data.append(x)\n", "\n", "pylab.hist(data, bins=100, normed='True')\n", "pylab.xlabel('$x$', fontsize=16)\n", "pylab.ylabel('$\\pi(x)$', fontsize=16)\n", "x = [a / 100.0 for a in xrange(1, 101)]\n", "y = [0.5 / math.sqrt(a) for a in x]\n", "pylab.plot(x, y, linewidth=1.5, color='r')\n", "pylab.title('Theoretical distribution $\\pi(x)={1}/{(2 \\sqrt{x})}$ and normalized\\\n", " \\n histogram for '+str(len(data))+' Markov-chain samples',fontsize=16)\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We found great rejection-free sampling programs for discrete and continuous one-dimensional distributions, and solved the direct sampling problem in these cases. Markov chain methods could generally be avoided. The situation is much more complicated in high-dimensional situations for example the hard-spheres simulations that we did last week or the quantum problem that we will turn our attention to next week. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculation of High Dimensional Integrals Using Monte Carlo Methods\n", "\n", "### Volume of the $d$-dimensional unit hypersphere $V_\\text{sph}(d)$\n", "\n", "![caption](fig/sphere_facts.png)\n", "\n", "We know *a priori* that the volume of the $d$-dimensional hypersphere ($d$-sphere) of radius $r$ is proportional to $r^{d}$, i.e. $V_d(r) \\equiv V_\\text{sph}(r,d)\\propto r^{d}$. It follows that the surface area is given by $S_d(r)\\equiv S_\\text{sph}(r,d)=\\frac{\\text{d}V_\\text{sph}(r,d)}{\\text{d}r}=dC_nr^{d-1}$. Therefore, the task of calculating the volume is reduced to finding the proportionality constant $C_d$. If we consider $V_d(r\\rightarrow \\infty)$, by transforming the cartesian to the spherical coordinates $V_d(r\\rightarrow \\infty) = \\int_0^{r \\rightarrow \\infty} \\frac{\\text{d}V_\\text{sph}(d)}{\\text{d}r'} \\text{d}r' = C_d d \\int_0^{r \\rightarrow \\infty} r'^{d-1} \\text{d}r' = \\int_{-\\infty}^\\infty \\int_{-\\infty}^\\infty \\cdots \\int_{-\\infty}^\\infty \\text{d}x_0\\text{d}x_1 \\cdots\\text{d}x_{d-1} = \\int \\text{d}\\Omega_d \\int_{0}^\\infty \\text{d}r $, where $\\text{d}\\Omega_d$ is the $d$ dimensional solid angle differential, we get an integral relation given by $C_d d \\int_0^{r \\rightarrow \\infty} r'^{d-1} \\text{d}r' = \\int \\text{d}\\Omega_d\\int_{0}^\\infty \\text{d}r $.\n", "\n", "Alternatively we consider the gaussian $e^{-r^2}$, where $r^2=x_0^2+\\cdots+x_{d-1}^2$. We than have $I^d = \\left( \\int_{-\\infty}^\\infty e^{-x^2} \\text{d}x \\right)^d = \\int \\text{d}\\Omega_d \\int_{0}^\\infty e^{-r^2} \\text{d}r = C_d d \\int_0^\\infty r^{d-1}e^{-r^2} \\text{d}r$ by the above equality. Hence it follows that $C_d=\\frac{\\left( \\int_{-\\infty}^\\infty e^{-x^2} \\text{d}x \\right)^d}{d \\int_0^\\infty r^{d-1}e^{-r^2} \\text{d}r}=\\frac{2\\pi^{d/2}}{\\Gamma(d/2)}=\\frac{2\\pi^{d/2}}{\\left(\\frac{d}{2}-1\\right)!}$. Using this, finally obtain the result that we were after: $S_d(r)=\\frac{2\\pi^{d/2}r^{d-1}}{\\left(\\frac{d}{2}-1\\right)!}$ and $V_d(r)=\\int_0^r S_d(r') \\text{d}r' = \\frac{\\pi^{d/2}r^d}{\\left(\\frac{d}{2}\\right)!}$. Therefore the volume of the unit $d$-sphere is $V_d(r=1) = V_\\text{sph}(d) = \\frac{\\pi^{d/2}}{\\left(\\frac{d}{2}\\right)!}$." ] }, { "cell_type": "code", "execution_count": 375, "metadata": {}, "outputs": [ { "data": { "image/png": "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kGHoK+Lj41myZAkPp1V8ZLJjxw46dOgAQLt27Vi0aBFgx8VK60h4/vx5UlNTuesumDoVQkJsS6+QEHjiCdizB265Bf76q1AvVSnlJbwtkagCmD3bVo5v327rL2bOhMwjkDz99NO8+eablCrl/KOPjIzks88+A+Dzzz8nMTExvU7i4MGDREREUKtWLYYPH06NGjXo0wf277eV+Pv3w8SJ8NlntlK+fXv4449CvGCllFfwpkRigGUisklEBno6GG+X1n+jVCmoVcvedfTtaxPJli3grHXsV199RWBgIM2aNcv2uOPGjWPVqlU0adKEVatWUbNmTfwdZWK1atUiNjaWPXv2MGPGDBISEpwe4447YPFi+OUXe3d0+LA7rlgp5a3EZNczrYiJSA1jzGERCQS+BZ40xqzOsH4gMBCgWrVqzebPn++hSF136tQpypcv7/bjfvddIOPG1ef8eb8MSw1t2vzOyJE78fNzvt+///1vli1bhp+fX/pcIDfddBNPPfWU0zjPnj1Lv379WLBgQZZ1Y8eOpWXLlrRp0ybbOGNiKvLii42pVCmJt9+O4eqrz+f1Ui9RWO+nu/lCnL4QI2ic7tauXbtNhVJ1YIzxugfwMjA0u/X16tUzvmDFihWFctyQEGNsNfqlj5CQvMXWtWvX9Odp/vjjD5OSkmKMMebFF180I0eONMYYc/DgQXPmzBljjDF//vmnqVu3romNjc31PGvXGnPllcbUqmXM7t2ux5ddzL7AF+L0hRiN0TjdDdhoCuE72yuKtkTkchGpkPYc6ARs82xU3iuncbLy46OPPmLx4sUArFy5kvr161OvXj0SEhIYMWIEADt37uT6668nMjKSNm3aMHToUBo3bpzrsVu2hOXLbWfGm28GR79Ct8ipGfMzzzyTPm9JvXr1uPLKKwGIiYmhVatWhIeHExERwbx589wXkFIllLd0SLwK+FxEwMb0iTHma8+G5L1q1XKeNLLr1+FM27Zt0zshDhgwIP15z5496dmzZ5btO3bseMkYWXnRpAmsWgUdOtg6k2XL7LKCSmvGfPLkySzr3n333fTn77//Pj///DNgOzTOnDmTunXrcvjwYZo1a8att96anmiUUnnnFXckxpjfjDGRjke4MWa0p2PyZnfemXVZQICdmMpbNWxoO0SWK2dbczmmcM+33JoxZ5RxbK569epRt25dwM6r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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import math, pylab\n", "from pylab import MaxNLocator\n", "\n", "volume, dimension = [], []\n", "\n", "def V_sph(dim):\n", " return math.pi ** (dim / 2.0) / math.gamma(dim / 2.0 + 1.0)\n", "\n", "for d in range(0,20):\n", " dimension.append(d)\n", " volume.append(V_sph(d))\n", "\n", "pylab.plot(dimension, volume, 'bo-')\n", "pylab.title('Volume of the unit hypersphere in $d$ dimensions')\n", "pylab.xlabel('$d$', fontsize = 15)\n", "pylab.ylabel('$V_{sph}(d)$', fontsize = 15)\n", "pylab.xlim(0,20)\n", "pylab.ylim(0,6)\n", "for i in range(0,20):\n", " pylab.annotate(round(volume[i],2), (dimension[i], volume[i]), xytext=(10, 0), ha='left',\n", " textcoords='offset points')\n", "pylab.grid()\n", "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although we are indeed able to calculate the exact expression, since the calculation of the gamma function $\\Gamma(d)$ is difficult for large $d$, it is not entirely pointless to develop a numerical approach for this problem. We can numerically calculate $V_\\text{sph}(d)$ from the ratio between the volumes of unit hyperspheres in successive dimensions $d$, $d+1$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first calculate $\\langle Q(d=3) \\rangle$ by a Markov-chain Monte Carlo program that samples points $(x, y, z)$ inside the unit cylinder and counts the samples that land inside the unit sphere, as well.\n", "\n", "We see that the obtained value agrees with the analytical value of $Q(3)=\\frac{4}{3}$ (see the table above)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " = 1.33341\n", "/Q(3)=/(4/3) = 1.0000575\n" ] } ], "source": [ "import random\n", "\n", "x, y, z = 0.0, 0.0, 0.0 #initial point\n", "delta = 0.1\n", "Q_avg_3 = 0.0 #initialise the average Q(3)\n", "Q_3 = 4.0 / 3.0\n", "\n", "n_trials = 4000\n", "n_runs = 1000\n", "\n", "for j in range(n_runs):\n", " n_hits = 0\n", " for i in range(n_trials):\n", " del_x, del_y = random.uniform(-delta, delta), random.uniform(-delta, delta)\n", " if (x + del_x) ** 2 + (y + del_y) ** 2 < 1.0: #sample points inside the unit disk \n", " x, y = x + del_x, y + del_y\n", " z = random.uniform(-1.0, 1.0) #sample the z coordinate (inside the unit cylinder)\n", "\n", " #raise the number of counts if the sample is also inside the unit sphere\n", " if x**2 + y**2 + z**2 < 1.0: n_hits += 1 \n", " Q_avg_3 += 2.0 * n_hits / float(n_trials) / n_runs #take the average\n", " \n", "print ' =', Q_avg_3\n", "print '/Q(3)=/(4/3) =', Q_avg_3 / Q_3 #compare with the actual value" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we do the same for $\\langle Q(4) \\rangle$ by a straightforward tweak:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " = 1.175211\n", "/Q(4) = 0.997550079072\n" ] } ], "source": [ "import random, math\n", "\n", "x, y, z, t = 0.0, 0.0, 0.0, 0.0 #initial point\n", "delta = 0.1\n", "Q_avg_4 = 0.0 #initialise the average Q(4)\n", "Q_4= 3.0 * math.pi / 8.0\n", "\n", "n_trials = 4000\n", "n_runs = 1000\n", "\n", "for j in range(n_runs):\n", " n_hits = 0\n", " for i in range(n_trials):\n", " del_x, del_y, del_z = random.uniform(-delta, delta), random.uniform(-delta, delta), random.uniform(-delta, delta)\n", " if (x + del_x)**2 + (y + del_y)**2 + (z + del_z)**2 < 1.0: #sample points inside the unit sphere \n", " x, y, z = x + del_x, y + del_y, z + del_z\n", " t = random.uniform(-1.0, 1.0) #sample the t coordinate (inside the unit cylinder)\n", "\n", " #raise the number of counts if the sample is also inside the unit hypersphere\n", " if x**2 + y**2 + z**2 + t**2 < 1.0: n_hits += 1 \n", " Q_avg_4 += 2.0 * n_hits / float(n_trials) / n_runs #take the average\n", " \n", "print ' =', Q_avg_4\n", "print '/Q(4) =', Q_avg_4 / Q_4 #compare with the actual value" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obtain the volume of the 4-sphere $V_\\text{sph}(4)$ from $\\langle Q(4) \\rangle$:" ] }, { "cell_type": "code", "execution_count": 386, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Analytical: V_sph(4) = pi^2/2 = 4.93480220054\n", "Numerical: V_sph(3)â‹… = 4.92681524536\n", "Numerical: V_sph(2)â‹…â‹… = piâ‹…â‹… = 4.93103198336\n" ] } ], "source": [ "print 'Analytical: V_sph(4) = pi^2/2 =', math.pi**2 / 2 #analytical\n", "print 'Numerical: V_sph(3)â‹… =', 4.0 / 3.0 * math.pi * Q_avg_4\n", "print 'Numerical: V_sph(2)â‹…â‹… = piâ‹…â‹… =', math.pi * Q_avg_3 * Q_avg_4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us now efficiently generalise this program to sample uniformly distributed points inside the $d$-dimensional unit sphere, and calculate $\\langle Q(d)\\rangle$. Note that, here, instead of modifying all components of x at a time, as we did previously, modify only one component at each iteration $i$ (with $i=0, 1, 2,\\cdots, n_\\text{trials}$)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As seen previously, for small radii, e.g. $0 = 1.186448\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAETCAYAAAAcboCHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd8FHX+x/HXh0AKBIIUIxI0IAgoKiUiHoiJoCAqoCKHih5YsGGDuxNPxY6ihwoH4qEiVsphQylW8lNUEJASiihVAkhvCZCQ5PP7YxYIIXV3s7Ob/Twfj3lkd+c7u+8vCflkZr7zHVFVjDHGGG9VcjuAMcaY0GaFxBhjjE+skBhjjPGJFRJjjDE+sUJijDHGJ1ZIjDHG+MQKiTHGGJ9YITHGGOMTKyTGGGN8UtntAIFQp04dTUxM9GrbzMxMqlWr5t9AQS7c+hxu/QXrc7jwpc8LFy7coap1S9M2LApJYmIiCxYs8Grb1NRUkpOT/RsoyIVbn8Otv2B9Dhe+9FlENpS2rR3aMsYY45OgKyQiEiEii0Tk80LWRYnIZBFZLSLzRCQx8AmNMcbkF3SFBLgfWFnEuluB3araGHgZGB6wVMYYYwoVVOdIRCQBuAJ4FhhUSJMewBOex1OB0SIi6sVc+IcPHyY9PZ1Dhw4V2y4uLo6VK4uqaxVTuPX5SH+jo6NJSEigSpUqbkcyJqQEVSEBXgH+CVQvYn19YCOAquaIyF6gNrCjrB+Unp5O9erVSUxMRESKbLd//36qVy8qTsUUbn3ev38/sbGx7Ny5k/T0dBo2bOh2JGNCStAUEhG5EtimqgtFJLmoZoW8VujeiIgMAAYAxMfHk5qaetz6uLg4ateuTUZGRrG5cnNz2b9/f/HhK5hw63Nubi4ZGRlERkayZ8+eE35WKqKMjIyw6Gd+1ufyEzSFBGgPdBeRbkA0UENE3lPVvvnapAMNgHQRqQzEAbsKezNVHQeMA0hKStKCQ+BWrlxJjRo1SgwVbn+dQ/j1OX9/o6OjadWqlcuJyp8NhQ0Pgepz0JxsV9WHVTVBVROBPsC3BYoIwDTgb57HvTxt7F7BxhjjomDaIymUiDwFLFDVacCbwLsishpnT6SPq+GMMcYEZyFR1VQg1fN4aL7XDwHXuZPKHLFy5UpGjhzJjh076NSpE3fddZfbkYwxAKokPjzj6NMJXQMzJUzQHNoKV//973855ZRTaNmyJY0aNWLChAmFtjt48CAXX3wxubm5J6zLzs6mY8eO5OTk+JQlNzeXVq1acd11xdfq5s2b89prrzFlypRip56ZNWsWTZs2pXHjxjz//PM+ZfPVLbfcwsknn0yLFi1czWFMubr5Zh7/+r/UOrA3oB9rhcRlS5cu5YknnmDx4sVMnTqVwYMHF9pu/PjxXHPNNURERJywLiIigk6dOjF58mSfsowcOZLmzZsX2+ZIIZs2bRodOnSgU6dORba75557mDlzJitWrGDixImsWLGiVDmys7PJzMwsMUNZtu/Xrx+zZs0q1ecbE5LS0uC997hh8Swq5/r2R2VZWSFxWVpa2tFf3gkJCUX+knz//ffp0aPH0efXXXcdgwYNIiUlheeee46ePXvy/vvve50jPT2d6dOnc9ttt52wruBnAXTv3p0ff/yxyM/8+eefady4MY0aNSIyMpI+ffrw6aefFpth5cqVDB48mKZNm/Lbb7+VmKEs23fs2JFatWoV+/nGhLSnnwbgg5Zd2Va9dkA/OijPkYSTtLQ0mjVrhqoyatQorrzyyhPaZGdns3btWvJPhX+kAM2ePRtw/kqfP3++1zkeeOABXnjhhUKvHyn4WampqXz00UdkZWXRrVu3Qt9v06ZNNGjQ4OjzhIQE5s2bd0K7zMxMpkyZwptvvomq0r9/f5YuXXrC8OOCGcq6vTEV2vLlMHUqREby2gXXBvzjrZAAFHNlu0+/jkoYmbxx40YyMjLo0qULVapUoW3btowZM+aEdjt27KBmzZpHnx86dIhdu3YxdOjRcQhEREQQGRl5wjUgv/zyC2+99RZVqlShe/futG3blh9++IHq1avTrl07AD7//HNOPvlk2rRpc8LFS4V9VnJycolj0wsblV3YDAL16tXj3HPP5Y033qBZs2aFvldhGcqyvTEV3tNPO79vbr+drbF1Av7xdmjLRUuXLqVTp04sXryY+fPnM2bMGOLi4gDnL+02bdrw+eefExMTc9ycYMuXL+eCCy6gcuXj/w7IysoiOjr6uNdef/11+vTpQ+fOnRk/fjzJyclMnz79uF+6P/zwA9OmTSMxMZE+ffrw3Xff0bdv32I/qyQJCQls3Ljx6PP09HROPfXUE9pNnTqV+vXrc/XVV/PUU0+xYcOJt0AoLkNptjemQluxAqZMgchIGDLElQhWSMCp5EUs+/ftK3Z9sUsJ0tLSOO+88wpdN3z4cHr37g3ASSedRG5u7tFikpaWxrnnnntc+507d1K3bt0TJhwcO3Ys7du3p1u3brzzzjv8/PPPvPLKK8ft4Tz33HOkp6ezfv16Jk2aRMeOHXnvvfeK/KzCdOrUiU2bNh19fv755/P777+zbt06srOzmTRpEt27dz9hu8suu4zJkyczZ84c4uLi6NGjB507d2b9+vXH/TsVlaE02xtToXn2Rt49uzOJo5e4EsEKiYuK+gX59ddfc9ZZZxEfH3/0tcsuu4w5c+YUud3s2bOLPF9RHhnzy8vLY/Xq1cedzK5cuTKjR4+mS5cuNG/enN69e3P22WcX+R61a9fm/vvvZ/HixQwbNuy40WmlyVDc9gDXX389F154IatWrSIhIYE333yz2PczJiSsXAmTJ5NdqTJj2/VyLYadI3FRUSOeZs+eTWZmJitWrCAmJoZu3boxcOBAXnrpJTp37syIESNO2OaDDz4ocjRTWSQnJ9OmTZujzwv7rIJWrFjBtddeS0xMzHGvd+vWzavi1rZt2+OelyZDcdsDTJw4scw5jAl6Tz4JqkxueRmba5zsWgwrJEHo2WefBWDChAnUqVOHSpUq0apVK1JSUsjNzT3hr+3s7Gx69uxJ06ZN3YhLixYteOmll1z5bGPC1rJlR8+NjGnX29UoVkiCWL9+/Y57fssttxTaLjIykptvvjkAiYwxQcOzN8Idd/Bn1cCP1MrPzpEYY0yoWbLEuW4kOtq1kVr5WSExxphQ8+STztc774RChtUHmhUSY4wJJQsXwscfQ0wMPPSQ22kAKyTGGBNaHnvM+TpwIJxyirtZPMK6kNjNFU1+9vNggt4PP8DMmRAbC//8p9tpjgrbUVvR0dHs3LmT2rVrFzoHlAkvqsrOnTtPmGLGmKChCo8+6jx+8EES/33iJKhuCdtCkpCQQHp6Otu3by+23aFDh8Lul0u49flIf6Ojo0lISHA7jjGF+/ZbSE1lT3QsHfedDUH0XzRoComIRAPfAVE4uaaq6uMF2vQDXgSOTOo0WlXf8ObzqlSpQsOGDUtsl5qaSqtWrbz5iJAVbn0Ot/6aEJRvb2Rc22vYFx3rcqDjBU0hAbKAS1Q1Q0SqAHNEZKaqzi3QbrKqDnQhnzHGuOOzz2DuXHZUjWNCm6vcTnOCoCkk6pzpzPA8reJZ7OynMSa85ebCI48AMObC3hyIjClhg8CTYBqpIiIRwEKgMTBGVR8qsL4f8BywHfgNeFBVNxZ8H0/bAcAAgPj4+DaTJk3yKlNGRgaxscG1G1newq3P4dZfsD6Hkvgvv6T5c89xKD6eN58fTV6BW0UUp2FchNd9TklJWaiqSaVpG1SF5AgRqQl8DNyrqsvyvV4byFDVLBG5E+itqpeU9H5JSUm6YMECr7KkpqaWeDfAiibc+hxu/QXrc8jIzoZmzWDdOnjrLRJ/rVumzSd0reZ1n0Wk1IUkKK8jUdU9QCrQtcDrO1U1y/P0daANxhhTUb3+ulNEmjeHm25yO02RgqaQiEhdz54IIhIDdAZ+LdCmXr6n3YGVgUtojDEBlJnp3P0Q4JlnoMDtI4JJ0JxsB+oBb3vOk1QCpqjq5yLyFLBAVacB94lIdyAH2AX0cy2tMcaUp1dega1b4fzz4eqr3U5TrKApJKq6FDhhML+qDs33+GHg4UDmMsaYgNuxA4YPdx4PH07iwzPczVOCoDm0ZYwxxuPZZ2H/fujaFVJS3E5TIiskxhgTTNatgzFjQASef97tNKUSNIe2jDHGAEOHwuHDfHR2CoMmpsPEdLcTlcj2SIwxJlgsXgzvvw+Rkbx0UV+305Sa7ZEYY0wwUIV//MP5evfdpEfFu52o1GyPxBhjgsEXX8DXX0Nc3LH7joQIKyTGGOO23FxnbwScCRpr13Y3TxlZITHGGLe9/TYsWwannw733ut2mjKzcyTGGOOmAwfgsccAuP+cXnz6xDcuByo72yMxxhg3jRgBmzdDmzZMO+tit9N4xQqJMca4ZfPmYxcdjhiBSmj+Sg7N1MYYUxE89phzaOvqq+Hi0NwbASskxhjjjkWL4K23oEqVYxM0higrJMYYE2iqMHiw83XgQGjSxO1EPrFRW8YYE2jTpsHs2VCrFufmXcC+IdPdTuQT2yMxxphAyspy9kYAnniCfdGx7ubxAyskxhgTSKNGwZo1/F67AY3/OM3tNH4RNIVERKJF5GcRWSIiy0XkyULaRInIZBFZLSLzRCQx8EmNMcZLW7cevQ/705fcRk5ExTi7EDSFBMgCLlHV84CWQFcRaVegza3AblVtDLwMhPZQB2NMeHnkEdi/n2/OOJ/vGrVxO43fBE0hUUeG52kVz6IFmvUA3vY8ngp0EhEJUERjjPHeL7/A+PFQuTLPptzqdhq/CppCAiAiESKyGNgGfKWq8wo0qQ9sBFDVHGAvEFrTZBpjwo+qMxmj5+va2gluJ/IrUS34R7/7RKQm8DFwr6ouy/f6cqCLqqZ7nq8B2qrqzkLeYwAwACA+Pr7NpEmTvMqSkZFBbGzoj6ooi3Drc7j1F6zPgRb/1Vc0HzaMzLiavPfiGLKrVgvI5zaMi/C6zykpKQtVNak0bYPyTI+q7hGRVKArsCzfqnSgAZAuIpWBOGBXEe8xDhgHkJSUpMnJyV5lSU1NxdttQ1W49Tnc+gvW54Davx9uuAGAx9v3Y+qauIB99ISu1QLS56A5tCUidT17IohIDNAZ+LVAs2nA3zyPewHfajDuUhljzBHPPANbtrCoXlM+bHGJ22nKRTDtkdQD3haRCJwCN0VVPxeRp4AFqjoNeBN4V0RW4+yJ9HEvrjHGlOC33+Dll0GExy+9I2Rn9y1J0BQSVV0KtCrk9aH5Hh8CrgtkLmOM8cqRE+yHD8Mtt7C07pluJyo3FbM8GmOM2z7+GL78EmrWPHbPkQrKCokxxvhbZiY88IDzeNgwqFvX3TzlzAqJMcb427PPwsaN0Lo1DBjgdppyFzTnSIwxpkJYtQr+/W8Arj7rBhY9MsvlQOXPCokxxviLKtx999ET7IvqNnM7UUDYoS1jjPGXiRPh22+hVq2Qv31uWVghMcYYf9izBwYNch6/8ALUqeNungCyQmKMMf7w6KPO/Ubat4f+/d1OE1BWSIwxxlfz58Orr0JEBIwdC5XC61drePXWGGP8LSfHGeKrCg8+COec43aigLNRW8YY44uRI2HxYtJrnMylue04OGS624kCzvZIjDHGW+vXw1BnOsBHL7ubg5HR7uZxiRUSY4zxhirccw8cOMBnzS4i9YxS3QOqQrJCYowx3vjf/2DGDIiL46lOFX8alOJYITHGmLLaudOZIh5g+HC2x57kbh6XWSExxpiyGjwYtm2Djh3h9tvdTuM6KyTGGFMWX30Fb78NUVHw+uthd81IYYLmX0BEGojIbBFZKSLLReT+Qtoki8heEVnsWYYW9l7GGFMuMjOPTQv/xBNwZsW962FZBNN1JDnAYFX9RUSqAwtF5CtVXVGg3feqeqUL+YwxYSrRc23I+qyvnSG/LVs6h7cMEESFRFW3AFs8j/eLyEqgPlCwkBhjTMC1SV8BH4x0pkF54w0SH/vS7UhBI2gObeUnIolAK2BeIasvFJElIjJTRM4OaDBjTFiKOpzFCzNHOteOPPQQtGnjdqSgIqrqdobjiEgs8H/As6r6UYF1NYA8Vc0QkW7ASFVtUsT7DAAGAMTHx7eZNGmSV3kyMjKIjY31attQFW59Drf+gvW5rKqPGEWbzz8m8/TTWThuHHmRkaRt2uvnhP7XMC7C6z6npKQsVNVSXWVZpkIiIgJ0Bi4FOgKnAXWAg8A2YDHwLTBNVTeVMTciUgX4HPhCVV8qRfv1QJKq7iiuXVJSki5YsKCscQBITU0lOTnZq21DVbj1Odz6C9bnMpk/n9wL2gFwbd8XWXxqU/8GK0cTulbz+vssIqUuJKU6RyIiVYH7gDtwiod4Vh3CKSAxQCPgDOBaYKSIfAaMUNUfS/kZArwJrCyqiIjIKcBWVVURaYtzaG5nad7fGGPK7NAh+NvfiNA8xp1/dUgVkUAq8RyJiPQHfgeG4ex5PImzR1JTVauqaoKq1sYpSmcBtwAfApcD34vIZBE5rRRZ2gM3AZfkG97bTUTuFJE7PW16ActEZAkwCuijwXZszhhTISQOmc5ryX1h5UrW1EpgxEV93Y4UtEqzR/Im8AnwnKrOL6qR5xf6r55lgud8xt+AIUA/4KniPkRV53BsT6eoNqOB0aXIbIwxPmm9aSW3//wxuVKJv3d7gKwqUW5HClqlKSRJqvpLWd9YVfcB/xGR14HEsm5vjDGuOXCAf09/mQjNY+wFvVhUv5nbiYJaiYXEmyJSYPtDOHspxhgTGv71Lxrt3syqOqfxcocb3U4T9Mp8HYmIDCuPIMYYExS++QZGjuRwpQj+3u1BsitXcTtR0PPmgsQhIjLW70mMMcZte/ZAv34A/OcvfUirV+hlaqYAbwrJO8AdIvKBiBR6aExE2otIqYb9GmNM0LjvPkhPh7ZtGXNhb7fThIwyz7Wlqv1EZCfwIBAnItd6zoMgImcCzwM9/BvTGGPK2YcfwrvvcrByFN3Ou5XcShFuJwoZXs21paqDgUdxrhX5UkTOFJExQBrQE1gIXOa3lMYYU542bTo6PfywlP6sq1Xf5UChxevZf1V1mIjsBf4DrPS8vAp4TFU/9Ec4Y4wpd3l5znmRXbtIbdiGd1td4XaikONVIfFMZ3ITcGRCfsGZAv4iVbUpS4wxoWPkSPj6a6hTh390ewCk2OuiTSG8Gf7bE+cQ1lvAKTjnRAZ7Hn8jIif7NaExxpSXpUthyBDn8Ztvsj32JHfzhChvzpF8BDTDGb3VRFX/paovA32B5sAPnvuJGGNM8DpwAG64AbKz4Y47oHt3txOFLG8KyVdAa1Xtn3+qeFWdCFwNnArMsZtOGWOCVeKQ6bzXvhcsXw5Nm8KIEW5HCmneDP/tUsy6GSLSBeeeIv+Hc68SY4wJKl1++5G+i2eSFVGZqy+8hxVPp7odKaT5/Va7nll8LwYO+/u9jTHGZxs3MnzmKACeT+7PivhGLgcKfeVyz3ZVXQJ0KI/3NsYYr+XkwI03UvNQBt+ccT5vtbHzIv5QmhtbxXjzxqq6xtf3MMYYf0nbtJdRHfvC99+zNbYW/7z8fhvq6yel2SNZJyL3i0iZ7+oiIueJyKfA38sezRhj/KfBsiUM/GkKuVKJ+6/6Ozur1XQ7UoVRmkLyJfASsEVExopISnF7GCLSSETuEpGfgF+A84DZ/olrjDFe+PNPLh37MpVQRv2lD3NPO9ftRBVKaW5sdbOIjMK5Z/sAz5IrIitxrmbfDUQDtYGmOCO1BNgKPAK8rKpZJX2OiDTAuTblFCAPGKeqIwu0EWAk0A04APTz9cZbxpiKK3HIdCrl5fLOlKF02LuHH087l//85a9ux6pwSjX8V1UXAJeJSBPgVqAT0BI4p0DT7TgXLH4IfKiqZRm5lQMMVtVfRKQ6sFBEvlLVFfnaXA408SwXAGM9X40xplD3/zCRDhuWcKBGHPdf9XfybFZfvyvTdSSq+jswBEBEqgL1cfZEDgLbVHWLt0E8227xPN7v2eOpD+QvJD2Ad1RVgbkiUlNE6vnyucaYiqvj2oXc++Nk8hC+uHsQ27WW25EqJHF+JwcXzxQr3wEtVHVfvtc/B573XKuCiHwDPOTZYyr4HkcOwxEfH99m0qRJXmXJyMggNjbWq21DVbj1Odz6C+HR56jt22l5623E7N/H3Guv548b/srWg26nCqyGcRFef59TUlIWqmpSadp6PY18SUSkShkPbR3ZLhbn0NgD+YvIkdWFbFJoJVTVccA4gKSkJE1OTi5rFABSU1PxdttQFW59Drf+Qhj0OTsbkpNh/z7+r2Fr+p1xPYMO5jEirdx+5QWlCV2rBeT7XC4XJHpkikjzsmwgIlVwisj7qvpRIU3SgQb5nicAm72PaIypkAYPhp9+YnP1Ojxw5WBUyvNXnfG5PHtGdBUmAnhERHYBqOp9JbyPAG8CK1X1pSKaTQMGisgknJPse+38iDHmOO+9B6NHQ2Qkd/V8mN1V49xOVOH5Yz9vILAE2FPgdQHOBDIp4vBTAe1xbpaVJiKLPa/9CzgNQFVfA2bgDP1djTP8t7+v4Y0xFcjSpUdvmcuoUSxZl+BunjDhj0LyKHAb8KCqph55UUQO41znsaKoDfPznEAvdr4Cz2ite7yPaoypsHbtgquvhoMHnVvnDhgAD89wO1VY8PnAoaoOA24A3hCRYSJig7SNMYGVmwvXXw9r10Lr1vDqqzaPVgD55QyUqs4F2gBn4FzfcaY/3tcYY0pjbPs+8OWX7IypAR9/DDE2T2wg+W0snKruBf4qIrcDcyjfEWHGGOOYMoW75k0lRypxT88hzH01DUhzO1VYKfMvexEpdrYzVX0duAi4BWe4rjHGlI9Fi5zzIcCzl9xqkzG6xJu9hkUi8khxDVR1laq+XcgFhcYY4x9bt0KPHnDwIB+2uMRuUuUibwqJ4Ezg2F9EWnkuIjy+gUh9ERnkezxjjClEVhYL2qTAxo38cmpT/tVloJ1cd5G350g6cOxWujki8iuw2LOkAS2Ap3DuY2KMMf6jCnffTdKmlWyuXoc7rn6UrMqRbqcKa94WksnAIqC1Z2mBM6X8TRy7+HCnz+mMMaagESNg/HgOVY5kwDWPsj32JLcThT1vC8mvqvrikSciUg1oxbGiUguY4ns8Y4zJ59NP4Z//BGDQFYNYdkpjlwMZ8NPwX1XNxBnyO8cf72eMMSdYtAhuuAFUefGim5jRrEPJ25iAsGs9jDHBb9MmuOoqOHCAD89OYcyFvd1OZPLxdo+kl4hUxjm5vkRV1/gxkzHGHLN/P1xxhVNMOnTg4QvusxFaQcbbQtLCsyiAiGQAS3FmAV7s+Zqmqof8EdIYE6ZycqB3b1iyBJo0gU8+IfvFuW6nMgV4W0heBb4GWuZb2nuWI6O2cgEbk2eM8Y4qDBwIs2axM6YG16T8gw1WRIKSN4XkSpwbSv0AfHLkRRGpybGi0gqwuQqMMd4bNgz++1+IiuL2ax9jw0mnup3IFKHMhURVC53gX1X3AKmexRhjvDdhAjz6qHMu5IMP+OXnKLcTmWLYqC1jTHCZORNuu815PGoUXHONu3lMiYKqkIjIeBHZJiLLilifLCJ7RWSxZxka6IzGmHI0bx5cdx3k5vJqu14kpjckcch0t1OZEvjtfiR+MgEYDbxTTJvvVfXKwMQxxpS3I4XijB0b+eaTRyEzE266iRfq2bUioSKo9khU9Ttgl9s5jDGBVW/fdt6d8hjs3Mk3Z5xP4/hr7VqREBJUhaSULhSRJSIyU0TOdjuMMcY3Jx3YyztThnLq/h0sqN+ce3o8RE5EsB0sMcURVS25VQCJSCLwuaq2KGRdDSBPVTNEpBswUlWbFPE+A4ABAPHx8W0mTZrkVZ6MjAxiY2O92jZUhVufw62/EDx9jsjI4Mz7HiB+3Rp2JJzGR48NI6ta+eSKj4GtB8vlrYNWw7gIr7/PKSkpC1U1qTRtQ6qQFNJ2PZCkqjuKa5eUlKQLFizwKk9qairJyclebRuqwq3P4dZfCJI+HzgAXbrAnDmsr1mP624czvbYWuX2cYPPyWFEWnjt6UzoWs3r77OIlLqQhNShLRE5RcQ5cCoibXHy231PjAk1WVlw7bUwZw5bYmvTt88z5VpETPkKqvIsIhOBZKCOiKQDjwNVAFT1NaAXcJeI5AAHgT4abLtUxpjiHT4MffrArFlQpw59ez5Nely826mMD4KqkKjq9SWsH40zPNgYE4pycqBvX/jkE6hZE776ijWTNrmdyvgopA5tGWNCV8OHPuPDVl1gyhT2R8bQvftQEq2IVAhBtUdijKlYjlxsKJrH8JmjuHbZt2RWiabfdU+ytN6ZLqcz/mJ7JMaYcnWkiPRO+5oDVaK4tddQFiac5XYs40dWSIwx5UY0j+dmjT5aRG7p9ThzT7M7TFQ0dmjLGFM+cnN5ccZIei37hoOVrYhUZLZHYozxv5wcuPlmei37xvZEwoDtkRhj/OvwYbjhBpg6lYzIGPr3epz5DUqcqMKEMCskxhj/OXiQb865mE5r5rMvqhp/u+5JFtVv5nYqU87s0JYxxj/274crrqDTmvnsiqnBDX2etSISJmyPxBjju127oFs3mDePrbG16Nv7aX6ve7rbqUyAWCExxvhm0yZWtfwLTXf8QXqNk7mhz7P8cVI9t1OZALJDW8YY7/32G7RvT9Mdf/B77Qb0uvEFKyJhyAqJMcY7CxdChw6wYQOL6jXluhuH82eNOm6nMi6wQmKMKbtZs8i8sANs3853ia24sc8z7Imp4XYq4xIrJMaYMhl8xSAOX3El1Q4f4qOzU7i111AORMa4Hcu4yE62G2NKRxWeeYYRM14GYOwFvXjh4ptRsb9Hw50VEmNMybKz4Y47YMIE8hCe7DyAt9tc5XYqEySC6k8JERkvIttEZFkR60VERonIahFZKiKtA53RmLCzZw9cfjlMmAAxMdxxzSNWRMxxgqqQABOArsWsvxxo4lkGAGMDkMmY8LV6NbRrB99+y/ZqNbnqumF81aSd26lMkAmqQqKq3wG7imnSA3hHHXOBmiJig9aNKQ+pqXDBBbBqFb/WOZ2eN71EWr0mbqcyQSijnH4EAAAQiUlEQVTUzpHUBzbme57ueW2LO3GMqaDGjYN77nGmg7/ySq5tfDOZUVXdTmWCVKgVEinkNS20ocgAnMNfxMfHk5qa6tUHZmRkeL1tqAq3Podbf6HoPsvhwzQePZr606YB8Eu3nvzY+yburBQB5AQ2pJ/Fx8Dgc0K7D2UVqJ/tUCsk6UCDfM8TgM2FNVTVccA4gKSkJE1OTvbqA1NTU/F221AVbn0Ot/5CEX3etg169YLvv4eoKAZ1vpuPWnSC5a5E9LvB5+QwIi3UfuX5ZkLXagH52Q6qcySlMA242TN6qx2wV1XtsJYxvpo7F1q3hu+/58/YWvToPcwpIsaUQlCVZxGZCCQDdUQkHXgcqAKgqq8BM4BuwGrgANDfnaTGhLa0TXvpN2Q6qLK+0Sa49144fJj59c/i7p5D2B5by+2IJoQEVSFR1etLWK/APQGKY0yFFn34EM98ORaWfQPAW22uYljKLRyOqOJyMhNqgqqQGGMC46TN6Xzyzos027GBg5WjeLjrQD45O8XtWCZEWSExJtxMnEjvoX8n8tAh1tRK4K6eQ/itbqLbqUwIs0JiTLjIzIT77oPx44kEpjXvyMNdBtr1IcZnVkiMCQdLl8Jf/wq//grR0Xx7fX/uq9sNpLBLs4wpm1Ab/muMKYu8PHjlFTj/fKeInHUWzJ/P8k5drIgYv7FCYkxFtWUL352RBA8+6EwDP2AAzJ8PLVq4ncxUMHZoy5iK6H//gzvvpOOuXeyKqcFDl9/HVye1g6dmAzD4HJfzmQrFCokxFcnu3XzS4Wp6rvg/AL5LbMXfuz3Atuq1XQ5mKjIrJMZUFJ99BnfcQc8tWzhQJYphKbfyXsvL7VyIKXdWSIwJdbt28VHHXlyz3DlstaB+cwZf8SAbTjrV5WAmXFghMSZUqTrnQu69l2u2beNg5She7HgzE9pcSV6lCLfTmTBihcSYEJM4ZDr19m3nqa/GcunqnwGYl3A2D11+H+tr1Xc5nQlHVkiMCSU5Odw6/xMenPM+sdkH2RdZledSbmHSeZehYqP5jTuskBgTKubOhTvv5LElSwCYeeZfeLzzHTYiy7jOCokxwW7bNnj4YRg/HoD0Gicz9NI7+bZxW5eDGeOwQmJMkGr8j0+5cfFMBn3/HnFZmVClCgweTOfsJA5ViXY7njFHWSExJhjNmsXMt+6lyc6NAKQ2bMOTnQewTut77hlqTPCwQmJMELns1jE8nPoWKWsX0gRYX7Mez15yK181vsAuLDRBK6gKiYh0BUYCEcAbqvp8gfX9gBeBTZ6XRqvqGwENaUx52LwZHn+cmW+NJ0Lz2BdZlVHt+/BO66vIrmy7ICa4BU0hEZEIYAxwKZAOzBeRaaq6okDTyao6MOABjSkPu3fzarcB9F/wGTE5WeRViuC9Vlcw6i/Xs7NaTbfTGVMqQVNIgLbAalVdCyAik4AeQMFCYkzIaz7oQ/r98hl3zp3K3VmZAMw680KGX9yPdXZRoQkxoqpuZwBARHoBXVX1Ns/zm4AL8u99eA5tPQdsB34DHlTVjUW83wBgAEB8fHybSZMmeZUrIyOD2NhYr7YNVeHW50D2t9KhQ5w6bRqnvv8BVfftBWDjWefwU++b2Nr4zIBkAIiPga0HA/ZxQSEc+9wwLsLrn+2UlJSFqppUmrbBtEdS2JnEglXuM2CiqmaJyJ3A28Alhb2Zqo4DxgEkJSVpcnKyV6FSU1PxdttQFW59Dkh/MzN5+qr7uePnjzg5czcAi+o1ZcRFfZmT2BIOCqSVb4T8Bp+Tw4i0YPrvX/7Csc8TulYLyP/lYPpXTQca5HueAGzO30BVd+Z7+jowPAC5jPHaOQ9Ooe+iGdz288c8dnAfAGnxZ/DSRX2Z3SjJRmKZCiGYCsl8oImINMQZldUHuCF/AxGpp6pbPE+7AysDG9GYkiUOmU7djN30X/gpP/wygxrZBwBnD2RU+z5WQEyFEzSFRFVzRGQg8AXO8N/xqrpcRJ4CFqjqNOA+EekO5AC7gH6uBTamMCtW8PzMUVy9fDZRuYcB+PG0c3m13XXOISwrIKYCCppCAqCqM4AZBV4bmu/xw8DDgc5lTLHy8uCrr2DkSJg5kz5AHsIXTdoxtt11LD61qdsJjSlXQVVIjAkp+/bBu+/Cf/4Dq1Y5r8XE8G6zFMYn9bBhvCZsWCExpqyWLoWxY+G99yAjA4AtsbV5t/UVTDyvC7urxrkc0JjAskJiTGlkZMDkyfD66zBv3tGX5zVowTutruCLMy8kJ8L+O5nwZD/5xhRFFb7/Ht5+m4z3JhKb7VzNti+yKh+3SOG9lt34ve7pLoc0xn1WSIwp6Lff4P332TBqHKfv+ROAWGB+/bOYdF4Xpjdrb/cDMSYfKyTGAKSnw//+x+IXx9Jyy+8AnA5srl6Hj89O4cMWnVhbO8HdjMYEKSskJmwkDpl+9PH6569wisdHH9HyjTcgzZmfpCWwPzKGWWe255Ozk/nptHPIqxThUmJjQoMVEhM+VDljZzqXrp7HolMH02qLM2S3JnCociTfNkri8+Yd+eaM88mqEuVuVmNCiBUSU7FlZzsnzKdP59sJk2m0+9j0bQcrR5HaqA2VOl/AoMgLyYyq6mJQY0KXFRJT4Vx055t0XPcLHdf9wl82LKG6Z7RVI2B3dHW+bXw+XzZux3cNW3MwMprB5+SQGWazwhrjT/a/x4S+bdu45/aXaL9hMe03LOF7z0irI36tczqzzzif2WcksbB+c3LtnIcxfmWFxISeP/6AOXOcQ1apqfDrr4zJt3pfVDXmnH4e3zVszXeNWrO5xsluJTUmLFghMcEtKwsWL4affoK5c+HHH2Hj8TfFPFg5igX1m/Nj4nn8cPp5LIs/w0ZaGRNAVkhM8MjKguXLYdEiWLAA5s935rU6fPi4ZnujqrEg4SwW1m/O3AbnkFavMYcjqrgU2hhjhcQEnips3uwUjbQ0WLLEKRgrVpxQNPIQVtc+jUWnNnWW+s34rc5pqFRyKbwxpiArJKb8ZGfD2rXOlCOrVsGvv8LKlU7B2Lv3hOZ5COtqJbA8vhHL4s9gab0mpMU3tmG5xgQ5KyTGe3l5sG0bbNgA69c7y9q1sGaN83XDBqdNIXbF1OD3OqfxW53TWHlyQ1bWbciquqdzIDImoF0wxvguqAqJiHQFRuLcavcNVX2+wPoo4B2gDbAT+Kuqrg90zgpP1dlj2LoV/vzTWbZsgU2bji0bNzpTjGRnF/k2uVKJTXHxrKtVn7W16rOmdgPW1Epgde0GbK9W0247a0wFETSFREQigDHApUA6MF9EpqnqinzNbgV2q2pjEekDDAf+Gvi0ISI7G/bvd+7kt3fvsWXPHti9G3btgp07jy07dsD27XTcuvWEcxVFql0bTj8dEhN5449c/qh5imepR3pcPNmV7SS4MRVd0BQSoC2wWlXXAojIJKAHkL+Q9ACe8DyeCowWEVFV9XuavXth9WpiV62C6tWdv9KPKOyxatFLXt7xS27u8UtOzrHl8OFjS3b2sSUr69hy8CAcOuR8PXDg2NfMTOcGTJmZTgEpZm+hOJWAjMgYdlaNY3u1k9hW7SS2x57E1tjabI2tzZ/Va7Oleh0216hz/HTqTbz6OGNMiAumQlIfyH+BQDpwQVFtVDVHRPYCtYEdfk/z009w+eUk+f2NAydHKpEZGcP+qGrsj6rK/qiq7Iuqxr7oWPZFVWNvdHV2x1RnT0x1dsfUYGfVOPbEVOfG82MZ/ls1t+MbY0JEMBWSwg6YF9zTKE0bp6HIAGCA52mGiKzyMlcdyqNQBYLmQVams5TBD6+FcJ+9cF8of4+9ZH0ODynDfepzqW//GUyFJB1okO95ArC5iDbpIlIZiAN2FfZmqjoOGOdrKBFZoKqhvGNSZuHW53DrL1ifw0Wg+hxMV3XNB5qISEMRiQT6ANMKtJkG/M3zuBfwbbmcHzHGGFNqQbNH4jnnMRD4Amf473hVXS4iTwELVHUa8CbwroisxtkT6eNeYmOMMRBEhQRAVWcAMwq8NjTf40PAdQGO5fPhsRAUbn0Ot/6C9TlcBKTPYkeGjDHG+CKYzpEYY4wJQVZIcKZmEZFVIrJaRIYUsj5KRCZ71s8TkcTAp/SvUvR5kIisEJGlIvKNiJR6KGCwKqnP+dr1EhEVkZAf4VOaPotIb8/3ermIfBDojP5Wip/t00Rktogs8vx8d3Mjp7+IyHgR2SYiy4pYLyIyyvPvsVREWvs9hKqG9YJzYn8Nzi29I4ElwFkF2twNvOZ53AeY7HbuAPQ5BajqeXxXOPTZ06468B0wF0hyO3cAvs9NgEXASZ7nJ7udOwB9Hgfc5Xl8FrDe7dw+9rkj0BpYVsT6bsBMnOvw2gHz/J3B9kjyTc2iqtnAkalZ8usBvO15PBXoJBLSMw6W2GdVna2qBzxP5+Jc1xPKSvN9BngaeAE4FMhw5aQ0fb4dGKOquwFUdVuAM/pbafqsQA3P4zhOvF4tpKjqdxRxPZ1HD+AddcwFaopIPX9msEJS+NQs9Ytqo6o5wJGpWUJVafqc3604f9GEshL7LCKtgAaq+nkgg5Wj0nyfzwTOFJEfRGSuZwbuUFaaPj8B9BWRdJxRovcGJppryvr/vcyCavivS/w6NUuIKMtUM32BJODick1U/orts4hUAl4G+gUqUACU5vtcGefwVjLOXuf3ItJCVfeUc7byUpo+Xw9MUNURInIhzrVpLVS18JvnhL5y//1leyRlm5qFkqZmCRGl6TMi0hl4BOiuqlkBylZeSupzdaAFkCoi63GOJU8L8RPupf3Z/lRVD6vqOmAVoT2Pc2n6fCswBUBVfwKicebhqqhK9f/dF1ZIwnNqlhL77DnM81+cIhLqx82hhD6r6l5VraOqiaqaiHNeqLuqLnAnrl+U5mf7E5yBFYhIHZxDXWsDmtK/StPnP4BOACLSHKeQbA9oysCaBtzsGb3VDtirqlv8+QFhf2hLw3BqllL2+UUgFvifZ1zBH6ra3bXQPiplnyuUUvb5C+AyEVkB5AL/UNWd7qX2TSn7PBh4XUQexDnE0y+U/zAUkYk4hybreM77PA5UAVDV13DOA3UDVgMHgP5+zxDC/37GGGOCgB3aMsYY4xMrJMYYY3xihcQYY4xPrJAYY4zxiRUSY4wxPrFCYowxxidWSIwxxvjECokxxhifWCExxhjjEyskxgSQiHzpufviNQVeFxGZ4Fn3vFv5jPGGTZFiTACJyHnALziz7J6jqrme10cAg4DXVXWAixGNKTPbIzEmgFR1CfAu0By4CUBE/oVTRKYAd7qXzhjv2B6JMQEmIgnA78BW4N/Af3Bmq+3uuT2sMSHFCokxLhCR54Ahnqc/Apeq6gEXIxnjNTu0ZYw78t9I6VYrIiaUWSExJsBE5HqcQ1p/el6638U4xvjMCokxASQi3YC3geXAucCvwG0i0szVYMb4wAqJMQEiIh2AqUA6cJmqbgcew7nltV07YkKWnWw3JgA814/8H3AQ6KCqa/Ktmw8kAR1V9XuXIhrjNdsjMaaciUhjnOG9CnTJX0Q8HvZ8fTGgwYzxE9sjMcYY4xPbIzHGGOMTKyTGGGN8YoXEGGOMT6yQGGOM8YkVEmOMMT6xQmKMMcYnVkiMMcb4xAqJMcYYn1ghMcYY4xMrJMYYY3zy/7sXTcjIqR8CAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Analytical: Q(d=20) 0.553539364154\n", "Numerical: = 0.551448\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAETCAYAAAALTBBOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xt8VPWd//HXRy5GIICABCQoUhURLygRdbUYFkXKquAda71Saa1tXaW29rJtf+7+1G7XtlZZLQJSWgWtbdV6K7aSqrRarhLkIogoEQQNGA0QQpLP/jEnMYRJMpnMzJmTvJ+Pxzwyc873nPP5QpgP38v5HnN3REREUu2AsAMQEZG2SQlGRETSQglGRETSQglGRETSQglGRETSQglGRETSQglGRETSQglGRETSQglGRETSomPYAYSpT58+PmjQoKSO3blzJ127dk1tQFlOdW4fVOe2r7X1XbJkyUfufkhz5dp1ghk0aBCLFy9O6tiioiIKCwtTG1CWU53bB9W57Wttfc3s3UTKqYtMRETSQglGRETSQglGRETSol2PwcSzd+9eSkpKqKioaLJcjx49WL16dYaiyg6qc3JycnLIz8+nU6dOKYpKJBqUYBooKSkhNzeXQYMGYWaNlvv000/Jzc3NYGThU51bzt0pLS2lpKSEI444IoWRiWQ/dZE1UFFRQe/evZtMLiKJMjN69+7dbItYpC1SgolDyUVSSb9P0l4pwYiISFoowYiISFoowUjGbdiwgcmTJ3PJJZfUbVu1ahWXXXYZN954I0888USI0Ym0XYNuf5ZBtz+bsespwWSpX/3qV/Tr14/hw4czePBgZs+enfCxu3fv5qyzzqK6unq/fZWVlYwaNYqqqqqk4tq0aROjR49m6NChDBs2jHvvvbdu3wsvvMCQIUM48sgjufvuuxs9x+DBg5k5c+Y+255//nm+8Y1v8MADDzBnzpwmY0j0Oplw/fXX07dvX4477rhQ4xDJRkowWWrFihX8+Mc/Zvny5TzxxBNMnTo14WNnzZrFRRddRIcOHfbb16FDB8aMGcNjjz2WVFwdO3bknnvuYfXq1bz22mtMmzaNVatWUV1dzU033cTzzz/PqlWrmDt3LqtWrYp7jniJ76qrrmLevHncdtttlJaWNnr9llynvsrKSnbu3NnkeZM5/tprr+WFF15o9voi7ZESTJYqLi5m6NChAOTn5zf7BVjfI488woQJE+o+X3rppdx6662MHj2au+66i4kTJ/LII48kFVf//v05+eSTAcjNzWXo0KG8//77/POf/+TII49k8ODBdO7cmUmTJvHUU081GkNDffv2Zdq0adx999306dOn0es3d52GVq9ezdSpUxkyZAhvvfXWPvuaiwlg7dq1jR4PMGrUKHr16tXo9UXaM91omaWKi4s55phjcHd++ctfct555yV0XGVlJRs2bKD+Ywhqk9WCBQuA2P/WFy1a1OoYN27cyLJlyzj11FOZP38+AwcOrNuXn5/P66+/HjeG0tJSvvrVr7Js2TLuuusuvvvd77Jx40buvPNOdu7cyW233dboNd9///0mrwOxpcgff/xxZs6cibtz3XXXsWLFiv1umGz45xLv+KqqKr785S/HPV5EmqYE05Qm7l9o1VeNe5O7N23aRHl5Oeeeey6dOnVi5MiRTJs2LaFTf/TRR/Ts2bPuc0VFBdu3b+eHP/xh3bYOHTrQuXPn/e5SX7p0KQ8//DCdOnXiggsuYOTIkSxcuJDc3FxOO+20fa5TXl7OxRdfzC9+8Qu6d++Ox6lT7f0fDWPo3bs3Dz744D5lBw0axPTp05utX1PXqdW/f39OOOEEZsyYwTHHHBP3PPH+XOIdP2DAACUWkSSpiywLrVixgjFjxrB8+XIWLVrEtGnT6NGjB08++SQ33HADEyZMYP78+ezcuZNrrrmGG264oa7L66CDDtrnrvE333yTU089lY4d9/2/xJ49e8jJydln20MPPcSkSZM4++yzmTVrFoWFhTz77LP7fUnv3buXiy++mCuvvJKLLroIiLUkNm3aVFempKSEQw89tMkYktHUdWo98cQTDBgwgAsvvJA77riDd9/d/9EVTcVU//i777477vEi0rysasGY2SzgPGCbux8XbHsMGBIU6Ql87O7D4xy7EfgUqAaq3L2g1QE10dJI57pcxcXFnHjiifttnzhxIhMnTmTHjh1861vfYuvWrVxyySWcf/75XH755Vx55ZUcfPDBVFdXU1FRQU5ODsXFxZxwwgn7nKe0tJRDDjlkv8UXH3jggbr348ePjxubuzN58mSGDh3KrbfeWrf9lFNOYd26dbzzzjsMGDCAefPm8eijj9bVp2EMiRozZgxz5sxhwIABzV6n1tixYxk7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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Analytical: Q(d=200) 0.177023967696\n", "Numerical: = 0.17836\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEUCAYAAAAMdcB4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAHkxJREFUeJzt3X2cVWW99/HPzwEaEQSFIGIs4JZwlBCEfDh2kDkYGKWgYsLLEJUj53hMvdUss/ukt6eQU2mpcTQSBQwdCDtigZ5MQZPCUEBQECE0GCIfRkRBAYXf+WOtGed59ux9zV57z/6+X6/9mr3WXntdv0twvlzrWg/m7oiIiGTqkKQLEBGRtkGBIiIiQShQREQkCAWKiIgEoUAREZEgFCgiIhJETgWKmd1rZm+Y2Ys11h1pZo+b2ab45xHxejOzO8xss5mtNbMTkqtcRERyKlCA2cAZddZdDzzh7v2BJ+JlgC8D/ePXVOCuLNUoIiINyKlAcfengbfrrB4LzInfzwHG1Vg/1yMrgK5m1is7lYqISF05FSiN6OnuOwDinz3i9b2BbTW2q4jXiYhIAtolXUAGrIF19e4jY2ZTiQ6Jceihhw496qij0m7w4MGDHHJIPmRwGIXWX1CfC4X63DKvvPLKW+7+yea2y4dAed3Mern7jviQ1hvx+gqgZjqUAH+r+2V3nwnMBBg2bJg/99xzaReybNkyRowYkfb3802h9RfU50KhPreMmf01le3yIaIfASbH7ycDi2qsvzA+2+tkYFfVoTEREcm+nBqhmNmDwAigu5lVADcC04EFZjYF2AqcF2++BBgDbAbeBy7OesEiIlItpwLF3Sc28tHIBrZ14PLWrUhERFKVU4GShA8//JCKigr27t3b7LZdunRhw4YNWagqNxRafyH5PhcXF1NSUkL79u0Tq0EkXQUfKBUVFXTu3Jk+ffpg1tCJYx9777336Ny5c5YqS16h9ReS7bO7U1lZSUVFBX379k2kBpFM5MOkfKvau3cv3bp1azZMRFqbmdGtW7eURssiuajgAwVQmEjO0N9FyWcKFBERCUKBIiIiQRT8pLzkli1btvCDH/yAXbt2sXDhQgDWr1/PTTfdRLdu3Rg5ciTHHntsreXx48cnXLVIbupz/eLq97PPOKzV29MIJUf8/Oc/51Of+hSDBw+mX79+zJ49O+19ffDBB5x22mkcOHCg3mf79+9n+PDhfPTRR2nte9u2bZSVlVFaWspxxx3H7bffXuvzxx57jAEDBnD00Uczffr0ZtfX1a9fP2bNmlVr3aOPPsoVV1zBXXfdxdy5c+stNyXVdrPhkksuoUePHgwcODDROkRaiwIlR6xdu5abbrqJNWvWsHDhQq699tq093XvvfdyzjnnUFRUVO+zoqIiRo4cyfz589Pad7t27bj11lvZsGEDK1asYMaMGaxfvx6AAwcOcPnll/Poo4+yfv16HnzwQdavX9/o+roaCkCASZMmUV5eznXXXUdlZWW95cak2m5d+/fvZ8+ePU1u01itTe3joosu4rHHHmu2fZF8pUDJEevWraO0tBSAkpKSZn9hNWXevHmMHTu2evm8887jmmuuoaysjFtuuYVx48Yxb968tPbdq1cvTjghejhm586dKS0tZfv27QD8+c9/5uijj6Zfv3506NCBCRMmsGjRokbXN1RbQ3r06MGMGTOYPn063bt3r7fcmKbabciGDRu44YYbGDBgAK+88kq9z1OpdcOGDVx77bUN7mP48OEceeSRjbYvku80h5Ij1q1bxzHHHIO7c8cdd/DVr341rf3s37+fLVu20KdPn1r7Li0tZenSpUD0r+uVK1dmXPNrr73G6tWrOemkkwDYvn07NR8PUFJSwrPPPtvo+oZqq6ys5Lvf/S6rV6/mlltu4Tvf+Q6vvfYa06ZNY8+ePVx33XX1lhvTVLtV9uzZw4IFC5g1axbuzsSJE5k2bVqDFzfWrbWxfVx88cWsXbu24C4KFVGg1NTMNQBp/3rweo9pqWXbtm3s3r2b0aNH0759e0488URmzJiRVlNvvfUWXbt2rV7eu3cvb7/9Nt/73veq1xUVFdGhQ4d6V4WvWrWK++67j/bt23PWWWdRWlrKihUr6Ny5MyeffHKtdnbv3s25557LT3/6Uw4//PC4m/X7aWaNrm+otm7dunH33XfX2rZPnz7MnDmz1rq6yw1prN2aevXqxaBBg7jnnns45phjGr1SvqFaG9uHSKHSIa8csHbtWkaOHMmaNWtYuXIlM2bMoEuXLjz88MNceumljB07lt/97nfs2bOHyZMnc+mllzJv3rx6ywCHHnporSutX3rpJU466STatav9b4d9+/ZRXFxca90vfvELJkyYwOmnn869997LmDFj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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%pylab inline\n", "import pylab, random, math\n", "\n", "#analytical formulae:\n", "def V_sph(dim): #volume of \"dim\" dimensional sphere\n", " return math.pi ** (dim / 2.0) / math.gamma(dim / 2.0 + 1.0)\n", "def Q(dim):\n", " return V_sph(dim) / V_sph(dim-1)\n", "\n", "#monte carlo algorithm:\n", "def markov_sphere(d, n_runs, n_trials):\n", " x = [0.0] * d #initial point\n", " delta = 0.1\n", " Q_avg_d = 0 #initialise the average Q(d)\n", " old_radius_square = sum(i**2 for i in x) \n", " data = []\n", " for j in range(n_runs):\n", " n_hits = 0\n", " if d == 1:\n", " Q_avg_d = 1 \n", " break\n", " for i in range(n_trials):\n", " k = random.randint(0, d - 2)\n", " x_old_k = x[k]\n", " x_new_k = x_old_k + random.uniform(-delta, delta) \n", " new_radius_square = old_radius_square + x_new_k ** 2 - x_old_k ** 2\n", " if new_radius_square < 1.0: #check whether the position is inside the unit (d-1)-sphere\n", " old_radius_square = new_radius_square #update the radius\n", " x[k] = x_new_k #update a component\n", " x[d-1] = random.uniform(-1, 1) #sample the d'th coordinate (inside the unit cylinder) \n", " if old_radius_square + x[d-1]**2 < 1.0: #is x inside the unit d-sphere?\n", " n_hits += 1 #raise the number of hits in case of accepted sample \n", " data.append(math.sqrt(old_radius_square + x[d-1]**2)) #generate the radius histogram data\n", " \n", " Q_avg_d += 2.0 * n_hits / float(n_trials) / n_runs #take the average of Q's\n", " \n", " print 'Analytical: Q(d=%i)' % d, Q(d)\n", " if d != 1:\n", " print 'Numerical: =' % d, Q_avg_d \n", " else:\n", " print 'There is no cylinder in 1 dimension!'\n", " return Q_avg_d, data\n", "\n", "n_trials = 500\n", "n_runs = 500\n", "\n", "# 4-dimensional sphere radius distribution\n", "Q_avg_d, data = markov_sphere(4, n_trials, n_trials)\n", "pylab.hist(data, 100, normed = 'True') #histogram of the sample\n", "x = [a / 100.0 for a in range(0, 100)]\n", "y = [4 * a**3 for a in x]\n", "pylab.plot(x, y, c='red', linewidth=2.0, label='$P_4(r) \\sim 4 r^3, 0 = 1.567504\n", "Analytical: V_sph(d=2) 3.14159265359\n", "Numerical: V_sph(d=2) 3.135008\n", "___________________________________________\n", "Analytical: Q(d=3) 1.33333333333\n", "Numerical: = 1.33864\n", "Analytical: V_sph(d=3) 4.18879020479\n", "Numerical: V_sph(d=3) 4.19664710912\n", "___________________________________________\n", "Analytical: Q(d=4) 1.1780972451\n", "Numerical: = 1.172344\n", "Analytical: V_sph(d=4) 4.93480220054\n", "Numerical: V_sph(d=4) 4.91991405849\n", "___________________________________________\n", "Analytical: Q(d=5) 1.06666666667\n", "Numerical: = 1.058728\n", "Analytical: V_sph(d=5) 5.26378901391\n", "Numerical: V_sph(d=5) 5.20885077132\n", "___________________________________________\n", "Analytical: Q(d=6) 0.981747704247\n", "Numerical: = 0.989828\n", "Analytical: V_sph(d=6) 5.16771278005\n", "Numerical: V_sph(d=6) 5.15586634128\n", "___________________________________________\n", "Analytical: Q(d=7) 0.914285714286\n", "Numerical: = 0.913492\n", "Analytical: V_sph(d=7) 4.72476597033\n", "Numerical: V_sph(d=7) 4.70984265582\n", "___________________________________________\n", "Analytical: Q(d=8) 0.859029241216\n", "Numerical: = 0.865424\n", "Analytical: V_sph(d=8) 4.05871212642\n", "Numerical: V_sph(d=8) 4.07601087057\n", "___________________________________________\n", "Analytical: Q(d=9) 0.812698412698\n", "Numerical: = 0.808216\n", "Analytical: V_sph(d=9) 3.29850890274\n", "Numerical: V_sph(d=9) 3.29429720177\n", "___________________________________________\n", "Analytical: Q(d=10) 0.773126317094\n", "Numerical: = 0.770212\n", "Analytical: V_sph(d=10) 2.55016403988\n", "Numerical: V_sph(d=10) 2.53730723637\n", "___________________________________________\n", "Analytical: Q(d=11) 0.738816738817\n", "Numerical: = 0.725876\n", "Analytical: V_sph(d=11) 1.88410387939\n", "Numerical: V_sph(d=11) 1.84177042751\n", "___________________________________________\n", "Analytical: Q(d=12) 0.708699124003\n", "Numerical: = 0.705664\n", "Analytical: V_sph(d=12) 1.33526276885\n", "Numerical: V_sph(d=12) 1.29967108696\n", "___________________________________________\n", "Analytical: Q(d=13) 0.681984681985\n", "Numerical: = 0.672892\n", "Analytical: V_sph(d=13) 0.910628754783\n", "Numerical: V_sph(d=13) 0.874538277045\n", "___________________________________________\n", "Analytical: Q(d=14) 0.658077758003\n", "Numerical: = 0.66044\n", "Analytical: V_sph(d=14) 0.599264529321\n", "Numerical: V_sph(d=14) 0.577580059691\n", "___________________________________________\n", "Analytical: Q(d=15) 0.636519036519\n", "Numerical: = 0.627748\n", "Analytical: V_sph(d=15) 0.381443280823\n", "Numerical: V_sph(d=15) 0.362574727311\n", "___________________________________________\n", "Analytical: Q(d=16) 0.616947898128\n", "Numerical: = 0.619088\n", "Analytical: V_sph(d=16) 0.235330630359\n", "Numerical: V_sph(d=16) 0.224465662782\n", "___________________________________________\n", "Analytical: Q(d=17) 0.599076740253\n", "Numerical: = 0.603332\n", "Analytical: V_sph(d=17) 0.140981106917\n", "Numerical: V_sph(d=17) 0.135427317257\n", "___________________________________________\n", "Analytical: Q(d=18) 0.582673014898\n", "Numerical: = 0.57796\n", "Analytical: V_sph(d=18) 0.0821458866111\n", "Numerical: V_sph(d=18) 0.0782715722821\n", "___________________________________________\n", "Analytical: Q(d=19) 0.567546385503\n", "Numerical: = 0.563264\n", "Analytical: V_sph(d=19) 0.0466216010301\n", "Numerical: V_sph(d=19) 0.0440875588899\n", "___________________________________________\n", "Analytical: Q(d=20) 0.553539364154\n", "Numerical: = 0.547916\n", "Analytical: V_sph(d=20) 0.02580689139\n", "Numerical: V_sph(d=20) 0.0241562789167\n", "___________________________________________\n", "Analytical: Q(d=21) 0.540520367146\n", "Numerical: = 0.542652\n", "Analytical: V_sph(d=21) 0.013949150409\n", "Numerical: V_sph(d=21) 0.0131084530667\n", "___________________________________________\n", "Analytical: Q(d=22) 0.528378483965\n", "Numerical: = 0.525592\n", "Analytical: V_sph(d=22) 0.00737043094571\n", "Numerical: V_sph(d=22) 0.00688969806424\n", "___________________________________________\n", "Analytical: Q(d=23) 0.517019481618\n", "Numerical: = 0.51786\n", "Analytical: V_sph(d=23) 0.00381065638685\n", "Numerical: V_sph(d=23) 0.00356789903955\n", "___________________________________________\n", "Analytical: Q(d=24) 0.5063627138\n", "Numerical: = 0.502836\n", "Analytical: V_sph(d=24) 0.0019295743094\n", "Numerical: V_sph(d=24) 0.00179406808145\n", "___________________________________________\n", "Analytical: Q(d=25) 0.496338702353\n", "Numerical: = 0.495672\n", "Analytical: V_sph(d=25) 0.000957722408823\n", "Numerical: V_sph(d=25) 0.000889269314068\n", "___________________________________________\n", "Analytical: Q(d=26) 0.486887224807\n", "Numerical: = 0.487064\n", "Analytical: V_sph(d=26) 0.000466302805768\n", "Numerical: V_sph(d=26) 0.000433131069187\n", "___________________________________________\n", "Analytical: Q(d=27) 0.477955787451\n", "Numerical: = 0.475656\n", "Analytical: V_sph(d=27) 0.000222872124721\n", "Numerical: V_sph(d=27) 0.000206021391845\n", "___________________________________________\n", "Analytical: Q(d=28) 0.46949839535\n", "Numerical: = 0.472048\n", "Analytical: V_sph(d=28) 0.000104638104925\n", "Numerical: V_sph(d=28) 9.72519859778e-05\n", "___________________________________________\n", "Analytical: Q(d=29) 0.461474553401\n", "Numerical: = 0.463496\n", "Analytical: V_sph(d=29) 4.82878227389e-05\n", "Numerical: V_sph(d=29) 4.50759064928e-05\n", "___________________________________________\n", "Analytical: Q(d=30) 0.453848448838\n", "Numerical: = 0.454848\n", "Analytical: V_sph(d=30) 2.19153534478e-05\n", "Numerical: V_sph(d=30) 2.05026859164e-05\n", "___________________________________________\n", "Analytical: Q(d=31) 0.446588277485\n", "Numerical: = 0.442332\n", "Analytical: V_sph(d=31) 9.78713994674e-06\n", "Numerical: V_sph(d=31) 9.06899406678e-06\n", "___________________________________________\n", "Analytical: Q(d=32) 0.439665684812\n", "Numerical: = 0.439904\n", "Analytical: V_sph(d=32) 4.30306958703e-06\n", "Numerical: V_sph(d=32) 3.98948676595e-06\n", "___________________________________________\n", "Analytical: Q(d=33) 0.433055299379\n", "Numerical: = 0.43276\n", "Analytical: V_sph(d=33) 1.86346708826e-06\n", "Numerical: V_sph(d=33) 1.72649029283e-06\n", "___________________________________________\n", "Analytical: Q(d=34) 0.426734341141\n", "Numerical: = 0.429012\n", "Analytical: V_sph(d=34) 7.95205400148e-07\n", "Numerical: V_sph(d=34) 7.4068505351e-07\n", "___________________________________________\n", "Analytical: Q(d=35) 0.420682290826\n", "Numerical: = 0.422132\n", "Analytical: V_sph(d=35) 3.34528829411e-07\n", "Numerical: V_sph(d=35) 3.12666863008e-07\n", "___________________________________________\n", "Analytical: Q(d=36) 0.414880609443\n", "Numerical: = 0.41544\n", "Analytical: V_sph(d=36) 1.38789524622e-07\n", "Numerical: V_sph(d=36) 1.29894321568e-07\n", "___________________________________________\n", "Analytical: Q(d=37) 0.409312499182\n", "Numerical: = 0.416892\n", "Analytical: V_sph(d=37) 5.68082871833e-08\n", "Numerical: V_sph(d=37) 5.41519035072e-08\n", "___________________________________________\n", "Analytical: Q(d=38) 0.403962698668\n", "Numerical: = 0.405004\n", "Analytical: V_sph(d=38) 2.29484289973e-08\n", "Numerical: V_sph(d=38) 2.1931737528e-08\n", "___________________________________________\n", "Analytical: Q(d=39) 0.398817306895\n", "Numerical: = 0.397208\n", "Analytical: V_sph(d=39) 9.15223065016e-09\n", "Numerical: V_sph(d=39) 8.71146160003e-09\n", "___________________________________________\n", "Analytical: Q(d=40) 0.393863631201\n", "Numerical: = 0.395044\n", "Analytical: V_sph(d=40) 3.60473079746e-09\n", "Numerical: V_sph(d=40) 3.44141063632e-09\n", "___________________________________________\n", "Analytical: Q(d=41) 0.389090055507\n", "Numerical: = 0.3891\n", "Analytical: V_sph(d=41) 1.40256490607e-09\n", "Numerical: V_sph(d=41) 1.33905287859e-09\n", "___________________________________________\n", "Analytical: Q(d=42) 0.384485925696\n", "Numerical: = 0.384944\n", "Analytical: V_sph(d=42) 5.39266466261e-10\n", "Numerical: V_sph(d=42) 5.15460371297e-10\n", "___________________________________________\n", "Analytical: Q(d=43) 0.380041449565\n", "Numerical: = 0.383916\n", "Analytical: V_sph(d=43) 2.0494360954e-10\n", "Numerical: V_sph(d=43) 1.97893483907e-10\n", "___________________________________________\n", "Analytical: Q(d=44) 0.375747609203\n", "Numerical: = 0.376504\n", "Analytical: V_sph(d=44) 7.7007071306e-11\n", "Numerical: V_sph(d=44) 7.45076882649e-11\n", "___________________________________________\n", "Analytical: Q(d=45) 0.371596084019\n", "Numerical: = 0.373652\n", "Analytical: V_sph(d=45) 2.86155261391e-11\n", "Numerical: V_sph(d=45) 2.78399467355e-11\n", "___________________________________________\n", "Analytical: Q(d=46) 0.367579182916\n", "Numerical: = 0.366528\n", "Analytical: V_sph(d=46) 1.05184717169e-11\n", "Numerical: V_sph(d=46) 1.02041199971e-11\n", "___________________________________________\n", "Analytical: Q(d=47) 0.363689784359\n", "Numerical: = 0.361596\n", "Analytical: V_sph(d=47) 3.82546071052e-12\n", "Numerical: V_sph(d=47) 3.68976897447e-12\n", "___________________________________________\n", "Analytical: Q(d=48) 0.359921283272\n", "Numerical: = 0.36048\n", "Analytical: V_sph(d=48) 1.37686472804e-12\n", "Numerical: V_sph(d=48) 1.33008791992e-12\n", "___________________________________________\n", "Analytical: Q(d=49) 0.356267543862\n", "Numerical: = 0.353968\n", "Analytical: V_sph(d=49) 4.90532214888e-13\n", "Numerical: V_sph(d=49) 4.70808560837e-13\n", "___________________________________________\n", "Analytical: Q(d=50) 0.352722857607\n", "Numerical: = 0.352916\n", "Analytical: V_sph(d=50) 1.73021924584e-13\n", "Numerical: V_sph(d=50) 1.66155874056e-13\n", "___________________________________________\n", "Analytical: Q(d=51) 0.349281905747\n", "Numerical: = 0.350532\n", "Analytical: V_sph(d=51) 6.04334275546e-14\n", "Numerical: V_sph(d=51) 5.82429508447e-14\n", "___________________________________________\n", "Analytical: Q(d=52) 0.34593972573\n", "Numerical: = 0.342352\n", "Analytical: V_sph(d=52) 2.09063233531e-14\n", "Numerical: V_sph(d=52) 1.99395907076e-14\n", "___________________________________________\n", "Analytical: Q(d=53) 0.34269168111\n", "Numerical: = 0.343668\n", "Analytical: V_sph(d=53) 7.16442309573e-15\n", "Numerical: V_sph(d=53) 6.85259925929e-15\n", "___________________________________________\n", "Analytical: Q(d=54) 0.339533434512\n", "Numerical: = 0.339988\n", "Analytical: V_sph(d=54) 2.43256117999e-15\n", "Numerical: V_sph(d=54) 2.32980151697e-15\n", "___________________________________________\n", "Analytical: Q(d=55) 0.336460923272\n", "Numerical: = 0.337352\n", "Analytical: V_sph(d=55) 8.18461780536e-16\n", "Numerical: V_sph(d=55) 7.85963201352e-16\n", "___________________________________________\n", "Analytical: Q(d=56) 0.333470337468\n", "Numerical: = 0.331608\n", "Analytical: V_sph(d=56) 2.7293272616e-16\n", "Numerical: V_sph(d=56) 2.60631685274e-16\n", "___________________________________________\n", "Analytical: Q(d=57) 0.330558100057\n", "Numerical: = 0.332512\n", "Analytical: V_sph(d=57) 9.02201234027e-17\n", "Numerical: V_sph(d=57) 8.66631629338e-17\n", "___________________________________________\n", "Analytical: Q(d=58) 0.327720848891\n", "Numerical: = 0.329124\n", "Analytical: V_sph(d=58) 2.95670154285e-17\n", "Numerical: V_sph(d=58) 2.85229268374e-17\n", "___________________________________________\n", "Analytical: Q(d=59) 0.324955420395\n", "Numerical: = 0.327268\n", "Analytical: V_sph(d=59) 9.6079619284e-18\n", "Numerical: V_sph(d=59) 9.33464122023e-18\n", "___________________________________________\n", "Analytical: Q(d=60) 0.322258834742\n", "Numerical: = 0.3227\n", "Analytical: V_sph(d=60) 3.0962506153e-18\n", "Numerical: V_sph(d=60) 3.01228872177e-18\n", "___________________________________________\n", "Analytical: Q(d=61) 0.319628282356\n", "Numerical: = 0.32114\n", "Analytical: V_sph(d=61) 9.8964926591e-19\n", "Numerical: V_sph(d=61) 9.67366400109e-19\n", "___________________________________________\n", "Analytical: Q(d=62) 0.317061111601\n", "Numerical: = 0.316496\n", "Analytical: V_sph(d=62) 3.13779296345e-19\n", "Numerical: V_sph(d=62) 3.06167596169e-19\n", "___________________________________________\n", "Analytical: Q(d=63) 0.314554817556\n", "Numerical: = 0.315032\n", "Analytical: V_sph(d=63) 9.87007893147e-20\n", "Numerical: V_sph(d=63) 9.64525901563e-20\n", "___________________________________________\n", "Analytical: Q(d=64) 0.312107031733\n", "Numerical: = 0.312644\n", "Analytical: V_sph(d=64) 3.08052103827e-20\n", "Numerical: V_sph(d=64) 3.01553235968e-20\n", "___________________________________________\n", "Analytical: Q(d=65) 0.309715512671\n", "Numerical: = 0.312776\n", "Analytical: V_sph(d=65) 9.5408515266e-21\n", "Numerical: V_sph(d=65) 9.43186149332e-21\n", "___________________________________________\n", "Analytical: Q(d=66) 0.307378137312\n", "Numerical: = 0.307188\n", "Analytical: V_sph(d=66) 2.93264917062e-21\n", "Numerical: V_sph(d=66) 2.89735466841e-21\n", "___________________________________________\n", "Analytical: Q(d=67) 0.305092893079\n", "Numerical: = 0.305388\n", "Analytical: V_sph(d=67) 8.9473041985e-22\n", "Numerical: V_sph(d=67) 8.84817347476e-22\n", "___________________________________________\n", "Analytical: Q(d=68) 0.302857870587\n", "Numerical: = 0.300768\n", "Analytical: V_sph(d=68) 2.70976149705e-22\n", "Numerical: V_sph(d=68) 2.66124743966e-22\n", "___________________________________________\n", "Analytical: Q(d=69) 0.300671256947\n", "Numerical: = 0.301144\n", "Analytical: V_sph(d=69) 8.14747395346e-23\n", "Numerical: V_sph(d=69) 8.01418698968e-23\n", "___________________________________________\n", "Analytical: Q(d=70) 0.298531329579\n", "Numerical: = 0.302312\n", "Analytical: V_sph(d=70) 2.43227623203e-23\n", "Numerical: V_sph(d=70) 2.42278489722e-23\n", "___________________________________________\n", "Analytical: Q(d=71) 0.296436450511\n", "Numerical: = 0.298316\n", "Analytical: V_sph(d=71) 7.21015332887e-24\n", "Numerical: V_sph(d=71) 7.227554994e-24\n", "___________________________________________\n", "Analytical: Q(d=72) 0.294385061112\n", "Numerical: = 0.296176\n", "Analytical: V_sph(d=72) 2.12256142835e-24\n", "Numerical: V_sph(d=72) 2.1406283279e-24\n", "___________________________________________\n", "Analytical: Q(d=73) 0.292375677217\n", "Numerical: = 0.291912\n", "Analytical: V_sph(d=73) 6.20585335048e-25\n", "Numerical: V_sph(d=73) 6.24875096455e-25\n", "___________________________________________\n", "Analytical: Q(d=74) 0.290406884611\n", "Numerical: = 0.292244\n", "Analytical: V_sph(d=74) 1.80222253786e-25\n", "Numerical: V_sph(d=74) 1.82615997688e-25\n", "___________________________________________\n", "Analytical: Q(d=75) 0.288477334854\n", "Numerical: = 0.2891\n", "Analytical: V_sph(d=75) 5.19900354536e-26\n", "Numerical: V_sph(d=75) 5.27942849317e-26\n", "___________________________________________\n", "Analytical: Q(d=76) 0.286585741392\n", "Numerical: = 0.287824\n", "Analytical: V_sph(d=76) 1.48996028555e-26\n", "Numerical: V_sph(d=76) 1.51954622662e-26\n", "___________________________________________\n", "Analytical: Q(d=77) 0.284730875959\n", "Numerical: = 0.287028\n", "Analytical: V_sph(d=77) 4.24237697249e-27\n", "Numerical: V_sph(d=77) 4.36152314334e-27\n", "___________________________________________\n", "Analytical: Q(d=78) 0.282911565221\n", "Numerical: = 0.282004\n", "Analytical: V_sph(d=78) 1.20021750954e-27\n", "Numerical: V_sph(d=78) 1.22996697251e-27\n", "___________________________________________\n", "Analytical: Q(d=79) 0.281126687656\n", "Numerical: = 0.28234\n", "Analytical: V_sph(d=79) 3.37413172925e-28\n", "Numerical: V_sph(d=79) 3.4726887502e-28\n", "___________________________________________\n", "Analytical: Q(d=80) 0.279375170655\n", "Numerical: = 0.283056\n", "Analytical: V_sph(d=80) 9.42648627674e-29\n", "Numerical: V_sph(d=80) 9.82965386876e-29\n", "___________________________________________\n", "Analytical: Q(d=81) 0.277655987809\n", "Numerical: = 0.276744\n", "Analytical: V_sph(d=81) 2.61732035873e-29\n", "Numerical: V_sph(d=81) 2.72029773026e-29\n", "___________________________________________\n", "Analytical: Q(d=82) 0.275968156379\n", "Numerical: = 0.278548\n", "Analytical: V_sph(d=82) 7.22297074053e-30\n", "Numerical: V_sph(d=82) 7.57733492167e-30\n", "___________________________________________\n", "Analytical: Q(d=83) 0.274310734943\n", "Numerical: = 0.276316\n", "Analytical: V_sph(d=83) 1.98133841231e-30\n", "Numerical: V_sph(d=83) 2.09373887622e-30\n", "___________________________________________\n", "Analytical: Q(d=84) 0.272682821184\n", "Numerical: = 0.272624\n", "Analytical: V_sph(d=84) 5.40276947989e-31\n", "Numerical: V_sph(d=84) 5.7080346739e-31\n", "___________________________________________\n", "Analytical: Q(d=85) 0.271083549826\n", "Numerical: = 0.27008\n", "Analytical: V_sph(d=85) 1.4646019295e-31\n", "Numerical: V_sph(d=85) 1.54162600473e-31\n", "___________________________________________\n", "Analytical: Q(d=86) 0.269512090705\n", "Numerical: = 0.269208\n", "Analytical: V_sph(d=86) 3.94727928071e-32\n", "Numerical: V_sph(d=86) 4.1501805348e-32\n", "___________________________________________\n", "Analytical: Q(d=87) 0.267967646955\n", "Numerical: = 0.266368\n", "Analytical: V_sph(d=87) 1.05774314073e-32\n", "Numerical: V_sph(d=87) 1.10547528869e-32\n", "___________________________________________\n", "Analytical: Q(d=88) 0.266449453311\n", "Numerical: = 0.269508\n", "Analytical: V_sph(d=88) 2.8183508159e-33\n", "Numerical: V_sph(d=88) 2.97934434106e-33\n", "___________________________________________\n", "Analytical: Q(d=89) 0.264956774517\n", "Numerical: = 0.266176\n", "Analytical: V_sph(d=89) 7.46741141638e-34\n", "Numerical: V_sph(d=89) 7.93029959325e-34\n", "___________________________________________\n", "Analytical: Q(d=90) 0.26348890383\n", "Numerical: = 0.264404\n", "Analytical: V_sph(d=90) 1.96758004855e-34\n", "Numerical: V_sph(d=90) 2.09680293365e-34\n", "___________________________________________\n", "Analytical: Q(d=91) 0.26204516161\n", "Numerical: = 0.26082\n", "Analytical: V_sph(d=91) 5.15594831803e-35\n", "Numerical: V_sph(d=91) 5.46888141155e-35\n", "___________________________________________\n", "Analytical: Q(d=92) 0.260624894005\n", "Numerical: = 0.263304\n", "Analytical: V_sph(d=92) 1.34376848388e-35\n", "Numerical: V_sph(d=92) 1.43997835119e-35\n", "___________________________________________\n", "Analytical: Q(d=93) 0.259227471701\n", "Numerical: = 0.257688\n", "Analytical: V_sph(d=93) 3.48341706628e-36\n", "Numerical: V_sph(d=93) 3.71065141361e-36\n", "___________________________________________\n", "Analytical: Q(d=94) 0.25785228875\n", "Numerical: = 0.25882\n", "Analytical: V_sph(d=94) 8.98207063212e-37\n", "Numerical: V_sph(d=94) 9.6039079887e-37\n", "___________________________________________\n", "Analytical: Q(d=95) 0.256498761472\n", "Numerical: = 0.256448\n", "Analytical: V_sph(d=95) 2.30388999259e-37\n", "Numerical: V_sph(d=95) 2.46290299589e-37\n", "___________________________________________\n", "Analytical: Q(d=96) 0.255166327409\n", "Numerical: = 0.257024\n", "Analytical: V_sph(d=96) 5.87875148164e-38\n", "Numerical: V_sph(d=96) 6.33025179615e-38\n", "___________________________________________\n", "Analytical: Q(d=97) 0.253854444344\n", "Numerical: = 0.255\n", "Analytical: V_sph(d=97) 1.49234719081e-38\n", "Numerical: V_sph(d=97) 1.61421420802e-38\n", "___________________________________________\n", "Analytical: Q(d=98) 0.252562589374\n", "Numerical: = 0.254532\n", "Analytical: V_sph(d=98) 3.76911070755e-39\n", "Numerical: V_sph(d=98) 4.10869170795e-39\n", "___________________________________________\n", "Analytical: Q(d=99) 0.251290258037\n", "Numerical: = 0.251712\n", "Analytical: V_sph(d=99) 9.47140802271e-40\n", "Numerical: V_sph(d=99) 1.03420700719e-39\n", "___________________________________________\n", "Analytical: Q(d=100) 0.25003696348\n", "Numerical: = 0.252564\n", "Analytical: V_sph(d=100) 2.36820210188e-40\n", "Numerical: V_sph(d=100) 2.61203458564e-40\n", "___________________________________________\n", "Analytical: Q(d=101) 0.24880223568\n", "Numerical: = 0.249248\n", "Analytical: V_sph(d=101) 5.89213977491e-41\n", "Numerical: V_sph(d=101) 6.51044396403e-41\n", "___________________________________________\n", "Analytical: Q(d=102) 0.247585620701\n", "Numerical: = 0.248128\n", "Analytical: V_sph(d=102) 1.45880908343e-41\n", "Numerical: V_sph(d=102) 1.61542343991e-41\n", "___________________________________________\n", "Analytical: Q(d=103) 0.246386679994\n", "Numerical: = 0.246268\n", "Analytical: V_sph(d=103) 3.59431126811e-42\n", "Numerical: V_sph(d=103) 3.97827099699e-42\n", "___________________________________________\n", "Analytical: Q(d=104) 0.245204989733\n", "Numerical: = 0.24584\n", "Analytical: V_sph(d=104) 8.81343057595e-43\n", "Numerical: V_sph(d=104) 9.78018141899e-43\n", "___________________________________________\n", "Analytical: Q(d=105) 0.244040140185\n", "Numerical: = 0.243864\n", "Analytical: V_sph(d=105) 2.15083083326e-43\n", "Numerical: V_sph(d=105) 2.38503416156e-43\n", "___________________________________________\n", "Analytical: Q(d=106) 0.242891735113\n", "Numerical: = 0.243004\n", "Analytical: V_sph(d=106) 5.22419033025e-44\n", "Numerical: V_sph(d=106) 5.79572841396e-44\n", "___________________________________________\n", "Analytical: Q(d=107) 0.241759391211\n", "Numerical: = 0.242156\n", "Analytical: V_sph(d=107) 1.26299707381e-44\n", "Numerical: V_sph(d=107) 1.40347040981e-44\n", "___________________________________________\n", "Analytical: Q(d=108) 0.240642737565\n", "Numerical: = 0.241412\n", "Analytical: V_sph(d=108) 3.03931073379e-45\n", "Numerical: V_sph(d=108) 3.38814598573e-45\n", "___________________________________________\n", "Analytical: Q(d=109) 0.239541415145\n", "Numerical: = 0.241616\n", "Analytical: V_sph(d=109) 7.28040794237e-46\n", "Numerical: V_sph(d=109) 8.18630280489e-46\n", "___________________________________________\n", "Analytical: Q(d=110) 0.238455076315\n", "Numerical: = 0.237576\n", "Analytical: V_sph(d=110) 1.7360502315e-46\n", "Numerical: V_sph(d=110) 1.94486907517e-46\n", "___________________________________________\n", "Analytical: Q(d=111) 0.237383384378\n", "Numerical: = 0.239772\n", "Analytical: V_sph(d=111) 4.12109479403e-47\n", "Numerical: V_sph(d=111) 4.66325147893e-47\n", "___________________________________________\n", "Analytical: Q(d=112) 0.236326013133\n", "Numerical: = 0.235712\n", "Analytical: V_sph(d=112) 9.73921902418e-48\n", "Numerical: V_sph(d=112) 1.0991843326e-47\n", "___________________________________________\n", "Analytical: Q(d=113) 0.235282646463\n", "Numerical: = 0.235548\n", "Analytical: V_sph(d=113) 2.29146922649e-48\n", "Numerical: V_sph(d=113) 2.58910671175e-48\n", "___________________________________________\n", "Analytical: Q(d=114) 0.234252977931\n", "Numerical: = 0.23726\n", "Analytical: V_sph(d=114) 5.36783490142e-49\n", "Numerical: V_sph(d=114) 6.14291458431e-49\n", "___________________________________________\n", "Analytical: Q(d=115) 0.233236710407\n", "Numerical: = 0.231556\n", "Analytical: V_sph(d=115) 1.25197615441e-49\n", "Numerical: V_sph(d=115) 1.42242872948e-49\n", "___________________________________________\n", "Analytical: Q(d=116) 0.232233555707\n", "Numerical: = 0.23398\n", "Analytical: V_sph(d=116) 2.90750874e-50\n", "Numerical: V_sph(d=116) 3.32819874125e-50\n", "___________________________________________\n", "Analytical: Q(d=117) 0.231243234249\n", "Numerical: = 0.231212\n", "Analytical: V_sph(d=117) 6.72341724645e-51\n", "Numerical: V_sph(d=117) 7.69519487361e-51\n", "___________________________________________\n", "Analytical: Q(d=118) 0.230265474726\n", "Numerical: = 0.23286\n", "Analytical: V_sph(d=118) 1.54817086404e-51\n", "Numerical: V_sph(d=118) 1.79190307827e-51\n", "___________________________________________\n", "Analytical: Q(d=119) 0.229300013793\n", "Numerical: = 0.231596\n", "Analytical: V_sph(d=119) 3.54995600478e-52\n", "Numerical: V_sph(d=119) 4.14997585315e-52\n", "___________________________________________\n", "Analytical: Q(d=120) 0.22834659577\n", "Numerical: = 0.229544\n", "Analytical: V_sph(d=120) 8.10620368827e-53\n", "Numerical: V_sph(d=120) 9.52602057235e-53\n", "___________________________________________\n", "Analytical: Q(d=121) 0.227404972357\n", "Numerical: = 0.227776\n", "Analytical: V_sph(d=121) 1.84339102565e-53\n", "Numerical: V_sph(d=121) 2.16979886189e-53\n", "___________________________________________\n", "Analytical: Q(d=122) 0.226474902362\n", "Numerical: = 0.225484\n", "Analytical: V_sph(d=122) 4.1748180255e-54\n", "Numerical: V_sph(d=122) 4.89254926574e-54\n", "___________________________________________\n", "Analytical: Q(d=123) 0.225556151444\n", "Numerical: = 0.226272\n", "Analytical: V_sph(d=123) 9.4165588681e-55\n", "Numerical: V_sph(d=123) 1.10704690746e-54\n", "___________________________________________\n", "Analytical: Q(d=124) 0.224648491859\n", "Numerical: = 0.226892\n", "Analytical: V_sph(d=124) 2.11541574822e-55\n", "Numerical: V_sph(d=124) 2.51180086927e-55\n", "___________________________________________\n", "Analytical: Q(d=125) 0.223751702232\n", "Numerical: = 0.22336\n", "Analytical: V_sph(d=125) 4.73327874594e-56\n", "Numerical: V_sph(d=125) 5.6103584216e-56\n", "___________________________________________\n", "Analytical: Q(d=126) 0.222865567321\n", "Numerical: = 0.222448\n", "Analytical: V_sph(d=126) 1.054884853e-56\n", "Numerical: V_sph(d=126) 1.24801301017e-56\n", "___________________________________________\n", "Analytical: Q(d=127) 0.221989877805\n", "Numerical: = 0.222652\n", "Analytical: V_sph(d=127) 2.34173759616e-57\n", "Numerical: V_sph(d=127) 2.7787259274e-57\n", "___________________________________________\n", "Analytical: Q(d=128) 0.221124430076\n", "Numerical: = 0.22286\n", "Analytical: V_sph(d=128) 5.1781539134e-58\n", "Numerical: V_sph(d=128) 6.1926686018e-58\n", "___________________________________________\n", "Analytical: Q(d=129) 0.220269026039\n", "Numerical: = 0.22174\n", "Analytical: V_sph(d=129) 1.14058691918e-58\n", "Numerical: V_sph(d=129) 1.37316233576e-58\n", "___________________________________________\n", "Analytical: Q(d=130) 0.219423472922\n", "Numerical: = 0.219764\n", "Analytical: V_sph(d=130) 2.50271542977e-59\n", "Numerical: V_sph(d=130) 3.01771647557e-59\n", "___________________________________________\n", "Analytical: Q(d=131) 0.218587583092\n", "Numerical: = 0.219572\n", "Analytical: V_sph(d=131) 5.4706251696e-60\n", "Numerical: V_sph(d=131) 6.62606041973e-60\n", "___________________________________________\n", "Analytical: Q(d=132) 0.217761173884\n", "Numerical: = 0.217624\n", "Analytical: V_sph(d=132) 1.19128975882e-60\n", "Numerical: V_sph(d=132) 1.44198977278e-60\n", "___________________________________________\n", "Analytical: Q(d=133) 0.21694406743\n", "Numerical: = 0.217112\n", "Analytical: V_sph(d=133) 2.58443245765e-61\n", "Numerical: V_sph(d=133) 3.13073283549e-61\n", "___________________________________________\n", "Analytical: Q(d=134) 0.216136090497\n", "Numerical: = 0.217476\n", "Analytical: V_sph(d=134) 5.58589127551e-62\n", "Numerical: V_sph(d=134) 6.8085925413e-62\n", "___________________________________________\n", "Analytical: Q(d=135) 0.215337074338\n", "Numerical: = 0.218112\n", "Analytical: V_sph(d=135) 1.20284948484e-62\n", "Numerical: V_sph(d=135) 1.48503573637e-62\n", "___________________________________________\n", "Analytical: Q(d=136) 0.214546854538\n", "Numerical: = 0.214568\n", "Analytical: V_sph(d=136) 2.58067573454e-63\n", "Numerical: V_sph(d=136) 3.18641147881e-63\n", "___________________________________________\n", "Analytical: Q(d=137) 0.213765270876\n", "Numerical: = 0.21528\n", "Analytical: V_sph(d=137) 5.51658847436e-64\n", "Numerical: V_sph(d=137) 6.85970663158e-64\n", "___________________________________________\n", "Analytical: Q(d=138) 0.212992167186\n", "Numerical: = 0.2138\n", "Analytical: V_sph(d=138) 1.17499013463e-64\n", "Numerical: V_sph(d=138) 1.46660527783e-64\n", "___________________________________________\n", "Analytical: Q(d=139) 0.212227391229\n", "Numerical: = 0.211932\n", "Analytical: V_sph(d=139) 2.49365090992e-65\n", "Numerical: V_sph(d=139) 3.10820589742e-65\n", "___________________________________________\n", "Analytical: Q(d=140) 0.211470794563\n", "Numerical: = 0.21104\n", "Analytical: V_sph(d=140) 5.27334339284e-66\n", "Numerical: V_sph(d=140) 6.55955772591e-66\n", "___________________________________________\n", "Analytical: Q(d=141) 0.210722232426\n", "Numerical: = 0.213312\n", "Analytical: V_sph(d=141) 1.11121069209e-66\n", "Numerical: V_sph(d=141) 1.39923237763e-66\n", "___________________________________________\n", "Analytical: Q(d=142) 0.209981563616\n", "Numerical: = 0.2126\n", "Analytical: V_sph(d=142) 2.33333758631e-67\n", "Numerical: V_sph(d=142) 2.97476803484e-67\n", "___________________________________________\n", "Analytical: Q(d=143) 0.209248650381\n", "Numerical: = 0.209844\n", "Analytical: V_sph(d=143) 4.88247740819e-68\n", "Numerical: V_sph(d=143) 6.24237223503e-68\n", "___________________________________________\n", "Analytical: Q(d=144) 0.208523358313\n", "Numerical: = 0.208628\n", "Analytical: V_sph(d=144) 1.01811058604e-68\n", "Numerical: V_sph(d=144) 1.30233363465e-68\n", "___________________________________________\n", "Analytical: Q(d=145) 0.20780555624\n", "Numerical: = 0.209268\n", "Analytical: V_sph(d=145) 2.11569036647e-69\n", "Numerical: V_sph(d=145) 2.72536755056e-69\n", "___________________________________________\n", "Analytical: Q(d=146) 0.207095116133\n", "Numerical: = 0.2099\n", "Analytical: V_sph(d=146) 4.38149142144e-70\n", "Numerical: V_sph(d=146) 5.72054648862e-70\n", "___________________________________________\n", "Analytical: Q(d=147) 0.206391913001\n", "Numerical: = 0.207224\n", "Analytical: V_sph(d=147) 9.04304396267e-71\n", "Numerical: V_sph(d=147) 1.18543452556e-70\n", "___________________________________________\n", "Analytical: Q(d=148) 0.205695824807\n", "Numerical: = 0.207192\n", "Analytical: V_sph(d=148) 1.86011638667e-71\n", "Numerical: V_sph(d=148) 2.45612550219e-71\n", "___________________________________________\n", "Analytical: Q(d=149) 0.205006732377\n", "Numerical: = 0.205124\n", "Analytical: V_sph(d=149) 3.81336382271e-72\n", "Numerical: V_sph(d=149) 5.03810287512e-72\n", "___________________________________________\n", "Analytical: Q(d=150) 0.204324519309\n", "Numerical: = 0.205616\n", "Analytical: V_sph(d=150) 7.79163730025e-73\n", "Numerical: V_sph(d=150) 1.03591456077e-72\n", "___________________________________________\n", "Analytical: Q(d=151) 0.203649071897\n", "Numerical: = 0.203084\n", "Analytical: V_sph(d=151) 1.58675970475e-73\n", "Numerical: V_sph(d=151) 2.1037767266e-73\n", "___________________________________________\n", "Analytical: Q(d=152) 0.20298027905\n", "Numerical: = 0.203152\n", "Analytical: V_sph(d=152) 3.22080927656e-74\n", "Numerical: V_sph(d=152) 4.27386449561e-74\n", "___________________________________________\n", "Analytical: Q(d=153) 0.202318032212\n", "Numerical: = 0.203896\n", "Analytical: V_sph(d=153) 6.51627794963e-75\n", "Numerical: V_sph(d=153) 8.71423875198e-75\n", "___________________________________________\n", "Analytical: Q(d=154) 0.20166222529\n", "Numerical: = 0.201592\n", "Analytical: V_sph(d=154) 1.31408711193e-75\n", "Numerical: V_sph(d=154) 1.75672081849e-75\n", "___________________________________________\n", "Analytical: Q(d=155) 0.201012754584\n", "Numerical: = 0.20252\n", "Analytical: V_sph(d=155) 2.64148270133e-76\n", "Numerical: V_sph(d=155) 3.5577110016e-76\n", "___________________________________________\n", "Analytical: Q(d=156) 0.200369518718\n", "Numerical: = 0.200548\n", "Analytical: V_sph(d=156) 5.29272617567e-77\n", "Numerical: V_sph(d=156) 7.13491825949e-77\n", "___________________________________________\n", "Analytical: Q(d=157) 0.199732418568\n", "Numerical: = 0.200456\n", "Analytical: V_sph(d=157) 1.05712899988e-77\n", "Numerical: V_sph(d=157) 1.43023717463e-77\n", "___________________________________________\n", "Analytical: Q(d=158) 0.199101357207\n", "Numerical: = 0.199004\n", "Analytical: V_sph(d=158) 2.10475818619e-78\n", "Numerical: V_sph(d=158) 2.84622918699e-78\n", "___________________________________________\n", "Analytical: Q(d=159) 0.198476239835\n", "Numerical: = 0.200164\n", "Analytical: V_sph(d=159) 4.17744490557e-79\n", "Numerical: V_sph(d=159) 5.69712618985e-79\n", "___________________________________________\n", "Analytical: Q(d=160) 0.197856973724\n", "Numerical: = 0.196636\n", "Analytical: V_sph(d=160) 8.26536606916e-80\n", "Numerical: V_sph(d=160) 1.12026010547e-79\n", "___________________________________________\n", "Analytical: Q(d=161) 0.197243468159\n", "Numerical: = 0.197336\n", "Analytical: V_sph(d=161) 1.63028946908e-80\n", "Numerical: V_sph(d=161) 2.21067648172e-80\n", "___________________________________________\n", "Analytical: Q(d=162) 0.19663563438\n", "Numerical: = 0.197848\n", "Analytical: V_sph(d=162) 3.20573003977e-81\n", "Numerical: V_sph(d=162) 4.37377920556e-81\n", "___________________________________________\n", "Analytical: Q(d=163) 0.196033385532\n", "Numerical: = 0.197096\n", "Analytical: V_sph(d=163) 6.28430112798e-82\n", "Numerical: V_sph(d=163) 8.62054386299e-82\n", "___________________________________________\n", "Analytical: Q(d=164) 0.19543663661\n", "Numerical: = 0.194248\n", "Analytical: V_sph(d=164) 1.22818267589e-82\n", "Numerical: V_sph(d=164) 1.6745234043e-82\n", "___________________________________________\n", "Analytical: Q(d=165) 0.194845304408\n", "Numerical: = 0.195908\n", "Analytical: V_sph(d=165) 2.39305627353e-83\n", "Numerical: V_sph(d=165) 3.28052531089e-83\n", "___________________________________________\n", "Analytical: Q(d=166) 0.194259307473\n", "Numerical: = 0.1949\n", "Analytical: V_sph(d=166) 4.6487345444e-84\n", "Numerical: V_sph(d=166) 6.39374383093e-84\n", "___________________________________________\n", "Analytical: Q(d=167) 0.193678566058\n", "Numerical: = 0.195388\n", "Analytical: V_sph(d=167) 9.00360240544e-85\n", "Numerical: V_sph(d=167) 1.24926081964e-84\n", "___________________________________________\n", "Analytical: Q(d=168) 0.193103002072\n", "Numerical: = 0.19258\n", "Analytical: V_sph(d=168) 1.73862265395e-85\n", "Numerical: V_sph(d=168) 2.40582648646e-85\n", "___________________________________________\n", "Analytical: Q(d=169) 0.19253253904\n", "Numerical: = 0.192488\n", "Analytical: V_sph(d=169) 3.34741433997e-86\n", "Numerical: V_sph(d=169) 4.63092728726e-86\n", "___________________________________________\n", "Analytical: Q(d=170) 0.19196710206\n", "Numerical: = 0.1929\n", "Analytical: V_sph(d=170) 6.42593430237e-87\n", "Numerical: V_sph(d=170) 8.93305873712e-87\n", "___________________________________________\n", "Analytical: Q(d=171) 0.191406617759\n", "Numerical: = 0.191796\n", "Analytical: V_sph(d=171) 1.22996635076e-87\n", "Numerical: V_sph(d=171) 1.71332493354e-87\n", "___________________________________________\n", "Analytical: Q(d=172) 0.190851014257\n", "Numerical: = 0.193368\n", "Analytical: V_sph(d=172) 2.34740325544e-88\n", "Numerical: V_sph(d=172) 3.3130221575e-88\n", "___________________________________________\n", "Analytical: Q(d=173) 0.190300221124\n", "Numerical: = 0.191024\n", "Analytical: V_sph(d=173) 4.46711358578e-89\n", "Numerical: V_sph(d=173) 6.32866744613e-89\n", "___________________________________________\n", "Analytical: Q(d=174) 0.189754169347\n", "Numerical: = 0.191204\n", "Analytical: V_sph(d=174) 8.4765342785e-90\n", "Numerical: V_sph(d=174) 1.21006653037e-89\n", "___________________________________________\n", "Analytical: Q(d=175) 0.189212791289\n", "Numerical: = 0.191148\n", "Analytical: V_sph(d=175) 1.6038687113e-90\n", "Numerical: V_sph(d=175) 2.31301797147e-90\n", "___________________________________________\n", "Analytical: Q(d=176) 0.188676020658\n", "Numerical: = 0.190292\n", "Analytical: V_sph(d=176) 3.02611566105e-91\n", "Numerical: V_sph(d=176) 4.40148815827e-91\n", "___________________________________________\n", "Analytical: Q(d=177) 0.188143792469\n", "Numerical: = 0.1906\n", "Analytical: V_sph(d=177) 5.69344876919e-92\n", "Numerical: V_sph(d=177) 8.38923642967e-92\n", "___________________________________________\n", "Analytical: Q(d=178) 0.187616043014\n", "Numerical: = 0.189652\n", "Analytical: V_sph(d=178) 1.06818232918e-92\n", "Numerical: V_sph(d=178) 1.59103546736e-92\n", "___________________________________________\n", "Analytical: Q(d=179) 0.187092709829\n", "Numerical: = 0.187328\n", "Analytical: V_sph(d=179) 1.99849126557e-93\n", "Numerical: V_sph(d=179) 2.9804549203e-93\n", "___________________________________________\n", "Analytical: Q(d=180) 0.186573731664\n", "Numerical: = 0.189\n", "Analytical: V_sph(d=180) 3.72865973115e-94\n", "Numerical: V_sph(d=180) 5.63305979936e-94\n", "___________________________________________\n", "Analytical: Q(d=181) 0.186059048449\n", "Numerical: = 0.185216\n", "Analytical: V_sph(d=181) 6.93750881567e-95\n", "Numerical: V_sph(d=181) 1.0433328038e-94\n", "___________________________________________\n", "Analytical: Q(d=182) 0.18554860127\n", "Numerical: = 0.187528\n", "Analytical: V_sph(d=182) 1.28724505705e-95\n", "Numerical: V_sph(d=182) 1.95654114031e-95\n", "___________________________________________\n", "Analytical: Q(d=183) 0.185042332337\n", "Numerical: = 0.185428\n", "Analytical: V_sph(d=183) 2.38194827645e-96\n", "Numerical: V_sph(d=183) 3.62797510565e-96\n", "___________________________________________\n", "Analytical: Q(d=184) 0.184540184959\n", "Numerical: = 0.184736\n", "Analytical: V_sph(d=184) 4.39565175498e-97\n", "Numerical: V_sph(d=184) 6.70217609117e-97\n", "___________________________________________\n", "Analytical: Q(d=185) 0.184042103514\n", "Numerical: = 0.185384\n", "Analytical: V_sph(d=185) 8.08984995301e-98\n", "Numerical: V_sph(d=185) 1.24247621249e-97\n", "___________________________________________\n", "Analytical: Q(d=186) 0.183548033427\n", "Numerical: = 0.184748\n", "Analytical: V_sph(d=186) 1.48487604959e-98\n", "Numerical: V_sph(d=186) 2.29544995304e-98\n", "___________________________________________\n", "Analytical: Q(d=187) 0.183057921142\n", "Numerical: = 0.183552\n", "Analytical: V_sph(d=187) 2.71818322792e-99\n", "Numerical: V_sph(d=187) 4.21334429781e-99\n", "___________________________________________\n", "Analytical: Q(d=188) 0.1825717141\n", "Numerical: = 0.183744\n", "Analytical: V_sph(d=188) 4.96263371158e-100\n", "Numerical: V_sph(d=188) 7.74176734657e-100\n", "___________________________________________\n", "Analytical: Q(d=189) 0.182089360713\n", "Numerical: = 0.18248\n", "Analytical: V_sph(d=189) 9.03642799993e-101\n", "Numerical: V_sph(d=189) 1.4127177054e-100\n", "___________________________________________\n", "Analytical: Q(d=190) 0.181610810341\n", "Numerical: = 0.18344\n", "Analytical: V_sph(d=190) 1.64111301166e-101\n", "Numerical: V_sph(d=190) 2.59148935879e-101\n", "___________________________________________\n", "Analytical: Q(d=191) 0.181136013274\n", "Numerical: = 0.18094\n", "Analytical: V_sph(d=191) 2.97264668265e-102\n", "Numerical: V_sph(d=191) 4.68904084579e-102\n", "___________________________________________\n", "Analytical: Q(d=192) 0.180664920704\n", "Numerical: = 0.182364\n", "Analytical: V_sph(d=192) 5.37052977202e-103\n", "Numerical: V_sph(d=192) 8.55112244802e-103\n", "___________________________________________\n", "Analytical: Q(d=193) 0.180197484708\n", "Numerical: = 0.1805\n", "Analytical: V_sph(d=193) 9.67755956468e-104\n", "Numerical: V_sph(d=193) 1.54347760187e-103\n", "___________________________________________\n", "Analytical: Q(d=194) 0.179733658226\n", "Numerical: = 0.180868\n", "Analytical: V_sph(d=194) 1.73938318326e-104\n", "Numerical: V_sph(d=194) 2.79165706895e-104\n", "___________________________________________\n", "Analytical: Q(d=195) 0.179273395043\n", "Numerical: = 0.18082\n", "Analytical: V_sph(d=195) 3.11825128544e-105\n", "Numerical: V_sph(d=195) 5.04787431207e-105\n", "___________________________________________\n", "Analytical: Q(d=196) 0.178816649766\n", "Numerical: = 0.177068\n", "Analytical: V_sph(d=196) 5.57595247992e-106\n", "Numerical: V_sph(d=196) 8.93817008689e-106\n", "___________________________________________\n", "Analytical: Q(d=197) 0.178363377809\n", "Numerical: = 0.17626\n", "Analytical: V_sph(d=197) 9.94545718822e-107\n", "Numerical: V_sph(d=197) 1.57544185952e-106\n", "___________________________________________\n", "Analytical: Q(d=198) 0.177913535373\n", "Numerical: = 0.18052\n", "Analytical: V_sph(d=198) 1.76943144926e-107\n", "Numerical: V_sph(d=198) 2.8439876448e-107\n", "___________________________________________\n", "Analytical: Q(d=199) 0.177467079428\n", "Numerical: = 0.176668\n", "Analytical: V_sph(d=199) 3.14015831549e-108\n", "Numerical: V_sph(d=199) 5.02441609231e-108\n", "___________________________________________\n", "Analytical: Q(d=200) 0.177023967696\n", "Numerical: = 0.176428\n", "Analytical: V_sph(d=200) 5.55883284203e-109\n", "Numerical: V_sph(d=200) 8.86447682334e-109\n", "___________________________________________\n", "After 500 runs each consisting of 1000 trials , the numerical result for the volume of the unit 200-sphere (with analytical value 5.55883284203e-109 ) is found to be 8.86447682334e-109 .\n" ] } ], "source": [ "import random, math\n", "\n", "#Calculate the volume of the d_max dimensional sphere through the formula V(n)=Q(n)...Q(2)V(2)\n", "def V_sph_markov(dim, n_runs, n_trials):\n", " V = []\n", " V_d = V_sph(1) #initialise the volume of \"d_max\" dimensional sphere\n", " print 'The analytical value for the volume of the unit %i-sphere is =' % dim, V_sph(dim), '.'\n", " print '___________________________________________'\n", " for d in range(1, dim + 1):\n", " Q_avg_d, data = markov_sphere(d, n_runs, n_trials)\n", " V_d *= Q_avg_d\n", " V.append(V_d) #save the volume for each d value along the way until d_max\n", " print 'Analytical: V_sph(d=%i)' % d, V_sph(d)\n", " print 'Numerical: V_sph(d=%i)' % d, V_d\n", " print '___________________________________________'\n", " print 'After %i runs' % n_runs, 'each consisting of %i trials' % n_trials, ', the numerical result for the volume of the unit %i-sphere (with analytical value' % dim, V_sph(dim), ') is found to be', V_d, '.'\n", " return V\n", "\n", "d_max = 200 #maximum dimension (dimension of the sphere in question)\n", "n_trials = 1000 #each dimension iteration takes \"n_trials\" number of iterations\n", "n_runs = 500\n", "V = V_sph_markov(d_max, n_runs, n_trials)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As the following plot indicates, the Monte Carlo algorithm is able to calculate the volume of hyperspheres with exceptional accuracy up to very high dimensions." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pylab\n", "\n", "volume, dimension = [], []\n", "\n", "for d in range(0,200):\n", " dimension.append(d)\n", " volume.append(V_sph(d))\n", "\n", "pylab.semilogy(dimension, volume, 'b', label='Analytical', linewidth=4.0)\n", "pylab.semilogy(dimension, V, 'r--', label='Monte Carlo', linewidth=3.0)\n", "pylab.title('Volume of the unit hypersphere in $d$ dimensions')\n", "pylab.xlabel('$d$', fontsize = 15)\n", "pylab.ylabel('$V_{sph}(d)$', fontsize = 15)\n", "pylab.ylim(0,10)\n", "pylab.legend()\n", "pylab.grid()\n", "pylab.savefig('hypersphere_volumes.png')\n", "pylab.show()" ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "910059.1104\n", "160100.804858\n", "1.6837129243\n", "0.0445860220085\n", "0.0271548828196\n", "[31358.716731116598, 13488.652683320564, 0.30053926397132036, 0.0030817988258178227, 0.0006134494292910471]\n" ] } ], "source": [ "import sys, os\n", "\n", "class HiddenPrints:\n", " def __enter__(self):\n", " self._original_stdout = sys.stdout\n", " sys.stdout = open(os.devnull, 'w')\n", "\n", " def __exit__(self, exc_type, exc_val, exc_tb):\n", " sys.stdout.close()\n", " sys.stdout = self._original_stdout\n", "\n", "#Error calculation:\n", "d = 20 #dimension of the sphere\n", "n_runs = 10\n", "Error = []\n", "trials = [10, 100, 1000, 10000, 100000]\n", "\n", "for trial in trials:\n", " V_avg, V_avg_square = 0.0, 0.0\n", " for run in range(n_runs):\n", " with HiddenPrints():\n", " v = V_sph_markov(d, 1, trial)\n", " V_avg += v[d-1] / n_runs\n", " V_avg_square += v[d-1] ** 2.0 / n_runs\n", " print V_avg\n", " Error.append(math.sqrt(V_avg_square - V_avg ** 2) / pow(n_runs, 0.5)) \n", "print Error\n", "Dif = [] * len(trials)\n", "for i in range(len(trials)):\n", " Dif.append(abs(Error[i] - V_sph(d)))\n", "print Dif" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }