Annexe A - L’algèbre géométrique

L’algèbre universelle

C’est l’algèbre générée par tous les générateurs imaginables, avec l’addition habituelle (associative, commutative) et la multiplication habituelle (associative, bilinéaire, inversible).

Elle contient des objets comme par exemple 1banane1+1pomme*canard+2.41 banane^{-1} + 1 pomme*canard + 2.4 généré à partir des générateurs bananebanane , pommepomme , canardcanard.

En restreignant les générateurs possible et en changeant de multiplication (toujours associative et bilinéaire, mais pas forcément inversible), on obtient d’autres structure algébriques.

L’espace vectoriel géométrique orthonormé

On limite les générateurs à des directions qu’on décrète deux à deux orthogonales, dont le carré est -1, 0 ou 1, et dont le produit deux à deux est nul (pour deux générateurs distincts). Puis, on exclut les scalaires de l’espace.

Il contient par exemple 2.4*x+4.2*y2.4*x + 4.2*y , où xx et yy sont des directions orthogonales. Mais pas 1.21.2 qui a été exclu, ni x*yx*y qui vaut 0.

Les éléments de cet espace s’appellent des vecteurs. La multiplication utilisée s’appelle le produit scalaire.

Les rotations préservent le produit scalaire (démontré au paragraphe sur les rotations). Donc deux vecteurs sont orthogonaux si et seulement si leur produit scalaire est nul.

On note ℝp,m,z un espace vectoriel géométrique orthonormé de dimension finie, où p est le nombre de générateurs de carré +1, m le nombre de générateurs de carré -1, et z le nombre de générateurs de carré 0. On note simplement ℝp=ℝp,0,0.

p,m,z et ℝm,p,z sont isomorphe et peuvent être utilisés de manière interchangeable.

n (ou ℝ0,n,0) représente les espaces euclidiens. En particulier, ℝ³ représente l’espace physique 3D classique. ℝ1,1,0 représente le plan de Minkovski. ℝ3,1,0 (ou ℝ1,3,0) représente le l’espace-temps physique 4D de la relativité restreinte.

L’algèbre extérieure

On utilise les mêmes générateurs que pour l’espace vectoriel géométrique orthonormé et 11. La multiplication utilisée est le produit extérieur ∧, qui est simplement anti-symmétrique.

Il contient les vecteurs (comme par exemple 2.4*x+4.2*y2.4*x + 4.2*y), les scalaires (ex: 1.21.2), mais aussi 3+2*x+xy3 + 2*x + x∧y.

Un élément qui s’écrit comme un produit extérieur de k vecteurs est appelé k-lame. Par exemple, xyx∧y est une 2-lame, tout comme (x+y)z(x+y)∧z , où zz est une direction orthogonale à xx et yy.

Une k-lame représente l’espace orienté de dimension k couvert par les k vecteurs présents dans le produit extérieur. Son orientation (son signe) est inversée si on échange deux de ses vecteurs. Son amplitude est inchangée si on orthogonalise les vecteurs qui la compose. Géométriquement, cette opération préserve le volume. Comme le produit extérieur est multilinéaire, l’amplitude d’une k-lame est donc le produit des longueurs des côté du volume défini par les vecteurs orthogonalisés. C’est donc aussi le volume défini par les vecteurs non-orthogonalisés.

Ainsi, on peut représenter un scalaire par une 0-lame, un vecteur par une 1-lame, et un plan orienté avec une amplitude par une 2-lame unitaire.

On peut donc aussi représenter les homothéties par les 0-lames, les translations par les 1-lames, et les rotations simples par les 2-lames. Les rotations générales peuvent être représentées par les 2-vecteurs (voir le paragraphe sur les rotations).

Une combinaison linéaire de k-lames est appelée k-vecteur. L’algèbre est ainsi graduée :

On écrit [A]k[A]_{k} la projection de A sur le grade k.

L’algèbre géométrique

On utilise les mêmes générateurs que pour l’espace vectoriel géométrique orthonormé. La multiplication utilisée est le produit géométrique, qui est anti-symmétrique sur des générateurs distincts, et dont le carré des générateurs correspond au produit scalaire.

Ses éléments sont les mêmes que ceux de l’algèbre extérieure car les seules choses que le produit géométrique génère de plus que le produit extérieur sont des scalaires qui étaient déjà présents dans l’algèbre extérieure.

Le carré de n’importe quel vecteur est scalaire. On peut le démontrer par récurrence, sachant qu’un vecteur est une combinaison linéaire de générateurs. Par exemple, (x+y)²=xy+yx+x²+y²=x²+y²(x+y)²=xy+yx+x²+y²=x²+y² est bien scalaire.

