Inverse problem with 4D and 2D matrix

503 Views Asked by At

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.

1

There are 1 best solutions below

1
On

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$.