Comment déterminer explicitement une base orthogonale à partir d'une décomposition en carrés ?

Les notations précédentes sont conservées.

Connaissant \(n\) formes linéaires, linéairement indépendantes \(f_1,f_2,\ldots,f_n\), il s'agit de chercher explicitement une base \((\epsilon_1,\epsilon_2,\ldots,\epsilon_n)\) vérifiant les conditions :

\(\forall(i,j), 1\leq i\leq n , 1\leq j\leq n\), \(f_i(\epsilon_j)=\delta_{i,j}\).

On va donner deux méthodes.

Première méthode

Soit \(j\) un entier compris entre 1 et \(n\). Le vecteur \(\epsilon_j\) satisfait aux \(n\) relations :

\(\begin{array}{cc}\forall i, 1\leq i\leq n, i\neq j,& f_i(\epsilon_j)=0\\& f_j(\epsilon_j)=1\end{array}\)

Soit \((e_1,e_2,\ldots,e_n)\) une base de \(E\) et \((e^*_1,e^*_2,\ldots,e^*_n)\) sa base duale. Alors en exprimant \(\epsilon_j\) sur la base \((e_1,e_2,\ldots,e_n)\) et les formes \(f_i\) sur la base \((e^*_1,e^*_2,\ldots,e^*_n)\), les conditions précédentes se traduisent par un système de \(n\) équations à \(n\) inconnues qui sont les coordonnées de \(\epsilon_j\) sur \((e_1,e_2,\ldots,e_n)\).

Donc on trouve la base \((\epsilon_1,\epsilon_2,\ldots,\epsilon_n)\) en résolvant \(n\) systèmes de \(n\) équations à \(n\) inconnues.

En fait les premiers membres de ces systèmes sont les mêmes, seuls changent les deuxièmes membres. Par conséquent, dans la pratique, il suffit d'utiliser une fois la méthode du Pivot de Gauss avec un second membre quelconque puis de trouver les solutions en prenant successivement tous les seconds membres adéquats. L'exemple qui va être donné illustrera bien l'algorithme.

Deuxième méthode

Elle consiste à trouver une formule traduisant le procédé précédent.