Du coup, n’importe quel vecteur de carré non nul est inversible et sont inverse est un vecteur : v1=v/v²v^{-1}=v/v².

Une k-lame composée de vecteurs orthogonaux de carré non nul est inversible et son inverse est une k-lame : (abc)1=c1b1a1(abc)^{-1}=c^{-1}b^{-1}a^{-1}.

On note G(ℝp,m,z) une algèbre géométrique finie, où p est le nombre de générateurs de carré +1, m le nombre de générateurs de carré -1, et z le nombre de générateurs de carré 0.

Le produit extérieur reste valide. Il peut s’écrire AB=[AB]k+lA∧B=[AB]_{k+l} , où A est une k-lame et B une l-lame.

Le produit scalaire reste valide. On le généralise à toute l’algèbre par [AB]0[AB]_{0} .

On définit aussi le produit intérieur par A·B=[AB]|kl|A·B=[AB]_{|k-l|} . Bien qu’il coincide avec le produit scalaire sur des vecteurs et qu’il emprunte la notation habituelle du produit scalaire, le résultat n’est pas scalaire. Pour cette raison, on lui donne un autre nom, et on choisit de généraliser le produit scalaire par [AB]0[AB]_{0} qui est bel et bien scalaire.


Astuces de calcul en algèbre géométrique

Renversement

On utilise parfois une opération linéaire appelée renversement, notée avec un tilde au dessus de l’expression renversée. Elle transforme un produit géométrique entre vecteurs A=a0…an en Ã=an…a0. Le renversement s’étend à toute l’algèbre géométrique par linéarité. 1

Donc, pour tous multivecteurs B et C, A=BC <=> Ã=C̃B̃, et A=B+C <=> Ã=B̃+C̃.

Si a est un vecteur, on a ã=a. Si B est un bivecteur, on a B̃=-B. Si A est un k-vecteur, Ã=(-1)k(k-1)/2A.

On peut donc savoir quels grades sont absents d’une expression si elle est égale à elle-même ou à son opposé.

Par exemple, l’algèbre géométrique sur ℝ3 contient les grades 0,1,2,3.

Donc si Ã=A, alors A ne contient que des termes de grades 0 et 1.

Si au contraire Ã=-A, alors A ne contient que des termes de grades 2 et 3.

Utilisation du produit géométrique

Le produit géométrique est associatif et, pour les éléments non nuls, inversible. Ce n’est pas le cas des produits intérieur et extérieur, qui interviennent pourtant naturellement dans les expressions. Il est donc souvent utile d’exprimer les produits intérieur et extérieur en fonction du produit géométrique.

On a vu que le produit extérieur s’écrit comme le produit géométrique de vecteurs orthogonaux entre eux. Ce produit agit comme une projection orthogonale d’une des opérandes sur l’espace dual de l’autre, suivi d’un produit géométrique.

De même, le produit intérieur est une projection orthogonale d’une des opérandes sur l’autre, suivi d’un produit géométrique.

En introduisant les multivecteurs projetés dans les expressions, les produits intérieurs et extérieurs deviennent donc des produits géométriques, beaucoup plus faciles à manipuler.

Projection sur le grade n

Si on a un produit intérieur, resp. extérieur, entre un k-vecteur et un l-vecteur, le résultat correspond au produit géométrique, projeté sur le grade |k-l|, resp. k+l. On peut alors travailler avec le produit géométrique, puis faire la projection, ce qui facilite le calcul.

Projection sur le grade 0

Si A est un multivecteur quelconque et b un vecteur, alors [Ab]0=[A]1·b=b.[A]1=[bA]0. On peut donc commuter A et b dans l’opérateur de projection.

Du coup, [Abcd]0=[dAbc]0=[cdAb]0=[bcdA]0. Donc [AB]0=[BA]0 pour tout B s’écrivant comme produit géométrique de vecteurs, donc aussi pour tout multivecteur B.

Pseudo-scalaire et dualité

L’espace des k-vecteurs est de dimension k parmi n, où n est la dimension de l’espace vectoriel V sous-jacent.

Du coup, l’ensemble des n-vecteurs est de dimension 1. On en choisit un représentant non nul qu’on note I.

La multiplication par I échange les grades k avec les grades n-k, qui ont la même dimension. Cette opération est une opération de dualité. De ce fait, on appelle les (n-k)-vecteurs des pseudo k-vecteurs. En particulier, les n-vecteurs sont des pseudo-scalaires, et les (n-1)-vecteurs sont des pseudo-vecteurs.

I est appelé le pseudo-scalare.

