commit 69fac7f5314d23d2ad5492846f036a6ccb7f85ec
parent c39b561596629c34b66ddd1bcf7675e589631fff
Author: miksa <milutin@popovic.xyz>
Date: Thu, 8 Apr 2021 12:54:36 +0200
forgot to add sigma values now added
Diffstat:
3 files changed, 14 insertions(+), 52 deletions(-)
diff --git a/sesh1/prog/Untitled Folder/Untitled.ipynb b/sesh1/prog/Untitled Folder/Untitled.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 23,
"id": "automatic-recommendation",
"metadata": {},
"outputs": [],
@@ -16,14 +16,14 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 31,
"id": "demographic-distributor",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "fdcefe067eeb404086e0067ef6450be9",
+ "model_id": "6d9961d305ea48e0b650fda599667a73",
"version_major": 2,
"version_minor": 0
},
@@ -37,10 +37,10 @@
{
"data": {
"text/plain": [
- "<function __main__.somefunc(m_q=0.7, g_q=0.2, m_w=0.8, g_w=0.2, e_w=0.002, a=-500, b=200, c=0.2)>"
+ "<function __main__.somefunc(m_q=0.7, g_q=0.2, m_w=1, g_w=0.2, e_w=0.002, a=-500, b=200, c=0.2)>"
]
},
- "execution_count": 22,
+ "execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
@@ -55,11 +55,14 @@
" part3 = c*(1 + a*s + b*s**2)**2\n",
" return part1 * part2 * part3\n",
"\n",
- "def somefunc(m_q=0.7, g_q=0.2, m_w=0.8, g_w=0.2, e_w=2e-3, a=-500, b=200, c=0.2): data = np.loadtxt('../data/SND-VFF.txt') s = data[:,0]\n",
+ "def somefunc(m_q=0.7, g_q=0.2, m_w=1, g_w=0.2, e_w=2e-3, a=-500, b=200, c=0.2): \n",
+ " data = np.loadtxt('../data/SND-VFF.txt')\n",
+ " s = data[:,0]\n",
" F2 = data[:, 1]\n",
+ " sigma = data[:, 2]\n",
"\n",
" p0 = [m_q, g_q, m_w, g_w, e_w, a, b, c] # in GeV\n",
- " popt, pcov = curve_fit(model, s, F2, p0)\n",
+ " popt, pcov = curve_fit(model, s, F2, p0, sigma=np.sqrt(sigma))\n",
" popt, uncert = np.round(popt, 3), np.round(np.sqrt(np.diagonal(pcov)), 3)\n",
"\n",
" plt.figure(figsize=[10, 7])\n",
@@ -75,7 +78,7 @@
" plt.annotate(r'$\\Gamma_{\\omega} = $' + f'({popt[3]}' + r'$\\pm$' + f'{uncert[3]}) GeV', (0.7, 32))\n",
" \n",
"interact(somefunc, m_q=(0, 1, 0.1), g_q=(0, 1, 0.1), m_w=(0, 1, 0.1), g_w=(0, 1, 0.1), e_w=(2e-3, 2e-2, 5e-3),\\\n",
- " a=(-1000, 1000, 0.1), b=(-1000, 1000, 0.1), c=(0, 100, 0.1))\n"
+ " a=(-100, 100, 0.1), b=(-100, 100, 0.1), c=(0, 100, 0.1))\n"
]
},
{
diff --git a/sesh1/prog/fit_single.py b/sesh1/prog/fit_single.py
@@ -19,9 +19,10 @@ def main():
data = np.loadtxt('./data/SND-VFF.txt')
s = data[:,0]
F2 = data[:, 1]
+ sigma = np.sqrt(data[:, 2])
- p0 = [0.7, 0.2, 0.8, 0.2, 2e-3, -522.90, 191.40, 0.5] # in GeV
- popt, pcov = curve_fit(model, s, F2, p0)
+ p0 = [0.7, 0.2, 1, 0.2, 2e-3, 13.4, 45.3, 8.5] # in GeV
+ popt, pcov = curve_fit(model, s, F2, p0, sigma=sigma)
popt, uncert = np.round(popt, 3), np.round(np.sqrt(np.diagonal(pcov)), 3)
s_model = np.linspace(s[0], s[-1], 500)
@@ -30,7 +31,6 @@ def main():
plt.title('SND DATA FIT')
plt.scatter(s, F2, marker='.', c='black')
plt.plot(s_model, model(s_model, *popt), color='red')
- plt.annotate('A guessing game with the parameters', (0.15, 40))
plt.annotate(r'$\Gamma_{\omega}$ bad fit', (0.15, 38))
plt.annotate(r'$M_{\rho} = $' + f'({popt[0]}' + r'$\pm$' + f'{uncert[0]}) GeV', (0.7, 40))
diff --git a/sesh1/prog/tp51py b/sesh1/prog/tp51py
@@ -1,41 +0,0 @@
-#!/usr/bin/env python3.9
-
-import numpy as np
-
-def main():
-
- # one experiment
- sig = 0.2; s = 0.2
- p0 = 0.9 # guess
-
- y0 = np.array([0.8, 1.2])
- A = np.array([1, 1])
- cov_sta = np.array([[sig**2, 0], [0, sig**2]])
-
- for i in range(10):
- cov_sys = np.array([[s**2*p0**2, s**2*p0**2], [s**2*p0**2, s**2*p0**2]])
- P = np.linalg.inv(cov_sys+cov_sta)
- p0 = (A.T@P@A)**(-1) * A.T@P@y0
-
- dp = (A.T@P@A)**(-1/2)
-
- print('One Experiment')
- print(f'p = {p0} \pm {round(dp, 2)}\n')
-
- # two experiments
-
- p0 = 0.9 # guess
-
- for i in range(10):
- cov_sys = np.array([[s**2*p0**2, 0], [0, s**2*p0**2]])
- P = np.linalg.inv(cov_sys+cov_sta)
- p0 = (A.T@P@A)**(-1) * A.T@P@y0
-
- dp = (A.T@P@A)**(-1/2)
-
- print('Two Experiments')
- print(f'p = {p0} \pm {round(dp, 2)}\n')
-
-
-if __name__ == "__main__":
- main()