# solution to $\min \|A-BXC \|$

I have the following problem. Let $A$, $B$ $C$ be real-valued matrices of size $m \times q$, $m \times n$, $p\times q$ respectively. I would like to find matrix $X$ of size $n\times p$ and maximum rank $r$ such that the Frobenius norm $\|A - B X C \|$ is minimized. This is a generalization of the best approximation property of the truncated Singular Value Decomposition; however it doesn't appear to be trivial. Any insights? Known literature?

-

Here is an idea:

The equation $A = BXC$ can be transformed to $(C^T \otimes B) \operatorname{vec} X = \operatorname{vec} A$ where $\operatorname{vec}$ is vectorization and $\otimes$ is Kronecker product. This transforms the problem to a standard matrix problem (there are also other ways of solving a matrix equation of this type) which can be solved using e.g. Gauss-Jordan elimination.

If the equation $(C^T \otimes B) \operatorname{vec} X = \operatorname{vec} A$ is not solvable, i.e. $\operatorname{vec} A$ is not in the image of $C^T \otimes B$, find the vector in the image of $C^T \otimes B$ closest to $\operatorname{vec} A$. This can be done by finding an orthogonal basis for the image of $C^T \otimes B$ and projecting $\operatorname{vec} A$ onto these vectors. In other words, find a least squares "solution" to the system $(C^T \otimes B) \operatorname{vec} X = \operatorname{vec} A$.

It should be noted in the above argument, that since we are using the Frobenius norm, $\|A\|$ and $\| \operatorname{vec} A\|$ will be equal, and also that $$\|\operatorname{vec} (A - BXC)\| = \| \operatorname{vec} (A) -\operatorname{vec}(BXC) \| = \| \operatorname{vec} A - (C^T \otimes B) \operatorname{vec} X\|.$$

-

Let $M=A-BXC\,\,$ and $\,f=\|M\|^2_F$.

Then the problem is to minimize $f$ with respect to $X$.

Find the differential \eqalign{ df &= 2\,M:dM \cr &= 2\,(A-BXC):(-B\,dX\,C) \cr &= 2\,(BXC-A):B\,dX\,C \cr &= 2\,B^T(BXC-A)C^T:dX \cr } Since $df=(\frac{\partial f}{\partial X}):dX\,$ the derivative must be \eqalign{ \frac{\partial f}{\partial X} &= 2\,B^T(BXC-A)C^T \cr } Setting it to zero and solving for $X$ yields \eqalign{ B^TBXCC^T &= B^TAC^T \cr X &= (B^TB)^{-1}B^TAC^T(CC^T)^{-1} \cr X &= B^{+} A C^{+} \cr } This is equivalent to the previous Kronecker-vec suggestion \eqalign{ {\rm vec}(X) &= (C^T\otimes B)^{+} \, {\rm vec}(A) \cr }

-