Les formes \(f_i\) étant données par la décompositions en carrés, on connaît la matrice \(R\) de passage de la base \((e^*_i\) à la base \((f^i\). Pour déterminer les vecteurs \(\epsilon_1,\epsilon_2,\ldots,\epsilon_n\) tels que \(\forall i, 1\leq i\leq n\), \(\epsilon_i^*=f_i\), il suffit de connaître l'expression de chacun d'eux dans la base \((e_1,e_2,\ldots,e_n)\). Autrement dit il s'agit de déterminer la matrice de passage \(P\) de la base \((e_1,e_2,\ldots,e_n)\) à la base \((\epsilon_1,\epsilon_2,\ldots,\epsilon_n)\).

Or \(P\) est la matrice de l'application identique de \(E\) en choisissant \((\epsilon_1,\epsilon_2,\ldots,\epsilon_n)\) comme base de \(E\) espace de départ, et \((e_1,e_2,\ldots,e_n)\) comme base de \(E\) espace d'arrivée. Cela peut être schématisé de la manière suivante :

\(\underset{z_i}{E}\underset{P}{\xrightarrow{Id_E}}\underset{e_i}{E}\)

Alors on sait que \(^tP\) est la matrice de l'application identique de \(E^*\) (qui est la transposée de l'application identique de \(E\)) en choisissant \((e_1^*,e^*_2,\ldots,e_n^*)\) comme base de \(E^*\) espace de départ et \((\epsilon_1^*,\epsilon_2^*,\ldots,\epsilon_n^*)\) comme base de \(E^*\) espace d'arrivée. Cela peut être schématisé de la manière suivante :

\(\underset{e^*_i}{E*}\underset{^tP}{\xrightarrow{Id_E*}}\underset{z^*_i}{E^*}\)

En remplaçant dans cette formule \(\epsilon_i^*\) par \(f_i\) cela donne :

\(\underset{e^*_i}{E*}\underset{tP}{\xrightarrow{Id_E^*}}\underset{f_i}{E^*}\)

Donc \(^tP\) est la matrice de passage de la base \((f_i)\) à la base \((e^*_i)\). Et par conséquent \((^tP)^{-1}\) est la matrice de passage de la base \((e^*_i)\) à la base \((f_i)\), soit \(R\). Donc \((^tP)^{-1}=R\) ce qui équivaut à \(P=(^tR)^{-1}\).

Le résultat obtenu est le suivant :

Propriété

Soit \((e_1,e_2,\ldots,e_n)\) une base de \(E\) et \((f_1,f_2,\ldots,f_n)\) une base de \(E^*\). Soit \(R\)la matrice de passage de la base \((e^*_i)\) à la base \((f_i)\).

Soit la base \((\epsilon_1^*,\epsilon_2^*,\ldots,\epsilon_n^*)\) de \(E\) antéduale de la base \((f_1,f_2,\ldots,f_n)\) c'est-à-dire vérifiant les propriétés

\(\forall i , 1\leq i\leq n, \epsilon_i^*=f_i\).

Alors la matrice de passage \(P\) de la base \((e_1,e_2,\ldots,e_n)\) à la base \((\epsilon_1^*,\epsilon_2^*,\ldots,\epsilon_n^*)\) est donnée par la formule :

\(P=(^tR)^{-1}\)

PropriétéPropriétés utilisées

  1. Soient \(E\) et \(F\) deux espaces vectoriels de type fini, \(B_E\)et \(B_F\) des bases de \(E\) et \(F\) respectivement. Soit \(\phi\) une application linéaire de \(E\) dans \(F\). Alors :

    \(M_{B^*_F}^{B^*_E}(^t\phi)=^tM^{B_F}_{B_E}(\phi)\)

  2. \(^tId_E=Id_{E^*}\)

Exemple

Soit \(q\) l'application de \(R^3\) dans \(R\) définie pour tout \((x_1,x_2,x_3)\) par \(q(x_1,x_2,x_3)=(x_1+x_2+x_3)^2-(x_1-x_2)^2\).

C'est bien une forme quadratique sur \(R^3\) (expression polynômiale homogène de degré 2 par rapport aux \(x_i\)). Cherchons une base orthogonale pour \(q\).

On observe que \(q(x)\) est une combinaison linéaire de carrés des formes linéaires \(f_1:(x_1,x_2,x_3)\mapsto x_1+x_2+x_3\) et \(f_2:(x_1,x_2,x_3)\mapsto x_1-x_2\).

Il est clair que ces deux formes sont linéairement indépendantes. Donc on a une décomposition en combinaison linéaire de carrés de formes linéaires indépendantes. On en déduit immédiatement que \(q\) est de rang \(2\) (donc \(q\) est dégénérée).

D'après ce qui précède la première étape consiste à compléter la famille libre \(\{f_1,f_2\}\) par une forme linéaire \(f_3\) de manière à ce que \((f_1,f_2,f_3)\) soit une base de \(E^*\). Prenons par exemple \(f_3:(x_1,x_2,x_3)\mapsto x_3\) qui convient.

Pour trouver une base orthogonale, on va utiliser successivement les deux méthodes qui viennent d'être décrites.

Première méthode

Soit \(\epsilon=(\alpha,\beta,\gamma)\) un vecteur de \(R^3\). C'est la base canonique qui joue le rôle de la base \((e_1,e_2,e_3)\). Soit \((a,b,c) \)un élément de \(R^3\).

Première étape : résolution du système linéaire \(\left\{\begin{array}{ccc}f_1(\epsilon)&=&a\\f_2(\epsilon)&=&b\\f_3(\epsilon)&=&c\end{array}\right.\)

Avec les données numériques de l'exemple cela donne : (S) \(\left\{\begin{array}{ccccccc}\alpha&+&\beta&+&\gamma&=&a\\\alpha&-&\beta&&&=&b\\&&&&\gamma&=&c\end{array}\right.\).

Il est équivalent au système : \(\left\{\begin{array}{ccc}\alpha&=&\frac12(a+b-c)\\\beta&=&\frac12(a-b-c)\\\gamma&=&c\end{array}\right.\)

Deuxième étape : détermination des vecteurs \(\epsilon_1,\epsilon_2,\epsilon_3\).

Cela revient à résoudre le système (S) successivement avec \((a,b,c)=(1,0,0)\), puis \((a,b,c)=(0,1,0)\), et enfin \((a,b,c)=(0,0,1)\).

  • Vecteur \(\epsilon_1\): on a : \(a=1, b=c=0\). Alors, d'après le résultat précédent :

    \(\alpha=\frac12, \beta=\frac12,\gamma=0\) et donc \(\epsilon_1=\left(\frac12,\frac12,0\right)\).

  • Vecteur \(\epsilon_2\) : on a : \(a=0,b=1,c=0\). Alors, d'après le résultat précédent :

    \(\alpha=\frac12,\beta=-\frac12,\gamma=0\)et donc \(\epsilon_2=\left(\frac12,-\frac12,0\right)\).

  • Vecteur \(\epsilon_3\): on a : \(a=0,b=0,c=1\). Alors, d'après le résultat précédent :

    \(\alpha=-\frac12, \beta=-\frac12,\gamma=1\), et donc \(\epsilon_3=(-\frac12,-\frac12,1)\).

Deuxième méthode

En conservant les notations précédentes, il vient \(R=\left(\begin{array}{ccc}1&1&0\\1&-1&0\\1&0&1\end{array}\right)\) et donc \(P=\left(\begin{array}{ccc}1&1&1\\1&-1&0\\0&0&1\end{array}\right)^{-1}=\frac12\left(\begin{array}{ccc}1&1&-1\\1&-1&-1\\0&0&2\end{array}\right)\).

Cela donne la base orthogonale \((\epsilon_1,\epsilon_2,\epsilon_3)\) avec \(\epsilon_1=\frac12(e_1+e_2)=\left(\frac12,\frac12,0\right)\), \(\epsilon_2=\frac12(e_1-e_2)=\left(\frac12,-\frac12,0\right)\) et \(\epsilon_3=\frac12(-e_1-e_2+2e_3)=\left(-\frac12,-\frac12,1\right)\).