Vous êtes sur la page 1sur 58

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université D’Adrar
Faculté des Sciences et de la Technologie
Département des Mathématiques et Informatique

MÉMOIRE
Pour l’obtention du diplôme de

MASTER
En Mathématiques
Spécialité :
Analyse Fonctionnelle et Applications
Présenté par

ABEKHTI Amal
Thème

Calcul d’Intégral par la Méthode de Monte-Carlo

Soutenu publiquement le 01 /07 /2019


devant le jury composé de :
M. OUAHAB Abdelghani Professeure Université d’Adrar Président
M. GASMI Laid Maître de conférence B Université d’Adrar Rapporteur
M. BOUAZIZ Saïd Maître assistant A Université d’Adrar Examinateur

2018–2019
R`e›m`eˇr`cˇi`e›m`e›n˚t˙s

J´e ˚r`e›m`eˇr`cˇi`e D˚i`eˇuffl `d`e ”mffl’`a‹vˆo˘i˚rffl `a˚i`d`é `àffl `a`c´c´o“m¯p˜lˇi˚rffl `c´e ˚tˇr`a‹vˆa˚i˜l, ¯p˚u˚i¯s ¯j´e ”vfleˇu‹x
`e›x˙p˚r˚i‹m`eˇrffl ”m`affl ¯p˚r`o˝f´o“n`d`e `gˇr`a˚tˇi˚tˇu`d`e `àffl ”m`e˙s ¯p`a˚r`e›n˚t˙s ¯p`o˘u˚rffl ˚t´a‹n˚t `dffl’`a‹m`o˘u˚r¯s `eˇt
`d`e ¯sfi`o˘u˚tˇi`e›n¯s ”m`o˘r`a˚u‹x.

J’`a`d˚r`e˙sfi¯sfi`e ˜l´e `gˇr`a‹n`dffl ˚r`e›m`eˇr`cˇi`e›m`e›n˚t `àffl ”m`o“nffl `e›n`c´a`d˚r`eˇu˚rffl M. G´a¯sfi‹m˚iffl L`a˚i`dffl `qfi˚u˚iffl
`affl ¯p˚r`o¸p`o¸sfi`é ˜l´e ˚t‚h`è›m`e `d`e `c´e ”m`é›m`o˘i˚r`e, ¯p`o˘u˚rffl ¯sfi`e˙s `c´o“n¯sfi`eˇi˜l˙s `eˇt ¯sfi`e˙s `d˚i˚r˚i`g´é˙s `d˚uffl
`d`é¨b˘u˚t `àffl ˜l´affl ˜fˇi‹nffl `d`e `c´e ˚tˇr`a‹vˆa˚i˜l.

T`o˘u¯s ”m`e˙s ˚r`e›m`eˇr`cˇi`e›m`e›n˚t˙s `eˇt `gˇr`a˚tˇi˚tˇu`d`e ”vˆo“n˚t `àffl M. O˚u`a˛h`a˜b A˜bˆd`e¨l´g‚h`a‹n˚iffl,


`qfi˚u˚iffl ”mffl’`affl ˜f´a˚i˚t ˜l„˛h`o“n‹n`eˇu˚rffl `d`e ¯p˚r`é˙sfi˚i`d`eˇrffl `c´e ¯jˇu˚r‹y. M`e˙s ”v˘i‹vfle˙s ˚r`e›m`eˇr`cˇi`e›m`e›n˚t˙s ”vˆo“n˚t
`a˚u¯sfi¯sfi˚iffl `àffl M. B`o˘u`a˚zˇi˚z S̀a˚ï`dffl `dffl’`a‹vˆo˘i˚rffl `a`c´c´e˙p˚t´é `dffl’`êˇtˇr`e ”m`e›m˜b˘r`e˙s `d˚uffl ¯jˇu˚r‹y `eˇt
`dffl’`e›x´a‹m˚i‹n`eˇrffl ”m`o“nffl ˚tˇr`a‹vˆa˚i˜l.

J´e ˚r`e›m`eˇr`cˇi`e `a˚u¯sfi¯sfi˚iffl ˜l´e˙s ¯p˚r`o˝f´e˙sfi¯sfi`eˇu˚r¯s `d`e ”m`a˚t‚h`é›m`a˚tˇi`qfi˚u`e˙s `eˇt `àffl ˚t´o˘u˚t `c´e `qfi˚u˚iffl ”mffl’`a˚i˚t
`e›n¯sfi`eˇi`g›n`é `a˚uffl ˜l´o“n`g `d`e ”m`affl ”v˘i`e ¯sfi`c´o˝l´a˚i˚r`e.

J’`a`d˚r`e˙sfi¯sfi`e ”m`o“nffl ¯sfi˚i‹n`c´èˇr`e ˚r`e›m`eˇr`cˇi`e›m`e›n˚t `a˚uffl ¯sfi`e´cˇr`éˇt´a˚i˚r`e `d`e ”n`o˘tˇr`e `d`é˙p`a˚r˚t´e›m`e›n˚t.


J’`a`d˚r`e˙sfi¯sfi`e `a˚u¯sfi¯sfi˚iffl ”m`o“nffl ˚r`e›m`eˇr`cˇi`e›m`e›n˚t˙s ˜l´e˙s ¯p˜lˇu¯s ”v˘i˜f˙s `a˚u‹x ¯p`eˇr¯sfi`o“n‹n`e˙s `qfi˚u˚iffl ”mffl’`a˚i`e›n˚t
`a¯p¯p`o˘r˚t´é ˜l´eˇu˚rffl `a˚i`d`e `eˇt `qfi˚u˚iffl `o“n˚t `c´o“n˚tˇr˚i˜b˘u`é `d`e ¯p˚r`è˙s `o˘uffl `d`e ˜l´o˘i‹nffl `àffl ˜l„`é¨l´a˜bˆo˘r`a˚tˇi`o“nffl
`d`e `c´e ”m`é›m`o˘i˚r`e.
D`é´d˚i`c´a`c´e

C`e ”m`oˆd`e˙sfi˚t´e ˚tˇr`a‹vˆa˚i˜l `e˙sfi˚t `d`é´d˚i`é :


À ”m`e˙s `c‚h`eˇr¯s ¯p`a˚r`e›n˚t˙s ”m`affl ”m`èˇr`e `eˇt ”m`o“nffl ¯p`èˇr`e, ¯p`o˘u˚rffl ˜l´eˇu˚r¯s ¯p`a˚tˇi`e›n`c´e˙s,
˜l´eˇu˚r¯s `a‹m`o˘u˚r¯s, ˜l´eˇu˚r¯s ¯sfi`o˘u˚tˇi`e›n¯s `eˇt ˜l´eˇu˚r¯s `e›n`c´o˘u˚r`a`g´e›m`e›n˚t˙s.
À ”m`e˙s ˜fˇr`èˇr`e˙s `eˇt ¯sfi`œ˚u˚r¯s, ”m`e˙s `o“n`c¨l´e˙s `eˇt ”m`e˙s ˚t´a‹n˚t´e˙s.
À ˚t´o˘u¯s ”m`e›m˜b˘r`e˙s `d`e ”m`affl `gˇr`a‹n`d`e ˜f´a‹m˚i˜l¨l´e " A˜bfle‚k˛h˚tˇiffl ", `c‚h`a`cˇu‹nffl `e›nffl ¯sfi`o“nffl
”n`o“mffl ¯p`eˇtˇi˚t `eˇt `gˇr`a‹n`dffl. À ˜l´e˙s ˜f´a‹m˚i˜l¨l´e˙s "A”m`a˚r`a".
À ˚t´o˘u˚t´e˙s ”m`e˙s `c‚h`èˇr`e˙s `a‹m˚i`e˙s ”m`e˙s `c´o“m¯p`a`g›n`o“n¯s `d`e `c´e ˜l´o“n`g `c‚h`e›m˚i‹nffl `eˇt
˚t´o˘u¯s ˜l´e˙s `éˇtˇu`d˚i`a‹n˚t˙s `eˇt `éˇtˇu`d˚i`a‹n˚t´e˙s `d`e ”m`affl ¯p˚r`o“m`o˘tˇi`o“nffl.

A˜bfle‚k˛h˚tˇiffl `a‹m`a˜l.
Table des matières

Table des matières i

Table des figures iii

Liste des tableaux iv

Liste des symboles v

Introduction 1

1 Méthodes de résolution d’un intégral 3


1.1 Position du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Cadre d’étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Méthodes d’intégration numérique par morceaux . . . . . . . . . . . . . . . . 8
1.3.1 Méthodes d’ordres plus bas . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.2 Méthodes d’ordres plus élevés . . . . . . . . . . . . . . . . . . . . . . 17

2 Méthode de Monte-Carlo 20
2.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1 Intégration unidimensionnelle . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2 Intégration multidimensionnelles . . . . . . . . . . . . . . . . . . . . . 22
2.1.3 Convergence de la méthode . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.4 Vitesse de convergence . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.5 Estimation de la variance . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 Méthodes de réduction de variance . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1 Variables de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.2 Variables antithétiques . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.3 Stratification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.4 Échantillonnage suivant l’importance . . . . . . . . . . . . . . . . . . 27

i
3 Application 28
3.1 La méthode de Monte-Carlo par R . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.1 Dimension un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.2 Dimension deux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Calcule volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Calcul de moments d’inertie par intégration de Monte-Carlo . . . . . . . . . 32
3.3.1 Méthode de Monte-Carlo avec échantillonnage uniforme . . . . . . . . 32
3.3.2 Méthode de Monte-Carlo avec échantillonnage préférentiel . . . . . . 33
3.4 Comparaison des cinq méthodes . . . . . . . . . . . . . . . . . . . . . . . . 34

Conclusion 37

Bibliographie 39

Annexes 40

ii
Table des figures

1.1 Formules des rectangles (n=0) . . . . . . . . . . . . . . . . . . . . . . . . . . 9


