Maîtrise de Mathématiques Travaux Pratiques



Documents pareils
Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Commun à tous les candidats

Résolution de systèmes linéaires par des méthodes directes

IV- Equations, inéquations dans R, Systèmes d équations

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Correction de l examen de la première session

Correction du Baccalauréat S Amérique du Nord mai 2007

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Exercices Corrigés Premières notions sur les espaces vectoriels

Chapitre 2. Matrices

Cours d analyse numérique SMI-S4

Exercices - Polynômes : corrigé. Opérations sur les polynômes

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Table des matières. I Mise à niveau 11. Préface

NOMBRES COMPLEXES. Exercice 1 :

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Yves Debard. Université du Mans Master Modélisation Numérique et Réalité Virtuelle.

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Fonctions de plusieurs variables

Cours 02 : Problème général de la programmation linéaire

Première partie. Introduction à la méthodes des différences finies

C f tracée ci- contre est la représentation graphique d une

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Méthode des éléments-finis par l exemple

Introduction à la méthode des éléments finis

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

3 Approximation de solutions d équations

Calculs et Certificats de Quantités d Intérêts Non Linéaires d un Mousqueton Cédric Bellis

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Développements limités, équivalents et calculs de limites

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Equations cartésiennes d une droite

Fonctions de deux variables. Mai 2011

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Programmation linéaire

DUT Techniques de commercialisation Mathématiques et statistiques appliquées

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

ANALYSE NUMERIQUE ET OPTIMISATION. Une introduction à la modélisation mathématique et à la simulation numérique

1 Introduction et modèle mathématique

III- Raisonnement par récurrence

Approximations variationelles des EDP Notes du Cours de M2

Examen d informatique première session 2004

Cours d initiation à la programmation en C++ Johann Cuenin

Chapitre 6. Fonction réelle d une variable réelle

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Chapitre 2 Le problème de l unicité des solutions

La fonction exponentielle

Loi binomiale Lois normales

Analyse en Composantes Principales

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Corrigé du baccalauréat S Pondichéry 12 avril 2007

Modèles et Méthodes de Réservation

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Introduction à MATLAB R

Correction du bac blanc CFE Mercatique

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Premiers pas avec Mathematica

Simulation de variables aléatoires

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Initiation à l algorithmique

Fonctions de plusieurs variables

Optimisation, traitement d image et éclipse de Soleil

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Programmation linéaire et Optimisation. Didier Smets

Calcul différentiel sur R n Première partie

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

Implémentation de Nouveaux Elements Finis dans Life et Applications

Analyse Numérique : SMA-SMI S4 Cours, exercices et examens

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Théorème du point fixe - Théorème de l inversion locale

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

CCP PSI Mathématiques 1 : un corrigé

Pour l épreuve d algèbre, les calculatrices sont interdites.

EXERCICES - ANALYSE GÉNÉRALE

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Compte rendu des TP matlab

La classification automatique de données quantitatives

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Les algorithmes de base du graphisme

Cours 7 : Utilisation de modules sous python

Programmes des classes préparatoires aux Grandes Ecoles

TP 7 : oscillateur de torsion

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Chp. 4. Minimisation d une fonction d une variable

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Aide - mémoire gnuplot 4.0

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Planche n o 22. Fonctions de plusieurs variables. Corrigé

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Calcul Formel et Numérique, Partie I

I. Polynômes de Tchebychev

Cours Informatique Master STEP

Polynômes à plusieurs variables. Résultant

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Transcription:

