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$ .