Example #1
0
i3 *= cs.degree
d_i3 *= cs.degree

f3_G_low_p1 = 2.9 * cs.kilo
d_f3_G_low_p1 = 0.3 * cs.kilo
f3_G_high_p1 = 3.1 * cs.kilo
d_f3_G_high_p1 = 0.3 * cs.kilo

f3_G_high_p2 = (pi - 4 * i3) / (4 * s3)
d_f3_G_high_p2 = f3_G_high_p2 * sqrt((4 * d_i3 / (pi - 4 * i3))**2 + (d_s3 / s3)**2)

f3_G_T = 1 / (2 * pi * R3 * C3)
d_f3_G_T = f3_G_T * sqrt((d_R3 / R3)**2 + (d_C3 / C3)**2)

print('3. Frequency and phase of a RC-element:')
print(ms.val('s', s3, d_s3))
print(ms.val('i', i3, d_i3))
print(ms.val('low: f_G', f3_G_low, d_f3_G_low, unit='Hz'))
print(ms.val('high: f_G', f3_G_high, d_f3_G_high, unit='Hz'))
print(ms.val('low: f_G', f3_G_low_p1, d_f3_G_low_p1, unit='Hz'))
print(ms.val('high: f_G', f3_G_high_p1, d_f3_G_high_p1, unit='Hz'))
print(ms.val('high: f_G', f3_G_high_p2, d_f3_G_high_p2, unit='Hz'))
print(ms.val('f_G', f3_G_T, d_f3_G_T, unit='Hz'))
print(ms.dev(f3_G_low, d_f3_G_low, f3_G_T, d_f3_G_T, name='low: f_G'))
print(ms.dev(f3_G_high, d_f3_G_high, f3_G_T, d_f3_G_T, name='high: f_G'))
print(ms.dev(f3_G_low_p1, d_f3_G_low_p1, f3_G_T, d_f3_G_T, name='low: f_G'))
print(ms.dev(f3_G_high_p1, d_f3_G_high_p1, f3_G_T, d_f3_G_T, name='high: f_G'))
print(ms.dev(f3_G_high_p2, d_f3_G_high_p2, f3_G_T, d_f3_G_T, name='high: f_G'))
print()

# (4) Frequency of an oscillating circuit
Example #2
0
sn = 119e-3
dsn = 1e-3
sa = 852e-3
dsa = 3e-3

# Preparation
lp = [lpo[i] - lpu[i] for i in range(len(lpo))]
dlp = ms.std_dev_m(lp) # "+" ms.sqrt(2) * dlp # If one uses the addition of the systematic and statistic uncertainty, it must be quadratic
lp = ms.mean_value(lp)
l = lp - rk
dl = ms.sqrt(dlp**2 + drk**2)
dt = ms.std_dev_e(t0)
T0 = ms.mean_value(t0) / n0
n1 = 2 * l * dt / (0.3 * T0 * dl)
print()
print(ms.val("n1", int(n1 + 0.5)))
print()
print(ms.val("gl", gl, dgl))

# Simple calculation
T = t / n
dT = dt / n
gs = 4 * ms.pi**2 * l / T**2
dgs = 4 * ms.pi**2 / T**2 * ms.sqrt(dl**2 + (2 * l * dT / T)**2)

print()
print(ms.val("gs", gs, dgs))
print(ms.sig("dev gs & gl", gs, dgs, gl, dgl))

# Complex calculation
mk = rhoe * 4 / 3 * ms.pi * rk**3
Example #3
0
d_s1 = sqrt(d_n1[1]**2 + d_n1[0]**2)
s1_p = s1 / n1[0]
d_s1_p = s1_p * sqrt((d_s1 / s1)**2 + (d_n1[0] / n1[0])**2)

T1 = 1/0.01 * (n1[1] + n1[0]) / (n1[1] - n1[0])

s2 = n2[1] - n2[0]
d_s2 = sqrt(d_n2[1]**2 + d_n2[0]**2)
s2_p = s2 / n2[0]
d_s2_p = s2_p * sqrt((d_s2 / s2)**2 + (d_n2[0] / n2[0])**2)

T2 = 1/0.01 * (n2[1] + n2[0]) / (n2[1] - n2[0])

print()
print("Plateau-slope:")
print(ms.val('s1', s1, d_s1))
print(ms.val('s1_p', s1_p * 100, d_s1_p * 100, unit='%', prefix=False))
print()
print(ms.sig('s1,0', s1, d_s1, 0.0))
print(ms.val('T1', T1 / sc.hour, unit='hours', prefix=False))
print(ms.val('s1_p + Δs1_p', (s1_p + d_s1_p) * 100, unit='%', prefix=False))
print(ms.val('s1_p + 2 Δs1_p', (s1_p + 2 * d_s1_p) * 100, unit='%', prefix=False))
print()
print(ms.val('s2', s2, d_s2))
print(ms.val('s2_p', s2_p * 100, d_s2_p * 100, unit='%', prefix=False))
print()
print(ms.sig('s2,0', s2, d_s2, 0.0))
print(ms.val('T2', T2 / sc.hour, unit='hours', prefix=False))
print(ms.val('s2_p + Δs2_p', (s2_p + d_s2_p) * 100, unit='%', prefix=False))
print(ms.val('s2_p + 2 Δs2_p', (s2_p + 2 * d_s2_p) * 100, unit='%', prefix=False))
print()
Example #4
0
def fitfunc(f, V, W1, W2, n1, n2):
    return V / (np.sqrt(1 + 1 /
                        (f / W1)**(2 * n1)) * np.sqrt(1 + (f / W2)**(2 * n2)))


