triangulaire
Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import pareto
# Simuler la v.a. Pareto(α=9, β=2)
alpha1 = 9
beta1 = 2
Nmc = 10000
pareto_data1 = pareto.rvs(alpha1, size=Nmc, scale=beta1)
esperance_empirique1 = np.mean(pareto_data1)
variance_empirique1 = np.var(pareto_data1)
esperance_theorique1 = alpha1 / beta1
variance_theorique1 = alpha1 / (beta1 ** 2)
print(f"Espérance empirique : {esperance_empirique1}, Espérance théorique : {esperance_theorique1}")
print(f"Variance empirique : {variance_empirique1}, Variance théorique : {variance_theorique1}")
# fonction de répartition
a0, b0 = 2, 12
delta = 0.1
Nx = 100
x_values = np.linspace(a0, b0, Nx)
cdf_values1 = pareto.cdf(x_values, alpha1, scale=beta1)
plt.plot(x_values, cdf_values1, label='Pareto(9, 2)')
plt.xlabel('Valeur de la variable aléatoire')
plt.ylabel('Probabilité cumulative')
plt.legend()
plt.show()
# fonction de densité
pdf_values1 = pareto.pdf(x_values, alpha1, scale=beta1)
plt.plot(x_values, pdf_values1, label='Pareto(9, 2)')
plt.xlabel('Valeur de la variable aléatoire')
plt.ylabel('Densité de probabilité')
plt.legend()
plt.show()
# Simuler la v.a. Pareto(α=2, β=1)
alpha2 = 2
beta2 = 1
pareto_data2 = pareto.rvs(alpha2, size=Nmc, scale=beta2)
esperance_empirique2 = np.mean(pareto_data2)
variance_empirique2 = np.var(pareto_data2)
esperance_theorique2 = alpha2 / beta2
variance_theorique2 = alpha2 / (beta2 ** 2)
print(f"Espérance empirique : {esperance_empirique2}, Espérance théorique : {esperance_theorique2}")
print(f"Variance empirique : {variance_empirique2}, Variance théorique : {variance_theorique2}")
# fonction de répartition
a0, b0 = 1, 11
cdf_values2 = pareto.cdf(x_values, alpha2, scale=beta2)
plt.plot(x_values, cdf_values2, label='Pareto(2, 1)')
plt.xlabel('Valeur de la variable aléatoire')
plt.ylabel('Probabilité cumulative')
plt.legend()
plt.show()
# fonction de densité
pdf_values2 = pareto.pdf(x_values, alpha2, scale=beta2)
plt.plot(x_values, pdf_values2, label='Pareto(2, 1)')
plt.xlabel('Valeur de la variable aléatoire')
plt.ylabel('Densité de probabilité')
plt.legend()
plt.show()
# Fonction de répartition inversée pour la variable aléatoire triangulaire
def inverse_cdf_triangle(u):
if u < 0.5:
return np.sqrt(2 * u)
else:
return 2 - np.sqrt(2 * (1 - u))
def generate_triangle_samples(size):
u_values = np.random.rand(size) # Générer des valeurs uniformes dans [0, 1]
x_values = np.array([inverse_cdf_triangle(u) for u in u_values])
return x_values
bins = np.linspace(0, 2, 50)
samples = generate_triangle_samples(10000)
# histogramme
plt.hist(samples, bins=bins, density=True, alpha=0.5, label='Échantillons')
# fonction de densité
x_values = np.linspace(0, 2, 1000)
pdf_values = np.piecewise(x_values, [x_values < 1, x_values >= 1], [lambda x: x, lambda x: 2 - x])
plt.plot(x_values, pdf_values, 'r', label='Densité théorique')
plt.xlabel('Valeur de la variable aléatoire')
plt.ylabel('Densité de probabilité')
plt.legend()
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.