Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de:
- remplacer l'espace de la formulation faible par un sous-espace de dimension finie , et transformer le problème faible en un système linéaire dont vous savez écrire chaque coefficient;
- énoncer les méthodes de Ritz (minimiser l'énergie sur ) et de Galerkin (tester l'équation par les fonctions de ), et démontrer qu'elles coïncident quand la forme est symétrique;
- calculer à la main, en fractions exactes, une approximation de Ritz à une, deux ou trois fonctions polynomiales globales, et en mesurer l'erreur en énergie;
- démontrer l'orthogonalité de Galerkin et le lemme de Céa: la solution de Galerkin est la meilleure approximation de dans au sens de la norme d'énergie;
- démontrer que la matrice de rigidité est symétrique définie positive, expliquer pourquoi des fonctions de base locales la rendent creuse, et compter ses coefficients non nuls;
- calculer le conditionnement de la matrice des fonctions chapeau, montrer qu'il croît comme , et le comparer à celui d'une base polynomiale globale.
Le chapitre 2 a établi la formulation faible et ses propriétés: l'espace , la forme bilinéaire , la forme linéaire , la norme d'énergie et le principe du minimum de l'énergie potentielle. Ce chapitre fait le pas qui rend tout cela calculable: on renonce à chercher dans un espace de dimension infinie, et l'on choisit la meilleure fonction dans un espace de dimension finie. Toute la méthode des éléments finis est un cas particulier de ce qui suit; le chapitre 4 n'aura plus qu'à choisir l'espace et à organiser le calcul.
Du problème faible au système linéaire
Rappelons le problème du chapitre 2 sous sa forme abstraite. On se donne un espace de Hilbert — pour le problème modèle, —, une forme bilinéaire et une forme linéaire sur , et l'on cherche
Pour le problème modèle sur , , les deux formes valent
Nous utiliserons les deux propriétés établies au chapitre 2, avec les constantes et de la définition 2.7: la continuité, , et la coercivité, avec , pour tous . Lorsque est de plus symétrique, , elle est un produit scalaire sur , et la est la norme associée, . Pour le problème modèle, .
Le problème (3.1) porte sur une infinité d'inconnues — une fonction entière — et une infinité d'équations — une par fonction test. L'idée de Galerkin est de réduire les deux infinités à la même dimension finie.
L'indice rappelle que, pour les éléments finis, dépendra d'un maillage de pas ; mais rien dans ce chapitre n'exige un maillage. peut être engendré par des polynômes sur tout le domaine, par des sinus, ou par des fonctions chapeau: c'est précisément ce choix que nous allons comparer.
Le système linéaire
Choisissons une base de . Toute fonction de s'écrit de façon unique comme combinaison de ces fonctions; en particulier
et les coefficients , rangés dans le vecteur , sont les inconnues. Pour les fonctions chapeau du chapitre 1, ce sont les valeurs nodales; pour une base polynomiale, ce sont des coefficients sans signification ponctuelle.
Il suffit d'écrire (3.2) pour les fonctions de base. En effet, si pour , alors pour quelconque, la linéarité de et de en leur second argument donne . En reportant (3.3) dans ces équations et en utilisant la linéarité en le premier argument,
C'est un système linéaire :
La matrice est la matrice de rigidité et le vecteur des charges, comme au chapitre 1. L'ordre des indices dans n'est pas une coquetterie: la ligne est l'équation testée par , la colonne la contribution de l'inconnue . Il n'importe pas tant que est symétrique, et il importe dès qu'elle ne l'est plus (exercice 3.4).
Résumons la démarche, car elle est celle de tous les chapitres suivants: (1) choisir et sa base; (2) calculer les intégrales et ; résoudre ; reconstruire par (3.3) et en déduire les grandeurs utiles. Le seul choix que fait l'ingénieur est le premier. Tout le reste en découle, y compris — nous le verrons — la qualité du résultat, la structure de et le coût de la résolution.
Dans la méthode de Galerkin (3.2), quelle affirmation est exacte?
La méthode de Ritz: minimiser l'énergie sur un sous-espace
Le chapitre 2 a démontré que, lorsque est symétrique et coercive, la solution de (3.1) est l'unique minimum de l'énergie potentielle totale
Pour la barre, est l'énergie de déformation et le travail des charges. Cette caractérisation suggère une méthode d'approximation d'une autre nature que (3.2): au lieu de minimiser sur tout , ce qui est impossible, on la minimise sur le sous-espace .
Walther Ritz, physicien né à Sion en 1878, publie cette méthode en 1909, l'année de sa mort, et l'applique notamment aux vibrations d'une plaque carrée libre; Boris Galerkin, ingénieur à Saint-Pétersbourg, publie en 1915 la formulation par l'équation testée. Pour les problèmes symétriques, les deux méthodes donnent la même approximation.
Démonstration. Soient et réel. En développant par bilinéarité, et en regroupant et grâce à la symétrie,
Galerkin entraîne Ritz. Si vérifie (3.2), le terme en est nul pour tout . Toute s'écrit avec ; avec , (3.7) donne , avec égalité seulement si , c'est-à-dire par coercivité. Donc est l'unique minimum.
Ritz entraîne Galerkin. Si minimise sur , alors pour tout la fonction , un polynôme du second degré en , atteint son minimum en ; sa dérivée y est nulle: . C'est (3.2).
Coordonnées. Pour , et . Enfin, en prenant dans (3.2), , d'où , qui est (3.6).
La méthode de Ritz a deux mérites pédagogiques. Elle dit ce que l'on optimise — l'énergie —, ce qui permet de comparer deux approximations sans connaître : celle qui a l'énergie la plus basse est la meilleure. Et l'identité du chapitre 2, , montre que minimiser l'énergie, c'est minimiser l'erreur en énergie. Le lemme de Céa, plus bas, le redira sans passer par .
La méthode de Galerkin, elle, va plus loin. Elle n'a pas besoin d'une énergie: (3.2) a un sens pour une forme non symétrique, comme celle d'un problème de convection–diffusion (exercice 3.4), où n'a plus de minimum qui caractérise . C'est pourquoi on parle aujourd'hui de méthode de Galerkin dans tous les cas, et de Ritz quand on veut insister sur l'énergie.
Bases polynomiales globales
Commençons par l'espace le plus naturel: des polynômes définis sur tout l'intervalle. Pour être dans , une fonction d'essai doit s'annuler en et en ; c'est le cas de toute fonction de la forme avec polynôme. On prend la base
qui engendre les polynômes de degré au plus nuls aux deux extrémités. La première fonction est , la parabole de l'explorateur du chapitre 2; avec les deux premières, contient toutes les fonctions , soit, quand , les fonctions avec .
Les coefficients de sont des intégrales de polynômes, donc des nombres rationnels. Avec et ,
Pour :
Tous les coefficients sont non nuls: chaque fonction de base «voit» toutes les autres, puisque toutes sont non nulles sur tout l'intervalle (figure 3.1, en haut). Nous y reviendrons.
Le calcul exact se programme en quelques lignes avec le module fractions de la bibliothèque standard, qui fait l'arithmétique des rationnels sans arrondi. La fonction resoudre(K, F) est celle du chapitre 1, inchangée; elle fonctionne telle quelle avec des fractions, puisqu'elle n'utilise que les quatre opérations et abs. Comme dans tout le cours, les listes Python commencent à 0 alors que le texte numérote les fonctions de base à partir de 1: ici d[0] contient , et la boucle sur range(1, m + 1) parcourt les indices du texte, avec .
from fractions import Fraction
def resoudre(K, F):
"""Resout K d = F par elimination de Gauss avec pivot partiel."""
n = len(F)
M = [ligne[:] for ligne in K]
c = list(F)
for k in range(n - 1):
p = max(range(k, n), key=lambda i: abs(M[i][k]))
def ritz_polynomial(m):
"""Ritz pour -u'' = 12 x^2, base phi_k = x^k (1 - x), k = 1..m (indices 1..m)."""
K = [[Fraction(i * j, i + j - 1) - Fraction(i * (j + 1) + j * (i + 1), i + j)
+ Fraction((i + 1) * (j + 1), i + j + 1)
1 ['9/5'] 36/175 0.45356
2 ['4/5', '2'] 1/175 0.07559
3 ['1', '1', '1'] 0 0.00000
On résout le problème modèle avec , dont la solution exacte est , par la méthode de Ritz à une seule fonction, . On donne . Que vaut l'erreur en énergie ?
La fonction matrice_ritz(m) doit renvoyer la matrice de rigidité exacte (en fractions) de la base φ_k = x^k (1 - x), k = 1, ..., m, avec K[i][j] pour φ_(i+1) et φ_(j+1): les listes Python commencent à 0, les fonctions de base à 1. Telle qu'elle est écrite, elle appelle integrale avec les indices de liste, et le programme s'arrête sur une division par zéro. Corrigez-la. Le programme affiche alors la matrice pour m = 2 et la solution de Ritz de l'exemple 3.2 (f = 12x²).
Le problème modèle avec la charge sinusoïdale
Avec , la solution exacte n'est pas un polynôme: aucun polynomial ne la contient, et l'erreur ne s'annule jamais. Les charges s'obtiennent par la récurrence sur , avec et (deux intégrations par parties). Avec une seule fonction, et , la valeur de Ritz du chapitre 2.
La précision spectaculaire des polynômes tient à la régularité de la solution: est analytique, et ses approximations polynomiales convergent plus vite que toute puissance de . Elle fond dès que la solution l'est moins. Avec la charge sur et sur , la solution exacte, à gauche et à droite, a une dérivée seconde qui saute en . Le même calcul, en fractions exactes, donne pour les polynômes les erreurs , , et pour , et pour les chapeaux , , et . Les polynômes restent devant, mais leur erreur ne diminue plus que d'un facteur 2 à 4 quand double: la convergence est devenue , comme celle des chapeaux. Une solution singulière — un coin rentrant, une charge ponctuelle — aggrave encore les choses, et c'est le cas courant en ingénierie (chapitre 11).
Bases locales: les fonctions chapeau
Si les polynômes globaux sont si précis, pourquoi la méthode des éléments finis ne les utilise-t-elle pas? Le tableau de l'exemple 3.3 contient la première raison: le conditionnement. Il y en a trois autres.
La matrice est pleine. Toutes les fonctions de (3.8) sont non nulles sur tout , donc toutes les intégrales sont a priori non nulles: il faut stocker coefficients et la résolution coûte de l'ordre de opérations. Avec inconnues, ce qui est modeste en dimension 3, il faudrait stocker nombres.
La géométrie. En dimension 1, l'intervalle est simple. En dimension 2 ou 3, il faut des fonctions qui s'annulent sur le bord d'un domaine quelconque — une plaque percée, une pièce mécanique —, et il n'existe pas de recette générale pour construire une base polynomiale globale qui le fasse.
Les données par morceaux. Un matériau qui change à une interface, une charge appliquée sur une partie seulement, une section qui saute: autant de lieux où la solution perd sa régularité, et où une base globale, très raide, propage l'erreur à tout le domaine.
Les fonctions chapeau du chapitre 1 répondent aux trois difficultés à la fois. Sur un maillage , la fonction chapeau , , est affine sur chaque élément, vaut 1 au nœud et 0 à tous les autres nœuds. Elle est continue et dérivable par morceaux, donc dans (chapitre 2), et nulle en et en : l'espace
des fonctions continues, affines par morceaux et nulles aux extrémités, est un sous-espace de , de dimension . La méthode de Galerkin dans cet espace est exactement la méthode du chapitre 1: les coefficients sont les valeurs nodales , et sur un maillage uniforme de pas , (3.4) donne
Ce qui était au chapitre 1 une recette — minimiser l'énergie sur les lignes brisées — est maintenant un cas particulier de la définition 3.1, et tout ce que nous allons démontrer pour Galerkin vaut pour elle.
La figure 3.1 met les deux bases côte à côte. Les fonctions chapeau ne sont pas «meilleures» une à une: avec quatre fonctions, elles approchent plus de quarante fois moins bien que quatre polynômes. Leur force est collective. On peut en ajouter autant qu'on veut sans dégrader la base; on peut les concentrer là où la solution varie vite; on peut les construire sur n'importe quelle géométrie à partir d'un maillage; et chacune n'interagit qu'avec ses voisines, ce qui rend creuse. L'explorateur suivant permet de comparer les deux bases sur deux charges.
Choisissez le nombre d'inconnues: le composant résout le même problème modèle par Galerkin avec polynômes globaux et avec fonctions chapeau, puis mesure l'erreur en énergie par l'orthogonalité de Galerkin. Avec la charge sinusoïdale, la solution est très régulière et les polynômes gagnent de plusieurs ordres de grandeur; passez à la charge sur la moitié gauche: leur avance fond. Regardez enfin le conditionnement: c'est le prix de la base globale.
L'explorateur résout les deux systèmes à chaque mouvement du curseur et mesure les erreurs par l'identité de Pythagore du théorème 3.2, sans intégrer l'écart. Trois lectures. Avec la charge sinusoïdale, la courbe polynomiale se confond avec la solution exacte dès , alors que la ligne brisée bleue reste visiblement anguleuse; les paliers de l'erreur polynomiale (de à 2, de 3 à 4, de 5 à 6) sont ceux de l'exemple 3.3. Avec la charge sur la moitié gauche, les paliers changent de place — la partie symétrique de la solution, due à la moyenne de la charge, est captée exactement dès , et seules les fonctions qui apportent une partie antisymétrique comptent —, et l'avance des polynômes fond: à , elle n'est plus que d'un facteur 5. , enfin, ne dépend pas de la charge: il vaut pour six polynômes et 19,20 pour six chapeaux.
Pourquoi la méthode des éléments finis utilise-t-elle des fonctions de base locales, comme les fonctions chapeau, plutôt que des polynômes globaux, alors que ceux-ci approchent beaucoup mieux une solution régulière à nombre d'inconnues égal?
Orthogonalité de Galerkin et meilleure approximation
Nous arrivons au résultat central du chapitre. Il dit ce que la méthode de Galerkin calcule, indépendamment de la base choisie, et il ramène la question «la méthode converge-t-elle?» à une question d'approximation pure.
Démonstration. Comme , toute est une fonction test admissible de (3.1): . Par (3.2), . En soustrayant et par linéarité en le premier argument, : c'est (3.11).
Pour (3.12), écrivons et développons: , où l'on a utilisé la symétrie. Le terme croisé est nul par (3.11), puisque . Enfin par (3.6).
L'hypothèse — la conformité — est la seule qui serve, et elle sert de façon essentielle: c'est elle qui autorise à tester l'équation continue par . Les méthodes non conformes, où , perdent (3.11) et demandent une autre analyse.
L'identité (3.12) a une conséquence pratique immédiate: on peut mesurer l'erreur en énergie sans calculer l'erreur, dès que l'on connaît — ce qui est le cas pour une solution de référence, et ce qui a servi dans tous les exemples précédents. Elle montre aussi que l'énergie de l'approximation est toujours inférieure à celle de la solution exacte: . Pour une structure, est le travail des charges, et sous une charge donnée, un travail plus petit veut dire des déplacements plus petits en moyenne: . C'est une propriété générale des approximations conformes en déplacements, que le chapitre 9 retrouvera avec le triangle à déformation constante.
Le lemme de Céa
L'orthogonalité (3.11) a une lecture géométrique simple quand est symétrique: est alors un produit scalaire, et (3.11) dit que l'erreur est orthogonale au sous-espace pour ce produit scalaire. Autrement dit, est la de sur (figure 3.2). Et dans un espace euclidien, la projection orthogonale est le point du sous-espace le plus proche.
Démonstration. Soit . Écrivons , où . En développant par bilinéarité et symétrie,
le terme croisé étant nul par (3.11). Donc pour tout , avec égalité si et seulement si : le minimum est atteint en , et seulement là. Si , on peut prendre , et le minimum vaut 0: , donc par coercivité.
Le théorème répond à la question posée à l'exemple 3.1: avec et la base , ou avec et la famille , l'approximation est exacte parce que la solution est dans . Il dit aussi ce que la méthode promet : rien sur l'erreur en un point, rien sur l'erreur maximale. L'exemple 3.2 l'a montré: en passant de une à deux fonctions, l'erreur en énergie a été divisée par 6 et l'erreur au milieu n'a pas bougé.
Lorsque n'est pas symétrique, il n'y a plus de produit scalaire ni de projection orthogonale, mais il reste une quasi-optimalité.
Démonstration. Soit . Par coercivité, puis par l'orthogonalité (3.11) appliquée à , puis par continuité,
Si , il n'y a rien à démontrer; sinon, on divise par , et l'on prend le minimum sur . Dans le cas symétrique, coercivité et continuité donnent , et (3.13) entraîne
Jean Céa a publié ce résultat en 1964, dans sa thèse sur l'approximation variationnelle des problèmes aux limites. Sa portée est considérable, parce qu'il sépare deux questions. La méthode de Galerkin est-elle stable? Oui, avec une constante qui ne dépend que du problème continu, ni de , ni de . Converge-t-elle, et à quelle vitesse? Exactement aussi vite que est capable d'approcher — une question de théorie de l'approximation, qui ne fait plus intervenir l'équation. Pour les fonctions chapeau, il suffira de majorer l'écart entre et la ligne brisée qui l'interpole aux nœuds: c'est ce que fera le chapitre 11 pour obtenir l'ordre 1 en énergie de la table du cours, et l'exercice 3.5 montre que, pour en dimension 1, cette ligne brisée est même exactement .
La fonction erreur_energie(K, F, d, a_uu) doit renvoyer la norme d'énergie de l'erreur, sqrt(a(u, u) - a(u_h, u_h)), par l'identité de Pythagore (3.12). Telle qu'elle est écrite, elle renvoie la différence des deux normes, ce qui est une confusion classique: la norme d'une différence n'est pas la différence des normes. Corrigez-la. Le programme doit alors retrouver les erreurs en énergie de la table du cours pour n = 2, 4 et 8.
La matrice de rigidité est symétrique définie positive
Le système (3.4) a-t-il une solution, et une seule? Pour les exemples ci-dessus, nous l'avons résolu sans nous poser la question. La réponse tient en une ligne de calcul, et elle a des conséquences pratiques sur le choix du solveur.
Démonstration. 1. .
- Soit et . Comme les sont linéairement indépendantes, . Par bilinéarité,
Si , alors , donc : le noyau de est réduit à zéro et est inversible.
La démonstration mérite d'être relue pour ce qu'elle dit physiquement: est deux fois l'énergie de déformation du champ dont les degrés de liberté sont . Une matrice de rigidité est définie positive parce que tout déplacement non nul déforme la structure et lui coûte de l'énergie. Pour le problème modèle, ne s'annule que si , c'est-à-dire si est constante, et la seule constante qui vérifie est la fonction nulle: c'est la condition de Dirichlet qui rend coercive.
Retirons cette condition — une barre libre aux deux bouts, chargée par des forces qui s'équilibrent. La fonction constante est alors un déplacement d'ensemble, un mode rigide, qui ne coûte aucune énergie: . Si l'on garde toutes les fonctions chapeau, y compris celles des deux nœuds extrêmes, leur somme vaut 1 sur tout l'intervalle, et le vecteur vérifie : chaque ligne de somme à zéro, ce que la question 1.5 faisait vérifier. La matrice est seulement positive, et singulière.
Les conséquences pratiques du théorème 3.5 sont directes. Une matrice symétrique définie positive se factorise par Cholesky, , sans pivotage et avec deux fois moins d'opérations que l'élimination de Gauss (Algèbre linéaire, chapitre 11, pour la définie positivité; Analyse numérique, chapitre 3, pour la factorisation). Les grands codes résolvent aussi ces systèmes par la méthode itérative du gradient conjugué, qui ne s'applique qu'aux matrices symétriques définies positives et que ce cours ne développe pas. Inversement, un non symétrique, ou un pivot négatif rencontré pendant une factorisation de Cholesky, sont des signaux d'alarme: une erreur dans les matrices élémentaires, une condition aux limites mal imposée, ou un matériau à module négatif.
Pour une forme non symétrique et coercive, la partie 2 du théorème reste vraie: n'est plus symétrique, mais suffit à la rendre inversible. L'exercice 3.4 en donne un exemple.
Remettez dans l'ordre les étapes de la méthode de Galerkin appliquée à un problème aux limites.
Glissez les éléments pour les mettre dans le bon ordre
- Résoudre , par exemple par Cholesky si est symétrique définie positive
- Calculer et
- Estimer l'erreur, par exemple en raffinant ou par quand une référence est connue
- Choisir un sous-espace de dimension finie et une base
- Reconstruire et en déduire déformations, efforts et contraintes
- Écrire la formulation faible: trouver tel que pour tout
Fonctions locales, matrice creuse
La deuxième propriété structurale de ne dépend pas de la forme mais de la base.
Pour une forme intégrale comme , le coefficient est nul dès que les supports de et ne se chevauchent pas, ou ne se touchent qu'en un point, puisque l'intégrande est alors nul presque partout. La fonction chapeau a pour support ; deux fonctions chapeau ont des supports qui se chevauchent sur un élément entier si et seulement si leurs nœuds sont voisins. Donc
et est tridiagonale. Elle a coefficients diagonaux et coefficients voisins, soit coefficients non nuls sur : 22 sur 64 pour (figure 3.3), 298 sur 10 000 pour , et une proportion qui tend vers zéro comme . C'est la propriété qui rend la méthode : le stockage et le coût de la résolution — l'algorithme de Thomas (, chapitre 3), cité au chapitre 1, en opérations — croissent comme , et non comme et .
Le même raisonnement vaut en toute dimension: seulement si les nœuds et appartiennent à un même élément. Sur le maillage en triangles de la plaque carrée du chapitre 8, où chaque carré est coupé selon la diagonale qui monte vers la droite, un nœud intérieur a six voisins, et chaque ligne de compte sept positions dans la structure creuse, dont cinq coefficients non nuls seulement, quel que soit le nombre de nœuds: les couplages le long des diagonales sont exactement nuls, et l'on retrouve le schéma à cinq points (chapitre 8; exemple A.6). La matrice n'est plus tridiagonale, mais elle reste creuse, et sa largeur de bande dépend de la numérotation des nœuds: numéroter une plaque rectangulaire ligne par ligne dans le sens de sa plus petite dimension donne une bande plus étroite que dans l'autre sens. Les logiciels renumérotent automatiquement les nœuds avant la factorisation pour cette raison.
La base globale (3.8), à l'inverse, donne une matrice pleine quel que soit . Pour un problème symétrique en dimension 1, on peut faire mieux en orthogonalisant la base — des polynômes de Legendre intégrés donnent une matrice de rigidité diagonale pour le problème modèle —, et c'est l'idée des méthodes spectrales et des éléments de degré élevé (méthode , chapitre 11). Mais cela suppose une géométrie simple, et ne règle pas la question des solutions peu régulières.
Le conditionnement croît comme
La troisième propriété de est quantitative: son conditionnement. L'Analyse numérique (chapitre 4) a montré qu'en résolvant en virgule flottante, l'erreur relative sur peut atteindre fois l'erreur relative commise sur les données, où . Pour une matrice symétrique définie positive et la norme euclidienne, , le rapport de ses valeurs propres extrêmes. Pour la matrice des fonctions chapeau, ces valeurs propres se calculent exactement.
Démonstration. La formule , avec et , donne pour
Pour et , il manque dans les termes en et ; mais et , de sorte que la formule vaut aussi. C'est le calcul de l'exercice 1.5 avec au lieu de . Les vecteurs sont non nuls (leur composante , , l'est pour ) et associés à des valeurs propres distinctes, puisque est strictement croissant sur et que parcourt cet intervalle: ce sont toutes les valeurs propres. La plus petite est , la plus grande , avec , donc . Le quotient donne (3.16), et quand donne l'équivalent.
Les deux valeurs propres extrêmes ont une lecture physique. Le quotient de Rayleigh est l'énergie d'un champ rapportée à la somme des carrés de ses valeurs nodales. Le mode le plus lisse, , a une énergie faible par rapport à ses valeurs nodales: . Le mode le plus , qui alterne de signe d'un nœud au suivant, a une pente de l'ordre de sur chaque élément: . Le rapport de ces deux énergies est le conditionnement, et il croît comme parce que la forme contient deux dérivées.
Le programme suivant vérifie le théorème: il construit , évalue le quotient de Rayleigh sur et , et imprime , , et .
from math import pi, sin
def rayleigh(K, v):
"""Quotient de Rayleigh v.Kv / v.v."""
Kv = [sum(K[i][j] * v[j] for j in range(len(v))) for i in range(len(v))]
return sum(a * b for a, b in zip(v, Kv)) / sum(a * a
4 2.34315 13.6569 5.83 0.36428
8 1.21793 30.7821 25.27 0.39491
16 0.61487 63.3851 103.09 0.40268
32 0.30818 127.6918 414.35 0.40463
64 0.15418 255.8458 1659.38 0.40512
128 0.07710 511.9229 6639.52 0.40524
La dernière colonne tend vers : le conditionnement est multiplié par 4 chaque fois que est divisé par 2 — exactement par entre et , par entre et . Pour , , la valeur de l'exemple 3.3. La matrice des différences finies (1.11) étant , elle a le même conditionnement, et l'on retrouve la valeur pour citée au chapitre 1.
Que faut-il en penser? Une croissance en n'est pas une catastrophe, et c'est même le comportement normal de toute discrétisation d'un problème du second ordre, en dimension 1, 2 ou 3. Le chapitre 1 a montré que l'erreur d'arrondi qui en résulte, de l'ordre de dans le pire des cas, ne rattrape l'erreur de discrétisation qu'au-delà de éléments en dimension 1, une finesse qu'aucun calcul pratique n'atteint. Le conditionnement compte davantage pour les , dont le nombre d'itérations croît avec , et c'est pourquoi les grands codes utilisent des préconditionneurs. Il compte aussi quand des coexistent dans un modèle — un élément d'acier collé à un élément de caoutchouc, un ressort d'appui de raideur énorme pour imiter un encastrement (la méthode de pénalisation du chapitre 4) — car est alors multiplié par le rapport des raideurs.
La base polynomiale globale, elle, a un conditionnement qui croît exponentiellement avec : pour six fonctions, pour huit (figure 3.3). Avec seize fonctions, on serait au-delà de ce que la double précision peut résoudre avec un seul chiffre exact. La raison est visible sur la figure 3.1: les fonctions se ressemblent de plus en plus quand grandit, et une base presque liée donne une matrice presque singulière.
Synthèse
- La méthode de Galerkin cherche dans un sous-espace de dimension finie et teste l'équation faible par les fonctions de ce même espace; avec une base , elle conduit au système , , .
Exercices
Vous pouvez afficher le corrigé directement sous chaque énoncé après avoir cherché la solution.
On résout le problème modèle avec , de solution exacte , par la méthode de Ritz à une fonction, avec .
On résout le problème modèle avec par des fonctions chapeau sur le maillage non uniforme de nœuds , , , .
On considère la base globale du problème modèle.
- Vérifier la formule (3.9) pour et , en calculant directement les intégrales.
On considère sur , , dont la solution exacte est .
On considère le problème modèle , , avec continue, et des fonctions chapeau sur un maillage quelconque . On note l' de : la fonction continue, affine par morceaux, qui coïncide avec aux nœuds.
Références
- Strang, G. et Fix, G. J., An Analysis of the Finite Element Method, Prentice Hall / Wellesley-Cambridge, chap. 1 (méthode de Ritz–Galerkin, projection en énergie, conditionnement de la matrice de rigidité).
- Ern, A. et Guermond, J.-L., Theory and Practice of Finite Elements, Springer (approximation de Galerkin, lemme de Céa, propriétés des matrices de rigidité).
- Quarteroni, A., Numerical Models for Differential Problems, Springer (méthode de Galerkin, quasi-optimalité, conditionnement et méthodes spectrales).
- Hughes, T. J. R., The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover, chap. 1 (Galerkin sur le problème modèle, propriété de meilleure approximation, exactitude nodale en dimension 1).
- Zienkiewicz, O. C., Taylor, R. L. et Zhu, J. Z., The Finite Element Method: Its Basis and Fundamentals, Butterworth-Heinemann, chap. 3 (résidus pondérés, Galerkin et principes variationnels).
- Ritz, W., «Über eine neue Methode zur Lösung gewisser Variationsprobleme der mathematischen Physik», Journal für die reine und angewandte Mathematik, 1909; Céa, J., «Approximation variationnelle des problèmes aux limites», Annales de l'Institut Fourier, 1964.