Le choix entre I et -I comme pseudo-scalaire définit l’orientation de l’espace.

Par exemple, étant donnée une base (γ01,…,γn-1), on définit I=γ0γ1…γn-1. Choisir à la place -I=γ1γ0…γn-1 revient à faire une symétrie de l’espace, ce qui change son orientation ou chiralité. Par défaut, le I choisi est le produit géométrique, dans l’ordre, des membres de la base orthonormée de référence choisie, donc I=γ0…γn-1.


Rotations en algèbre géométrique

Une rotation simple (voir “Les rotations”) est décrite par un plan (orienté), un angle, et un centre de rotation. En algèbre géométrique, un plan muni d’une orientation et d’une amplitude est naturellement décrit par une 2-lame, et on représente donc naturellement les rotations simples par les 2-lames.

Une rotation générale est ensuite naturellement représentée par la somme des 2-lames qui représentent les rotations simples qui la composent. Les rotations générales sont donc représentées par les bivecteurs.

Pour appliquer une rotation R, représentée par le bivecteur B, à un vecteur a, on utilise le calcul suivant : R(a)=eB/2 a e-B/2, où ex=Σxk/k! est la fonction exponentielle 2. On appelle le terme eB/2 le rotor associé à la rotation R.

Vérifions que ça donne bien une rotation :

R(a) est donc bien le résultat de la rotation R sur a, l’amplitude de B étant directement l’angle de rotation.

On peut d’ailleurs vérifier que R(a)·R(b)=[R(a)R(b)]0=[eB/2 ab e-B/2]0=[e-B/2 eB/2 ab]0=[ab]0=a·b, donc l’opération conserve bien le produit intérieur, qui définit les angles et les distances de la même manière qu’avec un produit scalaire.

Les nombres complexes sont les rotors de G(ℝ²), les quaternions sont les rotors de G(ℝ³), les quaternions duaux (représentant les rotations et translations de ℝ³) sont les rotors de G(ℝ3,0,1). L’algèbre géométrique généralise ces espaces à des dimensions plus grandes, sans recourrir à des représentations matricielles plus obscures et moins stables numériquement.


Base réciproque

Pour toute base (e1,…,en) de l’espace vectoriel V, il existe une unique base réciproque, notée (e1,…,en), telle que ei·ei=1 Ɐi et ei·ej=0 Ɐi≠j.

En effet, ei·ej=0 Ɐi≠j <=> ej⟂ei Ɐi≠j <=> ej est dans la direction orthogonale à l’espace généré par la famille (ei)i≠j, c’est à dire la direction (e1∧…∧ei-1∧ei+1∧…∧en)·I. Puis la norme et le sens de ej sont fixés par ej·ej=1. On a donc :

ei=(-1)i-1(e1∧…∧ei-1∧ei+1∧…∧en)·I/I²

On peut constater que la définition implique que la base réciproque de la base réciproque est la base initiale.

La base réciproque est utile pour obtenir les coordonnées d’un vecteur v sur une base quelconque (e1,…,en). On note ces coordonnées vi, de sorte que v=Σviei, et les vi sont calculés à partir de la base réciproque : vi=v·ei.

De même, on peut exprimer les coordonnées de v sur la base réciproque : v=Σviei et vi=v·ei.

Souvent, on a une base orthonormée avec ei²=1 Ɐi, auquel cas ei=ei et la notion de base réciproque n’est pas abordée. Cependant, en toute généralité, base et base réciproque ne sont pas confondues. En particulier le produit intérieur entre un vecteur v et les vecteurs d’une base ne donnent pas les coordonnées de v sur cette base mais sur sa base réciproque.

La notion de base réciproque à été définie ici à partir du produit intérieur, elle peut a fortiori être définie à partir d’un produit scalaire. Même si l’expression des ei est facilitée par l’algèbre géométrique, le résultat pourrait être écrit à partir des composantes des ei. La notion de base réciproque existe donc sur n’importe quel espace vectoriel muni d’un produit scalaire.


Géométrie différentielle

Étant donnée une base (e1,…,en) de l’espace vectoriel V, on paramétrise la position d’un point dans V par la variable vectorielle X=Σxiei=Σxiei.

Les dérivées partielles par rapport aux xi sont notées ∂i de sorte que ∂iX=ei. De même, les dérivées partielles par rapport aux xi sont notées ∂i.

En algèbre géométrique, presque toute la géométrie différentielle s’exprime à partir de l’opérateur différentiel et vectoriel Nabla : ∇=Σeii=Σeii. Cet opérateur est indépendant de la base choisie pour le définir. Il opère sur les éléments de l’algèbre géométrique par produit, géométrique, intérieur ou extérieur, avec ses composantes vectorielles, ei ou ei.

