4. Principe des « doubles Lagrange »#
4.1. Méthodologie#
La méthode proposée ici est celle mise en œuvre dans le code CASTEM (communication personnelle de Thierry Charras et Pierre Verpeaux). Une présentation intuitive pourrait en être la suivante:
On voit que le problème dualisé a des termes nuls sur la diagonale : ceux correspondants aux degrés de liberté de Lagrange. Cette propriété se remarque aussi sur le Lagrangien : il n’y a pas de termes quadratiques en \(\vector{\lambda}\) .
Cette nullité des termes diagonaux empêche certaines permutations de lignes et colonnes : on ne peut placer un Lagrange avant les degrés de liberté physiques qu’il contraint.
L’idée est alors de décomposer chaque coefficient de Lagrange \(\vector{\lambda}\) en deux parties égales \({\vector{\lambda}}^{1}\) et \({\vector{\lambda}}^{2}\). L’équation \(\tensTwo{B} \vector{u}=\vector{d}\) est alors remplacée par:
où \(\alpha\) est une constante non nulle.
Montrons l’équivalence de l’ancien problème et du nouveau:
Problème 1 : « simple Lagrange »
Trouver:
tels que :
On a les équivalences suivantes
\(\alpha\) est une constante \(\ne 0\)
D’où le problème équivalent au précédent:
Problème 2 : « double Lagrange »
Trouver:
tels que
Le nouveau problème peut s’écrire:
avec:
et
Le problème correspond à rendre extrémale la fonctionnelle:
On peut montrer (Cf Annexe 2) que si on observe une certaine règle de numérotation des inconnues, et en choisissant la constante \(\alpha >0\) , la matrice \(\tensTwo{K^{\prime}}\) vérifie la condition cond1.
Cette règle est la suivante:
Soit une relation de blocage \(\tensTwo{B} \vector{u}-\vector{d}=0\) , il lui correspond 2 multiplicateurs de Lagrange \({\vector{\lambda}}^{1}\) et \({\vector{\lambda}}^{2}\) . Cette relation fait intervenir un certain nombre de degrés de liberté physiques.
- Règle \({R}_{0}\) :
Pour chaque relation de blocage, il faut placer \({\vector{\lambda}}^{1}\) avant le premier degré de liberté physique contraint et \({\vector{\lambda}}^{2}\) après le dernier degré de liberté physique contraint. Pour diminuer l’occupation mémoire de la matrice \(\tensTwo{K}\) , il faut chercher à minimiser la largeur de bande. C’est ce que l’on fait dans en « encadrant » les relations « au plus près » : \({\vector{\lambda}}^{1}\) est placé juste avant le premier degré de liberté contraint, \({\vector{\lambda}}^{2}\) est placé juste après le dernier ddl contraint.
4.2. Illustration#
Soit un problème à 4 degrés de liberté physiques \(\left( {u}_{1}, {u}_{2}, {u}_{3}, {u}_{4} \right)\) .
Ce système est soumis à 2 conditions:
appelons \(\left({\lambda}_{1}^{1},{\lambda}_{1}^{2} \right)\) les deux degrés de liberté de Lagrange associés à la première condition et \(\left({\lambda}_{2}^{1},{\lambda}_{2}^{2} \right)\) ceux associés à la deuxième condition.
En supposant que les degrés de liberté physiques aient été numérotés dans l’ordre \(\left( {u}_{1}, {u}_{2}, {u}_{3}, {u}_{4} \right)\), la numérotation totale des degrés de liberté retenue est alors \(\left( {\lambda}_{1}^{1},{u}_{1},{\lambda}_{2}^{1},{u}_{2}, {u}_{3} , {\lambda}_{1}^{2},{u}_{4},{\lambda}_{2}^{2} \right)\).
\({\lambda}_{1}^{1}\) et \({\lambda}_{1}^{2}\) encadrent « au plus près » les degrés de liberté contraints (\({u}_{1}\) et \({u}_{3}\)), tandis que \({\lambda}_{2}^{1}\) et \({\lambda}_{1}^{2}\) encadrent « au plus près » les degrés de liberté contraints (\({u}_{2}\) et \({u}_{4}\)).
La technique des « doubles Lagrange » associée à la règle \({R}_{0}\) permet donc de résoudre tout système linéaire physiquement bien posé avec l’algorithme de \(LD{L}^{T}\) sans permutation. La démonstration suppose néanmoins que la matrice \(\tensTwo{A}\) soit symétrique et positive (pas forcément définie).
- Remarque
Les hypothèses \(\tensTwo{A}\) symétrique et \(\tensTwo{A}\) positive sont nécessaires pour utiliser \({{LDL}}^{T}\) (ou \({LU}\)) sans permutation comme le montrent les deux contre-exemples suivants:
\({A}_{1}=\left[\begin{array}{cc}0& 1\\ 1& 0\end{array}\right]\) est symétrique mais non positive
\({A}_{2}=\left[\begin{array}{cc}0& 1\\ -1& 1\end{array}\right]\) est positive mais non symétrique