Convert Ellipsoid from Cov and Mean to Quadric Representation

algebraic-geometryanalytic geometryellipsoidslinear algebraquadrics

Question

I have an ellipsoid represented as a Covariance $\Sigma \in \mathbb{R}^{3\times3}$ and a mean centroid $\mu\in \mathbb{R}^{3}$. I want to represent it as a homogenous quadric, which is a $4\times4$ symmetric matrix. A quadric fulfills the property $\hat{x}^{\top}Q\hat{x}=0$ for all points $\hat{x} = [x^\top;1]^{\top}$ on the surface of the ellipsoid.

Background

This post describes how to convert a Covariance to quadric form but assumes $\mu=0$. I tried setting $b=\mu, c=-1$, but that does not work.

I specifically need it in this form, as I want to project in onto a conic like so $C^{*}=PQ^{*}P^\top$ in the next step.

Does anyone know how to adapt the quadric if the Ellipsoid is not zero-centered?

Update

I tried to derive the Quadric parametrization from a given $(\Sigma, \mu)$.

We can define the $\sigma$-surface of this ellipsoid:

$$(x-\mu)^\top\Sigma^{-1}(x-\mu)-\sigma=0$$

It can also be described with the general quadric equation:

$$x^{\top}Ax+2b^{\top}x+c=0$$

By multiplying out the first equation and comparing the constant, linear and quadratic terms, the following correspondances between the parameters can be established:

$$A=\Sigma^{-1}, b=-A\mu ,\; c=\mu^⊤\mu-\sigma$$

The general quadric equation can be expressed more compact with homogenous formulation:

$$Q = \begin{bmatrix}A & b \\ b^⊤ & c\end{bmatrix}, $$
$$ \hat{x}^{\top}Q\hat{x}=0, \hat{x}=[x^{\top},1]^{\top}$$

Remaining Problem (Example)

For an axis-aligned, non zero-centered Ellipsoid parametrized by

$$\Sigma=\begin{bmatrix}2 & 0 & 0\\ 0 & 1 & 0 \\ 0 & 0 & 1\end{bmatrix}, \mu=[1, 1, 1]^\top$$

the resulting quadric looks like this

$$Q=\begin{bmatrix}
0.5 & 0 & 0 & -0.5\\
0 & 1 & 0 & -1 \\
0 & 0 & 1 & -1\\
-0.5 & -1 & -1 & 2
\end{bmatrix}$$
.

The problem is, that the equation $\hat{x}^{\top}Q\hat{x}=0$ is not fulfilled anymore:

$$\hat{x} = [3, 1, 1, 1]\rightarrow \hat{x}^{\top}Q\hat{x}= 1.5$$
$$\hat{x} = [1, 2, 1, 1]\rightarrow \hat{x}^{\top}Q\hat{x}= 0.5$$
$$\hat{x} = [1, 1, 2, 1]\rightarrow \hat{x}^{\top}Q\hat{x}= 0.5$$

Am I missing something? This Colab Notebook shows the code I used to test this all. Feel free to leave a comment.

Best Answer

Ah! you are all perfectly correct till the last few equations. One of the three probe points is wrong, it's not on the ellipsoid, so it got a different value.

The correct coordinate for the first point shall be $$ \hat{x} = [1+\sqrt 2, 1, 1, 1]\rightarrow \hat{x}^{\top}Q\hat{x}= 0.5 $$

Key is to notice, $\Sigma$ is the covariance, not standard deviation, the extant of the axis shall be sqrt ed.


In your code, this line is wrong

ellipsoid_m1 = (Sigma @ unit_sphere_ijk) + mu[:, np.newaxis]

Recall that to generate a Gaussian random variable of covariance $\Sigma$, you should not use $\Sigma$ to transform standard Gaussian. Instead you need to use its Cholesky factor to transform the standard normal variable. $$ \Sigma=AA^T\\ z\sim N(0,I)\\ Az\sim N(0,AA^T) $$


Really nice that you provide that well made colab notebook! it makes verifying your work super easy.