En cas d’ambigüité, on utilise des points pour préciser sur quelle partie de l’expression la dérivée s’applique. On ne doit pas déplacer le symbole ∇ car il ne commute pas forcément en tant que vecteur.

Voici quelques exemples :

Lorsqu’il opère sur un champ scalaire, ∇s=Σeiis=grad(s).

Lorsqu’il opère sur un champ de vecteurs, ∇v=∇·v+∇∧v=Σei·∂iv+Σei∧∂iv=div(v)+rot(v).

Dans le cadre de l’algèbre géométrique, l’opérateur ∇ unifie donc les opérateurs gradient, divergence, et rotationnel, mais il est aussi plus général car il n’est pas seulement applicable à des scalaires et des vecteurs, mais à tous les éléments de l’algèbre géométrique.

Cet opération a donc peut-être une signification plus générale que la divergence et le rotationnel pris séparément. Notamment, l’opérateur ∇ est inversible (en supposant les champs et leurs dérivées nuls à l’infini), contrairement au rotationnel et à la divergence. Cela est dû au fait que tous les vecteurs sont inversibles par rapport au produit géométrique, mais pas par rapport au produit intérieur ou extérieur, car ces produits sont des projections du produit géométrique sur certains grades, et donc perdent de l’information.


Produit vectoriel

Le produit vectoriel est valable seulement dans ℝ³. Il prend deux vecteurs et renvoie le dual du plan qu’ils composent, donc à nouveau un vecteur.

Cette volonté d’une loi interne à l’espace des vecteurs est ce qui rend le produit vectoriel spécifique à ℝ³, car son résultat naturel est un plan, et on ne peut représenter un plan par un vecteur que dans ℝ³.

Il est donc préférable d’utiliser le produit extérieur au lieu du produit vectoriel, sachant que le calcul de ces deux produits est quasiment identique. En effet, le produit vectoriel ∧vect s’exprime en fonction du produit extérieur ∧ext par : a∧vectb=dual(a∧extb)=±Ia∧extb

Il reste à déterminer le signe, qui correspond à l’orientation, donc au choix du pseudo-scalaire.

Prenons une base (e1,e2,e3). On utilise toujours le produit vectoriel dans des espaces usuels, donc e1²=e2²=e3²=±1. On a :

Donc a∧vectb=-Ia∧extb=-a∧extbI.

Rotationnel

L’opérateur rotationnel peut être exprimé par un produit vectoriel : rot(a)=∇∧vecta. Dans ce contexte, il est supposé que ∇=Σeii, c’est-à-dire que ei=ei, donc e1²=e2²=e3²=1.

Si on a en fait e1²=e2²=e3²=-1, on doit donc en plus transformer ∇ en -∇.

Dans tous les cas, la transformation de ∇ en -I²∇ est valable.

Donc ∇∧vecta=I³∇∧exta=∇∧extaI³.



  1. Si A=a0…an=A=b0…bm, alors on peut montrer que Ã=an…a0=bm…b0 en décomposant les ai et bi sur une même base. La définition du renversement est donc cohérente.

  2. Le corps K sur lequel l’espace vectoriel sous-jacent est construit est supposé complet. Ainsi, ex appartient à la même algèbre géométrique que x. De plus, il est supposé que k!≠0 Ɐk∈ K. En pratique, on utilisera presque toujours K=ℝ, éventuellement parfois K=ℂ.

  3. Un plan nul est un plan qui contient une seule direction nulle. On a vu que tout plan peut être représenté par une 2-lame B, qu’on peut écrire B=ab avec a⟂b et a²≠0. Donc (ab)²=-a²b², donc (ab)²=0 <=> b²=0. S’il existe plus d’une direction nulle dans le plan ou aucune, alors on peut trouver a⟂b avec a²≠0 et b²≠0, donc (ab)²≠0. À l’inverse, s’il en existe exactement une, on peut trouver a⟂b avec a²≠0 et b²=0, donc (ab)². Donc un plan est nul si et seulement si les 2-lames qui le représentent sont de carré nul. (voir “Existance de bases orthogonales” pour savoir comment trouver les vecteurs a et b).

  4. si a⟂B, comme B est une 2 lame, ∃ b1,b2 ∈ V, tels que B=b1b2 et a⟂b1,2, donc Ba=b1b2a=-b1ab2=ab1b2=aB

  5. si a inclus dans B, alors ∃ b1 ∈ V, tel que B=b1a et a⟂b1, donc Ba=b1aa=-ab1a=-aB