Question 1 : Créer une variable aléatoire discrète X
de distribution :
$$
(0.4, 0.3, 0.2, 0.1)
$$
Question 2 : Tirer aléatoirement $M = 10000$ valeurs selon $X$, puis afficher l'histogramme correspondant.
On considère la loi normale, centrée en $0$ et de variance $\sigma = 1$, aussi nommé loi gaussienne.
Question 1 : Afficher la fonction de densité de probabilité de la loi normale, entre $x_{\rm min} = -5$ et $x_{\rm max} = 5$.
Question 2 : Sur le même graphique, afficher dans une autre couleur la fonction de répartition de la loi normale.
Question 3 (optionnelle) : Calculer, de manière approchée, l'espérance et la variance de la loi normale. Pour rappel, si $f(t)$ est la densité de probabilité de la loi normale $N$, alors l'espérance de $N$ est donnée par $$ \mathbb{E}(N) = \int_{-\infty}^{+\infty} t f(t) dt $$ et sa variance est donnée par $$ \mathbb{V}(N) = \int_{-\infty}^{+\infty} t^2 f(t) dt - \mathbb{E}(N)^2 $$
Pour calculer une intégrale de manière approchée, on pourra utiliser la fonction d'intégration numérique numerical_integrate(f(x), (x, -oo, oo))
, où le symbole oo
représente $\infty$.
Question 1 : Écrire une fonction interieur_disque(x, y)
qui teste si un point de coordonnées $(x,y)$ est à l'intérieur du cercle de centre $(0, 0)$ et de rayon $1$.
Question 2 : Écrire une fonction tirages_disque(N)
qui tire $N$ points $(x, y)$ uniformément dans $[-1, 1]^2$, et qui compte le nombre de points contenus dans le disque de centre $(0, 0)$ et de rayon $1$.
Pour de grandes valeurs de $N$, le rapport entre le nombre de tirages à l'intérieur du disque et le nombre de tirages total, tend vers le rapport des aires du disque et du carré $[-1, 1]^2$.
Question 3 : Déduire de la remarque précédente une approximation de $\pi$.
Le paradoxe des anniversaires stipule, informellement, que la probabilité qu'un groupe de $N = 23$ personnes contienne deux personnes ayant le même jour d'anniversaire dépasse $1/2$.
Si le groupe contient 4 fois plus de personnes ($N = 92$), alors cette probabilité est supérieure à $0.999$.
Pour simplifier, on ne considère pas les années bissextiles.
Question 1 : Écrire une fonction experience_anniversaire(N)
qui tire une liste de $N$ valeurs uniformémement parmi les entiers $\{0, 1, \dots, 364 \}$ (cela représente les jours de l'année), et qui teste si au moins deux des éléments de la liste sont égaux. La valeur du test sera retournée par la fonction.
Question 2 : En réalisant suffisamment de fois l'expérience ci-dessus (par exemple, $10000$ ou $100000$ fois), vérifier les résultats donnés en préambule de l'exercice.
Dans une élection, $N$ électeurs votent pour élire un candidat parmi deux. On suppose que le candidat $A$ reçoit une proportion des voix $a \in ]1/2, 1]$, et donc que le candidat $B$ reçoit la proportion des voix restante $b = 1-a$. Le candidat $A$ est donc censé être le vainqueur des élections.
Juste avant l'élection, un sondage est effectué avec $M$ électeurs.
Question 1 : Écrire une fonction liste_votes(N, a)
qui retourne la liste des votes. On supposera que $aN$ est un entier.
Question 2 : En utilisant la fonction Subsets(N, M).random_element()
, écrire une fonction sondage(L, M)
qui choisit aléatoirement $M$ élécteurs parmi $N$, et qui retourne la proportion de votes pour le candidat $A$ parmi les votes de la liste $L$.
Attention, la fonction Subsets(N, M).random_element()
renvoie un ensemble d'indices entre $1$ et $N$.
On dit que le sondage est correct s'il donne le bon vainqueur des élections.
Question 3 : Écrire une fonction experience_sondage(L, M, T)
qui réalise $T$ sondages de taille $M$, et qui retourne le nombre moyen de fois que $A$ sort vainqueur des élections selon ces sondages.
Question 4 : On fixe une liste de votes $L$ fixée, de taille $N = 100000$ avec une valeur de $a = 0.52$. On fixe également $T = 200$. Afficher la fonction experience_sondage(L, M, T)
en fonction de $M$. On prendra des valeurs de $M$ entre $100$ et $4000$, grandissant de $100$ en $100$.
Commenter le résultat.
Remarque : le temps de calcul peut être un peu long, quelques dizaines de secondes par exemple.
Question 5 : On fixe une liste de votes $L$ fixée, de taille $N = 100000$. On fixe une taille d'échantillon $M = 100$ et on garde $T = 200$. Afficher la fonction experience_sondage(L, M, T)
en fonction de $a$. On prendra des valeurs de $a$ entre $0.501$ et $0.55$, grandissant de $0.01$ en $0.01$.
Commenter le résultat.
Remarque : le temps de calcul peut être un peu long, quelques dizaines de secondes par exemple.
Le but de cet exercice est de produire la fractale appelée "fougère de Barnsley".
Pour construire cette fractale, on considère $4$ matrices $M_1$, $M_2$, $M_3$, $M_4$ et $4$ vecteurs $b_1$, $b_2$, $b_3$ et $b_4$ : $$ M_1 = \begin{pmatrix} 0 & 0 \\ 0 & 0.16 \end{pmatrix},\quad M_2 = \begin{pmatrix} 0.8 & 0.04 \\-0.04 & 0.85 \end{pmatrix},\quad M_3 = \begin{pmatrix} 0.2 & -0.26 \\ 0.23 & 0.22 \end{pmatrix},\quad M_4 = \begin{pmatrix} -0.15 & 0.28 \\ 0.26 & 0.24 \end{pmatrix} $$
$$ b_1 = \begin{pmatrix} 0 \\ 0\end{pmatrix},\quad b_2 = \begin{pmatrix} 0 \\ 1.6 \end{pmatrix},\quad b_3 = \begin{pmatrix} 0 \\ 1.6 \end{pmatrix},\quad b_4 = \begin{pmatrix} 0 \\ 0.44 \end{pmatrix} $$Cette fractale est produite de la manière suivante :
Pour un entier $N$ fixé, la fractale de Barnsley de taille $N$ correspond à l'ensemble des points $P_0, \dots, P_{N-1}$ ainsi construit.
Voici la fractale voulue (avec $250000$ points).
Question : Construire une fonction ̀fougere(N)
qui construit la liste des points de la fractale de Barnsley de taille $N$.
Puis, afficher cette fractale pour $N = 100$, $N = 1000$, $N = 10000$ et si possible, $N= 100000$. Pour l'affichage, on utilisera un nuage de points verts de taille size=2
ou size=1
, et on enlèvera les axes de la figure avec l'option axes=False
.