1.2 Méthode des rectangles à droite . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Méthode des rectangles à gauche . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Méthode du point milieu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Méthode du trapèze (n=1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Méthode de Simpson simple (n=2) . . . . . . . . . . . . . . . . . . . . . . . 17

3.1 Monte-Carlo par R dimension 2 . . . . . . . . . . . . . . . . . . . . . . . . 29


3.2 Monte-Carlo par R dimension 2 . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Méthode de Monte-Carlo avec échantillonnage uniforme . . . . . . . . . . . . 33
3.4 Méthode de Monte-Carlo avec échantillonnage préférentiel . . . . . . . . . . 34

iii
Liste des tableaux

3.1 Monte-Carlo par R dimension 1 . . . . . . . . . . . . . . . . . . . . . . . . 29


3.2 Monte-Carlo par R dimension 2 . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Calcul volume par la méthode de Monte-Carlo, d = 3 . . . . . . . . . . . . . 31
3.4 Calcul volume par la méthode de Monte-Carlo, d = 5 . . . . . . . . . . . . . 31
3.5 Calcul volume par la méthode de Monte-Carlo, d = 5, N = 9 × 105 . . . . . 31
3.6 Calcul volume par la méthode de Monte-Carlo, d = 5, N = 105 . . . . . . . . 31
3.7 Calcul volume par la méthode de Monte-Carlo, d = 7, N = 107 . . . . . . . . 32
3.8 Méthode de Monte-Carlo avec échantillonnage uniforme . . . . . . . . . . . 33
3.9 Méthode de Monte-Carlo avec échantillonnage préférentiel . . . . . . . . . . 34
3.10 Comparaison en dimension 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.11 Comparaison en dimension 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.12 Comparaison en dimension 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

iv
Liste des symboles

R :L’ensemble des nombres réel.


N :L’ensemble des nombres entier.
In (f ) :La valeur approchée de l’intégrale de la fonction f .
Ir :La valeur approchée de l’intégrale par la méthode du Rectangles.
IM :La valeur approchée de l’intégrale par la méthode du Point milieu.
IT :La valeur approchée de l’intégrale par la méthode du Trapèzes.
IS :La valeur approchée de l’intégrale par la méthode du Simpson.
Rn (f ) : L’erreur de quadrature numérique de la fonction f .
Rr : L’erreur de quadrature numérique de la méthode des Rectangles.
RM : L’erreur de quadrature numérique de la méthode de Point milieu.
RT : L’erreur de quadrature numérique de la méthode des Trapèzes.
RS : L’erreur de quadrature numérique de la méthode de Simpson.
C n+1 : L’ensemble des fonction (n + 1) fois continument différentiable .
σ : L’écart type.
V ar(X) : La variance de la variable aléatoire X.
E(X) : L’espérance de la variable aléatoire X.
U : Loi uniforme.
N : Loi gaussienne.
Cov(X, Y ) : La covariance de X et Y .
i.i.d : Indépendantes identiquement distribuées.

v
Introduction Générale

La méthode de Monte-Carlo (MC) a apparu dans la seconde guerre mondiale, particu-


lièrement dans le cadre du projet américain " Manhattan " portant sur le développement
de l’arme nucléaire. Cette époque correspond également à la construction des premiers "
ordinateurs ". Il est difficile de savoir exactement qui parmi les chercheurs Von Neumann,
Ulam, Fermi et Metropolis, leur a donné le nom de Monte-Carlo qui fait référence aux jeux
de hasard pratiqués dans la principauté de Monaco, a été inventé en 1947 par Nicholas
Metropolis, et publié pour la première fois en 1949 dans un article coécrit avec Stanislaw
Ulam [2]. Le terme de Monte-Carlo désigne une famille de méthodes algorithmique. D’un
point de vue mathématique un méthode de Monte-Carlo peut servir au calcule d’intégrale(
que l’on souhaite explique dans ce mémoire) et à la résolution d’équation aux dérivées par-
tielles, de système linéaire et de problème d’optimisation. Pratiquement ces technique sont
couramment utilisées dans divers domaines (physique, ingénierie,...).
Dans ce mémoire, nous avons présenté la méthode de Monte-Carlo du point de vue de
calcule d’intégrale. En pratique pour appliquer la méthode, il faut modéliser le problème
considéré sous forme de l’intégrale d’une fonction en utilisant les outils du calcul des proba-
bilités puis de la simuler numériquement en l’approchant par la moyenne de la fonction en
des points pseudo-aléatoires. Ces points sont engendrés par ordinateur et ont des propriétés
semblables à celles des points aléatoires.
À partir de l’estimateur de Monte-Carlo du paramètre étudié, il est possible de construire
un intervalle de confiance qui mesure la précision de la méthode par conséquent, pour
obtenir une bonne précision, il est nécessaire d’effectuer un grand nombre de simulations
[18]. La taille de cet intervalle est de l’ordre de n−1/2 , pour n points de simulation, et
elle est indépendante de la dimension de l’espace, ce qui les rend avantageuses
 pour des
1
problèmes de dimension élevée, de plus sa vitesse de convergence est en O √ , n étant
n
le nombre de points de la suite utilisée. Cependant, cette méthode a plusieurs inconvénients ;
en particulier, elle ne permet pas d’exploiter les éventuelles propriétés de régularité de la
fonction à intégrer et leur taux de convergence est faible, puisque, pour réduire l’erreur d’un
facteur de 100, il faut multiplier n par 104 .
L’objectif est de défini une méthode qui converge plus rapidement que les méthodes
d’analyse numérique classiques, la méthode que nous avons traité ici est la méthode de
Monte-Carlo, qui a comme avantage attrayant d’exiger moins de temps de calcul, et une
convergence plus rapide.
Ce mémoire est constitué d’une introduction générale, des trois chapitres, d’une conclu-
sion et perspectives, d’une bibliographie et d’une annexe.
Le premier chapitre est un rappel des formules de quelques méthodes numérique

1
(Méthode des Rectangles, Méthode des Trapèzes,Méthode de Point milieu et Méthode de
Simpson) ainsi que les proposition fondamentales de l’erreur numérique avec des corollaire
et des remarques.
Le deuxième chapitre explique la méthode de Monte-Carlo pour calculer d’intégral
par l’espérance dans le cas simple (unidimensionnelle) et compliquée (multidimensionnelles),
de plus pour estimer l’erreur numérique de cette méthode on étudie la convergence et la
vitesse de convergence avec les deux théorèmes fondamentales ; Théorème de loi forte des
grands nombres et Théorème de limite centrale, ainsi on estimer de la variance et on définie
la notion " intervalle de confiance ". À la fin de ce chapitre on donne quelques remarques
fondamentales.
Dans le troisième chapitre, nous allons inclure quelques applications numériques pour
calculer l’intégration dans la méthode de Monte-Carlo de plus, on fait des comparaison entre
les méthodes de chapitre 1 et la méthode de Monte-Carlo.
On utilisant le logiciel R.3.5.1 pour l’installer (voir https://cran.r-project.org/
bin/windows/base/old/3.5.1/) et le logiciel Anaconda 3.6 pour l’installer (voir https:
//www.anaconda.com/distribution/#windows).
Finalement, dans la conclusion, nous résumons les résultats obtenus et nous donnons
des pistes de recherche pour des études futures.

2
Chapitre 1
Méthodes de résolution d’un intégral

En analyse numérique, il existe toute une famille d’algorithmes permettant d’approcher


R
la valeur numérique d’une intégrale. Toutes consistent à approcher l’intégrale I = f (x)dx
par une formule dite de quadrature, du type
p
X
I(f ) = ωi f (xi )
i=0

Dans le chapitre suivante, on présente quelques méthodes d’intégration numérique par


morceaux, on va étudier des propositions sur la valeur approchée et l’erreur d’intégration
en utilise les polynôme d’interpolation.

1.1 Position du problème


Nous allons maintenant nous intéressons à l’obtention d’une valeur numérique approchée
de l’intégrale définie : Z b
I(g) = g(x)dx
a

où [a, b], est un intervalle de R et g une fonction réelle intégrable sur l’intervalle [a, b].
Supposons que ∀x ∈ [a, b]
g(x) = f (x)ω(x)
avec Z b
ω(x) > 0, ∀x ∈]a, b[, et ω(x)dx < +∞
a
où f une fonction réelle, a < b, ω est une fonction donnée, dite "fonction poids", ne
s’annulant pas sur l’intervalle ]a, b[ et intégrable sur [a, b] telle que l’intégrale I(g) existe
Donc Z b
I(g) = f (x)ω(x)dx
a

L’idée de base des méthodes numériques pour résoudre ce problème (qu’on appelle mé-
thodes de quadrature) est de remplacer f que l’on ne sait pas intégrer par son polynôme
d’interpolation. On a alors des méthodes de quadrature de type interpolation. Le problème

3
de l’intégration numérique (ou dite de quadrature) peut se présenter de deux façons diffé-
rent :
- Une fonction f (x) est connue par quelques-uns de ses points de collocation {xi , f (xi )}ni=0
(qui sont régulièrement espacés au non). Comment fait-on pour estimer la valeur de l’inté-
grale Z xn
f (x)dx
x0

alors que l’expression analytique de f (x) n’est pas connue ? ou encore, on cherche la valeur
Rb
de l’intégrale définie I(f ) = a f (x)dx lorsque l’expression analytique de l’intégrand f (x)
est connue, mais non sa primitive.
- On connaît des formules qui permettent de calculer l’intégrale de certaines fonctions,
mais, il y a relativement peu de fonctions dont on sait calculer l’intégrale, il suffit même
de changer légèrement l’expression d’une fonction pour passer d’une fonction que l’on sait
intégrer à une fonction qu’on ne sait pas intégrer.
Ce sont quelques exemples concrets.

Exemple 1.1

1. Comment calculer Z b
2
I1 = e−x dx
a

ou la fonction de répartition de la loi normale N (0, 1)


Z x
1 t2
I2 = √ e− 2 dt
2π −∞
qui n’ont pas de primitive explicite ?
2. On sait que Z b
sin xdx = cos a − cos b
a
mais on ne sait pas calculer
Z b Z b
sin x
dx ou sin(x2 )dx
a x a

sin x
or la fonction x 7−→ est intégrable sur tout intervalle [a, b] puisqu’elle est continue sur
x
R. Il en est de même pour la fonction x − 7 → sin(x2 ).

Dans ce cas nous intéressons à utiliser les méthodes de type interpolation. Pour ces
méthodes, il y a trois étapes :
- Établi des "formules de quadrature simple" par interpolation.
- Décomposer l’intervalle en intervalles élémentaires.
- En déduire des "formules composites" ; nous interpolerons la fonction f (x) ou ses points
de collocation avec sa polynôme Pn d’interpolation, puis nous intégrerons explicitement ce
polynôme.
Les avantages des méthodes de type interpolation :

i) Les polynômes sont faciles à intégrer.

4
ii) Cette méthode est utilisable même si on ne connait que des valeurs de f puis qu’on
peut alors construire le polynôme Pn d’interpolation de f sur ces valeurs.
Nous supposons dans ce qui suit que la distance entre points de collocation adjacents
est constante et vaut h (le pas ).
On a quelque définition importante :

Définition 1.1

i) On appelle base de Lagrange associée au support {x0 , ..., xn } la famille des fonction
(n)
polynôme (Li )0≤iLeqn (que nous noterons simplement Li s’il n’ya pas de confusion)
définie par
n
Y (x − xi )
Li (x) = , ∀i ∈ {0, .., n}
(x i − xj )
j=0,j6=i

Les polynôme Li (x) sont appelés polynome de Lagrange.


ii) Soit f un fonction définie sur un intervalle V = [a, b] de R et x0 , ..., xn des point
distincts de V . On appellera erreur d’interpolation d’ordre n, au point x ∈ [a, b] dans
l’interpolation polynômiale de f par le polynôme Pn (x) le réel En (x) définie par :
En (x) = f (x) − Pn (x).
iii) On appelle formule de quadrature à (n + 1) points, la somme finie
n
X (n)
In (f ) = f (xi )Ai , (1.1)
i=0

où les Ani telle que


Z b
(n)
Ai = Li (x)w(x)dx (1.2)
a
ne dépendent pas de f et xi ∈ [a, b].

iv) L’erreur de quadrature numérique est donnée par


Z b Z b
Rn (f ) := I(f ) − Pn (x)w(x)dx = En (x)w(x)dx.
a a

v) Une méthode d’intégration approchée est dit d’ordre n si I(f ) = In (f ) pour tout
f ∈ Rn [x] et si I(f ) 6= In (f ) pour au moins un f ∈ Rn+1 [x].

vi) Une formule de quadrature est dit exacte sur un ensemble V si : ∀f ∈ V, Rn (f ) = 0.

vii) Le n-ième différence divisée de la fonction f sont définies à partir des (n − 1)-ième
différence divisée comme suit
f [x1 , ..., xn ] − f [x0 , x1 , ..., xn−1 ]
f [x0 , x1 , ..., xn ] =
xn − x0
Lemme 1.1

On a
d f (n+2) (ξ)
f [x, x0 , ..., xn ] = , ξ ∈ [a, b]
dx (n + 2)!

5
On rappelle le théorème suivant dont nous ferons un usage constant et qui est un outil
essentiel dans les méthodes d’approximation des intégrales et pour le démontrer il faut
présenter ces deux théorème.

Théorème 1.1 (Théorème des valeurs extrêmes[12])


Soit f une fonction définie sur un intervalle réel [a, b] à valeurs réelles. Si f est continue
alors, la fonction f est bornée et atteint ses bornes, autrement dit il existe deux réels c et d
de l’intervalle [a, b] tels que pour tout x de [a, b], les inégalités suivantes soient vérifiées :
f (c) ≤ f (x) ≤ f (d).
Théorème 1.2 (Théorème des valeurs intermédiaires[12])
Pour toute fonction f définie et continue sur un intervalle J et à valeurs réelles, l’image
f (J) est un intervalle.
Autrement dit ; pour toute application continue f : [a, b] → R et tout réel u compris entre
f (a) et f (b), il existe au moins un réel c compris entre a et b tel que f (c) = u.

Théorème 1.3 (Second théorème de la moyenne[6])


Soient f et g deux fonctions à valeurs réelles définies et continues sur un intervalle [a, b]. On
suppose que g ne change pas de signe dans [a, b]. Alors, il existe un point ξ dans l’intervalle
[a, b] où on a l’égalité
Z b Z b
f (x)g(x)dx = f (ξ) g(x)dx.
a a