Maîtrise de Mathématiques Travaux Pratiques Pedro Ferreira 4 mai 2 Le but des travaux pratiques d Analyse Numérique est de créer un premier programme de mise en œuvre de la méthode des éléments finis. On utilisera le langage C, avec le compilateur gcc. On abordera uniquement le cas unidimensionnel, mais on traitera les maillages non - uniformes. Programmation modulaire Pour tout ce projet on s efforcera de programmer d une façon structurée. Voici quelques conseils : On isolera les parties indépendantes dans des fonctions séparées, on groupera dans un même fichier source les fonctions qui ont un rapport entre elles, chaque fichier source aura un fichier en-tête (.h) associé, on s efforcera d utiliser les bibliothèques standard, on produira du code réutilisable. 2 Les étapes d un code d éléments finis Un code d éléments finis est composé de plusieurs étapes Pré-traitement : On lit les données du problème, maillage du domaine, seconds membres, conditions de frontière, etc. On vérifie la cohérence des données et on calcule des informations nécessaires au bon déroulement des calculs (par exemple dans le cas 2D la liste des voisins de chaque élément). Assemblage : Construction du système linéaire, on utilise la formulation variationnelle discrète pour calculer les coefficients de la matrice et du second membre. Résolution : On utilise une méthode de résolution du système linéaire adaptée aux propriétés de la matrice (nombre de zéros, symétrie, etc.). Post-traitement : On génère de l information exploitable par les logiciels (ou des fonctions) de visualisation à partir du vecteur solution du système linéaire. 3 Problème modèle On va discrétiser un problème du type suivant : u (x) + cu(x) = f(x) x [, L] () Condition aux bords x = et x = L où f(x) est une fonction donnée et c > une constante réelle.

On traitera différents types de conditions aux bords, ce qui nous permettra de voir les différentes techniques associées à ces conditions. Pour l étude mathématique de ses équations on peut regarder []. Dans le cas le plus simples, problème de Neumann homogène : u (x) + cu(x) = f(x) x [, L] (2) u () = u (L) = la formulation variationnelle est : Trouver u H (, L) : (3) a(u, v) = Lv v H (, L) où : a(u, v) = Lv = u (x)v (x) dx + c f(x)v(x) dx u(x)v(x) dx et on a existence et unicité de solution. On va utiliser une méthode d éléments finis de Lagrange P. On considère une partition du domaine : = x < x < x 2 <... < x N = L. On cherche des solutions de () qui sont localement affines, c est-à-dire : (4) u h = N u i ψ i (x) i= les ψ i (x) sont les fonctions de base et vérifient : ψ i (x) = si x [x i, x i+ ], ψ i (x i ) = et ψ i (x) est affine en [x i, x i ] et en [x i, x i+ ]. Pour une présentation complète des méthodes d éléments finis de Lagrange voir [5] et [2]. 4 Maillages et pré-traitement Comme on vient de le voir on a besoin d une discrétisation du domaine dans lequel l équation est définie. Dans le problème modèle le domaine est spécialement simples, une intervalle bornée. Pour écrire un programme suffisamment flexible on aura besoin de lire des données variables, par exemple, des informations relatives au domaine de calcul, des conditions au bord des constantes etc.. La lecture des paramètres se fait en utilisant les fonctions de la bibliothèque de lecture de paramètres. Ces fonctions, ainsi comme la doc sont disponibles dans http ://www.cmap.polytechnique.fr/~pedro/maitrise.html. Dans le cas unidimensionnel, la discrétisation du domaine [, L] correspond au choix d une partition. Dans les cas 2D et 3D le problème devient beaucoup plus complexe, les choix sont multiples (triangles, quadrangles, tétraèdres, etc.). En ce qui concerne notre projet on aura besoin d une fonction qui puisse générer une partition de l intervalle, pour cela on aura comme entrées un tableau de points, représentant une partition grossière du domaine et un tableau d entiers représentant le nombre de sous-divisions de chaque intervalle de cette partition. Son prototype sera 2

