{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Applying a relation\n", "=====================" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.006861\n", " Iterations: 167\n", " Function evaluations: 291\n", "Fit result: [-0.68455253 10.11295912 20.15560727 1.00015156]\n", "------------------- Parameter summary --------------------\n", " A = 1.01541, free: T, restricted: F, related: T\n", " mu = 10.113, free: T, restricted: F, related: F\n", " sig = 20.1556, free: T, restricted: F, related: F\n", " off = 1.00015, free: T, restricted: F, related: F\n", " lin = 0, free: F, restricted: F, related: F\n", "----------------------------------------------------------\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from __future__ import print_function, division\n", "import numpy as np\n", "import matplotlib.pylab as plt\n", "from PyAstronomy import funcFit2 as fuf2\n", "import scipy.optimize as sco\n", "\n", "np.random.seed(1234)\n", "\n", "# Creating a Gaussian with some noise\n", "# Choose some parameters...\n", "gPar = {\"A\":1.0, \"sig\":10.0, \"mu\":10.0, \"off\":1.0, \"lin\":0.0}\n", "# Calculate profile\n", "x = np.arange(100) - 50.0\n", "y = gPar[\"off\"] + gPar[\"A\"] / np.sqrt(2*np.pi*gPar[\"sig\"]**2) \\\n", " * np.exp(-(x-gPar[\"mu\"])**2/(2*gPar[\"sig\"]**2))\n", "# Add some noise...\n", "y += np.random.normal(0.0, 0.002, x.size)\n", "# ...and save the error bars\n", "yerr = np.ones_like(x)*0.002\n", "\n", "# Create a model object\n", "gf = fuf2.GaussFit()\n", "\n", "# Set guess values for the parameters\n", "gf.assignValues({\"A\":3, \"sig\":3.77, \"off\":0.96, \"mu\":9.5})\n", "\n", "# 'Thaw' those (the order is irrelevant)\n", "gf.thaw([\"mu\", \"sig\", \"off\", \"A\"])\n", "\n", "def relat(sig, off):\n", " \"\"\" Combine values of sig and off \"\"\"\n", " return 0.1*sig - off\n", "\n", "# 'A' is a function of 'sig' and 'off' (A=f(sig,off)).\n", "# First parameter is the dependent variable, second is a list of\n", "# the independent variables, and the third one is theactual\n", "# functional relation.\n", "gf.relate(\"A\", [\"sig\", \"off\"], func=relat)\n", "\n", "fr = sco.fmin(gf.chisqr, gf.freeParamVals(), args=(x,y))\n", "print(\"Fit result: \", fr)\n", "# Set the parameter values to best-fit\n", "gf.setFreeParamVals(fr)\n", "\n", "gf.parameterSummary()\n", "\n", "# Let us see what we have done...\n", "plt.plot(x, y, 'bp')\n", "plt.plot(x, gf.evaluate(x), 'r--')\n", "plt.show()" ] } ], "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.6.10" } }, "nbformat": 4, "nbformat_minor": 4 }