Les quaternions

  1. Introduction
  2. Théorie d'engendrement
  3. Théorème de Frobenius
  4. Le corps des quaternions `bbbH`
  5. Le système de coordonnées cartésiennes
  6. L'espace tridimensionnelle `RR^3`
    1. Produit scalaire
    2. Base orthonormée `(i,j,k)`
    3. PRoduit vectoriel
    4. Base orthonormée directe `(i,j,k)`
  7. Les angles de vecteurs dans `RR^3`
  8. ...

1) Introduction

...

2) Théorie d'engendrement

L'ensemble des compositions finies closes d'opérateurs appartenant à `L` se note `L^•`. Le symbole de Kleene généralisé `"•"` mis en exposant, représente la clôture par compositions finies closes.

Etant donnné un corps `(K,"+","∗")`. On note l'élément neutre de l'addition `"+"` par `0`. On note l'élément neutre de la multiplication `"∗"` par `1`. Et on les indexe comme suit, `0_K`, `1_K`, s'il y a plusieurs tel corps pour les différentier. L'élément neutre de l'addition `0` est l'élément absorbant de la multiplication. Pour un élément `x` quelconque de `K`, on note l'opposé de `x` par `"-"x`. On note `K^"∗" = K"-"{0}`, l'ensemble sous-jacent dans lequel on a enlevé l'élément absorbant. Pour un élément `x` quelconque de `K^"∗"`, on note l'inverse de `x` par `sf"inv"(x)=x^-1`. On notera souvent la multiplication `"∗"` par absence de symbole de telle sorte que par exemple : `x"∗"y"∗"z=xyz`. La soustraction `x"-"y` désigne `x"+"("-"y)`. De même, la division `x"/"y` désigne `x"∗"y^-1`. Notez que la division à gauche se note `(1"/"y)x = y^-1x` et la division à droite se note `x"/"y= xy^-1`.

Ce corps `K` admet une présentation programmative comme suit :

`K = sf"Corps"("+",0,"-","∗",1,sf"inv")`

On définie la notion d'engendrement en considérant implicite la présence des opérateurs programmatifs de la structure considéré, ici du corps, `"+",0,"-","∗",1,sf"inv"`. Quelque soit un sous-ensemble `A"⊆"K`, l'ensemble des éléments engendrés par `A` se note `"<"A">"`, et est par définition l'ensemble des compositions finies closes d'éléments de `A` et des opérateurs `"+",0,"-","∗",1,sf"inv"`. Cela se note comme suit :

`"<"A">"= (A "∪" {"+",0,"-","∗",1,sf"inv"})^•`

L'univers dans lequel nous raisonnons n'est jamais complètement construit. C'est cette particularité qui confirme que nous ne nous sommes pas mis des oeillères, et que l'exploration des fondements reste possibles. Les lois `+` et `"∗"` sont des applications sur `K` qui peuvent être étendues sur tout ensemble mais sans garantir le maintient de leurs propriétés en dehors de `K`. Ces extensions, à ce stade, ne sont pas déterminées. La notion d'engendrement se généralise donc au delà de `K`. Et, le fait d'être restreinte à `K` entraine cette règle : Si `A` est un sous ensemble de `K` alors l'ensemble `"<"A">"` est un sous-corps de `K`, ce qui se note :

`A"⊆"K => "<"A">⊑"K`

Notez que, le symbole de sous-structure `"⊑"` ne précise pas de quelle structure il s'agit. La struture est indiquée par une méthadonnée du terme de droite, et si elle est ambiguë alors elle doit être explicitée.

Notez qu'on utilise la notation d'engendrement `"<"...">"` en énumérant des ensembles ou directement des éléments, faisant que `"<"{a,b}, c">"` `=` `"<"a,b,c">"` `=` `"<"{a,b,c}">"`

Une structure est dite de type fini si elle est engendrée par un nombre fini d'éléments. Plus précisement, elle est dite agène si elle est engendré par l'apport d'aucun élément, monogène si elle est engendré par un élément, bigène si elle est engendré par au moins deux éléments, trigène si elle est engendré par au moins 3 éléments, etc.., et ces éléments générateurs dont il est question, sont autres que ceux déjà présents dans la présentation programmative de la structure.

3) Théorème de Frobenius sur les dimensions finies 1 ou 2 ou 4.

Si un corps commutatif contient le corps des réels `RR`, alors il possède une structure d'espace vectoriel sur `RR`. Et si cet espace vectoriel est de dimension finie, alors il ne peut s'agir que de `RR` ou du corps des complexes `CC`, c'est à dire de dimension égale à `1` ou `2`, et il n'y a pas d'autre corps commutatif possible à isomorphisme près.

On appel le centre d'une structure, l'ensemble des éléments de la structure qui commutent avec tous les éléments de la structure.

Si un corps non commutatif contient dans son centre, le corps des réels `RR`, alors il possède une structure d'espace vectoriel sur `RR`. Et si cet espace vectoriel est de dimension finie, alors ce corps ne peut être que le corps des quaternions `bbbH`, c'est à dire de dimension égale à `4`.

La démonstration du théorème passe en revue les différents groupes multiplicatifs possibles des vecteurs unités d'un corps possédant une structure de `RR`-espace vectoriel.

Ainsi, dans un corps commutatif de type fini contenant `RR`, quelque soit `3` éléments `e_1,e_2,e_3` ceux-ci sont nécessairements `RR`-dépendants, c'est à dire qu'il existe `3` réels `a_1,a_2,a_3` non tous nuls tel que `a_1e_1+a_2e_2+a_3e_3=0`. Et de même, dans un corps non commutatif de type fini contenant le corps des réels `RR` dans son centre, quelque soit `5` éléments `e_1,e_2,e_3,e_4,e_5` ceux-ci sont nécessairements `RR`-dépendants, c'est à dire qu'il existe `5` réels non tous nuls `a_1,a_2,a_3,a_4,a_5` tel que `a_1e_1+a_2e_2+a_3e_3+a_4e_4+a_5e_5=0`.

4) Le corps des quaternions