Démonstration.
On peut supposer que la fonction g est à valeurs positives ou nulles (quitte à la remplacer
par −g si nécessaire).
Cela exclut en particulier que g soit constamment nulle ou que f soit constante.
D’après le théorème (1.1) et le théorème (1.2), l’image par f du segment [a, b] est un segment
[m, M ] avec m < M , et l’image de l’intervalle ouvert ]a, b[ est un intervalle inclus dans ce
segment et qui n’en diffère que par au plus deux points, donc
]m, M [⊂ f (]a, b[).
Puisque g est continue, positive et non constamment nulle, son intégrale sur [a, b] est stric-
tement positive. Pour prouver que
Rb
a
f (x)g(x) dx
Rb ∈ f (]a, b[),
a
g(x) dx
il suffit donc de vérifier que
Z b Z b Z b
m g(x) dx < f (x)g(x) dx < M g(x) dx.
a a a

Montrons par exemple la première inégalité stricte (le raisonnement pour la seconde est
analogue). La fonction (f − m)g étant continue, positive et non constamment nulle, l’ap-
plication Z y
y 7→ (f (x) − m)g(x) dx
a
est croissante et non constante, si bien que sa valeur en b est strictement supérieure à celle
en a i.e.
Z y Z b
(f (x) − m)g(x) dx < (f (x) − m)g(x) dx
a a

6
Ainsi, Z b Z b
m g(x) dx < f (x)g(x) dx,
a a
ce qui termine la démonstration.

1.2 Cadre d’étude


Soit a, b ∈ R, f : [a, b] −→ R une fonction continue [17], nous intéressons au calcul de
l’intégrale Z b
f (x)dx
a

Soit a ≤ x0 < x1 < ... < xn ≤ b, (n + 1) points distincts pris dans l’intervalle [a, b] et soit
Pn l’interpolant de Lagrange de f aux points (xi )ni=0 .
On a donc n
X
Pn (x) = f (xi )Li (x), x ∈ [a, b]
i=0


(x − x0 )...(x − xi−1 )(x − xi+1 )...(x − xn )
Li (x) :=
(xi − x0 )...(xi − xi−1 )(xi − xi+1 )...(xi − xn )
Notons Z b
wi := Li (x)dx.
a
Le calcul des wi est particulièrement
R b aisé puisqu’il s’agit d’intégrales de polynômes. On
peut ainsi "approcher" l’intégrale a f (x)dx par
Z b n
X
Pn (x)dx = wi f (xi )
a i=0

est une formule d’intégration numérique pour f sur l’intervalle [a, b].

Remarque 1.1
Rb
Si f est un polynôme de degré n, alors I(f ) = a f (x)dx. Nous nous intéresserons donc
aux formules d’intégration numérique qui sont exactes pour des polynômes.

Soit a = x0 < x1 < ... < xn−1 < xn = b, et soit Pn le polynôme d’interpolation de f en
ces points. D’après le théorème sur l’obtention du l’erreur d’interpolation de Lagrange[5],
on a
f (x) = Pn (x) + En (x),
où En (x) est l’erreur d’interpolation en x. Si on intégrant sur [a, b], on obtient :
Z b Z b Z b
f (x)w(x)dx = Pn (x)w(x)dx + En (x)w(x)dx.
a a a

Par conséquent,
I(f ) = In (f ) + Rn (f ) (1.3)

7
où In (f ) définie par (1.1 ), et
Z b
Rn (f ) = En (x)w(x)dx. (1.4)
a

Utilisons maintenant la formule d’interpolation de Lagrange, il vient :


b n
Z bX Z bYn
f (n+1) (ξ(x))
Z
f (x)w(x)dx = f (xi )w(x)Li dx + (x − xi )w(x) dx
a a i=0 a i=0 (n + 1)!
n Z bYn
X
n 1
= Ai f (xi ) + (x − xi )w(x)f (n+1) (ξ(x))dx.
i=0
(n + 1)! a i=0

La formule de quadrature s’écrit :


Z b n
X
f (x)w(x)dx ' Ani f (xi ) + Rn (f )
a i=0

où l’erreur est donnée par


n
Z bY
1
Rn (f ) = (x − xi )w(x)f (n+1) (ξ(x))dx.
(n + 1)! a i=0

1.3 Méthodes d’intégration numérique par morceaux


Pour augmenter la précision, nous allons construire une subdivision de l’intervalle [a, b]
a = x0 < x1 < ... < xk−1 < xk = b, en posant h = max0≤i≤k−1 (xi+1 − xi ). La précision de
la méthode d’intégration numérique ainsi construite peut être déterminée en fonction de h.
Dans tout ce qui suite nous supposons que

∀x ∈ [a, b], w(x) = 1

Fixons à présenter les notations. D’après (1.3)


Z b Z b Z b n
Y
I(f ) = f (x)dx = Pn (x)dx + f [x0 , ..., xn , x] (x − xi )dx
a a a i=0

Avec la valeur approchée de I(f ) est


Z b
In (f ) = Pn (x)dx
a

et l’erreur d’interpolation
Z b n
Y
Rn (f ) = f [x0 , ..., xn , x] (x − xi )dx
a i=0

Nous alors étudions trois cas particuliers de la formule (1.3) correspondant à n = 0, 1, 2.

8
1.3.1 Méthodes d’ordres plus bas
L’interpolation linéaire quadrature du rectangle et du point milieu

Interpolation par une fonction Pn , de degré n = 0


On a le résultat suivant [6] :

Proposition 1

Dans le cas degré n = 0, le support d’interpolation est réduit à {x0 }. Si f est de classe C 1
sur [a, b], la valeur approchée est

I0 (f ) = (b − a)f (x0 )

et l’erreur d’intégration est


Z b
R0 (f ) = f [x0 , x](x − x0 )dx
a

Démonstration.
Cette méthode utilise le polynôme de degré le plus bas, à savoir le polynôme constant :

P0 (x) := f [x0 ] = f (x0 )


Rb
Posons f0 = f (x0 ),alors l’intégrale approchée I0 (f ) = a
P0 (x)dx se calcule alors triviale-
ment et donne :
I0 (f ) = (b − a)f0
Il s’agit de l’aire du rectangle.

Fig. 1.1 – Formules des rectangles (n=0)

Comme l’application f est continue, le caractère garantit la continuité de l’application


x 7−→ f [x0 , x] et donc l’existence de
Z b
R0 (f ) = f [x0 , x](x − x0 )dx
a

En choisissant comme extrémité de l’intervalle [a, b], on obtient le résultat suivant :

9
Corollaire 1 (Méthode du Rectangles)

Si f est de classe C 1 ([a, b]) alors, pour x0 = a la valeur approchée vaut


Ir = (b − a)f (a).
Cette formule est d’ordre 0. L’erreur d’intégration vaut
(b − a)2 0
Rr = f (ξ), ξ ∈]a, b[,
2
et, pour x0 = b,
Ir = (b − a)f (b)
et l’erreur d’intégration vaut
(b − a)2 0
Rr = f (ξ), ξ ∈]a, b[,
2
Démonstration.
- Calcul de Ir . Traitons le cas x0 = a (le cas x0 = b étant similaire). L’expression de la
valeur de Ir provient de la proposition (1) le cas x0 = a on obtient
Z b Z b
Ir = I0 (f ) = P0 (x)dx = f [a]dx = (b − a)f (a).
a a

- Pour calculer l’erreur, on peut utiliser le théorème des accroissements finis [11] :
0
∀x ∈ [a, b], ∃ ξ ∈ [a, b] tel que f (x) = f (a) + (x − a)f (ξ)
En remplaçant dans l’expression de l’intégrale et de l’erreur, on trouve :
Z b
Rr = f (x)dx − I0 (f )
a
Z b
= (f (x) − P0 (x))dx
a
Z b
= (f (x) − f (a))dx
a
Z b
0
= (x − a)f (ξ)dx
a
Z b−a
0
=f (ξ) xdx
0
(b − a)2 0
= f (ξ)
2

qui est le résultat annoncé.

L’erreur Rr n’est pas connue car la valeur de ξ ∈]a, b[ reste indéterminée. Cependant,
on peut la majorer par la plus grande valeur de la dérivée sur le domaine considéré, alors
pour h = b − a :

h2 0
|Rr | ≤ sup(|f |)
2 [a,b]

10
Fig. 1.2 – Méthode des rectangles à droite

Fig. 1.3 – Méthode des rectangles à gauche

Remarque 1.2

- Cette méthode d’intégration est exacte pour toutes les fonctions f constantes (dans ce
0
cas Rr = 0 puisque qu’elles vérifient f = 0 ). Dans le cas plus général cette méthode est
0
d’autant plus précise que les variations de f sont faibles ( f petit).
- Plus le domaine [a, b] est petit, plus l’erreur est faible. Cette erreur décroit en h2 .

a+b b−a
En choisissant pour x0 = = m, le milieu de l’intervalle [a, b] avec un pas h = ,
2 2
on obtient le résultat suivant :

Corollaire 2 (Méthode du Point milieu)

Si f est de classe C 2 ([a.b]), alors la valeur approchée vaut


 
a+b
IM = (b − a)f
2

Cette méthode est d’aborde 1 et l’erreur d’intégration vaut

(b − a)3 00
RM = f (ξ), ξ ∈]a, b[
24
Démonstration.
- Calcul de IM ; on applique encore la proposition (1) ; d’aù l’expression de IM .

11
- La méthode du point milieu est d’ordre 1 ; en effet
Z b
Ir (x) = xdx
a
b − a2
2
=
2
b+a
= (b − a) = I0 (x)
2
par contre, on n’a pas Ir (x2 ) = I0 (x2 ).
Pour calculer l’erreur, on peut utiliser le théorème des accroissements finis[11] au deuxième
ordre, ∀x ∈ [a, b], ∃ ξ ∈ [a, b] tel que :
00
a+b a+b 0 a+b a + b 2 f (ξ)
f (x) = f ( ) + (x − )f ( ) + (x − )
2 2 2 2 2
En remplaçant dans l’expression de l’intégrale et d’erreur, on trouve :
Z b
RM = f (x)dx − I0 (f )
a
Z b
= (f (x) − P0 (x))dx
a
Z b
a+b
= (f (x) − f ( ))dx
a 2
Z b 00 
a+b 0 a+b a + b 2 f (ξ)
= (x − )f ( ) + (x − ) dx
a 2 2 2 2
Z b−a 00 Z b−a
0 a + b 2 f (ξ) 2
=f ( ) xdx + x2 dx
2 b−a
− 2 2 b−a
− 2
00
f (ξ) b − a 3
= ( )
3 2

L’erreur RM n’est pas connue car la valeur de ξ ∈ [a, b] reste indéterminée. Cependant,
on peut la majorer par la plus grande valeur de la dérivée seconde sur le domaine considéré,
alors pour h = b − a :
h3 00
|RM | ≤ sup(|f |)
24 [a,b]

Remarque 1.3
a+b
-Cette intégrale numérique nécessite une unique évaluation de la fonction f ( en x0 = )
2
et correspond donc aussi à ce qu’on peut faire de plus rapide.
-Du fait des symétries, cette méthode d’intégration est exacte pour les fonctions f constante,
00
mais aussi pour les fonctions affines (dans ce cas RM = 0 puis qu’elles vérifient f = 0),
dans le cas plus général,cette méthode est d’autant plus précise que les variations de f sont
00
faibles ( f petit).
h
-Plus le domaine [a, b] est petit, plus l’erreur est faible. Cette erreur décroit en , c’est-à-dire
3
plus vite que l’erreur de la méthode précédente. Ainsi, pour des domaines [a, b] suffisamment
petits, la méthode du point milieu est toujours plus précise que la méthode précédente.

12
Fig. 1.4 – Méthode du point milieu

L’interpolation linéaire : quadrature du trapèze

Interpolation par une fonction Pn de degré n = 1


On souhaite évaluer Z xn
f (x)dx
x0

où f (x) est une fonction connue seulement en deux points, ou encore une fonction n’ayant
pas de primitive. La solution qui vient tout de suite à l’esprit consiste a remplacé f (x) par le
polynôme degré 1, passant par les points (x0 , f (x0 )) et (x1 , f (x1 )). La valeur approximative
de l’intégrale correspond à l’aire sous la courbe de l’intégrale. Cette aire forme un trapèze
qui donne son nom La méthode du Trapèzes. Évidemment, l’approximation est grossière et
on peut déjà soupçonner que le résultat sera peu précis.

Proposition 2

Dans le cas de degré n = 1 le support d’interpolation est réduit à {x0 , x1 }. Si f est de classe
C 2 sur [a, b] la valeur approchée est
Z b
I1 (f ) = [f [x0 ] + f [x0 , x1 ](x − x0 )]dx
a

et l’erreur d’intégration est


Z b
R1 (f ) = f [x0 , x1 , x](x − x0 )(x − x1 )dx
a

Démonstration.
Rb
Ici I1 (f ) = a P1 (x)dx avec P1 (x) désigne le polynôme d’interpolation sur {x0 , x1 } alors,
Z b
I1 (f ) = P1 (x)dx
a
b
(x − x1 ) (x − x0 )
Z
= f (x0 ) + f (x1 )
a (x0 − x1 ) (x1 − x0 )
Z b
f (x0 ) − f (x1 )
= f (x0 ) + (x − x0 )
a (x0 − x1 )
Z b
= [f [x0 ] + f [x0 , x1 ](x − x0 )] dx
a

13
d’où le résultat.
Le caractère C 2 garantit la continuité de l’application x 7−→ (x−x0 )(x−x1 ). d’où l’existence
de R1 (f ).

En choisissant x0 = a et x1 = b, il vient

Corollaire 3 (Méthode du Trapèzes)

Si f est de classe C 2 ([a, b]) alors, la valeur approchée vaut


 
f (a) + f (b)
IT = (b − a) (1.5)
2

cette méthode est d’ordre 1.


L’erreur d’intégration vaut

(b − a)3 00
RT = f (ξ), ξ ∈]a, b[.
12
Démonstration. Rb
- Calcul de IT en terme de la valeur approchée, IT = a P1 (x)dx où P1 désigne le polynôme
d’interpolation de f sur {a, b}. Ainsi
Z b Z b
IT = f [a]dx + f [a, b](x − a)dx
a a
f (b) − f (a) (b − a)2
= (b − a)f (a) +
 b −a 2
f (a) + f (b)
= (b − a)
2

d’où le résultat annoncé, qu’on aurait pu déduire d’une interpolation géométrique via l’aire
du trapèze :

Fig. 1.5 – Méthode du trapèze (n=1)

- pour l’erreur d’intégration


Z b
RT = f [a, b, x](x − a)(x − b)dx
a

14
Ici ψ1 (x) = (x − a)(x − b) ≤ 0 donc elle ne change pas de signe dans ]a, b[ alors, d’après le
théorème (1.3) et le lemme (1.1), ∃ ξ ∈ [a, b] tell que
Z b
RT = f [a, b, ξ] (x − a)(x − b)dx
a
00
f (ξ) b
Z
= (x − a)(x − b)dx
2! a
00 b
f (ξ) x3 a + b 2

= − x + abx
2! 3 2 a
00  
f (ξ) 1 3 3 1 2 2
= (b − a ) − (a + b)(b − a ) + ab(b − a)
2! 3 2
00
f (ξ) (b − a)  2
−b − a2 + 2ab

=
2! 6
(b − a)3 00
= f (ξ)
12
qui est le résultat.

Remarque 1.4

-Cette méthode nécessite deux évaluations de la fonction f (en a et en b). Elle est donc en
gros deux fois plus lente que les méthodes précédentes.
-L’erreur RT n’est pas connue car la valeur de ξ ∈ [a, b] reste indéterminée. Cependant, on
peut la majorer par la plus grande valeur de la dérivée troisième sur le domaine considéré,
alors pour h = b − a :
h3 00
|RT | ≤ sup(|f |)
12 [a,b]
-Les remarques sur l’erreur sont les mêmes que pour la méthode du point milieu. En préci-
sion, cette méthode est donc équivalente à celle du point milieu ( RT ' RM ), mais elle est
deux fois plus lente.

L’interpolation quadratique : quadrature de Simpson

Interpolation par une fonction Pn , de degré n = 2


Un travail préliminaire s’impose ; reprenons le même raisonnement que dans la méthode
des traits, mais cette fois-ci en utilisant un polynôme de degré 2 dont la courbe passe par
(x0 , f (x0 )), (x1 , f (x1 )) et (x2 , f (x2 )), le polynôme dont l’expression donnée par la formule
de Newton [5] par
P2 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 )
Servons ensuite de l’approximation
Z x2 Z x2
f (x)dx ≈ P2 (x)dx
x0 x0
Z x2
= {f (x0 ) + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 )} dx
x0

En se plaçant dans le cas où les abscisses sont également équidistantes, on pose de nouveau
x − x0
s= , ce qui entraîne
h
(x − xi ) = (s − i)h

15
si bien que
Z x2 Z 2
f (x0 ) + f [x0 , x1 ]hs + f [x0 , x1 , x2 ]h2 s(s − 1) hds

f (x) =
x0 0
Z 2 
f (x1 ) − f (x0 ) f (x2 ) − 2f (x1 ) + f (x0 ) 2
= f (x0 ) + hs + h s(s − 1) hds
0 h 2h2
h
= (f (x0 ) + 4f (x1 ) + f (x2 ))
3
c’est-à-dire Z 2
h
f (x)dx ≈ [f (x0 ) + 4f (x1 ) + f (x2 )]
0 3
On a donc le résultat suivant :

Proposition 3

Dans le cas de degré n = 2, le support d’interpolation est réduit à {x0 , x1 , x2 } . Si f est de


classe C 3 sur [a, b]. la valeur approchée est :
Z b Z b Z b
I2 (f ) = f [x0 ]dx + f [x0 , x1 ](x − x0 )dx + f [x0 , x1 , x2 ](x − x0 )(x − x1 )dx
a a a

et on commet l’erreur d’intégration suivante :


Z b
R2 (f ) = f [x0 , x1 , x2 , x](x − x0 )(x − x1 )(x − x2 )dx
a

Démonstration.
Similaire à celle de la proposition (2).