double *mailseg(int nx,double *x,int *n,int *npt); cette fonction retourne un tableau de points (alloué dynamiquement), ses arguments sont : nx : Le nombre de points en entrée. x : Le tableau des points en entrée. n : Le tableau de taille nx- du nombre de points par intervalle. npt : Un pointeur vers un entier qui contient en sortie le nombre de points du maillage généré. 5 Assemblage et stockage des systèmes creux. Chaque fonction test v peut s exprimer comme combinaison linéaire des fonctions de base, c est-à-dire : N v(x) = v j ψ i (x) i= Pour que l égalité a(u, v) = Lv soit valable pour tout v, il suffit alors qu elle soit vérifiée pour toutes les fonctions ψ i (a(u, ψ i ) = Lψ i ). La représentation de la solution en termes de la base de l espace d éléments finis (4) donne alors : N u j a(ψ j, ψ i ) = Lψ i j= les u j étant les inconnues on peut récrire cette égalité en forme matricielle : où A i,j = et le second membre est : A u = b ψ j(x)ψ i(x) dx + c b i = f(x)ψ i (x) dx ψ j (x)ψ i (x) dx On peut être amené à calculer b i par une formule de quadrature, on peut, par exemple, utiliser une quadrature de Gauss à 2 points : (5) b b f(x) dx 2 (f(ξ ) + f(ξ )) où : ξ = a + b 3 (b 2) 2 6 et : ξ = a + b 3 + (b 2) 2 6 qui est exacte pour les polynômes de degré 3, pour plus de détails voir [4]. Les systèmes linéaires issus de la discrétisation des équations différentielles par des méthodes de différences finies ou d éléments finis sont, en général creux, c està-dire, ils ont une grande quantité de zéros. On va programmer quelques méthodes de résolution de systèmes linéaires avec prise en compte de la structure des matrices. Pour les méthodes d éléments finis de Lagrange P les fonctions de base ψ i et ψ j ont des supports non disjoints si et seulement si il existe un élément T k tel que x i T k et x j T k. C est cette propriété qui donne origine à des matrices creuses. 3

5. Matrices tridiagonales Dans le cas unidimensionnel étant données deux noeuds du maillage, x i et x j, il existe un élément T tel que x i T et x j T uniquement si j = i, j = i ou j = i +. on a alors A i,j = si i j >. Ceci implique que la matrice du système discret est tridiagonale. La symétrie de la forme bilinéaire a(.,.) implique que la matrice A est symétrique. Pour prendre en compte la structure de la matrice, c est-à-dire ne pas stocker les zéros, on gardera uniquement les diagonales non nulles dans deux vecteurs qu on note s pour la sous-diagonale et d pour la diagonale principale. On notera b le second membre du système linéaire. L assemblage de la matrice et du second membre se fait alors par l algorithme. Algorithm Assemblage de la matrice d éléments finis s d b for i de au nombre d éléments do b i b i + f(x)ψ i (x) dx x i b i b i + f(x)ψ i (x) dx x i s i s i + ψ i (x)ψ i(x) dx + c x i s i + c x i x i x i x i 6 x i ψ i (x)ψ i (x) dx = ( d i d i + ψ i (x) ) 2 dx + c (ψ i (x)) 2 dx = x i x i d i + x i x i + c xi xi 3 d i d i + (ψ i(x)) 2 dx + c (ψ i (x)) 2 dx = x i x i d i + + c x i x i x i x i 3 end for pour le calcul du second membre on utilise la quadrature de Gauss (5). 5.2 Matrices bande Les méthodes de différences finies en 2 ou 3 dimensions génèrent des matrices de type bande, ce sont des matrices on seulement quelques diagonales sont non nulles. La propriété de remplissage des méthodes directes nous obligent à garder tous les zéros de la matrice entre le premier élément non nul de chaque ligne et la diagonale (dans le cas symétrique). Pour cette raison, pour ce type de méthodes on garde la partie utile de la matrice dans une matrice rectangulaire. 5.3 Matrices profil Dans la méthode des éléments finis en 2 ou 3 dimensions on aboutit généralement à des matrices où les éléments non nuls sont groupés prés de la diagonale principale, 4

sans pour autant être des matrices bande. Pour ces matrices on utilise un stockage connu sous le nom de stockage profil. Les lecteurs plus curieux peuvent regarder les détails dans [3]. 5.4 Matrices morse et méthodes itératives Si on souhaite utiliser des méthodes itératives de résolution des systèmes linéaires on peut garder uniquement les éléments non nuls, en effet, ces méthodes font appel uniquement à des produits matrice vecteur pour lesquels les coefficients nuls peuvent être ignorés. Le stockage adapté à ces méthodes s appelle stockage morse. Ces méthodes sont utilisées quand il y a une seule résolution des système linéaire a effectuer car il n y a pas de facturation de matrice. Ils deviennent très performants pour des problèmes de très grande taille. 6 Résolution des systèmes linéaires creux Une fois assemblée la matrice et le second membre il faut résoudre le système linéaire pour trouver la solution approchée. On utilisera la factorisation de Choleski, celle-ci correspond à une décomposition A = LL t où L est une matrice triangulaire inférieure. On trouve la solution de A u = b par descente remontée, c est-à-dire, la résolution successive de deux systèmes linéaires : L y = b L t u = y En regardant de près la décomposition de Choleski et les algorithmes de descente et remontée on se rend compte que la matrice A et le vecteur b peuvent être utilisées pour garder le facteur L, la solution u et la solution auxiliaire y. Pour une matrice pleine (sans zéros à priori) la décomposition de Choleski se calcule en utilisant l algorithme 2. La solution du système linéaire s obtient parles algorithmes 3 et 4. Algorithm 2 Décomposition de Choleski for j de à N do j L j,j Aj,j k= for i de j + à N do L 2 j,k L i,j A i,j j k= L i,kl j,k L j,j end for end for 5