La construction du corps des quaternions `bbbH` se fait à partir du corps des complexes `CC` par extension élémentaire de corps non commutatif de centre `RR` et par quotientage. On ajoute à l'ensemble sous-jacent de la structure `CC` un nouvel élément `j` qui respecte la structure de corps non commutatif de centre `RR`. Et on ajoute à la théorie de cette nouvelle structure les `2` propriétés suivantes :

`j^2=-1`
`ij=-ji`

Par symétrie on désigne le produit `ij` par `k`. Et nous avons :

`k = ij`
`k^2 = ijij = "-"jiij = jj = "-"1`

Ainsi le corps des quaternions est engendré par 2 éléments `i,j`, ce qui se note :

`bbbH = bar("<"i,j">") = bar("<"0,1,i,j,"+","-","∗",x"↦"x^-1">")`

Et comme `RR` en est le centre, et que nous avons les trois propriétés suivantes :

`i^2=-1`
`j^2=-1`
`ij=-ji`

Cela se note :

`bbbH = RR + iRR + jRR + ijRR`

Il existe en faite deux sens du mot engendré. L'engendrement peut se faire en utilisant les seuls opérations autorisées par la structure, ici pour le corps, l'addition, le zéro, l'opposé, la multiplication, le un, et l'inverse autre que zéro, ou bien en utilisant une opération supplémentaire qu'est la suite convergente dite de Cauchy, cette dernière nous permettant de passer de l'espace métrique à l'espace métrique complet.

Les deux éléments `i,j` engendrent le corps des quaternions rationnels `QQ"+"iQQ"+"jQQ"+"ijQQ`. Et ce corps se complète en `bbbH` en utilisant les suites convergentes dites de Cauchy. De la même façon nous avons :

`RR= bar QQ`

`CC= bar(QQ"+"iQQ)`

`bbbH=bar(QQ"+"iQQ"+"jQQ"+"ijQQ)`

4.1) L'engendrement par l'élément neutre du produit

Tout corps `(K,"+","∗")` contient dans son centre le corps `QQ∗1_K` appelé abusivement sous-corps engendré par `1_K`. en fait, il s'agit du sous-corps agène. Et si cet élément est d'ordre infini pour l'addition `"+"`, alors ce sous-corps agène est isomorphe à `QQ` qui est ainsi contenue dans le centre de `K` . En voici la démonstration :

Par définition, l'élément `1` est dans le centre c'est à dire commutatif avec tous les éléments, `AAx"∈"K,` `1x=x1`. Donc, grace à la distributivité à gauche et à droite, le chiffre `2`, qui est par définition égale à `1+1`, est également dans le centre, car :

`2x=(1+1)x=1x+1x=x1+x1=x(1+1)=x2`

De même pour tout les entiers définis comme une sommes de `1_K` c'est à dire pour tous les éléments appartenant à `NN∗1_K`.

De même pour `"-"1` car :

`("-"1)x + x=("-"1)x+1x=("-"1+1)x=0x = 0`

Et donc `("-"1)x` est bien l'opposé de `x` c'est à dire `-x`, et nous savons que dans un groupe l'opposé est unique, donc :

`("-"1)x="-"x=x("-"1)`

De même pour `"-"2` car :

`("-"1"-"1)x="-"x"-"x=x("-"1)+x("-"1)=x("-"2)`

De même pour tout les entiers définis comme une sommes de `"-"1_K` et donc aussi pour tous les éléments appartenant à `ZZ∗1_K`.

L'ordre d'un élément `e` noté `"ord"(e)` est le cardinal du groupe additif engendré par `e` :

`"ord"(e) =|{e,0,"+","-"}^•|`

L'ordre de l'élément neutre de la multilication s'appelle la caractéristique du corps `K` :

`"ord"(1_K)`

De même quelque soit deux entiers relatifs `(p,q)inZZ^2`, lorsque `q` n'est pas un multiple de l'ordre de `1_K` ou autrement dit lorsque `q1_K≠ 0_K`, alors `p"/"q` est dans le centre :

`(p"/"q)x = x(p"/"q) <=> q(p"/"q)xq= qx(p"/"q)q <=> pxq= qxp`

Donc l'ensemble des rationnels dont le dénominateur n'est pas un multiple de l'ordre de `1_K`, multiplié par `1_K`, constitue un sous-corps qui est dans le centre de `K`. Et si `1_K` est d'ordre infini pour l'addition, alors ce sous-corps est isomorphe à `QQ`, et se trouve dans le centre de `K`.

5) Système de coordonnées cartésiennes

De l'extension élémentaire, il découle que `CC` et `CCj` sont des sous-ensembles de `bbbH`. Et il découle aussi que `RR, iRR, jRR, kRR` sont des sous-ensembles de `bbbH`.

Le corps `bbbH` est un espace vectoriel de dimension `4` sur le corps `RR`. On choisie comme base orthonormée canonique `(1,i,j,k)`. On identifie cet espace vectoriel `RR^4` comme suit :

`CC = RR o+ iRR o+ jRR o+ kRR `

Le symbole `o+` désigne une somme directe. Cela signifie que pour chaque quaternion `q` il existe un et un seul quadriplet de réels `(t,x,y,z)` tel que `q = t + ix + jy + kz`.

Le système de coordonnées réelles cartésiennes est la bijection de `RR^4->bbbH` définie par `(t,x,y,z)|->t + ix + jy + kz`.

On utilise le quadruplet de nombres réels `"(.,.,.,)"` pour désigner les coordonnées réelles cartésiennes. Ainsi, étant donné un quaternion `q=t + ix + jy + kz`, nous avons l'égalité `q = (t,x,y,z)` qui met en exergue les coordonnées réelles cartésiennes.

`AA(t,x,y,z)"∈"RR^4,   (t,x,y,z) = t + ix + jy + kz`

