Possible boucle infinie sur l'équation mathématique?
-
09-09-2019 - |
Question
J'ai le problème suivant, et ai du mal à comprendre une partie de l'équation:
méthodes de Monte Carlo pour estimer une intégrale est fondamentalement, prennent beaucoup d'échantillons aléatoires et ont déterminé une moyenne pondérée. Par exemple, l'intégrale de f (x) peut être estimé à partir de N échantillons aléatoires indépendantes x r de
texte alt http://www.goftam.com/images/area.gif
pour une distribution de probabilité uniforme dans la plage de xr [x1, x2]. Étant donné que chaque évaluation de la fonction f (xr) est indépendant, il est facile de distribuer ce travail sur un ensemble de processus.
Ce que je ne comprends pas ce que f (x r ) est censé faire? Est-il nourrir de nouveau dans la même équation? Ce ne serait pas une boucle infinie?
La solution
Votre but est de calculer l'intégrale de f
de x1
à x2
. Par exemple, vous pouvez calculer l'intégrale de sin(x)
de 0
à pi
.
Grâce à l'intégration Monte Carlo, vous pouvez approcher ce par échantillonnage des points aléatoires dans l'intervalle [x1,x2]
et l'évaluation f
à ces points. Peut-être que vous souhaitez appeler cette MonteCarloIntegrate( f, x1, x2 )
.
Donc non, MonteCarloIntegrate
n'a pas "feed-back" en lui-même. Il appelle une f
fonction, la fonction que vous essayez d'intégrer numériquement, par exemple sin
.
Autres conseils
Il faut dire f (x i )
f () est la fonction nous cherchons à intégrer par la méthode de Monte carlo numérique, qui estime une intégrale (et son erreur) en évaluant les points aléatoirement choisi à partir de la région d'intégration.
Ref .
Remplacer f(x_r)
par f(x_r_i)
(lire: F évalué à x
sous r
sous i
). Le r_i
sont choisis uniformément au hasard dans l'intervalle [x_1, x_2]
.
Le point est la suivante: la zone sous f
sur [x_1, x_2]
est égal à (x_2 - x_1)
fois la moyenne de f
sur le [x_1, x_2]
intervalle. C'est
A = (x_2 - x_1) * [(1 / (x_2 - x_1)) * int_{x_1}^{x_2} f(x)\, dx]
La partie entre crochets est la moyenne des f
sur [x_1, x_2]
que nous noterons avg(f)
. Comment peut-on estimer la moyenne des f
? En ce échantillonnage à des points aléatoires N
et en prenant la valeur moyenne de f
évaluée à ces points aléatoires. À savoir:
avg(f) ~ (1 / N) * sum_{i=1}^{N} f(x_r_i)
où x_r_1, x_r_2, ..., x_r_N
sont des points choisis uniformément au hasard à partir de [x 1, x 2].
Ensuite
A = (x_2 - x_1) * avg(f) ~ (x_2 - x_1) * (1 / N) * sum_{i=1}^{N} f(x_r_i).
Voici une autre façon de penser à cette équation: la zone sous f
sur l'intervalle [x_1, x_2]
est la même que la surface d'un rectangle avec (x_2 - x_1)
de longueur et la hauteur égale à la hauteur moyenne de f
. La hauteur moyenne est d'environ f
(1 / N) * sum_{i=1}^{N} f(x_r_i)
qui est la valeur que nous avons produit précédemment.
Que ce soit x i ou x r est sans importance. - il est le nombre aléatoire que nous l'alimentation en fonction f ()
Je suis plus susceptible d'écrire la fonction (en dehors de formatage) comme suit:
(x 2 -x 1 ) * somme (f (x i )) / N
De cette façon, nous pouvons voir que nous prenons la moyenne des échantillons N de f (x) pour obtenir une hauteur moyenne de la fonction, puis en multipliant par la largeur (x2-x1).
Parce que, après tout, l'intégration est juste zone calculait sous la courbe. (Nice photos à http: //hyperphysics.phy-astr.gsu. edu / Hbase / integ.html # c4 .
x_r est une valeur aléatoire à partir de la gamme de l'intégrale.
Substituer aléatoire (x 1, x 2) pour x_r donnerait une équation équivalente.