{"cells":[{"metadata":{},"cell_type":"markdown","source":"# TP 2 simulation des
variables aléatoires à densité\n"},{"metadata":
{},"cell_type":"markdown","source":"## Un exemple "},{"metadata": {},"cell_type":"markdown","source":"La fonction Python ci-dessous prend en argument un entier naturel $m$ non nul et tire $m$ réel uniformément dans $[0;1]$, puis affiche l'histogramme. Pouveez-vous expliquer son fonctionnement ?"},{"metadata": {"trusted":false,"scrolled":true},"cell_type":"code","source":"\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nplt.clf()\n\nEch= np.random.rand(1000) # tester avec des échantillons de plus en plus gros\nplt.hist(Ech,20, density=True) # Création de l'histogramme\n\n# on peut rajouter la densité\ nx=np.linspace(min(Ech),max(Ech),200)\ny=np.ones(len(x))\nplt.plot(x,y)\ nplt.show()","execution_count":1,"outputs":[{"output_type":"display_data","data": {"application/ javascript":"element.append(window._basthonDomNodeBus.pop(0));"},"metadata":{}}]}, {"metadata":{},"cell_type":"markdown","source":"## Exercice 1\n\nEn utilisant uniquement la commande rand(), expliquer comment simuler une variable aléatoire suivant une loi uniforme continue sur $[a,b]$."},{"metadata": {"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs": []},{"metadata":{},"cell_type":"markdown","source":"## Exercice 2\n\n1. Montrer que si $U$ suit la loi uniforme sur $] 0;1[$ et $X$ est une variable aléatoire à densité dont la fonction de répartition $F$ est une bijection de $] a; b[$ avec $-\\infty \\leq a<b \\leq+\\infty$ sur $] 0;1[$, alors la variable $Y=F^{-1}(U)$ suit la même loi que $X$. \n(Pas de Python ici, juste des maths).\n\n\n2. On dit qu'une variable aléatoire $X$ à densité suit une loi de Cauchy si une densité est donnée par\n$$f:\\, t\\in \\mathbb{R}\\mapsto \\cfrac{1}{\\pi(1+t^2)}.$$\nCalculer la fonction de répartition et exprimer pour tout $t\\in \\, ]0;1[,$ $F^{-1}(t)$. \ n\n3. En déduire un programme Cauchy qui simule une loi de Cauchy.\n\n4. Tester votre programme en affichant un histogramme comme à l'exercice 1.\n"},{"metadata": {"trusted":false},"cell_type":"code","source":"## Question 3\ndef Cauchy() : # pas d'argument\n U=\n X=\n return X","execution_count":12,"outputs":[{"output_type":"stream","text":" File \"<input>\", line 3\n U=\n ^\nSyntaxError: invalid syntax\ n","name":"stderr"},{"output_type":"error"}]},{"metadata": {"trusted":false},"cell_type":"code","source":"# Question 4\n\nm=2000 # taille de l'échantillon\nEch=[]\nfor i in range(m): # construction de l'echantillon\n ...\ n \nplt.hist(Ech,bins=np.linspace(-5,5,20), density=True) # Création de l'histogramme entre [-5,5] avec 20 classes \n\n# on peut rajouter la densité pour comparer\nx=np.linspace(-5,5,200)\ny=...\nplt.plot(x,y)\ nplt.show()","execution_count":13,"outputs":[]},{"metadata": {},"cell_type":"markdown","source":"5. Que fait le code suivant ?"},{"metadata": {"trusted":false},"cell_type":"code","source":"Liste=100*np.linspace(5,100,10)\ nE=[]\nfor m in Liste :\n \n U= np.random.rand(int(m))\n L=np.tan(np.pi*(U-1/2))\n e=sum(L)/m\n E.append(e)\nplt.plot(Liste,E) \ nplt.show()","execution_count":14,"outputs":[{"output_type":"display_data","data": {"application/ javascript":"element.append(window._basthonDomNodeBus.pop(0));"},"metadata":{}}]}, {"metadata":{},"cell_type":"markdown","source":"## Exercice : simulation de la loi exponentielle (un classique à connaître)\n\nNous avons vu à l'exercice précédent que si $U$ suit la loi uniforme sur $] 0;1[$ et $X$ est une variable aléatoire à densité dont la fonction de répartition $F$ est une bijection de $] a; b[$ avec $-\\infty \\leq a<b \\leq+\\infty$ sur $] 0;1[$, alors la variable $Y=F^{-1}(U)$ suit la même loi que $X$.\n\nEn déduire un programme qui simule une loi exponentielle à partir d'une loi uniforme sur $]0;1]$."},{"metadata": {"trusted":false},"cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\nimport random as rd\n\n\ndef simuExp():\n u= ...\n return ...","execution_count":null,"outputs":[]},{"metadata": {},"cell_type":"markdown","source":"## Méthode de rejet\nLire la section 5.3 des notes de cours (chapitre 6) et faire les exercices 9 et 10."},{"metadata": {},"cell_type":"markdown","source":"Réponse de l'exercice 9 : (pas de Python)\n\n\ n...........\n...........\n\n\n"},{"metadata": {"trusted":false},"cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\nimport random as rd\n\n## Exercice 10\n\n# question 1 : le tracé\n\nx=\ny=\nplt.plot( , )","execution_count":null,"outputs":[]}, {"metadata":{"trusted":false},"cell_type":"code","source":"# question 2\n\ndef simulation():\n ...","execution_count":null,"outputs":[]},{"metadata": {"trusted":false},"cell_type":"code","source":"# Tester ensuite votre programme\n\ nprint(simulation())","execution_count":null,"outputs":[]},{"metadata": {"trusted":false},"cell_type":"code","source":"# Pour vérifier l'accord entre théorie et pratique, afficher la densité et l'histogramme d'un échantillon\n\n\ n","execution_count":null,"outputs":[]},{"metadata": {},"cell_type":"markdown","source":"## Si vous avez fini, simulation de la loi Beta\n\nDans tout l'exercice, $n$ et $m$ sont des entiers naturels non nuls. On pose $$\\beta( n, m)=\\int_0^1 u^{n-1}(1-u)^{m-1} \\mathrm{~d} u.$$\nOn considère la fonction $f_{n, m}$ définie par $$f_{n,m}(x)=\\mathbf{1}_{] 0,1[}(x) \\frac{1} {\\beta(n, m)} x^{n-1}\\left(1-x^{m-1}\\right).$$\n\n1. Montrer que $f_{n, m}$ est une densité de probabilité.\n\n2. Comment simuler une loi beta de paramètres $(n;m) $ ?\n\n3. (et vraiment si vous avez encore fini, calculer l'espérance et la variance de la loi $\\beta(n,m)$.)\n\n"},{"metadata": {"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs": []}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}