I was trying to solve an inverse problem in mechanics and computing it in Matlab, when i found something unknown for me, and so I haven't any idea on how to compute it.
Basically, after simplifications, I obtain $$C_{ijkl}\times B_{kl} = A_{ijkl}\times\epsilon_{kl}$$
What I want to find is $\epsilon_{kl}$ knowing C B and A.
I tried to do it using loops but it didn't end well... Maybe I'm super wrong about the way I chose to solve this problem, and maybe there really is an easy way, so all ideas are welcome!
You can find an overview of the problem by following this link.
Hint: You have 9 equations in all ( 2 free indices i and j). The contraction $C_{ijkl} B_{kl}$ is just some $T_{ij}$. So your equations look like this $$ A_{ijkl} \epsilon_{kl} = T_{ij} \quad i=1,2,3 \; and \; j=1,2,3 $$ Let's convert this into a matrix * vector product. Rewrite $\epsilon_{ij}$ as a new column vector $e_{m}$. Clearly, m goes from 1 to 9 and you can pick any order. Do the same for T, i.e. rewrite $T_{ij}$ as $S_m$. $A_{ijkl}$ can then be rewritten as some $P_{nm}$ where n=1....9. Just be sure this is consistent with the mapping from ${1,2,3} \times {1,2,3} \rightarrow {1....9}$
You have a new matrix equation
$$ P_{9 \times 9} e_{9 \times 1} = S_{9 \times 1} $$
which can be inverted the usual way for $e$ and thus $\epsilon$.