1 votos

¿Cómo determinar el eje de un paraboloide elíptico?

Tengo una nube de puntos muestreada de la superficie de un paraboloide elíptico, cuyo eje no son los ejes de coordenadas x, y, y z. Quiero determinar la ecuación del eje.

Método 1: Utilicé la ecuación: $a x^{2}+b x y+c y^{2}+d x+e y+f=z$ y determinó los coeficientes utilizando scipy. Sin embargo, no sé cómo determinar la ecuación del eje de la misma.

Método2: Quería encontrar la ecuación general de un paraboloide elíptico con eje aleatorio. Después de mucho buscar, no conseguí encontrar dicha ecuación.

¿Cómo puedo determinar el eje de un paraboloide elíptico con eje aleatorio?

2voto

GeometryLover Puntos 411

La ecuación del paraboloide elíptico básico con vértice en el origen y abertura en la dirección del positivo $z$ mientras que su eje $z$ -las secciones transversales son elipses con ejes mayor/menor a lo largo del $x, y$ ejes de coordenadas viene dado por

$ z = a x^2 + b y^2 $

Esta ecuación paraboloide puede escribirse de forma compacta como

$ r^T Q_0 r + b_0^T r = 0 $

donde $r = [x, y, z]^T $ es el vector de coordenadas de posición de un punto del paraboloide elíptico. Y

$ Q_0 = \begin{bmatrix} a && 0 && 0 \\ 0 && b && 0 \\ 0 && 0 && 0 \end{bmatrix} $

y

$ b_0 = \begin{bmatrix} 0 \\ 0 \\ -1 \end{bmatrix} $

Ahora si desplazas el vértice del paraboloide a una nueva ubicación $r_0$ imagen de $r$ es $r'$ con

$r' = r_0 + r $

y luego se aplica una rotación alrededor del punto $r_0$ cuya matriz de rotación es $R$ entonces la imagen de un punto $r'$ debido a la rotación, es

