On considère la fonction f définie sur \left] -1 ; +\infty \right[ par f(x)=ln(x+1).
On cherche à calculer l'intégrale I = \int_{0}^{1} f(x) \ \mathrm dx.
D'après la courbe de f entre 0 et 1, quelle zone du graphique correspond à l'intégrale I cherchée ?

D'après le cours, l'intégrale d'une fonction f entre les points a et b correspond à l'aire comprise entre la courbe de f et l'axe des abscisses pour x \in \left[ a ; b \right].
Ici, on cherche à représenter l'intégrale I = \int_{0}^{1} f(x) \ \mathrm dx. I correspond donc à l'aire de la zone comprise entre la courbe de f et l'axe des abscisses entre les points d'abscisses 0 et 1.
On peut donc hachurer la zone correspondant à I sur le graphique :

À l'aide d'un algorithme générant des nombres aléatoires, on trace sur la figure précédente 100 points dont les coordonnées sont (x ; f(x)), où x est un réel trouvé aléatoirement entre 0 et 1.
On décompte que 39 de ces points se situent entre la courbe de f et l'axe des abscisses.
En établissant une relation entre le rapport \dfrac{I}{\mathcal{A}_{OABC}} et le nombre de points situés sous la courbe de f, quelle proposition correspond à une estimation de I ?
Le rapport \dfrac{I}{\mathcal{A}_{OABC}} correspond au rapport entre l'aire sous la courbe de la fonction f entre les abscisses 0 et 1, et l'aire du carré OABC.
Or, on a placé aléatoirement 100 points sur la figure, parmi lesquels 39 se situent sous la courbe de f. Le rapport entre le nombre de points situés sous la courbe et le nombre total de points représente une estimation du rapport entre l'aire sous la courbe et l'aire du carré OABC.
On a donc :
\dfrac{I}{\mathcal{A}_{OABC}}\approx\dfrac{39}{100}\\\\\Leftrightarrow I \approx \dfrac{39}{100} \times \mathcal{A}_{OABC}
Or, on peut lire les coordonnées des points O, A, B et C sur le graphique et déterminer les longueurs OA et OB :
OA=OB=1
On a donc \mathcal{A}_{OABC} = 1\times 1 = 1.
Ainsi : I \approx \dfrac{39}{100}.
On reproduit maintenant l'expérience en plaçant aléatoirement N points sur la figure précédente.
On décompte le nombre n de points tombés sous la courbe de la fonction.
Comment peut-on donner une approximation de I ?
En raisonnant de la même manière qu'à la question précédente, on peut établir le rapport suivant :
\dfrac{n}{N} \approx \dfrac{I}{\mathcal{A_{OABC}}}\\\Leftrightarrow I \approx \dfrac{n}{N} \times \mathcal{A_{OABC}}
Or, comme on l'a montré à la question précédente, \mathcal{A_{OABC}} = 1.
On a donc : I \approx \dfrac{n}{N}.
On veut écrire un algorithme capable de donner une approximation de la valeur de I pour N = \text{10 000}.
Quelle est la bonne écriture de l'algorithme ?
Tout d'abord, on doit débuter le programme en lui donnant un nom, et en introduisant les variables suivantes : N le nombre total de points à placer, qui vaut 10 000 ; n le compteur qui vaut 0 au départ et qui doit être incrémenté de 1 chaque fois qu'un point est placé sous la courbe, i un entier compris entre 1 et 10 000, x l'abscisse du point généré aléatoirement et y son ordonnée.
Ensuite, on doit mettre en place une boucle "while" qui, pour chaque valeur de i tant que i est inférieur à N, génère aléatoirement un point de coordonnées (x; y) où x et y sont des réels compris entre 0 et 1. Ensuite, l'algorithme doit vérifier que le point est compris sous la courbe, et si c'est le cas, incrémente le compteur n de 1, puis recommence l'opération.
Enfin, l'algorithme doit afficher la valeur approximative de I.
L'algorithme est donc le suivant :
PROGRAM: INTEGRALE (N, n, i, x, y)
: 1000 → N
: 0 → n
: 1 → i
: While i < N do
: random (0, 1) → x
: random (0, 1) → y
: if y \leqslant ln(x+1) then
: n+1 → n
: i+1 → i
: else
: i+1 → i
: end if
: end do
: DISP n/N