Académique Documents
Professionnel Documents
Culture Documents
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
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.
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.
A˜bfle‚k˛h˚tˇiffl `a‹m`a˜l.
Table des matières
Introduction 1
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
iii
Liste des tableaux
iv
Liste des symboles
v
Introduction Générale
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
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
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 :
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
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].
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.
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.
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
où
(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
et l’erreur d’interpolation
Z b n
Y
Rn (f ) = f [x0 , ..., xn , x] (x − xi )dx
a i=0
8
1.3.1 Méthodes d’ordres plus bas
L’interpolation linéaire quadrature du rectangle et du point milieu
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 )
Démonstration.
Cette méthode utilise le polynôme de degré le plus bas, à savoir le polynôme constant :
9
Corollaire 1 (Méthode du Rectangles)
- 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
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
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 :
(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
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
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
(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 :
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.
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
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)
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.
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.
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 Trapèzes :
n
b−aX
In (f ) = f (xk−1 ) + f (xk )
2n k=1
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
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
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
21
L’estimation (2.2) de l’intégrale devient alors
n
b−aX
In (h) = h(xi )
n i=1
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 :
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
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
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.
Démonstration.
Pour la démonstration voire [15]
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 :
Alors la suite
√ √ n
! n
n n 1X 1 X
εn = Xj − E(X) = √ (Xj − E(X))
σ σ n j=1 σ n j=1
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
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].
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.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
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.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
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
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
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
[I − e, I + e] = [4.164144088920271, 4.3206559110797285]
En dimension 5 on obtient
volume σ2 e
5.1392 138.04302336 0.2302837550805041
[I − e, I + e] = [4.908916244919496, 5.369483755080504]
volume σ2 e
5.285511111111111 141.19972784987655 0.024550014132335506
[I − e, I + e] = [5.260961096978775, 5.310061125243447]
volume σ2 e
2.12064 63.3633659904 0.049337278683437805
31
avec un intervalle de confiance à 95% :
[I − e, I + e] = [2.0713027213165622, 2.1699772786834375]
volume σ2 e
4.713984 581.168306847744 0.014941941532432435
[I − e, I + e] = [4.699042058467567, 4.728925941532433]
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 :
I e
1.127363547054364 0.009026401041990512
[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.
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
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 :
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 :
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 :
σ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
[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.
[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.
[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.
[9] Ledra, M., Rima, B., and Fatiha, F. (2016). La méthode Monté Carlo et ses applications.
[14] Richard, L. and Burden, J. (2001). Douglas faires. numerical analysis . thomson lear-
ning.
[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 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
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.
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.