MONTE-CARLO

In [0]:
# Programme

Partie A

Questions 1, 2, 3 sur le document papier.

  1. Expliquer ce que fait la fonction montecarlo() dans le programme ci-dessous.
In [0]:
from random import*

def f(x):
    return x/2
    
def montecarlo():          
    x=uniform(0,6)     # abscisse aléatoire dans l'intervalle [0;6]
    y=uniform(0,5)     # ordonnée aléatoire dans l'intervalle [0;5]
    if y<f(x):
        return True    
    else:
        return False
  1. On souhaite appeler 1000 fois la fonction montecarlo() et compter le nombre de points inclus dans la surface étudiée.

Compléter le programme ci-dessous:

In [0]:
from random import*

def f(x):
    return x/2
    
def montecarlo():          
    x=uniform(0,6)     # abscisse aléatoire dans l'intervalle [0;6]
    y=uniform(0,5)     # ordonnée aléatoire dans l'intervalle [0;5]
    if y<f(x):
        return True    
    else:
        return False

compteur=0

for i in range(1000):
    if montecarlo()== ..... :
        compteur= ..............
print(compteur/1000)
  1. A quoi correspond l'affichage obtenu en sortie de programme?

Répondre ici : ...

  1. D'après l'introduction, une estimation de l'aire de $S_1$ est donnée par:

$Aire~du~rectangle \times f_{\text{observée}}$.

Modifier le programme pour qu'il affiche une estimation de l'aire de $S_1$.

  1. Calculer $|\text{valeur affichée}-9|$ et interpréter le résultat.

Répondre ici : ...

Partie B Application de la méthode dans un cadre général

On souhaite à présent appliquer la méthode de Monte-Carlo pour estimer l'aire d'une surface que nous ne savons pas calculer.

On considère la fonction $g$ définie sur $[1;5]$ par $g(x)=-x^2+6x-5$.

On note $S_2$ la surface délimitée par $C_g$ et l'axe des abscisses.

  1. Hachurer la surface $S_2$ sur votre document.

  2. Modifier le programme pour obtenir une estimation de l'aire de $S_2$.

  3. Le programme ci-dessous permet d'afficher un point rouge et un bleu dans un repère.

En vous inspirant de cet exemple, compléter le programme de la question 2 pour obtenir un graphique où les points inclus dans la surface $S_2$ sont affichés en rouge et les autres en bleu.

In [0]:
from matplotlib.pyplot import*          # module graphique

plot(1,2,'ro')       # point de coordonnées (1;2) motif 'o' de couleur rouge
plot(2,3,'bo')       # point de coordonnées (2;3) motif 'o' de couleur bleue
       
savefig("figure")        # sauvegarde et affichage du graphique