# Solve the matrix equation : $A = X (X B)^T$

I have troubles to find a solution of the following matrix equation:

$$A = X (X B)^T$$

where only $X$ is unknown. If there is no a way to solve it analytically how can I solve it numerically? Is this a well known problem?

• It is related to algebraic Riccati Equations. Commented Apr 4, 2013 at 12:58
• Is X symmetric? Commented Apr 4, 2013 at 13:06
• No, but the density of $X$ is close to the principal diagonal. For every vertical slice of $X$ the profile is similar to a gaussian with a small asymmetry and bias. Commented Apr 4, 2013 at 13:19
• @dineshdileep: in which way it is related to Riccati equation? Commented Apr 4, 2013 at 16:10
• if X was a symmetric matrix, it is a special case of algebraic riccati equation. Look at this article en.wikipedia.org/wiki/Algebraic_Riccati_equation Commented Apr 4, 2013 at 16:43

The equation $$A = X (X B)^T$$ is equivalent to $$A = X B^T X^T$$ This is called a congruence transform where the matrix $B^T$ is transformed to $A$. It may not have a solution. See for details Wikipedia: Congruence Transform and Wikipedia: Sylvester's Law of Inertia

Relatively speaking, it is an easy equation to solve, if it does indeed have a solution. A necessary condition for the existence of a solution is that $A$ and $B^T$ have the same inertia. Inertia is a concept similar to eigenvalues but dealing with quadratics. A quick intuitive explanation about inertia--when the quadtratic equation is transformed by means of a change of basis into elliptic form (only squares in the variables with no cross terms) then inertia is the respective number of positive coefficients, negative coeeficients, and zero coefficients.

My thinking for this equation is that you could reduce both matrices separately to find their inertia and see if they match, then try to solve the equation. But I think that if there is a solution that that would be some wasted effort. However, doing otherwise would require some sophistication with congruence transformations. Learning the method of diagonalizing by use of congruence transform would be the first step in dealing with equations like this. So I would suggest you start there and find the inertia of $A$, then again with $B^T$. After doing that you will be in a better position to solve it.

@adam, your argument works only if $A,B$ are symmetric, else their eigenvalues are not necessarily real (recall that the Sylvester's law gives the number of $>0$,$<0$,$=0$ eigenvalues); moreover $A,B$ must be both invertible or both non-invertible. In fact, even solving the matrix equation $XX^T=A$ is not obvious ! I'll edit my answer when I'll find some reference about this subject.

EDIT 1: in fact solving $XX^T=A$ is not difficult because, necessarily, $A$ must be sym. $\geq0$.

EDIT 2: We seek only the invertible solutions. A necessary condition of the existence of $X$ is: $A+A^T$ and $B+B^T$ have same signature as symmetric matrices. Unfortunately, this condition is not sufficient.

Proof: $A=XB^TX^T$ implies $A^T=XBX^T$ and $A+A^T=X(B+B^T)X^T$. By the Sylvester's law, $A+A^T$ and $B+B^T$ have same signature. Now take $B^T=\begin{pmatrix}87&-98\\33&-77\end{pmatrix}$ and $A=\begin{pmatrix}45&-38\\-81&-18\end{pmatrix}$. Then $A+A^T$ and $B+B^T$ have same signature $(1+,1-)$ but the equation $A=XB^TX^T$ has no solutions !

EDIT 3: As user1551 wrote (I saw his post after my edit !), the following is a good reference !