3
$\begingroup$

Consider 3 non-commutative elements $A,B,C$ and we have the relation $CB=\alpha BC$.

I want to compute things like : $(A\otimes BC ) ( B \otimes B) = AB \otimes \alpha B^2C$

Is there any package doing this ?

$\endgroup$
5
  • 4
    $\begingroup$ Check the NCAlgebra package (I am not very familiar with it so I can't give an answer, but it's the biggest/oldest package dealing with such problems). $\endgroup$
    – Szabolcs
    Commented Mar 21, 2019 at 8:25
  • $\begingroup$ try www.github.com/NCAlgebra/NC $\endgroup$ Commented Mar 21, 2019 at 8:39
  • $\begingroup$ This package deals with non commutative algebra but it doesn't seem to treat tensor products $\endgroup$
    – Nico045
    Commented Mar 21, 2019 at 10:16
  • 1
    $\begingroup$ You don't need a package. Just give Mathematica the rules for working with non-commutative multiplication and tensor product. $\endgroup$
    – Somos
    Commented Mar 21, 2019 at 14:46
  • $\begingroup$ See also mathematica.stackexchange.com/questions/126671/… $\endgroup$ Commented Dec 5, 2021 at 20:50

1 Answer 1

2
$\begingroup$

Using Dot for your noncommutative multiplication, we can encode your relation with:

B /: C . B := α B . C

Using KroneckerProduct for your "⊗" operation, the output you want to get can then be obtained with:

KroneckerProduct[A, B.C].KroneckerProduct[B, B] //TensorExpand

α KroneckerProduct[A.B, B.B.C]

$\endgroup$
2
  • $\begingroup$ What does this symbol "/:" do? (not easy to google such a thing) $\endgroup$ Commented Aug 15, 2021 at 15:08
  • $\begingroup$ @StevenSagona Look up "/:" in the help. It stands for either TagSet or TagSetDelayed. $\endgroup$
    – Carl Woll
    Commented Aug 17, 2021 at 1:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.