Algorithm 3 Descente for i de à N do y i b i i j= L i,jy j L i,i end for Algorithm 4 Remontée for i de N à do u i y i N j=i+ L j,iu j L i,i end for On adaptera ces algorithmes aux matrices tridiagonales. 7 Post-traitement La solution du problème discret contient les coordonnées de la solution approchée dans la base des ψ i, les propriétés de la base dans le cas des éléments finis de Lagrange font que ces coordonnées sont les valeurs de u h (x i ). Le post-traitement est donc particulièrement simple : il suffit d écrire un fichier avec les couples (x i, u i ) dans un format utilisable par un programme de traçage de courbes. Le plus simple est un fichier texte qui contient un couple par ligne qui sera utilisée par des logiciels comme gnuplot. 8 Le problème de Neumann homogène On vient de montrer comment on fait la mise en œuvre du problème de Neumann non homogène, il nous faut maintenaient tester le programme, pour ceci on essaye de calculer la solution d un problème por lequel une solution explicite est connue. Prenons le problème suivant : u (x) + 2u(x) = 2 cos(3t) x [, 2π] (6) u () = u (L) =. Par dérivation on vérifie que la fonction : u(x) = 2 cos(3x) est solution. Il faut donc s assurer que les valeurs de u i sont des bonnes approximations de 2 cos(x i ). On pourra faire une étude d erreur, pour cella on trace la norme L 2 (, 2π) de l erreur en fonction du pas de discrétisation h en échelle logarithmique et on doit trouver une droite pente 2, ceci est conséquence du résultat théorique : u u h L2 (,2π) Ch 2. 6

9 Le problème de Neumann non homogène On cherche la solution de l équation différentielle : u (x) + cu(x) = f(x) x (, L) (7) u () = a, u (L) = b la fonction f : (, L) R et les constantes a, b, c et L sont données. En multipliant l équation par une fonction test et en intégrant on obtient : u (x)v(x) dx + c u(x)v(x) dx = u (x)v (x) dx u (L)v(L) + u ()v() + c u (x)v (x) dx + c u(x)v(x) dx = f(x)v(x) dx u(x)v(x) dx = f(x)v(x) dx + bv(l) av() La formulation variationnelle pour ce problème est alors : Trouver u H (, L) : (8) a(u, v) = Lv v H (, L) où : a(u, v) = Lv = u (x)v (x) dx + c u(x)v(x) dx f(x)v(x) dx + bv(l) av() f(x)v(x) dx Dans la formulation discrète ceci se traduit par l ajout au second membre de deux termes supplémentaires : aψ i () et bψ i (L). Il convient de noter que : et : ψ i () = i ψ () = ψ i (L) = i N ψ N (L) = ce qui veut dire que dans l assemblage du vecteur b on a : b = b N = f(x)ψ (x) dx a f(x)ψ N (x) dx + b tous les autres termes sont inchangés par rapport au cas Neumann homogène. Pour tester le programme dans ce cas on cherche la solution du problème : u (x) + cu(x) = x (, L) (9) u () = a, u (L) = b pour c >, L > et a et b quelconques. On peut vérifier par simples calcul que la fonction : u(x) = c e cx + c 2 e cx 7

