1 votos

Seno/Coseno del ángulo aleatorio de $0$ à $2\pi$

Un extracto de http://pdg.lbl.gov/2012/reviews/rpp2012-rev-monte-carlo-techniques.pdf (sección 37.4.3) afirma que la obtención del seno/coseno de un ángulo aleatorio en 2D sin el uso explícito de $\pi$ es la siguiente:

Generar (uniformemente) un $u$ y $v$ où $u$ está en $(-1, 1)$ y $v$ está en $(0, 1)$ . Si $r^2 = u^2 + v^2 > 1$ y luego repite este proceso. De lo contrario, el seno ( $S$ ) y el coseno ( $C$ ) viene dada por:

$S = 2uv / r^2$ y $C = (u^2 - v^2) / r^2$

¿Puede alguien explicar las matemáticas que hay detrás de esto? Estaba pensando que era algo relacionado con la generación de un punto en el círculo unitario y luego tomar las relaciones seno/coseno, pero parece que no puedo hacer directamente la correlación.

1voto

Micah Puntos 18257
  1. Generar uniformemente un $u$ y $v$ où $u$ está en $(-1,1)$ y $v$ está en $(0, 1)$ .

Esto nos da un punto aleatorio $(u,v)$ en un $2 \times 1$ rectángulo.

  1. Si $r^2=u^2+v^2 > 1$ y luego repite el proceso.

Esto da un punto aleatorio $(u,v)$ en el semidisco cerrado (es decir, el semicírculo más su interior) inscrito en ese rectángulo. Es decir, nuestro punto es de la forma $(r \cos \theta,r\sin \theta)$ où $\theta$ se distribuye uniformemente en $[0, \pi]$ .

  1. En caso contrario, el seno ( $S$ ) y el coseno ( $C$ ) vienen dadas por $S=2uv/r^2$ y $C=(u^2-v^2)/r^2$ .

Aquí estamos aplicando una fórmula de doble ángulo para que nuestro ángulo sea uniforme sobre $[0, 2\pi]$ en lugar de $[0,\pi]$ :

$$S=\frac{2uv}{r^2}=\frac{2(r \cos \theta)(r\sin \theta)}{r^2}=2\cos\theta\sin \theta=\sin(2\theta)\\ C=\frac{u^2-v^2}{r^2}=\frac{r^2\cos^2\theta - r^2\sin^2 \theta}{r^2}=\cos^2\theta-\sin^2 \theta=\cos(2\theta) $$

La ventaja de este algoritmo sobre el más obvio (en el que se muestrea sobre todo el disco en lugar de utilizar una fórmula de doble ángulo) es que sólo requiere aritmética racional; $r=\sqrt{u^2+v^2}$ no es una función racional de $u$ y $v$ pero $r^2$ es.

0voto

FeiBao 飞豹 Puntos 279

El proceso que estás utilizando está generando un punto en el disco de la unidad, no en el círculo de la unidad. Además, al dividir por $r^2$ se normaliza adecuadamente.

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