{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 8 (Pine): Curve Fitting Solutions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "${\\large\\bf 1.}$ We linearize the equation $V(t)=V_0e^{\\Gamma t}$ by taking the logarithm: $\\ln V = \\ln V_0 + \\Gamma t$. Comparing with the equation for a straight line $Y = A + BX$, we see that\n", "$$\n", "\\begin{align}\n", "Y &= \\ln V \\;,& X &= t \\\\\n", "A &= \\ln V_0\\;,& B &= \\Gamma\n", "\\end{align}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\bf{(a)}$ & $\\bf{(c)}$ There are two parts to this problem: (1) writing the fitting function with $\\chi^2$ weighting and (2) transforming the data to linear form so that it can be fit to an exponential.\n", "\n", "The first part is done with the function ``LineFitWt(x, y, sig)``. There is also an ancillary function ``rechisq(x, y, dy, slope, yint)`` that calcuates the reduced chi-squared $\\chi_r^2$ for a particular set of data & fitting parameters.\n", "\n", "The second part involves transforming the data and its uncertainties. This is done following the procedure described in *Introduction to Python for Science (by Pine)* in $\\S 8.1.1$." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "def LineFitWt(x, y, sig):\n", " \"\"\" \n", " Returns slope and y-intercept of weighted linear fit to\n", " (x,y) data set.\n", " Inputs: x and y data array and uncertainty array (unc)\n", " for y data set.\n", " Outputs: slope and y-intercept of best fit to data and\n", " uncertainties of slope & y-intercept.\n", " \"\"\"\n", " sig2 = sig ** 2\n", " norm = (1.0 / sig2).sum()\n", " xhat = (x / sig2).sum() / norm\n", " yhat = (y / sig2).sum() / norm\n", " slope = ((x - xhat) * y / sig2).sum() / ((x - xhat) * x / sig2).sum()\n", " yint = yhat - slope * xhat\n", " sig2_slope = 1.0 / ((x - xhat) * x / sig2).sum()\n", " sig2_yint = sig2_slope * (x * x / sig2).sum() / norm\n", " return slope, yint, np.sqrt(sig2_slope), np.sqrt(sig2_yint)\n", "\n", "\n", "def redchisq(x, y, dy, slope, yint):\n", " chisq = (((y - yint - slope * x) / dy) ** 2).sum()\n", " return chisq / float(x.size - 2)\n", "\n", "\n", "# Read data from data file\n", "t, V, dV = np.loadtxt(\"data/RLcircuit.txt\", skiprows=2, unpack=True)\n", "\n", "########## Code to tranform & fit data starts here ##########\n", "\n", "# Transform data and parameters from ln V = ln V0 - Gamma t\n", "# to linear form: Y = A + B*X, where Y = ln V, X = t, dY = dV/V\n", "X = t # transform t data for fitting (not needed as X=t)\n", "Y = np.log(V) # transform N data for fitting\n", "dY = dV / V # transform uncertainties for fitting\n", "\n", "# Fit transformed data X, Y, dY to obtain fitting parameters\n", "# B & A. Also returns uncertainties dA & dB in B & A\n", "B, A, dB, dA = LineFitWt(X, Y, dY)\n", "# Return reduced chi-squared\n", "redchisqr = redchisq(X, Y, dY, B, A)\n", "\n", "# Determine fitting parameters for original exponential function\n", "# N = N0 exp(-Gamma t) ...\n", "V0 = np.exp(A)\n", "Gamma = -B\n", "# ... and their uncertainties\n", "dV0 = V0 * dA\n", "dGamma = dB\n", "\n", "###### Code to plot transformed data and fit starts here ######\n", "\n", "# Create line corresponding to fit using fitting parameters\n", "# Only two points are needed to specify a straight line\n", "Xext = 0.05 * (X.max() - X.min())\n", "Xfit = np.array([X.min() - Xext, X.max() + Xext]) # smallest & largest X points\n", "Yfit = B * Xfit + A # generates Y from X data &\n", "# fitting function\n", "plt.errorbar(X, Y, dY, fmt=\"b^\")\n", "plt.plot(Xfit, Yfit, \"c-\", zorder=-1)\n", "plt.title(r\"$\\mathrm{Fit\\ to:}\\ \\ln V = \\ln V_0-\\Gamma t$ or $Y = A + BX$\")\n", "plt.xlabel(\"time (ns)\")\n", "plt.ylabel(\"ln voltage (volts)\")\n", "plt.xlim(-50, 550)\n", "\n", "plt.text(210, 1.5, u\"A = ln V0 = {0:0.4f} \\xb1 {1:0.4f}\".format(A, dA))\n", "plt.text(210, 1.1, u\"B = -Gamma = {0:0.4f} \\xb1 {1:0.4f} /ns\".format(B, dB))\n", "plt.text(210, 0.7, \"$\\chi_r^2$ = {0:0.3f}\".format(redchisqr))\n", "plt.text(210, 0.3, u\"V0 = {0:0.2f} \\xb1 {1:0.2f} V\".format(V0, dV0))\n", "plt.text(210, -0.1, u\"Gamma = {0:0.4f} \\xb1 {1:0.4f} /ns\".format(Gamma, dGamma))\n", "\n", "plt.show()\n", "plt.savefig(\"RLcircuit.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\bf{(b)}$ The value of $\\chi_r^2$ returned by the fitting routine is $0.885$, which is near 1, so it seem that the error bars are about right and an exponential is a good model for the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "${\\bf (d)}$ Starting from $\\Gamma = R/L$ and assuming negligible uncertainty in $R$, we have\n", "$$\\begin{align}\n", " L &= \\frac{R}{\\Gamma} = \\frac{10^4~\\Omega}{(0.0121~\\text{ns}^{-1})(10^9~\\text{ns/s})} = 8.24 \\times 10^{-4}~\\text{henry}\n", " = 824~\\mu\\text{H}\\\\\n", " \\delta L &= \\left|\\frac{\\partial L}{\\partial \\Gamma}\\right|\\delta\\Gamma = \\frac{R}{\\Gamma^2}\\delta\\Gamma\n", " = L \\frac{\\delta\\Gamma}{\\Gamma} = 1.1 \\times 10^{-5}~\\text{henry} = 11~\\mu\\text{H}\n", "\\end{align}$$\n", "Here are the calculations:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L = 8.24e-04 henry\n", "dL = 1.1e-05 henry\n" ] } ], "source": [ "R = 10.0e3\n", "Gamma *= 1.0e9 # convert Gamma from 1/ns to 1/s\n", "L = R / Gamma\n", "print(\"L = {0:0.2e} henry\".format(L))\n", "dGamma *= 1.0e9 # convert dGamma from 1/ns to 1/s\n", "dL = L * (dGamma / Gamma)\n", "print(\"dL = {0:0.1e} henry\".format(dL))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "${\\large\\bf 2.}$ Here we want to use a linear fitting routine ($Y = A + BX$) to fit a power law model\n", "$$m = Kn^p\\;,$$\n", "where $K$ and $p$ are fitting parameters. We transform the equation by taking the logarithm of both sides, which gives\n", "$$\\ln m = \\ln K + p\\ln n\\;.$$\n", "Thus, identifying the transformed variables as\n", "$$y=\\ln m\\;,\\quad x=\\ln n\\;,$$\n", "and the $y$-intercept and slope and are given by $A=\\ln K$ and $B=p$, respectively.\n", "\n", "The uncertainties in $y$ are related to those in $m$ by\n", "$$\\delta y = \\left| \\frac{\\partial y}{\\partial m} \\right|\\delta m = \\frac{\\delta m}{m}$$\n", "\n", "The uncertainties in the fitting paramters follow from $K=e^A$ and $p=B$:\n", "$$ \\delta K = e^A \\delta A\\;,\\quad \\delta p = \\delta B\\;.$$\n", "\n", "These transformations are implemented in the code below. We use the same fitting routine used in Problem 1 above." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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RlRUFN99953b0UwAcGsLYQLwFJDiq4GI3Cci8SISv2/fPv8lMyYfiesd53OwncxUq1aNzz77jPnz53Py5EnatGlD37592b9/f+6HNAWG369UFpGbgE6q+oCIxAJPqOpNmc1jVyobc/GOHz/Oiy++yLhx4yhbtixjx45lyL4hPof8zGy3lAkcgXKlckugs4hsAz4BrhORj1zIYUyhULJkSUaPHs3q1av529/+Ru/evX1eCe1ruikc/F4QVHWoqtZQ1TpAd+BbVb3b3zmMKWwaNmzI0qVLeeedd9yOYvIpuw7BmEIkKCiI++67z+0YJp8KdnPlqhoHxLmZwRhjjMO2EIwx53nvvfdISfF5AqApwKwgGFMI+boSuuipovTv35/WrVuzceNGP6cybrOCYEwh5OtK6FMvn+L9998nMTGRqKgonnnmGY4fP+52XOMnVhCMMeeICH369CEpKYkePXrwyiuvEBERwYIFC9yOZvzACoIxhZivK6ErVarE9OnTWbx4McWKFaNjx450796dXbt2+T+k8RsrCMYYn2JjY1m7di0jRoxgzpw5hIaG8tZbb9lB5wLKCoIxJlPFixfn+eefZ926dTRt2pQHHniAFi1asHbtWrejmVxmBcEYkyV/+9vfWLRoER9++CG//PILTZs25cknn+TYsWNuRzO5xAqCMSbLRIS7776bpKQk+vTpw9ixYwkLC2PePO/jXNl4C4HFCoIxJtvKly/Pu+++y9KlSylTpgw333wzt912G3/88Yfb0UwO+L3764th3V8bk38lJyczbtw4XnzxRYoWLcrIkSMZlTzKutd2WaB0f22MKUCKFSvG0KFD2bhxIy1atOCRRx6x7rUDlBUEY0yuqFu3Ll999RWffPKJ21HMRbKCYIzJNSLCHXfc4XYMc5GsIBhjjAGsIBhj/GzcuHGcOXPG7RjGCysIxphc56t77WKni/HEE08QHR3Njz/+6OdU5kKsIBhjcp2v7rVPvnSS//znP/z55580b96cQYMGcejQIbfjGg+7DsEY43eHDx9m2LBhTJ48mcqVKzNx4kS6deuGiLgdrcCw6xCMMQHh0ksvZeLEiaxcuZJq1apxxx130KlTJ3799Ve3oxVqVhCMMa5p2rQpP/74IxMmTOD7778nPDyc0aNHc/r0abejFUpWEIwxrgoODuaRRx4hMTGRDh06MHToUBo3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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "def LineFitWt(x, y, sig):\n", " \"\"\" \n", " Returns slope and y-intercept of weighted linear fit to\n", " (x,y) data set.\n", " Inputs: x and y data array and uncertainty array (unc)\n", " for y data set.\n", " Outputs: slope and y-intercept of best fit to data and\n", " uncertainties of slope & y-intercept.\n", " \"\"\"\n", " sig2 = sig ** 2\n", " norm = (1.0 / sig2).sum()\n", " xhat = (x / sig2).sum() / norm\n", " yhat = (y / sig2).sum() / norm\n", " slope = ((x - xhat) * y / sig2).sum() / ((x - xhat) * x / sig2).sum()\n", " yint = yhat - slope * xhat\n", " sig2_slope = 1.0 / ((x - xhat) * x / sig2).sum()\n", " sig2_yint = sig2_slope * (x * x / sig2).sum() / norm\n", " return slope, yint, np.sqrt(sig2_slope), np.sqrt(sig2_yint)\n", "\n", "\n", "def redchisq(x, y, dy, slope, yint):\n", " chisq = (((y - yint - slope * x) / dy) ** 2).sum()\n", " return chisq / float(x.size - 2)\n", "\n", "\n", "# Read data from data file\n", "n, m, dm = np.loadtxt(\"data/Mass.txt\", skiprows=4, unpack=True)\n", "\n", "########## Code to tranform & fit data starts here ##########\n", "\n", "# Transform data and parameters to linear form: Y = A + B*X\n", "X = np.log(m) # transform t data for fitting\n", "Y = np.log(n) # transform N data for fitting\n", "dY = dm / m # transform uncertainties for fitting\n", "\n", "# Fit transformed data X, Y, dY to obtain fitting parameters\n", "# B & A. Also returns uncertainties dA & dB in B & A\n", "B, A, dB, dA = LineFitWt(X, Y, dY)\n", "# Return reduced chi-squared\n", "redchisqr = redchisq(X, Y, dY, B, A)\n", "\n", "# Determine fitting parameters for original exponential function\n", "# N = N0 exp(-Gamma t) ...\n", "p = B\n", "K = np.exp(A)\n", "# ... and their uncertainties\n", "dp = dB\n", "dK = np.exp(A) * dA\n", "\n", "###### Code to plot transformed data and fit starts here ######\n", "\n", "# Create line corresponding to fit using fitting parameters\n", "# Only two points are needed to specify a straight line\n", "Xext = 0.05 * (X.max() - X.min())\n", "Xfit = np.array([X.min() - Xext, X.max() + Xext])\n", "Yfit = B * Xfit + A # generates Y from X data &\n", "# fitting function\n", "plt.errorbar(X, Y, dY, fmt=\"gs\")\n", "plt.plot(Xfit, Yfit, \"k-\", zorder=-1)\n", "plt.title(r\"Fit to $\\ln m=\\ln K + p\\, \\ln n$ or $Y=A+BX$\")\n", "plt.xlabel(r\"$\\ln m$\", fontsize=16)\n", "plt.ylabel(r\"$\\ln n$\", fontsize=16)\n", "\n", "plt.text(10, 7.6, u\"A = ln K = {0:0.1f} \\xb1 {1:0.1f}\".format(A, dA))\n", "plt.text(10, 7.3, u\"B = p = {0:0.2f} \\xb1 {1:0.2f}\".format(B, dB))\n", "plt.text(10, 7.0, u\"K = {0:0.1e} \\xb1 {1:0.1e}\".format(K, dK))\n", "plt.text(10, 6.7, \"$\\chi_r^2$ = {0:0.3f}\".format(redchisqr))\n", "\n", "plt.show()\n", "plt.savefig(\"Mass.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "${\\large\\bf 3.}$ (a)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# define function to calculate reduced chi-squared\n", "def RedChiSqr(func, x, y, dy, params):\n", " resids = y - func(x, *params)\n", " chisq = ((resids / dy) ** 2).sum()\n", " return chisq / float(x.size - params.size)\n", "\n", "\n", "# define fitting function\n", "def oscDecay(t, A, B, C, tau, omega):\n", " y = A * (1.0 + B * np.cos(omega * t)) * np.exp(-0.5 * t * t / (tau * tau)) + C\n", " return y\n", "\n", "\n", "# read in spectrum from data file\n", "t, decay, unc = np.loadtxt(\"data/oscDecayData.txt\", skiprows=4, unpack=True)\n", "\n", "# initial values for fitting parameters (guesses)\n", "A0 = 15.0\n", "B0 = 0.6\n", "C0 = 1.2 * A0\n", "tau0 = 16.0\n", "omega0 = 2.0 * np.pi / 8.0 # period of oscillations in data is about 8\n", "\n", "# plot data and fit with estimated fitting parameters\n", "\n", "tFit = np.linspace(0.0, 49.5, 250)\n", "plt.plot(tFit, oscDecay(tFit, A0, B0, C0, tau0, omega0), \"b-\")\n", "plt.errorbar(t, decay, yerr=unc, fmt=\"or\", ecolor=\"black\", ms=4)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(b)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec # for unequal plot boxes\n", "import scipy.optimize\n", "\n", "# define function to calculate reduced chi-squared\n", "def RedChiSqr(func, x, y, dy, params):\n", " resids = y - func(x, *params)\n", " chisq = ((resids / dy) ** 2).sum()\n", " return chisq / float(x.size - params.size)\n", "\n", "\n", "# define fitting function\n", "def oscDecay(t, A, B, C, tau, omega):\n", " y = A * (1.0 + B * np.cos(omega * t)) * np.exp(-0.5 * t * t / (tau * tau)) + C\n", " return y\n", "\n", "\n", "# read in spectrum from data file\n", "t, decay, unc = np.loadtxt(\"data/oscDecayData.txt\", skiprows=4, unpack=True)\n", "\n", "# initial values for fitting parameters (guesses)\n", "A0 = 15.0\n", "B0 = 0.6\n", "C0 = 1.2 * A0\n", "tau0 = 16.0\n", "omega0 = 2.0 * np.pi / 8.0\n", "\n", "# fit data using SciPy's Levenberg-Marquart method\n", "nlfit, nlpcov = scipy.optimize.curve_fit(\n", " oscDecay, t, decay, p0=[A0, B0, C0, tau0, omega0], sigma=unc\n", ")\n", "\n", "# calculate reduced chi-squared\n", "rchi = RedChiSqr(oscDecay, t, decay, unc, nlfit)\n", "\n", "# create fitting function from fitted parameters\n", "A, B, C, tau, omega = nlfit\n", "t_fit = np.linspace(0.0, 50.0, 512)\n", "d_fit = oscDecay(t_fit, A, B, C, tau, omega)\n", "\n", "# Create figure window to plot data\n", "fig = plt.figure(1, figsize=(8, 8)) # extra length for residuals\n", "gs = gridspec.GridSpec(2, 1, height_ratios=[6, 2])\n", "\n", "# Top plot: data and fit\n", "ax1 = fig.add_subplot(gs[0])\n", "ax1.plot(t_fit, d_fit)\n", "ax1.errorbar(t, decay, yerr=unc, fmt=\"or\", ecolor=\"black\", ms=4)\n", "ax1.set_xlabel(\"time (ms)\")\n", "ax1.set_ylabel(\"decay (arb units)\")\n", "ax1.text(\n", " 0.55,\n", " 0.8,\n", " \"A = {0:0.1f}\\nB = {1:0.3f}\\nC = {2:0.1f}\".format(A, B, C),\n", " transform=ax1.transAxes,\n", ")\n", "ax1.text(\n", " 0.75,\n", " 0.8,\n", " \"$\\\\tau$ = {0:0.1f}\\n$\\omega$ = {1:0.3f}\\n$\\chi^2$ = {2:0.3f}\".format(\n", " tau, omega, rchi\n", " ),\n", " transform=ax1.transAxes,\n", ")\n", "ax1.set_title(\"$d(t) = A (1+B\\,\\cos\\,\\omega t) e^{-t^2/2\\\\tau^2} + C$\")\n", "\n", "# Bottom plot: residuals\n", "resids = decay - oscDecay(t, A, B, C, tau, omega)\n", "ax2 = fig.add_subplot(gs[1])\n", "ax2.axhline(color=\"gray\")\n", "ax2.errorbar(t, resids, yerr=unc, ecolor=\"black\", fmt=\"ro\", ms=4)\n", "ax2.set_xlabel(\"time (ms)\")\n", "ax2.set_ylabel(\"residuals\")\n", "ax2.set_ylim(-5, 5)\n", "yticks = (-5, 0, 5)\n", "ax2.set_yticks(yticks)\n", "\n", "plt.savefig(\"FitOscDecay.pdf\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(c)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "data": { "image/png": "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GTOYNm0aL730Env27OHgwYPUqlWLJ598slxej0hF8lvids79BfgLgLfGfbdz7mozexq4FnjS+7PoaXxEpMoaO3Ysw4cP5z//+U/Btr59+/LTTz/Ru3fvo44tjxr3Bx98UPD722+/TUZGhpK2BK1A9MB4EjjbzFYAZ3ufi0g1Mnr0aIYMGXLUtksuuYQPP/ywTOXOnj2buLg4Pv74Y2666aYSZwo74qGHHmL8+PEnfX515stKX6Ud889//pPk5GQ6duzIsGHD2L9/f8G+klYZq878PhysPPhjOFh1o6ZyESlvmzZtYtOmTXTp0oXdu3fTtWtXPv/8c5KSknw6ZsOGDZx++uksWbKEyMhILrvsMgYOHMh1110HwLPPPktGRgY5OTl88cUXAXqVgRGw4WAiIhJ448ePP25M+ssvv8xtt91WpnJ9WemrtGMOHz7Mvn37OHz4MLm5uTRr1gwofZWx6kxTnoqIVHEPPPAAo0ePPmpb69at+eSTT4479mQ7A/qy0texxzRv3py7776b+Ph4IiMjOeeccwrG2Z/IKmPVjRK3iEgVtmDBAvLz8+nYsSNr1qxh4sSJ3HzzzRw6dOi4Hvxwcp0BfVnpq6hjdu7cybhx41i1ahV169bl0ksv5f3336du3bo+rzJWHampXEQCIjQ0lLS0NDp16kSXLl34+eefy1zmgQMHuPzyy2nTpg09evRg9erVRR43Z84cUlJSaNOmDbfddhtH+vo8++yzJCUlkZqaSv/+/VmzZg0Aa9asoWvXrqSlpZGcnMwrr7xS5lgryvz58+natSsA3333HStWrAA8q4V16tTpuON79+5dMId44cf3339fZPm+rPRV3DHff/89rVq1omHDhoSHh3PxxRfz888/F6wylpCQwBVXXMEPP/zA1VdfXda3oupwzlX6R9euXZ2UTd++fV3fvn0DHYZIgejo6ILfv/76a9enT58yl/niiy+6m266yTnn3OjRo91ll11W5HHdunVzP//8s8vPz3fnnXeemzhxonPOuR9++MHt3bvXOefcSy+9VHD+gQMH3P79+51zzu3evdu1bNnSbdiwoczxVoQ333zTDRkyxB0+fNgNGDDA3XDDDS43N9clJSW5OXPmlKns/Px8d80117jbb7/9pI755ZdfXFJSktu7d6/Lz893w4cPd//617+OOmby5Mnu/PPPL1OcwQjI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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# initial values for fitting parameters (guesses)\n", "A0 = 15.0\n", "B0 = 0.6\n", "C0 = 1.2 * A0\n", "tau0 = 16.0\n", "omega0 = 3.0 * 0.781\n", "\n", "# fit data using SciPy's Levenberg-Marquart method\n", "nlfit, nlpcov = scipy.optimize.curve_fit(\n", " oscDecay, t, decay, p0=[A0, B0, C0, tau0, omega0], sigma=unc\n", ")\n", "\n", "# calculate reduced chi-squared\n", "rchi = RedChiSqr(oscDecay, t, decay, unc, nlfit)\n", "\n", "# create fitting function from fitted parameters\n", "A, B, C, tau, omega = nlfit\n", "t_fit = np.linspace(0.0, 50.0, 512)\n", "d_fit = oscDecay(t_fit, A, B, C, tau, omega)\n", "\n", "# Create figure window to plot data\n", "fig = plt.figure(1, figsize=(8, 6))\n", "\n", "# Top plot: data and fit\n", "ax1 = fig.add_subplot(111)\n", "ax1.plot(t_fit, d_fit)\n", "ax1.errorbar(t, decay, yerr=unc, fmt=\"or\", ecolor=\"black\", ms=4)\n", "ax1.set_xlabel(\"time (ms)\")\n", "ax1.set_ylabel(\"decay (arb units)\")\n", "ax1.text(\n", " 0.55,\n", " 0.8,\n", " \"A = {0:0.1f}\\nB = {1:0.3f}\\nC = {2:0.1f}\".format(A, B, C),\n", " transform=ax1.transAxes,\n", ")\n", "ax1.text(\n", " 0.75,\n", " 0.8,\n", " \"$\\\\tau$ = {0:0.1f}\\n$\\omega$ = {1:0.3f}\\n$\\chi^2$ = {2:0.3f}\".format(\n", " tau, omega, rchi\n", " ),\n", " transform=ax1.transAxes,\n", ")\n", "ax1.set_title(\"$d(t) = A (1+B\\,\\cos\\,\\omega t) e^{-t^2/2\\\\tau^2} + C$\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(d) The program finds the optimal values for all the fitting paramters again" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# initial values for fitting parameters (guesses)\n", "A0 = 15.0\n", "B0 = 0.6\n", "C0 = 1.2 * A0\n", "tau0 = 16.0\n", "omega0 = 2.0 * np.pi / 8.0\n", "\n", "# fit data using SciPy's Levenberg-Marquardt method\n", "nlfit, nlpcov = scipy.optimize.curve_fit(\n", " oscDecay, t, decay, p0=[A0, B0, C0, tau0, omega0], sigma=unc\n", ")\n", "\n", "# unpack optimal values of fitting parameters from nlfit\n", "A, B, C, tau, omega = nlfit\n", "\n", "# calculate reduced chi square for different values around the optimal\n", "omegaArray = np.linspace(0.05, 2.95, 256)\n", "redchiArray = np.zeros(omegaArray.size)\n", "for i in range(omegaArray.size):\n", " nlfit = np.array([A, B, C, tau, omegaArray[i]])\n", " redchiArray[i] = RedChiSqr(oscDecay, t, decay, unc, nlfit)\n", "\n", "plt.figure(figsize=(8, 4))\n", "plt.plot(omegaArray, redchiArray)\n", "plt.xlabel(\"$\\omega$\")\n", "plt.ylabel(\"$\\chi_r^2$\")\n", "\n", "plt.savefig(\"VaryChiSq.pdf\")\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "cell_metadata_filter": "all", "formats": "ipynb,py:percent", "notebook_metadata_filter": "all,-language_info,-toc,-latex_envs" }, "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": 2 }