I have the following code:

$Assumptions = Element[B | F | A, Matrices[{d, d}, Reals]]
$Assumptions =   Element[Id | C | C0 , Matrices[{d, d}, Reals, Symmetric[{1, 2}]]]; 
$Assumptions = Element[t, Reals];
W = (\[ScriptCapitalC] (C - Id)) ** (C - Id) + (\[ScriptCapitalD] (C - C0)) ** (C - C0) /.  C -> (TensorTranspose[F + t* A, {1, 2}] ** (F + t* A))
D[W, {t, 2}]
D[W, {t, 2}] /. t -> 0

which provides me the answer:

enter image description here

I would rather expect that

  1. 0 ** F will be replaced by 0 or completely removed from output
  2. F ** F should actualy be F^T * *F (F is not a symmetric matrix)
  3. A ** A should be replaced by A^ T** (A is not a symmetric matrix)

where 'T' denotes the matrix transpose operator. Can you help?

  • $\begingroup$ Jan, as the Properties section of the documentation for NonCommutativeMultiply mentions, "No automatic simplification rules exist for NonCommutativeMultiply". The multiplication by zero is the first example there. You will have to implement those rules yourself. There are a few examples in those pages that should help you do that. $\endgroup$ – MarcoB Dec 2 '20 at 17:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.