From 56edb3f1d55f93cbaec13cdef43fd511b35abee6 Mon Sep 17 00:00:00 2001 From: Martin Delcourt <martin.delcourt@uclouvain.be> Date: Mon, 18 Nov 2019 18:17:49 +0100 Subject: [PATCH] Adding integration --- Chapter_8/exam_simul.py | 9 ++---- Chapter_8/expo.pdf | Bin 17669 -> 16827 bytes Chapter_8/tp_lphys1201.py | 1 + Chapter_8/weibull.pdf | Bin 16885 -> 17003 bytes Chapter_9/capacitor.py | 46 ++++++++++++++++++++++++++++ Chapter_9/integrator.py | 63 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 112 insertions(+), 7 deletions(-) create mode 100644 Chapter_9/capacitor.py create mode 100644 Chapter_9/integrator.py diff --git a/Chapter_8/exam_simul.py b/Chapter_8/exam_simul.py index c65e1bc..7130eba 100644 --- a/Chapter_8/exam_simul.py +++ b/Chapter_8/exam_simul.py @@ -26,13 +26,8 @@ n_worse_sr = 0 n_tries = 5000 for i in range(n_tries): ss = simul_one_year(results_career,30) - av = ss.get_average() - sr = get_success_rate(ss) - - if av < one_year_av: - n_worse_av +=1 - if sr < one_year_sr: - n_worse_sr +=1 + n_worse_av += ss.get_average() < one_year_av + n_worse_sr += get_success_rate(ss) < one_year_sr print("Worse average in {} % of simulations.".format(100*n_worse_av*1./n_tries)) print("Worse success rate in {} % of simulations.".format(100*n_worse_sr*1./n_tries)) diff --git a/Chapter_8/expo.pdf b/Chapter_8/expo.pdf index 2c3aa522b204e21c7ec93509b061934e97e0ea1d..8c1843119f8a9d5d17ede07338322ac205e26d15 100644 GIT binary patch delta 4564 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 JBXeVp{{!~0%1ZzM delta 5417 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 diff --git a/Chapter_8/tp_lphys1201.py b/Chapter_8/tp_lphys1201.py index f78fa5c..6df8396 100644 --- a/Chapter_8/tp_lphys1201.py +++ b/Chapter_8/tp_lphys1201.py @@ -143,6 +143,7 @@ def sweep_alpha(n_students, wait_thresh, n_simul = 1000, n_teachers = 2, av_stud simulate_many(10000 , 13 , 2 , 40 ) +simulate_many(10000 , 13 , 1 , 40 ) simulate_many(10000 , 26 , 2 , 40 ) diff --git a/Chapter_8/weibull.pdf b/Chapter_8/weibull.pdf index 92f94d4b7fec15021249a525530a3cda97b075ae..7ef9d2ad39e12217d80e47ca7620b219b24e0760 100644 GIT binary patch delta 4734 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 delta 4610 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 diff --git a/Chapter_9/capacitor.py b/Chapter_9/capacitor.py new file mode 100644 index 0000000..4751ed8 --- /dev/null +++ b/Chapter_9/capacitor.py @@ -0,0 +1,46 @@ +from integrator import RombergIntegrator as integral +import math + + +def d_field(rx,ry,rz,Q): + den = rx**2 + ry**2 + rz**2 + if den == 0: + return 0 + + return Q * rz / math.pow(den, 1.5) + + +def I_x(x, ry, rz, Q, L): + + def ix(rx): + return d_field(rx,ry,rz,Q) + + return integral(ix, x-L, x+L, precision = 1e-2) + +def E_z(x,y,rz, Q = 1, L = 10): + + def iy(ry): + return I_x(x,ry,rz,Q,L) + + return integral(iy,y-L, y+L, precision = 1e-2) + + +def V(x,y, z0 = 1, Q = 1, L = 10): + def vz(rz): + return 2*E_z(x,y,rz,Q, L) + return integral(vz,0,2*z0,precision = 1e-2,silent = False) + + +distance = 0.2 + + +potential = V(0,0,distance/2) +theory = distance*4*math.pi +print("In the center : potential = {} - theory = {}; diff = {:.2f}%".format(potential,theory, 200*(potential-theory)/(potential + theory))) + + +potential = V(10,10,distance) +print("In the corner : potential = {} - theory = {}; diff = {:.2f}%".format(potential,theory, 200*(potential-theory)/(potential + theory))) + + + diff --git a/Chapter_9/integrator.py b/Chapter_9/integrator.py new file mode 100644 index 0000000..e7a568f --- /dev/null +++ b/Chapter_9/integrator.py @@ -0,0 +1,63 @@ +import math + +def TrapezeStep(function, x_min, x_max, k, old_int): + if k == 1: + return (function(x_min)+function(x_max))*(x_max-x_min)/2 + else: + n_steps = 2**(k-2) + h = (x_max - x_min)/n_steps + ii = 0 + x = x_min + h/2 + for i in range(n_steps): + ii += function(x) + x += h + return old_int/2 + h*ii/2 + + +def TrapezeIntegrator(function, x_min, x_max, precision=1e-9, step_min = 3, step_max = 25, silent = True): + + previous_integral = 0 + integral = 0 + error = precision+1 + + for step in range(1,step_max): + integral = TrapezeStep(function, x_min, x_max, step, previous_integral) + error = abs(previous_integral - integral) + previous_integral = integral + if not silent: + print("Step {} : precision of {}".format(step, error)) + if error < precision and step > step_min: + break + + return integral + + +def RombergIntegrator(function, x_min, x_max, precision=1e-9, step_min = 3, step_max = 20, silent = True): + + r = [TrapezeStep(function, x_min, x_max, 1, 0)] + + for k in range(2,step_max): + new_r = [ TrapezeStep(function, x_min, x_max, k, r[0]) ] + for m in range(1,k): + new_r.append(1/(4**m - 1) * (4**m * new_r[m-1] - r[m-1])) + + error = abs(r[-1] - new_r[-1]) + if not silent: + print("Step {} : precision of {}".format(k, error)) + r = new_r + if error < precision and k > step_min: + break + return r[-1] + #self.integrals.append(self.r[-1]) + + + + + +if __name__ == "__main__": + def my_func(x): + return math.exp(-0.5*x**2) + + ii = RombergIntegrator(my_func, -5, 5 , silent = False) + print (ii) + -- GitLab