diff --git a/Untitled3.ipynb b/Untitled3.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..57c5e3463931f5a96a2af9e420f6d61043a52828 --- /dev/null +++ b/Untitled3.ipynb @@ -0,0 +1,85 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "def gaussian(x, a, b, c):\n", + " return a * np.exp(-b * (x-c)**2)\n", + "\n", + "def noisy_gaussian():\n", + " # gaussian array y in interval -5 <= x <= 5\n", + " nx = 100\n", + " x = np.linspace(-5.0, 5.0, nx)\n", + " y = gaussian(x, a=2.0, b=0.5, c=1.5)\n", + " noise = np.random.normal(0.0, 0.2, nx)\n", + " y += noise\n", + " return x, y\n", + "\n", + "def fit(x, y, n):\n", + " pfit = np.polyfit(x, y, n)\n", + " yfit = np.polyval(pfit, x)\n", + " return yfit\n", + "\n", + "def plot(x, y, yfit):\n", + " plt.plot(x, y, \"r\", label=\"Data\")\n", + " plt.plot(x, yfit, \"b\", label=\"Fit\")\n", + " plt.legend()\n", + " plt.ylim(-0.5, 2.5)\n", + " plt.show()\n", + "\n", + "x, y = noisy_gaussian()\n", + "yfit = fit(x, y, n=5) # fit a 5th order polynomial to it\n", + "plot(x, y, yfit)" + ] + }, + { + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}