meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
a_mechanik:drehschwingungen:gruppenseiten:gruppe342:start [25 January 2021 18:44] – [Messung 1 - Stab an Saite dünn ($r= 0.4 \pm 0.1$)] juliusriekenberga_mechanik:drehschwingungen:gruppenseiten:gruppe342:start [26 January 2021 15:19] (current) juliusriekenberg
Line 182: Line 182:
  
 Der Fehler ist hier aber eigentlich deutlich größer, da wir von einer homogenen Masseverteilung ausgehen, was offensichtlich nicht der Fall ist. Der Fehler ist hier aber eigentlich deutlich größer, da wir von einer homogenen Masseverteilung ausgehen, was offensichtlich nicht der Fall ist.
-====== Messung 1 - Stab an Saite dünn ($r= 0.\pm 0.1$) ======+====== Messung 1 - Stab an Saite dünn ($r= 0.33 \pm 0.03$) ======
  
 Anfangsbedingungen: Anfangsbedingungen:
Line 204: Line 204:
 $ T(L)^2 = ( 6.01 \pm 0.27 ) \frac{s^2}{m} \cdot L  $ $ T(L)^2 = ( 6.01 \pm 0.27 ) \frac{s^2}{m} \cdot L  $
  
-Aus der Theorie erwarten wir eine Steigung die sich aus $( 6.01 \pm 0.27 )\frac{s^2}{m} = \frac{I}{2 \pi^3 G r^4}$ zusammensetzt. Außerdem kennen wir schon $ I = (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 $ und $ r = (0.\pm 0.1)mm \Longrightarrow r^4 = (0.0 \pm 0.4)mm $. Nach Umstellen ergibt sich:+Aus der Theorie erwarten wir eine Steigung die sich aus $st = \frac{I}{2 \pi^3 G r^4}$ zusammensetzt. Außerdem kennen wir schon $ I = (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 $ und $ r = (0.33 \pm 0.03)mm \Longrightarrow r^4 = ( 12 \pm \cdot 10^{-15} m $. Nach Umstellen ergibt sich:
  
-$ G = \frac{(4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2}{2 \pi^3 ( 6.01 \pm 0.27 )\frac{s^2}{m} (0.0 \pm 0.4)mm} = (\pm 110) 10^6 \frac{kg}{s^2 m}$+$ G = \frac{I}{2 \pi^3 \cdot st \cdot r^4 } = ( 10 \pm \cdot 10^{6}   \frac{kg}{s^2 m}$
  
 Da der relative Fehler viel zu groß ist und der $T^2$-Achsenabschnitt auch ziemlich groß ist, ist dieser Wert für weitere Berechnungen nicht emphelenswert. Da der relative Fehler viel zu groß ist und der $T^2$-Achsenabschnitt auch ziemlich groß ist, ist dieser Wert für weitere Berechnungen nicht emphelenswert.
  
  
-====== Messung 2 - Stab an Saite dick ($r = (1 \pm 0.1)mm$)======+====== Messung 2 - Stab an Saite dick ($r = (1 \pm 0.025)mm$)======
  
 Anfangsbedingungen: Anfangsbedingungen:
Line 232: Line 232:
  
  
-$ T(L)^2 = (4.1 \pm 0.8)\frac{s^2}{m} \cdot L + (-0.1 \pm 0.3)s^2 $+$ T(L)^2 = ( 383 \pm 20 \cdot 10^{-2} \frac{s^2}{m} \cdot L $
  
-Aus der Theorie erwarten wir eine Steigung die sich aus $(4.1 \pm 0.8)\frac{s^2}{m} = \frac{I}{2 \pi^3 G r^4}$ zusammensetzt. Außerdem kennen wir schon $ I = (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 $ und $ r = (1.0 \pm 0.1)mm \Longrightarrow r^4 = (1.0 \pm 0.4)mm^4 $. Nach Umstellen ergibt sich:+Aus der Theorie erwarten wir eine Steigung die sich aus $ st = \frac{I}{2 \pi^3 G r^4}$ zusammensetzt. Außerdem kennen wir schon $ I = (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 $ und $ r = (1.0 \pm 0.025)mm \Longrightarrow r^4 = ( 100 \pm 10 \cdot 10^{-14} m^4 $. Nach Umstellen ergibt sich:
  
-$ G = \frac{(4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2}{2 \pi^3 (4.1 \pm 0.8)\frac{s^2}{m} (1 \pm 0.4)mm^4} = (190 \pm 90) 10^\frac{kg}{s^2 m}  $+$ G = \frac{I}{2 \pi^3 \cdot st \cdot r^4 } = ( 20 \pm \cdot 10^{4}    \frac{kg}{s^2 m}$
  
 Diese Berechnung ist im Vergleich zur ersten deutlich plausibler.  Diese Berechnung ist im Vergleich zur ersten deutlich plausibler. 
Line 260: Line 260:
  
  
-$ T(L)^2 = (340 \pm 50)\frac{s^2}{m} \cdot L + (22 \pm 16)s^2 $+$ T(L)^2 = ( 43 \pm \cdot 10^{1} \frac{s^2}{m} \cdot L $
  
-Aus der Theorie erwarten wir eine Steigung die sich aus $(340 \pm 50)\frac{s^2}{m} = \frac{I}{2 \pi^3 G r^4}$ zusammensetzt. Außerdem kennen wir schon $ I = (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 $ und $ r = (1.0 \pm 0.1)mm \Longrightarrow r^4 = (81 \pm 4)mm^4 $. Nach Umstellen ergibt sich:+Aus der Theorie erwarten wir eine Steigung die sich aus $ st = \frac{I}{2 \pi^3 G r^4}$ zusammensetzt. Außerdem kennen wir schon $ I = (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 $ und $ r = (\pm 1)mm \Longrightarrow r^4 = ( \pm 11 \cdot 10^{-11} m^4 $. Nach Umstellen ergibt sich:
  
-$ G = \frac{(4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2}{2 \pi^3 (340 \pm 50)\frac{s^2}{m} (81 \pm 4)mm^4} = (2.3 \pm 0.7) 10^\frac{kg}{s^2 m}$+$ G = \frac{I}{2 \pi^3 \cdot st \cdot r^4 } = ( 2 \pm \cdot 10^{1}    \frac{kg}{s^2 m}$
  
 Diese Berechnung scheitert an der Annahme eines harmonischen Potentials. Diese Berechnung scheitert an der Annahme eines harmonischen Potentials.
Line 289: Line 289:
  
  
-$ T(L)^2 = (311 \pm 7)\frac{s^2}{m} \cdot L + (-7 \pm 3) $+$ T(L)^2 = ( 290 \pm 7 ) \frac{s^2}{m} \cdot L $
  
-Vergleicht man nun den Proportionalitätfaktor mit dem aus Messung 2 erhält man $ I_{Topf1}= \frac{(311 \pm 7)\frac{s^2}{m}}{(4.1 \pm 0.8)\frac{s^2}{m}} \cdot (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 = (3.7 \pm 1.1) 10^{-3} \ kg\ m^2 $+Vergleicht man nun den Proportionalitätfaktor mit dem aus Messung 2 erhält man $ I_{Topf1}= \frac{st_{Topf1}}{st_{Stab}} \cdot I_{Stab} = ( 36 \pm \cdot 10^{-4 \ kg\ m^2 $
 ====== Messung 5 - Topfdeckel 2 an Saite dick ====== ====== Messung 5 - Topfdeckel 2 an Saite dick ======
  
Line 314: Line 314:
  
  
-$ T(L)^2 = (60.8 \pm 0.3)\frac{s^2}{m} \cdot L + (-1.89 \pm 0.12)s^2 $+$ T(L)^2 = ( 558 \pm 15 \cdot 10^{-1}\frac{s^2}{m} \cdot L $
  
-Vergleicht man nun den Proportionalitätfaktor mit dem aus Messung 2 erhält man $ I_{Topf_2}= \frac{(60.8 \pm 0.3)\frac{s^2}{m}}{(4.1 \pm 0.8)\frac{s^2}{m}} \cdot (4,8 \pm 1,2) \cdot 10^{-5}\ kg\ m^2 = (0.71 \pm 0.22) 10^{-3} \ kg\ m^2 $+Vergleicht man nun den Proportionalitätfaktor mit dem aus Messung 2 erhält man $ I_{Topf_2}= \frac{st_{Topf_2}}{st_{Stab}} I_{Stab70 \pm 18 ) \cdot 10^{-5}  \ kg\ m^2 $
  
 ====== Auswertung ====== ====== Auswertung ======
Line 331: Line 331:
  
 <code python > <code python >
- 
 import numpy as np import numpy as np
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
 from scipy import stats from scipy import stats
 +from scipy.odr import *
 +from help import string_correctly, err_evolution
  
 ul = 0.03 ul = 0.03
Line 340: Line 341:
  
 mess1 = {'val': np.array([[0.56, 17.5], [0.42, 15.9], [0.35, 15.6], [0.29, 12.9], [0.24, 12.58]]), 'phi': np.pi, mess1 = {'val': np.array([[0.56, 17.5], [0.42, 15.9], [0.35, 15.6], [0.29, 12.9], [0.24, 12.58]]), 'phi': np.pi,
-         'nt': 10}+         'nt': 10, 'r': 1 / 3 * 10 ** - 3, 'r_err': 0.1 / 3 * 10 ** - 3, 'i': 4.8 * 10 ** -5, 'i_err': 1.2 * 10 ** -5}
  
 mess2 = {'val': np.array([[0.53, 13.44], [0.62, 16.32], [0.47, 12.68], [0.35, 11.49], [0.23, 9.47]]), 'phi': np.pi, mess2 = {'val': np.array([[0.53, 13.44], [0.62, 16.32], [0.47, 12.68], [0.35, 11.49], [0.23, 9.47]]), 'phi': np.pi,
-         'nt': 10}+         'nt': 10, 'r': 1 * 10 ** - 3, 'r_err': 0.1 / 4 * 10 ** - 3, 'i': 4.8 * 10 ** -5, 'i_err': 1.2 * 10 ** -5}
  
 mess3 = {'val': np.array([[0.48, 26.86], [0.18, 19.37], [0.1, 13.58]]), 'phi': 4 * np.pi, mess3 = {'val': np.array([[0.48, 26.86], [0.18, 19.37], [0.1, 13.58]]), 'phi': 4 * np.pi,
-         'nt': 2}+         'nt': 2, 'r': 3 * 10 ** - 3, 'r_err': 1 * 10 ** - 3, 'i': 4.8 * 10 ** -5, 'i_err': 1.2 * 10 ** -5}
  
 mess4 = {'val': np.array([[0.56, 38.88], [0.29, 27.11], [0.17, 20.57]]), 'phi': np.pi, mess4 = {'val': np.array([[0.56, 38.88], [0.29, 27.11], [0.17, 20.57]]), 'phi': np.pi,
-         'nt': 3}+         'nt': 3, 'r': 1 * 10 ** - 3, 'r_err': 0.1 / 4 * 10 ** - 3, 'i': 4.8 * 10 ** -5, 'i_err': 1.2 * 10 ** -5}
  
 mess5 = {'val': np.array([[0.50, 26.69], [0.33, 21.36], [0.17, 14.51]]), 'phi': np.pi, mess5 = {'val': np.array([[0.50, 26.69], [0.33, 21.36], [0.17, 14.51]]), 'phi': np.pi,
-         'nt': 5}+         'nt': 5, 'r': 1 * 10 ** - 3, 'r_err': 0.1 / 4 * 10 ** - 3, 'i': 4.8 * 10 ** -5, 'i_err': 1.2 * 10 ** -5} 
 + 
 + 
 +def lin(a, x): 
 +    return a * x 
 + 
 + 
 +def r_4(r): 
 +    return r ** 4 
 + 
 + 
 +def torsion(i, r4, slope): 
 +    return i / (2 * np.pi ** 3 * r4 * slope) 
 + 
 + 
 +def trägmom(i2, slope1, slope2): 
 +    return i2 * slope1 / slope2 
  
 messes = [mess1, mess2, mess3, mess4, mess5] messes = [mess1, mess2, mess3, mess4, mess5]
Line 367: Line 385:
     tq_max = max(t_quad)     tq_max = max(t_quad)
     tq_mean = sum(t_quad) / len(t_quad)     tq_mean = sum(t_quad) / len(t_quad)
 +    uts = [2 * tq * ut / (nt ** 2) for tq in t_quad]
     sol = stats.linregress(lengths[:len(t_quad)], t_quad)     sol = stats.linregress(lengths[:len(t_quad)], t_quad)
-    fit = [sol.slope * l + sol.intercept for l in lens]+    lin_model = Model(lin) 
 +    data = RealData(lengths[:len(t_quad)], t_quad, sx=ul, sy=uts) 
 +    sol_real = ODR(data, lin_model, beta0=[1.]).run() 
 +    fit = [sol_real.beta[0] * l for l in lens]
     dls = [l - l_mean for l in lengths]     dls = [l - l_mean for l in lengths]
     sdl = sum([abs(dl) for dl in dls]) / len(dls)     sdl = sum([abs(dl) for dl in dls]) / len(dls)
Line 375: Line 397:
     covltq = sum([dls[i] * dtqs[i] for i in range(len(dls))]) / (len(dls) - 1)     covltq = sum([dls[i] * dtqs[i] for i in range(len(dls))]) / (len(dls) - 1)
     corltq = covltq / (sdl * sdtq)     corltq = covltq / (sdl * sdtq)
-    print('(%.3f' % (round(sol.slope, 3)) + ' \pm ' + '%.3f' % (round(sol.stderr, 3)) + ') \cdot L + ' + '(%.3f' % ( 
-        round(sol.intercept, 3)) + ' \pm ' + '%.3f)' % (round(sol.intercept_stderr, 3))) 
     fig = plt.figure(figsize=(6, 6))     fig = plt.figure(figsize=(6, 6))
     ax = fig.add_subplot(111)     ax = fig.add_subplot(111)
-    ax.errorbar(lengths, [time ** 2 for time in times], linestyle='', marker='', xerr=ul, yerr=2 * tq_mean * ut / nt,+    ax.errorbar(lengths, [time ** 2 for time in times], 
 +                linestyle='', marker='', xerr=ul, 
 +                yerr=2 * tq_mean * ut / (nt ** 2),
                 label='Messwerte')                 label='Messwerte')
-    ax.plot(lens, fit, linestyle='-', label='Linfit mit $R^2 =$' + "%.3f" % (round(sol.rvalue ** 2, 3)))+    ax.plot(lens, fit, linestyle='-', 
 +            label='Linfit mit $R^2 =$' + "%.3f" % (round(sol.rvalue ** 2, 3)))
     ax.set_xlim(0, 1.1 * l_max)     ax.set_xlim(0, 1.1 * l_max)
     ax.set_ylim(0, 1.1 * tq_max)     ax.set_ylim(0, 1.1 * tq_max)
Line 390: Line 413:
     plt.savefig('Drehschwingung.Messung' + str(j + 1) + '.png')     plt.savefig('Drehschwingung.Messung' + str(j + 1) + '.png')
     plt.show()     plt.show()
 +    slope = sol_real.beta[0]
 +    slope_err = sol_real.sd_beta[0]
 +    print(j + 1, ':')
 +    print('Slope: ', string_correctly(slope, slope_err))
 +    if j < 3:
 +        r = mess['r']
 +        r_err = mess['r_err']
 +        i = mess['i']
 +        i_err = mess['i_err']
 +        if j == 1:
 +            i2 = i
 +            i2_err = i_err
 +            slope2 = slope
 +            slope2_err = slope_err
 +        r4, r4_err = err_evolution(r_4, [r], [r_err])
 +        g, g_err = err_evolution(torsion, [i, r4, slope], [i_err, r4_err, slope_err])
 +        print('r^4: ', string_correctly(r4, r4_err))
 +        print('g: ', string_correctly(g, g_err), end='\n\n\n')
 +    else:
 +        i, i_err = err_evolution(trägmom, [i2, slope, slope2], [i2_err, slope_err, slope2_err])
 +        print('I: ', string_correctly(i, i_err), end='\n\n\n')
 +
 +</code>
 +        
 +
 +
 +===== Hilfscode =====
 +<code python>
 +def round_correctly(val, err):
 +    first_sign = 0
 +    while err // (10 ** first_sign) > 0:
 +        first_sign += 1
 +    while err // (10 ** first_sign) == 0:
 +        first_sign -= 1
 +    if err // (10 ** first_sign) < 3:
 +        first_sign -= 1
 +    return round(val * 10 ** -first_sign), round(err * 10 ** -first_sign), first_sign
 +
 +
 +def lin_fit_label(sol, xstr):
 +    return '$Fit = ' + string_correctly(sol.slope, sol.stderr) + ' \\cdot ' + xstr + ' + ' + string_correctly(
 +        sol.intercept, sol.intercept_stderr) + '$;  $R^2 = ' + str(round(sol.rvalue ** 2, 3)) + '$'
 +
 +
 +def string_correctly(val, err):
 +    val, err, pot = round_correctly(val, err)
 +    return ' ( ' + str(int(val)) + ' \pm ' + str(int(err)) + ' )' + (' \\cdot 10^{' + str(pot) + '} ') * (pot != 0)
 +
 +
 +def err_evolution(func, params, errors):
 +    val = func(*params)
 +    err_q = 0
 +    for i in range(len(params)):
 +        _, _, pot = round_correctly(params[i], errors[i])
 +        h = 10 ** (pot - 5)
 +        upper = (params[j] + h * (j == i) for j in range(len(params)))
 +        lower = (params[j] - h * (j == i) for j in range(len(params)))
 +        diff = (func(*upper) - func(*lower)) / (2 * h)
 +        err_q += (diff * errors[i]) ** 2
 +    return val, err_q ** 0.5
  
 </code> </code>