La première coordonnée `t` s'appelle la partie réel de `q` et se note `"Re"(q)`. L'autre partie `ix"+"jy"+"kz` constitue un quaternion imaginaire pure. La partie imaginaire de `q` est le vecteur `(x,y,z)` et se note `"Im"(q)`. Elle constitue une seconde coordonnée qui est un vecteur. Et on note par le symbole `frI` placé à gauche, la conversion de cette partie imaginaire qui est un vecteur de `RR^3` en le quaternion imaginaire pure `frI(x,y,z)` correspondant :

`AA(x,y,z)"∈"RR^3,   frI(x,y,z) = ix"+"jy"+"kz`

Cependant, ce symbole `frI` est omis s'il n'y a pas d'ambiguité. Ainsi par défaut un vecteur de réels de dimension `3` correspond canoniquement au quaternion imaginaire pur dont il est les coordonnées. La base vectorielle de référence est donc `(i,j,k)`. La somme d'un réel `t` et d'un vecteur de réels `vecv` de dimension `3` produit donc un quaternion de partie réel `t` et de partie imaginaire `vecv`.

`AA(x,y,z)"∈"RR^3,   (x,y,z) = ix"+"jy"+"kz`
`AA(t,x,y,z)"∈"RR^4,   t+(x,y,z) = t "+" ix "+" jy "+" kz`

Considérons :

`q = (t,x,y,z)`
`vecv = (x,y,z)`

Nous avons les égalité suivantes :

`q = t"+"ix"+"jy"+"kz`
`q = t+vecv`
`"Re"(q) = t`
`"Im"(q) = vec v`
`q = "Re"(q)+"Im"(q)`
`vecv = "ix"+"jy"+"kz`

Etant donné deux quaternions :

`q_1 = t_1"+"ix_1"+"jy_1"+"kz_1`
`q_2 = t_2"+"ix_2"+"jy_2"+"kz_2`

Leur addition se développent comme suit :

`q_1 + q_2 = t_1"+"t_2"+"i(x_1+x_2)"+"j(y_1+y_2)"+"k(z_1+z_2)`

Les quaternions unités `i,j,k` ont la table de produit suivante :

`"∗"`
i
j
k
i
-1
k
-j
j
-k
-1
i
k
j
-i
-1

Et leur multiplication se développent comme suit :

`q_1q_2 = (t_1"+"ix_1"+"jy_1"+"kz_1)(t_2"+"ix_2"+"jy_2"+"kz_2)`
`q_1q_2 = t_1t_2+it_1x_2+jt_1y_2+kt_1z_2`
         `+ ix_1t_2+i^2x_1x_2+ijx_1y_2+ikx_1z_2`
         `+ jy_1t_2+jy_1x_2+j^2y_1y_2+jky_1z_2`
         `+ kz_1t_2+kiz_1x_2+kjz_1y_2+k^2z_1z_2`
`q_1q_2 = t_1t_2 - x_1x_2 - y_1y_2 - z_1z_2`
         `+ i(t_1x_2+x_1t_2+y_1z_2-z_1y_2)`
         `+ j(t_1y_2+y_1t_2+z_1x_2-x_1z_2)`
         `+ j(t_1z_2+z_1t_2+x_1y_2-y_1x_2)`

La conjugaison est la symétrie qui inverse toutes les composantes réels imaginaires. Le conjugué de `q` qui se note `bar q`, s'obtient en inversant le signe des trois composantes réels imaginaires :

`q = t + ix + jy + kz`
`bar q = t - ix - jy - kz`

Ces deux quaternions sont associés à deux vecteurs `(t,x,y,z)` et `(t,x,y,z)` dans `RR^4`. Leur produit scalaire se note :

`(t_1,x_1,y_1,z_1)"⋅"(t_2,x_2,y_2,z_2)=  t_1t_2 + x_1x_2 + y_1y_2 + z_1z_2`

Et dans `CC`, leur produit scalaire se note :

`"<"q_1,q_2">" =  t_1t_2 + x_1x_2 + y_1y_2 + z_1z_2`

On remarquera que le produit scalaire de deux quaternions est égale a la somme du produit de l'un par le conjugué de l'autre et du produit de l'autre par le conjugué de l'un, le tout divisé par `2`.

`"<"q_1,q_2">"  =  t_1t_2 + x_1x_2 + y_1y_2 + z_1z_2`
`"<"q_1,q_2">" =  (q_1 bar (q_2) + q_2 bar (q_1))/2`

On en déduit la norme d'un quaternion `q` qui se note `|q|` :

`|q| = sqrt(q bar q)= sqrt(t^2"+"x^2"+"y^2"+"z^2)`

Avant d'étudier la géométrie dans cet espace à 4 dimensions réels, il convient d'étudier la géométrie dans l'espace à 3 dimensions réels, d'étudier ce qu'est un espace vectoriel de dimension 3, comment on peut y définir les rotations, les angles, le produit scalaire et le produit vectoriel.

6) L'espace tridimensionnel `RR^3`

On considère un `RR`-espace vectoriel de dimension `3` nommé `E`. On se place ainsi dans une situation un peu plus générale que celle de `RR^3` dans laquelle il n'y a pas de base canonique ni de produit scalaire canonique ni de produit vectoriel canonique. La base, le produit scalaire et le produit vectoriel devront être construit avec les seuls ressources exprimables de l'espace vectoriel `E`. Et cela ne peut se faire sans l'introduction d'un choix.

On note généralement les vecteurs avec une flêche, sauf exceptions pour des vecteurs singuliers ou par exemple pour les vecteurs d'une base de référence, ceci afin de ne pas allourdire inutillement l'écriture. On note `RR^3"*"` l'espace vectoriel `RR^3` dans lequel on a enlevé le vecteur nul. Et de même pour l'espace vectoriel `E`.

`RR^3"*" = RR^3-{(0,0,0)}`

`E"*" = E-{vec0}`

6.1) Produit scalaire

Le produit scalaire, noté avec le symbole "`"⋅"`" est une application de `E"×"E -> RR` vérifiant la bilinéarité, la commutativité et formant un carré défini positif :

`∀(vecu,vecv,vecw)"∈"E^3 ∀r"∈"RR, `

`vecu"⋅"(vecv"+"vecw) = vecu"⋅"vecv + vecu"⋅"vecw`  
Produit bilinéaire
à droite
Produit scalaire
`vecu"⋅"(rvecv)= r(vecu"⋅"vecv)`
`(vecu"+"vecv)"⋅"vecw = vecu"⋅"vecw + vecv"⋅"vecw`  
Produit bilinéaire
à gauche
`(rvecu)"⋅"vecv= r(vecu"⋅"vecv)`
`vecu"⋅"vecv = vecv"⋅"vecu`
Produit commutatif
`vecv"⋅"vecv ⩽0`
Carré défini positif
`vecv"⋅"vecv"="0  =>vecv"="vec0`

Noter que dans l'expression `rvecu"⋅"vecv`, du fait de la bilinéarité, il n'est pas nécessaire de mettre des parenthèses malgrès que les deux produits soient d'égale priorité syntaxique.

Du fait de la bilinéarité, il suffit de connaitre la valeur du produit scalaire pour les couples de vecteurs d'une base pour déterminer complètement le produit scalaire.

Donc une façon simple de définir un produit scalaire consiste à choisir une base, c'est à dire une liste de vecteurs générateurs et indépendants, et de construire l'unique produit scalaire rendant cette base orthonormée.

`{i,j,k}` générateur `AA vecv"∈"E, ∃(x,y,z)"∈"RR^3, vecv = x i"+"yj"+"zk`
`{i,j,k}` indépendant `AA (x,y,z)"∈"RR^3"*", x i"+"yj"+"zk≠ 0`

Notez que les propriétés logiques d'ensemble de vecteurs générateur et d'ensemble de vecteurs indépendant s'expriment en utilisant un système de coordonnées `(x,y,z)` généré par les structures `RR^3` ou `RR^3"*"` qui sont isomorphes à `E` ou à `E"*"`.

Considéront le produit scalaire noté `"⋅"` pour lequel la base `(i,j,k)` constitura une base orthonormé. Ce produit scalaire doit respecter la table du produit scalaire pour les vecteurs de la base `i, j, k` et doit respecter la bilinéarité. Vous constaterait alors que la propriété de commutativité et de carré défini positif sont des conséquences.

6.2) Base orthonormée `(i,j,k)` 

Par convention, pour tout vecteur `vec v`, on notera le carré `vecv "⋅" vec v"=" v^2`. Ainsi `i^2"="i"⋅"i` et `j^2"="j"⋅"j` et `k^2"="k"⋅"k`.

`i^2=1`
`j^2=1`
`k^2=1`
`i"⋅"j = 0`
`j"⋅"k = 0`
`k"⋅"i = 0`
`j"⋅"i = 0`
`k"⋅"j = 0`
`i"⋅"k = 0`
`"⋅"`
`i`
`j`
`k`
`i`
 `1` 
 `0` 
 `0` 
`j`
`0`
`1`
`0`
`k`
`0`
`0`
`1`

Remarquez que les 9 égalités ne déterminent pas l'ordre des vecteurs `i,j,k` dans la base. C'est pourquoi on ne peut pas extraire de notion de chiralité du produit scalaire ni ordonner les vecteurs de la base.

Etant donné deux vecteurs :

`vecv_1 = x_1i"+"y_1j"+"z_1k`

`vecv_2 = x_2i"+"y_2j"+"z_2k`

Le produit scalaire se développe par bilinéarité comme suit :

`vecv_1"⋅"vecv_2 = (x_1x_2)i^2 + (x_1y_2)i"⋅"j + (x_1z_2)i"⋅"k`
                 `+ (y_1x_2)j"⋅"i + (y_1y_2)j^2 + (y_1z_2)j"⋅"k`
                 `+ (z_1x_2)k"⋅"i + (z_1y_2)k"⋅"j+ (z_1z_2)k^2`

`vecv_1"⋅"vecv_2 = x_1x_2"+"y_1y_2"+"z_1z_2`

La table du produit scalaire pour les vecteurs de la base `i, j, k` déterminant le produit scalaire, étant symétrique, cela entraine que le produit scalaire est commutatif.

Le carré d'un vecteur `vecv` qui se note `v^2`, est alors égale à la somme des carrés de ses composantes dans n'importe quelle base orthonormée. La norme d'un vecteur `vecv` se note `|vecv|` :

`vecv = x i"+"yj"+"zk`

`|vecv| = sqrt(x^2"+"y^2"+"z^2)`

Les carrés des vecteurs de la base `i, j, k` déterminant le produit scalaire, étant strictement positifs (égaux à 1), cela entraine que le produit scalaire forme un carré défini positif.

Il existe un moyen de définir le produit scalaire sans définir d'ensemble base. Il suffit de ne pas garder le choix de l'ensemble base après la construction du produit scalaire. Le produit scalaire est donc définie en choisissant un ensemble base de référence, qui sera donc orthonormée après la construction, sans pour autant munir l'espace vectorielle de cet ensemble base. Néanmoins après cette construction, cet ensemble base jouera nécessairement un rôle canonique comme étant le premier exemple d'ensemble base orthonormée.

6.3) Produit vectoriel

Le produit vectoriel, noté avec le symbole `"∧"` est une application de `E"×"E -> E` vérifiant la bilinéarité et l'antisymétrie.

`vecu"∧"(vecv"+"vecw) = vecu"∧"vecv + vecu"∧"vecw`  
Produit bilinéaire
à gauche
Produit vectoriel
`vecu"∧"(rvecv)= r(vecu"∧"vecv)`
`(vecu"+"vecv)"∧"vecw = vecu"∧"vecw + vecv"∧"vecw`  
Produit bilinéaire
à gauche
`(rvecu)"∧"vecv= r(vecu"∧"vecv)`
`vecu"∧"vecv = - vecv"∧"vecu`
Produit antisymétrique

Noter que dans l'expression `rvecu"∧"vecv`, du fait de la bilinéarité, il n'est pas nécessaire de mettre des parenthèses malgrès que les deux produits soient d'égale priorité syntaxique.

Du fait de cette bilinéarité, il suffit de connaitre la valeur du produit vectoriel pour les couples d'éléments parmis un ensemble de vecteurs générateur pour définir complètement le produit vectoriel.

Une façon simple de définir un produit vectoriel consiste à choisir une base `(i, j, k)` et de construire l'unique produit vectoriel rendant cette base orthonormée directe.

Considéront le produit vectoriel noté `"∧"` pour lequel la base `(i,j,k)` constitura une base orthonormé directe. Ce produit vectoriel doit respecter la table du produit vectoriel pour les vecteurs de la base `i, j, k`, et l'axiome de bilinéarité. Et vous constaterait que la propriété d'antisymétrie est une conséquences.

6.4) Ensemble base orthonormée directe `{i,j,k}` 

`i"∧"i=0`
`j"∧"j=0`
`k"∧"k=0`
`i"∧"j = k`
`j"∧"k = i`
`k"∧"i = j`
`j"∧"i = -k`
`k"∧"j = -i`
`i"∧"k = -j`
`"⋅"`
`i`
`j`
`k`
`i`
 `1` 
 `k` 
 `-j` 
`j`
`-k`
`1`
`i`
`k`
`j`
`-i`
`1`

remarquez que les `9` égalités ne déterminent pas complètement l'ordre des vecteurs `i,j,k` dans la base. Néanmoins elles déterminent un signe et donc l'ordre des vecteurs de la base à permutation circulaire près. Une base `(e_0,e_1,e_2)` est directe si `e_0"∧"e_1=e_2` et elle est indirecte si `e_0"∧"e_1=-e_2`. Selon la table du produit vectoriel, les bases `{(i,j,k),(j,k,i),(kl,j)}` sont ditent directes tandis que les bases `{(j,i,k),(i,k,j),(k,j,i)}` sont dites indirectes.

C'est pourquoi le produit vectoriel permet de définir la chiralité d'une base, mais pas l'ordre exacte des vecteurs de la base, seulement à permutation circulaire près.

Etant donné deux vecteurs :

`vecv_1 = x_1i"+"y_1j"+"z_1k`

`vecv_2 = x_2i"+"y_2j"+"z_2k`

Le produit vectoriel se développe par bilinéarité comme suit :

`vecv_1"∧"vecv_2 = (x_1x_2)i"∧"i + (x_1y_2)i"∧"j + (x_1z_2)i"∧"k`
                  `+ (y_1x_2)j"∧"i + (y_1y_2)j"∧"j + (y_1z_2)j"∧"k`
                  `+ (z_1x_2)k"∧"i + (z_1y_2)k"∧"j+ (z_1z_2)k"∧"k`

`vecv_1"∧"vecv_2 = (y_1z_2 - z_1y_2)i`
                  `+ (z_1x_2-x_1z_2)j`
                  `+ (x_1y_2-y_1x_2)k`

La table du produit vectoriel pour les vecteurs de la base `i, j, k` déterminant le produit vectoriek, étant antisymétrique, cela entraine que le produit vectoriel est antisymétrique.

Etant donné deux vecteurs :

`vecv_1 = x_1i"+"y_1j"+"z_1k`

`vecv_2 = x_2i"+"y_2j"+"z_2k`

Le produit vectoriel se développe par bilinéarité comme suit :

`vecv_1"∧"vecv_2 = (x_1x_2)i"∧"i + (x_1y_2)i"∧"j + (x_1z_2)i"∧"k`
                  `+ (y_1x_2)j"∧"i + (y_1y_2)j"∧"j + (y_1z_2)j"∧"k`
                  `+ (z_1x_2)k"∧"i + (z_1y_2)k"∧"j+ (z_1z_2)k"∧"k`

`vecv_1"∧"vecv_2 = (y_1z_2-z_1y_2)i + (z_1x_2-x_1z_2)j +(x_1y_2-y_1x_2)k`

Pourquoi la base est-elle normé ?

...

 

De même il existe un moyen de définir le produit vectoriel sans définir de base. Il suffit de ne pas garder le choix de la base après la construction du produit vectoriel. Le produit vectoriel est donc définie en choisissant une base de référence, qui sera donc orthonormée directe après la construction, sans pour autant munir l'espace vectorielle de cet base. Néanmoins après cette construction, cet base jouera nécessairement un rôle canonique comme étant le premier exemple de base orthonormée directe.

 

---- 22 mars 2018 ----

 

 

 

 

 

 

 

Les 3 premiers axiomes avec les 3 dernier axiomes peuvent être remplaçés par la propriété d'antisymétrie de l'application bilinéaire ou dit autrement par la commutativité par signe alterné du produit vectoriel, à savoir que ∀(A,B)∈E2 AB = -BA.

Ces 9 axiomes qui représentent la table du produit vectoriel dans l'ensemble {i, j, k} se réécrivent algorithmiquement comme suit : On définie l'opérateur s sur l'ensemble {i, j, k} qui correspond à la permutation circulaire de la base (i, j, k) c'est à dire : s(i)=j, s(j)=k, s(k)=i.

∀(A,B)∈{i,j,k}2, AB = s(B)*(B = s(A)) - s(A)*(A=s(B))

où les expressions entre parenthèse contenant une égalité vallent 0 lorsque l'égalité n'est pas respectée, et 1 lorsque l'égalité est respectée.

Les 9 axiomes du produit vectoriel sont plus riches que les 9 axiomes du produit scalaire. Ils définissent une notion supplémentaire qu'est la chiralité directe. Il y a deux classes de bases orthonormées modulo les rotations dans E. La classe des bases orthonormées directes, et la classe des bases orthonormées inverses. On passe de l'une à l'autre en changeant le signe des vecteurs. Si (i, j, k) est une base orthonormée directe alors (-i,-j,-k) est une base orthonormée inverse.

Mais il est possible de choisir dés le départ de notre construction, une liste de vecteurs générateurs et indépendants (i, j, k) que l'on posera comme étant une base orthonormée inverse, c'est à dire telle que le produit vectoriel inverse noté pareillement que nous allons construire, respectera les 9 axiomes suivants, qui représente la table du produit vectoriel inverse appliquée aux vecteurs de l'ensemble générateur {i, j, k}.

 

 

 

 

 

 