a+b
En choisissant x0 = a, x1 = et x2 = b, il vient
2
Corollaire 4 (Méthode du Simpson)

Si f est de classe C 4 ([a, b]), alors, la valeur approchée vaut

b−a a+b
IS = (f (a) + 4f (m) + f (b)), avec m =
6 2
Cette méthode est aussi d’ordre 3. L’erreur d’intégration commise vaut

(b − a)5 (4)
RS = − f (ξ), ξ ∈]a, b[ (1.6)
90
Démonstration.
voire [14]

Remarque 1.5
-Cette méthode nécessite trois évaluations de la fonction f (en x0 = a, x1 = (a + b)/2 et
x2 = b). Elle est donc en gros 3 fois plus lente que les méthodes à 1 point.
- L’erreur RS n’est pas connue car la valeur de ξ ∈ [a, b] reste indéterminée. Cependant, on

16
Fig. 1.6 – Méthode de Simpson simple (n=2)

peut la majorer par la plus grande valeur de la dérivée quatrième sur le domaine considéré,
alors pour h = b − a :
h5
|RS | ≤ sup(|f (4) |)
90 [a,b]
- Cette méthode d’intégration est exacte pour les fonctions f polynomiales d’ordre 3 (car
elles vérifient f (4) = 0), ce qui inclut en particulier les fonctions constantes, les fonctions
affines, et les paraboles par exemple. Plus généralement elle est d’autant plus précise que
les variations de f sont faibles ( f (4) petit).
-Plus l’intervalle [a, b] est petit, plus l’erreur est faible. Cette erreur décroit en h5 lorsque h
diminue, c’est-à-dire beaucoup plus rapidement que les méthodes précédentes.
- Ainsi,pour des intervalles [a, b] suffisamment petits, la méthode de Simpson est toujours
plus précise que les méthodes précédentes.

Nous allons donner maintenant quelques méthodes d’intégration numérique composées.

1.3.2 Méthodes d’ordres plus élevés


Plus généralement, on peut construire des approximations en utilisant des polynômes
d’ordre quelconque. Le polynôme d’ordre n passant par n + 1 points régulièrement espacés
entre a et b s’exprime en fonction des polynômes de Lagrange Lk (x), k ∈ [0, n] :
n
X Y x − xj
Pn (x) = fk Lk (x) avec Lk (x) =
k=0 j=0,j6=k
xk − xj
Rb
L’intégrale approchée In (f ) = a
Pn (x)dx peut alors se calculer, et donne :
n Rb
X Lk (x)dx
In (f ) = (b − a) wk fk avec wk = a
k=0
b−a

On rappelons quelque remarque important : -Une telle méthode nécessite n + 1 évaluations


de la fonction f (en xk , k ∈ [0, n]). Ainsi, plus le degré est élevé, plus la méthode est lente.
L’erreur peut aussi se calculer (mais ça devient franchement compliqué), et on peut montrer
que :
hn+2 (n+1) hn+2 
si n est impair : ∃ ξ ∈ [a, b] Rn = f (ξ) c-à-d |Rn | ≤ sup f (n+1)
Cn Cn [a,b]

17
hn+3 (n+2) hn+3 
si n est pair : ∃ ξ ∈ [a, b] Rn = f (ξ) c-à-d |Rn | ≤ sup f (n+2)
Cn Cn [a,b]
où Cn est un coefficient qui dépend de l’ordre du polynôme.
-Une telle méthode est exacte pour les polynômes de degré n, car ceux-ci vérifient f (n+1) = 0
(et même en fait pour des polynômes de degré n + 1 si n est pair). Sinon, elle est d’autant
plus précise que la fonction varie peu sur le domaine [a, b].
-Plus le domaine [a, b] est petit, plus l’erreur est faible, cette erreur décroit en hn+2 lorsque
h diminue (et hn+3 si n est pair), c’est-à-dire beaucoup plus rapidement que les méthodes
utilisant des polynômes de degré plus faible.

On trouve ainsi parfois référence a méthodes suivantes :

Méthode de Rectangles :
- À droite n
b−aX
In (f ) = f (xk )
n k=1

- À gauche
n
b−aX
In (f ) = f (xk−1 )
n k=1
- Sur un intervalle uniforme n
b−aX
In (f ) = f (xk )
n k=1
et l’erreur est majorée par
(b − a)2 0
Rr ≤ sup |f (x)|
n x∈[a,b]

Méthode de Points milieu :


n
b − a X xk+1 − xk
In (f ) = f( )
n k=1 2

et l’erreur est majorée par


(b − a)5
RM ≤ sup |f (4) (x)|
2880n4 x∈[a,b]

Méthode de Trapèzes :
n
b−aX
In (f ) = f (xk−1 ) + f (xk )
2n k=1

et l’erreur est majorée par


(b − a)3 00
RT ≤ 2
sup |f (x)|
12n x∈[a,b]

Méthode de Simpson :
n
b−aX
In (f ) = f (xk−1 ) + 4f (xk−1/2 ) + f (xk )
6n k=1

18
et l’erreur est majorée par
(b − a)3 00
RS ≤ 2
sup |f (x)|
12n x∈[a,b]
Méthode de Simpson 3/8 (degré n = 3)

f0 + 3f1 + 3f2 + f3
I3 (f ) = (b − a)
8
3 5 (4)
RS (f ) = − h f (ξ)
80
Les méthodes usuelles de quadrature (méthode de Simpson, méthodes de Trapèze...)
sont efficaces pour le calcul d’intégrales à une dimension et se généralisent facilement à
plusieurs dimensions lorsque le domaine d’intégration est simple (hypercube, par exemple).
En pratique cependant, les coefficients deviennent de plus en plus grands lorsque l’ordre
du polynôme augmente. De plus, à partir du degré n = 7, certains coefficients deviennent
négatifs. Elles ne sont donc jamais utilisées pour n > 7.
Par exemple : la méthode de Simpson, qui est la méthode plus rapide que les méthodes
précédentes, Lorsque la dimension d est grand, la convergence, en fonction du nombre N
de points où la fonction est évaluée (ce qui détermine le temps) devient très lente. Pour la
règle de Simpson, la convergence devient plus lente que 1/N lorsque d est supérieur à 7.
Nous voyons apparaître l’intérêt d’une méthode, où l’erreur est en 1/N quelle que soit la
dimension d cette méthode est la méthode de Monte-Carlo.

19
Chapitre 2
Méthode de Monte-Carlo

Les méthodes de Monte-Carlo sont particulièrement utilisées pour calculer des intégrales
en dimensions plus grandes que 1 (en particulier, pour calculer des surfaces, des volumes,
etc.). Dans ce chapitre on s’intéresse à la description de la méthode de Monte-Carlo. On
débutera en donnant le principe générale de la méthode, puis en étudiera plus pratiquement
la convergence, l’estimation de la variance d’un calcul et on définira l’intervalle de confiance.
Enfin on va présent des méthode de réduction de variance.
Maintenant on va donner quelque définition élémentaire[13]

Définition 2.1

i) Une probabilité est une application sur P(Ω) ; l’ensemble des parties de Ω (où Ω est
l’espace fondamental), telle que :
1. 0 ≤ P (A)P≤ 1, pour tout événement A ⊂ Ω
2. P (A) = Pω∈A P (ω), pour tout événement A
3. P (Ω) = ω∈A P (ω) = 1.
ii) Une variable aléatoire X est une fonction définie sur l’espace fondamental, qui asso-
cie une valeur numérique à chaque résultat de l’expérience aléatoire étudiée. Ainsi, à
chaque événement élémentaire ω, on associe un nombre X(ω).

iii) Soit X une v.a.. On appelle fonction de répartition de X la fonction de R dans [0, 1],
définie pour tout x ∈ R par
F (x) = P [X ≤ x]
iv) Soit X un variable aléatoire (v.a.) absolument continue de fonction de répartition F .
On appelle fonction de densité de X noté f la dérivée de F qu’il vérifier :
1. f (x) ≥ 0,
R x∀x ∈ R
2. F (x) = −∞ f (t)dt
R +∞
3. −∞ f (t)dt = 1

v) L’espérance ou moyenne d’une v.a. discrète X est le réel


X
E[X] = P [X = k]
k

où on somme sur toutes les valeurs k que peut prendre X.

20
vi) Une v.a. X suit une loi uniforme sur [a, b], si elle admet pour densité
 1
b−a
si a < x < b
f (x) =
0 sinon

2.1 Principe

2.1.1 Intégration unidimensionnelle


Pour utiliser une méthode de Monte-Carlo [9], on doit tout d’abord mettre sous la forme
d’une espérance la quantité que l’on cherche à calculer, à l’issu de cette étape, il reste à
calculer cette quantité par une espérance E(X) de la variable aléatoire X. Pour ce calcul,
il convient de savoir simuler une variable aléatoire selon la loi de X. On dispose alors d’une
suite (xi )1≤i≤n de n réalisations de la variable aléatoire X, On approxime alors E(X) par :
1
E(X) ' (x1 + ... + xN )
n

Nous souhaitons calculer l’intégrale[8]


Z b
I(h) = h(x)dx (2.1)
a

Nous exprimons tout d’abord la fonction h(x) sous la forme

h(x) = g(x)f (x)

où f (x) est une densité sur (a, b). Ainsi, par définition de l’espérance :
Z b
I(h) = g(x)f (x)dx
a
= E[g(X)]

où X est la variable aléatoire avec fonction de densité de probabilité f (x). Par la suite,
si x1 , ..., xn sont des observations simulées de la densité f (x), alors
n
1X
In (h) = g(xi ) (2.2)
n i=1

constitue une estimation de l’intégrale I(h).


Par souci de simplicité et parce qu’il est facile d’obtenir un échantillon aléatoire d’une
loi uniforme, nous posons en général X ∼ U(a, b), soit
1
f (x) = , a < x < b.
b−a
Dans ce cas, g(x) = (b − a)h(x) donc l’intégrale de départ (2.1) se réécrit
Z b
1
I(h) = (b − a) h(x) dx
a b−a
= (b − a)E[h(x)]. (2.3)

21
L’estimation (2.2) de l’intégrale devient alors
n
b−aX
In (h) = h(xi )
n i=1

où x1 , ..., xn est un échantillon aléatoire d’une loi U(a, b).


Par changement de variable posons
x−a dx
u= , du =
b−a b−a
équivaux à
x = a + (b − a)u, dx = (b − a)du
on remplace dans l’intégrale (2.3). On obtient alors
Z 1
I(h) = (b − a) h(a + (b − a)u)du
0
= (b − a)E[h(a + (b − a)U )]

où U ∼ U(0, 1). Une estimation de l’intégrale est donc


n
b−aX
In (f ) = h(a + (b − a)ui )
n i=1

où u1 , ..., un est un échantillon aléatoire d’une loi U(0, 1).


Nous devons utiliser la technique du changement de variable lorsque le domaine est infini.

2.1.2 Intégration multidimensionnelles


R
Le calcul de l’intégrale multidimensionnelles I(f ) = Ω f (x)dx avec Ω ∈ Rd , d ∈ N par
la méthode de Monte-Carlo se ramène à résoudre l’intégrale suivante :
Z
I(f ) = f (x)dx
[0,1]d

Dans ce cas, la méthode de Monte-Carlo consiste à écrire cette intégrale sous forme d’es-
pérance de f qui est la généralisation de la moyenne de f sur [0, 1]d , et avec u une variable
aléatoire suivant la loi uniforme sur [0, 1]d :

I(f ) = E(f (u))

Donc on doit :

1. Mise I(f ) sous forme d’espérance : on pose X = f (U1 , ..., Ud ) où U1 , ..., Ud sont des
réalisations de la loi uniforme sur l’intervalle [0, 1], alors

E(X) = E(f (U1 , ..., Ud )) = I(f )

22
2. Simulation de la variable aléatoire : on suppose que l’on dispose d’une suite (Ui )i≥1
de réalisations de la loi uniforme sur [0, 1]. On pose alors X1 = f (U1 , ..., Ud ), X2 =
f (Ud+1 , ..., U2d ),... etc. Alors les (Xi ) sont des réalisations de la variable aléatoire X
et
1
I(f ) ' (X1 + ... + Xn )
n
On approxime l’intégrale comme suit :
n n
1X 1X
I(f ) ' In (f ) = f (xi ) = Xi
n i=1 n i=1

Les points xi sont choisis dans l’intervalle Ω, donc quand le nombre des points n
augmente l’approximation sera plus précise et on a :
Z n
1X
I(f ) = f (x)dx = lim In (f ) = lim f (xi )
Ω n→∞ n→∞ n
i=1

2.1.3 Convergence de la méthode


Pour avoir une idée de l’intérêt de la méthode, il faut pouvoir évaluer l’erreur commise.

Définition 2.2
L’erreur commise définie par :
n
1X
εn = E(X) − Xi
n i=1

C’est la loi forte des grands nombres qui permet de justifier la convergence de la méthode.

Théorème 2.1 (Théorème de loi forte des grands nombres)


Soit X1 , X2 , ..., XN une suite de variables aléatoires réelles deux à deux indépendantes et
ayant toutes la même moyenne E[Xi ] = m et le même écart type fini : σ = E[Xi2 ]. Alors la
moyenne arithmétique :
X1 + X2 + ... + XN
N
converge "en probabilité" vers la moyenne stochastique m lorsque n −→ 1. C’est à dire,
quel que soit le nombre positif  donné (si petit soit-il) :
 
X1 + X2 + ... + XN
lim P − m >  = 0
N −→∞ N

Démonstration.
Pour la démonstration voire [15]

2.1.4 Vitesse de convergence


La vitesse de convergence [7] d’une estimation par la méthode de Monte Carlo est donnée
par le théorème central limite.

23
Théorème 2.2 (Théorème de limite centrale)
Soit (Xj , j ≥ 1) une suite de variables aléatoires indépendantes et de même loi que X, telles
que E(|X 2 |) < +∞ On note σ 2 la variance de X :

σ 2 = E((X − E(X))2 ) = E(X 2 ) − (E(X))2

Alors la suite
√ √ n
! n
n n 1X 1 X
εn = Xj − E(X) = √ (Xj − E(X))
σ σ n j=1 σ n j=1

