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

L’algèbre géométrique

Description rapide

À partir d’un espace vectoriel V, on ajoute 3 produits entre vecteurs :

De plus, le produit extérieur est associatif et peut s’appliquer sur plus de 2 vecteurs. Par exemple, a∧b∧c est une 3-lame, a∧b∧c∧d est une 4-lame, etc. Une n-lame représente l’espace de dimension n couvert par les n directions présentes dans le produit extérieur, orienté en fonction de l’ordre de ses directions dans le produit extérieur et de leurs orientations respectives, et muni d’une amplitude. Ainsi, on peut représenter un scalaire par une 0-lame, un vecteur par une 1-lame, et un plan orienté 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 par les 2-lames.

L’algèbre géométrique est l’ensemble des combinaisons linéaires de lames, munie du produit géométrique, qu’on va étendre aux lames et pas seulement aux vecteurs.

Description rigoureuse

Définition

L’algèbre géométrique est définie sur un espace vectoriel V sur un corps K par l’ajout d’un produit (associatif et distributif sur l’addition) tel que ∀a∈ V, a²∈ K. Elle est notée G(V). Les vecteurs de carrés nuls sont appelés vecteurs nuls. On suppose de plus qu’il n’existe pas de sous-espace vectoriel nul de V de dimension >=2.

Produit extérieur

On définit le produit extérieur entre n vecteurs par v1∧…∧vn=(1/n!)Σsign(σ)σ(v1,…,vn), où σ sont les permutations dans un produit géométrique à n vecteurs. Le produit extérieur entre n vecteurs est donc la partie anti-symétrique du produit géométrique entre n vecteurs.

On appelle n-lame tout élément qui peut s’écrire sous la forme d’un produit extérieur entre n vecteurs v1∧…∧vn.

Produit intérieur entre 2 vecteurs

∀ a,b ∈ V, on définit le produit intérieur par la partie symétrique du produit géométrique : a·b=(ab+ba)/2.

On a donc :

Orthogonalité

Deux vecteurs sont dits orthogonaux s’ils anticommutent : a⟂b <=> ab=-ab <=> a·b=0 <=> ab=a∧b.

De plus, pour des vecteurs vi orthogonaux deux à deux, on a v1∧…∧vn=v1…vn (dans la définition du produit extérieur, les vecteurs anticommutent deux à deux donc tous les termes de la somme sont égaux). Un produit géométrique entre vecteurs orthogonaux est donc une n-lame, composée de ces mêmes vecteurs.

Existence de bases orthogonales

Nous allons généraliser le procédé d’orthogonalisation de Gram-Schmidt, qui s’applique lorsqu’on a un produit scalaire, à notre cas où on a seulement un produit intérieur, qui n’est pas forcément défini positif.

On applique le procédé normalement tant que tous les vecteurs de la base orthogonale partielle (v1,…,vk) sont non nuls : à partir d’un vecteur a tel que (v1,…,vk,a) est libre, on définit le vecteur a’=a-Σ(vi·a/vi²)vi, orthogonal à vj pour 1<=j<=k (car a’·vj=a·vj-Σ(vi·a/vi²)vi·vj=a·vj-(vj·a/vj²)vj·vj=0), et différent de 0 car sinon (v1,…,vk,a) ne serait pas libre.

Ensuite,

Il existe donc toujours une base orthogonale de V qui contient au plus un vecteur nul.

On peut également utiliser le procédé d’orthogonalisation sur le produit extérieur puisque v1∧…∧vk∧a=v1∧…∧vk∧a’, où a’=a-Σ(vi·a/vi²)vi. Du coup, pour toute famille de vecteurs libres (a1,…,ak), il existe une base orthogonale (v1,…,vk) de l’espace (a1,…,ak), où seul vk est éventuellement un vecteur nul, et on a alors a1∧…∧ak=v1∧…∧vk=v1…vk.

En particulier, si on suppose de plus que a1∧…∧ak=0, alors v1…vk=0. Or, les vecteurs non nuls sont inversibles car a(a/a²)=(a/a²)a=1. Donc vk=0, ce qui est faux car la famille (a1,…,ak) a été supposée libre. Donc a1∧…∧ak=0 implique que la famille (a1,…,ak) est liée. De plus, si la famille (a1,…,ak) est liée, on a a1∧…∧ak=0 car le produit extérieur est anti-symétrique et multi-linéaire. On a donc l’équivalence suivante :

