{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/IMinuit.jl/docs/Project.toml`\n", " \u001b[90m[beb75e20] \u001b[39m\u001b[91m- IMinuit v0.2.0 `~/IMinuit.jl`\u001b[39m\n", "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/IMinuit.jl/docs/Manifest.toml`\n", " \u001b[90m[861a8166] \u001b[39m\u001b[91m- Combinatorics v1.0.2\u001b[39m\n", " \u001b[90m[bbf7d656] \u001b[39m\u001b[91m- CommonSubexpressions v0.3.0\u001b[39m\n", " \u001b[90m[163ba53b] \u001b[39m\u001b[91m- DiffResults v1.1.0\u001b[39m\n", " \u001b[90m[b552c78f] \u001b[39m\u001b[91m- DiffRules v1.15.1\u001b[39m\n", " \u001b[90m[f6369f11] \u001b[39m\u001b[91m- ForwardDiff v0.10.35\u001b[39m\n", " \u001b[90m[beb75e20] \u001b[39m\u001b[91m- IMinuit v0.2.0 `~/IMinuit.jl`\u001b[39m\n", " \u001b[90m[1e83bf80] \u001b[39m\u001b[91m- StaticArraysCore v1.4.2\u001b[39m\n", " \u001b[90m[8ba89e20] \u001b[39m\u001b[91m- Distributed\u001b[39m\n", "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/IMinuit.jl/docs/Project.toml`\n", " \u001b[90m[beb75e20] \u001b[39m\u001b[92m+ IMinuit v0.2.0 `~/IMinuit.jl`\u001b[39m\n", "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/IMinuit.jl/docs/Manifest.toml`\n", " \u001b[90m[861a8166] \u001b[39m\u001b[92m+ Combinatorics v1.0.2\u001b[39m\n", " \u001b[90m[bbf7d656] \u001b[39m\u001b[92m+ CommonSubexpressions v0.3.0\u001b[39m\n", " \u001b[90m[163ba53b] \u001b[39m\u001b[92m+ DiffResults v1.1.0\u001b[39m\n", " \u001b[90m[b552c78f] \u001b[39m\u001b[92m+ DiffRules v1.15.1\u001b[39m\n", " \u001b[90m[f6369f11] \u001b[39m\u001b[92m+ ForwardDiff v0.10.35\u001b[39m\n", " \u001b[90m[beb75e20] \u001b[39m\u001b[92m+ IMinuit v0.2.0 `~/IMinuit.jl`\u001b[39m\n", " \u001b[90m[1e83bf80] \u001b[39m\u001b[92m+ StaticArraysCore v1.4.2\u001b[39m\n", " \u001b[90m[8ba89e20] \u001b[39m\u001b[92m+ Distributed\u001b[39m\n" ] } ], "source": [ "\n", "using Pkg\n", "Pkg.add(url=\"https://github.com/fkguo/IMinuit.jl\")\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:42:55.311000+08:00", "start_time": "2020-07-15T14:42:21.896Z" }, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling IMinuit [beb75e20-2205-47e6-ad51-640e9c2309f1]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "initiated!!\n" ] } ], "source": [ "using IMinuit\n", "using BenchmarkTools" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:43:02.225000+08:00", "start_time": "2020-07-15T14:43:00.402Z" } }, "outputs": [ { "data": { "text/plain": [ "f1 (generic function with 1 method)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x) = x[1]^2 + (x[2]-1)^2 + (x[3]-2)^4\n", "f1(x, y, z) = x^2 + (y-1)^2 + (z-2)^4" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 1 Nfcn = 45
EDM = 2.47e-05 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 1.00 0.01 yes
1 x1 1 1
2 x2 2 5
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1 x2
x0 0 0 0
x1 0 1 -1.22e-09
x2 0 -1.22e-09 27.4
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='x0', value=1.0, error=0.01, merror=None, is_const=False, is_fixed=True, lower_limit=None, upper_limit=None), Param(number=1, name='x1', value=1.0, error=0.9999999999400042, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='x2', value=2.0779988685764814, error=5.233092083066116, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", "[[ 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n", " [ 0.00000000e+00 1.00000000e+00 -1.21819202e-09]\n", " [ 0.00000000e+00 -1.21819202e-09 2.73852527e+01]]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# using array parameters\n", "m = Minuit(f, [1, 1, 4], fix_x0 = true)\n", "migrad(m)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 7.285e-06 Nfcn = 40
EDM = 4.85e-06 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 -0 1
1 x1 1 1
2 x2 2 8
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1 x2
x0 1 1.78e-15 4.96e-29
x1 1.78e-15 1 2.79e-14
x2 4.96e-29 2.79e-14 61.7
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='x0', value=-9.230505249036014e-11, error=0.9999999999999991, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='x1', value=1.0, error=0.9999999999998908, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='x2', value=2.0519527751467623, error=7.854497166409804, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", "[[1.00000000e+00 1.77634400e-15 4.95556534e-29]\n", " [1.77634400e-15 1.00000000e+00 2.78975543e-14]\n", " [4.95556534e-29 2.78975543e-14 6.16931257e+01]]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# a new fit can continue from the previous fit\n", "m_new = Minuit(f, m, fix_x0 = false)\n", "migrad(m_new)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:43:19.582000+08:00", "start_time": "2020-07-15T14:43:19.577Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 0.0001683 Nfcn = 59, Ngrad = 6
EDM = 0.000115 (Goal: 0.0002) time = 0.6 sec
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 0 1
1 x1 1 1
2 x2 2 4
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1 x2
x0 1 0 0
x1 0 1 0
x2 0 0 13.2
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='x0', value=0.0027789542449766086, error=0.9999999999999593, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='x1', value=1.0, error=1.0000000000000169, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='x2', value=2.1125715483995617, error=3.626492458643747, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", "[[ 1. 0. 0. ]\n", " [ 0. 1. 0. ]\n", " [ 0. 0. 13.15144755]]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# using array parameters, using `ForwardDiff: gradient` to compute the gradient\n", "gradf(x) = gradient(f, x)\n", "mgrad = Minuit(f, [1, 1, 4], grad = gradf)\n", "migrad(mgrad)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:43:23.397000+08:00", "start_time": "2020-07-15T14:43:23.392Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 0.0001683 Nfcn = 89
EDM = 0.000115 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x 0 1
1 y 1 1
2 z 2 4
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x y z
x 1 0 0
y 0 1 0
z 0 0 13.2
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='x', value=0.002778199292675712, error=0.9999999999999966, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='y', value=1.0000000000000002, error=0.9999999999998966, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='z', value=2.112568383318672, error=3.626614534698427, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", "[[ 1. 0. 0. ]\n", " [ 0. 1. 0. ]\n", " [ 0. 0. 13.15233298]]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# parameters are given individually\n", "m1 = Minuit(f1, x = 1, y = 1, z = 4)\n", "migrad(m1)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:45:14.865000+08:00", "start_time": "2020-07-15T14:45:13.958Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iminuit.__version__ = \"2.18.0\"\n" ] }, { "data": { "text/plain": [ "101-element Vector{Symbol}:\n", " :LEAST_SQUARES\n", " :LIKELIHOOD\n", " :__annotations__\n", " :__class__\n", " :__delattr__\n", " :__dir__\n", " :__doc__\n", " :__eq__\n", " :__format__\n", " :__ge__\n", " :__getattribute__\n", " :__gt__\n", " :__hash__\n", " ⋮\n", " :profile\n", " :reset\n", " :scan\n", " :scipy\n", " :simplex\n", " :strategy\n", " :throw_nan\n", " :tol\n", " :valid\n", " :values\n", " :var2pos\n", " :visualize" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@show iminuit.__version__\n", "propertynames(m)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2020-07-09T11:37:23.301000+08:00", "start_time": "2020-07-09T03:37:21.957Z" } }, "outputs": [ { "data": { "text/plain": [ "Docstring pulled from the Python `iminuit`:\n", "\n", "\n", " Run Migrad minimization.\n", "\n", " Migrad from the Minuit2 library is a robust minimisation algorithm which earned\n", " its reputation in 40+ years of almost exclusive usage in high-energy physics. How\n", " Migrad works is described in the `Minuit paper`_. It uses first and approximate\n", " second derivatives to achieve quadratic convergence near the minimum.\n", "\n", " Parameters\n", " ----------\n", " ncall :\n", " Approximate maximum number of calls before minimization will be aborted.\n", " If set to None, use the adaptive heuristic from the Minuit2 library\n", " (Default: None). Note: The limit may be slightly violated, because the\n", " condition is checked only after a full iteration of the algorithm, which\n", " usually performs several function calls.\n", "\n", " iterate :\n", " Automatically call Migrad up to N times if convergence was not reached\n", " (Default: 5). This simple heuristic makes Migrad converge more often even if\n", " the numerical precision of the cost function is low. Setting this to 1\n", " disables the feature.\n", "\n", " See Also\n", " --------\n", " simplex, scan\n", " " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# the doc strings are from `iminuit`\n", "@doc migrad" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example: Fit to the BES data of the π⁺π⁻ energy distribution of ψ'→J/ψπ⁺π⁻\n", "\n", "The data are taken from [BES Collaboration, Phys. Rev. D 62 (2000) 032002](https://inspirehep.net/literature/507637).\n", "\n", "Here we use a simple model, which is not meant to be the correct one, to fit to the data." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:45:52.682000+08:00", "start_time": "2020-07-15T14:45:24.851Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling CSV [336ed68f-0bac-5ca0-87d4-7b16caf5d00b]\n", "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling IJuliaExt [2f4121a4-3b3a-5ce6-9c5e-1f2673ce168a]\n" ] } ], "source": [ "using CSV\n", "using DataFrames\n", "using Plots\n", "pyplot(framestyle = :box, minorticks = 5)\n", "using LaTeXStrings" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:46:20.580000+08:00", "start_time": "2020-07-15T14:45:55.888Z" } }, "outputs": [ { "data": { "text/plain": [ "Data([0.303, 0.309, 0.321, 0.327, 0.333, 0.339, 0.345, 0.351, 0.357, 0.363 … 0.531, 0.537, 0.543, 0.549, 0.555, 0.561, 0.567, 0.573, 0.579, 0.585], [8.522656, 44.87459, 29.63286, 58.13258, 28.2143, 129.0572, 181.7821, 199.5301, 269.4043, 186.1139 … 5217.45, 5867.647, 5717.979, 5527.38, 5548.063, 5386.82, 5425.564, 4744.075, 3899.626, 2725.864], [14.44523, 78.24785, 23.01279, 28.29703, 14.79316, 35.48893, 43.7948, 42.20547, 49.41916, 42.54225 … 164.0276, 174.4779, 169.0323, 165.0818, 164.632, 160.1847, 160.5301, 149.5817, 138.9569, 117.8775], 47)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_df = DataFrame(CSV.File(\"./testdata.csv\"))\n", "const data = Data(data_df)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:47:29.588000+08:00", "start_time": "2020-07-15T14:47:29.099Z" } }, "outputs": [ { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2023-08-05T18:39:50.550859\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.7.1, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/html": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "name": "stderr", "output_type": "stream", "text": [ "sys:1: UserWarning: You passed a edgecolor/edgecolors ((0.0, 0.0, 0.0, 1.0)) for an unfilled marker ('_'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.\n", "sys:1: UserWarning: No data for colormapping provided via 'c'. Parameters 'vmin', 'vmax' will be ignored\n" ] } ], "source": [ "@plt_data data xlab=L\"m_{\\pi\\pi}\"*\" [GeV]\" ylab=\"Events\"" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:48:07.645000+08:00", "start_time": "2020-07-15T14:48:07.382Z" } }, "outputs": [ { "data": { "text/plain": [ "dist (generic function with 2 methods)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "const M = 3.686; const mπ = 0.14; const mJ = 3.097; \n", "\n", "λ(x, y, z) = x^2 + y^2 + z^2 - 2x*y - 2y*z - 2z*x\n", "\n", "# a simple function that will be used to fit the data: QCD multipole expansion model for ψ'→J/ψπ⁺π⁻\n", "# The important ππ FSI effect is not taken into account\n", "# bg is just for introducing a third parameter\n", "function dist(w, N, c, bg) \n", " if (w ≤ 2mπ || w ≥ M-mJ)\n", " res = 0.0\n", " else\n", " q1 = sqrt(λ(w^2, mπ^2, mπ^2))/(2w)\n", " q2 = sqrt(λ(M^2, w^2, mJ^2))/(2M)\n", " res = N * q1 * q2 * (w^2 - c*mπ^2)^2 + bg\n", " end\n", " return res * 1e6\n", "end;\n", "\n", "dist(x, p) = dist(x, p...)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T22:48:54.462000+08:00", "start_time": "2020-07-15T14:48:54.165Z" } }, "outputs": [], "source": [ "# parameters given individually\n", "χsq1(N, c, bg) = chisq(dist, data, (N, c, bg));\n", "\n", "# all parameters are vairables of χsq\n", "fit1 = Minuit(χsq1, N = 1, c = 2, bg = 0, error_N = 0.1, error_c = 0.1, error_bg = 0.1)\n", "fit1.strategy = 1;" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2020-07-15T23:00:24.158000+08:00", "start_time": "2020-07-15T15:00:24.146Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 68.22 Nfcn = 60
EDM = 6.15e-05 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 N 2.67 0.04
1 c 4.33 0.06
2 bg 0.0 0.1 yes
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
N 0.00178 0.00233 (0.893) 0
c 0.00233 (0.893) 0.0038 0
bg 0 0 0
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='N', value=2.6681960437143837, error=0.04224516409271021, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='c', value=4.326170735305057, error=0.061681228609901384, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='bg', value=0.0, error=0.1, merror=None, is_const=False, is_fixed=True, lower_limit=None, upper_limit=None))\n", "[[0.00178465 0.00232812 0. ]\n", " [0.00232812 0.00380457 0. ]\n", " [0. 0. 0. ]]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# parameters are collected into a tuple or an array, which is the only variable of χsq\n", "parname = [:N, :c, :bg]\n", "χsq(par) = chisq(dist, data, par)\n", "gradf(par) = gradient(χsq, par)\n", "fit = Minuit(χsq, [1, 2, 0], error = 0.1*ones(3), name = parname, grad = gradf)\n", "fit.strategy = 1;\n", "\n", "# or simply using model_fit or @model_fit\n", "fit2 = model_fit(dist, data, [1, 2, 0], error = 0.1*ones(3), name = parname, fix_bg = true)\n", "fit2.strategy = 1;\n", "migrad(fit2)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 64.68 Nfcn = 65
EDM = 2.08e-05 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 N 2.61 0.05
1 c 4.20 0.09
2 bg -0.022e-3 0.012e-3
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
N 0.00268 0.00446 (0.925) 3.73e-07 (0.605)
c 0.00446 (0.925) 0.00867 8.29e-07 (0.748)
bg 3.73e-07 (0.605) 8.29e-07 (0.748) 1.41e-10
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='N', value=2.611694784029727, error=0.051774157148768825, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='c', value=4.201402659318696, error=0.09309868134226096, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='bg', value=-2.187403330680718e-05, error=1.1893819057631849e-05, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", "[[2.68056335e-03 4.45952759e-03 3.72791883e-07]\n", " [4.45952759e-03 8.66736447e-03 8.28577808e-07]\n", " [3.72791883e-07 8.28577808e-07 1.41462932e-10]]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# the privous fit status can be passed to a new fit\n", "fit2_new = model_fit(dist, data, fit2, name = parname, fix_bg = false)\n", "migrad(fit2_new)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:16.578000+08:00", "start_time": "2020-07-12T01:35:06.799Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 215.846 μs (4818 allocations: 93.65 KiB)\n" ] }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 64.68 Nfcn = 399650, Ngrad = 11
EDM = 2.34e-15 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 N 2.61 0.05 -0.05 0.05
1 c 4.20 0.09 -0.09 0.09
2 bg -0.022e-3 0.012e-3 -0.012e-3 0.012e-3
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
Error -0.05 0.05 -0.09 0.09 -0.012e-3 0.012e-3
Valid True True True True True True
At Limit False False False False False False
Max FCN False False False False False False
New Min False False False False False False
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
N 0.00268 0.00446 (0.925) 3.73e-07 (0.605)
c 0.00446 (0.925) 0.00867 8.29e-07 (0.748)
bg 3.73e-07 (0.605) 8.29e-07 (0.748) 1.42e-10
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='N', value=2.6114833251930683, error=0.051769909282983854, merror=(-0.051452580011336416, 0.052103853998085925), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='c', value=4.20103135177359, error=0.09310452497041742, merror=(-0.093920672177343, 0.09232893054481826), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='bg', value=-2.1921185530005688e-05, error=1.1895728032506308e-05, merror=(-1.2031491852718112e-05, 1.1765607898341513e-05), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", ",\n", " ,\n", " \n", ">\n", "[[2.68012351e-03 4.45943061e-03 3.72863627e-07]\n", " [4.45943061e-03 8.66845257e-03 8.28851111e-07]\n", " [3.72863627e-07 8.28851111e-07 1.41508345e-10]]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@btime migrad(fit)\n", "minos(fit)\n", "migrad(fit)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:24.767000+08:00", "start_time": "2020-07-12T01:35:07.908Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 136.016 μs (730 allocations: 19.93 KiB)\n" ] }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 64.68 Nfcn = 565652
EDM = 1.52e-14 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 N 2.61 0.05 -0.05 0.05
1 c 4.20 0.09 -0.09 0.09
2 bg -0.022e-3 0.012e-3 -0.012e-3 0.012e-3
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
Error -0.05 0.05 -0.09 0.09 -0.012e-3 0.012e-3
Valid True True True True True True
At Limit False False False False False False
Max FCN False False False False False False
New Min False False False False False False
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
N 0.00268 0.00446 (0.925) 3.73e-07 (0.606)
c 0.00446 (0.925) 0.00867 8.29e-07 (0.748)
bg 3.73e-07 (0.606) 8.29e-07 (0.748) 1.42e-10
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='N', value=2.6114833211935484, error=0.051776712195704004, merror=(-0.05145257573454067, 0.05210385773044046), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='c', value=4.201031344545451, error=0.09311685621270735, merror=(-0.09392066407552968, 0.09232893682255511), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='bg', value=-2.192118618207932e-05, error=1.1895620973146581e-05, merror=(-1.2031491205034717e-05, 1.1765608570813917e-05), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", ",\n", " ,\n", " \n", ">\n", "[[2.68082793e-03 4.46071705e-03 3.72952983e-07]\n", " [4.46071705e-03 8.67074891e-03 8.28986847e-07]\n", " [3.72952983e-07 8.28986847e-07 1.41505798e-10]]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@btime migrad(fit1)\n", "minos(fit1)\n", "migrad(fit1)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:24.774000+08:00", "start_time": "2020-07-12T01:35:10.247Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = 64.68 Nfcn = 565820
EDM = 1.52e-14 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 N 2.61 0.05 -0.05 0.05
1 c 4.20 0.09 -0.09 0.09
2 bg -0.022e-3 0.012e-3 -0.012e-3 0.012e-3
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
Error -0.05 0.05 -0.09 0.09 -0.012e-3 0.012e-3
Valid True True True True True True
At Limit False False False False False False
Max FCN False False False False False False
New Min False False False False False False
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N c bg
N 0.00268 0.00446 (0.925) 3.73e-07 (0.606)
c 0.00446 (0.925) 0.00867 8.29e-07 (0.748)
bg 3.73e-07 (0.606) 8.29e-07 (0.748) 1.42e-10
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='N', value=2.6114833211935484, error=0.051776712195704004, merror=(-0.05145257573454067, 0.05210385773044046), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=1, name='c', value=4.201031344545451, error=0.09311685621270735, merror=(-0.09392066407552968, 0.09232893682255511), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='bg', value=-2.192118618207932e-05, error=1.1895620973146581e-05, merror=(-1.2031491205034717e-05, 1.1765608570813917e-05), is_const=False, is_fixed=False, lower_limit=None, upper_limit=None))\n", ",\n", " ,\n", " \n", ">\n", "[[2.68082793e-03 4.46071705e-03 3.72952983e-07]\n", " [4.46071705e-03 8.67074891e-03 8.28986847e-07]\n", " [3.72952983e-07 8.28986847e-07 1.41505798e-10]]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "minos(fit1)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:44.978000+08:00", "start_time": "2020-07-12T01:35:44.579Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAYAAAByNR6YAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhkklEQVR4nO3deVxVdf7H8de57KgguIULoiWIS6mUmU3TptaY2ci1plEmLVOa8pc1MzZWlktmtmc5M9FkqeE4ldxqSie1fdoN0lRAXBMSFwRR2eGe3x8EKYtsl3uB+34+HjzM+z33nM/9dsuP3/M9n49hmqaJiIiIiDiMxdUBiIiIiLQ1SrBEREREHMzT1QE4S1ZWFhs2bCAsLAw/Pz9XhyMiIiJtREFBAfv37+eaa66hc+fOgBslWBs2bCAmJsbVYYiIiEgbFR8fz+TJkwE3SrDCwsIAePzxxxk1atRZj505cybLli1zQlTuTfPc/DTHzqF5dg7Ns3NonhsuJSWFmJiYylwD3CjBqrgtOGrUKIYNG3bWYwMDA+s8RppO89z8NMfOoXl2Ds2zc2ieG+/0LUja5F6D6OhoV4fgFjTPzU9z7ByaZ+fQPDuH5tkx3GYFqyGsVqurQ3ALmufmpzl2Ds2zc2ie6+fAgQNkZWU1+v3nnXceSUlJDoyo7encuTOhoaFnPUYJloiISBtx4MABIiMjyc/Pd3UobZq/vz8pKSlnTbKUYImIiLQRWVlZ5OfnEx8fT2RkpKvDaZMqNrRnZWUpwRIREXEnkZGR2qjuYtrkLiIiIuJgTkuwioqKmDlzJv369WPgwIFnFP3ctWsXI0eOJDw8nOHDh5OcnNzkMRERkbYkMzOTpKSkaj+ZmZmuDk1q4LQEa86cOVgsFtLS0tixYwdPPvlk5VhsbCwzZswgLS2N++67j2nTpjV5TEREpC2Ji4sjKiqq2k9cXJyrQ5MaOCXBysvL49VXX2Xx4sUYhgFASEgIAEeOHCEpKalyRctqtbJv3z7279/f6DEREZG2JjY2lsTEROLj44HytiyJiYnExsa6ODKpiVM2ue/Zs4dOnTqxaNEiPvjgA/z8/Jg/fz5XX3016enpdO/eHU/P8lAMwyA0NJQDBw7Qrl27Ro2dXqq+qpkzZxIYGEh0dHStNVVycnIcOwFSI81z89McO4fm2TncfZ59fHwICwsjNzcXgO7du1f+eZednQ1QOeYodrud/Px8/P39sVi0bft0ubm5/POf/8Rms9U4705JsEpKSti7dy8DBgxgyZIlbN26lVGjRlXumapY1apgmmblPzd2rDbLli2r15MVwcHBdR4jTad5bn6aY+fQPDuH5rm8lU3Fr1Xno2KsqbZs2cKzzz7Lm2++SUFBAX5+ftx4443ce++9DBkyxCHXaO0CAwOZPn0606dPJykpiaioqDPGnZKO9u7dG4vFUtlh+oILLqBPnz7s2LGDXr16kZGRQWlpKVCeJKWnpxMaGtroMREREWmcf/3rX1x00UWsWrWKgoICAAoKCli1ahUXXXQRa9asafI1wsLC6N+/PxdccAH9+vXjhhtu4Msvv6zzfStWrCAtLa3J13cGpyRYnTt35uqrr2bDhg0A/Pjjj+zbt4+IiAi6du3K0KFDK+8pJyQkEBYWRlhYWKPHREREpOG2bNnClClTyhcvQiJh6svw0Lflv4ZEUlpayi233MKWLVuafK21a9eydetWdu3axW233cbYsWP55ptvzvoeJVg1ePHFF3niiScYPHgwN9xwAy+99FLlRve4uDji4uIIDw9nyZIlLF++vPJ9jR0TERGRhnn22Wd/Sa7u/wJG3gK9hpT/ev8XENKf0tJSnnvuOYde94YbbuDOO+/kqaee4sMPP+SSSy5h6NChDBo0iFdffRWAl19+me+++467776bIUOGsH79erZt28Zll13GsGHDGDBgAI899phD42oS000kJiaagJmYmFjnsceOHXNCRKJ5bn6aY+fQPDuH5tk0ExISzH4RkSaGxewXEWkmJCScMd6QP+uqKisrM/38/EzAZOrLJi8VV/+Z8k8TMP38/MyysrJGf47evXub27ZtO+M1m81mRkZGmtnZ2WZpaalpmuX/znv37m0ePHjQNE3TvPzyy81333238j0nTpwwCwsLTdM0zfz8fHPIkCHm5s2bGx1XfdQ0xzW9pkcCREREWgGbzYbVamW3Rw+YuITdHj2wWq3YbDaHnD8/P79yzxW9zq/5oNALgPI9WZXHOoj584Nqx44d48Ybb2TQoEFcddVVZGVlsWPHjhrfU1BQwO23387gwYMZMWIEP/74o0NuXzqCEiwREZFWYMEjj2IMHI05ax2Mvgdz1jqMAaNYuGixQ87v7++Pn59f+W/Sf6j5oANbAfDz8/vlWAfZvHkzgwYN4o477uDyyy9n27ZtbNmyhfDwcAoLC2t8zwMPPEC3bt34/vvv2bp1K1dccUWtxzqbEiwREZFWIG1nKuaA0VBRosgwMAeOYWdqikPOb7FYuPHGG8t/s+FpKDx15gGFp2Dj0wDcdNNNDq2L9c477/CPf/yDP/3pT+Tk5NC7d28Mw+Czzz5j69atlccFBAScUXMqJyeHnj174unpyc6dO9m0aZPDYmoqJVgiIiKtQHhEf4zkTVBR89E0MXZsJCIy0mHXuPfee8sLeGemwGMj4YuVkL6l/NfHRkJmKp6entxzzz1NvtbEiRO54IILOO+881i+fDnr169nxIgRLFmyhNmzZzNixAhWrFjBxRdfXPmeGTNmsHDhwspN7nPnzuXll1/moosuYu7cuVx11VVNjstRnFJoVERERJpm3kMPYrVaMZaOxRx4DcaODZjJHzLPQXuwAIYMGcLKlSvLSzVkpsLK6WeMe3p6smrVqiYXGz1bW7vRo0eza9euGsfGjRvHuHHjznht+/btTYqlubjdCtbevXtdHYKIiEiDRUdHk5CQQD97JqydQz97JjabjQkTJjj0OpMmTWLz5s1MmTKlcp+Vn58fU6ZMYfPmzfz+97936PXaKrdbwerbt6+rQxAREWmU6OhowsLCiIqKYs3q1+rV+q0xhgwZwooVK3jllVcqW+WoF2HDuF2CJSIiIvVjsVho166dq8NolZSOioiIiDiYEiwRERERB9MtQhERkVYgMzOTzMxMUlLK615V/BoSEkJISAil2Yc5sXGNK0OU0yjBEhERaQXi4uJYsGBB5e9jYmIAeOKhOdw+KIS8bzZSkJntqvCkCt0iFBERaQViY2NJTEz85efbb0hZ8TS/z99O3pfroawU79BwV4dZL2FhYfTv358hQ4YQGRnJpEmTyMvLa/T5VqxYQVpaWq3jX3/9NYMHD2bo0KFs2LCBsWPHsmfPnnq9t7GUYImIiLQCISEhDBs2jGHDhjEwwJPuH7xM++83QmkJ3ucOpsv/PUnQTXe7Osx6W7t2LVu2bCE5OZkTJ06wYsWKRp+rriRp5cqV3HLLLXz//fdcc801rF+/nnPPPbde720sJVgiIiKtRNmp42Svfoqjy+6j9PABLO07EhxzH11mPoHPuYNdHV6jFBUVkZeXR1BQUOVrTz31FMOHD2fYsGGMHTuW9PR0AN59913OP/98hgwZwqBBg3jnnXd4+eWX+e6777j77rsrW+icbsmSJbz++ussXbqUIUOGcPz4ccLCwti+fXud720K7cESERFpBQp++JKc15/DnncCDIN2l4wlcNxULP4dGnyustxjlJ1w/H4tj4BgPAI71evYiRMn4uvry759+4iKiuKmm24C4F//+hdpaWl89dVXeHh48NprrzFz5kzeeecd5s6dy4svvsjIkSOx2+2cOHGCjh07Eh8fz1/+8pdqbXQA5syZQ2pqKhdeeCEzZ848Y+z2228/63ubwu0SrL179zZb5VsREWmbKp7gq6riCb7GHlsf9uJCct/+J3lfrgPAq3sfOt50Nz5hjW/yfOrL9ZzcsLrR769Nh2smE/ibP9Tr2LVr1zJo0CBKS0uJjY3lr3/9K08//TRvv/023333HVFRUQCUlZXh4eEBwNVXX80999zDxIkTGTNmTJN7IjYnt0uw1CpHREQaquoTfBXmzZvH/PnzG31sXYoP7iV71RJKDx0AoP1VEwkcOwXD06tB56mq/cix+A0a0aRz1MQjILjB7/H09MRqtTJ79myefvppTNNk7ty53HbbbdWOfeaZZ9ixYwcff/wxU6ZMYfLkydx3332OCN3h3C7BEhERaajY2FjGjx9PSkoKMTExxMfHExkZWeOKVEOOrY1pmuR9/i7H3/knlJZgCQgiePJsfCMccwfGI7BTvW/lOcNHH31EREQEAOPHj2fp0qX89re/JTg4mJKSErZv387QoUNJTU1l4MCBDBw4EE9PTzZu3AhAQEAAubm5jbp2U957NkqwRERE6lD19l5kZGSt200acmxN7MWF5Pz7OQqSPgHAd8Bwgib9CY/2HRsVe0tVsQerpKSEsLAwXnzxRQD+8Ic/cOzYMa644goMw6C0tJRp06YxdOhQ7r//ftLS0vD29sbf359//OMfAMyYMYM///nPPPnkkyxevJixY8fWO46mvPdslGCJiIi0EKU5Rzi2fCElGbvB4kHgDdNp/+sbMAzD1aE51P79+886fs8993DPPfdUe/2tt96q8fhx48addZN61RIQp1+/rvc2lhIsERGRFqBo73aOvbII+6njWNoF0um2ua229IIowRIREXG5U1+u53jC36GsFK8e59Jp2sN4BndzdVjSBCo0KiIi4mA2m42bJ8WAYeHmSTHYbLYajzPtdo6//RLH33ge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RIcPHzYDAgIatYTs6+trZmVlNekc7sIR81zVwYMHzfbt2zs61FarvnP82GOPmSEhIWbv3r3N3r17mx4eHmb37t3N9evX67tcD46Y56r0Xa6usd/F0+dS3+e6OWKeGzIm5dxiBatr164MHTqU+Ph4ABISEggLCyMsLOyM406cOMHBgwcrf//WW2/RqVMngoOD630Od+aIec7Ly+P48eOVY2vWrGHo0KHOCL9VqO8cz5kzh4MHD7J//372799Pz5492bBhA7/5zW/0Xa4HR8yzvst1q+88n20u9X2umyPmWd/nRnB1hucsqamp5ogRI8x+/fqZUVFR5vbt2yvHfvOb35ibN282Dxw4YF500UXmoEGDzPPPP9+8+uqrze+//75e55ByTZ3nPXv2mEOGDDEHDx5sDho0yBw/frz+JlpFfea4qqqbU/VdrltT51nf5fqpzzzXNZf6PtetqfOs73PDqdmziIiIiIO5xS1CEREREWdSgiUiIiLiYEqwRERERBxMCZaIiIiIgynBEhEREXEwJVgiIiIiDqYES0RERMTBlGCJiIiIOJgSLBEREREHU4IlIkJ5j8zevXtz4403nvH6XXfdRVBQEBkZGS6KTERaIyVYIiJAQEAAK1asICEhgddeew2ADRs28Pe//52///3v9OzZ08URikhrol6EIiKn+dOf/sQrr7zCJ598wnXXXcdll13Gv//9b1eHJSKtjBIsEZHTFBYWEhUVxZ49e+jUqRPbt28nKCjI1WGJSCujW4QiIqfx9fUlOjqaoqIiJk+erORKRBpFK1giIqfZvn07F154IQMGDCAlJYXExEQGDBjg6rBEpJVRgiUi8rPi4mIuvvhi2rVrx0cffcSvfvUrysrK+Prrr/Hy8nJ1eCLSiugWoYjIz+bNm8euXbtYuXIl3t7evPbaa6SkpLBw4UJXhyYirYwSLBER4Msvv+SJJ57g6aef5txzzwUgIiKCJ554gscee4xvvvnGxRGKSGuiW4QiIiIiDqYVLBEREREHU4IlIiIi4mBKsEREREQcTAmWiIiIiIMpwRIRERFxMCVYIiIiIg72/6YrtIFtwYlBAAAAAElFTkSuQmCC", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2023-08-05T18:40:13.565997\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.7.1, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/html": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# the ordering of dist, fit and data does not matter\n", "@plt_best dist fit data" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:47.205000+08:00", "start_time": "2020-07-12T01:35:46.983Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "PyPlot.Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "([2.4561531846064364, 2.4592911671637516, 2.4624291497210673, 2.4655671322783825, 2.4687051148356978, 2.4718430973930134, 2.4749810799503287, 2.4781190625076444, 2.4812570450649596, 2.484395027622275 … 2.738571614764822, 2.7417095973221373, 2.7448475798794525, 2.747985562436768, 2.7511235449940834, 2.7542615275513986, 2.7573995101087143, 2.7605374926660295, 2.7636754752233452, 2.7668134577806605], [3.9216807759073293, 3.9273242217384023, 3.932967667569476, 3.938611113400549, 3.944254559231622, 3.9498980050626953, 3.9555414508937683, 3.9611848967248418, 3.9668283425559148, 3.972471788386988 … 4.429590900703915, 4.435234346534989, 4.440877792366061, 4.446521238197135, 4.452164684028208, 4.457808129859281, 4.463451575690354, 4.469095021521428, 4.4747384673525, 4.480381913183574], [20.970459755972996 20.02080897997878 … 290.2779850474049 296.35529928065046; 21.146256518693036 20.129488037901638 … 285.04032680263396 291.0733880873432; … ; 350.8704215520153 342.54385622437354 … 19.824213491646248 20.933801142223516; 357.4930611817346 349.0828960981299 … 19.59349826608762 20.64582394490988])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# MIGRAD contour of two parameters with the other ones fixed\n", "# needs PyPlot or the pyplot backend of Plots\n", "draw_contour(fit1,:N, :c, bound=3, bins=100)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:53.437000+08:00", "start_time": "2020-07-12T01:35:53.230Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "PyPlot.Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "PyObject " ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# contour of parameter space from MINOS\n", "draw_mncontour(fit1,:N, :c, nsigma=3, numpoints=100)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:56.232000+08:00", "start_time": "2020-07-12T01:35:56.100Z" } }, "outputs": [ { "data": { "text/plain": [ "3×3 Matrix{Float64}:\n", " 1.0 0.925213 0.605526\n", " 0.925213 1.0 0.748397\n", " 0.605526 0.748397 1.0" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matrix(fit1, correlation = true)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:35:57.060000+08:00", "start_time": "2020-07-12T01:35:56.818Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fit1.matrix = [0.0026808279257967637 0.004460717050849894 3.729529830296808e-7; 0.004460717050849894 0.008670748910938015 8.289868474538332e-7; 3.729529830296808e-7 8.289868474538332e-7 1.4150579833676482e-10]\n" ] }, { "data": { "text/plain": [ "3×3 Matrix{Float64}:\n", " 0.00268083 0.00446072 3.72953e-7\n", " 0.00446072 0.00867075 8.28987e-7\n", " 3.72953e-7 8.28987e-7 1.41506e-10" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@show fit1.matrix\n", "matrix(fit1)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:36:05.388000+08:00", "start_time": "2020-07-12T01:36:05.339Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1.702498 seconds (3.74 M allocations: 246.451 MiB, 5.41% gc time, 97.76% compilation time)\n" ] }, { "data": { "text/html": [ "
11×4 DataFrame
RowchisqNcbg
Float64Float64Float64Float64
164.67992.611484.20103-2.19212e-5
265.67992.560034.11414-2.93031e-5
365.67992.663594.28643-1.48855e-5
465.682.563854.10711-3.10184e-5
565.67992.659614.29336-1.32339e-5
665.682.57984.13027-3.39527e-5
765.682.642214.2688-1.01556e-5
865.71842.560034.10711-3.0459e-5
965.71842.560034.10711-3.0459e-5
1065.71932.663594.29336-1.38007e-5
1165.71932.663594.29336-1.38007e-5
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", "\t& chisq & N & c & bg\\\\\n", "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", "\t1 & 64.6799 & 2.61148 & 4.20103 & -2.19212e-5 \\\\\n", "\t2 & 65.6799 & 2.56003 & 4.11414 & -2.93031e-5 \\\\\n", "\t3 & 65.6799 & 2.66359 & 4.28643 & -1.48855e-5 \\\\\n", "\t4 & 65.68 & 2.56385 & 4.10711 & -3.10184e-5 \\\\\n", "\t5 & 65.6799 & 2.65961 & 4.29336 & -1.32339e-5 \\\\\n", "\t6 & 65.68 & 2.5798 & 4.13027 & -3.39527e-5 \\\\\n", "\t7 & 65.68 & 2.64221 & 4.2688 & -1.01556e-5 \\\\\n", "\t8 & 65.7184 & 2.56003 & 4.10711 & -3.0459e-5 \\\\\n", "\t9 & 65.7184 & 2.56003 & 4.10711 & -3.0459e-5 \\\\\n", "\t10 & 65.7193 & 2.66359 & 4.29336 & -1.38007e-5 \\\\\n", "\t11 & 65.7193 & 2.66359 & 4.29336 & -1.38007e-5 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "\u001b[1m11×4 DataFrame\u001b[0m\n", "\u001b[1m Row \u001b[0m│\u001b[1m chisq \u001b[0m\u001b[1m N \u001b[0m\u001b[1m c \u001b[0m\u001b[1m bg \u001b[0m\n", " │\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\n", "─────┼────────────────────────────────────────\n", " 1 │ 64.6799 2.61148 4.20103 -2.19212e-5\n", " 2 │ 65.6799 2.56003 4.11414 -2.93031e-5\n", " 3 │ 65.6799 2.66359 4.28643 -1.48855e-5\n", " 4 │ 65.68 2.56385 4.10711 -3.10184e-5\n", " 5 │ 65.6799 2.65961 4.29336 -1.32339e-5\n", " 6 │ 65.68 2.5798 4.13027 -3.39527e-5\n", " 7 │ 65.68 2.64221 4.2688 -1.01556e-5\n", " 8 │ 65.7184 2.56003 4.10711 -3.0459e-5\n", " 9 │ 65.7184 2.56003 4.10711 -3.0459e-5\n", " 10 │ 65.7193 2.66359 4.29336 -1.38007e-5\n", " 11 │ 65.7193 2.66359 4.29336 -1.38007e-5" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this gives parameter sets at the 1σ boundary\n", "@time contour_df(fit1, χsq1, npts = 5)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 2.307346 seconds (6.62 M allocations: 264.082 MiB, 5.05% gc time, 27.12% compilation time)\n" ] }, { "data": { "text/html": [ "
196×4 DataFrame
171 rows omitted
RowchisqNcbg
Float64Float64Float64Float64
164.67992.611484.20103-2.19212e-5
265.35832.651054.27719-1.47288e-5
364.74532.622344.21387-2.12807e-5
464.89342.592534.15935-2.62679e-5
564.89942.600534.19757-2.09793e-5
664.88442.599334.16706-2.5927e-5
765.24712.645454.24388-1.94565e-5
865.5422.588234.19096-2.03662e-5
964.74532.624744.22317-2.00633e-5
1065.33072.646054.27399-1.45818e-5
1164.92742.605444.20807-1.9912e-5
1265.14912.622444.24218-1.66078e-5
1365.05512.621244.23778-1.71687e-5
18565.01772.638754.23728-1.96385e-5
18665.32852.570824.12684-2.86867e-5
18765.16252.598834.20297-1.98453e-5
18864.8772.624644.23568-1.79791e-5
18965.40062.642954.27379-1.41986e-5
19064.98882.624044.23948-1.72703e-5
19165.15692.576034.14365-2.65807e-5
19265.02292.616644.22998-1.78266e-5
19364.80112.629544.23098-1.94266e-5
19465.00252.624044.20377-2.32039e-5
19564.97822.584534.15015-2.669e-5
19665.64032.573324.15975-2.34856e-5
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", "\t& chisq & N & c & bg\\\\\n", "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", "\t1 & 64.6799 & 2.61148 & 4.20103 & -2.19212e-5 \\\\\n", "\t2 & 65.3583 & 2.65105 & 4.27719 & -1.47288e-5 \\\\\n", "\t3 & 64.7453 & 2.62234 & 4.21387 & -2.12807e-5 \\\\\n", "\t4 & 64.8934 & 2.59253 & 4.15935 & -2.62679e-5 \\\\\n", "\t5 & 64.8994 & 2.60053 & 4.19757 & -2.09793e-5 \\\\\n", "\t6 & 64.8844 & 2.59933 & 4.16706 & -2.5927e-5 \\\\\n", "\t7 & 65.2471 & 2.64545 & 4.24388 & -1.94565e-5 \\\\\n", "\t8 & 65.542 & 2.58823 & 4.19096 & -2.03662e-5 \\\\\n", "\t9 & 64.7453 & 2.62474 & 4.22317 & -2.00633e-5 \\\\\n", "\t10 & 65.3307 & 2.64605 & 4.27399 & -1.45818e-5 \\\\\n", "\t11 & 64.9274 & 2.60544 & 4.20807 & -1.9912e-5 \\\\\n", "\t12 & 65.1491 & 2.62244 & 4.24218 & -1.66078e-5 \\\\\n", "\t13 & 65.0551 & 2.62124 & 4.23778 & -1.71687e-5 \\\\\n", "\t14 & 65.4456 & 2.62814 & 4.25729 & -1.49032e-5 \\\\\n", "\t15 & 65.0968 & 2.62754 & 4.24758 & -1.64131e-5 \\\\\n", "\t16 & 64.97 & 2.62234 & 4.20157 & -2.33371e-5 \\\\\n", "\t17 & 65.321 & 2.62754 & 4.20167 & -2.40414e-5 \\\\\n", "\t18 & 65.1107 & 2.63585 & 4.22518 & -2.12539e-5 \\\\\n", "\t19 & 65.2444 & 2.65055 & 4.26449 & -1.67446e-5 \\\\\n", "\t20 & 65.4127 & 2.63875 & 4.26979 & -1.4288e-5 \\\\\n", "\t21 & 64.9588 & 2.62914 & 4.21607 & -2.18509e-5 \\\\\n", "\t22 & 64.892 & 2.63454 & 4.23488 & -1.94633e-5 \\\\\n", "\t23 & 65.1354 & 2.64625 & 4.25509 & -1.77126e-5 \\\\\n", "\t24 & 65.6135 & 2.63905 & 4.27489 & -1.34961e-5 \\\\\n", "\t25 & 65.5181 & 2.56692 & 4.11524 & -3.0102e-5 \\\\\n", "\t26 & 65.1997 & 2.60213 & 4.21017 & -1.91076e-5 \\\\\n", "\t27 & 64.7919 & 2.62874 & 4.23088 & -1.93337e-5 \\\\\n", "\t28 & 64.7579 & 2.60323 & 4.17916 & -2.44359e-5 \\\\\n", "\t29 & 65.3986 & 2.59163 & 4.19466 & -2.02244e-5 \\\\\n", "\t30 & 65.6072 & 2.64625 & 4.28259 & -1.32055e-5 \\\\\n", "\t$\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "\u001b[1m196×4 DataFrame\u001b[0m\n", "\u001b[1m Row \u001b[0m│\u001b[1m chisq \u001b[0m\u001b[1m N \u001b[0m\u001b[1m c \u001b[0m\u001b[1m bg \u001b[0m\n", " │\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\n", "─────┼────────────────────────────────────────\n", " 1 │ 64.6799 2.61148 4.20103 -2.19212e-5\n", " 2 │ 65.3583 2.65105 4.27719 -1.47288e-5\n", " 3 │ 64.7453 2.62234 4.21387 -2.12807e-5\n", " 4 │ 64.8934 2.59253 4.15935 -2.62679e-5\n", " 5 │ 64.8994 2.60053 4.19757 -2.09793e-5\n", " 6 │ 64.8844 2.59933 4.16706 -2.5927e-5\n", " 7 │ 65.2471 2.64545 4.24388 -1.94565e-5\n", " 8 │ 65.542 2.58823 4.19096 -2.03662e-5\n", " 9 │ 64.7453 2.62474 4.22317 -2.00633e-5\n", " 10 │ 65.3307 2.64605 4.27399 -1.45818e-5\n", " 11 │ 64.9274 2.60544 4.20807 -1.9912e-5\n", " ⋮ │ ⋮ ⋮ ⋮ ⋮\n", " 187 │ 65.1625 2.59883 4.20297 -1.98453e-5\n", " 188 │ 64.877 2.62464 4.23568 -1.79791e-5\n", " 189 │ 65.4006 2.64295 4.27379 -1.41986e-5\n", " 190 │ 64.9888 2.62404 4.23948 -1.72703e-5\n", " 191 │ 65.1569 2.57603 4.14365 -2.65807e-5\n", " 192 │ 65.0229 2.61664 4.22998 -1.78266e-5\n", " 193 │ 64.8011 2.62954 4.23098 -1.94266e-5\n", " 194 │ 65.0025 2.62404 4.20377 -2.32039e-5\n", " 195 │ 64.9782 2.58453 4.15015 -2.669e-5\n", " 196 │ 65.6403 2.57332 4.15975 -2.34856e-5\n", "\u001b[36m 175 rows omitted\u001b[0m" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# random sampling of parameters in given ranges, keeping those within 1σ\n", "@time parsam_df = contour_df_samples(fit1, χsq1, (:N, :c), ([2.5,2.8], [4.0,4.3]), nsamples = 3000)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:36:29.503000+08:00", "start_time": "2020-07-12T01:36:29.500Z" } }, "outputs": [ { "data": { "text/plain": [ "((2.566922307435812, 2.660053351117039), (4.115238412804268, 4.2888962987662556))" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get parameter ranges\n", "extrema(parsam_df.:N), extrema(parsam_df.:c)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2020-07-12T09:36:30.728000+08:00", "start_time": "2020-07-12T01:36:30.360Z" } }, "outputs": [ { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2023-08-05T18:40:22.452996\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.7.1, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/html": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scatter(parsam_df.:N, parsam_df.:c, xlab = \"N\", ylab = \"c\")" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.983029 seconds (1.82 M allocations: 98.122 MiB, 4.15% gc time, 74.24% compilation time)\n" ] }, { "data": { "text/html": [ "
7×4 DataFrame
RowchisqNcbg
Float64Float64Float64Float64
164.67992.611484.20103-2.19212e-5
264.93622.606014.20901-2.06306e-5
365.6712.621624.2006-1.71471e-5
465.1372.59794.19099-1.79279e-5
565.0942.60064.19159-1.78679e-5
665.34062.633334.26126-1.40841e-5
765.15992.59884.15856-2.54955e-5
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", "\t& chisq & N & c & bg\\\\\n", "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", "\t1 & 64.6799 & 2.61148 & 4.20103 & -2.19212e-5 \\\\\n", "\t2 & 64.9362 & 2.60601 & 4.20901 & -2.06306e-5 \\\\\n", "\t3 & 65.671 & 2.62162 & 4.2006 & -1.71471e-5 \\\\\n", "\t4 & 65.137 & 2.5979 & 4.19099 & -1.79279e-5 \\\\\n", "\t5 & 65.094 & 2.6006 & 4.19159 & -1.78679e-5 \\\\\n", "\t6 & 65.3406 & 2.63333 & 4.26126 & -1.40841e-5 \\\\\n", "\t7 & 65.1599 & 2.5988 & 4.15856 & -2.54955e-5 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "\u001b[1m7×4 DataFrame\u001b[0m\n", "\u001b[1m Row \u001b[0m│\u001b[1m chisq \u001b[0m\u001b[1m N \u001b[0m\u001b[1m c \u001b[0m\u001b[1m bg \u001b[0m\n", " │\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\n", "─────┼────────────────────────────────────────\n", " 1 │ 64.6799 2.61148 4.20103 -2.19212e-5\n", " 2 │ 64.9362 2.60601 4.20901 -2.06306e-5\n", " 3 │ 65.671 2.62162 4.2006 -1.71471e-5\n", " 4 │ 65.137 2.5979 4.19099 -1.79279e-5\n", " 5 │ 65.094 2.6006 4.19159 -1.78679e-5\n", " 6 │ 65.3406 2.63333 4.26126 -1.40841e-5\n", " 7 │ 65.1599 2.5988 4.15856 -2.54955e-5" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@time contour_df_samples(fit, χsq, (:x0, :x1, :x2), ([2.5,2.8], [4.0,4.3], (-3e-5,3e-5)), nsamples = 1000)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.153705 seconds (550.96 k allocations: 18.102 MiB, 87.97% compilation time)\n" ] }, { "data": { "text/html": [ "
8×4 DataFrame
RowchisqNcbg
Float64Float64Float64Float64
164.67992.611484.20103-2.19212e-5
265.56142.563164.11968-2.88302e-5
365.07792.578954.14646-2.65198e-5
464.7852.594744.17304-2.42721e-5
564.68032.610534.19944-2.20544e-5
664.76172.626324.2256-1.98768e-5
765.02712.642114.2515-1.77407e-5
865.47442.657894.27721-1.56345e-5
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", "\t& chisq & N & c & bg\\\\\n", "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", "\t1 & 64.6799 & 2.61148 & 4.20103 & -2.19212e-5 \\\\\n", "\t2 & 65.5614 & 2.56316 & 4.11968 & -2.88302e-5 \\\\\n", "\t3 & 65.0779 & 2.57895 & 4.14646 & -2.65198e-5 \\\\\n", "\t4 & 64.785 & 2.59474 & 4.17304 & -2.42721e-5 \\\\\n", "\t5 & 64.6803 & 2.61053 & 4.19944 & -2.20544e-5 \\\\\n", "\t6 & 64.7617 & 2.62632 & 4.2256 & -1.98768e-5 \\\\\n", "\t7 & 65.0271 & 2.64211 & 4.2515 & -1.77407e-5 \\\\\n", "\t8 & 65.4744 & 2.65789 & 4.27721 & -1.56345e-5 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "\u001b[1m8×4 DataFrame\u001b[0m\n", "\u001b[1m Row \u001b[0m│\u001b[1m chisq \u001b[0m\u001b[1m N \u001b[0m\u001b[1m c \u001b[0m\u001b[1m bg \u001b[0m\n", " │\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\n", "─────┼────────────────────────────────────────\n", " 1 │ 64.6799 2.61148 4.20103 -2.19212e-5\n", " 2 │ 65.5614 2.56316 4.11968 -2.88302e-5\n", " 3 │ 65.0779 2.57895 4.14646 -2.65198e-5\n", " 4 │ 64.785 2.59474 4.17304 -2.42721e-5\n", " 5 │ 64.6803 2.61053 4.19944 -2.20544e-5\n", " 6 │ 64.7617 2.62632 4.2256 -1.98768e-5\n", " 7 │ 65.0271 2.64211 4.2515 -1.77407e-5\n", " 8 │ 65.4744 2.65789 4.27721 -1.56345e-5" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@time contour_df_samples(fit, χsq, :x0, (2.5,2.8), nsamples = 20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example A in the iminuit tutorial\n", "\n", "The example is [Example A: Fit of a gaussian model to a histogram](https://nbviewer.jupyter.org/github/scikit-hep/iminuit/blob/master/tutorial/automatic_differentiation.ipynb)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 31, "metadata": { "ExecuteTime": { "end_time": "2020-07-10T18:57:19.573000+08:00", "start_time": "2020-07-10T10:57:19.555Z" } }, "outputs": [], "source": [ "using PyCall" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "ExecuteTime": { "end_time": "2020-07-10T18:57:30.061000+08:00", "start_time": "2020-07-10T10:57:29.081Z" } }, "outputs": [ { "data": { "text/plain": [ "([1, 0, 0, 0, 0, 0, 0, 0, 0, 0 … 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [-3.8378621427178974, -3.830092502694802, -3.8223228626717063, -3.8145532226486107, -3.806783582625515, -3.7990139426024196, -3.791244302579324, -3.7834746625562286, -3.775705022533133, -3.7679353825100375 … 3.8618511201697956, 3.869620760192891, 3.8773904002159867, 3.8851600402390822, 3.892929680262178, 3.9006993202852733, 3.908468960308369, 3.9162386003314644, 3.92400824035456, 3.931777880377655])" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# import numpy from Python to generate the same data as in the example\n", "np = pyimport(:numpy)\n", "default_rng = pyimport(\"numpy.random\").default_rng\n", "rng = default_rng(seed=1)\n", "const w, xe = np.histogram(rng.normal(0, 1, 10000), bins=1000)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "ExecuteTime": { "end_time": "2020-07-10T18:57:31.301000+08:00", "start_time": "2020-07-10T10:57:30.918Z" } }, "outputs": [ { "data": { "text/plain": [ "score (generic function with 1 method)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# define the model and the score function to minimize\n", "using SpecialFunctions\n", "\n", "function cdf(x, par)\n", " mu, sigma = par\n", " z = (x - mu) / sigma\n", " return 0.5 * (1 + erf(z / sqrt(2))) \n", "end\n", "\n", "function score(par)\n", " amp = par[1]\n", " rest = par[2:end]\n", " mu = amp * (cdf.(xe[2:end], Ref(rest)) - cdf.(xe[1:end-1], Ref(rest)) )\n", " return 2 * sum(@. mu - w * log(mu + 1e-100))\n", "end" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "ExecuteTime": { "end_time": "2020-07-10T18:57:32.110000+08:00", "start_time": "2020-07-10T10:57:31.974Z" } }, "outputs": [], "source": [ "const start_values = [1.5 * sum(w), 1.0, 2.0]\n", "const limits = [(0, nothing), nothing, (0, nothing)];" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "ExecuteTime": { "end_time": "2020-07-10T18:57:33.509000+08:00", "start_time": "2020-07-10T10:57:32.950Z" } }, "outputs": [], "source": [ "# w/o grad\n", "m = Minuit(score, start_values, limit=limits)\n", "m.strategy = 0\n", "\n", "# using grad\n", "grad_fd(pars) = gradient(score, pars)\n", "m_fd = Minuit(score, start_values, limit=limits, grad = grad_fd)\n", "m_fd.strategy = 0;" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "ExecuteTime": { "end_time": "2020-07-10T18:57:46.990000+08:00", "start_time": "2020-07-10T10:57:34.329Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 790.717 μs (706 allocations: 579.37 KiB)\n" ] }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = -3.871e+04 Nfcn = 115474
EDM = 2.01e-12 (Goal: 0.0002) time = 0.1 sec
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 10.0e3 0.1e3 0
1 x1 -0.011 0.010
2 x2 0.999 0.007 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1 x2
x0 9.91e+03 0.00143 0.00294 (0.004)
x1 0.00143 0.0001 -3.68e-07 (-0.005)
x2 0.00294 (0.004) -3.68e-07 (-0.005) 5.1e-05
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='x0', value=10001.040137667687, error=99.56261942414221, merror=None, is_const=False, is_fixed=False, lower_limit=0.0, upper_limit=None), Param(number=1, name='x1', value=-0.011051713495446203, error=0.010013579751044185, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='x2', value=0.9992897105669448, error=0.007141166855743675, merror=None, is_const=False, is_fixed=False, lower_limit=0.0, upper_limit=None))\n", "[[ 9.91271519e+03 1.43424831e-03 2.94105376e-03]\n", " [ 1.43424831e-03 1.00271779e-04 -3.68307525e-07]\n", " [ 2.94105376e-03 -3.68307525e-07 5.09964811e-05]]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@btime migrad(m)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "ExecuteTime": { "end_time": "2020-07-10T18:58:02.095000+08:00", "start_time": "2020-07-10T10:57:48.944Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 721.547 μs (637 allocations: 521.48 KiB)\n" ] }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Migrad
FCN = -3.871e+04 Nfcn = 114537, Ngrad = 7
EDM = 1.5e-10 (Goal: 0.0002)
Valid Minimum No Parameters at limit
Below EDM threshold (goal x 10) Below call limit
Covariance Hesse ok Accurate Pos. def. Not forced
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name Value Hesse Error Minos Error- Minos Error+ Limit- Limit+ Fixed
0 x0 10.0e3 0.1e3 0
1 x1 -0.011 0.010
2 x2 0.999 0.008 0
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x0 x1 x2
x0 9.94e+03 0.00354 0.094 (0.119)
x1 0.00354 9.98e-05 2.17e-05 (0.275)
x2 0.094 (0.119) 2.17e-05 (0.275) 6.24e-05
" ], "text/plain": [ "PyObject \n", "(Param(number=0, name='x0', value=10001.040134674296, error=99.68672689785672, merror=None, is_const=False, is_fixed=False, lower_limit=0.0, upper_limit=None), Param(number=1, name='x1', value=-0.011051715954195978, error=0.00999100067374932, merror=None, is_const=False, is_fixed=False, lower_limit=None, upper_limit=None), Param(number=2, name='x2', value=0.9992897134627687, error=0.007896419184391323, merror=None, is_const=False, is_fixed=False, lower_limit=0.0, upper_limit=None))\n", "[[9.93744352e+03 3.54034964e-03 9.39740254e-02]\n", " [3.54034964e-03 9.98200945e-05 2.17219137e-05]\n", " [9.39740254e-02 2.17219137e-05 6.23537605e-05]]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@btime migrad(m_fd)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "kernelspec": { "display_name": "Julia 1.9.1", "language": "julia", "name": "julia-1.9" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.9.2" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }