Stuck on equation with Hadamard product and transpose

984 Views Asked by At

I have been stuck the last few days on the resolution of an equation I built for a phenomenon's modelling. Let $D_O$ and $D_H$ be square, diagonal, $n \times n$-sized matrices. Let also $H$, $O$, $W$ and $X$ be square, $n \times n$ (but not diagonal) matrices.

I want to find $H$ satisfying the following equation :

$H^T = W D_H X + D_H (W \circ H) + D_O (W \circ O)$

$A \circ B$ being the Hadamard product of $A \text{ and } B$.

What's been blocking me is the $H^T$, that complicates the resolution since I struggle to only keep one form of $H$.

I only could go a bit further than what's above :

$ \begin{align} H^T &= W D_H X + D_H (W \circ H) + D_O (W \circ O)\\ H^T &= W D_H X + (D_H W )\circ H + (D_O W) \circ O\\ H^T - (D_H W )\circ H &= W D_H X + (D_O W) \circ O \end{align}$

And this is where I'm stuck. Applying the inverse of the Hadamard on $H^T$ only seems to complicate things. I have seen answers on other threads involving the Kronecker product, but the way it works confused me a bit.

Thank you

1

There are 1 best solutions below

2
On BEST ANSWER

Vectorizing your equation leads to a conventional system of equations on a vector of entries. Let $\otimes$ denote the Kronecker product. Note that

  • $\operatorname{vec}(AXB) = (B^T \otimes A)\operatorname{vec}(X)$,
  • $\operatorname{vec}(B \circ X) = \operatorname{diag}(\operatorname{vec}(B)) \operatorname{vec}(X)$,
  • $\operatorname{vec}(X^T) = P\operatorname{vec}(X)$,

where $P$ denotes the permutation matrix $$ P = \sum_{i=1}^n \sum_{j=1}^n (e_j \otimes e_i)(e_i \otimes e_j)^T = \sum_{i=1}^n \sum_{j=1}^n \operatorname{vec}(E_{ij})[\operatorname{vec}(E_{ji})]^T. $$

With that, we find that vectorizing both sides of your equation yields $$ H^T = W \times D_H \times X + D_O \times (W \circ O) \implies\\ H^T - D_H \times (W \circ H) = W \times D_H \times X + D_O \times (W \circ O) \implies\\ P\operatorname{vec}(H) - (I_n \otimes D_H)\operatorname{diag}(\operatorname{vec}(W))\operatorname{vec}(H) = \operatorname{vec}[W \times D_H \times X + D_O \times (W \circ O)] \implies\\ [P - (I_n \otimes D_H)\operatorname{diag}(\operatorname{vec}(W))]\operatorname{vec}(H) = \operatorname{vec}[W \times D_H \times X + D_O \times (W \circ O)]. $$ Now, simply solve for $\operatorname{vec}(H)$, then "unvectorize".