Binomial
Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom
import random
###1###
# données
N_binomial = 20
p_binomial = 0.5
Nmc_binomial = 10000
# Simulation de la variable aléatoire binomiale
binomial_data = np.random.binomial(N_binomial, p_binomial, Nmc_binomial)
# fonction de répartition
x_cdf_binomial = np.arange(0, N_binomial + 1)
y_cdf_binomial = np.array([np.sum(binomial_data <= xi) / Nmc_binomial for xi in x_cdf_binomial])
plt.figure(figsize=(10, 6))
plt.step(x_cdf_binomial, y_cdf_binomial, where='post', label='CDF de Binomiale')
plt.title('Fonction de Répartition de Binomiale')
plt.xlabel('Nombre de succès')
plt.ylabel('Probabilité')
plt.legend()
plt.grid(True)
plt.show()
# fonction de densité
x_pmf_binomial = np.arange(0, N_binomial + 1)
y_pmf_binomial = binom.pmf(x_pmf_binomial, N_binomial, p_binomial)
plt.figure(figsize=(10, 6))
plt.bar(x_pmf_binomial, y_pmf_binomial, label='PMF de Binomiale', alpha=0.7)
plt.title('Fonction de Densité de Binomiale')
plt.xlabel('Nombre de succès')
plt.ylabel('Probabilité')
plt.legend()
plt.grid(True)
plt.show()
###2###
def V_A_Binomiale(p, N):
k = 0
proba = (1 - p) ** N
F = proba
U = random.uniform(0, 1)
while U > F:
proba = (p * (N - k)) / ((1 - p) * (k + 1)) * proba
F = F + proba
k = k + 1
X = k
return X
# utilisation
p_binom = 0.5
N_binom = 20
# Simulation d'une variable aléatoire binomiale
result = V_A_Binomiale(p_binom, N_binom)
print(f'Variable aléatoire binomiale simulée: {result}')
###3###
# données
p_binom = 0.2
N_binom = 50
Nmc_binom = 10000
# Simulation de la variable aléatoire binomiale
binomial_data = [V_A_Binomiale(p_binom, N_binom) for _ in range(Nmc_binom)]
# Calcul des statistiques empiriques
esperance_empirique = np.mean(binomial_data)
variance_empirique = np.var(binomial_data)
# Calcul des valeurs théoriques
esperance_theorique = N_binom * p_binom
variance_theorique = N_binom * p_binom * (1 - p_binom)
# Affichage des résultats
print(f'Espérance empirique: {esperance_empirique}')
print(f'Variance empirique: {variance_empirique}')
print(f'Espérance théorique: {esperance_theorique}')
print(f'Variance théorique: {variance_theorique}')
# fonction de répartition
a_cdf, b_cdf = 0, 50
delta_cdf = 0.5
Nx_cdf = 100
x_cdf = np.arange(a_cdf, b_cdf + delta_cdf, delta_cdf)
y_cdf = [np.sum(binomial_data <= xi) / Nmc_binom for xi in x_cdf]
plt.figure(figsize=(10, 6))
plt.step(x_cdf, y_cdf, where='post', label='CDF de Binomiale')
plt.title('Fonction de Répartition de Binomiale')
plt.xlabel('Nombre de succès')
plt.ylabel('Probabilité')
plt.legend()
plt.grid(True)
plt.show()
# fonction de densité
a_pmf, b_pmf = 0, 20
delta_pmf = 1
Nx_pmf = 20
x_pmf = np.arange(a_pmf, b_pmf + delta_pmf, delta_pmf)
y_pmf = binom.pmf(x_pmf, N_binom, p_binom)
plt.figure(figsize=(10, 6))
plt.bar(x_pmf, y_pmf, label='PMF de Binomiale', alpha=0.7)
plt.title('Fonction de Densité de Binomiale')
plt.xlabel('Nombre de succès')
plt.ylabel('Probabilité')
plt.legend()
plt.grid(True)
plt.show()
Output
Embed on website
To embed this program on your website, copy the following code and paste it into your website's HTML:
Comments
This comment belongs to a banned user and is only visible to admins.
This comment belongs to a deleted user and is only visible to admins.