Axiomes de la base orthonormée indirecte (i, j, k) :

Ces 9 axiomes qui représentent la table du produit vectoriel inverse dans l'ensemble {i, j, k} se réécrivent algorithmiquement par : ∀(A,B)∈{i,j,k}2, AB = s(A)*(A=s(B)) - s(B)*(B = s(A))

Reprenons notre première base orthonormée directe (i, j, k) avec ses 9 axiomes définissant le produit vectoriel.

Le produit vectoriel est une application de (E,E) -->ℝ vérifiant la bilinéarité, c'est à dire la linéarité sur chaque argument :

∀(A,B,C)∈E3 ∀r∈ℝ,
      (A+B)∧C = AC + BC
      (r*A)∧B = r*(AB)
      A∧(B+C) = AB + AC
      A∧(r*B) = r*(AB)

Noter que dans l'expression r*AB, du fait de la bilinéarité, il n'est pas nécessaire de mettre des parenthèses malgrès que les deux produits soient d'égale priorité syntaxique.

Du fait de cette bilinéarité, il suffit de connaitre la valeur du produit vectoriel pour les couples d'éléments parmis un ensemble générateur tel que {i, j, k} pour connaitre la valeur du produit vectoriel pour tous les couples de vecteurs.

Etant donné 2 vecteurs A et B. Nous avons :

A = (Ax, Ay, Az)
B = (Bx, By, Bz)
A = Ax*i + Ay*j + Az*k
B = Bx*i + By*j + Bz*k

Et en appliquant la bilinéarité et les 9 axiomes, on déduit que :

Ai = (Ax*i + Ay*j + Az*k)∧i
Ai = Ax*ii + Ay*ji + Az*ki
Ai = -Ay*k + Az*j
Ai = Az*j - Ay*k

Aj= (Ax*i + Ay*j + Az*k)∧j
Aj = Ax*ij + Ay*jj + Az*kj
Aj = Ax*k - Az*i

Ak= (Ax*i + Ay*j + Az*k)∧k
Ak = Ax*ik + Ay*jk+ Az*kk
Ak = -Ax*j + Ay*i
Ak = Ay*i - Ax*j

AB = (Ax*i + Ay*j + Az*k)∧B
AB = Ax*iB + Ay*jB + Az*kB
AB = - Ax*Bi - Ay*Bj - Az*Bk

AB = - Ax*(Bz*j - By*k) - Ay*(Bx*k - Bz*i) - Az*(By*i - Bx*j )
AB = Ax*(By*k - Bz*j) + Ay*(Bz*i - Bx*k) + Az*(Bx*j - By*i)
AB = (Ay*Bz - Az*By)*i + (Az*Bx - Ax*Bz)*j + (Ax*By - Ay*Bx)*k

AB = (Ay*Bz - Az*By, Az*Bx - Ax*Bz, Ax*By - Ay*Bx)

             [ Ay*Bz - Az*By]
AB =  [ Az*Bx - Ax*Bz]
             [ Ax*By - Ay*Bx]

En utilisant des coordonnées indicées et une base {e0, e1, e2} le produit vectoriel se définit comme l'opération matricielle suivante :

A = (A0, A1, A2)
B = (B0, B1, B2)
A = A0*e0 + A1*e1 + A2*e2
B = B0*e0 + B1*e1 + B2*e2

(A0, A1, A2) ∧ (B0, B1, B2) = (A1*B2 - A2*B1, A2*B0 - A0*B2, A0*B1 - A1*B0)

(Li Ai) • (Li Bi) = Li (Ai+1*Bi+2 - Ai+2*Bi+1)

7) Les angles de vecteurs dans 3

On définie l'angle non orienté entre deux vecteurs non nuls A, B, c'est à dire sans tenir compte du sens de rotation. Cet angle noté θ(A,B) est exprimé en tours et appartient à l'intervalle [0, 1/2]. C'est un réel modulo 1 et modulo le signe (x --> -x).

On définie l'angle orienté entre deux vecteurs non nuls A, B, c'est à dire en tenant compte du sens de rotation. Cet angle noté Angle(A,B) est exprimé en tours et appartient alors à l'intervalle [0, 1[. C'est un réel modulo 1.

