Efficient Least Squares for $ A = B X + C X D $ with the Minimization Argument $ X $

181 Views Asked by At

I am interested in solving a least-squares solution of the form $$ \operatorname{argmin}_X \| A - BX - CXD \|_F^2 $$

for large (rank in hundreds to thousands) matrices $A,B,C,D,X$

I know this is possible if I treat $X$ as a vector, but the Kronecker product $\operatorname{kron}(I,B)+\operatorname{kron}(D^T,C)$ is huge.

Is there an easier way?

I am initially interested in a Matlab solution, but one that I can migrate into c++.

edit... So this looks is related to the Sylvester Equation, but I cannot see how to map my problem to AX+XB=C, at least not without assumptions about the Spans of the matrices.

1

There are 1 best solutions below

2
On

The problem is given by:

$$ \arg \min_{X} f \left( X \right) = \arg \min_{X} \left\| A - B X - C X D \right\|_{F}^{2} = \arg \min_{X} \left\| B X + C X D - A \right\|_{F}^{2} $$

The derivative is given by:

$$ \frac{d}{d X} f \left( X \right) = 2 {B}^{T} \left( B X + C X D - A \right) + 2 {C}^{T} \left( B X + C X D - A \right) {D}^{T} $$

Now you can use Gradient Descent (I'm not sure what's the right way to solve the vanishing point of the gradient directly).