est solution. Les constantes sont données par : c = a be cl ( e 2 cl ) c e ( cl b + ae ) cl c 2 = ( e 2 cl ) c On pourra faire des tests pour plusieurs valeurs des constantes c, a, b et L. On peut aussi tracer l erreur L 2 (, L). Le problème de Dirichlet homogène Pour traiter le problème de Dirichlet homogène on cherche des solutions du problème variationnel : Trouver u H (, L) : () a(u, v) = Lv v H (, L) a(.,.) et L sont définies comme dans le cas Neumann homogène. Si on considère l approximation par éléments finis P de ce problème on peut exprimer une fonction u h V h comme combinaison linéaire des mêmes fonctions de base que dans le cas Neumann moins ψ et ψ N, ce qui donne : () u h = N i= u i ψ i (x) et comme les fonctions test sont dans le même espace elles s écrivent comme combinaison linéaire des mêmes N fonctions de base. Le système linéaire a donc deux inconnues de moins que dans le cas précédent (u et u N ). Il faut noter que les intégrales à calculer sont toujours en (, L), ce qui veut dire qu on a toujours des intégrations dans les éléments (, x ) et (x N, L) même si u et u N ne sont pas des inconnues. Dans ce cas il y a un petit post-traitement à prévoir, il s agit d ajouter les valeurs aux bords avant de générer les fichiers de sortie, ceci pour que les traceurs affichent bien u h () et u h (L). Pour les tests on considère le problème : (2) de solution : u (x) + 8π2 3 u(x) = 2π2 cos(2πx) x (, ) u() =, u() = u(x) = 3 sin(2πx) Le problème de Dirichlet non homogène On va résoudre le problème aux limites suivant : u (x) + cu(x) = f(x) x (, L) (3) u() = a, u(l) = b 8

Soit w(x) un relèvement de la condition de frontière, c est-à-dire, une fonction de H (, L) telle que w() = a et w(l) = b. La formulation faible consiste alors à chercher une fonction u H (, L) tel que u(x) = u (x) + w(x). En multipliant par une fonction test et en intégrant on obtient : (u (x) + w(x)) v (x) dx + c f(x)v(x) dx u (x)v (x) dx + c (u (x) + w(x))v(x) dx = w (x) v (x) dx + c u (x)v(x) dx = ce qui donne la formulation variationnelle suivante : Trouver u H (, L) : (4) a(u, v) = Lv v H (, L) w(x)v(x) dx a(.,.) est définie comme dans le cas Dirichlet homogène, et Lv = f(x)v(x) dx w (x)v(x) dx c w(x)v(x) dx. f(x)v(x) dx On a, bien évidement, le choix de la fonction w. En pratique on doit choisir un relèvement le plus simple possible pour simplifier le calcul des intégrales dans le second membre. Dans la formulation discrète on peut prendre : w(x) = aψ (x) + bψ N (x) qui est, bien sûr, un relèvement et dont le support est [, x ] [x N, L]. Dans ce cas les degrés de liberté sont au nombre de N (x,... x N }) et la condition de frontière modifie deux coordonnées du vecteur second membre : et : b = b N = cb xn f(x)ψ (x) dx a x x xn f(x)ψ N (x) dx b x N ψ N (x)ψ N (x) dx ψ (x)ψ (x) dx ca x x x N ψ N(x)ψ N (x) dx On testera le programme en essayant de résoudre l équation : u (x) + cu(x) = x (, ) (5) u() =, u() = ψ (x)ψ (x) dx de solution : u(x) = e c e c ( e cx e cx ). 9

2 Le problème de Robin Dans cette section on traitera l équation : u (x) + cu(x) = f(x) x (, L) (6) u () + a u() = b u (L) + a 2 u(l) = b 2, en multipliant l équation par une fonction test et en intégrant en (, L), on obtient : u (x)v (x) dx u (L)v(L) + u ()v() + c u(x)v(x) dx = u (x)v (x) dx (b 2 a 2 u(l))v(l) + (b a u())v() + c la formulation variationnelle est alors : Trouver u H (, L) : (7) a(u, v) = Lv v Hper(, L) où : a(u, v) = Lv = u (x)v (x) dx + c f(x)v(x) dx + b 2 v(l) b v(). f(x)v(x) dx u(x)v(x) dx = f(x)v(x) dx u(x)v(x) dx + a 2 u(l)v(l) a u()v() Pour la formulation discrète on considère la même approximation de Galerkin que dans le cas du problème de Neumann. Les éléments de la matrice de masse et du second membre sont données par : A i,j = b i = ψ j(x)ψ i(x) dx + c f(x)ψ i (x) dx + b 2 ψ i (L) b ψ i (), d après les propriétés des fonctions de base : ψ j (x)ψ i (x) dx + a 2 ψ j (L)ψ i (L) a ψ j ()ψ i () ψ j () = j ψ j (L) = j N. Si on note Ā la matrice de masse du problème de Neumann homogène et b le second membre du même problème on aura : et dans tous les autres cas : A, = Ā, a A N,N = ĀN,N + a 2 b = b b b N = b N + b 2 A i,j = Āi,j b i = b i.