V = 1000
W1 = 1000
W2 = 50000
n1 = 5
n2 = 5
p0 = (V, W1, W2, n1, n2)

popt, pcov = curve_fit(fitfunc, f[15:-43], g[15:-43], p0)

print()
print(val(popt[0], sqrt(pcov[0][0]), 'V'))
print(val(popt[1], sqrt(pcov[1][1]), 'W1'))
print(val(popt[2], sqrt(pcov[2][2]), 'W2'))
print(val(popt[3], sqrt(pcov[3][3]), 'n1'))
print(val(popt[4], sqrt(pcov[4][4]), 'n2'))

pltext.initplot(num=2,
                title='Abbildung   : Frequenzgang (Fit)',
                xlabel='Frequenz in Hz',
                ylabel='g(f)',
                scale='loglog')
pltext.plotdata(f[17:-45], g[17:-45], label='Messwerte')
f_array = nplinspace(4e2, 1.2e5)
plt.plot(f_array, fitfunc(f_array, *popt), label='Fit')
pltext.set_layout(legend=True, xlim=(4e2, 1.2e5), ylim=(1e1, 2e3))
Example #5
0
wl = 2. * ds / wl_m
wl_dsys = 2. / wl_m * sqrt(ds_dsys**2 + (wl_m_dsys / wl_m)**2)
wl_mv = mv(wl)
wl_mv_dsto = dsto_mv(wl)
wl_mv_dsys = dsys_mv(wl_dsys)
wl_mv_dtot = dtot(wl_mv_dsys, wl_mv_dsto)

print()
print('Wellenlänge Laser:')
print(
    tbl([
        lst(ds, ds_dsys, 'ds'),
        lst(wl_m, wl_m_dsys, 'm'),
        lst(wl, wl_dsys, 'wl')
    ], ))
print(val('Mitellwert', wl_mv, wl_mv_dtot))
print(sig('Abweichung', wl_mv, wl_mv_dtot, wl_lit, wl_lit_dsys))

# Brechungsindex Luft
pltext.initplot(num=1,
                title='Brechungsindex Luft',
                xlabel='Intensitätsringe',
                ylabel='Druck in Pa')
[sl1, dsl1, tmp, tmp] = linreg(bi_m1,
                               bi_p1,
                               bi_p1_dsys,
                               plot=True,
                               graphname='1. Durchgang')
[sl2, dsl2, tmp, tmp] = linreg(bi_m2,
                               bi_p2,
                               bi_p2_dsys,
Example #6
0
                               sr_E_alpha / sqrt(cs.e),
                               d_sr_E_alpha / sqrt(cs.e),
                               plot=True)
s1 *= sqrt(cs.e)
d_s1 *= sqrt(cs.e)
b1 *= sqrt(cs.e)
d_b1 *= sqrt(cs.e)

E1_R = 4 / 3 * s1**2
d_E1_R = E1_R * (2 * d_s1 / s1)
sigma1_12 = -sqrt(4 / 3) * b1 / sqrt(E1_R)
d_sigma1_12 = sigma1_12 * sqrt((d_b1 / b1)**2 + (d_E1_R / (2 * E1_R))**2)

print()
print("K_α Radiation:")
print(ms.val("s", s1, d_s1))
print(ms.val("b", b1, d_b1))
print()
print(ms.val("E_R", E1_R / cs.e, d_E1_R / cs.e, unit='eV'))
print(ms.sig("E_R,l", E1_R, d_E1_R, cs.Rydberg * cs.h * cs.c))
print(ms.val("σ_12", sigma1_12, d_sigma1_12))
print()

# Determination of the Rydberg-energy and the screening constant for the K_β-Radiation
Z2 = npf([Z1[i] for i in range(len(Z1)) if i != 3])
E_beta = npf([7.06, 8.91, 24.59, 17.69, 9.59, 8.26, 19.58]) * cs.kilo * cs.e
d_E_beta = npf([0.17, 0.17, 0.15, 0.18, 0.17, 0.18, 0.24]) * cs.kilo * cs.e
sr_E_beta = sqrt(E_beta)
d_sr_E_beta = d_E_beta / (2 * sr_E_beta)

