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.