Comment définir certaines variables comme non-commutative dans Maxima
-
27-10-2019 - |
Question
Par exemple, je voudrais définir x et y comme non commutative, et a et b commutative (comme d'habitude). En d'autres termes,
x y ≠ y x, a x = x a, a b = b a .
En outre,
(x + a y) (x - a y) = x^2 + a (y x - x y) - a^2 y^2
.
Qu'est-ce qu'un code pour définir x et y, et un symbole pour la multiplication (comme *
et .
)?
La solution
Vous pouvez travailler avec *
commutative de Maxima et les produits .
non commutatives de la manière que vous voulez en suivant les deux étapes suivantes:
-
déclarer les symboles
a
etb
comme scalaires:declare([a, b], scalar)$
-
Activer
dotscrules
:dotscrules: true$
Simplifie les produits non-commutatives impliquant des produits scalaires à commutatives ( i.e.. ,
a.x
devienta*x
).
Maintenant, vous êtes prêt. Par exemple,
expand((a*x + b*y) . (a*x - b*y))
retourne
a*b*y.x - b^2*y^^2 - a*b*x.y + a^2*x^^2
(notez que ^^
est l'opérateur d'exponentiation non-commutative).