ms.pltext.initplot(num=2,
Example #7
0
cd_k = h1 / (h1 - h3)
cd_k_dsys = hi_dsys / (h1 - h3) * sqrt((1 + h1 / (h1 - h3))**2 +
                                       (1 / (h1 - h3))**2)

cd_k_mv = mv(cd_k)
cd_k_dsto_mv = dsto_mv(cd_k)
cd_k_dsys_mv = dsys_mv(cd_k_dsys)
cd_k_dtot = sqrt(cd_k_dsto_mv**2 + cd_k_dsys_mv**2)

print()
print('Clément & Desormes:')
print()
print(tbl(['h1', 'h3', 'k'], [h1, h3, cd_k], [hi_dsys, hi_dsys, cd_k_dsys]))
print()
print(val('k', cd_k_mv, cd_k_dtot))
print(sig('dev', cd_k_mv, cd_k_dtot, k_air_lit))

# Rüchardt
r_air = rh_2r_air / 2.
r_air_dsys = rh_2r_dsys / 2.
T_air = rh_50T_air / 50.
T_air_dsys = rh_50T_dsys / 50.
rh_k_air = 4. * rh_m_air * rh_V_air / (r_air**4 * T_air**2 * rh_p)
rh_k_air_dsys = 4. / (r_air**4 * T_air**2 * rh_p) * sqrt(
    (rh_m_dsys * rh_V_air)**2 + (rh_m_air * rh_V_dsys)**2 +
    (rh_m_air * rh_V_air)**2 * ((4. * r_air_dsys / r_air)**2 +
                                (2. * T_air_dsys / T_air)**2 +
                                (rh_p_dsys / rh_p)**2))

r_arg = rh_2r_arg / 2.
Example #8
0
r_sqr_dsto = dsto_mv(r_sqr)
dt_mv = mv(dt)
dt_dsto = dsto_mv(dt)

hist_D = r_sqr_mv / (4. * dt_mv)
hist_D_dtot = 1. / (4. * dt_mv) * sqrt(r_sqr_dsto**2 +
                                       (r_sqr_mv * dt_dsto / dt_mv)**2)
hist_kB = 6. * pi * nu * r_k * hist_D / T_mv
hist_kB_dtot = 6. * pi / T_mv * sqrt((nu_dsys * r_k * hist_D)**2 +
                                     (nu * r_k_dsys * hist_D)**2 +
                                     (nu * r_k * hist_D_dtot)**2 +
                                     (nu * r_k * hist_D * T_dtot / T_mv)**2)

print()
print('Mittelung:')
print(val('mittleres Verschiebungsquadrat', r_sqr_mv, r_sqr_dsto))
print(val('mittlerer Zeitabschnitt', dt_mv, dt_dsto))
print(val('Diffusionskonstante D', hist_D, hist_D_dtot))
print(val('Bolatzmannkonstante k', hist_kB, hist_kB_dtot))

# Histogramm
d_all = 1e6 * np.append(dx, dy)
points = npfarray([0.01 * n for n in range(-300, 301)])
mu = mv(d_all)
sigma = dsto(d_all)
gauss = norm.pdf(points, mu, sigma)

pltext.initplot(num=2,
                title='Histogramm der Verschiebungen',
                xlabel='Verschiebung in μm',
                ylabel='relative Häufigkeit')
Example #9
0
pltext.initplot(num=1,
                title='Abbildung   : Zählrohrcharakteristik',
                xlabel='Spannung in V',
                ylabel='Ereignisse')
pltext.plotdata(U, N, N_dsto, label='Messwerte')
[slope, dslope] = linreg(U[1:],
                         N[1:],
                         N_dsto[1:],
                         plot=True,
                         prange=(410, 580))[0:2]
pltext.set_layout(xlim=(410, 580), ylim=(1800, 2500))

U0 = 510

print('\nAufgabe 2\n')
print(val(slope, dslope, name='Steigung'))

# Aufgabe 3
U = [510, 610]
N1min = npfarray([9838, 9871])
N1min_dsto = sqrt(N1min)
N3min = npfarray([29505, 30144])
N3min_dsto = sqrt(N3min)

anstieg_1min = N1min[1] - N1min[0]
anstieg_1min_dsto = sqrt(N1min_dsto[1]**2 + N1min_dsto[0]**2)
rel_anstieg_1min = anstieg_1min / N1min[0]
rel_anstieg_1min_dsto = 1 / N1min[0] * sqrt(anstieg_1min_dsto**2 +
                                            (anstieg_1min * N1min_dsto[0] /
                                             N1min[0])**2)
Example #10
0
# 1. Nebenserie
print()
print("Fit für 1. Nebenserie:")
wl1 = [wl[36], wl[17], wl[14], wl[12], wl[10], wl[8], wl[7], wl[6], wl[5], wl[4]]
dwl1 = [_dwl for i in range(len(wl1))]
qz = [float(i) for i in range(3,13)]
def fit_func1(m,E_Ry,E_3p,D_d):
  return h / e * c / (E_Ry * (m - D_d)**-2 - E_3p)
para = [Eryd, E3p, pCorr]
popt, pcov = curve_fit(fit_func1, qz, wl1, sigma=dwl1, p0=para)
Ery1 = popt[0]
dEry1 = sqrt(pcov[0][0])
E3p1 = popt[1]
dE3p1 = sqrt(pcov[1][1])
print(val("Ery", Ery1, dEry1))
print(val("E3p", E3p1, dE3p1))
print(val("dCorr", popt[2], sqrt(pcov[2][2])))
_chi2 = chi2(wl1, dwl1, fit_func1(qz,*popt))
dof = len(qz) - 3
_chi2_red = chi2_red(wl1, dwl1, fit_func1(qz,*popt), dof=dof)
print(val("chi2", _chi2))
print(val("chi2_red", _chi2_red))
print(val("Wkeit", 1 - sci_chi2.cdf(_chi2, dof)))

wl1plot = plot(title="1. Nebenserie", xlabel="Quantenzahl", ylabel="Wellenlänge", figure=2)
wl1plot.plotdata(qz, wl1, dwl1, label="Messwerte")
x = np.linspace(2.8, 12.2, 100)
wl1plot.plotfunc(x, fit_func1(x,*popt), label="Fitfunktion")
wl1plot.drawplot()
wl1plot.saveplot("1. Nebenserie.pdf")
Example #11
0
t_hv = ln(2.) / D
t_hv_dsys = ln(2.) * dD / D**2

dampingplot = plot(title='Linear regression of the damping constant',
                   xlabel='t / s',
                   ylabel='f / Hz',
                   fig=1,
                   scale='linlog')
dampingplot.plt.grid(False)
dampingplot.plotdata(t, f, df)
dampingplot.plotfunc(t, f0 * exp(-D * t), label='line of best fit')
dampingplot.plotfunc(t, (f0 + df0) * exp(-(D + dD) * t),
                     label='line of uncertanty')

print()
print(val('damping constant', D, dD))
print(val('half value time', t_hv, t_hv_dsys))

# moment of anertia Iz with precession
f_m1x15 = moa_umin_1x15 / 120. * (1. + exp(-D * moa_Tp_1x15))
df_m1x15 = 1. / 120. * sqrt((moa_dumin * (1. + exp(-D * moa_Tp_1x15)))**2 +
                            (moa_umin_1x15 * exp(-D * moa_Tp_1x15))**2 *
                            ((D * moa_dTp)**2 + (dD * moa_Tp_1x15)**2))
f_m1x20 = moa_umin_1x20 / 120. * (1. + exp(-D * moa_Tp_1x20))
df_m1x20 = 1. / 120. * sqrt((moa_dumin * (1. + exp(-D * moa_Tp_1x20)))**2 +
                            (moa_umin_1x20 * exp(-D * moa_Tp_1x20))**2 *
                            ((D * moa_dTp)**2 + (dD * moa_Tp_1x20)**2))
f_m2x15 = moa_umin_2x15 / 120. * (1. + exp(-D * moa_Tp_2x15))
df_m2x15 = 1. / 120. * sqrt((moa_dumin * (1. + exp(-D * moa_Tp_2x15)))**2 +
                            (moa_umin_2x15 * exp(-D * moa_Tp_2x15))**2 *
                            ((D * moa_dTp)**2 + (dD * moa_Tp_2x15)**2))
Example #12
0
                   title=titles[0],
                   xlabel=r'$R$ / k$\Omega$',
                   ylabel=r'$(U_N^2 - U_V^2)$ / mV$^2$',
                   fignum=True)