∀(A,B)∈(E2-{(0,0)}), θ(A,B) ∈ [0,1/2]
∀(A,B)∈(E2-{(0,0)}) Angle(A,B) ∈ [0,1[

Le sens de référence des rotations est défini à partir du choix de la base orthonormée directe ou inverse (i, j, k) et plus particulièrement selon la chiralité choisie directe ou inverse. La notation Angle(A,B) fait donc implicitement référence à la base orthonormée directe ou inverse (i, j, k). Dans une base orthonormée inverse, le sens de référence des rotations est inversé.

Etant donné deux vecteurs non nuls A et B, on peut définir la rotation passant de la direction A à la direction B par le vecteur spine Angle(A,B)*(AB)/|A|*|B|. C'est un vecteur perpendiculaire au plan <A,B> dont le sens indique selon la chiralité le sens de la rotation passant de A/|A| à B/|B|, et dont la norme est égale à l'angle de la rotation passant de A/|A| à B/|B| exprimé en tours.

---- 23 juin 2014 ----

 

Etant donné deux vecteurs non nuls A et B, l'angle a=θ(A,B) et l'angle b=Angle(A,B) respecte les deux formules suivantes :

AB = |A|*|B|*cos(a*2π)
|AB| = |A|*|B|*sin(a*2π)

AB = |A|*|B|*cos(b*2π)
|AB| = |A|*|B|*sin(b*2π)

Le apparait dans les cos et sin car l'angle a est exprimé en tours.

La norme du produit vectoriel de deux vecteurs (A,B) correspond à la surface du parallélogramme définie par ces deux vecteurs (A,B).

|AB| = Surface(A,B)

La direction AB est perpendiculaire au plan des deux vecteurs <A,B>, son sens est tel qu'il forme avec les deux vecteurs, une base directe (A, B, AB), c'est à dire qu'une fois normée il peut être transformée par rotation en la base (i, j, k).

Le produit mixte (AB)•C correspond au volume du parallélépipède signé positivement si le triplet (A,B,C) forme une base directe, et négativement si le triplet (A,B,C) forme une base inverse.

|(AB)•C| = Volume(A,B,C)

8) Les rotations dans 3

Une rotation dans l'espace tridimensionnel est représentée par un vecteur spin dont la direction indique le sens de rotation (selon la règle du tire-bouchon et selon la constante de chiralité du référentiel). La norme du vecteur représente le nombre de tours de rotation. Ainsi un tel vecteur représente non seulement les rotations d'un nombre de tours compris entre [0, 1[ dans l'espace tridimensionnel, mais également les rotations d'un nombre de tours compris entre [0, ∞[, c'est à dire effectuant plus d'un tour. Et il y a une bijection entre cet espace de rotations et l'espace vectoriel de dimension 3 où elles opèrent.

Le vecteur spin w représente une rotation. On l'identifie à sa rotation. Tout vecteur A est transformé par la rotation w en le vecteur w(A). Et cela est valable pour tout vecteur w. Cela revient à définir un opérateur binaire interne de (E,E)-->E.

w∈E,
      w
est un vecteur
      w est une rotation
      A∈E-{0}, w = Angle(A,w(A))*Aw(A)/|A|2

 

 

 

 

---- 10 mars 2018 ----

 

4.15) les quaternions

Considérons l'ensemble des matrices de la forme q =u et v sont des nombres complexes. Cette ensemble, muni de l'addition et du produit de matrice constitue un corps non commutatif. Il est appelé le corps des quaternions H.

Il existe 4 quaternions particulièrements simples que sont {1, i, j, k}. Et le corps des quaternions se developpe en une somme directe de 4 R-espaces vectoriel : H = R*1 + R*i + R*j + R*k. Cela signifie qu'à chaque quaternion q, il existe un unique quadruplet de réel (a,x,y,z) telque q = a + x*i + y*j + z*k.

1 =
i  =
j =
k =

i*i = -1
j*j = -1
k*k = -1

i*j = k
j*k = i
k*i = j

On définie la conjugaison d'un quaternion conj(a + x*i + y*j + z*k) =  a - x*i - y*j - z*k. La conjugaison est un anti-automorphisme car elle change l'ordre du produit : conj(p*q) = conj(q)*conj(p) et conj(p + q) = conj(p) + conj(q). Il existe 3 automorphismes particulièrements simples, rij, rjk, rki, (qui sont des rotations dans R^3) :

rij(a + x*i + y*j + z*k) =  a - y*i + x*j + z*k
rjk(a + x*i + y*j + z*k) = a + x*i - z*j + y*k
rki(a + x*i + y*j + z*k) = a + z*i + y*j - x*k

Les quaternions peuvent se mettent sous la forme d'une somme directe de C-espaces vectoriel, telque par exemple : H = C + C*j. Cela signifie qu'à chaque quaternion q, il existe un unique couple de complex (r,s) telque q = r + s*j. Dans cette exemple, on remarque que la décomposition est lié à la première par les identitées r = a + x*i et s = y + z*i. Cette somme directe établit un sytème de coordonnée dans lequel le produit et la conjugaison ont la forme suivante :

(r1 + s1*j) * (r2 + s2*j) = r1*r2 - s1*conj(s2) + (r1*s2 + s1*conj(r2))*j
conj(r + s*j) = conj(r) - s*j

Les quaternions peuvent se mettent sous la forme d'une somme directe de C-espaces vectoriel correspondant au couple (u,v) définie initialement : H = rij(C) + rij(-j*C). Cela signifie qu'à chaque quaternion q, il existe un unique couple de complex (u,v) telque q = rij(u) - rij(j*v) que l'on note q = (u,v) par commodité. Cette somme directe établit un système de coordonnée dans lequel le produit et la conjugaison ont la forme suivante :

(u1,v1) * (u2,v2) = (u1*u2 - conj(v1)*v2, v1*u2 + conj(u1)*v2)
conj(u,v) = (conj(u),-v)

Les quaternions possèdent une forme quadratique N (et donc une norme) :

N(q) = determinant
N(q) = u*conj(u) + v*conj(v)
N(q) = q*conj(q)
N(q) = a^2 + x^2 + y^2 + z^2
|q| = sqrt(N(q))

 

conj(p*q) = conj(q) *conj(p)
conj(p+q) = conj(p) + conj(q)

conj(conj(q)) = q

On peut calculer l'inverse d'un quaternion de cette façon 1/q = conj(q)/N(q)

On peut définir une forme bilinéaire <p,q> associé à la forme quadratique N(q) :

<q1,q2> = (q1*conj(q2) + conj(q1)*q2)/2
<q1,q2> = (conj(q1)*q2 + q1*conj(q2))/2
<q1,q2> = (N(q1+q2)-N(q1)-N(q2))/2

<q,q> = N(q)

Cela permet de définir la notion d'orthogonalité et la notion d'angle.

H = R + R^3
q = a + V

(a1 + V1)*(a2 + V2) = (a1*a2 - V1¤V2 + a1*V2 + a2*V1 + V1^V2)

a1*a2 = a1*a2
V1*V2 = -V1¤V2 + V1^V2
conj(V) = -V
conj(a) = a
N(a + V) = a*a + V¤V


q = (cos(k/2), sin(k/2)*U) = exp((k/2)*U)
Soit un vecteur V
W = q*V/q
W est un vecteur obtenu par rotation de V d'un angle k autours de l'axe U.


L'ensemble Rorthogonal = 1othogonal = {q telque <q,1> = 0} = {q telque -q = conj(q)}est isomorphe à R^3

Les automorphismes sont tous intérieurs c'est à dire de la forme Sq : p --> q*p/q

Sq est une rotation de l'espace Rorthogonal

 

 Description de la symétrie, Jean SIVARDIERE, EDP sciences, 2004

 

 

Etant donnée un vecteur A, on notes ses coordonnées dans la base (i, j, k) par Ax, Ay, Az. Noter que x, y, z sont ici des attributs ajoutés sous forme de suffixe au nom du vecteur pour désigner ses coordonnées respectivement dans la base (i, j, k), dés lors ils ne sont plus notés en gras puisque ces noms Ax, Ay, Az, désignent des coordonnées réels, et il est impératif de les lier par l'équation A = (Ax, Ay, Az) puisque ce sont des variables distinctes. Cette équation correspond à la représentation matriciel du vecteur relative à la base implicite (i, j, k). Nous avons :

A = (Ax, Ay, Az)
B = (Bx, By, Bz)
A = Ax*i + Ay*j + Az*k
B = Bx*i + By*j + Bz*k

Et en appliquant la bilinéarité et les 9 axiomes, on déduit que :

Ai = Ax
Aj = Ay
Ak = Az
iA = Ax
jA = Ay
kA = Az

AB = (Ax*i + Ay*j + Az*k)•B
AB = Ax*iB + Ay*jB + Az*kB
AB = Ax*Bx + Ay*By + Az*Bz

La norme d'un vecteur |A| est définie par :

|A| = sqrt(A2)
|A| = sqrt(Ax2 + Ay2 + Az2)

Mais on utilisera plus souvent le carré qui est une expression plus simple :

A2 = Ax2 + Ay2 + Az2

Le produit scalaire correspond aux opérations matricielles suivantes :

(Ax, Ay, Az) • (Bx, By, Bz) = Ax*Bx + Ay*By + Az*Bz
(Ax, Ay, Az)2 = Ax2 + Ay2 + Az2

Que l'on peut aussi écrire par :

∀(x, y, z, x, y, z)∈ℝ6,
      (x, y, z) • (x, y, z) = x*x + y*y + z*z
      (x, y, z)2 = x2 + y2 + z2

On adopte une seconde notation qui utilise des indices entiers modulo 3. On choisie cette représentation pour pouvoir exprimer simplement une permutation circulaire des vecteurs de base, il suffira d'ajouter (ou de soustraire) 1 aux indices. La base (i, j, k) est notée (e0, e1, e2) et les composantes d'un vecteur (Ax, Ay, Az) sont notées (A0, A1, A2). La variable indicée peut être considérée comme une fonction appliquée à l'indice, et sera notée en gras seulement si l'image est un vecteur. Les indices sont des entiers modulo 3. Dans cette seconde notation, les variables i, j, k seront réutilisées pour désigner des indices entiers modulo 3, les suffixes x, y, z seront réutilisés pour désigner d'autres éléments, et on laissera le soin au contexte de lever les ambiguités.

Les 9 axiomes qui représentent la table du produit scalaire dans l'ensemble {e0, e1, e2} se réécrivent en la propriété suivante :

∀(i,j)∈(ℤ/3ℤ)2, eiej = (i=j)

ℤ/3ℤ désigne l'ensemble des entiers modulo 3 représenté par {0, 1, 2}. L'expression (i=j) vaut 0 lorsque i n'est pas égale à j, et vaut 1 lorsque i est égale à j.

Nous avons :

A = (A0, A1, A2)
B = (B0, B1, B2)
A = A0*e0 + A1*e1 + A2*e2
B = B0*e0 + B1*e1 + B2*e2

Et en appliquant la bilinéarité et les 9 axiomes, on déduit que :

AB = Σi Ai*Bi
∀i, Aei = Ai
∀i, eiA = Ai

où l'on sous-entend que la quantification ∀i désigne tout les éléments i appartenant à ℤ/3ℤ, c'est à dire tous les entiers modulo 3, et que la somme Σi s'effectue pour tous les indices i appartenant à ℤ/3ℤ.

La norme d'un vecteur est définie par :

 |A| = sqrt(Σi Ai2)

Le carré d'un vecteur est définie par :

A2 = Σi Ai2

Le produit scalaire correspond à des opérations matricielles qui peuvent s'exprimer de manière algorithmique. D'une façon analogue à l'opérateur Σi on définie l'opérateur produit directe Li qui crée une liste d'éléments d'indice appartenant à ℤ/3ℤ. D'un point de vue informatique, un même algorithme sous-jacent est mis en oeuvre dans les deux opérations Σi et Li. Nous avons par définition :

(Li Ai) = (A0, A1, A2)

Le produit scalaire correspond aux opérations matricielles suivantes :

(Li Ai) • (Li Bi) = Σi Ai*Bi
(Li Ai)2 = Σi Ai2

Ces opérations matricielles sont valables dans toutes les bases vérifiant les 9 axiomes, c'est à dire dans toutes les base dites orthonormées. Et il découle de ces 9 axiomes et de la bilinéarité que le produit scalaire est commutatif :

∀(A,B)∈E2, AB = BA

---- old ----

Et le produit scalaire que nous construisons n'est pas préalablement supposé commutatif.

Les 3 derniers axiomes peuvent être remplaçés par la propriété de symétrie de la forme bilinéaire ou dit autrement par la propriété de commutativité du produit scalaire.

Les 9 égalités qui représentent la table du produit scalaire dans l'ensemble `{i,j,k}` se réécrivent en la propriété suivante :

`AA(vecu,vecv)"∈"{i,j,k}^2, vecu"⋅"vecv = (:vecu"="vecv:)`

où l'expression `(:vecu"="vecv:)` vaut `0` lorsque `vecu` n'est pas égale à `vecv` et vaut `1` lorsque `vecu` est égale à `vecv`.

 

---- 22 juin 2014 ----

D'autre part, chaque quaternion `q_1 = t_1"+"ix_1"+"jy_1"+"kz_1` correspond à la translations dans l'espace `RR^4` définie par `p|->p"+"q`. Ainsi l'ensemble des translations de l'espace `RR^4` munie de la composition forme un groupe isomorphe au groupe `(bbbH,"+")`.