aled paul
This commit is contained in:
parent
ebf87d231c
commit
ce5b4e560c
1 changed files with 41 additions and 16 deletions
55
Probas.py
55
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,28 +170,51 @@ 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)))
|
||||
|
||||
#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)
|
||||
|
|
Loading…
Reference in a new issue