Stat Python
Stat Python
def Trapz(x,gx):
integ=np.sum((gx[1:])+gx[:-1])/2*(x[1:]-x[:-1])
return integ
def ecdf(x,gx):
ecdf=np.zeros(len(x),dtype=float)
for i in range(1,len(x)):
ecdf[i]=Trapz(x[0:i],gx[0:i])
return ecdf
def GenerateSample(x,CDF,nb):
u=np.random.uniform(0,1,nb)
Samplle=[]
for i in range(len(u)):
Idw=np.where(CDF<=u[i])[0][-1]
try:
Iup=np.where(CDF>u[i])[0][0]
except:
Iup=Idw
Sample.append(np.random.uniform(x[Idw],x[Iup]))
Sample=np.asarray(Sample)
return Sample
# Paramètres
m = 2
s = 1
x = np.linspace(0.01, 200, 1000) # Éviter x proche de 0
# Tracé de la courbe
plt.figure(1)
plt.plot(x, fx, 'k', linewidth=2)
# Afficher la courbe
plt.xlabel('x')
plt.ylabel('f(x)')
plt.title('Log-Normale')
plt.grid(True)
plt.show()
ecdflognorm=ecdf(x,fx)
plt.figure(2)
plt.step(x,ecdflognorm,'k')