Converge en loi vers une gaussienne centrée réduite. C’est-à-dire


Z b
σ σ 1 −x2
∀a ≤ b lim P ( √ a ≤ εn ≤ √ b) = √ exp 2 dx
n→+∞ n n 2π a
Pn
Démonstration. Supposons au départ que E(X) = 0 et σ 2 = 1, posons Sn = j=1 Xj
n
1 X Sn − nE(X) Sn
√ (Xj − E(X)) = √ =√
σ n j=1 σ n n

a comme fonction caractéristique :


Sn
it √ it √Xn n t
ϕ √Sn (t) = E(e n ) = E(e ) = (ϕX ( √ ))n
n n
comme X a carré intégrable, nous pouvons donc dériver deux fois sa fonction caractéristique
0 00
ϕX (0) = 0, ϕX (0) = −1

pour tout u au voisinage de 0, un développement limité de la fonction caractéristique donne

u2
ϕX (u) = 1 − + o(u2 )
2
donc
t
lim ϕ √Sn (t) = lim (ϕX ( √ ))n
n→∞ n n→∞ n
2
t t2
= lim (1 − + o( ))n
n→∞ 2n n
t2
= e− 2

qui est la fonction caractéristique d’un loi N (0, 1).On en déduit alors la convergence en loi
Sn
de √ n
vers la loi gaussienne centrée réduit.
Si E(X) 6= 0 ou σ 2 6= 1, posons pour tout i ∈ N,

Xj − E(Xj )
Yj =
σ
les Yj sont des variables centré réduit, on applique alors la première partie de la démons-
tration. [10]

Cependant, en général, l’écart-type σ est lui aussi inconnu, il va donc falloir l’estimer.

24
2.1.5 Estimation de la variance
La méthode Monte-Carlo en fournit justement un estimateur à peu de frais [3] puisque
basé sur le même échantillon (X1 , ..., Xn ), à savoir
n
1X p.s
σ̂n2 = ϕ(Xi )2 − In2 −→n→∞ σ 2
n i=1

Le théorème de la limite centrale donne un asymptotique de l’erreur εn , mais de nature


aléatoire. Dans ce cas, la loi de l’erreur finit par ressembler à une loi gaussienne centrée.
Plus précisément, le théorème de la limite centrale doit permettre de construire des inter-
valles de confiance, on en déduit bien entendu des intervalles de confiance asymptotiques
pour I.

Définition 2.3 (Intervalles de confiance)


Soit α ∈ (0, 1) fixé. Un intervalle de confiance de niveau asymptotique 1 − α pour I est
 
−1 σˆn −1 σˆn
In − Φ (1 − α/2) √ , In + Φ (1 − α/2) √
n n

où Φ−1 (1 − α/2) désigne le quantile d’ordre 1 − α/2 de la loi normale centrée réduite.

Typiquement α = 0.05 donne Φ−1 (1 − α/2) = q0.975 = 1.96, qui permet de construire
un intervalle de confiance à 95% pour I.

Remarque 2.1
-Par le théorème de loi forte des grands nombres, In −→ I quand n −→ ∞.
-Cette méthode ne dépend pas de la régularité de f qui doit être juste mesurable.
2
-Dans les applications, on remplace εn par une gaussienne centrée de variance σn .
-On présente souvent l’erreur de la méthode de Monte-Carlo, soit en donnant l’écart-type de
l’erreur εn , soit en donnant un intervalle de confiance à 95% pour le résultat. L’intervalle
de confiance de la méthode à 95% est :

σ2 σ2
[In − 1.96 , In + 1.96 ]
n n
-En général, le calcul de la valeur de σ est approximée par la méthode de Monte-Carlo :
n
" n #2
1X 1 X
[g(Xi )]2 − g(Xi ) −→ σ 2
n i=1 n i=1

-La vitesse de convergence est en √σn , ce qui n’est pas très rapide, mais c’est parfois la seule
méthode abordable, de plus cette vitesse ne change pas si on est en grande dimension, et
elle ne dépend pas de la régularité de la fonction.

Nous avons voir que la vitesse de convergence de la méthode Monte-Carlo est de l’ordre
σ
de √ . Pour améliorer cette méthode, il existe de nombreuses techniques, dites de réduction
n
de variance, qui cherchent à diminuer la valeur de σ 2 sans augmenter significativement le
temps de calcul.

25
2.2 Méthodes de réduction de variance
L’idée générale de ces méthodes est de donner une autre représentation sous forme
d’espérance de la quantité à calculer, c’est-à-dire : E(X) = E(Y ) avec V ar(Y ) < V ar(X).
Plusieurs techniques réduisant la variance, mais pas la vitesse de convergence (excepté
pour la variante du cas de l’échantillonnage stratifié), sont présentées maintenant. Il est
aussi possible de combiner plusieurs techniques de réduction de la variance, mais une telle
pratique doit être réalisée avec prudence car elle ne produit pas toujours les effets escomptés :
en effet, la variable aléatoire dont on cherche l’espérance n’est alors plus la Rmême. Afin
d’illustrer les méthodes, nous nous limiterons au calcul d’une intégrale I(f ) = [0;1]d f (x)dx
[16].

2.2.1 Variables de contrôle


L’erreur d’approximation dans l’estimation de I(f ) par une méthode de Monte-Carlo
standard provient des grandes variations de f . La technique de variable de contrôle réécrit
l’intégrale sous la forme :
Z Z
I(f ) = g(x)dx + (f (x) − g(x))dx
[0,1]d [0,1]d

Si g est suffisamment simple pour être intégrée formellement, on peut se concentrer sur la
deuxième intégrale. De même, si g est suffisamment proche de f (si g absorbe les variations
de f ), on obtient une réduction conséquente de la variance. En effet, si X désigne une
variable aléatoire uniformément distribuée sur [0, 1]d et si l’on pose Z = f (X) − g(X), on
a:
σ 2 (Z) = σ 2 (f (X)) + σ 2 (g(X)) − 2Cov(f (X), g(X))
Pour obtenir une réduction de la variance, il suffit donc que :

σ 2 (g(X)) − 2Cov(f (X), g(X)) < 0

2.2.2 Variables antithétiques


Les variables antithétiques aussi appelées variables complémentaire reposent sur ce prin-
cipe :
Faire une exécution en utilisant les nombres aléatoires (u1 , ..., un ) pour obtenir une échan-
tillon d’observations aléatoires (x1 , ..., xn ), puis calculer l’estimateur In (f ) faire une autre
exécution en utilisant les nombres aléatoires complémentaires (1 − u1 , ..., 1 − un ) pour ob-
0 0 0
tenir une échantillon d’observations aléatoires (x1 , ..., xn ) puis calculer l’estimateur In (f )
0
I (f ) + In (f )
Utiliser ces deux exécutions pour calculer la moyenne combinée : Inac (f ) = n
2
qui est un estimateur sans biais et plus précis que In (f ) [4].

2.2.3 Stratification
Le principe ici est de :
1. Séparer le domaine d’intégration en plusieurs sous-domaines (J sous-domaines Ωj )
2. simuler nj points (X1j , ..., Xnj ) dans chaque Ωj avec probabilité P (Ωj )

26
L’estimateur est :
J nj
X P (Ωj ) X
In (f ) = f (Xij ).
j=1
nj i=1

La variance estimée[1] est :


J nj nj
!2
X P (Ωj )2 σ̂j2 1 X 1 X
σ̂(In (f ))2 = 2
, σ̂j = f (Xij2 ) − f (Xij ) .
j=1
nj nj i=1 nj i=1
.

2.2.4 Échantillonnage suivant l’importance


Échantillonnage préférentiel[1] c’est une méthode de calcul de In = E[f (X)] qui consiste
à tirer les variables selon une distribution erronée, et à compenser numériquement le résultat
à postériori.
Pour en donner une idée, revenons au calcul d’une intégrale sur [0, 1]. Si p est une densité
strictement positive sur [0, 1], on peut écrire
Z 1 Z
f (x)
f (x)dx = p(x)dx
0 p(x)

0f (Yi )
1
Pn
Ce qui suggère la possibilité d’un autre algorithme : In = n
, où les Yi sont i.i.d
i=1
Yi
sur [0, 1] de loi p(x)dx : Rappelons que si X a une densité fX (x) et Y une densité fY alors,
p = fY /fX .

27
Chapitre 3
Application

À travers ce chapitre nous allons voir l’utilisation des notions et principaux résultats de
la méthode de Monte-Carlo. On va présenter des exemples du calcul d’intégrale simple et
compliqué (calcul surface d’un roue) par cette méthode de plus, on va exposer une com-
paraison entre la méthode de Monte-Carlo et les quatre méthodes numérique de première
chapitre en utilisant les deux logiciels R et Python.

3.1 La méthode de Monte-Carlo par R

3.1.1 Dimension un
Exemple 3.1
Soit la fonction
h(x) = x11/5 e−x/10
posons l’intégrale Z 5
I= x11/5 e−x/10 dx
2

Pour utiliser la méthode Monte-Carlo, nous posons [8] :


Z 5
1
I=3 x11/5 e−x/10 ( )dx
2 3

Si {x1 , ..., xn } est un échantillon aléatoire d’une loi U(2, 5), alors
n
3 X 11/5 −xi /10
In = x e
n i=1 i

est une estimation de I. avec le code R (3.1) nous obtenons les résultats suivants et la figure
(3.1)

28
n I
100 33.27398
1000 34.26288
10 000 34.3455
100 000 34.5762
1000 000 34.51774

Table 3.1 – Monte-Carlo par R dimension 1

Fig. 3.1 – Monte-Carlo par R dimension 2

3.1.2 Dimension deux


Exemple 3.2
Soit la fonction p
h(x, y) = 4 − x2 − y 2
La procédure à suivre avec les intégrales multiples est la même qu’avec les intégrales simples,
sauf que nous tirons des points uniformément dans autant de dimensions que nécessaire.
Ainsi, dans le cas présent, nous posons :
Z 5/4 Z 5/4 p
I= 4 − x2 − y 2 dydx
0 0
5/4
Z 5/4 p
Z
25 1
= 4 − x2 − y 2 5
 5  dydx
16 0 0 4 4
25 h√ i
= E 4 − X2 − Y 2
16
où X et Y sont des variables aléatoires indépendantes distribuées uniformément sur l’inter-
valle (0, 45 ). Autrement dit, la densité conjointe de X et Y est uniforme sur (0, 45 ) × (0, 45 ).

29
Par conséquent, une estimation de I calculée à partir d’un échantillon {(x1 , y1 ), ..., (xn , yn )}
tiré de cette loi conjointe est
n
25 X
q
In = 4 − x2i − yi2 .
16n i=1

Le code R (3.2) effectuer quelques résultats obtenus avec R les calculs et les graphiques
(voir la figure (3.2)).

n I
100 2.707254
1000 2.651387
10 000 2.669409

Table 3.2 – Monte-Carlo par R dimension 2

Fig. 3.2 – Monte-Carlo par R dimension 2

3.2 Calcule volume


Exemple 3.3
Nous allons calculer, en dimension d = {3, 5, 7}, le volume compris entre les hypersphères

30
de rayons R1 et R2 . La fonction (3.4) renvoie le volume, l’estimation de la variance σ 2 On
pose R1 = 0 et R2 = 1 En dimension 3, on trouve :

volume σ2 e
4.2424 15.941242240000001 0.07825591107972867

Table 3.3 – Calcul volume par la méthode de Monte-Carlo, d = 3

avec un intervalle de confiance à 95% :

[I − e, I + e] = [4.164144088920271, 4.3206559110797285]

En dimension 5 on obtient

volume σ2 e
5.1392 138.04302336 0.2302837550805041

Table 3.4 – Calcul volume par la méthode de Monte-Carlo, d = 5

avec un intervalle de confiance à 95% :

[I − e, I + e] = [4.908916244919496, 5.369483755080504]

Comme on le voit sur cet exemple, la variance dépend de la dimension. Augmentons le


√ obtenir un écart comparable à celui de la dimension 3. Comme
nombre d’échantillons pour
l’écart évolue comme 1/ N , il faut augmenter N d’un facteur 90 environ on trouve :

volume σ2 e
5.285511111111111 141.19972784987655 0.024550014132335506

Table 3.5 – Calcul volume par la méthode de Monte-Carlo, d = 5, N = 9 × 105

avec un intervalle de confiance à 95% :

[I − e, I + e] = [5.260961096978775, 5.310061125243447]

Voyons le volume d’une coque d’épaisseur un dixième du rayon :

volume σ2 e
2.12064 63.3633659904 0.049337278683437805

Table 3.6 – Calcul volume par la méthode de Monte-Carlo, d = 5, N = 105

31
avec un intervalle de confiance à 95% :

[I − e, I + e] = [2.0713027213165622, 2.1699772786834375]

Voici les mêmes calculs en dimension 7 (beaucoup plus longs) :

volume σ2 e
4.713984 581.168306847744 0.014941941532432435

Table 3.7 – Calcul volume par la méthode de Monte-Carlo, d = 7, N = 107

avec un intervalle de confiance à 95% :

[I − e, I + e] = [4.699042058467567, 4.728925941532433]

3.3 Calcul de moments d’inertie par intégration de Monte-


Carlo

3.3.1 Méthode de Monte-Carlo avec échantillonnage uniforme


Exemple 3.4
L’objectif est de calculer les moments d’inertie d’un solide en utilisant la méthode d’inté-
gration de Monte-Carlo. On verra dans un premier temps un échantillonnage uniforme sur
un domaine carré contenant le solide, avant d’envisager un échantillonnage préférentiel, qui
permettra de réduire la variance de la somme calculée. On considère l’exemple d’une roue :

La roue est un cylindre d’axe Z et d’épaisseur e. Le rayon extérieur est R3 = 1, le rayon


intérieur est R2 . Le moyeu comporte un trou circulaire de diamètre R1 et deux branches de
largeur 2a. On suppose que la densité de masse est uniforme.
On cherche à calculer le moment d’inertie de la roue par rapport à son axe Z :
Z Z Z Z Z
2 2
Jz = (x + y )ρ(x, y, z)dxdydz = e (x2 + y 2 )ρ(x, y)dxdy

