31 votos

¿Cómo generar puntos distribuidos uniformemente en la superficie de un elipsoide?

Estoy tratando de encontrar una manera de generar puntos aleatorios distribuidos uniformemente en la superficie de un elipsoide.

Si se tratara de una esfera hay una forma muy clara de hacerlo: Generar tres $N(0,1)$ variables $\{x_1,x_2,x_3\}$ calcula la distancia al origen

$$d=\sqrt{x_1^2+x_2^2+x_3^2}$$

y calcular el punto

$$\mathbf{y}=(x_1,x_2,x_3)/d.$$

Puede demostrarse entonces que los puntos $\mathbf{y}$ se encuentran en la superficie de la esfera y se distribuyen uniformemente en la superficie de la esfera, y el argumento que lo demuestra es una sola palabra, "isotropía". No hay dirección preferida.

Supongamos ahora que tenemos un elipsoide

$$\frac{x_1^2}{a^2}+\frac{x_2^2}{b^2}+\frac{x_3^2}{c^2}=1$$

¿Qué le parece generar tres $N(0,1)$ como en el caso anterior, calcule

$$d=\sqrt{\frac{x_1^2}{a^2}+\frac{x_2^2}{b^2}+\frac{x_3^2}{c^2}}$$

y utilizando $\mathbf{y}=(x_1,x_2,x_3)/d$ como arriba. Así obtendremos puntos garantizados en la superficie del elipsoide, pero ¿estarán uniformemente distribuidos? ¿Cómo podemos comprobarlo?

Cualquier ayuda es muy apreciada, gracias.

PD Estoy buscando una solución sin aceptar/rechazar puntos, que es algo trivial.

EDITAR:

Pasando a coordenadas polares, el elemento de superficie es $dS=F(\theta,\phi)\ d\theta\ d\phi$ donde $F$ se expresa como $$\frac{1}{4} \sqrt{r^2 \left(16 \sin ^2(\theta ) \left(a^2 \sin ^2(\phi )+b^2 \cos ^2(\phi )+c^2\right)+16 \cos ^2(\theta ) \left(a^2 \cos ^2(\phi )+b^2 \sin ^2(\phi )\right)-r^2 \left(a^2-b^2\right)^2 \sin ^2(2 \theta ) \sin ^2(2 \phi )\right)}$$

0 votos

Puede que tenga una idea equivocada... podrías generar un conjunto de puntos uniformemente en la esfera $\mathbb{S}^{2} \subset \mathbb{R}^{3}$ . Sea $\left\{ c_{1},\ldots,c_{N} \right\}$ sea este conjunto de puntos. Entonces el mapeo $\displaystyle \begin{bmatrix} x \\ y \\ z \end{bmatrix} \, \longmapsto \, \begin{bmatrix} ax \\ by \\ cz \end{bmatrix}$ asigna un punto $c_{i}$ de la esfera a un punto del elipsoide.

1 votos

@jibounet Tu solución transformaría una distribución uniforme sobre el volumen de la bola en una distribución uniforme sobre el volumen del elipsoide, sin embargo sobre superficies fallará. Consideremos un elipsoide muy, muy largo en forma de cigarro ( $a\gg b = c = 1$ ) - la densidad en la punta del puro ( $x\approx \pm a$ ) será próxima a la de la esfera unitaria, pero la densidad en $x\approx 0$ disminuirá a medida que $1/a$ relativa a la de la esfera.

0 votos

Hm... la esfera puede parametrizarse como $\mathbf{F}(u,v),$ coordenadas polares o lo que sea y el elemento de superficie puede calcularse utilizando la primera forma fundamental como $dS^2=H(u,v)\ du\ dv$ . ¿Cómo se transformaría bajo tu transformación diagonal? Si es algo más simple, ¡nos estamos acercando!

0voto

Stéphane Laurent Puntos 589
  • Simular algunos puntos de la esfera (con dimensión arbitraria) $x_1$ , $x_2$ , $...$

  • Tomemos el factor de Cholesky superior $U$ de la matriz de forma $A$ del elipsoide ( $x'Ax = r^2$ )

  • Entonces la solución $Y$ de $UY = (x_1 \, x_2 \, ...)$ es una matriz de puntos uniformemente aleatorios en la superficie del elipsoide.

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