{ "cells": [ { "cell_type": "markdown", "id": "c9a4045f-f389-40f5-9f19-32f8bbebc75d", "metadata": {}, "source": [ "# Methode der kleinsten Quadrate\n", "\n", "Im folgenden wollen wir die **Methode der kleinsten Quadrate (Least Squares)** näher beleuchten. Diese Methode wird oft benutzt, um eine Funktion $\\lambda(x; \\ $**$\\phi$**$)$ mit den Funktionsparametern $\\mathbf{\\phi}$ an die gemessenen Punkte **$(x,y)$** anzupassen. Um jedoch die **Methode der kleinsten Quadrate** zu verstehen, wollen wir sie erst einmal anschaulich und halb-mathematisch herleiten. Dabei stüzen wir uns im Folgenden auf eine Herleitung aus dem Buch **\"Statistical Data Analysis\"** von **Glen Cowan**." ] }, { "cell_type": "markdown", "id": "5a8f4ef9-222c-440f-8621-e612a8988fd0", "metadata": {}, "source": [ "Bevor wir dies jedoch tun, schauen wir uns das Problem des Fittens doch erst einmal anschaulich an. \n", "\n", "
\n", "\"{{\n", "
\n", "\n", "Beim Fitten, zum Beispiel einer Geraden (lila) an eine Reihe von Messpunkten (schwarz), wollen wir den Abstand zwischen den einzelnen Messpunkten und der Geraden (orange) möglichst klein halten. Sprich die Summe über alle $\\Delta Y_i$ \n", "\n", "$$\\sum_i \\Delta Y_i $$\n", "\n", "sollte möglichst klein sein, wobei $\\Delta Y_i$ durch \n", "\n", "$$ \\Delta Y_i = y_i – f(x_i, \\vec{\\theta})$$\n", "\n", "gegeben ist und $f(x, \\vec{\\theta})$ unsere Fitfunktion repräsentiert. Hierbei symbolisiert $\\vec{\\theta}$ die Parameter unserer Funktion. Sprich im Fall einer Geraden die Steigung $m$ und den Offset $y_0$ ($\\vec{\\theta}=(m, y_0)$). \n", "\n", "Darüber hinaus sollte die Richtung des Abstandes, sprich ob ein Messpunkt unterhalb oder oberhalb der Fitfunktion liegt, keine Rolle spielen. Daher quadrieren wir das Ganze und erhalten somit\n", "\n", "$$ LS = \\sum_i = (y_i – f(x_i, \\theta))^2$$\n", "\n", "Dies ist die allgemeinste Form der Methode der kleinsten Quadrate. Sie besagt, dass die Funktion, welche die Messpunkte am besten beschreibt, sprich die optimalen Werte für $\\vec{\\theta}$ aufweist, den Ausdruck LS minimiert. \n", "\n", "Nun weisen unsere Messpunkte nicht nur Werte für X und Y aus, sondern sind noch zusätzlich durch einen Messunsicherheit (Messfehler) charakterisiert. Diese sollten wir natürlich bei der Bestimmung unserer Parameter $\\vec{\\theta}$ berücksichtigen. Sprich Messwerte mit einer großen Unsicherheit sollten weniger stark berücksichtigt werden wie Messwerte mit einer kleinen Unsicherheit. Dies können wir gewährleisten, sofern wir die Distanzen $\\Delta Y_i$ mit den jeweiligen Unsicherheiten $\\Delta y_i$ gewichten, sprich \n", "\n", "$$ \\chi^2 = \\sum_i =\\frac{(y_i – f(x_i, \\theta))^2}{\\Delta y_i^2}$$\n", "\n", "berechnen. Das Quadrieren der Unsicherheiten sorgt dafür, dass der Ausdruck dimensionslos wird. Diese besondere Form der kleinsten Quadrate nennt man auch oft $\\chi^2$-Fit. Wir werden später noch einmal genauer beleuchten warum. " ] }, { "cell_type": "markdown", "id": "1153a474-8afe-44ae-8511-b403a4ad861d", "metadata": {}, "source": [ "Nun wollen wir uns erst einmal ein Beispiel anschauen, wie dies in der Praxis aussieht. In der nachfolgenden Animation wird ein Ohm’schwer Widerstand an eine Reihe von Spannungs- und Strommessungen gefittet. Dies entspricht unserem obigen Geradenbeispiel. \n", "
\n", "\"{{\n", "
\n", "\n", "Wie die Animation zeigt, werden so lange verschiedene Widerstände ausprobiert, bis ein Wert gefunden wurde, bei dem das $\\chi^2$ minimal wird. Dieses Variieren der Widerstandswerte passiert nicht zufällig, sondern basiert auf einem Algorithmus für Optimierungsverfahren. \n", "\n", "Es gibt verschiedene Arten von Algorithmen, um Minimierungsprobleme zu lösen. Wie diese genau aufgebaut sind, lernen Sie in anderen Programmierveranstaltungen, wie zum Beispiel *Programmieren für Physiker* oder *Computer in der Wissenschaft*. Zum Glück haben uns in Python bereits andere Menschen diese Arbeit abgenommen. Im folgenden wollen wir uns das package `iminuit` etwas genauer anschauen, welches bereits ein sehr umfangreiches und mächtiges Fittingtool darstellt. \n", "\n", "[iminuit](https://iminuit.readthedocs.io/en/stable/tutorials.html) verfügt auch über eine exzellente Dokumentation, mit Hilfe derer Sie auch komplexere Probleme lösen können." ] }, { "cell_type": "markdown", "id": "702b9a12-539d-43b5-8314-7f8dcdf93cda", "metadata": {}, "source": [ "Um mit Hilfe von `imnuit` etwas zu fitten brauchen wir zunächst einmal ein paar Messdaten und ein Fitmodel. Im Folgenden wollen wir die Entladekurve eines Kondensators mit der Kapazität $C$ über einen Widerstand $R$ bestimmen. Die Entladekurve ist durch eine einfache Exponentialfunktion der Form \n", "\n", "$$ I = I_0 \\exp\\{-t/RC\\}$$\n", "\n", "gegeben. Die Messdaten befinden sich in einer CSV-Datei im Ordner `data`. Die CSV-Datei kann mit Hilfe des `pandas` package eingelesen werden. [pandas](https://pandas.pydata.org/) ist ähnlich wie `numpy` ein package welches eine Fülle an Funktionen zum Verarbeiten und Verwalten von Daten bereitstellt. Es gehört ähnlich wie auch `numpy`, `scipy` und `matplotlib` zu den Standardbibliotheken, welche sehr häufig in der Wissenschaft verwendet werden. Aufgrund der zeitlichen Limitierung des Versuchstages können wir leider nicht auf alle Funktionen von `pandas` eingehen und wollen uns im Folgenden lediglich auf die Grundlagen beschränken. Für ihre zukünftigen Praktika lohnt es sich jedoch, noch mehr über `pandas` in Ihrer Eigenstudienzeit zu lernen." ] }, { "cell_type": "markdown", "id": "5215840a-1276-49c1-9181-274cd8a2b4bf", "metadata": {}, "source": [ "CSV-Datein können wie folgt eingelesen werden" ] }, { "cell_type": "code", "execution_count": 485, "id": "f8ef1be0-a42d-4a11-b674-c2ed099fefcb", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "\n", "data_frame = pd.read_csv('data/discharge_data.csv')" ] }, { "cell_type": "markdown", "id": "15800aa8-8a7f-4d59-ab06-3edc6bb1e443", "metadata": {}, "source": [ "Dabei gibt pandas die Daten als so genannten DataFrames zurück. Dies sind Objekte, welche ähnlich wie strukturierte `numpy.arrays` zu behandeln sind. DataFrames werden allgemein als Tabellen dargestellt." ] }, { "cell_type": "code", "execution_count": 486, "id": "f14ca80f-e0d7-4447-9335-b3744f7a028f", "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0timecurrentdelta_currentdelta_time
000.0006371.0665380.050.000637
110.0885530.4063160.050.011447
220.1947730.1430930.050.005227
330.3064130.0781410.050.006413
440.4052850.0650420.050.005285
550.5073900.0118850.050.007390
660.613279-0.0188240.050.013279
770.7075010.0445130.050.007501
880.7904790.0068810.050.009521
990.883672-0.0190520.050.016328
\n", "
" ], "text/plain": [ " Unnamed: 0 time current delta_current delta_time\n", "0 0 0.000637 1.066538 0.05 0.000637\n", "1 1 0.088553 0.406316 0.05 0.011447\n", "2 2 0.194773 0.143093 0.05 0.005227\n", "3 3 0.306413 0.078141 0.05 0.006413\n", "4 4 0.405285 0.065042 0.05 0.005285\n", "5 5 0.507390 0.011885 0.05 0.007390\n", "6 6 0.613279 -0.018824 0.05 0.013279\n", "7 7 0.707501 0.044513 0.05 0.007501\n", "8 8 0.790479 0.006881 0.05 0.009521\n", "9 9 0.883672 -0.019052 0.05 0.016328" ] }, "execution_count": 486, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_frame" ] }, { "cell_type": "markdown", "id": "fc24d5fa-d3c0-4866-b18a-9dd07768a222", "metadata": {}, "source": [ "Um die Daten aus einer bestimmente Spalte zu bekommen, können diese einfach mit dem Spaltennamen aufgerufen werden:" ] }, { "cell_type": "code", "execution_count": 487, "id": "93b7cbb1-1095-4a53-83d9-7b32f068daea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 0.000637\n", "1 0.088553\n", "2 0.194773\n", "3 0.306413\n", "4 0.405285\n", "5 0.507390\n", "6 0.613279\n", "7 0.707501\n", "8 0.790479\n", "9 0.883672\n", "Name: time, dtype: float64" ] }, "execution_count": 487, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_frame['time']" ] }, { "cell_type": "markdown", "id": "4476302c-eb65-409a-b1aa-2342ecbd9c88", "metadata": {}, "source": [ "oder" ] }, { "cell_type": "code", "execution_count": 488, "id": "969d8afa-5d52-4e01-8b64-ddab090891b8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1.066538\n", "1 0.406316\n", "2 0.143093\n", "3 0.078141\n", "4 0.065042\n", "5 0.011885\n", "6 -0.018824\n", "7 0.044513\n", "8 0.006881\n", "9 -0.019052\n", "Name: current, dtype: float64" ] }, "execution_count": 488, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_frame['current']" ] }, { "cell_type": "markdown", "id": "32249263-ec9f-44de-81b7-7a6c69e23332", "metadata": {}, "source": [ "Einzelne Messwerte lassen sich mit Hilfe von `.loc` bestimmen." ] }, { "cell_type": "code", "execution_count": 489, "id": "e4b44637-8e25-46c1-863d-3cd7604f52dd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0118852615051639" ] }, "execution_count": 489, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_frame.loc[5, 'current']" ] }, { "cell_type": "markdown", "id": "a2c0c04b-be37-482d-aabc-802bfa2965d2", "metadata": {}, "source": [ "Sollten Sie eine Spalte von Messdaten in ein `numpy.array` umwandeln wollen, so können Sie dies wie folgt erreichen" ] }, { "cell_type": "code", "execution_count": 490, "id": "f246f55e-5fc8-427c-990d-3e97799b5aeb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1.06653795, 0.40631626, 0.1430927 , 0.07814083, 0.06504185,\n", " 0.01188526, -0.01882397, 0.04451315, 0.00688072, -0.01905164])" ] }, "execution_count": 490, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_frame['current'].values" ] }, { "cell_type": "markdown", "id": "3d2bd9ed-852d-4448-a051-a6f677ea891d", "metadata": {}, "source": [ "Die Messdaten können Sie auch wie gewohnt mit Hilfe von `matplotlib` darstellen." ] }, { "cell_type": "code", "execution_count": 491, "id": "e3898686-3926-48a0-be4c-4d460a1792f3", "metadata": {}, "outputs": [ { "data": { "image/png": "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jt3l4EuCwaC6d++u559/XsOGDdOECRP05JNPasWKFXaXltK2bt2qhQsX6rnnntOOHTv00ksvaePGjVqwYIHdpbULzNxEICcnRy6XS16vN6zd6/UqNze3zWNyc3Oj6o/YxDI2FzzzzDNatGiRXnvtNQ0cODCRZaacaMdl7969OnDggMaNGxdqCwaDkqROnTqpsbFRvXr1SmzRKSCW35e8vDylpaXJ5XKF2vr376/m5ma1trYqPT09oTWngljG5amnntKkSZP00EMPSZIGDBggv9+vhx9+WE8++aScztSeu0jtZx+h9PR0DRs2THV1daG2YDCouro6lZSUtHlMSUlJWH9JevXVVy/ZH7GJZWwkafHixVqwYIFqa2s1fPjwZJSaUqIdl379+un9999XQ0ND6PKtb31Ld999txoaGlRYWJjM8o0Vy+/L7bffrqamplDYlKQ9e/YoLy+PYBMnsYzLmTNnLgowFwKoxVdGcip4pNavX2+53W5r7dq11gcffGA9/PDDVteuXa3m5mbLsixr0qRJ1pw5c0L933zzTatTp07WM888Y3344YdWVVUVp4InSLRjs2jRIis9Pd367W9/ax09ejR0OXXqlF1PwUjRjstXcbZUYkQ7LgcPHrS6dOlife9737MaGxutP/zhD1b37t2tH//4x3Y9BSNFOy5VVVVWly5drP/8z/+09u3bZ73yyitWr169rAceeMCup9CuEG6isGzZMuuGG26w0tPTrZEjR1r/+7//G7rtzjvvtKZMmRLW/8UXX7T69u1rpaenW7feequ1cePGJFecOqIZm549e1qSLrpUVVUlv3DDRfs782WEm8SJdlzeeustq7i42HK73dZNN91k/eQnP7HOnz+f5KrNF824nDt3zvrRj35k9erVy8rIyLAKCwutxx9/3Pr000+TX3g75LAs5q8AAIA5WHMDAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAOg3fnud7+r8ePHJ/1x165dK4fDIYfDoZkzZ4ba77rrrlB7Q0ND0usCEB2+FRxAUjkcjsveXlVVpV/84he2fflfVlaWGhsb1blz51DbSy+9pL1792rkyJG21AQgOoQbAEl19OjR0M8bNmzQvHnz1NjYGGrLzMxUZmamHaVJ+iJ85ebmhrVdd9118vl8NlUEIFp8LAUgqXJzc0OX7OzsUJi4cMnMzLzoY6m77rpLM2bM0MyZM9WtWzd5PB6tWrVKfr9f5eXl6tKli3r37q3/+Z//CXusXbt26b777lNmZqY8Ho8mTZqkEydOJPkZA0g2wg2ADmHdunXKycnRtm3bNGPGDD322GP6p3/6J40aNUo7duzQmDFjNGnSJJ05c0aSdPLkSd1zzz0aMmSI3nnnHdXW1srr9eqBBx6w+ZkASDTCDYAOYdCgQZo7d6769OmjyspKZWRkKCcnR9OmTVOfPn00b948/fWvf9XOnTslScuXL9eQIUO0cOFC9evXT0OGDNGaNWu0ZcsW7dmzx+ZnAyCRWHMDoEMYOHBg6GeXy6Wvfe1rGjBgQKjN4/FIko4dOyZJeu+997Rly5Y21+/s3btXffv2TXDFAOxCuAHQIaSlpYVddzgcYW0XzsIKBoOSpNOnT2vcuHH66U9/etF95eXlJbBSAHYj3AAw0tChQ/Vf//VfKioqUqdO/FcHpBLW3AAw0vTp0/XJJ5/owQcf1Ntvv629e/dq8+bNKi8vVyAQsLs8AAlEuAFgpB49eujNN99UIBDQmDFjNGDAAM2cOVNdu3aV08l/fYDJHJZd24ACQDuzdu1azZw5UydPnrzotgMHDujGG2/Uu+++q8GDBye9NgCR488XAPiSlpYWZWZmavbs2aG2++67T7feequNVQGIBjM3APD/Tp06Ja/XK0nq2rWrcnJyJElHjhzRZ599Jkm64YYblJ6ebluNAK6McAMAAIzCx1IAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFH+D4JJ1k4ecslYAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.errorbar(\n", " data_frame['time'], \n", " data_frame['current'], \n", " data_frame['delta_current'], \n", " ls='', \n", " marker='.', \n", " color='k'\n", ")\n", "plt.xlabel('Time []')\n", "plt.ylabel('Current []')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "100a4fe4-a5c4-4be3-a7f7-13337b97a194", "metadata": {}, "source": [ "Nun wollen wir die Messdaten mit Hilfe von `iminuit` fitten. Hierzu müssen wir zunächste zwei Module des packages importieren und eine Funktion für die Entladekurve des Kondensators definieren:" ] }, { "cell_type": "code", "execution_count": 1, "id": "520f4973", "metadata": {}, "outputs": [], "source": [ "# Diese Zelle nur auf JupyterHub des ZDV ausführen um `iminuit` zu installieren!\n", "# import sys\n", "# import subprocess\n", "# subprocess.check_call([\n", "# sys.executable, \n", "# '-m',\n", "# 'pip',\n", "# 'install',\n", "# '--proxy',\n", "# 'http://webproxy.zdv.uni-mainz.de:3128',\n", "# 'iminuit'\n", "# ])" ] }, { "cell_type": "code", "execution_count": 492, "id": "2ffe340b-cd0f-45ec-b5b8-42e7a0349d4c", "metadata": {}, "outputs": [], "source": [ "\n", "from iminuit import Minuit, cost\n", "import numpy as np\n", "\n", "def discharge_current(t, I0, R, C):\n", " return I0 * np.exp(-t/(R*C))" ] }, { "cell_type": "markdown", "id": "ef87da8f-7af9-4e3f-af63-c28a2e1d9830", "metadata": {}, "source": [ "Nun können wir den Fit selbst durchführen. Hierzu muss zuerst mittels dem `cost` Modul eine sogenannte Kostenfunktion erstellt werden. Die Kostenfunktion ist im Grunde unsere $\\chi^2$ Funktion\n", "\n", "$$ \\chi^2 = \\sum_i =\\frac{(y_i – f(x_i, \\theta))^2}{\\Delta y_i^2}$$\n", "\n", "welche minimiert werden soll. Dies ist bereits bei `iminuit` für uns vordefiniert. Anschließend können wir die genutzt Kostenfunktion über `Minuit` minimieren lassen. Hierzu müssen wir zunächst geeignete Startwerte für den Minimierungsprozess vorgeben. Diese sollten im Idealfall nicht allzu weit von den wahren Werten entfernt liegen. Wir werden an einem späteren Beispiel noch einmal genauer zeigen, wie man hier vorgehen kann. Um den Minimierungsprozess zu starten muss noch am Ende `migrad()` aufgerufen werden." ] }, { "cell_type": "code", "execution_count": 493, "id": "bf36b7b9-fb20-47b7-8538-479026b48fb2", "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", "
Migrad
FCN = 2.707 (χ²/ndof = 0.4) Nfcn = 103
EDM = 2.18e-10 (Goal: 0.0002)
Valid Minimum Below EDM threshold (goal x 10)
No parameters at limit Below call limit
Hesse ok Covariance FORCED pos. def.
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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 I0 1.07 0.05
1 R 0.03e6 0.05e6
2 C 3e-6 5e-6
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
I0 R C
I0 0.00253 -34.4329 (-0.014) -3.448e-9 (-0.014)
R -34.4329 (-0.014) 2.25e+09 -224.599380820e-3 (-0.997)
C -3.448e-9 (-0.014) -224.599380820e-3 (-0.997) 2.25e-11
\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2024-10-16T21:40:45.613232\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.8.2, 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" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 2.707 (χ²/ndof = 0.4) │ Nfcn = 103 │\n", "│ EDM = 2.18e-10 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ Below EDM threshold (goal x 10) │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ No parameters at limit │ Below call limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Hesse ok │ Covariance FORCED pos. def. │\n", "└──────────────────────────────────┴──────────────────────────────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n", "│ 1 │ R │ 0.03e6 │ 0.05e6 │ │ │ │ │ │\n", "│ 2 │ C │ 3e-6 │ 5e-6 │ │ │ │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌────┬───────────────────────────────────────────────────────┐\n", "│ │ I0 R C │\n", "├────┼───────────────────────────────────────────────────────┤\n", "│ I0 │ 0.00253 -34.4329 -3.448e-9 │\n", "│ R │ -34.4329 2.25e+09 -224.599380820e-3 │\n", "│ C │ -3.448e-9 -224.599380820e-3 2.25e-11 │\n", "└────┴───────────────────────────────────────────────────────┘" ] }, "execution_count": 493, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Kostenfunktion:\n", "ls = cost.LeastSquares(\n", " data_frame['time'],\n", " data_frame['current'], \n", " data_frame['delta_current'], \n", " discharge_current,\n", ")\n", "\n", "# Minimierung\n", "mi = Minuit(ls, # Kostenfunktion \n", " I0=0.9, # Startwerte\n", " R=10*10**3, \n", " C=10**-6\n", " )\n", "mi.migrad()\n", "mi.hesse()" ] }, { "cell_type": "markdown", "id": "b5df2d60-8284-4757-96c8-7f26afc17942", "metadata": {}, "source": [ "Wie ihr seht gibt euch minuit euch vier verschiedene Objekte zurück. Für euch am wichtigsten ist die erste Tabelle, welche euch zeigt, ob euer Fit funktioniert hat. Im Allgemeinen gilt sind hier alle Felder grün hat euer Fit funktioniert, gelbe Felder können ein Problem andeuten müssen sie aber nicht und lila Felder bedeuten, dass etwas mit eurem Fit nicht in Ordnung ist. Die Bedeutungen der einzelnen Felder für unseren obigen Fit sind auch nochmal in der nachfolgenden Abbildung einzeln erklärt. Die Bedeutung der meisten Felder werden wir noch im laufe des Kurses kennen lernen. \n", "\n", "
\n", "\"{{Fit\n", "
\n", "\n", "Wie wir unserer Tabelle entnehmen können, gibt es also ein Problem mit unserem Fit. Um besser verstehen zu können, was das Problem sein könnte, wollen wir uns auch noch die anderen Outputs ansehen.\n", "\n", "Die zweite Tabelle zeigt uns die bestimmten Werte für die Parameter in der Spalte `Value` und deren Unsicherheiten in der Spalte `Hess error`. Hierbei fällt auf, dass für unseren obigen Fit die Unsicherheiten der Parameter $R$ und $C$ größer sind als die bestimmten Werte selbst. \n", "\n", "Die dritte Tabelle ist die sogennnante **Kovarianzmatrix**. Die Kovarianzmatrix hat als Einträge auf ihrer **Hauptdiagonalen** die **Varianzen der entsprechenden Parameter** auf der **Nebendiagonalen** stehen die **Kovarianzen**. Der Wert in Klammern gibt die **Korrelation** zwischen den entspechenden Parametern an. Sind zwei Parameter stark **korreliert**, wird das entsprechende Feld **blau** dargestellt, bei einer **Antikorrelation** ist das Feld **rot**. \n", "\n", "Die letzte Ausgabe ist ein Plot unserer Messwerte zusammen mit der Fitfunktion basierend auf den Parametern des besten Fits. (Nur für neuere Version von `iminuit`)" ] }, { "cell_type": "markdown", "id": "72665daa-1d74-41da-8b9a-1e4c427eed07", "metadata": {}, "source": [ "Obwohl underser Fit unsere Messdaten gut widerspiegelt, scheint es ein Problem mit der Bestimmung einiger Parameter zu geben. Die große Unsicherheit in $R$ und $C$ deutet an, dass hier das Problem liegt. Um dies zu bestätigen, können wir uns einmal das reduzierte $\\chi^2(x, I_0, R, C)$ als Funktion des entsprechenden Parameters von `iminuit` plotten lassen, während wir die anderen Parameter, so wie die x-Werte, konstant lassen. \n", "\n", "Für $I_0$ sieht das entsprechende Profil so aus:" ] }, { "cell_type": "code", "execution_count": 494, "id": "d3230cb6-fbe3-4093-ba09-5271dc168a4d", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\Matthias\\.venv\\jupyter\\lib\\site-packages\\iminuit\\minuit.py:2579: IMinuitWarning: Specified nsigma bound, but error matrix is not accurate\n", " warnings.warn(\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mi.draw_profile('I0')\n", "plt.ylabel('$\\chi^2(I_0, x, R, C)/ndof$')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "b837e542-d3c9-4f61-a8d1-4f22db7d5137", "metadata": {}, "source": [ "Bei den anderen beiden Parametern ist dies nicht der Fall:" ] }, { "cell_type": "code", "execution_count": 495, "id": "af339c6e-f0e7-40cd-a2cf-61aaaa4df1e4", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHHCAYAAABKudlQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSF0lEQVR4nO3deVxUVRsH8N/MADMogguikIiIuOKKQuSWiSmipZVaWUKaS1Fq+rpQufYqam69ZaamkOaSVtqmlZqmlhsomaKm5r5kqSwqM8DMef+ouTKxCDOXuTPw+34+8/HOnXPvPHcGLw/nnOdelRBCgIiIiMhJqZUOgIiIiMgWTGaIiIjIqTGZISIiIqfGZIaIiIicGpMZIiIicmpMZoiIiMipMZkhIiIip8ZkhoiIiJwakxkiIiJyakxmiIiIyKkxmSGrJSUlQaVSSQ8XFxc88MADiI2NxeXLl+0ez7Fjx9CvXz/Ur18flSpVgre3Nzp16oSvvvqqRNtfvXoVEydORJcuXVClShWoVCrs3Lmz0Lbff/89hgwZgpCQEGg0GtSrV0++A7HC8uXL0aRJE+h0OgQHB+Pdd9+97zbdunWDSqXCK6+8Uqax5ebmomnTplCpVJg7d+592+/cudPi5+rfjxkzZkht//0zmP9x7dq1sjysQv3888/o0KEDKlWqhNq1a2PkyJG4fft2sdvMmDEDKpUKISEhdoqyaEOHDoVKpUKvXr1K1L6476lbt25Su3PnzhXZbt26dWV1OEW6fPky+vfvj6pVq8LT0xOPP/44fv/992K32bNnjxTzX3/9ZadIqaRclA6AnN/06dMRGBgIvV6Pffv2ISkpCXv27MHRo0eh0+nsFsf58+eRlZWFmJgY+Pn54e7du/jss8/w2GOPYcmSJRg2bFix2588eRKzZ89GcHAwmjdvjr179xbZds2aNfjkk0/Qpk0b+Pn5yX0opbJkyRKMGDECTz75JMaMGYPdu3dj5MiRuHv3LiZMmFDoNp9//nmxxyend999FxcuXChx+yZNmmDVqlUF1q9atQrff/89Hn300QKvmX8G86tatWqpY7VFamoqunbtiiZNmmD+/Pm4dOkS5s6di1OnTmHLli2FbnPp0iXMnDkTlStXtmushUlOTkZSUlKp/s8W9j0lJyfjnXfeKfR7euaZZ9CzZ0+LdREREaUP1ga3b99Gly5dkJGRgddffx2urq5YsGABOnfujNTUVNSoUaPANiaTCa+++ioqV66MO3fu2DVeKiFBZKXExEQBQBw8eNBi/YQJEwQA8cknnygU2T15eXmiZcuWolGjRvdtm5mZKW7cuCGEEGLDhg0CgNixY0ehbS9fvixycnKEEEJER0eLgIAAuUKWmD/f4ty9e1fUqFFDREdHW6wfOHCgqFy5srh582aBbbKzs0W9evXE9OnTBQARFxcna9z5/fHHH8LLy0t6r7ffftvqfTVo0EAEBwdbrCvqZ1BOZ8+eLfZnwSwqKkr4+vqKjIwMad2yZcsEAPHdd98Vus2AAQPEI488Ijp37iyaNWtmdYwARGJiotXbm0wmERERIQYPHiwCAgIK/DyVxpAhQ4RKpRIXL16U1pk/Q1u+/5IICAgQU6ZMKbbN7NmzBQBx4MABad3x48eFRqMR8fHxhW6zePFiUaNGDTFq1CgBQPz5559yhk0y4DATya5jx44AgDNnzigcCaDRaODv74/09PT7tq1SpQqqV69eov36+fnB1dW1RG3T09MxevRo+Pv7Q6vVokGDBpg9ezZMJlOJti/Ojh07cOPGDbz88ssW6+Pi4nDnzh188803BbaZM2cOTCYT/vOf/9j8/vczceJENGrUCM8995xN+zlw4ABOnz6NgQMHFtkmKysLRqOxyNdNJhMWLlyIZs2aQafToVatWhg+fDhu3bplU2wAkJmZia1bt+K5556Dp6entH7QoEHw8PDA+vXrC2yza9cufPrpp1i4cKHN72+rVatW4ejRoxZDeNYwGAz47LPP0LlzZ9SpU6fQNnfu3EFOTk6x+9myZQs6duyIypUro0qVKoiOjsaxY8dsis3s008/Rbt27dCuXTtpXePGjdG1a9dCv6ebN2/izTffxPTp0+3e20clx2SGZHfu3DkAQLVq1e7b1mAw4K+//irRo6Tu3LmDv/76C2fOnMGCBQuwZcsWdO3a1drDscndu3fRuXNnfPzxxxg0aBD+97//oX379oiPj8eYMWNs3v/hw4cBAG3btrVYHxoaCrVaLb1uduHCBcyaNQuzZ8+Gu7u7ze9fnAMHDuCjjz7CwoULoVKpbNrX6tWrAaDIZKZLly7w9PREpUqV8Nhjj+HUqVMF2gwfPhzjxo1D+/bt8c477+CFF17A6tWr0b17d+Tm5toU36+//oq8vLwC34ObmxtatWpV4HswGo149dVX8eKLL6J58+Y2vbetsrKyMGHCBLz++uuoXbu2TfvavHkz0tPTi/yepk2bBg8PD+h0OrRr1w7ff/99gTarVq1CdHQ0PDw8MHv2bEyaNAlpaWno0KGDdG6xlslkwpEjRwp8TwAQFhaGM2fOICsry2L9pEmTULt2bQwfPtym96ayxTkzZLOMjAz89ddf0Ov12L9/P6ZNmwatVluiSYRr167FCy+8UKL3EUKUqN3YsWOxZMkSAIBarcYTTzyB9957r0Tbym3+/Pk4c+YMDh8+jODgYAB//1L18/PD22+/jbFjx8Lf39/q/V+9ehUajQY+Pj4W693c3FCjRg1cuXLFYv3YsWPRunVrPP3001a/Z0kIIfDqq69iwIABiIiIsOmXkNFoxCeffIKwsDA0aNDA4rVKlSohNjZWSmZSUlIwf/58PPTQQzh06JD02e7ZswcffvghVq9ejWeffVbavkuXLujRowc2bNhgsb60rl69CgDw9fUt8Jqvry92795tse6DDz7A+fPnsW3bNqvfUy7Tp0+Hu7s7XnvtNZv3tXr1ami1Wjz11FMW69VqNR599FH07dsXDzzwAH7//XfMnz8fUVFR+PLLLxEdHQ3g7/ksI0eOxIsvvoilS5dK28fExKBRo0aYOXOmxfrSunnzJgwGQ5HfEwBcuXIFjRo1AgAcOXIES5YswebNm6HRaKx+Xyp7TGbIZpGRkRbP69Wrh48//rjIbub8unfvjq1bt8oaz+jRo/HUU0/hypUrWL9+PYxG4327tcvKhg0b0LFjR1SrVs2idykyMhKzZs3Crl27pL9ib926ZTFMYq6C+XevVKVKlVCpUiUAQHZ2Ntzc3Ap9b51Oh+zsbOn5jh078Nlnn2H//v3yHFwxkpKS8Ouvv+LTTz+1eV/bt2/HH3/8gddff73Aa/3790f//v2l53369EH37t3RqVMnzJgxAx988AGAv78HLy8vdOvWzeLzDA0NhYeHB3bs2CElM7dv34Zer5famIehzEm7maurK7y8vABA+py1Wm2BGP/9Pdy4cQOTJ0/GpEmTULNmzVJ/Hnfv3sXdu3cLrL99+7ZFfBqN5r69o7/99hveeecdrF27ttDYSyMzMxPffPMNevbsWWA4pm7duvjuu+8s1j3//PNo2rQpxo4dKyUzW7duRXp6Op555pkCxxIeHo4dO3ZI6wwGQ4FeFJPJhLt37xb4P+Pt7Q3g/t9T/jYAMHLkSERFRRU6mZkcjNKTduzhxx9/FL169RK+vr4CgNi4cWOpts/OzhYxMTEiJCREaDQa8fjjjxfabseOHaJ169bCzc1NBAUFFZiQ9/7774vmzZuLKlWqiCpVqogHH3xQbN682bqDcgDmyZeLFi0SW7duFZ9++qno2bOn8PDwEDt37lQ6PEm3bt1Eu3bthMlkKvE295sAnF9xE4Dd3d0FgCIf8+fPl9oGBAQU29b8yD/BMS4uTmg0mkLfu2bNmuLpp58WQgiRm5srQkJCxKBBgyzaoIQTgG/cuCGuXr0qPdLT04tsm5GRIWrVqiUmT54srbNlAuigQYOERqMR165dK/E2Dz74oAgKCpKeR0VFFfuZPvbYY1LbmJiYEn0PnTt3lrYx/7zs2rWrQCz9+vUTtWvXlp6PGDFCNGjQQBgMBmldaSYAT5kypUTxlWRSeo8ePSyOQwhh9QTgFStWCADi008/LfE2EydOFACkycLmyblFPTw9PaVtzeefkjzM/vzzTwFATJ8+vUAsixYtEgDEiRMnhBBCrFu3Tri6uoqTJ09KbcyfPScAO54K0TNz584dtGzZEoMHD8YTTzxR6u2NRiPc3d0xcuRIfPbZZ4W2OXv2LKKjozFixAisXr0a27dvx4svvghfX190794dAFCnTh3MmjULwcHBEELgo48+wuOPP47Dhw+jWbNmNh2jksLCwqQx6D59+qBDhw549tlncfLkSXh4eBS7bXZ2NjIyMkr0PtaO5z/11FMYPnw4fvvtN6n72F5MJhO6deuG8ePHF/p6w4YNpeXVq1db/FX4/fff4+233y7Qc1W/fn1p2dfXF0ajEdevX7cYasrJycGNGzeksvGVK1fi5MmTWLJkSYEhn6ysLJw7dw4+Pj5Sj8+/PfHEE/jxxx+l5zExMUhKSiq07dy5c5GTk4MBAwZI73Xp0iUAf/dynDt3Dn5+fkX2KOWXnZ2NjRs3IjIyErVq1bpvezN/f3+cPHlSem4ymeDj4yPNvfm3/D0k48ePt5iw/Mcff+C5557D3Llz0bJlS2l9/l4P8xCFebgpv6tXr0rfw6lTp7B06VIsXLjQYghQr9cjNzcX586dg6enZ7ET0QcNGoQOHTpYrOvWrRvGjRtn0YNwvzlRP/zwA7799lt8/vnnFj8TeXl5yM7Oxrlz51C9enWLCc3FWb16Nby8vEp8jRoA0jDgzZs3UadOHWlS/KpVqwr9/+7icu9XVmG9us899xweffRRDBo0qND3q169OrRabZHfEwDpuxo3bhz69esHNzc36fMxFxJcvHgROTk5il+WgfJROpuyNxTSM6PX68XYsWOFn5+fqFSpkggLCyvyL/KYmJhCe2bGjx9f4C+rAQMGiO7duxcbT7Vq1cSHH35YmkNwGEWVxe7YsUMAEAkJCSXeR0ke1lq4cKEAIPbv31/ibeTqmWnatKmIiIgo8fvmV5LS7K+//loAEN98843F+p9++kkAECtXrhRClOyv+eJ6LJOTk8XWrVulx7Fjx4psW5KejcOHD5foM1i3bp3FcZRUaGioaNiwofT85ZdfFhqNRty9e7dU+xGiZKXZ6enpwsXFRYwbN85ivcFgEB4eHmLw4MFCiHv/N4p7jBo1qtQxworS7JL831uwYEGJ9nXlyhWhVqul4yypsWPHCgDiypUrQggh1q9fL4CiS9nvpySl2W3bthXt2rUrsL5bt26ifv360vP7fTYtW7a0KkYqGxWiZ+Z+XnnlFaSlpWHdunXw8/PDxo0b0aNHD/z666/SpM372bt3b4G5I927d8fo0aMLbW80GrFhwwbcuXPH7heNKmsPP/wwwsLCsHDhQowePbrYi3DJOWfm370TwN9Xn125ciXc3d3RtGlTaf3Vq1eRkZGBoKCgEpdYW6N///6YOnUqvvvuO6mHziw9PR0eHh4Wf22W1iOPPILq1atj8eLFFhcjW7x4MSpVqiTNRXj66afRqlWrAtv37dsXPXv2xNChQxEeHl7k+4SGhpY4ppEjR6JPnz4W665fv47hw4cjNjYWjz/+uHSBu9zcXJw5cwZeXl6FTspcs2YNKlWqhL59+xb6Xn/++WeBeSebN29GSkoKRo4cKa3r378/3n//fbz11luYOXOmRfu8vDzcvn3bprJbLy8vREZG4uOPP8akSZNQpUoVAH/3MNy+fRv9+vUDAISEhGDjxo0Ftn/zzTeRlZWFd955B0FBQVbHURqPPPJIobEMGzYMAQEBeOONNywqrcyXWigsvnXr1sFkMhVZxVTY93T58mWsWLECLVq0kL777t27w9PTEzNnzkSXLl0K/N8sbD+l9dRTT2HixIlITk6WepRPnjyJH374weJyBYV9NuvWrcMnn3yClStXlmhOINmR0tmUveFff4GeP39eaDQacfnyZYt2Xbt2LfQCSkX1zAQHB4uZM2darPvmm28EAIu/Bo8cOSIqV64sNBqN8PLyKvAXtTMp7oJl5p6NxYsX2y2ePn36iEceeURMnTpVLFu2TLz11luicePGAoCYN2+eRVtz78HZs2ct1r/11lvirbfeEk8//bQAIAYPHiyty++XX36R1jdq1EhUrVpVev7ll19K7e7cuSPatGkjXFxcxIsvvigWL14s5s6dK2JiYkTlypWLHXsvSc+MEPfG+p966imxbNkyMWjQIAFAzJgx477booRzZmxV1JwZ8/qYmJgC29y4cUO4urpK834K06BBA9GvXz8xe/Zs8cEHH4hhw4YJFxcX4e/vX2COzfDhwwUAERUVJRYsWCDee+89MWrUKOHn5yc2bNhw39jv10uXkpIitFqtaN26tVi8eLF44403hE6nE48++mix2wlRujkzhYEVPTNFKWrOTEBAQJE9kKGhocLPz08YjcZCX4+NjRUdO3YUU6dOFUuXLhWvv/66qFGjhnBzcyvwua5evVqo1WoREhIi/vvf/4olS5aIN954Q7Rq1eq+P6sl6ZnJzMwUQUFBwsfHR8yZM0csWLBA+Pv7Cz8/P3H9+vVit+WcGcdV4ZMZczd95cqVLR4uLi6if//+Bba3NZkxGAzi1KlTIjk5WUycOFF4e3sX22XvyIpLZoxGowgKChJBQUEiLy/PLvGsXbtWREZGilq1agkXFxdRrVo1ERkZKb744osCbYtKZlDCYa7iuuj//Ys5KytLxMfHiwYNGgg3Nzfh7e0tHnroITF37lzpKsKFKWkyI4QQS5cuFY0aNZImny9YsKBEE54dOZn54IMPBACL5PDfzL/kvLy8hKurq6hbt6546aWXipwsvHTpUhEaGirc3d1FlSpVRPPmzcX48eOlYY7iYi/JkOPu3bvFQw89JHQ6nahZs6aIi4sTmZmZ993OmZOZEydOCABizJgxRe5zzZo1olOnTqJmzZrCxcVFeHt7i759+4qUlJRC2+/YsUN0795deHl5CZ1OJ4KCgkRsbKxITk6+b+z3S2aEEOLixYviqaeeEp6ensLDw0P06tVLnDp16r7bMZlxXCohSnjxjnJCpVJh48aNUjf4J598goEDB+LYsWMFriPg4eFRYBJabGws0tPTsWnT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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mi.draw_profile('R')\n", "plt.ylabel('$\\chi^2(R, x, I_0, C)/ndof$')\n", "plt.show()\n", "\n", "mi.draw_profile('C')\n", "plt.ylabel('$\\chi^2(C, x, I_0 R)/ndof$')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "499ffb9a-00a7-4c06-ada4-1d3a41a7f1d4", "metadata": {}, "source": [ "Das liegt daran, dass $R$ und $C$ vollständig korreliert sind. Reduziert `iminuit` $C$ um ein Faktor zwei, so wird dies dadurch kompensiert, dass das optimale Minimum verlangt, dass $R$ um einen Faktor zwei größer sein muss. Das heißt, es ist ohne weitere Information nicht möglich, $R$ und $C$ näher zu bestimmen, sondern lediglich das Produkt der beiden Größen.\n", "\n", "Deshalb müssen wir in unserer Fitfunktion $R$ und $C$ durch die Zeitkonstante $\\tau$ ersetzen und schreiben\n", "\n", "$$ I = I_0 \\exp\\{-t/\\tau\\}$$\n", "\n", "mit $\\tau = R \\cdot C$.\n", "\n", "Führen wir nun erneut den Fit durch, so erhalten wir ein fehlerfreies Ergebnis..." ] }, { "cell_type": "code", "execution_count": 496, "id": "847419a7-d77b-4207-8607-44af9d615ffc", "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", "
Migrad
FCN = 2.707 (χ²/ndof = 0.3) Nfcn = 97
EDM = 1.11e-05 (Goal: 0.0002)
Valid Minimum Below EDM threshold (goal x 10)
No parameters at limit Below call limit
Hesse ok Covariance accurate
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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 I0 1.07 0.05
1 tau 0.097 0.011
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
I0 tau
I0 0.00254 -0.22e-3 (-0.396)
tau -0.22e-3 (-0.396) 0.000116
\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2024-10-16T21:40:48.103966\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.8.2, 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" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 2.707 (χ²/ndof = 0.3) │ Nfcn = 97 │\n", "│ EDM = 1.11e-05 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ Below EDM threshold (goal x 10) │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ No parameters at limit │ Below call limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Hesse ok │ Covariance accurate │\n", "└──────────────────────────────────┴──────────────────────────────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n", "│ 1 │ tau │ 0.097 │ 0.011 │ │ │ │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌─────┬───────────────────┐\n", "│ │ I0 tau │\n", "├─────┼───────────────────┤\n", "│ I0 │ 0.00254 -0.22e-3 │\n", "│ tau │ -0.22e-3 0.000116 │\n", "└─────┴───────────────────┘" ] }, "execution_count": 496, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#from iminuit import Minuit, cost\n", "\n", "def discharge_current2(t, I0, tau):\n", " return I0 * np.exp(-t/tau)\n", "\n", "ls = cost.LeastSquares(\n", " data_frame['time'],\n", " data_frame['current'], \n", " data_frame['delta_current'], \n", " discharge_current2\n", ")\n", "mi = Minuit(ls, I0=0.9, tau=0.3)\n", "mi.migrad()\n", "mi.hesse()" ] }, { "cell_type": "markdown", "id": "a46c76ec-5b00-48f4-9a46-2ea083ca5dba", "metadata": {}, "source": [ "... und die Werte und Fehler lassen sich über ..." ] }, { "cell_type": "code", "execution_count": 497, "id": "69f540a5-e89b-4c24-aa7e-b03eaedb28d1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0670397937137222" ] }, "execution_count": 497, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi.values['I0']" ] }, { "cell_type": "markdown", "id": "66733c05-692d-46e3-ae82-6f84d66ef28c", "metadata": {}, "source": [ "... bzw. ..." ] }, { "cell_type": "code", "execution_count": 498, "id": "66e6da5b-ff32-4982-a3aa-5b9b93262073", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.050401508019580855" ] }, "execution_count": 498, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi.errors['I0']" ] }, { "cell_type": "markdown", "id": "c670cd3f-fcfb-4cfc-a8d4-eded75e9a669", "metadata": {}, "source": [ "... für jeden Parameter auslesen. Dies lässt sich nun auch nutzen, um unsere Messwerte samt Fit in einem etwas schöneren Plot mit Achsenbeschriftungen darzustellen. Hierbei können wir ausnutzen, dass `iminuit` die Parameter in der Reihenfolge der Argumente unser definierten Fitfunktion speichert." ] }, { "cell_type": "code", "execution_count": 499, "id": "45fcf856-c58e-424d-8fd7-15037cb6698e", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.errorbar(data_frame['time'], \n", " data_frame['current'], \n", " xerr=data_frame['delta_time'], \n", " yerr=data_frame['delta_current'], \n", " ls='', \n", " marker='.',\n", " label='Data'\n", " )\n", "x = np.arange(0, 1, 0.01)\n", "plt.plot(x, \n", " discharge_current2(x, *mi.values), # Sternchen operator zum entpacken der Werte\n", " color='k',\n", " label='Best fit'\n", " )\n", "fit_info = [\n", " f\"$\\\\chi^2$/$n_\\\\mathrm{{dof}}$ = {mi.fval:.1f} / {mi.ndof:.0f} = {mi.fmin.reduced_chi2:.1f}\",\n", "]\n", "for p, v, e in zip(mi.parameters, mi.values, mi.errors):\n", " fit_info.append(f\"{p} = ${v:.3f} \\pm {e:.3f}$\")\n", "\n", "plt.legend(title=\"\\n\".join(fit_info))\n", "plt.ylabel('Current [mA]')\n", "plt.xlabel('Time [s]')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "1cd73609-8593-4725-a7c4-317d6a48a72f", "metadata": {}, "source": [ "# Mathematisch motivierte Herleitung des $\\chi^2$-Fits:\n", "\n", "Nach diesen anfänglichen Beispielen wollen wir uns eine semi-mathematische Herleitung des $\\chi^2$-Fits angucken um etwas besser zu verstehen, warum diese Methode für uns in der Physik so wichtig ist. In unserem Grundpraktikum haben wir bereits gelernt, dass Messwerte durch Zufallszahlen $x_i$ repräsentiert werden und einer gewissen **Wahrscheinlichkeitsdichtefunktion (probability density function)** $f(x)$ unterliegen.\n", "\n", "
\n", "\"{{\n", "
\n", "\n", "\n", "Eine **pdf** gibt an, mit welcher **Wahrscheinlichkeit ein Wert $x_i$** innerhalb eines **infinitesimalen Intervals $\\text{d}x_i$** zu finden ist. Des Weiteren gilt, dass die Gesamtwahrscheinlichkeit gegeben ist durch $\\int_S f(x) dx = 1$. \n", "\n", "Nun betrachten wir folgendes Beispiel: In unserem Labor messen wir genau drei mal die Raumtemperartur T. Auch hier gilt, dass unsere Messungen der einzelnen $T_i$ einer gewissen **Wahrscheinlichkeitsdichtefunktion** folgen. Betrachten Sie nun das folgende Bild; Welche **Wahrscheinlichkeitsdichtefunktion** passt besser zu den gezeigten Daten und **Warum?**\n", "\n", "
\n", "\"{{\n", "
\n", "\n", "Die rechte Verteilung spiegelt unsere Messdaten besser wider. Dies können wir auch mathematisch ausdrücken. Für $N$ voreinander unabhängige Zufallszahlen bzw. Messpunkte (in unserem Beispiel $N = 3$) ist die Gesamtwahrscheinlichkeit gegeben durch das Produkt der einzelnen Wahrscheinlichkeitsdichten $f(x_i, \\theta)$ multipliziert mit dem jeweiligen infinitesimalen Element $dx_i$\n", "\n", "$$\\prod_{i = 1}^{N} f(x_i,\\theta) \\ dx_i \\text{ für alle } x_i \\text{ in } [x_i, x_i + dx_i]$$\n", "\n", "wobei $x_i$ in unserem Beispiel den Messpunkten $T_i$ und $f(x_i,\\theta)$ unserer Gaussverteilung mit $\\theta = (\\mu, \\sigma)$ entspricht. Sofern unsere Werte gut von der jeweiligen **Wahrscheinlichkeitsdichtefunktion** repräsentiert werden, d.h. wir die richtigen Parameter $\\theta$ gewählt haben (wie im rechten oberen Plot), gilt \n", "\n", "$$ \\prod_{i = 1}^{N} f(x_i,\\theta) dx_i \\ \\ \\text{ist} \\ \\textbf{maximal.}$$\n", "\n", "Da die einzelnen $dx_i$ von unseren Parametern $\\theta$ unabhängig sind, gilt die gleiche Argumentation auch für \n", "\n", "$$ \\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N) = \\prod_{i = 1}^{N} f(x_i,\\theta)$$ \n", "\n", "wobei $\\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N)$ die sogenannte **\"likelihood\"** function darstellt.\n", "\n", "Wie kommen wir nun von der **likelihood function** auf unsere **Methode der kleinsten Quadrate** und das Fitten einer Funktion $\\lambda(x; \\ $**$\\phi$**$)$ an die gemessenen Punkte **$(x,y)$**? Dazu brauchen wir noch einen Zwischenschritt. Oftmals ist es einfacher, statt die **likelihood function** zu maximieren, die so genannte **log likelihood function**\n", "\n", "$$ \\log( \\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N)) = \\sum_{i = 1}^{N} \\log(f(x_i,\\theta))$$\n", "\n", "zu maximieren. Dies ist im Grunde das Gleiche, da der Logarithmus eine monoton-steigende Funktion ist. Auch in unserem Fall der **Methode der kleinsten Quadrate** benötigen wir die **log likelihood function**. \n", "\n", "Stellen Sie sich nun vor, wir haben eine Messung mit $N$ voneinander unabhängigen Messpunkten (x,y). Des Weiteren nehmen wir an, dass alle $x_i$ ohne Fehler sind und dass unsere $y_i$ gaußförmig um einen unbekannten wahren Wert $\\lambda_i$ (sprich $\\lambda_i$ entspricht dem Erwartungswert $\\mu_i$ unserer Gaußverteilung) mit einer bekannten Varianz $\\Delta y_i^2$ verteilt sind (Diese Annahme lässt sich mit dem zentralen Grenzwertsatz begründen, so lange der Fehler sich aus der Summe kleiner Fehler zusammensetzt). Die dazugehörige **likelihood function** ist dann gegeben durch:\n", "\n", "$$ \\mathcal{L}(y_1 ... y_N; \\lambda_1 ... \\lambda_N, \\Delta y_1 ... \\Delta y_N)) = \\prod_{i = 1}^{N}\\frac{1}{\\sqrt{2 \\pi \\Delta y_i^2}} \\cdot \\exp \\bigg( \\frac{ -(y_i - \\lambda_i)^2}{2 \\cdot \\Delta y_i^2}\\bigg)$$\n", "\n", "Beziehungsweise die **log likelihood function** mit $\\lambda_i = \\lambda(x_i; \\phi)$ ergibt sich zu\n", "\n", "$$ \\log(\\mathcal{L}(y, \\theta)) \\approx -\\frac{1}{2} \\sum_{i = 1}^{N}\\bigg( \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}\\bigg)$$\n", "\n", "wobei die konstanten Terme, welche nicht von unserer Funktion $\\lambda(x_i; \\phi)$ abhängen, vernachlässigt worden sind. Durch den Faktor $-\\frac{1}{2}$ ist das Maximieren dieser **log likelihood function** gleich dem Minimieren von\n", "\n", "$$ \\chi(\\phi_1 ... \\phi_N)^2 = \\sum_{i = 1}^{N} \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}$$\n", "\n", "Diese Funktion ist unsere gesuchte **Methode der kleinsten Quadrate**. Mit ihrer Hilfe kann eine beliebige Funktion $\\lambda(x; \\phi)$, welche linear in ihren Parametern $\\phi$ ist, an unsere Messdaten $(x,y\\pm\\Delta y)$ gefittet werden. Dabei stellt der Fitprozess selbst lediglich ein Minimierungsproblem dar. Im Folgenden sind unsere Annahmen noch einmal grafisch in einem Beispiel dargestellt.\n", "\n", "
\n", "\"{{\n", "
" ] }, { "cell_type": "markdown", "id": "be4a8d21-29db-4866-9117-8746b80d5945", "metadata": {}, "source": [ "Wie ein Algorithmus bei der Minimierung vorgeht, sprengt den Rahmen dieses Vorversuchs. Hier sei auf entsprechende Vorlesungen verwiesen. Aber um einen kleinen Einblick zu erhalten, kann man sich die Werte der Parameter und von $\\chi^2$ für jeden Schritt ausgeben lassen. Dazu wird der Parameter `verbose` auf 1 gesetzt.\n", "\n", "Man erkannt, dass für jeden Parameter zunächst separat geprüft wird, welche Änderung (größer oder kleiner) die Kostenfunktion minimiert. Danach beginnt die eigentliche Minimierung der Kostenfunktion durch den Algorithmus." ] }, { "cell_type": "code", "execution_count": 500, "id": "43bfd15e-7b68-4b70-bc06-0b23f89f7bff", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(0.9, 10000.0, 1e-06) -> 99.20912665811522\n", "(0.9000900000000001, 10000.0, 1e-06) -> 99.19412063461034\n", "(0.89991, 10000.0, 1e-06) -> 99.22413838602546\n", "(0.9002604809700815, 10000.0, 1e-06) -> 99.16571136645308\n", "(0.8997395190299186, 10000.0, 1e-06) -> 99.25258973321158\n", "(0.9, 10001.0, 1e-06) -> 99.2081333982375\n", "(0.9, 9999.0, 1e-06) -> 99.21012010104333\n", "(0.9, 10010.0, 1e-06) -> 99.19920228362008\n", "(0.9, 9990.0, 1e-06) -> 99.21906933767059\n", "(0.9, 10000.0, 1.0001e-06) -> 99.2081333982375\n", "(0.9, 10000.0, 9.999e-07) -> 99.21012010104333\n", "(0.9, 10000.0, 1.001e-06) -> 99.19920228362008\n", "(0.9, 10000.0, 9.989999999999999e-07) -> 99.21906933767059\n", "(1.1367992341436675, 15426.65629293471, 1.5426656292934658e-06) -> 71.48428998018905\n", "(1.1639942960414291, 16049.877285679564, 1.6049877285679507e-06) -> 69.75101904460233\n", "(1.308096945474447, 19352.234036123315, 1.9352234036123227e-06) -> 64.0373348681763\n", "(1.377047580024234, 20932.354834379075, 2.093235483437897e-06) -> 65.47264288596953\n", "(1.3083067929414927, 19352.234036123315, 1.9352234036123227e-06) -> 64.06897571595725\n", "(1.3078870980074015, 19352.234036123315, 1.9352234036123227e-06) -> 64.00572838249478\n", "(1.308096945474447, 19363.537683275055, 1.9352234036123227e-06) -> 63.99858990110189\n", "(1.308096945474447, 19340.930388971574, 1.9352234036123227e-06) -> 64.0760877366588\n", "(1.308096945474447, 19352.234036123315, 1.9365250134806992e-06) -> 63.99272090590841\n", "(1.308096945474447, 19352.234036123315, 1.933921793743946e-06) -> 64.08195930724722\n", "(1.308096945474447, 19352.234036123315, 1.9374628097120974e-06) -> 63.96058355345421\n", "(1.308096945474447, 19352.234036123315, 1.932983997512548e-06) -> 64.11411719500667\n", "(1.4518988196469205, 28189.753065444456, 2.8189750163700463e-06) -> 61.272614820982845\n", "(1.385496103118641, 24108.893380587735, 2.4108891818768406e-06) -> 49.65617486041412\n", "(1.385672043336562, 24108.893380587735, 2.4108891818768406e-06) -> 49.694760759553645\n", "(1.3853201629007201, 24108.893380587735, 2.4108891818768406e-06) -> 49.61761439538809\n", "(1.385496103118641, 24122.984567537602, 2.4108891818768406e-06) -> 49.6271750967005\n", "(1.385496103118641, 24094.80219363787, 2.4108891818768406e-06) -> 49.6852350578246\n", "(1.385496103118641, 24117.03763372327, 2.4108891818768406e-06) -> 49.63940655944544\n", "(1.385496103118641, 24100.7491274522, 2.4108891818768406e-06) -> 49.67296334907033\n", "(1.385496103118641, 24108.893380587735, 2.4128655527857186e-06) -> 49.61551806057589\n", "(1.385496103118641, 24108.893380587735, 2.4089128109679626e-06) -> 49.69695054357015\n", "(1.385496103118641, 24108.893380587735, 2.411780041418529e-06) -> 49.63783388084468\n", "(1.385496103118641, 24108.893380587735, 2.409998322335152e-06) -> 49.67453999473487\n", "(1.3346958218375284, 26342.987535930857, 2.6342989994964907e-06) -> 32.40412806990936\n", "(1.218308580069807, 31461.464245752708, 3.146147591686242e-06) -> 14.072342058026457\n", "(1.2041974408796614, 32082.043754269307, 3.2082056542278777e-06) -> 13.53676656364805\n", "(1.1905385220654157, 32682.73552056781, 3.2682749389683696e-06) -> 13.309190968111414\n", "(1.1906296495547257, 32682.73552056781, 3.2682749389683696e-06) -> 13.321746128711856\n", "(1.1904473945761056, 32682.73552056781, 3.2682749389683696e-06) -> 13.296643836281426\n", "(1.1905385220654157, 32687.064556715202, 3.2682749389683696e-06) -> 13.31564880356511\n", "(1.1905385220654157, 32678.40648442042, 3.2682749389683696e-06) -> 13.302737182521517\n", "(1.1905385220654157, 32682.73552056781, 3.2687484177659625e-06) -> 13.316254288012424\n", "(1.1905385220654157, 32682.73552056781, 3.2678014601707767e-06) -> 13.30213249281902\n", "(0.9801502312575129, 30448.619847559406, 3.0448628816425382e-06) -> 6.96972301330329\n", "(1.0625849715773497, 31323.995300450377, 3.1324006189341594e-06) -> 2.723232319724203\n", "(1.0626278234687758, 31323.995300450377, 3.1324006189341594e-06) -> 2.723145418857497\n", "(1.0625421196859235, 31323.995300450377, 3.1324006189341594e-06) -> 2.723320943276277\n", "(1.0625849715773497, 31326.53248355612, 3.1324006189341594e-06) -> 2.7233762521216955\n", "(1.0625849715773497, 31321.458117344635, 3.1324006189341594e-06) -> 2.7230896436266336\n", "(1.0625849715773497, 31323.995300450377, 3.132687245408039e-06) -> 2.7233950126392372\n", "(1.0625849715773497, 31323.995300450377, 3.13211399246028e-06) -> 2.72307123013582\n", "(1.0663872573694309, 31176.616934344333, 3.117662764856898e-06) -> 2.707996462603649\n", "(1.0676346425311973, 31128.267705196715, 3.112827836211991e-06) -> 2.7070251240566323\n", "(1.0676780500361664, 31128.267705196715, 3.112827836211991e-06) -> 2.70705000293859\n", "(1.0675912350262282, 31128.267705196715, 3.112827836211991e-06) -> 2.707002005340193\n", "(1.0676346425311973, 31130.901765918446, 3.112827836211991e-06) -> 2.707043830842127\n", "(1.0676346425311973, 31125.633644474983, 3.112827836211991e-06) -> 2.7070077881609484\n", "(1.0676346425311973, 31128.267705196715, 3.113128792280756e-06) -> 2.7070466092241365\n", "(1.0676346425311973, 31128.267705196715, 3.112526880143226e-06) -> 2.7070054284929457\n", "(1.067212269933915, 31118.34694378787, 3.1118357598238063e-06) -> 2.706823247817995\n", "(1.067168761630552, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821465977302\n", "(1.0672122600973335, 31117.325013151873, 3.1117335667347323e-06) -> 2.7068223416968538\n", "(1.0671252631637707, 31117.325013151873, 3.1117335667347323e-06) -> 2.706822357390249\n", "(1.067168761630552, 31119.94657401041, 3.1117335667347323e-06) -> 2.706822163448656\n", "(1.067168761630552, 31114.703452293335, 3.1117335667347323e-06) -> 2.7068221260943885\n", "(1.067168761630552, 31117.325013151873, 3.112032662687679e-06) -> 2.7068223708425214\n", "(1.067168761630552, 31117.325013151873, 3.1114344707817854e-06) -> 2.7068223282441966\n", "(1.067168761630552, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821465977302\n", "(1.0672122600973335, 31117.325013151873, 3.1117335667347323e-06) -> 2.7068223416968538\n", "(1.0671252631637707, 31117.325013151873, 3.1117335667347323e-06) -> 2.706822357390249\n", "(1.067168761630552, 31119.94657401041, 3.1117335667347323e-06) -> 2.706822163448656\n", "(1.067168761630552, 31114.703452293335, 3.1117335667347323e-06) -> 2.7068221260943885\n", "(1.067168761630552, 31117.325013151873, 3.112032662687679e-06) -> 2.7068223708425214\n", "(1.067168761630552, 31117.325013151873, 3.1114344707817854e-06) -> 2.7068223282441966\n", "(1.0671774613239084, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821499750613\n", "(1.0671600619371957, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821502889292\n", "(1.067168761630552, 31117.84932532358, 3.1117335667347323e-06) -> 2.7068214968699196\n", "(1.067168761630552, 31116.800700980166, 3.1117335667347323e-06) -> 2.7068214893882208\n", "(1.067168761630552, 31117.325013151873, 3.1117933859253217e-06) -> 2.7068215055878295\n", "(1.067168761630552, 31117.325013151873, 3.111673747544143e-06) -> 2.7068214970520583\n", "(1.0672122600973335, 31119.94657401041, 3.1117335667347323e-06) -> 2.70682365283658\n", "(1.0672122600973335, 31117.325013151873, 3.112032662687679e-06) -> 2.7068239467067996\n", "(1.067168761630552, 31119.94657401041, 3.112032662687679e-06) -> 2.7068246172709194\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", "
Migrad
FCN = 2.707 (χ²/ndof = 0.4) Nfcn = 87
EDM = 2.18e-10 (Goal: 0.0002)
Valid Minimum Below EDM threshold (goal x 10)
No parameters at limit Below call limit
Hesse ok Covariance FORCED pos. def.
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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 I0 1.07 0.05
1 R 0.03e6 0.05e6
2 C 3e-6 5e-6
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
I0 R C
I0 0.00253 -34.3309 (-0.014) -3.459e-9 (-0.014)
R -34.3309 (-0.014) 2.25e+09 -224.592785048e-3 (-0.997)
C -3.459e-9 (-0.014) -224.592785048e-3 (-0.997) 2.25e-11
\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2024-10-16T21:40:48.677208\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.8.2, 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" ], "text/plain": [ "┌─────────────────────────────────────────────────────────────────────────┐\n", "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 2.707 (χ²/ndof = 0.4) │ Nfcn = 87 │\n", "│ EDM = 2.18e-10 (Goal: 0.0002) │ │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ Below EDM threshold (goal x 10) │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ No parameters at limit │ Below call limit │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Hesse ok │ Covariance FORCED pos. def. │\n", "└──────────────────────────────────┴──────────────────────────────────────┘\n", "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n", "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n", "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n", "│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n", "│ 1 │ R │ 0.03e6 │ 0.05e6 │ │ │ │ │ │\n", "│ 2 │ C │ 3e-6 │ 5e-6 │ │ │ │ │ │\n", "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n", "┌────┬───────────────────────────────────────────────────────┐\n", "│ │ I0 R C │\n", "├────┼───────────────────────────────────────────────────────┤\n", "│ I0 │ 0.00253 -34.3309 -3.459e-9 │\n", "│ R │ -34.3309 2.25e+09 -224.592785048e-3 │\n", "│ C │ -3.459e-9 -224.592785048e-3 2.25e-11 │\n", "└────┴───────────────────────────────────────────────────────┘" ] }, "execution_count": 500, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ls = cost.LeastSquares(data_frame['time'], data_frame['current'], data_frame['delta_current'], discharge_current, verbose=1)\n", "\n", "mi = Minuit(ls, I0=0.9, R=10*10**3, C=10**-6)\n", "mi.migrad()" ] }, { "cell_type": "markdown", "id": "c664e4f0-0226-4be0-91f4-7c28aee16a4a", "metadata": {}, "source": [ "__Zur Erinnerung__: die Methode der kleinsten Quadrate berücksichtigt nur Fehler in `y` aber nicht in `x`. Hierfür sind komplexere Methoden notwendig, die wir hier nicht betrachten wollen.\n", "Ebenfalls wichtig ist, die Statusmeldungen von `iminuit` zu prüfen, d.h. eine **gelbe** Box zeigt an, das man sich Gedanken über das Ergebnis machen sollte (in unserem Fall, dass die Variablen $R$ und $C$ korreliert sind) und eine , **violette** Box, dass der Fit nicht konvergiert ist und das Ergebnis nicht verwendet werden kann." ] } ], "metadata": { "kernelspec": { "display_name": "jupyter", "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.10.11" } }, "nbformat": 4, "nbformat_minor": 5 }