32
En raison du caractère bidimensionnel de ce solide, on est ramené à un calcul d’intégrale
double, et on posera e = 1, la densité de masse est ρ = 1 dans la matière (dans les deux
branches du moyeu et dans la roue), et nulle en dehors.
Pour le calcul de l’intégrale, on utilisera le domaine carré Ω = [−1, 1] × [−1, 1]. Il s’agit
donc de calculer : Z 1Z 1
Jz = (x2 + y 2 )ρ(x, y)dxdy
1 1
On définit la fonction à intégrer :

f (x, y) = (x2 + y 2 )ρ(x, y)

La fonction (3.5) fait le calcul de l’intégrale et donne

I e
1.127363547054364 0.009026401041990512

Table 3.8 – Méthode de Monte-Carlo avec échantillonnage uniforme

avec un intervalle de confiance à 95% :

[I − e, I + e] = [1.1183371460123734, 1.1363899480963544]

Elle génère aussi une image (3.3) carrée dont le nombre de pixels sur chaque dimension est
np. Cette image, noire au départ, est complétée par un pixel blanc pour chaque point tiré
dont la valeur de f est non nulle.

Fig. 3.3 – Méthode de Monte-Carlo avec échantillonnage uniforme

3.3.2 Méthode de Monte-Carlo avec échantillonnage préférentiel


Exemple 3.5
Une première méthode consiste à échantillonner uniformément sur le disque de rayon 1.

33
On doit pour cela utiliser les coordonnées polaire (r, θ) et faire des tirages avec la densité
de probabilité uniforme sur le disque :
1
p(r, θ) =
π
Pour réaliser cet échantillonnage à partir de variables à densité uniforme, on considère la
fonction de répartition bidimensionnelle :
Z θZ r 0
r 0 0 θ 2
F (r, θ) = dθ dr = r
0 0 π 2π
L’inversion de la fonction de répartition permet d’échantillonner r et θ à partir de deux
variables (u1 , u2 ) uniformes sur l’intervalle [0, 1] :
θ = 2πu1

r = u2
La fonction (3.6) fait le calcul de l’intégrale et donne

I e
1.1328106867306718 0.007304407857477749

Table 3.9 – Méthode de Monte-Carlo avec échantillonnage préférentiel

avec un intervalle de confiance à 95% :


[I − e, I + e] = [1.125506278873194, 1.1401150945881495]
Elle génère aussi l’image (3.4)

Fig. 3.4 – Méthode de Monte-Carlo avec échantillonnage préférentiel

3.4 Comparaison des cinq méthodes


Exemple 3.6
Dans cet exemple, on va faire une comparaison entre les quatre méthodes de chapitre 1
et la méthode de Monte-Carlo sur les dimensions 1, 2 et 3.

34
Dimension 1

Soit la fonction √
f (x) = x2 + e5x
On va calculer l’intégral Z 1
I= f (x)dx (3.1)
0

Le programme (3.7) fait le calcul de l’intégral (3.1) et d’erreur suivant les quatre mé-
thodes. On prend n = 10000, on obtient le résultat suivant :

Les méthodes I L’erreur


Valeur intégral 4.502084721431 0.000000000000
Rectangle 4.501523571333 0.000561150098
Point Milieu 4.502084709791 0.000561150098
Simpson 4.502084721431 0.000000000000
Monte-Carlo 4.533330768805 0.031246047374

Table 3.10 – Comparaison en dimension 1

Dimension 2

Soit la fonction
g(x, y) = xy + y 2 + 1
On va calculer l’intégral Z 2 Z 3
g(x, y)dxdy (3.2)
1 0

Le programme (3.8) fait le calcul de l’intégral (3.2) et d’erreur suivant les quatre mé-
thodes. On prend nx = 10000, ny = 20000, on obtient le résultat suivant :

Les méthodes I L’erreur


Valeur intégral 18.750000000000 0.000000000000
Rectangles 18.748762522505 0.001237477495
Point Milieu 18.749999994380 0.000000005620
Trapèzes 17.625000011241 1.124999988759
Simpson 18.750000003757 0.000000003757
Monte-Carlo 18.924444405693 0.174444405693

Table 3.11 – Comparaison en dimension 2

Dimension 3

Soit la fonction
2 +y 2
g(x, y, z) = zex

35
On va calculer l’intégral Z 1 Z 1 Z 1
g(x, y, z)dxdydz (3.3)
0 0 0

Le programme (3.9) fait le calcul de l’intégral (3.3) et d’erreur suivant les quatre mé-
thodes.
On prend n1 = 5, n2 = 3 et n3 = 1, on obtient le résultat suivant :

Les méthodes I L’erreur


Valeur intégral 1.069675064903 0.000000000000
Rectangles 0.000000000000 1.069675064903
Point milieu 1.045397685605 0.024277379298
Trapèzes 1.485974293374 0.416299228471
Simpson 1.192256554861 0.122581489959
Monte-Carlo 1.069506112470 0.000168952433

Table 3.12 – Comparaison en dimension 3

En dimension d, on est amené à calculer des intégrales dans un espace de dimension d


qui peut être très grand (par exemple plusieurs millions). On peut citer l’espace des phases
utilisés en physique statistique pour représenter la configuration d’un système comportant
un grand nombre d’atomes. Les méthodes de quadrature sont très inefficaces, voire inuti-
lisables, lorsque la dimension est élevée. Par exemple, pour la méthode des Rectangles, le
nombre de points nécessaires pour maintenir une précision constante évolue comme N d . Le
logarithme du nombre de points est donc proportionnel à la dimension d, une loi que l’on
retrouve pour toutes les méthodes de quadrature. La méthode de Monte-Carlo ne présente
pas cette dépendance par rapport à la dimension. La variance de la somme calculée est :

σ2
var(SN ) =
N
La variance σ 2 de la variable f /p (p densité de probabilité) est susceptible d’augmenter
avec la dimension. La méthode de Monte-Carlo a donc un avantage décisif en dimension
élevée.

36
Conclusion et perspectives

Comme conclusion à cette modeste étude, nous retenons que la méthode de Monte-
Carlo est une méthode d’approximation par introduction de procédés aléatoire. Cela permet
d’estimer des valeurs numériques et de caractériser des systèmes complexes.
La méthode de Monte-Carlo est l’une des techniques de simulation offrant la possibilité
de calculer des intégrales difficiles à calculer. Elle a comme grand avantage, par rapport
aux méthodes d’analyse numérique classiques, d’avoir une vitesse de convergence en o( √1n )
(pour un échantillon de n points), donc indépendante de la dimension du problème. Du
point de vu des applications, la méthode de Monte-Carlo sont aujourd’hui indispensables
dans plusieurs domaines.
Cette méthode nécessite un paramètre d’entrée de nature aléatoire. Néanmoins, il doit
exister des suites de nombres telles que la convergence soit plus rapide, en supprimant
l’aspect aléatoire. C’est pourquoi on intéresse à la recherche des méthodes qui permis de
créer des suites qui convergent plus rapidement que les suites de Monte-Carlo, ces méthodes
sont les méthodes Quasi Monte-Carlo.

37
Bibliographie

[1] Bernard-delyon (2012). Simulation et modélisation. Universite Rennes I.

[2] Boubalou, M., Oukachbi, A., Ourbih, M., et al. (2015). La comparaison entre les mé-
thodes hypercube latin et descriptif amélioré à travers un modèle de file d’attente M/G/1.
PhD thesis, Université abderrahmane mira béjaia.

[3] Céline-Baranger, J.-M. (2012-2013). Méthode de monte-carlo.

[4] Derradji, N., Khalfi, L., Ourbih, M., et al. (2013). Les méthodes Monte Carlo, Quasi
Monte Carlo et leurs applications. PhD thesis, Université abderrahmane mira béjaia.

[5] Enseignements-Licence-L3 (2008-2009a). Interpolation. Université de Caen Basse-


Normandie.

[6] Enseignements-Licence-L3 (2008-2009b). Intégration Numérique. Université de Caen


Basse-Normandie.

[7] Faivre, R., Iooss, B., Mahévas, S., Makowski, D., and Monod, H. (2016). Analyse
de sensibilité et exploration de modèles : application aux sciences de la nature et de
l’environnement. Editions Quae.

[8] Goulet, V. (2018). Méthodes numériques en actuariat avec R,Simulation stochastique.


école d’actuariat, Université Laval.

[9] Ledra, M., Rima, B., and Fatiha, F. (2016). La méthode Monté Carlo et ses applications.

[10] Medouakh, F. Z. (2018). Méthodes de Monte-Carlo. PhD thesis.

[11] Menini, C. (18 mai 2009). inégalité des accroissements finis.

[12] Pansu, P. (12 avril 2005). THEOREMES D’ANALYSE.

[13] Perrut, A. (Août 2010). Cours de probabilités et statistiques.

[14] Richard, L. and Burden, J. (2001). Douglas faires. numerical analysis . thomson lear-
ning.

[15] Roger, M. (2008). Méthodes de monte-carlo. Service de Physique de l’Etat Condensé


CEA Saclay.

[16] RUBINO, G. and TUFFIN, B. (2007). Simulations et méthodes de Monte Carlo. Ed.
Techniques Ingénieur.

38
[17] Touzani, R. (octobre 2013). Introduction à l’analyse numérique.

[18] Varet, S. (2010). Développement de méthodes statistiques pour la prédiction d’un ga-
barit de signature infrarouge. PhD thesis, Université Paul Sabatier-Toulouse III.

39
Annexes

Estimations successives de l’intégrale par la méthode Monte-Carlo avec des échantillons


de plus en plus grands.
1 f <− f u n c t i o n ( x ) x ^ 2 . 2 ∗ exp(−x / 1 0 )
2 x <− r u n i f ( 1 e2 , 2 , 5 )
3 3 ∗ mean ( f ( x ) )
4 x <− r u n i f ( 1 e3 , 2 , 5 )
5 3 ∗ mean ( f ( x ) )
6 x <− r u n i f ( 1 e4 , 2 , 5 )
7 3 ∗ mean ( f ( x ) )
8 x <− r u n i f ( 1 e5 , 2 , 5 )
9 3 ∗ mean ( f ( x ) )
10 x <− r u n i f ( 1 e6 , 2 , 5 )
11 3 ∗ mean ( f ( x ) )
12

13 op <− par ( mfrow = c ( 2 , 2 ) ) # 4 g r a p h i q u e s en g r i l l e 2 x 2


14 c u r v e ( f ( x ) , xlim = c ( 2 , 5 ) , lwd = 2 , main = " V r a i e f o n c t i o n " )
15 x <− r u n i f ( 1 e2 , 2 , 5 )
16 p l o t ( x , f ( x ) , main = "n = 1 0 0 " ,
17 pch = 2 1 , bg = 3 )
18 x <− r u n i f ( 1 e3 , 2 , 5 )
19 p l o t ( x , f ( x ) , main = "n = 1 0 0 0 " ,
20 pch = 2 1 , bg = 3 )
21 x <− r u n i f ( 1 e4 , 2 , 5 )
22 p l o t ( x , f ( x ) , main = "n = 10 0 0 0 " ,
23 pch = 2 1 , bg = 3 )
24 x <− r u n i f ( 1 e5 , 2 , 5 )
25 p l o t ( x , f ( x ) , main = "n = 100 0 0 0 " ,
26 pch = 2 1 , bg = 3 )
27 x <− r u n i f ( 1 e6 , 2 , 5 )
28 p l o t ( x , f ( x ) , main = "n = 1000 0 0 0 " ,
29 pch = 2 1 , bg = 3 )
30 par ( op ) # r e v e n i r aux paramè t r e s par dé f a u t
Code Listing 3.1 – Monte-Carlo par R dimension 1

Estimations successives de l’intégrale double par la méthode Monte-Carlo avec des échan-
tillons de plus en plus grands.
1 u <− r u n i f ( 1 e2 , 0 , 1 . 2 5 )
2 v <− r u n i f ( 1 e2 , 0 , 1 . 2 5 )
3 mean ( s q r t ( 4 − u^2 − v ^2) ) ∗ 1 . 2 5 ^ 2
4 u <− r u n i f ( 1 e3 , 0 , 1 . 2 5 )
5 v <− r u n i f ( 1 e3 , 0 , 1 . 2 5 )
6 mean ( s q r t ( 4 − u^2 − v ^2) ) ∗ 1 . 2 5 ^ 2
7 u <− r u n i f ( 1 e4 , 0 , 1 . 2 5 )

