{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Wave divisor function: $\\sigma_{0}(x)$\n", "\n", "The integer divisor function can be described as a summation of repeating waves. Each wave filters out numbers. Divisor wave $\\mathbb{X}=7$ wil filter: 7, 14, 21, 28, 35 etc. The divisor function can bescribed as:\n", "\n", "$$ \\sigma_{0}(x)=\\sum_{\\mathbb{X}=2}^{\\infty}\\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right)$$\n", "\n", "$N$ should be a positive even integer, only then positive pulses occur. If $N\\rightarrow\\infty$ discrete pulses occur on the intervals determined by: $\\mathbb{X}$. This definition of the divisor function does not take 1 in account, for the conventional definition 1 should be added to the wave divisor function.\n", "\n", "With help of Euler’s formula and the binomial theorem the function can be rewritten as:\n", "\n", "$$ \\sigma_{0}(x)=\\sum_{\\mathbb{X}=2}^{\\infty}e^{i\\left( \\frac{N\\pi}{\\mathbb{X}}x \\right)} 2^{(-N)} \\sum_{k=0}^{N} \\binom{N}{k} e^{-i\\left( \\frac{\\pi}{\\mathbb{X}}kx \\right)} $$\n", "\n", "The solution for the divisor function occurs when the angular component is 0 only then pulses of magnitude 1 occur. For the divisor function we can set: $e^{i\\left( \\frac{N\\pi}{\\mathbb{X}}x \\right)}=1$. So the \"Wave Divisor Function\" becomes:\n", "\n", "$$ \\sigma_{0}(x)=\\sum_{\\mathbb{X}=2}^{\\infty} 2^{(-N)} \\sum_{k=0}^{N} \\binom{N}{k} e^{-i\\left( \\frac{\\pi}{\\mathbb{X}}kx \\right)} $$\n", "\n", "The n choose k notation can be writen in a trigiometric formulation.\n", "\n", "$$ \\Re(\\sigma_{0})=\\sum_{\\mathbb{X}=2}^{\\infty}\\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right) \\cos \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right) $$\n", "\n", "$$ \\Im(\\sigma_{0})=-i \\sum_{\\mathbb{X}=2}^{\\infty}\\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right) \\sin \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right) $$\n", "\n", "This is only valid with the following criteria:\n", "\n", "$$ \\cos^{2} \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right) + \\sin^{2} \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right)=1$$\n", "\n", "Thus the solution of the divisor function is only valid for integer values of $x$. The wave divisor function consists of repeating wave packages with different different frequencies. The wave divisor function will have an error. It appears that the error is dependant upon the pulse width. N determines the pulse width of the individual wave packages.\n", "\n", "More information: [pdf Google Drive][1]\n", "\n", "[1]: https://drive.google.com/open?id=1Etu4vOfjsnbaysk_UR6HIA9R7EDybH-n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# N the pulsewidth definition.\n", "\n", "The wave divisor function consists of repeating wave packages. The width of a wave package can be described as the pulse height $L$ at $\\Delta x$:\n", "\n", "$$ \\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}} \\Delta x \\right)=L$$\n", "\n", "So N can be calculated, we can determine $N(\\mathbb{X})$ for every divisor wave. Note that N should be an even number else negative pulses can occur. Note that the rounding to it's closest even number has a randomizing effect.\n", "\n", "$$ N(\\mathbb{X})= \\frac{\\log (L)}{\\log \\left( \\cos \\left( \\frac {\\pi}{\\mathbb{X} } \\Delta x \\right)\\right)} \\quad N \\in 2 \\mathbb{N} $$\n", "\n", "For $(\\mathbb{X} \\rightarrow \\infty)$ N can be approximated as Taylor series (see link):\n", "\n", "$$ N(\\mathbb{X}) = \\frac{\\log(L)}{\\log \\left( \\cos \\left( \\frac {\\pi}{\\mathbb{X} } \\Delta x \\right) \\right)} \\approx - \\frac{2 \\mathbb{X}^2 \\log(L)}{\\pi^2 \\Delta x^2} + \\frac{\\log(L)}{3}+ \\mathcal{O} \\left( \\frac{1}{\\mathbb{X}^2} \\right)$$\n", "\n", "More information: [pdf Google Drive][1], [Wolfram Alpha][2].\n", "\n", "[1]: https://drive.google.com/open?id=1Etu4vOfjsnbaysk_UR6HIA9R7EDybH-n\n", "[2]: https://www.wolframalpha.com/input/?i=ln%28L%29%2F%28ln%28cos%28pi*delta%2FX%29%29%29+as+X-%3Einfinity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Simulation of Wave Divisor Function.\n", "\n", "Below is a simulation of the wave divisor function. The real solution of the divisor count is displayed for the number $x=1 \\space to \\space x=100$. The number of divisor waves can be selected and the pulse width can be set $L, \\space \\Delta x$. With small pulse width like: $\\Delta x=0.25, \\space L=0.5$ individual wave packages are identified for every number (zoom in)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import ipywidgets as widgets\n", "import matplotlib.pyplot as plt1\n", "import matplotlib.pyplot as plt2\n", "import matplotlib.pyplot as plt3\n", "import matplotlib.pyplot as plt4\n", "import matplotlib.pyplot as plt5\n", "import matplotlib.pyplot as plt6\n", "\n", "import numpy as np\n", "\n", "from operator import add\n", "from operator import sub\n", "from operator import mul\n", "from operator import truediv\n", "\n", "from IPython.display import display" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib widget" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "26ba190a05ad497eb6388f5a2ae860b9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Options:\n", "L is pulse height at dx\n", "Select number of divisors waves (use: or to select multiples.)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a9511dc7d1334d04a551472c0f90fc51", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=0.25, description='$\\\\Delta x$:', max=0.99, min=0.15, step=0.01), Floa…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x1 = np.linspace(0, 100, 40001)\n", "fig, ax1 = plt1.subplots(1, figsize=(9, 4))\n", "plt1.suptitle('$\\sigma_{0}$ Wave Divisor Function')\n", "\n", "def update_plot(dx, L, wave):\n", " \n", " ax1.clear()\n", " \n", " #Set zero list\n", " y=[0]*40001\n", " \n", " #Calc Re divisor solution for all selected divisor waves\n", " for w in wave:\n", " N=-2*(w**2)*np.log(L)/((np.pi**2)*(dx**2))\n", " N=2*round(0.5*N,0)\n", " yw = ((np.cos(x1*np.pi/w))**N)*(np.cos(np.pi*N*x1/w))\n", " y=list(map(add, y, yw) )\n", " \n", " #Determine scaling for y axis (x=0 is excluded)\n", " countMax=max(y[int(40001*(2)/100):40001])\n", " countMin=min(y[int(40001*(2)/100):40001])\n", " \n", " units = '$\\Delta x$ = {}, $L$ = {}'\n", " \n", " #update graph\n", " ax1.plot(x1, y, label=units.format(dx, L))\n", " ax1.axis([0, 100, countMin-5,countMax+5])\n", " ax1.legend(loc=1)\n", " ax1.set_xlabel('$x$')\n", " ax1.set_ylabel('$\\sigma_{0}$')\n", " ax1.grid(b=True, which='major', color='#666666', linestyle='-')\n", " plt1.show()\n", "\n", "print(\"Options:\")\n", "print(\"L is pulse height at dx\")\n", "print(\"Select number of divisors waves (use: or to select multiples.)\")\n", "\n", "dx = widgets.FloatSlider(min=0.15, max=0.99, value=0.25, step=0.01, description='$\\Delta x$:')\n", "L = widgets.FloatSlider(min=0.15, max=0.99, value=0.5, step=0.01, description='$L$:')\n", "wave = widgets.SelectMultiple(options=list(range(2,101)), value=list(range(2,101)), description=\"$\\mathbb{X}$:\") \n", "\n", "widgets.interactive(update_plot, dx=dx, L=L, wave=wave)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Oribitals of numbers.\n", "\n", "\n", "Every number can be seen as a path in the $\\Re, \\space \\Im$ plane. Prime numbers will only have one frequency. Numbers with more divisors will have an unique resonation. When the pulse width is small enough like: $\\Delta x=0.25, \\space L=0.5$ the effect of neigbour pulses is neglactable and the resonance curve can be displayed. The Orbital is displayed between: $(x-0.5)\\le x \\le (x+0.5)$. The black dot indicates the divisor count." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "20d627ee7d4b402687864194623c225d", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Options:\n", "L is pulse height at dx.\n", "Select x to display orbital.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "65fd52fe0076481c9e30f98486b7fa21", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='$\\\\Delta x$:', index=2, options=(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, …" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax2= plt2.subplots(1, figsize=(5, 5))\n", "#plt2.suptitle('$\\sigma_{0}$ Orbitals Of Divisors')\n", "\n", "\n", "def update_plot(dx2, L2, sx):\n", " \n", " #Set x range (x-0.5), the error is then to small to be calculated." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "bcb3ab976482416bb0047ff858e269f0", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Options:\n", "L is pulse height at dx\n", "Select number of divisors waves.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0345dbc838a04d5e833d5e476c48844b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='$\\\\Delta x$:', index=3, options=(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, …" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"\n", "The error in the divisor count is determined.\n", "The discrete divisor count is calculated (modules). And the wave divisor count is calculated.\n", "Numbers 0 and 1 are not included in the divisor count.\n", "\"\"\"\n", "\n", "from ipywidgets import IntProgress\n", "\n", "fig, ax4 = plt4.subplots(1, figsize=(9, 4))\n", "plt4.suptitle('$\\epsilon(x)$: error in $\\sigma_{0}$ Wave Divisor Function')\n", "\n", "def update_plot(dx4, L4, max4,Typ):\n", "\n", " #Instantiate progress bar\n", " f = IntProgress(min=0, max=3*max4, description=\"\")\n", " display(f)\n", "\n", " #Clear Graph\n", " ax4.clear()\n", " \n", " #Discrete divisor count variables\n", " #xD = np.linspace(2,max4,max4-1)\n", " yD=[]\n", " yDD=[0]*(max4+1)\n", "\n", " #Wave divisor function variables\n", " x4 = np.linspace(2,max4,max4-1)\n", " y4=[0]*(max4-1)\n", " \n", " #loop trought all values between 2 and maximum \n", " for w4 in range(2,max4): \n", "\n", " #Determine Discrete Divisor Count\n", " for i in range(2,max4+1):\n", " if (i%w4)==0:\n", " yD.append(1)\n", " else:\n", " yD.append(0)\n", " \n", " #Update progressbar.\n", " if w4%50==0:\n", " f.value += 50*(3*0.9)\n", " \n", " yDD=list(map(add, yDD, yD))\n", " yD=[]\n", " \n", " #Determine Wave Divisor Count.\n", " #N4=-2*(w4**2)*np.log(L4)/((np.pi**2)*(dx4**2))\n", " N4=(np.log(L4))/(np.log(np.cos(np.pi*dx4/w4)))\n", " N4=2*round(0.5*N4,0)\n", " \n", " yw4 = ((np.cos(x4*np.pi/(w4)))**N4)*(np.cos(np.pi*N4*x4/(w4)))\n", " #yw4 = ((np.cos(x4*np.pi/(w4)))**N4)*(np.cos(-2*np.log(L4)*x4*w4/(np.pi*dx4**2)))\n", " \n", " y4=list(map(add, y4, yw4))\n", " \n", " #Determine the error [Wave]-[Discrete]\n", " err=[] \n", " err=list(map(sub, y4, yDD))\n", " f.value += max4/10\n", " \n", " #Growth Plot Sqrt(ln(x))\n", " if Typ==\"On\":\n", " xG = np.linspace(3,max4,max4-1)\n", " em=np.exp(np.log(L4)/(dx4**2))\n", " yGpos=np.sqrt(np.log(xG)-0.84558)*em*3\n", " yGneg=-np.sqrt(np.log(xG)-0.84558)*em*3\n", " \n", " #Determine maximum error.\n", " merr=max([max(err),abs(min(err))])\n", "\n", " #Count how many outsite CI\n", " \n", " #set counter 0\n", " ct=0\n", " #error max\n", " em=np.exp(np.log(L4)/(dx4**2))\n", "\n", " \n", " for i in range(1, max4-1):\n", " \n", " #ub upperbound and lowerbound\n", " UB=np.sqrt(np.log(i+3)-0.84558)*em*3\n", " LB=-np.sqrt(np.log(i+3)-0.84558)*em*3 \n", " \n", " if err[i]>UB or err[i] and/or .\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "57203ee2b37740668f077fb4b7d347d9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='$n$:', index=2, options=(100, 200, 300, 400, 500, 600, 700, 800, 9…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"\n", "The error in the divisor count is determined.\n", "The discrete divisor count is calculated (modules). And the wave divisor count is calculated.\n", "Numbers 0 and 1 are not included in the divisor count.\n", "\"\"\"\n", "\n", "from ipywidgets import IntProgress\n", "from scipy import optimize\n", "\n", "fig, ax5 = plt5.subplots(1, figsize=(9, 4))\n", "plt5.suptitle('Mean Divisor Growth From $Var(\\epsilon(x))$')\n", " \n", "def update_plot(n,dxmin, dxmax, L5, max5):\n", "\n", " #Create list with all values for dx.\n", " dx5=[]\n", " for i in list(range(1, n+2, 1)):\n", " dx5.append((dxmin+(i-1)*(dxmax -dxmin)/n)) \n", " \n", " #Instantiate progress bar\n", " f = IntProgress(min=0, max=len(dx5), description=\"\")\n", " display(f)\n", " \n", " #Clear Graph\n", " ax5.clear()\n", " \n", " #Error\n", " err=[] \n", "\n", " #Discrete divisor count variables\n", " #xD = np.linspace(2,max4,max4-1)\n", " yD=[]\n", " yDD=[0]*(max5+1)\n", "\n", " #loop trought all values between 2 and maximum \n", " for w5 in range(2,max5):\n", " #Determine Discrete Divisor Count\n", " for i in range(2,max5+1):\n", " if (i%w5)==0:\n", " yD.append(1)\n", " else:\n", " yD.append(0)\n", "\n", " yDD=list(map(add, yDD, yD))\n", " yD=[]\n", "\n", " #Wave divisor function variables\n", " x5 = np.linspace(2,max5,max5-1)\n", " y5=[0]*(max5-1)\n", " yw5=[]\n", "\n", " #Variance of the error\n", " verrT=[0]*(max5-1)\n", " count=[len(dx5)-1]*(max5-1)\n", " \n", " #Loop trough all L, dx values\n", " for dxs in dx5:\n", " \n", " #loop trought all values between 2 and maximum \n", " for w5 in range(2,max5):\n", "\n", " #Determine Wave Divisor Count.\n", " N5=(np.log(L5))/(np.log(np.cos(np.pi*dxs/w5)))\n", " #N5=-2*(w5**2)*np.log(L5)/((np.pi**2)*(dxs**2))\n", " N5=2*round(0.5*N5,0)\n", " yw5 = ((np.cos(x5*np.pi/(w5)))**N5)*(np.cos(np.pi*N5*x5/(w5)))\n", " \n", " \n", " y5=list(map(add, y5, yw5))\n", " yw5=[]\n", "\n", " #Determine the normalized error ([Wave]-[Discrete])/Max(epsilon)\n", " err=list(map(sub, y5, yDD))\n", " em=np.exp(np.log(L5)/(dxs**2))\n", " errV=err/em\n", " \n", " #Plot error dots in graph\n", " ax5.plot(x5, errV, color='#686868', marker='.', markersize=1 ,linestyle='')\n", " \n", " \n", " #Variance of the error [Epsilon/Max(epsilon)]^2\n", " verr=list(map(mul,errV,errV))\n", " verrT=list(map(add,verrT,verr))\n", " \n", " #Set y to zero\n", " y5=[0]*(max5-1)\n", " \n", " #Update progressbar.\n", " f.value += 1 \n", "\n", " #Add one extra dot with label\n", " label1='$\\epsilon (x),$ n=' + str(len(dx5)) #str(count[0])\n", " ax5.plot([3],[0], color='gray', marker='.', markersize=3 ,linestyle='', label=label1)\n", " \n", " #Plot Variance\n", " verrT=list(map(truediv,verrT,count))\n", " ax5.plot(x5, verrT, color='red', linestyle='-', linewidth=1,label=\"$\\overline {\\sigma_{0}(x)}$\")\n", " \n", " #Plot divisor growth ln(x)+2Gamma-2\n", " yGpos=(np.log(x5)+2*0.557722-2)\n", " ax5.plot(x5, yGpos, color='blue', linestyle='-' ,label=\"$\\ln(x)+2\\gamma-2$\")\n", " \n", " #Plot Delta(x)\n", " yOx=list(map(sub,verrT,yGpos))\n", " ax5.plot(x5, yOx, color='green', marker='', markersize=5, linestyle='--' ,linewidth=1,label=\"$\\mathcal{O}(x^{\\Theta *})$\")\n", " \n", " #Fit error with (x+a)^phi-1:\n", " params, params_covariance = optimize.curve_fit(fit_error, x5, yOx, bounds=([-1.99,1.49],[1,1.51]))\n", " \n", " residuals = yOx - fit_error(x5, params[0], params[1])\n", " \n", " #Determine R^2\n", " ss_res = np.sum(residuals**2)\n", " ss_tot = np.sum((yOx-np.mean(yOx))**2)\n", " r_squared = 1 - (ss_res / ss_tot)\n", " \n", " #Plot fit\n", " xf = np.linspace(2,max5,100)\n", " ax5.plot(xf, fit_error(xf, params[0], params[1]), color='green',linewidth=2, label='Fit', linestyle='-')\n", " print('Fit: (x-1.5)^Theta-1')\n", " print('Theta*: ' + str(params[0]))\n", " print('a*: ' + str(params[1]))\n", " print(\"R^2: \" + str(r_squared))\n", " \n", " #Set scaling and exis\n", " ax5.legend(loc=0)\n", " ax5.set_xlabel('$x$')\n", " ax5.set_ylabel('$\\overline {\\sigma_{0}(x)}$')\n", " ax5.grid(b=True, which='major', color='#BEBEBE', linestyle='-')\n", " plt5.show()\n", " \n", " f.value += max5/10\n", " f.close()\n", " \n", "def fit_error(x,b,c):\n", " return ((x-c)**b)-1\n", " \n", "print(\"Options:\")\n", "print(\"L is pulse height at dx, Select multiple numbers dx, use: and/or .\")\n", "\n", "n= widgets.Dropdown(options=list(range(100,1100,100)), value=300, description=\"$n$:\")\n", "dxmin = widgets.BoundedFloatText(value=0.15, description='$\\Delta x \\space min$:',disabled=True) \n", "\n", "dxmaxl=[]\n", "for i in list(range(1, 70, 1)):\n", " dxmaxl.append(round(0.16+(i-1)*(0.5 - 0.16)/68,8))\n", "\n", "dxmaxlr=[]\n", "for i in list(range(1, 11, 1)):\n", " dxmaxlr.append(round(0.151+(i-1)*(0.159 - 0.151)/8,8))\n", " \n", "dxmax = widgets.Dropdown(options=(dxmaxlr+dxmaxl), value=0.2, description='$\\Delta x \\space max$:') \n", "\n", "L5 = widgets.BoundedFloatText(value=0.5, description='$L$:',disabled=True) \n", "max5 = widgets.Dropdown(options=(list(range(5,20,1))+list(range(20,1010,10))), value=20, description='$Range$:') \n", "\n", "widgets.interactive(update_plot, n=n, dxmin=dxmin, dxmax=dxmax, L5=L5, max5=max5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Theta as function of x, $\\Theta^{*}(x)$.\n", "\n", "For various ranges of $x$ we fitted $\\Theta^{*}(x)$. The graph below shows this relation. Every datapoint $\\Theta^{*}$ at range $x$ is calculated (with $n=1000$). It appears that $\\Theta^{*}(x)$ is a function of the looked at range in $x$. From the graph we can make the following observations:\n", "\n", "**Observation 1:**\n", "\n", "For range $x\\rightarrow0$, $\\Theta^{*}$ tends to go to:\n", "\n", "$$ \\Theta^{*}(x\\rightarrow 0) \\sim -0.5$$\n", "\n", "**Observation 2:**\n", "\n", "When we look at narrow pulsewidths between: $L=5$ and $\\Delta x$ between $[0.150 - 0.160]$ we see a possible limit occuring, there appears to be an minumum $\\Theta^{*}$. For range $x \\approx 11$, $\\Theta^{*}$ tends to:\n", "\n", "$$ \\Theta^{*}_{min}(x\\approx 11) \\sim -0.74$$\n", "\n", "Note that this could be an actual limit value. The derived method only counts for narrow pulse widths which is here the case. For very narrow pulsewidth between $\\Delta x=0.150$ and $\\Delta x=0.152$ the limit curve is not followed. Likely we have to do with computable limits the number of decimals is to big." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "daed172d9eba4ba6a34dd95939627906", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax6 = plt6.subplots(1, figsize=(9, 4))\n", "plt6.suptitle('$\\Theta^{*}(x)$ as function of range $x$')\n", "\n", "ax6.clear()\n", "\n", "xT=[5,6,7,8,9,10,14,20,30,40,50,70,100,150,200]\n", "# All Data for n=1000\n", "\n", "#0.15 - 0.151\n", "yd1=[-0.5185,-0.5989,-0.6596,-0.7103,-0.7576,-0.7866,-0.8551,-0.7720,-0.7385,-0.6818,-0.5749,-0.4570,-0.4405,-0.3110,-0.3300]\n", "#0.15 - 0.152\n", "yd2=[-0.5186,-0.5999,-0.6631,-0.7111,-0.7449,-0.7618,-0.7995,-0.7898,-0.6313,-0.4300,-0.4080,-0.2947,-0.2449,-0.1980,-0.1800]\n", "#0.15 -0.153\n", "yd3=[-0.5184,-0.5990,-0.6610,-0.7065,-0.7349,-0.7526,-0.7565,-0.6191,-0.3556,-0.2130,-0.1432,-0.0741,-0.0270,0.0025,0.0212]\n", "#0.15 - 0.154\n", "yd4=[-0.5184,-0.5994,-0.6611,-0.7070,-0.7359,-0.7552,-0.7469,-0.5389,-0.2640,-0.1472,-0.0650,-0.0072,0.0387,0.0654,0.0839]\n", "#0.15 - 0.155\n", "yd5=[-0.5184,-0.5993,-0.6612,-0.7058,-0.7299,-0.7450,-0.7340,-0.5901,-0.3005,-0.1580,-0.0943,-0.0312,0.0150,0.0400,0.0593]\n", "#0.15 - 0.156\n", "yd6=[-0.5184,-0.5990,-0.6603,-0.7061,-0.7344,-0.7520,-0.7545,-0.6206,-0.3419,-0.2073,-0.1345,-0.0681,-0.0178,0.0118,0.0300]\n", "#0.15 - 0.157\n", "yd7=[-0.5183,-0.5990,-0.6613,-0.7061,-0.7348,-0.7649,-0.7707,-0.6531,-0.4259,-0.2742,-0.1866,-0.1153,-0.0579,-0.0270,-0.0012]\n", "#0.15 - 0.158\n", "yd8=[-0.5184,-0.5990,-0.6600,-0.7067,-0.7385,-0.7594,-0.7833,-0.7173,-0.5340,-0.3740,-0.2748,-0.1919,-0.1211,-0.0799,-0.0500]\n", "#0.15 - 0.159\n", "yd9=[-0.5184,-0.5980,-0.6608,-0.7070,-0.7408,-0.7640,-0.7990,-0.7746,-0.6510,-0.5044,-0.3985,-0.2890,-0.2046,-0.1503,-0.1158]\n", "#0.15 - 0.16\n", "yd10=[-0.5184,-0.5989,-0.6600,-0.7079,-0.7417,-0.7680,-0.8182,-0.8167,-0.7541,-0.6617,-0.5624,-0.4296,-0.3141,-0.2421,-0.1957]\n", "#0.15 - 0.165\n", "yd11=[-0.5180,-0.5980,-0.6594,-0.7068,-0.7420,-0.7713,-0.8371,-0.8747,-0.9011,-0.9010,-0.9012,-0.8916,-0.8690,-0.8433,-0.7867]\n", "#0.15 - 0.17\n", "yd12=[-0.5183,-0.5978,-0.6579,-0.7021,-0.7326,-0.7548,-0.7979,-0.8091,-0.7951,-0.7719,-0.7376,-0.7108,-0.6386,-0.5741,-0.5019]\n", "#0.15 - 0.175\n", "yd13=[-0.5182,-0.5969,-0.6550,-0.6997,-0.7290,-0.7538,-0.8029,-0.8282,-0.8476,-0.8459,-0.8482,-0.8577,-0.8524,-0.8577,-0.8414]\n", "#0.15 - 0.18\n", "yd14=[-0.5180,-0.5962,-0.6548,-0.6996,-0.7319,-0.7590,-0.8235,-0.8754,-0.9190,-0.9434,-0.9606,-0.9894,-1.0147,-1.0439,-1.0570]\n", "#0.5 -0.185\n", "yd15=[-0.5179,-0.5954,-0.6534,-0.6958,-0.7272,-0.7521,-0.8136,-0.8544,-0.8819,-0.8994,-0.9095,-0.9318,-0.9472,-0.9732,-0.9811]\n", "#0.15 - 0.19\n", "yd16=[-0.5177,-0.5947,-0.6500,-0.6915,-0.7170,-0.7389,-0.7670,-0.7630,-0.7368,-0.6878,-0.6288,-0.5659,-0.4600,-0.3917,-0.3300]\n", "#0.15 -0.195\n", "yd17=[-0.5174,-0.5938,-0.6477,-0.6861,-0.7107,-0.7318,-0.7633,-0.7481,-0.7078,-0.6542,-0.5866,-0.5212,-0.4251,-0.3674,-0.3120]\n", "#0.15 -0.2\n", "yd18=[-0.5170,-0.5925,-0.6466,-0.6860,-0.7120,-0.7349,-0.7715,-0.7815,-0.7626,-0.7320,-0.6960,-0.6489,-0.5630,-0.4954,-0.4270]\n", "#0.15 - 0.205\n", "yd19=[-0.5170,-0.5914,-0.6450,-0.6850,-0.7110,-0.7359,-0.7865,-0.8114,-0.8193,-0.8174,-0.8000,-0.7951,-0.7529,-0.7250,-0.6590]\n", "#0.15 -0.21\n", "yd20=[-0.5166,-0.5900,-0.6427,-0.6825,-0.7085,-0.7324,-0.7786,-0.8000,-0.8222,-0.8199,-0.8103,-0.8084,-0.7836,-0.7682,-0.7200]\n", "\n", "\n", "ax6.plot(xT, yd1, marker='.',markersize=3, linestyle='--', linewidth=1, color='red')\n", "ax6.plot(xT, yd2, marker='.',markersize=3, linestyle='--', linewidth=1, color='red',label=\"$\\Delta x$: [0.150-0.152]\")\n", "ax6.plot(xT, yd3, marker='.',markersize=3, linestyle='-', linewidth=1, color='blue')\n", "ax6.plot(xT, yd4, marker='.',markersize=3, linestyle='-', linewidth=1, color='purple')\n", "ax6.plot(xT, yd5, marker='.',markersize=3, linestyle='-', linewidth=1, color='blue')\n", "ax6.plot(xT, yd6, marker='.',markersize=3, linestyle='-', linewidth=1, color='blue')\n", "ax6.plot(xT, yd7, marker='.',markersize=3, linestyle='-', linewidth=1, color='blue')\n", "ax6.plot(xT, yd8, marker='.',markersize=3, linestyle='-', linewidth=1, color='blue')\n", "ax6.plot(xT, yd9, marker='.',markersize=3, linestyle='-', linewidth=1, color='blue')\n", "ax6.plot(xT, yd10, marker='.',markersize=3, linestyle='-', linewidth=1, color='blue',label=\"$\\Delta x$: [0.150-0.160]\")\n", "ax6.plot(xT, yd11, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd12, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd13, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd14, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd15, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd16, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd17, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd18, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd19, marker='.',markersize=3, linestyle='-', linewidth=1, color='green')\n", "ax6.plot(xT, yd20, marker='.',markersize=3, linestyle='-', linewidth=1, color='green', label=\"$\\Delta x$: [0.150-0.210]\")\n", "\n", "ax6.legend(loc=2)\n", "ax6.set_xlabel('$Range$ $x$')\n", "ax6.set_ylabel('$\\Theta^{*}(x)$')\n", "ax6.grid(b=True, which='major', color='#666666', linestyle='-')\n", "\n", "plt6.show()\n", " \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Conclusion\n", "\n", "The error $\\Theta^{*}$ in the mean divisor count was determined:\n", "\n", "$$ \\overline {\\sigma_{0}(x)} = \\log(x) + 2 \\gamma -2 + \\mathcal{O}(x^{\\Theta^{*}})$$\n", "\n", "The Divisor summatory function is the mean divisor count multiplied by: $x$:\n", "\n", "$$ D(x) = x(\\log(x) + 2 \\gamma -1) + \\mathcal{O}(x^{\\Theta})$$\n", "\n", "With help of the wave divisor function the error $\\Theta$ in the Divisor summatory function is determined: $x^{1} \\cdot x^{\\Theta^{*}}=x^{1+\\Theta^{*}} $, so:\n", "\n", "$$ \\Theta_{(x\\rightarrow 0)} \\sim 0.5$$\n", "\n", "$$ \\Theta_{min} \\sim 0.26 $$\n", "\n", "Both these values correspond to values found in literature. Though, there are many pulsewidth settings and the results vary. The achieved results are thought to be more in the catagory \"luck\". More analysis is needed.\n", "\n", "More information: [Divisor Summatory][1]\n", "\n", "[1]: https://en.wikipedia.org/wiki/Divisor_summatory_function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fourier Transform Wave Divisor Function.\n", "\n", "The wave divisor function consists of a pulse outline modulated with a high frequency component. The real solution of the wave divisor function is:\n", "\n", "$$ \\Re(\\sigma_{0})=\\sum_{\\mathbb{X}=2}^{\\infty}\\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right) \\cos \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right) $$\n", "\n", "N is determined by the pulse width of $cos^{N}$ and calculated with ($L$ pulseheight at position $\\Delta x$). For every $\\mathbb{X}$ a $N$ is calculated. N should be an positive even integer to obtain positive pulses only:\n", "\n", "$$ N(\\mathbb{X}) = \\frac{\\log(L)}{\\log \\left( \\cos \\left( \\frac {\\pi}{\\mathbb{X} } \\Delta x \\right) \\right)} \\approx - \\frac{2 \\mathbb{X}^2 \\log(L)}{\\pi^2 \\Delta x^2} + \\frac{\\log(L)}{3}+ \\mathcal{O} \\left( \\frac{1}{\\mathbb{X}^2} \\right)$$\n", "\n", "The first term $cos^N$ can also be simplified, this is the pulse outline. The pulse outline forms a bell shaped distribution arround the origin for $\\mathbb{X} \\rightarrow \\infty$:\n", "\n", "$$ O(x)=\\lim_{\\mathbb{X} \\rightarrow \\infty}\\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right)= e^{a x^{2}}$$\n", "\n", "$$ a=\\frac{\\log(L) }{\\Delta x^{2}}=constant$$\n", "\n", "The high frequency component $HF(\\mathbb{X})$ scales linear with $\\mathbb{X}$ (see link for more information) for: $\\mathbb{X} \\rightarrow \\infty$. \n", "\n", "$$ HF(\\mathbb{X})= \\cos \\left( \\frac{N\\pi}{\\mathbb{X}} x \\right) \\approx \\cos (b x)$$\n", "\n", "$$ b(\\mathbb{X}) = \\frac{N}{\\mathbb{X}}\\pi \\approx - \\frac{2 \\log(L)}{\\pi \\Delta x^{2}} \\mathbb{X} = constant \\cdot \\mathbb{X}$$\n", "\n", "So for $\\mathbb{X} \\rightarrow \\infty$ the wave divisor function becomes:\n", "\n", "$$ \\Re(\\sigma_{0})\\rightarrow \\sum_{\\mathbb{X}=2}^{\\infty}e^{a x^{2}} \\cos (b x) $$\n", "\n", "The wave divisor at infinity can be Fourier transformed in the frequency domain. The following Fourier transform definitation was used:\n", "\n", "$$ \\hat{f}(\\xi)=\\int_{-\\infty}^{\\infty}f(x) e^{-2 \\pi ix \\xi} dx$$\n", "\n", "With help of Wolfram Alpha the Fourier transform is determined (see link below). The frequency spectra of an individual divisor wave will consist of a bell shape mirrored in the y-axis.\n", "\n", "$$ \\hat{\\sigma}_{0}(\\xi)= \\frac{\\sqrt{\\pi}}{2 \\sqrt{-a}} \\left( e^{(b-2 \\pi \\xi)^{2} /4a} + e^{(b+2 \\pi \\xi)^{2} /4a} \\right) $$\n", "\n", "Every number will have at least on divisor wave. Because of the linearity properties of the Fourier transform we can sum the spectra to obtain the complete spectra of a number. The simulation below shows the time domain wave and the frequency spectra. Also the wave has been transposed to an audible signal.\n", "\n", "Notebook with interactive graphs: [Wave Divisor Fourier Simulation][4]\n", "\n", "\n", "More information: [Wave Divisor Function][1], [Wiki Fourier Transform][2], [Wolfram Alpha][3], \n", "\n", "[1]: https://mybinder.org/v2/gh/oooVincentooo/Shared/master?filepath=Wave%20Divisor%20Function%20rev%202.4.ipynb\n", "[2]: https://en.wikipedia.org/wiki/Fourier_transform\n", "[3]: https://www.wolframalpha.com/input/?i=Fourier+transform+exp%28a*x%5E2%29*cos%28b*x%29\n", "[4]: https://mybinder.org/v2/gh/oooVincentooo/Shared/master?filepath=Wave%20Divisor%20Function%20Audio.ipynb\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Properties Arcsine Distribution.\n", "\n", "The wave divisor function consists of a pulse outline modulated with a high frequency component. The real solution of the wave divisor function is:\n", "\n", "$$ \\Re(\\sigma_{0})=\\sum_{\\mathbb{X}=2}^{\\infty}\\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right) \\cos \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right) $$\n", "\n", "N is determined by the pulse width settings. For $(\\mathbb{X} \\rightarrow \\infty)$ N can be approximated as:\n", "\n", "$$ N(\\mathbb{X}) = \\frac{\\log(L)}{\\log \\left( \\cos \\left( \\frac {\\pi}{\\mathbb{X} } \\Delta x \\right) \\right)} \\approx - \\frac{2 \\mathbb{X}^2 \\log(L)}{\\pi^2 \\Delta x^2} + \\frac{\\log(L)}{3}+ \\mathcal{O} \\left( \\frac{1}{\\mathbb{X}^2} \\right)$$\n", "\n", "The high frequency component $HF(\\mathbb{X})$ scales linear with $\\mathbb{X}$ (see link for more information). This linear dependance will result in a arcsine distribution only if the divisors at $\\sigma(x-1)$ and $\\sigma(x+1)$ are random distributed, which is supposed true for large numbers. Note that $N(\\mathbb{X})$ also is a randomizing factor while it's rounded to it's closest even number. \n", "\n", "$$ HF(\\mathbb{X})= \\cos \\left( \\frac{N\\pi}{\\mathbb{X}} \\right) \\approx \\cos (\\alpha \\mathbb{X})$$\n", "\n", "$$ \\alpha = - \\frac{2 \\log(L)}{\\pi \\Delta x^{2}}=constant$$\n", "\n", "The are two simulations in this document. The first simulation is the arcsine distribution for values of $L$ and $dx$. Second there is also a case where resonation occurs here $\\alpha=\\phi \\pi$. In the simulations N is calulated with it's original definition not it's approximation / limit value.\n", "\n", "Notebook with interactive graphs: [Notebook Arcsine][2]\n", "\n", "More information: [pdf Google Drive][1]\n", "\n", "[1]: https://drive.google.com/open?id=1Etu4vOfjsnbaysk_UR6HIA9R7EDybH-n\n", "[2]: https://mybinder.org/v2/gh/oooVincentooo/Shared/master?filepath=Wave%20Divisor%20Function%20Arcsine.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Error symmetry wave divisor function.\n", "\n", "The divisor function can be written as a summation of waves (see link below previous questions Stacks Exchange). The error in the wave divisor function is mainly determined by it's neighbor divisors. The error is proportional to:\n", "\n", "$$ \\varepsilon (x) \\propto \\sum_{\\mathbb{X}\\vert (x-1)}^{} \\cos(k \\mathbb{X}) + \\sum_{\\mathbb{X}\\vert (x+1)}^{} \\cos(k \\mathbb{X})$$\n", "\n", "Here $\\mathbb{X} \\vert (x-1)$ means: $\\mathbb{X}$ divides $(x-1)$. Basically the divisors are added from the neighbors of $x$:\n", "\n", "$$\\varepsilon (9) = \\cos(k1)+\\cos(k2)+\\cos(k4)+\\cos(k8)+\\cos(k1)+\\cos(k2)+\\cos(k5)+\\cos(k10)$$\n", "\n", "The total error then is a (cosine)summation of errors like Brownian motion. Where k is a constant and determines the pulse width of each divisor wave, see link below for more information.\n", "\n", "$$ k=-\\frac{2 \\log(L)}{\\pi \\Delta x^{2}}$$\n", "\n", "We can simulate the error for a number $x$ by keeping $L=0.5$ and vary $\\Delta x$ between: 0.15 and 0.2 in 10000 steps. For every $k$ the error can be calculated. See simulation below.\n", "\n", "It is observed that for $x=odd$ the error $\\varepsilon (x)$ tends to nonsymmetrical/skewed distribution. For $x=even$ the error $\\varepsilon (x)$ tends to a symmetrical distribution. Normally I exclude 1 as an divisor, but the symmetrical and skewed distribution are always present (with and without 1 as divisor).\n", "\n", "Question:\n", "Why does the error for odd and even numbers $x$ tend to behave asymmetric/skewed and symmetric? Partial answer in links below.\n", "\n", "Notebook with interactive graphs: [Notebook Error symmetry][1]\n", "\n", "[1]: https://mybinder.org/v2/gh/oooVincentooo/Shared/master?filepath=Wave%20Divisor%20Function%20Error%20Distribution.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Higher Order Wave Divisor Function: $\\sigma_{w}(x)$\n", "\n", "The wave divisor function can also be expressed to determine higher order solutions $\\sigma_{w}(x)$. The n choose k notation will look like:\n", "\n", "$$ \\sigma_{w}(x)=\\sum_{\\mathbb{X}=2}^{\\infty} \\mathbb{X}^{w} \\space 2^{(-N)} \\sum_{k=0}^{N} \\binom{N}{k} e^{-i\\left( \\frac{\\pi}{\\mathbb{X}}k x \\right)} $$\n", "\n", "The trigiometric formulation.\n", "\n", "$$ \\Re(\\sigma_{w})=\\sum_{\\mathbb{X}=2}^{\\infty} \\mathbb{X}^{w} \\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right) \\cos \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right) $$\n", "\n", "$$ \\Im(\\sigma_{w})=-i \\sum_{\\mathbb{X}=2}^{\\infty} \\mathbb{X}^{w} \\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}}x \\right) \\sin \\left( \\frac{N\\pi}{\\mathbb{X}}x \\right) $$\n", "\n", "The error in the higher order divisor function has not been determined yet.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Wave Divisor Function Error Simulation.\n", "\n", "The error in the wave divisor function depends on direct neighbor divisors ([Question SE][1]). For narrow\n", "pulsewidths: $\\Delta x$ is small the error will reduce. Every wavepulse can contribute a maximum\n", "error of: $max(\\varepsilon)$.\n", "\n", "$$ max(\\varepsilon)=exp \\left( \\frac{\\log(L)}{\\Delta x^2} \\right)$$\n", "\n", "The total error is the cosine summation of all neighbor divisors $(x-1)$ and $(x+1)$.\n", "\n", "\n", "$$\n", "\\varepsilon (x)= max(\\varepsilon) \\cdot \\left[ \\sum_{\\mathbb{X}\\vert(x-1)} a \\cdot \\cos \\left( \\frac{N \\pi }{\\mathbb{X} } \\right) + \\sum_{\\mathbb{X}\\vert(x+1)} a \\cdot \\cos \\left( \\frac{N \\pi }{\\mathbb{X} } \\right) \\right] \n", "\\label{eq: error_standard} \\tag{1}\n", "$$\n", "\n", "Here $\\mathbb{X} \\vert (x-1)$ means: $\\mathbb{X}$ divides $(x-1)$. Basically the divisors are added from the neighbors of $x$ like (simplified):\n", "\n", "$$\\varepsilon (9) = \\cos(k1)+\\cos(k2)+\\cos(k4)+\\cos(k8)+\\cos(k1)+\\cos(k2)+\\cos(k5)+\\cos(k10)$$\n", "\n", "$N$ and the amplitude $a$ can be calculated with:\n", "\n", "$$ N(\\mathbb{X})= \\frac{\\log (L)}{\\log \\left( \\cos \\left( \\frac {\\pi}{\\mathbb{X} } \\Delta x \\right)\\right)} \\quad where: \\quad N(\\mathbb{X}) \\in 2 \\mathbb{N} $$\n", "\n", "$$ a(\\mathbb{X})= \\cos^{N} \\left( \\frac{\\pi}{\\mathbb{X}} \\right) \\bigg / max(\\varepsilon) $$\n", "\n", "The amplitude $a(\\mathbb{X})$ will decrease for smaller divisors $\\mathbb{X}$. $N(\\mathbb{X})$ is determined by the pulsewidth and rounded to its closest even integer. The divisors of a number are expected to be random. Also rounding of $N(\\mathbb{X})$ will cause an randomizing effect. The error is expected to follow a: Random walk / Brownian motion over an arcsine distribution (with variance: $0.5$). The growth in the error can be approximated. It was found that the growth is related to the mean divisor growth by Dirichlet (note: 1 is not included as divisor).\n", "\n", "$$Var(\\varepsilon(x)) \\approx \\frac{1}{2} \\cdot \\left[ \\sigma_{0}(x-1) + \\sigma_{0}(x+1) \\right]$$\n", "\n", "$$ Stdev(\\sigma_{0}) \\approx \\cdot \\sqrt{\\log(x)+ 2 \\gamma -2}\n", " \\label{eq: Stdev} \\tag{2}\n", " $$\n", "\n", "The error description $\\eqref{eq: error_standard}$ can be approximated for large numbers by:\n", "\n", " $$\\varepsilon (x) \\approx max(\\varepsilon) \\cdot \\left[ \\sum_{\\mathbb{X}\\vert (x-1)}^{} \\cos(k \\mathbb{X}) + \\sum_{\\mathbb{X}\\vert (x+1)}^{} \\cos(k \\mathbb{X}) \\right]\n", " \\label{eq: error_approx} \\tag{3}\n", " $$\n", "\n", "Where $k$ is a constant and determined by the pulse width.\n", "\n", "$$ k=-\\frac{2 \\log(L)}{\\pi \\Delta x^{2}}$$\n", "\n", "A simulation has been made calculating the “standard error” $\\eqref{eq: error_standard}$ and “approximated error” $\\eqref{eq: error_approx}$. Earlier error analysis showed that the distribution $\\varepsilon(x)$ varies depending upon $𝑥$ being odd (skewed distribution) or even (symmetrical distribution). So I know partity has a effect. Also observed for $x$ is even: Twin Primes cause a peak arround 0.\n", "\n", "Question:\n", "Does the error follow a random walk over an arsine distribution (for odd or even $x$)? Till 1.000.000 $\\eqref{eq: Stdev}$ holds pretty good.\n", "\n", "More information: [Question Wave Divisor Function][1], [Jupyter Notebook Simulation][2]\n", "\n", "[1]: https://math.stackexchange.com/q/3427431/650339\n", "[2]: https://mybinder.org/v2/gh/oooVincentooo/Shared/master?filepath=Wave%20Divisor%20Function%20Error.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# What next.\n", "\n", "- Fitting of Theta is problematic. There are many pulse width setting. The achieved result a thought to be in the catagory luck.\n", "- Analyse the wave divisor function in frequency spectrum. It looks like n choose k notation is frequency spectra of goniometric decription?\n", "- How does the frequency spectrum look of total solution $\\sigma(x)$.\n", "- Can the divisor count growth be calculated from the error in the wave divisor function while there are limitless settings for: $L$ and $\\Delta x$?\n", "- Why are there more positve error's in the wave divisor function. The positive errors seem to occur for negative values of x only. \n", "- In the wave divisor function prime numbers will oscilate between -1 and 1 for narrow pulse widths. It's state is sort of undefined for narrow pulse widths and large numbers.\n", "- Much more." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.8.3" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "00a564aa4c0d4feda00461ac0e9f74f8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "02275eb9149f4e37bb085db073cbb49e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0320f4788e7b45559a36db8750fb3248": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0345dbc838a04d5e833d5e476c48844b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_ad232fe369e7476797b5cb04a704b069", "IPY_MODEL_7b566b6f1b1148518f00b3c23fbb058f", "IPY_MODEL_d5625ab8531845d7abcb44785e63565a", "IPY_MODEL_d9ac400c490140dbbf79d5431fd3122a", "IPY_MODEL_0bf85f8d77c64f1dae91bf8ffbc2ef59" ], "layout": "IPY_MODEL_bb9abb3da6734bcd859b8bb825272f74" } }, "04f4f3b49f5d4fde94ad7ad04bb2c6f0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "073326d00f9c4deba9427ed6f13405b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "07c3e5ce248a44789cf8a7032f2d224f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "07d0e9f770f34608acf9d6e6bcee0c3f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0bf40d174e0942759cc6e794fa499d43": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0bf85f8d77c64f1dae91bf8ffbc2ef59": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_ee9d86e6fb604a1e9acbe92533fdf737", "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": "IntProgress(value=0, max=4500)" }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": "Outside CI: 4\nWithin CI (99.7%): 99.73333333333333 %\n" } ] } }, "0c37ed7c890a4b21ac646ed3eb3482d6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1241148e2369413d8797477a05878f8c": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "ToolbarModel", "state": { "layout": "IPY_MODEL_f86b004a5dc8437bb37dd9e781885305", "toolitems": [ [ "Home", "Reset original view", "home", "home" ], [ "Back", "Back to previous view", "arrow-left", "back" ], [ "Forward", "Forward to next view", "arrow-right", "forward" ], [ "Pan", "Pan axes with left mouse, zoom with right", "arrows", "pan" ], [ "Zoom", "Zoom to rectangle", "square-o", "zoom" ], [ "Download", "Download plot", "floppy-o", "save_figure" ] ] } }, "132b56b7ef68481dab37b582a80a174f": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "ToolbarModel", "state": { "layout": "IPY_MODEL_25a7186dec8d4c51ba22a538e3d0f8ee", "toolitems": [ [ "Home", "Reset original view", "home", "home" ], [ "Back", "Back to previous view", "arrow-left", "back" ], [ "Forward", "Forward to next view", "arrow-right", "forward" ], [ "Pan", "Pan axes with left mouse, zoom with right", "arrows", "pan" ], [ "Zoom", "Zoom to rectangle", "square-o", "zoom" ], [ "Download", "Download plot", "floppy-o", "save_figure" ] ] } }, "1394d353e1de4066af77f4fb2335f9f3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "1bff62292363440bae266ee9edc36d69": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "MPLCanvasModel", "state": { "_cursor": "default", "_figure_label": "Figure 3", "_height": 500, "_width": 500, "layout": "IPY_MODEL_4133da9d05d94a9ca2a0a8fdb7a19090", "toolbar": "IPY_MODEL_897f0769660140909e57eae40b8a613b", "toolbar_position": "left" } }, "1f04d5b0fb644cc1af699996f5cc8d9b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "BoundedFloatTextModel", "state": { "description": "$L$:", "disabled": true, "layout": "IPY_MODEL_570c690f0da3434b9e10deab3f6d21a2", "step": null, "style": "IPY_MODEL_2730ebdfa5cd4029993051ae4c223460", "value": 0.5 } }, "20d627ee7d4b402687864194623c225d": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "MPLCanvasModel", "state": { "_cursor": "default", "_figure_label": "Figure 2", "_height": 500, "_width": 500, "layout": "IPY_MODEL_b96cca908ba14223a9ad71e4295f51e7", "toolbar": "IPY_MODEL_7c964de525874eb4a3e8fb3151760ab6", "toolbar_position": "left" } }, "2339772969934653811d566670262b92": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_415732e192534f4c95e33efd83f3bb71" } }, "24f2d8826cd2461a96bcebefd71b4cef": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "Even", "Continuo" ], "description": "$N$:", "index": 0, "layout": "IPY_MODEL_8e94bbbead00406eb79cc3633c69343e", "style": "IPY_MODEL_1394d353e1de4066af77f4fb2335f9f3" } }, "25a7186dec8d4c51ba22a538e3d0f8ee": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "26ba190a05ad497eb6388f5a2ae860b9": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "MPLCanvasModel", "state": { "_cursor": "default", "_figure_label": "Figure 1", "_height": 400, "_image_mode": "diff", "_width": 900, "layout": "IPY_MODEL_f471d199e3ea4caa9ac34214a297693c", "toolbar": "IPY_MODEL_774dcc4be38e4a19b79d26096ddc7e16", "toolbar_position": "left" } }, "2730ebdfa5cd4029993051ae4c223460": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2d12bd1eccf742f598225c756795c797": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "304ca7f02f3d4175ad57c744310718c7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "321ede72ad5a407caa3927bab0e9f3f0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3938284d2dd741fa99120791d9347581": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3b9f68de1eaf4545967d4bb2bd2041ce": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "3bd370c204974fed92793a70b5027f43": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100" ], "description": "$x$:", "index": 0, "layout": "IPY_MODEL_ad5d033340554167896b2c2a9d7bc485", "style": "IPY_MODEL_b21547e7eb8047c8b63cde7934475c97" } }, "3d6b0182b95b4b6bad3f96e8bd37c954": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3eda0ac850314977b3e412b1cdd3fe7b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "40a95801357d425aa995051e52b36032": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectMultipleModel", "state": { "_options_labels": [ "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100" ], "description": "$\\mathbb{X}$:", "index": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 ], "layout": "IPY_MODEL_87bd79b698054dc0b5a9717642deb711", "rows": 5, "style": "IPY_MODEL_cfc83e008d1d48e69d0b475de70f8f96" } }, "4133da9d05d94a9ca2a0a8fdb7a19090": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "415732e192534f4c95e33efd83f3bb71": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4bb5a8f055f34f9f9eccb7e8a24852b4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "30", "40", "50", "60", "70", "80", "90", "100", "110", "120", "130", "140", "150", "160", "170", "180", "190", "200", "210", "220", "230", "240", "250", "260", "270", "280", "290", "300", "310", "320", "330", "340", "350", "360", "370", "380", "390", "400", "410", "420", "430", "440", "450", "460", "470", "480", "490", "500", "510", "520", "530", "540", "550", "560", "570", "580", "590", "600", "610", "620", "630", "640", "650", "660", "670", "680", "690", "700", "710", "720", "730", "740", "750", "760", "770", "780", "790", "800", "810", "820", "830", "840", "850", "860", "870", "880", "890", "900", "910", "920", "930", "940", "950", "960", "970", "980", "990", "1000" ], "description": "$Range$:", "index": 15, "layout": "IPY_MODEL_cef7a25f40ae41ec8b2a9b51070fccc8", "style": "IPY_MODEL_a51392384c4d416395fe81d4a47ce40d" } }, "4f3e803da3064070871634c5898bbd72": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "506fff2957044b0985ca5376dc3d52a9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "53010ee03f1c44deba99f8f13380e211": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "0.1", "0.15", "0.2", "0.25", "0.3", "0.35", "0.4", "0.45", "0.5" ], "description": "$\\Delta x$:", "index": 2, "layout": "IPY_MODEL_cf73ebb3232341388e0588ad302ae841", "style": "IPY_MODEL_073326d00f9c4deba9427ed6f13405b2" } }, "557ea9ff276b46c895f5c6a855552d79": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "56d6a1aa88bc48648fa946f6dbb2ac12": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_dc39dad52969499a95ee007d69bfc4b9", "IPY_MODEL_7f72fae0d17a4ef28123fd7304f4f919", "IPY_MODEL_82b226d46ecc4d3a84ac16737d0e8a57", "IPY_MODEL_24f2d8826cd2461a96bcebefd71b4cef", "IPY_MODEL_dfb69346a20d4508b6f33e77d637727b" ], "layout": "IPY_MODEL_07c3e5ce248a44789cf8a7032f2d224f" } }, "570c690f0da3434b9e10deab3f6d21a2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "57203ee2b37740668f077fb4b7d347d9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_ecf71568f00249e2b987a186c4be17a1", "IPY_MODEL_e55a0cc3b8de4f529fe510c29cce6d5b", "IPY_MODEL_703e955101f441f1943839cfe5ecadcc", "IPY_MODEL_1f04d5b0fb644cc1af699996f5cc8d9b", "IPY_MODEL_4bb5a8f055f34f9f9eccb7e8a24852b4", "IPY_MODEL_8730a543911c42cd9f029afefcfe1f2d" ], "layout": "IPY_MODEL_07d0e9f770f34608acf9d6e6bcee0c3f" } }, "5852908881e0403780ff95bebc977b52": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5c825100dc024ceb8e5619a19660c2ea": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5df1063b72074ee58fee1c80c20502de": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5ffe51590df44b529dd5595a735e5b80": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "616cb8db4c654c44998224a3bae48a53": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "MPLCanvasModel", "state": { "_cursor": "default", "_figure_label": "Figure 5", "_height": 400, "_width": 900, "layout": "IPY_MODEL_0c37ed7c890a4b21ac646ed3eb3482d6", "toolbar": "IPY_MODEL_132b56b7ef68481dab37b582a80a174f", "toolbar_position": "left" } }, "620eb9ab02b0438db7b2cb80f9f3d1e9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "65fd52fe0076481c9e30f98486b7fa21": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_53010ee03f1c44deba99f8f13380e211", "IPY_MODEL_fb993ffb48dd457596bdc2832700815b", "IPY_MODEL_3bd370c204974fed92793a70b5027f43", "IPY_MODEL_2339772969934653811d566670262b92" ], "layout": "IPY_MODEL_f560abe5e6f640ca9fcc6a82640626fe" } }, "686d457576b1488d841d546d133f9b7b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "6b3504baf6b74122bc8eb432df91d183": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "703e955101f441f1943839cfe5ecadcc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "0.151", "0.152", "0.153", "0.154", "0.155", "0.156", "0.157", "0.158", "0.159", "0.16", "0.16", "0.165", "0.17", "0.175", "0.18", "0.185", "0.19", "0.195", "0.2", "0.205", "0.21", "0.215", "0.22", "0.225", "0.23", "0.235", "0.24", "0.245", "0.25", "0.255", "0.26", "0.265", "0.27", "0.275", "0.28", "0.285", "0.29", "0.295", "0.3", "0.305", "0.31", "0.315", "0.32", "0.325", "0.33", "0.335", "0.34", "0.345", "0.35", "0.355", "0.36", "0.365", "0.37", "0.375", "0.38", "0.385", "0.39", "0.395", "0.4", "0.405", "0.41", "0.415", "0.42", "0.425", "0.43", "0.435", "0.44", "0.445", "0.45", "0.455", "0.46", "0.465", "0.47", "0.475", "0.48", "0.485", "0.49", "0.495", "0.5" ], "description": "$\\Delta x \\space max$:", "index": 18, "layout": "IPY_MODEL_a06944a573b24a1a88bf9d0b6b46ec47", "style": "IPY_MODEL_0320f4788e7b45559a36db8750fb3248" } }, "70da7f516d974f208b30422b4461e56c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "718aa115167349b8886122bc46b33fdb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "726f8c63060c40e29a4444d1a995bc53": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "774dcc4be38e4a19b79d26096ddc7e16": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "ToolbarModel", "state": { "layout": "IPY_MODEL_321ede72ad5a407caa3927bab0e9f3f0", "toolitems": [ [ "Home", "Reset original view", "home", "home" ], [ "Back", "Back to previous view", "arrow-left", "back" ], [ "Forward", "Forward to next view", "arrow-right", "forward" ], [ "Pan", "Pan axes with left mouse, zoom with right", "arrows", "pan" ], [ "Zoom", "Zoom to rectangle", "square-o", "zoom" ], [ "Download", "Download plot", "floppy-o", "save_figure" ] ] } }, "7789646437d94552a4e1f3ff7dc5d507": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "7b566b6f1b1148518f00b3c23fbb058f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "0.1", "0.15", "0.2", "0.25", "0.3", "0.35", "0.4", "0.45", "0.5" ], "description": "$L$:", "index": 8, "layout": "IPY_MODEL_c819214927fe498ab315730311202ed8", "style": "IPY_MODEL_506fff2957044b0985ca5376dc3d52a9" } }, "7c964de525874eb4a3e8fb3151760ab6": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "ToolbarModel", "state": { "layout": "IPY_MODEL_7789646437d94552a4e1f3ff7dc5d507", "toolitems": [ [ "Home", "Reset original view", "home", "home" ], [ "Back", "Back to previous view", "arrow-left", "back" ], [ "Forward", "Forward to next view", "arrow-right", "forward" ], [ "Pan", "Pan axes with left mouse, zoom with right", "arrows", "pan" ], [ "Zoom", "Zoom to rectangle", "square-o", "zoom" ], [ "Download", "Download plot", "floppy-o", "save_figure" ] ] } }, "7f72fae0d17a4ef28123fd7304f4f919": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatSliderModel", "state": { "description": "$L$:", "layout": "IPY_MODEL_c141c253da914e399911c2f66e5a44c1", "max": 0.99, "min": 0.15, "step": 0.01, "style": "IPY_MODEL_304ca7f02f3d4175ad57c744310718c7", "value": 0.5 } }, "82b226d46ecc4d3a84ac16737d0e8a57": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectMultipleModel", "state": { "_options_labels": [ "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" ], "description": "$\\mathbb{X}$:", "index": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ], "layout": "IPY_MODEL_adac5e0052384ae7a3109c9f4c3b2a1e", "rows": 5, "style": "IPY_MODEL_0bf40d174e0942759cc6e794fa499d43" } }, "8730a543911c42cd9f029afefcfe1f2d": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_70da7f516d974f208b30422b4461e56c", "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": "IntProgress(value=0, max=301)" }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": "Fit: (x-1.5)^Theta-1\nTheta*: -0.787933345714201\na*: 1.4900000000000002\nR^2: 0.5715583657056462\n" } ] } }, "87bd79b698054dc0b5a9717642deb711": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "897f0769660140909e57eae40b8a613b": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "ToolbarModel", "state": { "layout": "IPY_MODEL_620eb9ab02b0438db7b2cb80f9f3d1e9", "toolitems": [ [ "Home", "Reset original view", "home", "home" ], [ "Back", "Back to previous view", "arrow-left", "back" ], [ "Forward", "Forward to next view", "arrow-right", "forward" ], [ "Pan", "Pan axes with left mouse, zoom with right", "arrows", "pan" ], [ "Zoom", "Zoom to rectangle", "square-o", "zoom" ], [ "Download", "Download plot", "floppy-o", "save_figure" ] ] } }, "8e94bbbead00406eb79cc3633c69343e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "976b44a015ef48a9aea1120557ec7510": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "98840447b93642fe87ca7e8dae901ddf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9e8d0b62a1a6409ea9afc815a0db8aae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "a06944a573b24a1a88bf9d0b6b46ec47": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a4cfeeadffe94347b52be8fc658fd344": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "ToolbarModel", "state": { "layout": "IPY_MODEL_4f3e803da3064070871634c5898bbd72", "toolitems": [ [ "Home", "Reset original view", "home", "home" ], [ "Back", "Back to previous view", "arrow-left", "back" ], [ "Forward", "Forward to next view", "arrow-right", "forward" ], [ "Pan", "Pan axes with left mouse, zoom with right", "arrows", "pan" ], [ "Zoom", "Zoom to rectangle", "square-o", "zoom" ], [ "Download", "Download plot", "floppy-o", "save_figure" ] ] } }, "a51392384c4d416395fe81d4a47ce40d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "a651ec791920406598d71f7f19dcb55d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "a9511dc7d1334d04a551472c0f90fc51": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_f67737586a71484f91610195bdb6360c", "IPY_MODEL_e7df32839f9f4f8986ee3d4528f06029", "IPY_MODEL_40a95801357d425aa995051e52b36032", "IPY_MODEL_bf35e2074c90495ca589bc5e2165b34e" ], "layout": "IPY_MODEL_f2b85060c392408791d15b6141936a5d" } }, "aafc30f9475a4d69a76531a4ffad53ab": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "ad232fe369e7476797b5cb04a704b069": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "0.1", "0.15", "0.2", "0.25", "0.3", "0.35", "0.4", "0.45", "0.5" ], "description": "$\\Delta x$:", "index": 3, "layout": "IPY_MODEL_3d6b0182b95b4b6bad3f96e8bd37c954", "style": "IPY_MODEL_fbe50b21d0064ea5939d5e2a9618201a" } }, "ad5d033340554167896b2c2a9d7bc485": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "adac5e0052384ae7a3109c9f4c3b2a1e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b21547e7eb8047c8b63cde7934475c97": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b96cca908ba14223a9ad71e4295f51e7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "bb9abb3da6734bcd859b8bb825272f74": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "bcb3ab976482416bb0047ff858e269f0": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "MPLCanvasModel", "state": { "_cursor": "default", "_figure_label": "Figure 4", "_height": 400, "_width": 900, "layout": "IPY_MODEL_04f4f3b49f5d4fde94ad7ad04bb2c6f0", "toolbar": "IPY_MODEL_1241148e2369413d8797477a05878f8c", "toolbar_position": "left" } }, "bf35e2074c90495ca589bc5e2165b34e": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_de1c46dcf68943a7ad0f8dea2de0e8e3" } }, "c141c253da914e399911c2f66e5a44c1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c819214927fe498ab315730311202ed8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cef7a25f40ae41ec8b2a9b51070fccc8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cf73ebb3232341388e0588ad302ae841": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cfc83e008d1d48e69d0b475de70f8f96": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "d5625ab8531845d7abcb44785e63565a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "500", "1000", "1500", "2000", "2500", "3000", "3500", "4000", "4500", "5000", "5500", "6000", "6500", "7000", "7500", "8000", "8500", "9000", "9500", "10000", "10500", "11000", "11500", "12000", "12500", "13000", "13500", "14000", "14500", "15000", "15500", "16000", "16500", "17000", "17500", "18000", "18500", "19000", "19500", "20000", "20500", "21000", "21500", "22000", "22500", "23000", "23500", "24000", "24500", "25000", "25500", "26000", "26500", "27000", "27500", "28000", "28500", "29000", "29500", "30000", "30500", "31000", "31500", "32000", "32500", "33000", "33500", "34000", "34500", "35000", "35500", "36000", "36500", "37000", "37500", "38000", "38500", "39000", "39500", "40000", "40500", "41000", "41500", "42000", "42500", "43000", "43500", "44000", "44500", "45000", "45500", "46000", "46500", "47000", "47500", "48000", "48500", "49000", "49500", "50000" ], "description": "$Range$:", "index": 2, "layout": "IPY_MODEL_726f8c63060c40e29a4444d1a995bc53", "style": "IPY_MODEL_718aa115167349b8886122bc46b33fdb" } }, "d81b65e86c8a43319aa2a15f296a8ef5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d9ac400c490140dbbf79d5431fd3122a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "None", "On" ], "description": "$3 \\sigma$:", "index": 1, "layout": "IPY_MODEL_6b3504baf6b74122bc8eb432df91d183", "style": "IPY_MODEL_3938284d2dd741fa99120791d9347581" } }, "daed172d9eba4ba6a34dd95939627906": { "model_module": "jupyter-matplotlib", "model_module_version": "^0.7.3", "model_name": "MPLCanvasModel", "state": { "_cursor": "default", "_figure_label": "Figure 6", "_height": 400, "_width": 900, "layout": "IPY_MODEL_5852908881e0403780ff95bebc977b52", "toolbar": "IPY_MODEL_a4cfeeadffe94347b52be8fc658fd344", "toolbar_position": "left" } }, "dc39dad52969499a95ee007d69bfc4b9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatSliderModel", "state": { "description": "$\\Delta x$:", "layout": "IPY_MODEL_02275eb9149f4e37bb085db073cbb49e", "max": 0.99, "min": 0.15, "step": 0.01, "style": "IPY_MODEL_a651ec791920406598d71f7f19dcb55d", "value": 0.5 } }, "de1c46dcf68943a7ad0f8dea2de0e8e3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dfb69346a20d4508b6f33e77d637727b": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_ee053488cca74628990a2adff864f13f" } }, "e55a0cc3b8de4f529fe510c29cce6d5b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "BoundedFloatTextModel", "state": { "description": "$\\Delta x \\space min$:", "disabled": true, "layout": "IPY_MODEL_976b44a015ef48a9aea1120557ec7510", "step": null, "style": "IPY_MODEL_5df1063b72074ee58fee1c80c20502de", "value": 0.15 } }, "e7df32839f9f4f8986ee3d4528f06029": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatSliderModel", "state": { "description": "$L$:", "layout": "IPY_MODEL_557ea9ff276b46c895f5c6a855552d79", "max": 0.99, "min": 0.15, "step": 0.01, "style": "IPY_MODEL_3b9f68de1eaf4545967d4bb2bd2041ce", "value": 0.5 } }, "ecf71568f00249e2b987a186c4be17a1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "100", "200", "300", "400", "500", "600", "700", "800", "900", "1000" ], "description": "$n$:", "index": 2, "layout": "IPY_MODEL_5c825100dc024ceb8e5619a19660c2ea", "style": "IPY_MODEL_aafc30f9475a4d69a76531a4ffad53ab" } }, "ee053488cca74628990a2adff864f13f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ee9d86e6fb604a1e9acbe92533fdf737": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f2b85060c392408791d15b6141936a5d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f471d199e3ea4caa9ac34214a297693c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f560abe5e6f640ca9fcc6a82640626fe": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f67737586a71484f91610195bdb6360c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatSliderModel", "state": { "description": "$\\Delta x$:", "layout": "IPY_MODEL_3eda0ac850314977b3e412b1cdd3fe7b", "max": 0.99, "min": 0.15, "step": 0.01, "style": "IPY_MODEL_5ffe51590df44b529dd5595a735e5b80", "value": 0.25 } }, "f86b004a5dc8437bb37dd9e781885305": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "fb993ffb48dd457596bdc2832700815b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "0.1", "0.15", "0.2", "0.25", "0.3", "0.35", "0.4", "0.45", "0.5" ], "description": "$L$:", "index": 8, "layout": "IPY_MODEL_00a564aa4c0d4feda00461ac0e9f74f8", "style": "IPY_MODEL_98840447b93642fe87ca7e8dae901ddf" } }, "fbe50b21d0064ea5939d5e2a9618201a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }