3 votos

Integración de Monte Carlo en coordenadas esféricas

Estaba jugando a escribir un código para la integración de Montecarlo de una función definida en coordenadas esféricas. Como primera prueba rápida y sencilla decidí escribir un código de prueba para obtener el ángulo sólido bajo un ángulo $\theta_m$ . Para dos números aleatorios $u$ y $v$ en $[0,1)$ . Genero un muestreo aleatorio homogéneo del ángulo esférico utilizando

$$\phi=2\pi u$$

$$\theta = \arccos(1-2v)$$

Para $N$ puntos generados, tengo $M$ puntos para los que $\theta < \theta_m$ . Mi primera idea fue que al tener un muestreo homogéneo debería haber obtenido el ángulo sólido correcto $\Omega=2 \pi (1-\cos (\theta_m))$ simplemente como $4\pi\times M/N$ . En realidad parece que el resultado correcto sale sólo si uso:

$$\Omega=\sum_{i=1}^M \frac{4\pi}{N} 2 \cos(\theta_i)$$

No veo la razón por la que esto debería ser correcto. La función de distribución de la probabilidad en $\theta$ es $PDF=1/2 \sin(\theta)$ por lo que más bien esperaría que debería normalizar cada punto de la suma por esta función pero esto no funciona. ¿Qué estoy haciendo mal y cómo podría justificar el coseno? Muchas gracias.

5voto

sabre23t Puntos 199

Sus cálculos son correctos y debería obtener la estimación correcta de Monte Carlo a partir de su fórmula $4\pi M/N$ con el mapeo $(u,v)\to(\phi,\theta)$ que has presentado. Así que supongo que es un error en tu código y no en tu razonamiento. No debería necesitar el factor de ponderación del coseno. Quizás si muestras tu código podamos detectar el error.

También, en una nota relacionada, hay un artículo muy bueno de James Arvo llamado Muestreo estratificado de 2 manifolds que explica cómo construir un mapeo que preserva el área desde el cuadrado unitario a un 2manifold en general, pero también específicamente para una (hemi)esfera.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X