symbolic-math – 如何在Maxima中将一些变量定义为非交换变量

例如,我想将x和y定义为非交换,将a和b定义为可交换(通常).换一种说法,

x y ≠ y x,  a x = x a,  a b = b a .

进一步,

(x a y)(x-a y)= x ^ 2 a(y x -x y)-a ^ 2 y ^ 2.

什么是用于定义x和y的代码,以及用于乘法的符号(例如*和.)?

最佳答案 您可以使用Maxima的可交换*和非交换.按照以下两个步骤按照您想要的方式生产产品:

>将符号a和b声明为标量:

声明([a,b],标量)$
>启用dotcrules:

dotscrules:真正的$

这简化了涉及标量到交换产品的非交换产品(即,a.x变为* 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

(注意^^是非交换取幂运算符).

点赞