# Kronecker division

Say I have an equation $A = B \otimes C$, where $\otimes$ is the Kronecker product. A, B, C are all square, A tends to be large and C is 4x4. If I know A and C, is there a way to recover B?

I've seen another question that deals with the case where both B and C are not known, but not exactly this case. I also know that scilab has left and right Kronecker division operators, but I don't think they do this operation either.

• Well, you know that $a_{11} = b_{11}c_{11}$ by definition of the product, so this should let you compute $b_{11}$. Repeat in the appropriate indices to extract the entries of $B$ one by one. – ChocolateAndCheese Sep 30 '15 at 0:52

Clearly, if $C=0$ then the answer is no. Otherwise, the answer is yes: For if $B$ is an $m_1\times n_1$ matrix and $C$ is a $m_2\times n_2$ matrix, then we may index the rows of $A$ by ordered pairs $(i_1,i_2)$ for $i_1=1,\dots,m_1$ and $i_2=1,\dots,m_2$, and the columns of $A$ by ordered pairs $(j_1,j_2)$ for $j_1=1\dots,n_1$ and $j_2=1,\dots,n_2$, and by the definition of the Kronecker product we have $A_{(i_1,i_2)(j_1,j_2)}=B_{i_1j_1}C_{i_2j_2}$. Since $C\neq 0$, there exist $i_2,j_2$ with $C_{i_2j_2}\neq 0$, and in this case we may solve to obtain $$B_{i_1j_1} = \frac{A_{(i_1,i_2)(j_1,j_2)}}{C_{i_2j_2}}$$
$$\left[\begin{array}{cccc}c_1b_1&c_1b_2&c_2b_1&c_2b_2\\c_1b_3&c_1b_4&c_2b_3&c_2b_4\\c_3b_1&c_3b_2&c_4b_1&c_4b_2\\c_3b_3&c_3b_4&c_4b_3&c_4b_4\end{array}\right]$$
You can now set an equation between each $a_{ij} = c_ib_j$, right? I wonder what would be a good way to solve such an equation system...