40
8 v <− r u n i f ( 1 e4 , 0 , 1 . 2 5 )
9 mean ( s q r t ( 4 − u^2 − v ^2) ) ∗ 1 . 2 5 ^ 2
10 ## Graphiques de l a v r a i e f o n c t i o n e t d e s p o i n t s où c e l l e −c i
11 ## e s t é v a l u ée avec l a méthode Monte C a r l o . Pour f a i r e un
12 ## g r a p h i q u e en t r o i s d i m e n s i o n s , nous pouvons u t i l i s e r l a
13 ## f o n c t i o n ’ persp ’ .
14 op <− par ( mfrow = c ( 2 , 2 ) , mar = c ( 1 , 1 , 2 , 1 ) )
15 f <− f u n c t i o n ( x , y ) s q r t ( 4 − x^2 − y ^2)
16 x <− s e q ( 0 , 1 . 2 5 , l e n g t h = 2 5 )
17 y <− s e q ( 0 , 1 . 2 5 , l e n g t h = 2 5 )
18 p e r s p ( x , y , o u t e r ( x , y , f ) , main = " V r a i e f o n c t i o n " ,
19 zlim = c (0 , 2) , theta = 120 , phi = 30 , c o l = 3 ,
20 zlab = "z " , t i c k t y p e = " d e t a i l e d ")
21 ## Pour f a i r e l e s t r o i s a u t r e s g r a p h i q u e s , nous a l l o n s d ’ abord
22 ## c r é e r d e s g r a p h i q u e s en t r o i s d i m e n s i o n s v i d e s , p u i s y
23 ## a j o u t e r d e s p o i n t s avec l a f o n c t i o n ’ p o i n t s ’ . La f o n c t i o n
24 ## ’ t r a n s 3 d ’ s e r t à c o n v e r t i r l e s coordonné e s d e s p o i n t s dans
25 ## l a p r o j e c t i o n u t i l i s ée par ’ persp ’ .
26 u <− r u n i f ( 1 e2 , 0 , 1 . 2 5 )
27 v <− r u n i f ( 1 e2 , 0 , 1 . 2 5 )
28 r e s <− p e r s p ( x , y , matrix (NA, l e n g t h ( x ) , l e n g t h ( y ) ) ,
29 main = "n = 1 0 0 " ,
30 zlim = c (0 , 2) , theta = 120 , phi = 30 ,
31 zlab = "z " , t i c k t y p e = " d e t a i l e d ")
32 p o i n t s ( t r a n s 3 d ( u , v , f ( u , v ) , pm = r e s ) ,
33 pch = 2 1 , bg = 3 )
34 u <− r u n i f ( 1 e3 , 0 , 1 . 2 5 )
35 v <− r u n i f ( 1 e3 , 0 , 1 . 2 5 )
36 r e s <− p e r s p ( x , y , matrix (NA, l e n g t h ( x ) , l e n g t h ( y ) ) ,
37 main = "n = 1 0 0 0 " ,
38 zlim = c (0 , 2) , theta = 120 , phi = 30 ,
39 zlab = "z " , t i c k t y p e = " d e t a i l e d ")
40 p o i n t s ( t r a n s 3 d ( u , v , f ( u , v ) , pm = r e s ) ,
41 pch = 2 1 , bg = 3 )
42 u <− r u n i f ( 1 e4 , 0 , 1 . 2 5 )
43 v <− r u n i f ( 1 e4 , 0 , 1 . 2 5 )
44 r e s <− p e r s p ( x , y , matrix (NA, l e n g t h ( x ) , l e n g t h ( y ) ) ,
45 main = "n = 10 0 0 0 " ,
46 zlim = c (0 , 2) , theta = 120 , phi = 30 ,
47 zlab = "z " , t i c k t y p e = " d e t a i l e d ")
48 p o i n t s ( t r a n s 3 d ( u , v , f ( u , v ) , pm = r e s ) ,
49 pch = 2 1 , bg = 3 )
50 par ( op ) # r e v e n i r aux paramè t r e s par dé f a u t
Code Listing 3.2 – Monte-Carlo par R dimension 2

1 # −∗− c o d i n g : u t f −8 −∗−
2 """ Created on Wed May 22 1 3 : 2 4 : 2 7 2019
3 %@author : Abekhti .A """
4
5 import numpy . random
6 import math
7 d e f i n t e g r a t i o n D i s q u e ( f o n c t i o n , R,N) :
8 t h e t a = 2∗numpy . p i ∗numpy . random . random_sample (N)
9 r = R∗numpy . s q r t ( numpy . random . random_sample (N) )
10 p = 1 . 0 / ( numpy . p i ∗R∗R)
11 somme = 0 . 0
12 somme2 = 0 . 0
13 f o r i i n r a n g e (N) :
14 f = fonction ( r [ i ] , theta [ i ] )
15 somme += f

41
16 somme2 += f ∗ f
17 moyenne = somme / ( p∗N)
18 v a r i a n c e = somme2 / ( p∗p∗N)−moyenne∗moyenne
19 r e t u r n ( moyenne , math . s q r t ( v a r i a n c e /N) ∗ 1 . 9 6 )
20
21 def f ( r , theta ) :
22 r e t u r n 1−r ∗ r
23 ( integrale , intervalle ) = integrationDisque ( f ,1.0 ,10000)
24 print (( integrale , intervalle ) )
Code Listing 3.3 – integration Disque

1 # −∗− c o d i n g : u t f −8 −∗−
2 """ Created on Mon May 13 1 1 : 1 0 2019
3 %@author : Abekhti .A """
4

5 import random
6 import math
7 d e f volume ( dim , R1 , R2 ,N) :
8 somme = 0 . 0
9 somme2 = 0 . 0
10 R12 = R1∗R1
11 R22 = R2∗R2
12 p = 1 . 0 / math . pow ( 2 ∗R2 , dim )
13 f o r i i n r a n g e (N) :
14 r2 = 0.0
15 f o r d i n r a n g e ( dim ) :
16 x = random . uniform (−R2 , R2)
17 r 2 += x∗x
18 i f r2>= R12 and r2<=R22 :
19 f = 1.0
20 else :
21 f = 0.0
22 somme += f
23 somme2 += f ∗ f
24 moyenne = somme / ( p∗N)
25 v a r i a n c e = somme2 / ( p∗p∗N)−moyenne∗moyenne
26 r e t u r n ( moyenne , v a r i a n c e , math . s q r t ( v a r i a n c e /N) ∗ 1 . 9 6 )
27 (m, v , e ) = volume ( 3 , 0 , 1 , 1 0 0 0 0 )
28 p r i n t (m, v , e )
29 (m, v , e ) = volume ( 5 , 0 , 1 , 1 0 0 0 0 )
30 p r i n t (m, v , e )
31 (m, v , e ) = volume ( 5 , 0 , 1 , 1 0 0 0 0 ∗ 9 0 )
32 p r i n t (m, v , e )
33 (m, v , e ) = volume ( 5 , 0 . 9 , 1 , 1 0 ∗ ∗ 5 )
34 p r i n t (m, v , e )
35 (m, v , e ) = volume ( 7 , 0 , 1 , 1 0 ∗ ∗ 7 )
36 p r i n t (m, v , e )
Code Listing 3.4 – volume

1 # −∗− c o d i n g : u t f −8 −∗−
2 """ Created on Mon May 6 1 0 : 1 8 : 3 9 2019
3 %@author : Abekhti .A """
4

5 import numpy
6 import numpy . random
7 from m a t p l o t l i b . p y p l o t import ∗
8 import math
9
10 d e f i n t e g r a t i o n 2 D ( f o n c t i o n , N, param , np ) :

42
11 image = numpy . z e r o s ( ( np , np ) )
12 x = −1+2∗numpy . random . random_sample (N)
13 y = −1+2∗numpy . random . random_sample (N)
14 p = 1.0/4
15 somme = 0 . 0
16 somme2 = 0 . 0
17 f o r i i n r a n g e (N) :
18 f = f o n c t i o n ( x [ i ] , y [ i ] , param )
19 somme += f
20 somme2 += f ∗ f
21 i f f !=0:
22 image [ i n t ( ( y [ i ]+1) /2∗ np ) , i n t ( ( x [ i ]+1) /2∗ np ) ] = 1 . 0
23 moyenne = somme / ( p∗N)
24 v a r i a n c e = somme2 / ( p∗p∗N)−moyenne∗moyenne
25 r e t u r n ( moyenne , math . s q r t ( v a r i a n c e /N) ∗ 1 . 9 6 , image )
26
27 d e f f_Jz ( x , y , param ) :
28 R1 = param [ 0 ]
29 R2 = param [ 1 ]
30 a = param [ 2 ]
31 r 2 = x∗x+y∗y
32 i f r 2 > 1 o r r 2 < R1∗R1 :
33 return 0.0
34 i f r 2 > R2∗R2 :
35 return r2
36 i f abs ( x ) < a :
37 return r2
38 i f abs ( y ) < a :
39 return r2
40 return 0.0
41 param = [ 0 . 1 , 0 . 8 , 0 . 1 5 ]
42 N = 10∗∗5
43 ( i n t e g r a l e , i n t e r v a l l e , image ) = i n t e g r a t i o n 2 D ( f_Jz , N, param , 5 0 0 )
44 figure ()
45 imshow ( image , cmap= ’ gray ’ )
46 #==============================================
47 print (( integrale , intervalle ) )
Code Listing 3.5 – Échantillonnage uniforme

1 # −∗− c o d i n g : u t f −8 −∗−
2 """
3 Created on Sat Jun 15 2 0 : 1 3 : 4 0 2019
4
5 @author : Abekhti . A
6 """
7
8 import numpy
9 import numpy . random
10 from m a t p l o t l i b . p y p l o t import ∗
11 import math
12

13 d e f i n t e g r a t i o n 2 d _ d i s q u e ( f o n c t i o n , N, param , np ) :
14 image = numpy . z e r o s ( ( np , np ) )
15 t h e t a = 2∗numpy . p i ∗numpy . random . random_sample (N)
16 r = numpy . power ( numpy . random . random_sample (N) , 0 . 5 )
17 somme = 0 . 0
18 somme2 = 0 . 0
19 p = 1 . 0 / numpy . p i
20 f o r i i n r a n g e (N) :
21 f = f o n c t i o n ( r [ i ] , t h e t a [ i ] , param ) /p

43
22 somme += f
23 somme2 += f ∗ f
24 i f f !=0:
25 image [ i n t ( ( r [ i ] ∗ math . c o s ( t h e t a [ i ] ) +1) /2∗ np ) , i n t ( ( r [ i ] ∗ math . s i n (
t h e t a [ i ] ) +1) /2∗ np ) ] = 1 . 0
26 moyenne = somme/N
27 v a r i a n c e = somme2/N−moyenne∗moyenne
28 r e t u r n ( moyenne , math . s q r t ( v a r i a n c e /N) ∗ 1 . 9 6 , image )
29 d e f f _ J z _ p o l a i r e ( r , t h e t a , param ) :
30 R1 = param [ 0 ]
31 R2 = param [ 1 ]
32 a = param [ 2 ]
33 r2 = r ∗ r
34 i f r 2 > 1 o r r 2 < R1∗R1 :
35 return 0.0
36 i f r 2 > R2∗R2 :
37 return r2
38 i f abs ( r ∗math . c o s ( t h e t a ) ) < a :
39 return r2
40 i f abs ( r ∗math . s i n ( t h e t a ) ) < a :
41 return r2
42 return 0.0
43
44 N=10∗∗5
45 param = [ 0 . 1 , 0 . 8 , 0 . 1 5 ]
46 ( i n t e g r a l e , i n t e r v a l l e , image ) = i n t e g r a t i o n 2 d _ d i s q u e ( f _ J z _ p o l a i r e , N, param , 5 0 0 )
47 figure ()
48 imshow ( image , cmap= ’ gray ’ )
49 print (( integrale , intervalle ) )
Code Listing 3.6 – Échantillonnage préférentiel

Programme Python des méthodes (Méthode des Rectangles, Méthode des Trapèzes, Mé-
thode de Point milieu, Méthode de Simpson et Méthode de Monte-Carlo)
Dimension 1
1 # −∗− c o d i n g : u t f −8 −∗−
2 """
3 Created on Wed May 15 1 0 : 1 7 : 2 4 2019
4
5 @author : Abekhti .A
6 """
7
8 import math
9 import random
10 import sympy
11
12 def f (x) :
13 r e t u r n sympy . s q r t ( x∗∗2+sympy . exp ( 5 ∗ x ) ) ;
14 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de R e c t a n g l e s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
15 def Rectangle (a , b , n) :
16 S=0;
17 f o r i in range (n) :
18 x=a+i ∗ ( b−a ) /n ;
19 S=S+f ( x ) ;
20 S=((b−a ) /n ) ∗S ;
21 return S ;
22 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methodee de P oi nt m i l i e u x ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
23 def Milieu (a , b , n) :
24 S=0;
25 f o r i in range (n) :

44
26 x=a+i ∗ ( b−a ) /n ;
27 y=a+( i +1) ∗ ( b−a ) /n ;
28 x=(x+y ) / 2 ;
29 S=S+f ( x ) ;
30 S=((b−a ) /n ) ∗S ;
31 return S ;
32 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de T r a p e z e s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
33 d e f Trapeze ( a , b , n ) :
34 S=0;
35 f o r i in range (n) :
36 x=a+i ∗ ( b−a ) /n ;
37 y=a+( i +1) ∗ ( b−a ) /n ;
38 S=S+f ( x )+f ( y ) ;
39 S=((b−a ) / ( 2 ∗ n ) ) ∗S ;
40 return S ;
41 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de Simpson ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
42 d e f Simpson ( a , b , n ) :
43 S=0;
44 f o r i in range (n) :
45 x=a+i ∗ ( b−a ) /n ;
46 y=a+( i +1) ∗ ( b−a ) /n ;
47 z=(x+y ) / 2 ;
48 S=S+f ( x ) +4∗ f ( z )+f ( y ) ;
49 S=((b−a ) / ( 6 ∗ n ) ) ∗S ;
50 return S ;
51 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de Monte−C a r l o ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
52 d e f Montecarlo ( a , b , n ) :
53 S=0;
54 f o r i in range (n) :
55 x=random . uniform ( 0 , 1 ) ;
56 S=S+f ( x ) ;
57 S=(1/n ) ∗S ;
58 return S ;
59 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
60 d e f Exact ( a , b ) :
61 I_exact =sympy . i n t e g r a t e ( f ( x ) , ( x , a , b ) )
62 I=I_exact . e v a l f ( )
63 return I
64 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Comparaison ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
65 def Integral (a , b , n) :
66 I =Exact ( a , b ) ;
67 p r i n t ( " | Exact i n t e g r a l : " " %0.12 f " % I , " | " )
68 S =R e c t a n g l e ( a , b , n ) ;
69 p r i n t ( "−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−" ) ;
70 p r i n t ( " | R e c t a n g l e : " " %0.12 f " % S , " | e r r e u r =" " %0.12 f " % abs ( I−S ) , " | " ) ;
71 S =M i l i e u ( a , b , n ) ;
72 print (" | Milieu : " " %0.12 f " % S , " | e r r e u r =" " %0.12 f " % abs ( I−S ) , " | " ) ;
73 S =Trapeze ( a , b , n ) ;
74 p r i n t ( " | Trapeze : " " %0.7 f " % S , " | e r r e u r =" " %0.12 f " % abs ( I−S ) ) ;
75 S =Simpson ( a , b , n ) ;
76 p r i n t ( " | Simpson : " " %0.12 f " %S , " | e r r e u r =" " %0.12 f " % abs ( I−S ) , " | " ) ;
77 S =Montecarlo ( a , b , n ) ;
78 p r i n t ( " | Monte c a r l o : " " %0.12 f " % S , " | e r r e u r =" " %0.12 f " % abs ( I−S ) , " | " ) ;
79 Integral (0 ,1 ,10000)
Code Listing 3.7 – Comparaisons dimension 1