s2, d_s2, b2, d_b2 = ms.linreg(R1,
                               U2_diff / cs.milli**2,
                               d_U2_diff / cs.milli**2,
                               d_R1,
                               plot=True)
s2 *= cs.milli**2
d_s2 *= cs.milli**2
b2 *= cs.milli**2
d_b2 *= cs.milli**2

print()
print(ms.val('s', s2, d_s2))
print(ms.val('b', b2, d_b2))
print()

# Measurement of the measurement system's frequency slope
D = 0.001
d_D = 0.002 * D


def g_fit(f, V, Omg1, Omg2, n1, n2):
    return V / sqrt((1 + (Omg1 / f)**(2 * n1)) * (1 + (f / Omg2)**(2 * n2)))


def g2_fit(f, V, Omg1, Omg2, n1, n2):
    return g_fit(f, V, Omg1, Omg2, n1, n2)**2
Example #13
0
U6_i = 0.072 / 2
d_U6_i = 0.001 / 2

# Determination of the magnetic field at the center of the helmholtz coil
ms.pltext.initplot(num=2, title='Induzierte Spannung in Abhängigkeit der Rotationsfrequenz bei konstantem Strom und Gleichspannung', xlabel='f / Hz', ylabel='U / V', fignum=True)
[s1, d_s1, tmp, tmp] = ms.linreg(f1, U1_i, d_U1_i, d_f1, plot=True)
ms.pltext.initplot(num=3, title='Induzierte Spannung in Abhängigkeit des Spulenstroms bei konstanter Rotationsfrequenz und Gleichspannung', xlabel='I / A', ylabel='U / V', fignum=True)
ms.linreg(I2, U2_i, d_U2_i, d_I2, plot=True)

B1 = s1 / (2 * pi * n_i * A_i)
d_B1 = d_s1 / (2 * pi * n_i * A_i)

B1_ = (8 / sqrt(125)) * sc.mu_0 * I1 * n_h / r_h
d_B1_ = (8 / sqrt(125)) * sc.mu_0 * d_I1 * n_h / r_h

print(ms.val("s1", s1, d_s1))
print(ms.val("B1", B1, d_B1, unit='T'))
print(ms.val("B1'", B1_, d_B1_, unit='T'))
print(ms.sig("B1,B1'", B1, d_B1, B1_, d_B1_))
print()