$ r'' = r_0 + R (r' - r_0 ) = r_0 + R r $

Por lo tanto, para obtener la ecuación del paraboloide desplazado/rotado, resolvemos para $r$ de la última ecuación:

$ r = R^T (r'' - r_0) $

Y lo introducimos en la ecuación del paraboloide original, para obtener

$ (r'' - r_0)^T R Q_0 R^T (r'' - r_0) + b_0^T R^T (r'' - r_0) = 0 $

Ahora, podemos eliminar los primos, y sustituir el nombre de la variable $r''$ con simple $r$ :

$ (r - r_0)^T R Q_0 R^T (r - r_0) + b_0^T R^T (r - r_0) = 0 $

Escrita de forma compacta, la última ecuación se convierte en

$ (r - r_0)^T Q (r - r_0) + b^T (r - r_0) = 0 \hspace{20pt} (*) $

donde $ Q = R Q_0 R^T $ y $ b = R b_0 $

Ecuación expansiva $(*)$ en términos de $x, y, z$ produce

$ A x^2 + B y^2 + C z^2 + D xy + E xz + F yz \\ + G x + H y + I z + J = 0 \hspace{20pt} (**)$

Ahora, dada la nube de puntos, como sugiere @Narasimham, puedes utilizar el método de los mínimos cuadrados para identificar la ecuación cuadrática $(**)$ . Suponga que tiene $N$ puntos donde $N \ge 9$ definiremos

$ \theta = [ A, B, C, D, E, F, G, H, I, J]^T $

como vector de parámetros, y la matriz $\Phi$ cuyo $i$ -ésima fila es

$[ x_i^2 , y_i^2 , z_i^2, x_i y_i, x_i z_i, y_i, z_i , x_i, y_i, z_i, 1 ] $

La ecuación para todos los datos es

$ \Phi \theta = \epsilon $

Puesto que queremos el mínimo de $\epsilon^T \epsilon$ entonces $\theta$ será el vector propio de $ \Phi^T \Phi$ correspondiente al valor propio mínimo.

Esa es una forma de hacerlo, la otra forma que se me ocurre es pre-multiplicar la ecuación anterior por $\Phi^T$ para obtener

$ \Phi^T \Phi \theta = \Phi^T \epsilon $

Suponiendo que $\epsilon = 0 $ y truncando la matriz $\Phi^T \Phi $ (que es $10 \times 10 $ a la primera $9$ filas, una dirección para $\theta$ mediante el procedimiento estándar de eliminación de Gauss-Jordan.

Una vez hecho esto, ahora tenemos la matriz $Q$ hasta un múltiplo escalar, por lo que podemos diagonalizarlo, en

$ Q = R^T D R $

donde $D_{33} = 0 $ entonces el eje del paraboloide será la tercera columna de $R$ .

En realidad, podemos identificar todas las características del paraboloide a partir del vector de parámetros $\theta$ . Sea

$Q_1 = \begin{bmatrix} A && \dfrac{D}{2} && \dfrac{E}{2} \\ \dfrac{D}{2} && B && \dfrac{F}{2} \\ \dfrac{ E}{2 } && \dfrac{F}{2} && C \end{bmatrix} $

$b_1 = \begin{bmatrix} G \\ H \\ I \end{bmatrix} $

$c_1 = J $

La ecuación obtenida a partir de estas tres matrices tras escalar por un escalar $t$ son

$ t r^T Q_1 r + t r^T b_1 + t c_1 = 0 \hspace{25pt} (1) $

Identificaremos $Q_0, r_0$ partiendo de la ecuación $(*)$ se repite a continuación

$ (r - r_0)^T Q (r - r_0) + b^T (r - r_0) = 0 \hspace{20pt} (*) $

que al expandirse da

$ r^T Q r + r^T (- 2 Q r_0 + b ) + (r_0^T Q r_0 - b^T r_0) = 0 \hspace{25pt} (2) $

Entonces, tenemos directamente

$ Q = t Q_1 $

sin embargo $t$ aún se desconoce. Desde $Q$ es un múltiplo escalar de $Q_1$ que es conocida, entonces diagonalizando $Q_1$ obtenemos

$Q_1 = R D R^T $

Y por lo tanto

$ Q = R Q_0 R^T = R (t D) R^T $

es decir, Q_0 = t D

Pasando al término lineal, tenemos

$- 2 Q r_0 + b = t b_1 $

al sustituir $Q = t R D R^T $ y $ b = R b_0 $ esto se convierte en

$ - 2 t R D R^T r_0 + R b_0 = t b_1 \hspace{25pt} (3)$

Pre-multiplicar por $R^T$

$ - 2 t D R^T r_0 + b_0 = t R^T b_1 \hspace{25pt} (4)$

Observando la tercera fila de esta ecuación vectorial, y puesto que la tercera fila de $D$ es cero (porque $D_{33} = 0 $ ), entonces la tercera fila dice

$ -1 = t \bigg[ R^T b_1 \bigg]_z $

Y esto nos da el valor de $t$ y esto significa que ahora tenemos el valor de la matriz $Q = t Q_1$ y $ b = R b_0 $

Utilizando las dos filas superiores de la ecuación $(4)$ da

$ -2 D' R^t r_0 = R^T b_1 $

donde

$ D' = \begin{bmatrix} D_{11} && 0 && 0 \\ 0 && D_{22} && 0 \end{bmatrix} $

Sea el vector $u = R^T r_0$ y vector $v = R^T b_1$ entonces

$ - 2D' u = v $

tiene infinitas soluciones, $u = [ -\dfrac{1}{2 D_{11}} v_1 , - \dfrac{1}{2 D_{22}} v_2 , s ]^T $

donde $s$ está por determinar.

Esto significa que

$ r_0 = R u = V_0 + s V_1 $

donde $V_1$ está a lo largo del eje del paraboloide que es el tercer vector columna de $R$ .

Pasemos a la tercera condición,

$ (r_0^T Q r_0 - b^T r_0) = t c_1 \hspace{25pt} (5)$

$ b^T r_0 = (R b_0)^T = b_0^T R^T r_0 = b_0^T u = - s$

$ r_0^T Q r_0 = u^T D u $ que debido a la estructura de $D$ no es función de $s$ . Por lo tanto, tenemos una única solución de $(5)$ .

Así, hemos identificado todos los parámetros del paraboloide elíptico, que son la matriz $Q_0$ el vértice $r_0$ y la matriz de rotación $R$ .

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