From ce5b4e560cfa36bf56331155a2f6f7c14bcdc6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lacau?= Date: Sat, 3 Jun 2023 17:27:38 +0200 Subject: [PATCH] aled paul --- Probas.py | 57 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/Probas.py b/Probas.py index cf40d49..318a39f 100755 --- a/Probas.py +++ b/Probas.py @@ -70,7 +70,7 @@ def stats_NFBP_iter(R, N): IVarianceSum = 0 HSum = [0 for _ in range(N)] HSumVariance = [0 for _ in range(N)] - Sum_T=[] + Sum_T=[0 for _ in range(10)] Sum_V=[] Sum_H=[] for i in range(R): @@ -80,34 +80,36 @@ def stats_NFBP_iter(R, N): for n in range(N): HSum[n] += sim["H"][n] HSumVariance[n] += sim["H"][n]**2 - Sum_T=Sum_T+sim['T'] + T=sim['T'] + for i in range(5): + T.append(0) + Sum_T=[x+y for x,y in zip(Sum_T,T)] Sum_H=Sum_H+sim['H'] for k in range(sim['i']): #we use round to approximate variations of continuous variable V Sum_V.append(round(sim['V'][k],2)) + Sum_T=[x/R for x in Sum_T] + print(Sum_T) I = ISum/R IVariance = sqrt(IVarianceSum/(R-1) - I**2) print("Mean number of boxes : {} (variance {})".format(I, IVariance),'\n') print(" {} * {} iterations of T".format(R,N),'\n') #Plotting - #fig = plt.figure() - #ax = fig.add_subplot(111) #matplotlib.stairs(Sum_T,bins=[0,1,2,3,4]) #ax.hist(Sum_T, bins=8, edgecolor='k', density=True, label='Valeurs empiriques') #ax.set(xlim=(0, 8), xticks=np.arange(1, 8), #ylim=(0, 500), yticks=np.linspace(0, 56, 9)) - #ax.legend() - #plt.show() - #plt.style.use('_mpl-gallery') - #make data #plot: #fig = plt.subplots() fig = plt.figure() #T plot + x = np.arange(7) + print(x) ax = fig.add_subplot(221) - ax.hist(Sum_T, bins=6, linewidth=0.5, edgecolor="white", label='Empirical values') - ax.set(xlim=(0, 6), xticks=np.arange(0, 6),ylim=(0, 6000), yticks=np.linspace(0, 6000, 9)) + ax.bar(x,Sum_T, width=1, edgecolor="white", linewidth=0.7) + # ax.hist(Sum_T, bins=6, linewidth=0.5, edgecolor="white", label='Empirical values') + ax.set(xlim=(0, 10), xticks=np.arange(0, 10),ylim=(0,10), yticks=np.linspace(0, 10, 1)) ax.set_title('T histogram for {} packages (Number of packages in each box)'.format(P)) ax.legend() #V plot @@ -168,27 +170,50 @@ def stats_NFDBP(R, N): Runs R runs of NFDBP (for N packages) and studies distribution, variance, mean... """ print("Running {} NFDBP simulations with {} packages".format(R, N)) + P=N*R I = [] H = [[] for _ in range(N)] # List of empty lists Tmean=[] T=[] + Sum_T=[] + #First iteration to use zip after + sim=simulate_NFDBP(N) + Sum_T=sim["T"] for i in range(R): sim = simulate_NFDBP(N) I.append(sim["i"]) for n in range(N): H[n].append(sim["H"][n]) T=sim["T"] + for k in range(10): + Sum_T.append(0) for k in range(sim["i"]): - # for o in range(sim["i"]): - #Tmean+=sim["T"] Tmean.append(T[k]) - + Sum_T=[x+y for x,y in zip(Sum_T,sim["T"])] + print(Sum_T) + print(sum(Sum_T)) + print(P) + Sum_T=[x*100/(sum(Sum_T)) for x in Sum_T] + print(Sum_T) print("Mean number of boxes : {} (variance {})".format(mean(I), variance(I))) for n in range(N): print("Mean H_{} : {} (variance {})".format(n, mean(H[n]), variance(H[n]))) - for k in range(int(sim["i"])): - print("Mean T_{} : {} (variance {})".format(k, mean(Tmean), variance(Tmean))) + print("Mean T_{} : {} (variance {})".format(k, mean(Tmean), variance(Tmean))) + +#Plotting + fig, ax = plt.subplots() + #T plot + x = 0.5 + np.arange(8) + x=x.tolist() + print(type(x)) + print(x) + ax.bar(x, Sum_T, width=1, edgecolor="white", linewidth=0.5) + ax.set(xlim=(0, 10), xticks=np.arange(0, 10),ylim=(0, 25), yticks=np.linspace(0, 25, 9)) + ax.set_title('Repartition of packets in each box percents for {} packages '.format(P)) + ax.legend() + plt.show() + N = 10 ** 1 sim = simulate_NFBP(N) @@ -213,7 +238,7 @@ for j in range(sim["i"] + 1): print() stats_NFBP_iter(10**3, 10) -stats_NFDBP(10 ** 3, 10) +#stats_NFDBP(10 ** 3, 10) # #pyplot.plot([1, 2, 4, 4, 2, 1], color = 'red', linestyle = 'dashed', linewidth = 2, #markerfacecolor = 'blue', markersize = 5)