diff options
Diffstat (limited to '102')
-rw-r--r-- | 102/prak102.data | 74 | ||||
-rw-r--r-- | 102/prak102.gp | 26 | ||||
-rw-r--r-- | 102/prak102.py | 62 |
3 files changed, 162 insertions, 0 deletions
diff --git a/102/prak102.data b/102/prak102.data new file mode 100644 index 0000000..13f2988 --- /dev/null +++ b/102/prak102.data @@ -0,0 +1,74 @@ +0.233 +0.001 +10 +10 +7.03 +6.91 +7.06 +7.66 +7.69 +7.69 +8.31 +8.25 +8.21 +8.75 +8.79 +8.75 +9.25 +9.21 +9.25 +9.78 +9.75 +9.75 +10.28 +10.34 +10.34 +10.75 +10.68 +10.72 +11.22 +11.28 +11.16 +11.56 +11.59 +11.54 +12.00 +11.97 +12.00 +0.362 +0.008 +0.390 +0.004 +0.417 +0.005 +0.444 +0.005 +0.4691 +0.008 +0.497 +0.005 +0.5201 +0.006 +0.5398 +0.009 +0.5599 +0.014 +0.5809 +0.01 +0.6014 +0.007 +0.2462 +0.0002 +0.0895 +0.0001 +0.0572 +0.0001 +0.0419 +0.0001 +0.0335 +0.0001 +0.0281 +0.0001 + + + diff --git a/102/prak102.gp b/102/prak102.gp new file mode 100644 index 0000000..b241801 --- /dev/null +++ b/102/prak102.gp @@ -0,0 +1,26 @@ +f(x) = a*x+b + +set term png +set grid +set output 'T2_timer.png' +set xlabel "m, ед." +set ylabel "T^2, c^2" +fit f(x) 'outputT2_timer.data' using 1:2:3 via a,b +plot 'outputT2_timer.data' using 1:2:3 with yerrorbars title "",\ + 'outputT2_timer.data' with line title "T^2(m)",\ + f(x) title "ax+b" +set output 'T2_photo.png' +set xlabel "m, ед." +set ylabel "T^2, c^2" +fit f(x) 'outputT2_photo.data' using 1:2:3 via a,b +plot 'outputT2_photo.data' using 1:2:3 with yerrorbars title "",\ + 'outputT2_photo.data' with line title "T^2(m)",\ + f(x) title "ax+b" +set output 'U.png' +set xlabel "U, В" +set ylabel "w, 1/c" +set yrange[0:250] +fit f(x) 'outputU.data' using 1:2:3 via a,b +plot 'outputU.data' using 1:2:3:4 with xyerrorbars title "",\ + 'outputU.data' with line title "w(U)",\ + f(x) title "ax+b" diff --git a/102/prak102.py b/102/prak102.py new file mode 100644 index 0000000..4257a5f --- /dev/null +++ b/102/prak102.py @@ -0,0 +1,62 @@ +import os, sys + +# HACKHACKHACKHACKHACKHACKHACKHACKHACKHACKHACKHACK +cwd = os.getcwd() +cwd = cwd.rstrip('/1234567890') # remove characters from string +sys.path.insert(0, cwd) +from praklib import * + +def v(l, t): return l/t +def v2(l, t): return (l/t)**2 +def a_teor(dh2, L): return 9.807 * dh2 / L + +def main(): + print("Введите L1-L3 (м), l1-l3 (м), M1-M3 (г)") + Ls = [float(input()) for _ in range(3)] + ls = [float(input()) for _ in range(3)] + Ms = [float(input())/1000.0 for _ in range(3)] + + for i in Ls, ls, Ms: + sig_sist = float(input(f"сист. погрешность для {getvarbyval(i, locals())}(м/Кг): ")) + print(f"{getvarbyval(i, locals())}: mean={avg(i)}; stddev={stddev(i)}; sigma={sigsum(sig_sist, stddev(i))}") + i.append(sigsum(sig_sist, stddev(i))) + + print("Введите 3 массы тележек"); + h = 6 # mm + rest = {float(input())/1000.0 : [[round(0.2 * (j+1), 1), 0, 0] for j in range(5)] for i in range(3)} + for m in sorted(rest.keys()): + for x in rest[m]: + print(f"введите t1, t2, t3 для dh=6mm, m={m*1000}г, x={x[0]}м") + ts = [float(input()) for _ in range(3)] + x[1] = avg(ts) + x[2] = stddev(ts) + print(f"t_avg = {x[1]}, t_dev = {x[2]}") + + l = avg(ls[:-1]); sl = ls[-1] + resv = {i : [np.zeros((5,), dtype=float) for _ in range(4)] for i in sorted(rest.keys())} + for m in sorted(rest.keys()): + for i, x in enumerate(rest[m]): + args = [l, x[1]] + sigmas = [sl, x[2]] + _v = v(*args) + _v2 = v2(*args) + _v2s = sigma(v2, args, sigmas) + resv[m][0][i] = x[0] + resv[m][1][i] = _v + resv[m][2][i] = _v2 + resv[m][3][i] = _v2s + print(f"для m={m*1000}г, x={x[0]}м: v={_v}, v^2={_v2}, sigma_v={_v2s}") + for m in sorted(resv.keys()): + data = resv[m] + d = mnk(data[0], data[2], data[3]) + A = d['a']; + sA = d['sa'] + B = d['b']; sB = d['sb'] + a = A/2; sa = sA/2 + a_t = a_teor(h / 1e3, avg(Ls[:-1])) + sa_t = sigma(a_teor, [h/1e3, avg(Ls[:-1])], [float(input("Введите погрешность dh_2: ")), Ls[-1]]) + print(f"A = {A}+-{sA}\nB = {B}+-{sB}\na = {a}+-{sa}\na_teor = {a_t}, sigma_a_teor = {sa_t}") + +if __name__ == "__main__": + main() + |