a1∧…∧ak=0 <=> la famille de vecteurs (a1,…,ak) est liée.

Du coup, si (a1,…,ak) est une famille de vecteurs libre, un vecteur v appartient à l’espace (a1,…,ak) si et seulement si a1∧…∧ak∧v=0. Donc une k-lame a1∧…∧ak différente de zéro définit l’espace (a1,…,ak).

Gradation de l’algèbre géométrique

Par définition, tout élément de l’algèbre géométrique est une combinaison linéaire de produits géométriques entre vecteurs. En décomposant chaque vecteur sur une base orthogonale et en développant chaque produit, on peut écrire tout élément de l’algèbre géométrique comme une combinaison linéaire de produits géométriques entre des vecteurs de la base orthogonale choisie. Ensuite, un produit géométrique entre n vecteurs orthogonaux est une n-lame. Donc l’algèbre géométrique est l’ensemble des combinaisons linéaires de lames formées à partir des vecteurs d’une base orthogonale de V dont au plus un vecteur est nul.

L’algèbre géométrique est donc graduée : les éléments de grade k, qu’on appelle k-vecteurs, sont générés par les k-lames, qui définissent des sous-espaces de dimension k.

On notera [a]k la projection de a sur l’espace des k-vecteurs.

Un k-vecteur n’est pas forcément une k-lame. Par exemple, en dimension >=4, le bivecteur e0∧e1+e2∧e3 (où (e1,…,e3) sont orthogonaux) n’est pas une 2-lame. Si c’était le cas, on aurait e0∧e1+e2∧e3=a∧b, ce qui impliquerait :

  1. e0∧e2∧e3=e0∧a∧b, donc a∧e0∧e2∧e3=0, donc a appartient à l’espace (e0,e2,e3), donc a·e4=0
  2. e1∧e2∧e3=e1∧a∧b, donc a∧e1∧e2∧e3=0, donc a appartient à l’espace (e1,e2,e3), donc a·e0=0
  3. e2∧e0∧e1=e2∧a∧b, donc a∧e2∧e0∧e1=0, donc a appartient à l’espace (e0,e1,e2), donc a·e3=0
  4. e3∧e0∧e1=e3∧a∧b, donc a∧e3∧e0∧e1=0, donc a appartient à l’espace (e0,e1,e3), donc a·e2=0

Donc a=0, donc e0∧e1+e2∧e3=0, donc e0∧e1=e3∧e2, donc les plans (e0,e1) et (e2,e3) sont les mêmes, ce qui n’est pas le cas donc l’hypothèse initiale est fausse.

Produit intérieur

On définit maintenant le produit intérieur entre une k-lame A et une l-lame B par A·B=[AB]|k-l|. Par linéarité, le produit intérieur est donc maintenant défini sur toute l’algèbre géométrique.

Structure d’espace vectoriel de l’algèbre géométrique

On a vu que les k-vecteurs sont générés par les k-lames composées des vecteurs d’une base orthogonale de V dont au plus un vecteur est nul. Parmi ces k-lames, on peut se restreindre à celles qui sont des produits extérieurs de vecteurs de base dans le même ordre que dans la base, c’est-à-dire ei∧…∧ej pour des i,…,j tels que i<…<j, car des permutations dans un produit extérieur ne génèrent pas un nouvel élément. Ces k-lames sont au nombre de k parmi n où n est la dimension de V. De plus, le produit intérieur entre deux de ces lames vaut ±1 si les deux lames sont les mêmes et 0 sinon. Elles forment donc une famille libre et le produit intérieur permet de projeter sur les différentes lames.

La dimension totale de l’algèbre géométrique est donc dim(G(V))=Σ\(\binom{n}{k}\)=2n.

Comme tout élément de l’algèbre géométrique est une somme de k-vecteurs pour k allant de 0 à n, on appelle ces éléments des multivecteurs.


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é

On a vu que 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.

Si le corps sous-jacent à V est ℝ, le signe de I² est indépendant du choix du pseudo-scalaire, et est une propriété intrinsèque de l’algèbre géométrique en question. En effet, le choix du pseudo-scalaire se fait à un facteur non nul près, dont le carré est toujours positif.


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(ℝ³). 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