Nous allons présenter les matrices d'un point de vue opérationnel en visualisant les flux d'informations et leurs traitements.
On utilise l'espace vectoriel R3. On pose (i,j,k) la base canonique i=(1,0,0)t, j=(0,1,0)t, k=(0,0,1)t.
Dans un espace vectoriel, l'utilisation de coordonnées nécessite de choisire une base. Le choix de cette base étant arbitraire, les coordonnées perdent de leur pertinences. Pour une configuration données, les valeurs indépendantes de la base dites invariantes par changement de base constituent les véritables caractéristiques de la configuration. Elles permettent d'établir une classification indépendante de tout choix arbitraire.
Indépendament du choix d'une base, on considère deux sortes de vecteur, les vecteurs colonnes et les vecteurs lignes, et on définit l'opérateur de transposition t pour passer de l'un à l'autre (vt)t= v. Par défaut un vecteur est un vecteur colonne. Mais il est plus facile d'écrire un vecteur ligne. C'est pourquoi un vecteur colonne sera souvent représenté par un vecteur ligne transposé.
Nous n'utiliserons pas les notations de l'algèbre tensoriel qui sont particulièrement obscures pour les personnes non initiées. On présente le calcul matriciel sous une forme davantage géométrique et procédurale, c'est à dire que l'on décrit un processus de calcul opérant sur un tableau de coordonnées. La représentation géométrique et la description des processsus de calcul est beaucoup plus parlante et palpable qu'une somme indicée avec un ordre d'indice savant, puis on écrit le programme informatique correspondant.
La définition géométrique nous amène à considérer deux types de matrice de dimension 1 que sont les vecteurs colonnes et les vecteurs lignes.
La définition du calcul matriciel est récurcive, en ce que les éléments d'une matrice peuvent être eux-même des matrices. La seul contrainte est la suivante : Etant données deux matrices A et B, le produit est autorisé si et seulement si le nombre de colonnes de la matrice A est égale au nombre de lignes de la matrice B et que leurs éléments peuvent à leur tours se combiner en produits selon cette même règle si ce sont des matrices.
Le produit matriciel est associatif dans la mesure où il est autorisé par la règle précédente.
On représente la i-ème coordonnée d'un vecteur V par l'expression V(i). Ce premier indice représente toujours un numéro de ligne. On représente la coordonnée d'une matrice A se trouvant à la ligne i et la colonne j par l'expression A(i,j). Le premier indice représente toujours un numéro de ligne et le second indice représente toujours un numéro de colonne.
Pour rester dans cette logique, les coordonnées d'un vecteur ligne seront représenté par l'expression V(1,j), de tel sorte que le premier indice désigne toujours un numéro de ligne et le second indice, un numéro de colonne. On écrira de façon condencée A(i,j)=Aij ainsi que V(i)=Vi et pour les vecteurs lignes on ignorera l'indice de ligne dans l'expression condensée V(1,j)=Vj.
Il est important de connaître les moyens mémotechnique pour vérifier si un produit de matrice est correcte. Considérons une matrice A et une matrice colonne V :
[A11 A12 A13] [V1]
A = [A21 A22 A23] V = [V2]
[A31 A32 A33] [V3][A11*V1 + A12*V2 + A13*V3]
A*V = [A21*V1 + A22*V2 + A23*V3]
[A31*V1 + A32*V2 + A33*V3]
Dans lle vecteur A*V, on passe d'une coordonnée à la suivante en incrémentant l'indice de ligne de tout les termes A rencontrés : A(i,j) --> A(i+1,j). Chaque coordonnée est une somme de mônômes, et on passe d'un monôme au suivant en incrémentant à la fois l'indice de V et l'indice de colonne de A : A(i,j) et V(k) --> A(i,j+1) et V(k+1).
[A11 A12 A13] [B11 B12 B13]
A = [A21 A22 A23] B = [B21 B22 B23]
[A31 A32 A33] [B31 B32 B33][A11*B11 + A12*B21 + A13* B31, A11*B12 + A12*B22 + A13* B32, A11*B13 + A12*B23 + A13* B33]
A*B = [A21*B11 + A22*B21 + A23* B31, A21*B12 + A22*B22 + A23* B32, A21*B13 + A22*B23 + A23* B33]
[A31*B11 + A32*B21 + A33* B31, A31*B12 + A32*B22 + A33* B32, A31*B13 + A32*B23 + A33* B33]
Dans la matrice A*B, on passe à la coordonnée de droite en incrémentant l'indice de colonne de tous les termes B : B(i,i) --> B(i,j+1), et on passe à la coordonnée en dessous en incrémentant l'indice de ligne de tous les termes A : A(i,j) --> A(i+1,j). Chaque coordonnée est une somme de mônômes, on passe d'un monôme au suivant en incrémentant l'indice de colonne de A et l'indice de ligne de B : A(i,j) et B(p,q) --> A(i,j+1) et B(p+1,q).
La règle de calcul des produit A*V et A*B peut s'écrire comme suit :
(A*V)(i) = sum(A(i,j)*V(j), j = 1..3)
(A*B)(i,j) = sum(A(i,k)*B(k,j), k = 1..3)
Néanmoins l'expression reste obscure. On va décentraliser le calcule et le réintégrer dans la matrice elle-même afin que celle-ci devienne un objet informatique à part entière, c'est à dire un programme. Une matrice est un programme possédant nL entrés dites "Lignes" ordonnées (numérotées de 1 à nl), et nC sorties dites "Colonnes" ordonnées (numérotées de 1 à nc). Pour combiner deux matrices, il faut relier dans l'ordre les sorties "Colonnes" de la première matrice aux entrés "Lignes" de la seconde matrice. Le programme obtenu est celui de la matrice produit.
La matrice étant un programme, elle est perçue comme un opérateur agissant, l'éxecution de son programme étant son agissement. Par exemple un vecteur (vecteur colonne) de dimension n, possède une sortie qui correspondra au flux des coordonnées du vecteur qui seront transmises dans l'ordre, et possède n entrés en parallèles. Le flux parallèle arrivant sur ces n entrés se combine en une somme de produits et crée autant de lignes que nécessaire. Ainsi le vecteur (X,Y)t, vecteur colonne, allimenté par les flux (u1,u2,u3) et (v1,v2,v3) produit le vecteur (u1*X + v1*Y, u2*X + v2*Y, u3*X + v3*Y)t :
Le vecteur transposé (X,Y), vecteur ligne, possédera n sorties qui correspond à une transmission parallèle de ses n composantes, et possédera une entré. Le flux parallèle arrivant sur cette entrée se combine en une somme de produits et crée autant de lignes que nécessaire. Ainsi le vecteur (X,Y) allimenté par le flux (u1,u2,u3) produit la matrice suivante :
Le calcul n'est pas plus lié aux entrés qu'aux sorties, il doit être au coeur de l'objet informatique "Matrice". C'est à dire qu'il peut s'effectuer soit au moment où on lit lorsque la matrice émet son flux parallèle de sortie, ou bien soit au momemnt où l'on écrit lorsque la matrice reçoit un flux parallèle d'entrée.
Pour obtenir d'une matrice A, son coéfficient A(i,j), on va écouter la sortie numéro j et intercepter la i ème valeur qui est transmise par cette sortie.
Les flèches indique bien des flux de données. Les flèches parallèles, c'est à dire arrivant sur les entrées d'une même matrice, doivent transporter des flux de même taille. La taille d'un flux lorsque celui-ci émane d'une première matrice (matrice dont les entrées sont non connectées) est égale à la taille de la colonne source. Mais après une opération de produit, la taille du flux obéït à la rège suivante, elle est de la taille de la colonne source de la première matrice source, et ne change donc pas. Voici un produit de 5 matrices.
Dans cette exemple, les flêches (autre que les 3 premières non connectées), transportent des flux de tailles tous égale à 3, la taille de la colonne source de la matrice source.
D'un point de vue mémotechnique on retiendra que dans un produit de matrices quelconques, il faut à chaque fois relier les colonnes de chaque matrice aux lignes de la matrice suivante.
Avec la seule contrainte sur la taille des flux parallèles qui doivent être égaux, nous pouvons généraliser la notion de produit en concevant d'autres shémas de produit matriciel davantage ésotérique.
On circonscrit tout d'abord certaine constructions.
Une sorte de produit de matrice dans lequel les sorties de la première matrice sont connectées aux entrés de la seconde matrice d'une façon quelconque, c'est à dire, nous dirons "composé au sens générale". Une telle configuration se ramène à l'insertion d'une matrice, opérant la composition, que nous appelons connecteur. Par exemple :
La matrice connecteur est uniquement composée de vecteurs appartenant à la base canonique, c'est à dire composé de vecteur comprenant un seul 1 et que des zéros. Il y a donc n*m matrices connecteurs de taille n*m.
Une sorte de produit de matrice dans lequel une première partie des entrés de la matrice est connectées aux sorties d'une matrice sources et où la seconde partie des entrées est connectées aux sorties d'une seconde matrice sources. La connection est donc parallèle, nous dirons "composé en parallèle". Une telle configuration se ramène à concaténer les matrices sources. Par exemple :
Dans le cas générale, on ne peut pas simplifier aussi simplement le shémat, mais l'opérateur | de concaténation en ligne peut se combiner avec l'opérateur de produit matriciel et produire des formules du genre (A|B)*C, (A|(B*C))*D
Une sorte de produit de matrice dans lequel une première partie des sortie de la matrice est connectées à une seconde matrice et où la seconde partie des entrées est connectées à une autre matrice. La connection fait une fourche, Une telle configuration se ramène à scinder la matrices sources en deux matrices source. Par exemple :
Dans le cas générale, on ne peut pas simplifier aussi simplement le shémat, mais les opérateurs ¦n et ¦n de scission en ligne (¦n pour les n première colones et ¦n pour les colonnes n+1 et suivantes) peut se combiner avec l'opérateur de produit matriciel et produire des formules du genre (A¦2)*B*(A¦2)
Le shémat peut contenire des boucles. Il correspond alors à un programme qui n'est pas en mesure de se résoudre lui-même. Néanmoins cela correspond à une combinaison infini de produits, de concaténations, et de scissions de matrices, qui, si elle converge (c'est à dire, si elle reste constante), est évaluable par un meta programme. Le produit est infini mais la résolution reste linéaire. La matrice convergente est solution d'un système d'équations linéaires. Par exemple concidérons le shémat suivant :
Dans cette exemple, on a évalué en partie le shémat et on a produit un vecteur intermédiaire (a*u + b*v, c*u + d*v)t que nous posons égale à (p, q)t. Posons le flux inconnu (X, Y, Z). Après une itération, nous obtenons le vecteur (x*p + X*q, y*p + Y*q, z*p + Z*q)t et nous obtenons un système de 3 équations à 3 inconnues {X = x*p + X*q, Y = y*p + Y*q, Z = z*p + Z*q} qui admet comme solution X = x*p/(1-q), Y = y*p/(1-q), Z = z*p(1-q). La matrice correspondant au shémas est donc égale à p*(1+q/(1-q))*(x, y, z)t c'est à dire en remplaçant p et q par leur valeur :
(a*u + b*v)*(1+(c*u + d*v)/(1-c*u - d*v))*(x, y, z)t
Enumérons les différentes décompositions possibles par blocs lignes et blocs colonnes des produits A*V et A*B : On note ACol(i) le vecteur colonne placé à la i ème colonne dans la matrice A, et ALign(i) le vecteur ligne placé à la i ème ligne dans la matrice A. On note un vecteur colonne sous forme d'un vecteur ligne à l'aide de l'opérateur de transposition t.
A = (ACol(1), ACol(2), ACol(3)) = (ALign(1)t, ALign(2)t, ALign(3)t)t
ACol(1) = (A11, A21, A31)t ALign(1) = (A11, A12, A13)
ACol(2) = (A12, A22, A32)t ALign(2) = (A21, A22, A23)
ACol(3) = (A13, A23, A33)t ALign(3) = (A31, A32, A33)
De même pour B :
B = (BCol(1), BCol(2), BCol(3)) = (BLign(1)t, BLign(2)t, BLign(3)t)t
BCol(1) = (B11, B21, B31)t BLign(1) = (B11, B12, B13)
BCol(2) = (B12, B22, B32)t BLign(2) = (B21, B22, B23)
BCol(3) = (B13, B23, B33)t BLign(3) = (B31, B32, B33)
Considérons deux matrices A, B et un vecteur colonne V :
A*V = (ALign(1)t, ALign(2)t, ALign(3)t)t * V = (ALign(1)*V, ALign(2)*V, ALign(3)*V)t
ALign(1)*V = A11*V1 + A12*V2 + A13*V3
ALign(2)*V = A21*V1 + A22*V2 + A23*V3
ALign(3)*V = A31*V1 + A32*V2 + A33*V3
A*B = (ALign(1)t, ALign(2)t, ALign(3)t)t * B = (ALign(1)*B, ALign(2)*B, ALign(3)*B)tALign(1)*B = (A11*B11+A12*B21+A13*B31, A11*B12+A12*B22+A13*B32, A11*B13+A12*B23+A13*B33)
ALign(2)*B = (A21*B11+A22*B21+A23*B31, A21*B12+A22*B22+A23*B32, A21*B13+A22*B23+A23*B33)
ALign(3)*B = (A31*B11+A32*B21+A33*B31, A31*B12+A32*B22+A33*B32, A31*B13+A32*B23+A33*B33)
Considérons deux matrices A, B
A*B = (ALign(1)t, ALign(2)t, ALign(3)t)t * (BCol(1), BCol(2), BCol(3))[ALign(1)*BCol(1), ALign(1)*BCol(2), ALign(1)*BCol(3)]
A*B = [ALign(2)*BCol(1), ALign(2)*BCol(2), ALign(2)*BCol(3)]
[ALign(3)*BCol(1), ALign(3)*BCol(2), ALign(3)*BCol(3)]ALign(1)*BCol(1) = A11*B11 + A12*B21 + A13* B31
ALign(1)*BCol(2) = A11*B12 + A12*B22 + A13* B32
ALign(1)*BCol(3) = A11*B13 + A12*B23 + A13* B33
ALign(2)*BCol(1) = A21*B11 + A22*B21 + A23* B31
ALign(2)*BCol(2) = A21*B12 + A22*B22 + A23* B32
ALign(2)*BCol(3) = A21*B13 + A22*B23 + A23* B33
ALign(3)*BCol(1) = A31*B11 + A32*B21 + A33* B31
ALign(3)*BCol(2) = A31*B12 + A32*B22 + A33* B32
ALign(3)*BCol(3) = A31*B13 + A32*B23 + A33* B33
A*B = (ACol(1), ACol(2), ACol(3)) * (BLign(1)t, BLign(2)t, BLign(3)t )t = ACol(1)*BLign(1) + ACol(2)*BLign(2)+ ACol(3)*BLign(3)
[A11*B11, A11*B12, A11*B13]
ACol(1)*BLign(1) = [A21*B11, A21*B12, A21*B13]
[A31*B11, A31*B12, A31*B13][A12*B21, A12*B22, A12*B23]
ACol(2)*BLign(2) = [A22*B21, A22*B22, A22*B23]
[A32*B21, A32*B22, A32*B23][A13*B31, A13*B32, A13*B33]
ACol(3)*BLign(3) = [A23*B31, A23*B32, A23*B33]
[A33*B31, A33*B32, A33*B33]
A*B = A*(BLign(1)t, BLign(2)t, BLign(3)t)t
[A11*BLign(1) + A12*BLign(2) + A13*BLign(3)]
A*B = [A21*BLign(1) + A22*BLign(2) + A23*BLign(3)]
[A31*BLign(1) + A32*BLign(2) + A33*BLign(3)]BLign(1) = (B11, B12, B13)
BLign(2) = (B21, B22, B23)
BLign(3) = (B31, B32, B33)
A*B = A*(BCol(1), BCol(2), BCol(3)) = (A*BCol(1), A*BCol(2), A*BCol(3))
[A11*B11, A12*B21, A13*B31]
A*BCol(1) = [A21*B11, A22*B21, A23*B31]
[A31*B11, A32*B21, A33*B31]
[A11*B12, A12*B22, A13*B32]
A*BCol(2) = [A21*B12, A22*B22, A23*B32]
[A31*B12, A32*B22, A33*B32]
[A11*B13, A12*B23, A13*B33]
A*BCol(3) = [A21*B13, A22*B23, A23*B33]
[A31*B13, A32*B23, A33*B33]
---- 3 mars 2013 ----
On définie le rang d'une liste de vecteurs dim(u,v,w,...) comme étant la dimension de l'espace vectoriel engendré par ces vecteurs. Le rang constitue un invariant par automorphisme vectoriel. Quelque soit un automorphisme A et des vecteurs u,v,w, nous avons dim(u,v,w) = dim(A(u),A(v),A(w)). C'est donc une caractéristique indépendante du choix de la base. Voir Les configuration de vecteurs
Etant donné une base (e1, e2, e2) et une autre base (e1', e2', e3'). Soit l'automorphisme r qui transforme la base (e1,e2,e3) en la base (e1', e2', e3'). Nous avons :
r(e1) = e1'
r(e2) = e2'
r(e3) = e3'
Soit un vecteur v que nous exprimons dans la base (e1,e2,e3) puis dans la base (e1', e2', e3') comme suit :
v = x*e1 + y*e2 + z*e3
v = x'*e1' + y'*e2' + z'*e3'
La représentation matricielle V du vecteur v dans la base (e1,e2,e3), est la matrice colonne contenant les coordonnées x, y, z. La représentation matricielle V' du vecteur v dans la base (e1', e2', e3'), est la matrice colonne contenant les coordonnées x', y', z'. On les note aussi de façon transposés en lignes, avec l'opérateur de transposition t . Ainsi nous avons les deux matrices colonnes suivantes :
V = (x, y, z)t
V'= (x', y', z')tx*e1 + y*e2 + z*e3 = x'*e1' + y'*e2' + z'*e3'
x*e1 + y*e2 + z*e3 = x'*r(e1) + y'*r(e2) + z'*r(e3)
Puisque r est linéaire, nous avons :
x*e1 + y*e2 + z*e3 = r(x'*e1 + y'*e2 + z'*e3)
Soit R la représentation maticielle de
r dans le base (e1,e2,e3), nous avons donc
:
V = R*V'
Soit un endomorphisme vectoriel m quelconque. Soit sa représentation matricielle M dans la base (e1,e2,e3) et M' dans la base (e1',e2',e3'). Soit u le vecteur image de v par m. Soit sa représentation matricielle U dans la base (e1,e2,e2) et U' dans la base (e1',e2',e3').
m(v) = u.
M*V = U
M*(R*U') = R*V'
R-1*M*R*U' = V'
R-1*M*R = M'
Ainsi lorsque l'on change de base la représentation matricielle M d'un endomorphisme est conjugué par la matrice de changement de base R pour produire une nouvelle matrice M' = R-1*M*R. Les matrices M et M' sont dites semblables. De même deux endomorphismes sont dits semblables si il existe un automorphisme qui conjugue l'un pour produire l'autre.
Ce qui est invariant par changement de base, dans une matrice M, est alors représenté par l'ensemble des matrices semblables à M :
{ R-1*M*R / R est un automorphisme de R3}
5) Le polynôme caractéristique
Le polynôme caractéristique d'un endomorphisme m, noté Pm, est par définition :
Pm(X) = det(X*id - m)
Pm(X) = (X-λ1)*(X-λ2)*(X-λ3)
Pm(X) = X3 - tr(m)*X2 + Z(m)*X - det(m)
Les caractéristiques det (determinant), Z (caracteristique seconde), tr (trace) sont invariantes par changement de base et peuvent donc être appliqués aussi bien à une matrice qu'à un endomorphisme.
tr(A) = A11
+ A22
+ A33
Z(A) = A11*A22 - A12*A21
+ A22*A33 - A23*A32
+ A33*A11 - A31*A13det(A) = A11*(A22*A33 - A23*A32)
+A22*(A33*A11 - A31*A13)
+A33*(A11*A22 - A12*A21)
On passe d'une ligne à la suivante en incrémentant les indices de façon cyclique 1-->2-->3-->1-->2.
Z(A) = (tr(A)2 - tr(A2))/2
det(A) = tr(A3)/3 - tr(A2)*tr(A)/2 + tr(A)3/6
(valable que pour la dimenssion 3)
Le polynôme caractéristique annule l'endomorphisme. Ainsi Pm(m) = 0. Le polynome minimale (Le polynôme de plus petit degré qui annule m) divise le polynôme caractèristique.
6) La suite des invariants de similitude (Réduction de frobenius)
Tout endomorphisme u se décompose en un produit directe d'endomorphismes dont les polynômes caractéristiques sont ordonnés selon la relation de divisibilité. La suite des invariants de similitude de u est la suite de ces polynôme annulateur (Pi(u)=0) partant du polynôme minimale pour aller au polynôme caractéristique P1, P2, P3... avec Pi divise Pi+1. Elle constituent l'ensemble exhaustifs des invariants associés à la matrice. Cela signifie que tout autre invariant se calcule à partir de ceux là. Cela est équivalent à dire que deux matrices, ayant la même suite d'invariants de similitude, sont nécessairement semblables.
7) Les formes linéaires et l'espace dual
On définie l'espace dual des formes linéaires. Soit une base
(e1,e2,e3), on définie canoniquement la base duale (f1,f2,f3)
qui constitue une base de l'espace dual, l'espace
des formes linéaires sur E, de la façon suivante :
f1(e1)=1, f1(e2)=0, f1(e3)=0
f2(e1)=0, f2(e2)=1, f2(e3)=0
f3(e1)=0, f3(e2)=0, f3(e3)=1
Soit un vecteur v de composante (v1,v2,v3) dans la base (e1,e2,e3). Nous avons :
v = v1*e1 + v2*e2 + v3*e3
f1(v) = v1
f2(v) = v2
f3(v) = v3
Soit une forme linéaire k de composante (k1,k2,k3) dans la base (f1,f2,f3). Nous avons :
k = k1*f1 + k2*f2 + k3*f3
k(v) = k1*v1 + k2*v2 + k3*v3
On note le produit scalaire k*v = k(v) = v*k = v(k). Car il y a un isomorphisme canonique entre l'espace et son dual dual : v-->(k-->k(v)).
Etant donné un endomorphisme m, la représentation matricielle de m dans la base (e1, e2, e3) est :
[f1(m(e1)) f1(m(e2)) f1(m(e3))]
[f2(m(e1)) f2(m(e2)) f2(m(e3))]
[f3(m(e1)) f3(m(e2)) f3(m(e3))]
Soit une autre base (e1', e2', e3'). Soit les composantes (v1', v2', v3') de v dans cette base, et soit les formes linéaires (f1',f2',f3') constituant la base dual de (e1',e2',e3') :
v' = x'*e1' + y'*e2' + z'*e3'
f1'(e1')=1, f1'(e2')=0, f1'(e3')=0
f2'(e1')=0, f2'(e2')=1, f2'(e3')=0
f3'(e1')=0, f3'(e2')=0, f3'(e3')=1
La représentation matricielle V du vecteur v dans la base (e1,e2,e3), est la matrice colonne contenant les coordonnées x, y, z. La représentation matricielle V' du vecteur v dans la base (e1', e2', e3'), est la matrice colonne contenant les coordonnées x', y', z'. On les note aussi de façon transposés en lignes, avec l'opérateur de transposition t . Ainsi nous avons les deux matrices colonnes suivantes :
V = (x, y, z)t
V'= (x', y', z')tx*e1 + y*e2 + z*e3 = x'*e1' + y'*e2' + z'*e3'
x*e1 + y*e2 + z*e3 = x'*m(e1) + y'*m(e2) + z'*m(e3)
Puisque m est linéaire, nous avons :
x*e1 + y*e2 + z*e3 = m(x'*e1 + y'*e2 + z'*e3)
Soit M la représentation maticielle de
m dans le base (e1, e2, e3), nous avons
donc :
V = M*V'
Soit un endomorphisme vectoriel m quelconque. Soit sa représentation matricielle M dans la base (e1,e2,e3) et M' dans la base (e1',e2',e3'). Soit u le vecteur image de v par m. Soit sa représentation matricielle U dans la base (e1,e2,e2) et U' dans la base (e1',e2',e3').
m(v) = u.
M*V = U
M*(R*U') = R*V'
R-1*M*R*U' = V'
R-1*M*R = M'
Ainsi lorsque l'on change de base la représentation matricielle M d'un endomorphisme est conjugué par la matrice de changement de base R pour produire une nouvelle matrice M' = R-1*M*R. Les matrices M et M' sont dites semblables. De même deux endomorphismes sont dits semblables si il existe un automorphisme qui conjugue l'un pour produire l'autre.
Ce qui est invariant par changement de base, dans une matrice M, est alors représenté par l'ensemble des matrices semblables à M :
{ R-1*M*R / R est un automorphisme de R3}
5) Le produit scalaire
L'espace vectoriel ne peut définire le produit scalaire (bien que son espace sous-jacent R3 possède de façon canonique un produit scalaire). Il faut ajouter un opérateur supplémentaire à la structure d'espace vectoriel, ce que nous faisons en ajoutant le produit scalaire, une opération bilinéaire non dégénéré que par pragmatisme on explicite dans une base de référence. Sans altérer à la généralité, l'analyse vectorielle nous assure que le produit scalair s'exprime relativement à une base, par une matrice symétrique comme suit :
[0 -c b] [B1]
A·B = AGB = [A1 A2 A3] [c 0 -a] [B2]
[-b a 0] [B3]
La matrice de Gram, où matrice métrique, G est une matrice symétrique, non dégénéré (de déterminant non nul). G est la matriceunité lorque le repère est orthonormé.
On définie une métriue