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 .)?

Était-ce utile?

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:

  1. déclarer les symboles a et b comme scalaires:

    declare([a, b], scalar)$

  2. Activer dotscrules:

    dotscrules: true$

    Simplifie les produits non-commutatives impliquant des produits scalaires à commutatives ( i.e.. , a.x devient a*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).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top