# Determination of the inductance of the helmholtz coil
ms.pltext.initplot(num=4, title='Amplitude der Induktionsspannung in Abhängigkeit des Winkels bei Wechselspannung', xlabel='α / °', ylabel='U / V', fignum=True)
ms.pltext.plotdata(α3, U3_i, d_U3_i, d_α3, connect=True)

Ui_U_ratio = U4_i / U4
d_Ui_U_ratio = Ui_U_ratio * sqrt((d_U4_i / U4_i)**2 + (d_U4 / U4)**2)
ms.pltext.initplot(num=5, title='Verhältnis der Induktionsspannungsamplitude zur Spulenspannungsamplitude\nin Abhängigkeit der Spannungsfrequenz bei Wechselspannung', xlabel='f / Hz', ylabel='Ui / U', fignum=True)
ms.pltext.plotdata(f4, Ui_U_ratio, d_Ui_U_ratio, d_f4, connect=True)

U_I_ratio = U4 / I4
Example #14
0
              ((1 - Ug / yitc) * a1_uncorr_err)**2)

d = 201.4e-12
U = 35e3

l = 2 * d * sin(a1)
l_err = 2 * d * cos(a1) * a1_err

h = l * e * U / c
h_err = l_err * e * U / c

a2 = arcsin(l / d)
a2_err = 1 / (d * sqrt(1 - (l / d)**2)) * l_err

print('\nAufgabe 1a:\n')
print(val(a1_uncorr * rad_to_deg, a1_uncorr_err * rad_to_deg, 'a1 (uncorr)'))
print(val(Ug, Ug_err, 'Ug'))
print(val(a1 * rad_to_deg, a1_err * rad_to_deg, 'a1'))
print(val(l, l_err, 'l'))
print(val(h, h_err, 'h'))
print(dev(h, h_err, h_lit, name='Abw', perc=True))
print(val(a2 * rad_to_deg, a2_err * rad_to_deg, 'a2'))

# Aufgabe 1b
alpha_1o, rate_1o = loadtxt('data/255_1b_1o.txt', unpack=True)
rate_1o_err = sqrt(rate_1o)
alpha_2o, rate_2o = loadtxt('data/255_1b_2o.txt', unpack=True)
rate_2o_err = sqrt(rate_2o)


def gauss(x, A, mu, sig, Ug):
Example #15
0
Wh = km_U_heiz * km_I_heiz / km_f
Wh_dsys = 1./km_f * sqrt((km_U_heiz * km_I_heiz_dsys)**2 + (km_U_heiz_dsys * km_I_heiz)**2 + (km_U_heiz * km_I_heiz * km_f_dsys / km_f)**2)

tWges = c_w * roh_w * km_dT * km_Vps_mv / km_f
tWges_dsys = c_w / km_f * sqrt((roh_w_dsys * km_dT * km_Vps_mv)**2 + (roh_w * km_dT_dsys * km_Vps_mv)**2 + (roh_w * km_dT * km_Vps_dsys)**2 + (roh_w * km_dT * km_Vps_mv * km_f_dsys / km_f)**2)

eWges = Wm + Wh
eWges_dsys = sqrt(Wm_dsys**2 + Wh_dsys**2)
dW = eWges - tWges
dW_dsys = sqrt(eWges_dsys**2 + tWges_dsys**2)

km_n = Wh / Wm
km_n_dsys = 1./Wm * sqrt(Wh_dsys**2 + (Wh * Wm_dsys / Wm)**2)

print()
print(tbl([['Wm',val('',Wm,Wm_dsys)],['Wh',val('',Wh,Wh_dsys)],['Wm+Wh',val('',eWges,eWges_dsys)],['Q1',val('',tWges,tWges_dsys)],['dW',val('',dW,dW_dsys)]]))
print(val('Wirkungsgrad', km_n, km_n_dsys))

# Gefrierzeit Wasser
Pk = gf_V * roh_w * lamba_w / gf_t
Pk_dsys = lamba_w / gf_t * sqrt((gf_V * roh_w * gf_t_dsys / gf_t)**2 + (gf_V * roh_w_dsys)**2 + (gf_V_dsys * roh_w)**2)
Wk = Pk / gf_f
Wk_dsys = 1 / gf_f * sqrt(Pk_dsys**2 + (Pk * gf_f_dsys / gf_f)**2)

print()
print(val('Pk', Pk, Pk_dsys))
print(val('Wk', Wk, Wk_dsys))

# Wärmekraftmaschine
Qel = wk_Uh * wk_Ih / wk_f_mv
Qel_dtot = 1 / wk_f_mv * sqrt((wk_Uh * wk_Ih_dsys)**2 + (wk_Uh_dsys * wk_Ih)**2 + (wk_Uh * wk_Ih * wk_f_dsto / wk_f_mv)**2)
Example #16
0
R_V_df_A4 = R_ges_A4 - R_A4
R_V_df_A4_dsys = sqrt(R_ges_A4_dsys**2 + R_A4_dsys**2)

R_V_df_A4_mv = mv(R_V_df_A4)
R_V_df_A4_mv_dtot = dtot_mv(R_V_df_A4, R_ges_A4_dsys)

