{ "cells": [ { "cell_type": "markdown", "id": "64bb30da", "metadata": {}, "source": [ "# Interactive" ] }, { "cell_type": "code", "execution_count": null, "id": "85fc6b44", "metadata": {}, "outputs": [], "source": [ "from smpl_animation import animation\n", "from smpl import plot\n", "import matplotlib.pyplot as plt\n", "import scipy\n", "import numpy as np\n", "import tqdm\n", "import uncertainties as unc\n", "from uncertainties import unumpy\n", "from ipywidgets import widgets" ] }, { "cell_type": "code", "execution_count": null, "id": "76558a78", "metadata": {}, "outputs": [], "source": [ "def fta(a,u=4.0):\n", " plot.function(lambda x : u*x+a,xmin=-5,xmax=5,init=True,tight=False)\n", "print(\"Double click play for speedup.\")\n", "animation.interactive(fta,\n", " widgets.Play( value=0, min=0, max=100, step=1, interval=500, description=\"Press play\", disabled=False),\n", " widgets.FloatSlider(value=1,min=0,max=1,step=0.1,description=\"u\"),\n", " prerender=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "fdfa2b69", "metadata": {}, "outputs": [], "source": [ "def fta(n = 1.0,u=4.0):\n", " plot.function(lambda x : np.exp(n*np.log(x)-x)/u,xmin = 0.1,xmax=100,tight=False,init=False)\n", " \n", "animation.interactive(fta,widgets.IntSlider(value=1,min=1,max=10,description=\"n\"),widgets.IntSlider(value=1,min=1,max=10,description=\"u\"),prerender=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "7669ce4c", "metadata": {}, "outputs": [], "source": [ "def fta(u=4.0):\n", " animation.clear()\n", " for a in np.linspace(0,10,100):\n", " plot.function(lambda x : u*x+a,xmin=-5,xmax=5,init=True,tight=False)\n", " animation.frame()\n", "\n", " ani = animation.animate(interval=10,blit=True)\n", " display(ani.widget_gif())\n", "animation.interactive(fta,widgets.FloatSlider(value=1,min=0,max=1,step=0.1,description=\"u\"),prerender=True,auto_png=False)" ] }, { "cell_type": "code", "execution_count": null, "id": "59c122db", "metadata": {}, "outputs": [], "source": [ "#%matplotlib notebook\n", "#plt.ioff()\n", "#import ipywidgets\n", "def fta(n = 1.0):\n", " plot.function(lambda x : np.exp(n*np.log(x)-x),xmin = 0.1,xmax=100,tight=False,init=False)\n", " plot.function(lambda x : np.exp(n*np.log(n)-n-(x-n)**2/2/n),xmin = 0.1,xmax=100,tight=False,init=False)\n", " fac = np.math.factorial(n)\n", " sti = np.sqrt(2* np.pi* n) * n**n *np.exp(-n) \n", " #print(\"FAKULTÄT(\"+str(n)+\") = \" + str(fac))\n", " #print(\"STIRLING(\"+str(n)+\") = \" + str(sti))\n", " #print(\"REL-DIFF(\" + str(n)+\") = \"+ str((sti-fac)/fac*100) + \"%\")\n", " \n", "animation.interactive(fta, widgets.IntSlider(min=1, max=130, step=1, value=1,description=\"n\")) " ] }, { "cell_type": "code", "execution_count": null, "id": "f10bbf12", "metadata": {}, "outputs": [], "source": [ "# Approximate factorial by gamma\n", "def fac(n):\n", " return scipy.special.gamma(n+1)\n", "\n", "plot.function(lambda n : (fac(n)-np.sqrt(2* np.pi* n) * n**n *np.exp(-n))/fac(n) *100 ,xmin = 1,xmax=140,xlabel=\"N\", ylabel=\"Rel. diff. between factorial und stirling [%]\",label=\"\",logy=True,tight=False,init=True)\n", " " ] }, { "cell_type": "code", "execution_count": null, "id": "db9d23ad", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.15" } }, "nbformat": 4, "nbformat_minor": 5 }