{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Restrictions via algorithm (fmin_l_bfgs_b)\n", "=================================================" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Free parameter names and their order: ['A', 'mu', 'sig', 'off']\n", "------------------- Parameter summary --------------------\n", " A = -2, free: T, restricted: F, related: F\n", " mu = 9.88661, free: T, restricted: F, related: F\n", " sig = -6.14987, free: T, restricted: F, related: F\n", " off = 0.970353, free: T, restricted: F, related: F\n", " lin = 0, free: F, restricted: F, related: F\n", "----------------------------------------------------------\n" ] }, { "data": { "image/png": "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P/sZ7LJLbV7ETOVlC7ynnFKeDF9U8aXSxa3iyvCrx6BBg7S+vj7uZFSl7bd3AT6Yg2nWDLp2hRUr4ktXFN56C046yf1dvx7atYMBA+C++6B//7hTZ6rV2rXQty+sWdMwrlMnV0zzpS9tO37RouTeGYrITFUdlGla4nL0SVap+oc4iofCVKIbky5bzrh3byv+C7JAXyFRBM9K1D/EVTxklejGlI8F+gqIKnhWov4hrpx10ivRjYmTBfoiFJo7jyp4VqICJ66cdZIr0U3xar2VWbWwQF+gYnLntVQsEVfOupYe+jKVkYRWZtXCAn2Bismd11KxhOWsTbWwCvroWKAvUDG581oKnrWQs7bb+aahlu6Eq50F+gIVkzuvheBZK+x2vumopTvhamcPTBUo2wMaSX4Qo5ok+aEx05ida4XJ9cBUjl5HTCap3LmJx+67wzPPNB5nt/PJZOdadKzoxtQUu503pnDJytHPmAF/+MO24y+91PWU9fzzcMcd206/8krYcUd44gm4555tp193nSsbeOgheOCBbaf//veuc5b774dHHtl2+m23udrXO++Ep59uPK15czc9Nd+//914eocO8LvfueEbb4T//Kfx9O7d4dpr3fD48TBnTuPpO+0E48a54SuugAULGk/fdVfXkxi4v0uXNp7+xS/CBRe44QsugFWrGk8fNAh+9CM3fPbZsGFD4+kHHdQQhceMcRUUIu7TrBl87Wtw4omuR7OxY93+aNECWrWC1q1h//3dOjZtgmefZUTvrvyq2fbMpzubaPnfXViNFdsmQsuXu2N31Sr4+GNYt841w/nhD93x8vDD8Nxz7jjassV9tm6Fm25yy995p5ueqiQDd4yl4sUtt8D06Y1/s2NHuOEGN3zDDa7JT1CPHnD11W74mmvgzTcbT+/Tx1UmAfzyl67MKejzn4eLL3bDY8fC++/Drbe67YlYsgL9ihXbBlKAc85xf5cuzTw91X5r8eLM0z/91P1dtCjz9NQbD95+O/P01IE1b96201u1ahieM2fb6V26NAy/+uq203faqWF49mz45z8bT99tt4bhmTNh1qzG09eubRh+8cVtazWDTVr+/e9tLwStWzcMP/ts4/Wlp//xx13ATp1sW7e66SeeCBs3upNu0yb3Sfn5z12g//BDOOIIOgD/vZTtsIO7eI0e7f5Hz8+AffZxF11TM7Zs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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from __future__ import print_function, division\n", "from numpy import arange, sqrt, exp, pi, random, ones_like\n", "import matplotlib.pylab as plt\n", "from PyAstronomy import funcFit2 as fuf2\n", "import scipy.optimize as sco\n", "\n", "random.seed(1234)\n", "\n", "# Creating a Gaussian with some noise\n", "# Choose some parameters...\n", "gPar = {\"A\":-5.0, \"sig\":10.0, \"mu\":10.0, \"off\":1.0, \"lin\":0.0}\n", "# Calculate profile\n", "x = arange(100) - 50.0\n", "y = gPar[\"off\"] + gPar[\"A\"] / sqrt(2*pi*gPar[\"sig\"]**2) \\\n", " * exp(-(x-gPar[\"mu\"])**2/(2*gPar[\"sig\"]**2))\n", "# Add some noise...\n", "y += random.normal(0.0, 0.01, x.size)\n", "# ...and save the error bars\n", "yerr = ones_like(x)*0.01\n", "# Let us see what we have done...\n", "plt.plot(x, y, 'bp')\n", "\n", "# Create a model object\n", "gf = fuf2.GaussFit()\n", "\n", "# Set guess values for the parameters\n", "gf.assignValues({\"A\":-3, \"sig\":10.77, \"off\":0.96, \"mu\":10.5})\n", "\n", "# 'Thaw' those (the order is irrelevant)\n", "gf.thaw([\"mu\", \"sig\", \"off\", \"A\"])\n", "\n", "# We need the order to get the order of bounds right\n", "# This is not necessarily the order in which they are thawed!\n", "print(\"Free parameter names and their order: \", gf.freeParamNames())\n", "\n", "# Use fmin_l_bfgs_b with area restricted to the (-2,0) interval\n", "fr = sco.fmin_l_bfgs_b(gf.chisqr, gf.freeParamVals(), args=(x,y,yerr), \\\n", " bounds=((-2.,0), (None,None), (None,None), (None,None)), \\\n", " approx_grad=True)\n", "# Set the parameter values to best-fit\n", "gf.setFreeParamVals(fr[0])\n", "\n", "gf.parameterSummary()\n", "plt.title(\"Bad fit because of restricted parameter range\")\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 }