R_V_U_A4 = R_A4 * (Ue / Ua - 1)
R_V_U_A4_dsys = sqrt(((Ue / Ua - 1) * R_A4_dsys)**2 +
                     (R_A4 * Ue / Ua**2 * Ua_dsys)**2)

R_V_U_A4_mv = mv(R_V_U_A4)
R_V_U_A4_mv_dtot = dtot_mv(R_V_U_A4, R_V_U_A4_dsys)

print()
print('Aufgabe 4:\n')
print(val(L_A4_mv, L_A4_mv_dtot, 'Induktivität L'))
print()
print(
    tbl([
        lst(R_A4, R_A4_dsys, 'R'),
        lst(R_ges_A4, R_ges_A4_dsys, 'R_ges (df)'),
        lst(R_V_df_A4, R_V_df_A4_dsys, 'R_V (df)'),
        lst(R_V_U_A4, R_V_U_A4_dsys, 'R_V (U)')
    ]))
print(
    tbl([
        lst([R_V_df_A4_mv], [R_V_df_A4_mv_dtot], 'mv(R_V) (df)'),
        lst([R_V_U_A4_mv], [R_V_U_A4_mv_dtot], 'mv(R_V) (U)'), ['Abw'] + [
            sig('', R_V_df_A4_mv, R_V_df_A4_mv_dtot, R_V_U_A4_mv,
                R_V_U_A4_mv_dtot)
        ]
Example #17
0
# measure version 1.8.6
from measure import plt, np, npfarray, sqrt, pltext, curve_fit, val, c, h, sig

Z = npfarray([26, 42, 29, 22, 47, 40, 30, 28])

# Literaturwerte
sqrt_Er_lit = sqrt(13.6e-3)
sig12_lit = 1
p0 = npfarray([sqrt_Er_lit, sig12_lit])

print()
print(val('Literaturwert sqrt(Er)', sqrt_Er_lit))

# K_alpha
K_alpha = npfarray([6.42, 17.47, 8.08, 4.49, 21.90, 15.79, 8.68, 7.51])
Delta_K_alpha = npfarray([0.16, 0.17, 0.15, 0.16, 0.20, 0.17, 0.16, 0.15])
sqrt_K_alpha = sqrt(K_alpha)
Delta_sqrt_K_alpha = 1 / 2 * 1 / sqrt(K_alpha) * Delta_K_alpha

pltext.initplot(num=1,
                title=r'$\sqrt{E_\alpha}$ als Funktion von $Z$',
                xlabel=r'$Z$',
                ylabel=r'$\sqrt{E_\alpha}$ in $\sqrt{keV}$')
pltext.plotdata(x=Z, y=sqrt_K_alpha, dy=Delta_sqrt_K_alpha)

n1 = 1
n2 = 2


def fit_func_alpha(x, sqrt_Er, sig12):
    return sqrt_Er * (x - sig12) * sqrt(1 / n1**2 - 1 / n2**2)
Example #18
0
rho_Pb = 11.34 * cs.gram / cs.centi**3
rho_Al = 2.699 * cs.gram / cs.centi**3

# Measurements of the counter tube
r_c = 14 * cs.milli / 2
l_c = 4 * cs.centi
U0_c = 520
d_U0_c = 10

# Measurement of the background
t0 = 5 * cs.minute
n0 = 122
d_n0 = sqrt(n0) / t0
n0 = n0 / t0

print(ms.val("n0", n0, d_n0, unit='1/s', prefix=False))

# Measurement of β-Radiation absorption, Sr 90, GS 527
A_Sr = 74 * cs.kilo
a_Sr = 60 * cs.milli
d_a_Sr = 2 * cs.milli
t1_Sr = 30
t2_Sr = 2 * cs.minute
t3_Sr = 5 * cs.minute
n_Sr = npf([1136, 665, 412, 273, 180, 110, 306, 208, 131, 76, 60, 42])
d_n_Sr = sqrt(n_Sr)
n_Sr = np.append(n_Sr[:6] / t1_Sr, n_Sr[6:] / t2_Sr)
d_n_Sr = np.append(d_n_Sr[:6] / t1_Sr, d_n_Sr[6:] / t2_Sr)
d_Sr = np.arange(0.0, 0.3 * cs.milli * len(n_Sr), 0.3 * cs.milli)
n0_Sr = 51
d_n0_Sr = sqrt(n0_Sr) / t3_Sr
Example #19
0
bmax1 = 8.3
dbmax1 = 0.3
bmax2 = 4.9
dbmax2 = 0.1

# Measure series reduction
dT = ms.std_dev_m(T) / 20
T = ms.mean_value(T) / 20
dT1 = ms.std_dev_m(T1) / 15
T1 = ms.mean_value(T1) / 15
dT2 = ms.std_dev_m(T2) / 10
T2 = ms.mean_value(T2) / 10

print()
print(ms.val("T0", T, dT))
print(ms.val("T1", T1, dT1))
print(ms.val("T2", T2, dT2))

# Damping constant calculated with time of half amplitude
t1 = n1 * T1
dt1 = ms.sqrt((n1 * dT1)**2 + (T1 * dn1)**2)
t2 = n2 * T2
dt2 = ms.sqrt((n2 * dT2)**2 + (T2 * dn2)**2)
delta_ha1 = ms.ln(2) / t1
dDelta_ha1 = ms.ln(2) / t1**2 * dt1
delta_ha2 = ms.ln(2) / t2
dDelta_ha2 = ms.ln(2) / t2**2 * dt2

print()
print(ms.val("t1", t1, dt1))
Example #20
0
                               Uind_2a,
                               Uind_2a_dsys,
                               f_2a_dsys,
                               plot=True,
                               prange=(2, 16))[0:2]
pltext.set_layout(legend=True, xlim=(2, 16), ylim=(0, 5))

B_exp_2a = slope_2a / (2 * pi * A_i * N_i)
B_exp_2a_dsys = dslope_2a / (2 * pi * A_i * N_i)

mu_0 = 4 * pi * 1e-7
B_theo_2a = (8 / sqrt(125)) * mu_0 * I_2a * N_h / s_h
B_theo_2a_dsys = (8 / sqrt(125)) * mu_0 * I_2a_dsys * N_h / s_h

print('\nAufgabe 2a:\n')
print(val(B_exp_2a, B_exp_2a_dsys, 'B_exp '))
print(val(B_theo_2a, B_theo_2a_dsys, 'B_theo'))
print(dev(B_exp_2a, B_exp_2a_dsys, B_theo_2a, B_theo_2a_dsys, 'Abw'))

# Aufgabe 2b
f_2b = 9.46
f_2b_dsys = 0.10
I_2b = npfarray([0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5])
I_2b_dsys = sqrt(
    npfarray([0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01])**2 +
    0.005**2 + (0.012 * I_2b)**2)
Vss_2b = npfarray([0.724, 1.41, 2.04, 2.68, 3.32, 4.00, 4.65, 5.32, 6.12])
Vss_2b_dsys = npfarray([0.01, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05])

Uind_2b = Vss_2b / 2
Uind_2b_dsys = Vss_2b_dsys / 2
Example #21
0
# Eichung
links = npfarray([554.48, 584.99, 616.35, 644.31, 677.36])
rechts = npfarray([446.01, 413.80, 383.30, 355.33, 322.28])
diff = links - rechts
diff_err = sqrt(2) * 3 * diff / diff
sbreite = 2e-3 / 100 * npfarray([43, 70, 90, 104, 132])
sbreite_err = 1e-3 / 100 * sbreite / sbreite
pltext.initplot(num=0, title='Eichung', xlabel='Pixel', ylabel='Meter')
[mpp, dmpp, itc, ditc] = linreg(x=diff,
                                y=sbreite,
                                dx=diff_err,
                                dy=sbreite_err,
                                plot=True)
print()
print(val('Meter pro Pixel', mpp, dmpp))

# Einzelspaltbreite
lage_es_hmax = 499.79
lage_es_min = (npfarray([529.91, 561.26, 590.92, 623.13, 653.63]) -
               lage_es_hmax) * mpp
lage_es_max = (lage_es_hmax -
               npfarray([456.82, 424.68, 394.69, 363.78, 333.80])) * mpp
lage_es_d = npfarray([3, 3, 3, 3, 3]) * mpp
n_es = npfarray([1, 2, 3, 4, 5])

pltext.initplot(num=1,
                title='Position Extrema am Einzelspalt',
                xlabel='Ordnung',
                ylabel='Abstand')
[es_sl, es_dsl, es_itc, es_ditc] = linreg(n_es, lage_es_min, dy=lage_es_d)
Example #22
0
# measure version 1.9.1s
from measure import npfarray, pltext, plt, sqrt, expreg, val, linreg, tbl, lst, exp, mv, dtot_mv

# Aufgabe 2
ug_5min = 120
ug_5min_err = sqrt(ug_5min)
ug_1s = ug_5min / (5 * 60)
ug_1s_err = ug_5min_err / (5 * 60)

print('\nAufgabe 2:\n')
print(val(ug_1s, ug_1s_err, name='Untergrund / s'))

# Aufgabe 3
t = npfarray(
    [30, 30, 30, 30, 30, 30, 30, 60, 120, 120, 120, 120, 120, 120, 300])
d = npfarray(
    [0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.9])
N = npfarray(
    [1196, 677, 449, 289, 189, 143, 78, 86, 123, 91, 61, 68, 65, 42, 131])
N_err = sqrt(N)

N_t_ratio = N / t - ug_1s
N_t_ratio_err = sqrt((N_err / t)**2 + ug_1s_err**2)

pltext.initplot(num=1,
                title=r'Abbildung   : Absoprtion $\beta$-Strahlung',
                xlabel='Dicke in mm',
                ylabel='Ereignisse pro Sekunde',
                scale='linlog')
pltext.plotdata(d, N_t_ratio, N_t_ratio_err, label='Messwerte')
pltext.set_layout(xlim=(-0.2, 5.2), ylim=(1e-2, 6e1))
Example #23
0
prob_mf = chi2stat.fit_prob(chi2_mf, len(N_ag), ddof=4)

t_array = nplinspace(0, 400)
pltext.initplot(num=1,
                title='Abbildung   : Zerfall von Silber',
                xlabel='Zeit in s',
                ylabel='# Zerfälle (mit Untergrund)',
                scale='linlog')
pltext.plotdata(t, N_ag, N_ag_err, label='Messwerte')
plt.plot(t_array, fitfunc(t_array, *p_opt), label='Fit')
plt.plot(t_array, fitfunc_pf(t_array, *p_opt_pf), label='Fit + Fehler Ug')
plt.plot(t_array, fitfunc_mf(t_array, *p_opt_mf), label='Fit - Fehler Ug')
pltext.set_layout(xlim=(0, 4e2), ylim=(2e1, 4e2))

print('\nSilber:\n')
print(val(unterg_ag_mv, unterg_ag_mv_dsto, name='Untergrund'))
print()
print(
    tbl([['', 'A1', 'l1', 'A2', 'l2'],
         [
             'Fitwerte',
             val(p_opt[0], p_err[0]),
             val(p_opt[1], p_err[1]),
             val(p_opt[2], p_err[2]),
             val(p_opt[3], p_err[3])
         ],
         [
             'Fitwerte pf',
             val(p_opt_pf[0], p_err_pf[0]),
             val(p_opt_pf[1], p_err_pf[1]),
             val(p_opt_pf[2], p_err_pf[2]),
Example #24
0
ms.pltext.initplot(num=1, title=titles[0], xlabel=r'$\beta$ / $^\circ$', ylabel=r'$n$ / (1/s)', fignum=True)
s1, d_s1, b1, d_b1 = ms.linreg(beta1[:20], n1[:20], d_n1[:20], fit_range=range(10, 13), plot=True)
beta1_G = (n1_0 - b1) / s1
d_beta1_G = beta1_G * sqrt((d_n1_0**2 + d_b1**2) / (n1_0 - b1)**2 + (d_s1 / s1)**2)
beta1_G *= cs.degree
d_beta1_G *= cs.degree
ld1_G = 2 * d_LiF * sin(beta1_G)
d_ld1_G = 2 * d_LiF * cos(beta1_G) * d_beta1_G
h1 = (cs.e * U1 / cs.c) * ld1_G
d_h1 = (cs.e * U1 / cs.c) * d_ld1_G
beta1_G2 = arcsin(ld1_G / d_LiF)
d_beta1_G2 = d_ld1_G / sqrt(d_LiF**2 - ld1_G**2)

print()
print(ms.val("n0", n1_0, d_n1_0, unit='1/s', prefix=False))
print(ms.val("s1", s1, d_s1))
print(ms.val("b1", b1, d_b1))
print(ms.val("β_G", beta1_G / cs.degree, d_beta1_G / cs.degree, unit='°', prefix=False))
print(ms.val("λ_G", ld1_G, d_ld1_G, unit='m'))
print(ms.val("h", h1, d_h1, unit='Js', prefix=False))
print(ms.sig("h,l", h1, d_h1, cs.h))
print(ms.val("β_G2", beta1_G2 / cs.degree, d_beta1_G2 / cs.degree, unit='°', prefix=False))
print()

# (p1) Analysis of the K_α, K_β peaks in first and second order
def gauss(x, mu, sigma, A):
  return A / sqrt(2 * pi * sigma**2) * exp(-(x - mu)**2 / (2 * sigma**2))

t_p1 = 20.0
beta1_p1, n1_p1 = np.loadtxt('data/255/data2.txt', unpack=True)
Example #25
0
ms.plt.plot(t_Ag_fit, N_Ag_fit)

dof_Ag_fit = len(N_Ag[:cut]) - 4
χ2_Ag = ms.chi2(N_Ag[:cut], d_N_Ag[:cut],
                f_Ag(t_Ag[:cut], A1_Ag, λ1_Ag, A2_Ag, λ2_Ag))
χ2_Ag_red = χ2_Ag / dof_Ag_fit

p_Ag_fit = 1 - chi2.cdf(χ2_Ag, dof_Ag_fit)

τ1_Ag = ln(2) / λ1_Ag
d_τ1_Ag = ln(2) * d_λ1_Ag / λ1_Ag**2
τ2_Ag = ln(2) / λ2_Ag
d_τ2_Ag = ln(2) * d_λ2_Ag / λ2_Ag**2

print("Ag108, Ag110 decay:")
print(ms.val("A1", A1_Ag, d_A1_Ag, unit='Bq'))
print(ms.val("λ1", λ1_Ag, d_λ1_Ag, unit='1/s', prefix=False))
print(ms.val("A2", A2_Ag, d_A2_Ag, unit='Bq'))
print(ms.val("λ2", λ2_Ag, d_λ2_Ag, unit='1/s', prefix=False))
print(ms.val("χ²", χ2_Ag))
print(ms.val("χr²", χ2_Ag_red))
print(ms.val("pfit", 100 * p_Ag_fit, unit='%'))
print()
print("Half life of Ag110:")
print(ms.val("τ", τ1_Ag, d_τ1_Ag, unit='s'))
print(ms.sig("τ", τ1_Ag, d_τ1_Ag, 24.6))
print("Half life of Ag108:")
print(ms.val("τ", τ2_Ag / cs.minute, d_τ2_Ag / cs.minute, unit='min'))
print(ms.sig("τ", τ2_Ag, d_τ2_Ag, 2.37 * cs.minute))
print()