aboutsummaryrefslogtreecommitdiffstats
path: root/102
diff options
context:
space:
mode:
Diffstat (limited to '102')
-rw-r--r--102/prak102.data74
-rw-r--r--102/prak102.gp26
-rw-r--r--102/prak102.py62
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()
+