# I Can this matrix equation be solved?

1. May 30, 2017

### vibe3

Hello, if I have some given vector $c \in R^n$, then I want to find solutions $X \in R^{n\times n}$ to the following equation:
$$X C X^T = C$$
where $C = c c^T$. Certainly $X = I$ is a solution, but I'm looking for any nontrivial solutions. We can also assume $X$ is invertible if that helps.

This equation seems related to the Sylvester equation. If the solution is nontrivial, I would appreciate if someone could point me in the direction of any work which has been done on this type of equation.

2. May 30, 2017

### Staff: Mentor

Assume you have chosen a basis such that $c=(1,0,\ldots,0)^T$. How many solutions do you get?

3. May 30, 2017

### WWGD

Isn't C then a scalar? But then $CXX^{T}$ is a matrix and C is a scalar. Am I missing something?

4. May 30, 2017

### Staff: Mentor

Depends on how you write vectors, as a column or as a row: one gives a scalar and the other a rank one matrix. Either case has many solutions.

5. May 30, 2017

### WWGD

But how can an $n \times n$ matrix equal a $1 \times 1$ unless n=1? EDIT: Do you mean we extend the scalar C into a matrix (C,0,0,..,0)?

6. May 30, 2017

### Staff: Mentor

You mean if $C$ is a scalar? Then $XCX^T=C=CI$ by the usual identification of the two ones in algebras with unit. Otherwise $\begin{bmatrix}c_1\\ \vdots \\c_n\end{bmatrix} \cdot \begin{bmatrix}c_1 & \ldots & c_n \end{bmatrix}$ is a $n \times n$ matrix of rank $1$.

7. May 30, 2017

### WWGD

I mean, which case do you assume then, that C is $n \times n$ or a "scalar matrix"?

8. May 31, 2017

### vibe3

C is an n-by-n matrix of rank 1

9. May 31, 2017

### WWGD

Thanks, kind of reminds me of least-square problems, solved by ortho projections.

10. May 31, 2017

### StoneTemplePython

It's not clear to me what kind of "solution" OP is looking for since this problem is very much underdetermined. There are some interesting underlying relations here between singular vectors of $\mathbf X$ and the structure of $\mathbf C$, but that's about all I can add.

note: if $\mathbf c = \mathbf 0$, any $\mathbf X$ is allowed.
- - - -
Now assume $\mathbf c \neq \mathbf 0$. Thus $\mathbf C = \mathbf{cc}^T$ is a rank one matrix.

We can do singular value decomposition on $\mathbf X$ such that $\mathbf X = \mathbf{U \Sigma V}^T$

For $\mathbf{X C X}^T = \mathbf{X c} \mathbf c^T \mathbf X^T= \mathbf{cc}^T$, we know that $\mathbf c$ is given by one (or more) of the right singular vectors of $\mathbf X$ that has a singular value of 1 $^{**}$. Why? Using the trace operation we see

$trace\big(\mathbf{cc}^T\big) = \mathbf c ^T \mathbf c = trace\big(\mathbf{X c} \mathbf c^T \mathbf X^T\big)$

$\mathbf c ^T \mathbf c = trace\big(\mathbf{X c} \mathbf c^T \mathbf X^T\big) = trace\big(\mathbf c^T \mathbf X^T \mathbf{Xc}\big) = \mathbf c^T \mathbf X^T \mathbf{Xc} = \mathbf c^T \mathbf V \mathbf \Sigma^T \mathbf U^T \mathbf {U \Sigma V}^T \mathbf c = \mathbf c^T \mathbf V \mathbf{\Sigma}^2 \mathbf{V}^T \mathbf c = \mathbf y^T \mathbf{\Sigma}^2 \mathbf{y} = \mathbf y^T \mathbf y$

where $\mathbf{V}^T \mathbf c := \mathbf y$, and of course $\big \Vert \mathbf c \big \Vert_2^2 = \big \Vert \mathbf{V}^T \mathbf c \big \Vert_2^2 = \big \Vert \mathbf y \big \Vert_2^2$

- - - - - - - -
$^{**}$ to be more accurate: it is possible that that the squared singular values that non-zero elements of $\mathbf y$ gets scaled by are not one-- the exact constraint we need to observe is

$\mathbf y^T \mathbf{\Sigma}^2 \mathbf{y} = \sigma_1 ^2 y_1^2 + \sigma_2^2 y_2^2 +.... + \sigma_n ^2 y_n^2 = y_1^2 + y_2^2 +.... + y_n^2 =\mathbf y^T \mathbf y$
- - - - - - - -

There's also a lot of flexibility in determining $\mathbf U$. If $\mathbf X$ is full rank, you can also tease out the constraint that, $\mathbf c ^T \mathbf c = \mathbf c^T \mathbf U \mathbf{\Sigma}^{-2} \mathbf{U}^T \mathbf c = \mathbf w^T \mathbf{\Sigma}^{-2} \mathbf w = \mathbf w^T \mathbf w$, where $\mathbf{U}^T \mathbf c := \mathbf w$.

Losing some generality, here's one particularly easy approach for creating a legal $\mathbf X$: write out $\mathbf C = \mathbf {PDP}^T$, where $\mathbf D$ is the zero matrix except the top left entry is given by $trace\big(\mathbf C\big)$. From here ensure that all values of $y_k = 0$ for $k \geq 2$, and that $\sigma_1 = 1$, then set $\mathbf U := \mathbf P$.

Again, this whole thing is a very much underdetermined problem so there's a lot of different ways to approach this.