4

例如,我想将 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 的代码,以及乘法符号(例如*and .)?

4

1 回答 1

2

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

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

    declare([a, b], scalar)$

  2. 启用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

(注意这^^是非交换幂运算符)。

于 2011-09-06T18:04:23.793 回答