3. Inconvénients de cette dualisation#
On voit d’après l’expression du Lagrangien que la matrice \(\tensTwo{K}\) n’est plus positive (ce qui était le cas de \(A\) ). En effet:
La perte de la positivité de la matrice \(\tensTwo{K}\) entraîne que la résolution du système \(\tensTwo{K} \vector{X}=\vector{F}\) ne peut plus se faire en général par les algorithmes classiques de gradient ou, par la factorisation de Cholesky. L’algorithme de factorisation \(LDL^{T}\) sans permutation des lignes et colonnes n’est plus garanti non plus.
Illustrons le problème sur un exemple.
3.1. Exemple 1#
Un ressort de raideur \(k\) relie deux nœuds \({N}_{1}\) et \({N}_{2}\)
Fig. 3.1 Exemple 1 du système discret à résoudre#
Les deux inconnues sont \({u}_{1}\), \({u}_{2}\) et les deux forces modales sont \({f}_{1}\) et \({f}_{2}\). Avec les notations du paragraphe précédent, la taille du système est notée \(n=2\). La matrice de rigidité s’écrit donc
On ajoute une contrainte \(\alpha {u}_{1}+\beta {u}_{2}=\gamma\) (on a donc \(p=1\)). Le problème dualisé s’écrit:
Avec la numérotation des inconnues suivantes repérée par \(\discVect{X^{1}}\):
La matrice et le second membre s’écrivent:
- Rappel de la condition nécessaire et suffisante pour que l’algorithme \(LDL^{T}-{SP}\) (sans permutation) fonctionne
Notons \({K}_{i}\) la sous-matrice de \({\tensTwo{K}}\) formée des \(i\) premières lignes et colonnes de \(\tensTwo{K}\). (Si \(\tensTwo{K}\) est d’ordre \(n\) alors \({\tensTwo{K}}_{n} = K\) et \({\tensTwo{K}}_{1}=[{k}_{11}]\) ). Il n’y aura pas de pivot nul dans l’algorithme \(LDL^{T}-{SP}\) si, et seulement si, \({\tensTwo{K}}_{i}\) est inversible pour tout \(i\) compris entre \(1\) et \(n\). On notera cette condition : cond1
La matrice \(\tensTwo{K^{1}}\) ci-dessus est écrite avec comme numérotation des inconnues, l’ordre des composantes de \(\discVect{X^{1}}\):
alors la sous-matrice \({\tensTwo{K^{1}}}_{2}\) telle que
ne vérifie pas la condition cond1.
Prenons maintenant une autre numérotation telle que
alors la matrice \(\tensTwo{K^{2}}\) s’écrit
la sous-matrice \({\tensTwo{K^{2}}}_{1}\) ne vérifie pas la condition cond1.
Prenons maintenant une autre numérotation telle que
La matrice de rigidité dans cette numérotation s’écrit
Les trois sous-matrices ont pour déterminant
Bien entendu, \(k\) est supposé strictement positif (raideur du ressort). La matrice \({\tensTwo{K^3}}_{3}\) n’est inversible que si \(\alpha + \beta \ne 0\) . Le cas \(\alpha +\beta =0\) correspond en effet à un « mauvais » blocage physique : la condition \({u}_{1}-{u}_{2}=\text{cte}\) ne bloque pas les « mouvements de corps rigide » pour \(\tensTwo{A}\) (sans énergie).
Pour que le problème global ait une solution unique, il faut en effet que les conditions \({\tensTwo{B}}_{i} \vector{u}={\vector{d}}_{i}\) engendrent un espace de déplacements admissibles qui ne contienne aucun des mouvements de corps rigide de \(\tensTwo{A}\) .
Avec les notations du paragraphe précédent on écrira:
On supposera dans la suite du document que cette condition est vérifiée. C’est‑à‑dire que les contraintes \({\tensTwo{B}}_{i}\) bloquent au moins les mouvements de corps rigide de \(\tensTwo{A}\) (elles peuvent être plus nombreuses bien sûr). Lorsque cette condition est vérifiée et que les conditions \({{\tensTwo{B}}_{i}\) sont indépendantes entre elles, on dira que le problème est physiquement bien posé.
Et donc la matrice \({\tensTwo{K^3}}_{2}\) n’est inversible que si \(\alpha \ne 0\). Au final, on voit donc que la numérotation \(\left({u}_{1},\lambda ,{u}_{2}\right)\) vérifie la condition cond1 si \(\alpha \ne 0\) .
Si le blocage \({{\alpha u}}_{1}+{{\beta u}}_{2}=\gamma\) se réduit à:
alors ça marche. Par contre si
alors ça ne fonctionne pas.
La symétrie du problème montre que pour pouvoir traiter le problème \((\alpha ,\beta )=(0,1)\) il faut numéroter \(\left({u}_{2},\lambda ,{u}_{1} \right)\) .
De cet exemple très simple, on peut tirer quelques conclusions générales (toutes négatives):
si on numérote tous les \({\lambda}_{i}\) après les \({u}_{i} et si :math:\)tensTwo{A}` est singulière, la condition cond1 ne sera pas vérifiée pour \({\tensTwo{K}}_{i}=\tensTwo{A}\) ,
soit une condition \(\tensTwo{B} \vector{u}= \vector{d}\) et \(\lambda\) le multiplicateur de Lagrange associé. L’équation \(\tensTwo{B} \vector{u}= \vector{d}\) ne fait pas, en général, intervenir toutes les inconnues \({u}_{i}\) : l’équation contraint certains degrés de liberté. Si \(\lambda\) est numéroté avant les ddl qu’il contraint la condition cond1 ne sera pas vérifiée. En effet regardons la sous matrice \({\tensTwo{K}}_{j}\) où \(j\) est le numéro de l’équation donnant \(\lambda\) .
Soit une structure physique qui, par malchance, est « retenue par son dernier ddl physique » c’est-à-dire telle que si on ne bloque pas ce ddl, la matrice est singulière, et telle que si on le bloque la matrice est inversible. L’utilisation d’un degré de liberté de Lagrange \(\lambda\) pour ce blocage est impossible. En effet, si on numérote \(\lambda\) avant le dernier degré de liberté physique, il y aura un pivot nul au niveau de \(\lambda\) , et si on le numérote après (donc en tout dernier degré de liberté), la matrice \({\tensTwo{K}}_{n-1}\) ne sera pas inversible puisque le blocage n’est pas encore pris en compte. On verra au que la technique des « double lagrange » permet de résoudre ce problème.
Pour finir ce paragraphe nous pouvons faire la remarque suivante: Si \(\tensTwo{K}\) est inversible, on sait qu’il existe une numérotation des inconnues permettant de factoriser \(\tensTwo{K}\) par \(LDL^{T}\) . Cette numérotation est par exemple celle résultant de l’algorithme \(LDL^{T}\) avec permutation (pivot maximal par exemple). Mais cette renumérotation ne concerne que les lignes de la matrice ; il y a donc perte de la symétrie de \(\tensTwo{K}\) . Il suffit de considérer l’exemple suivant.
3.2. Exemple 2#
On pose
et
avec la numérotation \(\left({u},\lambda \right)\) .
\(\tensTwo{K}\) est bien inversible, mais il n’existe aucune permutation commune des lignes et colonnes de \(\tensTwo{K}\) permettant une résolution par \(LDL^{T}\) .
Toutes ces remarques montrent que la dualisation proposée dans ce paragraphe ne permet pas d’utiliser \(LDL^{T}-{SP}\) de manière générale.