Pour tester ce problème on prendra : u (x) + u(x) = x (, ) (8) u () + u() = 2 u () + 2u() = de solution : u(x) = e x + (e 3e 2 )e x 3 Le problème périodique Dans cette section on cherche à résoudre le problème périodique : u (x) + cu(x) = f(x) x (, L) (9) u() = u(l) u () = u (L) on cherchera les solutions dans un espace de fonctions périodiques : H per(, L) = v H (, L) : v() = v(l)} la périodicité de la dérivée sera prise en compte dans la formulation variationnelle : Trouver u H (2) per(, L) : a(u, v) = Lv v Hper(, L) où : a(u, v) = Lv = u (x)v (x) dx + c f(x)v(x) dx. u(x)v(x) dx Dans ce problème la difficulté n est pas dans la formulation variationnelle (elle est la même que dans le problème de Neumann Homogène) mais dans le choix de la base de l espace de fonctions H per(, L). On considère l espace des fonctions localement affines V h H per(, L) associé à un maillage donné x,..., x N }. Les fonctions de base ψ i (x) qu on a définies pour le problème de Neumann homogène sont toutes périodiques sauf ψ (x) et ψ N (x). On prend alors pour base de V h les fonctions ψ i, pour i N et une fonction supplémentaire ψ N (x) (voir figure ) localement affine, qui vérifie : ψ N () =, ψ N (L) =, ψ i (x i ) = i =,..., N Le nombre de degrés de liberté est donc N à comparer avec N pour les problèmes de Dirichlet et N + pour les problèmes de Neumann. Une conséquence de la condition de périodicité est que la matrice de rigidité n est plus tridiagonale. En effet les termes A,N et A N, sont non nuls. Les termes de la matrice de raideur sont les mêmes que ceux de la matrice du problème de

x x x x N N Fig. La fonction de base ψ N (x). Neumann, à deux exceptions près (si on tient compte de la symétrie) : xn xn A N, = ψ (x)ψ N (x) dx + c ψ (x)ψ N (x) dx x N x N = + c x N x N x N x N 6 A N,N = = A,N = x x xn (ψ N(x)) 2 dx + c x x xn ψ N (x) 2 dx+ (ψ N(x)) 2 dx + c ψ N (x) 2 dx x N x N + c x x + + c x N x N x x 3 x N x N 3 Le matrice a la structure suivante : [ A = A A t N AN A N,N ] où A N = (A N,,,...,, A N,N ). Essayons de calculer la décomposition de Choleski A = LL t par blocs : [ ] [ ] [ ] A AN L L t = LN L N,N L N,N ainsi on aura : A t N A N,N L t N A = L L t A N = L LN A N,N = L N 2 + L 2 N,N on peut donc calculer L par le solveur de Choleski pour les systèmes tridiagonaux, puis une descente nous permet de calculer le vecteur L N et un petit calcul nous permet de calculer L N,N. 2

On testera le programme en résolvant le problème : u (x) + 2u(x) = 6 (cos(2x) + sin x) x (, 2π) (2) u() = u(2π) u () = u (2π) qui a pour solution : u(x) = cos(2x) + 2 sin x Références [] Haïm Brezis. Analyse fonctionnelle. MASSON, Paris, 987. [2] K. Eriksson, D. Estep, P. Hansbo, and C. Johnson. Computational Differential Equations. Cambridge University Press, New York, 99. [3] Pascal Joly. Mise en œuvre de la méthode des éléments finis. Ellipses, Paris, 99. [4] Jean-Claude Nédélec. Notions sur les techniques d éléments finis. Ellipses, Paris, 99. [5] P. A. Raviart and J. M. Thomas. Introduction à l analyse numérique des équations aux dérivées partielles. Masson, Paris, 988. 3