Dimension 2
1 # −∗− c o d i n g : u t f −8 −∗−
2 """
3 Created on Wed May 15 1 1 : 4 8 : 4 8 2019

45
4
5 @author : Abekhti .A
6 """
7
8 import random
9 import sympy
10 x , y=sympy . symbols ( ’ x y ’ )
11 def f (x , y) :
12 r e t u r n x∗y+y∗∗2+1
13 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de R e c t a n g l e s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
14 d e f Rectangle_double1 ( f , a , b , c , d , nx , ny ) :
15 S=0;
16 f o r i i n r a n g e ( nx ) :
17 f o r j i n r a n g e ( ny ) :
18 x1=a+i ∗ ( b−a ) /nx ;
19 x2=c+j ∗ ( d−c ) /ny ;
20 S=S+f ( x1 , x2 ) ;
21 S=((b−a ) /nx ) ∗ ( ( d−c ) /ny ) ∗S ;
22 return S ;
23 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de P oi n t m i l i e u x ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
24 d e f Milieu_double1 ( f , a , b , c , d , nx , ny ) :
25 S=0;
26 f o r i i n r a n g e ( nx ) :
27 f o r j i n r a n g e ( ny ) :
28 x1=a+i ∗ ( b−a ) /nx ;
29 y1=a+( i +1) ∗ ( b−a ) /nx ;
30 m1=(x1+y1 ) / 2 ;
31 x2=c+j ∗ ( d−c ) /ny ;
32 y2=c+( j +1) ∗ ( d−c ) /ny ;
33 m2=(x2+y2 ) / 2 ;
34 S=S+f (m1, m2) ;
35 S=((b−a ) /nx ) ∗ ( ( d−c ) /ny ) ∗S ;
36 return S
37
38 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de T r a p e z e s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
39 d e f Trapeze_double1 ( f , a , b , c , d , nx , ny ) :
40 S=0;
41 f o r i i n r a n g e ( nx ) :
42 x1=a+i ∗ ( b−a ) /nx ;
43 y1=a+( i +1) ∗ ( b−a ) /nx ;
44 f o r j i n r a n g e ( ny ) :
45 x2=a+j ∗ ( d−c ) /ny ;
46 y2=a+( j +1) ∗ ( d−c ) /ny ;
47 S=S+f ( x1 , x2 )+f ( y1 , y2 ) ;
48 S=((b−a ) / ( 2 ∗ nx ) ) ∗ ( ( d−c ) / ( 2 ∗ ny ) ) ∗S ;
49 return S ;
50
51
52 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de Simpson ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
53 d e f Simpson_double1 ( f , a , b , c , d , nx , ny ) :
54 S=0;
55 f o r i i n r a n g e ( nx ) :
56 f o r j i n r a n g e ( ny ) :
57 x1=a+i ∗ ( b−a ) /nx ;
58 y1=a+( i +1) ∗ ( b−a ) /nx ;
59 z1=(x1+y1 ) / 2 ;
60 x2=c+j ∗ ( d−c ) /ny ;
61 y2=c+( j +1) ∗ ( d−c ) /ny ;
62 z2=(x2+y2 ) / 2 ;
63 S=S+f ( x1 , x2 ) +4∗ f ( z1 , z2 )+f ( y1 , y2 ) ;

46
64 S=((b−a ) / ( 6 ∗ nx ) ) ∗ ( ( d−c ) / ( ny ) ) ∗S ;
65 return S ;
66
67 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de Monte−C a r l o ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
68 d e f Montecarlo_double1 ( f , a , b , c , d , nx ) :
69 S=0;
70 f o r i i n r a n g e ( nx ) :
71 x=random . uniform ( a , b )
72 y=random . uniform ( c , d ) ;
73 S=S+f ( x , y ) ;
74 S =((( b−a ) ∗ ( d−c ) ) / ( nx ) ) ∗S ;
75 return S ;
76 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Comparaison ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
77 d e f I n t e g r a l ( a , b , c , d , nx , ny ) :
78 I_expected =sympy . i n t e g r a t e ( f ( x , y ) , ( x , a , b ) , ( y , c , d ) )
79 p r i n t ( " | I_expected : " " %0.12 f " % I_expected ) ;
80 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
81 p r i n t ( "−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−" ) ;
82 I_computed1 =Rectangle_double1 ( f , a , b , c , d , nx , ny ) ;
83 p r i n t ( " | Rectangle_double1 : " " %0.12 f " % I_computed1 , " | e r r e u r =" " %0.12 f "
% abs ( I_expected−I_computed1 ) , " | " ) ;
84 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
85 I_computed2 =Milieu_double1 ( f , a , b , c , d , nx , ny ) ;
86 p r i n t ( " | Milieu_double1 : " " %0.12 f " % I_computed2 , " | e r r e u r =" " %0.12 f " %
abs ( I_expected−I_computed2 ) , " | " ) ;
87 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
88 I_computed3 =Trapeze_double1 ( f , a , b , c , d , nx , ny ) ;
89 p r i n t ( " | Trapeze_double1 : " " %0.12 f " % I_computed3 , " | e r r e u r =" " %0.12 f " %
abs ( I_expected−I_computed3 ) , " | " ) ;
90 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
91 I_computed4 =Simpson_double1 ( f , a , b , c , d , nx , ny ) ;
92 p r i n t ( " | Simpson_double1 : " " %0.12 f " % I_computed4 , " | e r r e u r =" " %0.12 f " %
abs ( I_expected−I_computed4 ) , " | " ) ;
93 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
94 I_computed5 =Montecarlo_double1 ( f , a , b , c , d , nx ) ;
95 p r i n t ( " | Montecarlo_double1 : " " %0.12 f " % I_computed5 , " | e r r e u r =" " %0.12 f "
% abs ( I_expected−I_computed5 ) , " | " ) ;
96 Integral (1 ,2 ,0 ,3 ,10000 ,20000)
Code Listing 3.8 – Comparaisons dimension 2

Dimension 3
1 # −∗− c o d i n g : u t f −8 −∗−
2 """
3 Created on Wed May 15 1 9 : 2 4 : 1 3 2019
4
5 @author : Abekhti .A
6 """
7
8 import random
9 import sympy
10 x , y , z=sympy . symbols ( ’ x y z ’ )
11 def g(x , y , z ) :
12 r e t u r n z ∗sympy . exp ( x∗∗2+y ∗ ∗ 2 )
13 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de R e c t a n g l e s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
14 d e f R e c t a n g l e _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) :
15 S=0;
16 f o r i i n r a n g e ( n1 ) :
17 f o r j i n r a n g e ( n2 ) :
18 f o r k i n r a n g e ( n3 ) :
19 x=a+i ∗ ( b−a ) /n1 ;

47
20 y=c+j ∗ ( d−c ) /n2 ;
21 z=e+k ∗ ( f −e ) /n3 ;
22 S=S+g ( x , y , z ) ;
23 S=((b−a ) /n1 ) ∗ ( ( d−c ) /n2 ) ∗ ( ( f −e ) /n3 ) ∗S ;
24 return S ;
25 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de T r a p e z e s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
26 d e f T r a p e z e _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) :
27 S=0;
28 f o r i i n r a n g e ( n1 ) :
29 x1=a+i ∗ ( b−a ) /n1 ;
30 y1=a+( i +1) ∗ ( b−a ) /n1 ;
31 f o r j i n r a n g e ( n2 ) :
32 x2=c+j ∗ ( d−c ) /n2 ;
33 y2=c+( j +1) ∗ ( d−c ) /n2 ;
34 f o r k i n r a n g e ( n3 ) :
35 x3=e+k ∗ ( f −e ) /n3 ;
36 y3=e+(k+1) ∗ ( f −e ) /n3 ;
37 S=S+g ( x1 , x2 , x3 )+g ( y1 , y2 , y3 ) ;
38 S=((b−a ) / ( 2 ∗ n1 ) ) ∗ ( ( d−c ) / ( n2 ) ) ∗ ( ( f −e ) / ( n3 ) ) ∗S ;
39 return S ;
40 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de Simpson ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
41 d e f S i m p s o n _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) :
42 S=0;
43 f o r i i n r a n g e ( n1 ) :
44 x1=a+i ∗ ( b−a ) /n1 ;
45 y1=a+( i +1) ∗ ( b−a ) /n1 ;
46 z1=(x1+y1 ) / 2 ;
47 f o r j i n r a n g e ( n2 ) :
48 x2=c+j ∗ ( d−c ) /n2 ;
49 y2=c+( j +1) ∗ ( d−c ) /n2 ;
50 z2=(x2+y2 ) / 2 ;
51 f o r k i n r a n g e ( n3 ) :
52 x3=e+k ∗ ( f −e ) /n3 ;
53 y3=e+(k+1) ∗ ( f −e ) /n3 ;
54 z3=(x3+y3 ) / 2 ;
55 S=S+g ( x1 , x2 , x3 ) +4∗g ( z1 , z2 , z3 )+g ( y1 , y2 , y3 ) ;
56 S=((b−a ) / ( 6 ∗ n1 ) ) ∗ ( ( d−c ) / ( n2 ) ) ∗ ( ( f −e ) / ( n3 ) ) ∗S ;
57 return S ;
58
59 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ methode de P oi nt m i l i e u x ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
60 d e f M i l i e u _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) :
61 S=0;
62 f o r i i n r a n g e ( n1 ) :
63 x1=a+i ∗ ( b−a ) /n1 ;
64 y1=a+( i +1) ∗ ( b−a ) /n1 ;
65 m1=(x1+y1 ) / 2 ;
66 f o r j i n r a n g e ( n2 ) :
67 x2=c+j ∗ ( d−c ) /n2 ;
68 y2=c+( j +1) ∗ ( d−c ) /n2 ;
69 m2=(x2+y2 ) / 2 ;
70 f o r k i n r a n g e ( n3 ) :
71 x3=e+k ∗ ( f −e ) /n3 ;
72 y3=e+(k+1) ∗ ( f −e ) /n3 ;
73 m3=(x3+y3 ) / 2 ;
74 S=S+g (m1, m2, m3) ;
75 S=((b−a ) /n1 ) ∗ ( ( d−c ) /n2 ) ∗ ( ( f −e ) /n3 ) ∗S ;
76 return S
77 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Methode de Monte−C a r l o ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
78 d e f M o n t e c a r l o _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 ) :
79 S=0;

48
80 f o r i i n r a n g e ( n1 ) :
81 x=random . uniform ( a , b )
82 y=random . uniform ( c , d ) ;
83 z=random . uniform ( e , f ) ;
84 S=S+g ( x , y , z ) ;
85 S =((( b−a ) ∗ ( d−c ) ∗ ( f −e ) ) / ( n1 ) ) ∗S ;
86 return S ;
87

88 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Comparaison ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗


89 d e f I n t e g r a l ( a , b , c , d , e , f , n1 , n2 , n3 ) :
90 I_expected =sympy . i n t e g r a t e ( g ( x , y , z ) , ( x , a , b ) , ( y , c , d ) , ( z , e , f ) )
91 p r i n t ( " | I_expected : " " %0.12 f " % I_expected ) ;
92 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
93 p r i n t ( "−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−" ) ;
94 I_computed1 =R e c t a n g l e _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) ;
95 p r i n t ( " | R e c t a n g l e _ t r i p l e 1 : " " %0.12 f " % I_computed1 , " | e r r e u r =" " %0.12 f "
% abs ( I_expected−I_computed1 ) , " | " ) ;
96 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
97 I_computed2 =M i l i e u _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) ;
98 p r i n t ( " | M i l i e u _ t r i p l e 1 : " " %0.12 f " % I_computed2 , " | e r r e u r =" " %0.12 f " %
abs ( I_expected−I_computed2 ) , " | " ) ;
99 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
100 I_computed3 =T r a p e z e _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) ;
101 p r i n t ( " | T r a p e z e _ t r i p l e 1 : " " %0.12 f " % I_computed3 , " | e r r e u r =" " %0.12 f " %
abs ( I_expected−I_computed3 ) , " | " ) ;
102 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
103 I_computed4 =S i m p s o n _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 , n2 , n3 ) ;
104 p r i n t ( " | S i m p s o n _ t r i p l e 1 : " " %0.12 f " % I_computed4 , " | e r r e u r =" " %0.12 f " %
abs ( I_expected−I_computed4 ) , " | " ) ;
105 #∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
106 I_computed5 =M o n t e c a r l o _ t r i p l e 1 ( g , a , b , c , d , e , f , n1 ) ;
107 p r i n t ( " | M o n t e c a r l o _ t r i p l e 1 : " " %0.12 f " % I_computed5 , " | e r r e u r =" " %0.12 f "
% abs ( I_expected−I_computed5 ) , " | " ) ;
108 Integral (0 ,1 ,0 ,1 ,0 ,1 ,5 ,3 ,1)
Code Listing 3.9 – Comparaisons dimension 3

49
Résumé
Dans le calcul d'intégration, certaines fonctions son intégration est difficile à calculer.
Pour trouver une valeur approximative pour cette intégration, nous recourons à des méthodes
numériques approximatives telles que la méthode de Rectangles, la méthode de Point Milieu,
la méthode de Trapèzes et la méthode de Simpson, mais ces méthodes sont très lentes dans
les grandes dimensions.
Pour résoudre ce problème, nous utilisons une autre méthode qui nous permettons de
trouver une valeur approximative précise dans les grandes dimensions et converge
rapidement cette méthode est intitulée la méthode de Monte-Carlo.

Mots clés: approximative, méthode de Rectangles, méthode de Point Milieu, méthode de


Trapèzes, méthode de Simpson, converge, grandes dimensions, méthode de Monte-Carlo.

Abstract
In the integration calculation, some functions its integration is difficult to calculate. To
find an approximate value for this integration, we use approximate numerical methods such
as the Rectangle method, the Middle Point method, the trapezoidal method and the Simpson
method, but these methods are very slow in large dimensions.
To solve this problem, we use another method that allows us to find a precise approximate
value in large dimensions and quickly converge this method is the Monte Carlo method.

Key words: approximate, Rectangles method, Middle Point method, trapezoidal method,
Simpson method, converge, large scale, Monte Carlo method.

Vous aimerez peut-être aussi