Вы можете работать с коммутативными *
и некоммутативными .
продуктами Maxima так, как вам нужно, выполнив следующие два шага:
Объявите символы a
и b
как скаляры:
declare([a, b], scalar)$
Включить dotscrules
:
dotscrules: true$
Это упрощает некоммутативные произведения, включающие скаляры, до коммутативных произведений (, т.е. , a.x
становится a*x
).
Теперь вы готовы. Например,
expand((a*x + b*y) . (a*x - b*y))
возвращает
a*b*y.x - b^2*y^^2 - a*b*x.y + a^2*x^^2
(обратите внимание, что ^^
является некоммутативным оператором возведения в степень).