Vous êtes sur la page 1sur 62

Cours d'analyse numérique pour ingénieurs

http://iacs.epfl.ch/asn/Support/support/node3.html

 Comment utiliser ce support de cours


 Chap. 1 : Problèmes d'interpolation
 Chap. 2 : Dérivation numérique
 Chap. 3 : Intégration numérique
 Chap. 4 : Elimination de Gauss
 Chap. 5 : Décomposition de Cholesky
 Chap. 6 : Méthodes itératives pour la résolution de systèmes linéaires
 Chap. 7 : Calcul des valeurs propres
 Chap. 8 : Equations et systèmes d'équations non linéaires
 Chap. 9 : Equations différentielles
 Chap. 10 : Différences finies pour un problème aux limites unidimensionnel
 Chap. 11 : Une méthode d'éléments finis pour l'approximation de problèmes elliptiques
 Chap. 12 : Approximation de problèmes paraboliques. Problème de la chaleur
 Chap. 13 : Approximation de problèmes hyperboliques. Equation de transport et équation
des ondes
 Chap. 14 : Approximation de problèmes de convection-diffusion
 Remerciements
 About this document ...

Comment utiliser ce support de cours


Ce support de cours WWW a pour but d'illustrer le cours d'analyse numérique pour ingénieurs
donné aux étudiants des sections SSC, MT, MX, EL de l'EPFL. Ce support de cours fait
référence au livre intitulé ``Introduction à l'analyse numérique'' édité par les PPUR.

Pour véhiculer dans ce cours vous avez à votre disposition, en haut de la fenêtre, les quatre pavés

 "Previous" : page précédente,


 "Up" : remonter d'un étage.
 "Next" : page suivante,
 "Contents" : début du support de cours,

Bonne chance.

J. Rappaz M. Picasso

Chap. 1 : Problèmes d'interpolation

Subsections
 Position du problème
 Sur la convergence de l'interpolation de Lagrange

 Position du problème
On cherche un polynôme de degré qui, pour des valeurs , , , ,
distinctes données, prenne les valeurs , , , , respectivement, c'est-à-dire

Voici un programme interactif pour illustrer la construction du polynôme . Sélectionnez

les points , , , en cliquant dans la fenêtre. Le polynôme est


calculé et représenté instantanément.

Sur la convergence de l'interpolation de


Lagrange
Soit un intervalle, soit une fonction continue donnée, soit un entier positif

donné et soit des points de distincts donnés. Nous notons le polynôme

de degré interpolant aux points (voir section 1.4 du livre). Considérons le


cas où les points d'interpolation sont équidistants, c'est-à-dire , , avec

Le théorème 1.1 du livre nous assure que, si est continue et que toutes ses dérivées sont
continues jusqu'à l'ordre , alors

(1.1)

Nous pourrions nous attendre a priori à ce que

lorsque

Ceci n'est malheureusement pas souvent le cas car les dérivées de peuvent grandir très
vite lorsque croît. Dans la suite, nous présentons deux exemples, un pour lequel l'interpolation
de Lagrange converge, l'autre pour lequel l'interpolation de Lagrange diverge.

Subsections
 Un exemple pour lequel l'interpolation de Lagrange converge
 Un exemple pour lequel l'interpolation de Lagrange diverge

 Une simulation interactive libre


 Conclusion

Next: Un exemple pour lequel Up: Chap. 1 : Problèmes Previous: Position du problème
EPFL-IACS-ASN

Next: Un exemple pour lequel Up: Sur la convergence de Previous: Sur la convergence de
Un exemple pour lequel l'interpolation de Lagrange converge

Par exemple, si est définie par , alors et l'inégalité (1.1) nous assure
que

Un exemple pour lequel l'interpolation de Lagrange diverge

Soit définie par sur l'intervalle . Bien que soit indéfiniment

continûment dérivable sur l'intervalle , les grandeurs

explosent très rapidement et l'inégalité (1.1) ne nous assure plus la convergence de l'interpolation.

Dans l'exemple interactif suivant, la fonction (en rouge) ainsi que le polynôme (en bleu)
sont représentés. Vous pouvez changer le nombre de points d'interpolations et constater que
l'interpolation de Lagrange avec une distribution uniforme des points d'interpolation diverge. En
revanche, si les points d'interpolation sont choisis comme étant les zéros des polynômes de
Tchebycheff

alors le polynôme converge vers la fonction en tout point de l'intervalle .v


Dans l'exemple interactif suivant, la fonction (en rouge) ainsi que le polynôme (en bleu)
sont représentés. Vous pouvez changer le nombre de points d'interpolation et constater que
l'interpolation de Lagrange avec une distribution uniforme des points d'interpolation converge.

Next: Une simulation interactive libre Up: Sur la convergence de Previous: Un exemple pour lequel

Un exemple pour lequel l'interpolation de Lagrange diverge

Soit définie par sur l'intervalle . Bien que soit indéfiniment

continûment dérivable sur l'intervalle , les grandeurs

explosent très rapidement et l'inégalité (1.1) ne nous assure plus la convergence de l'interpolation.

Dans l'exemple interactif suivant, la fonction (en rouge) ainsi que le polynôme (en bleu)
sont représentés. Vous pouvez changer le nombre de points d'interpolations et constater que
l'interpolation de Lagrange avec une distribution uniforme des points d'interpolation diverge. En
revanche, si les points d'interpolation sont choisis comme étant les zéros des polynômes de
Tchebycheff

alors le polynôme converge vers la fonction en tout point de l'intervalle .


EPFL-IACS-ASN

Next: Conclusion Up: Sur la convergence de Previous: Un exemple pour lequel

Une simulation interactive libre

Dans l'exemple interactif suivant, la fonction (en rouge) ainsi que le polynôme (en bleu)
sont représentés. Vous pouvez changer toutes les données du problème.

EPFL-IACS-ASN

Next: Chap. 2 : Dérivation Up: Sur la convergence de Previous: Une simulation interactive libre

Conclusion

Nous venons de voir que l'interpolant de Lagrange peut diverger lorsque le nombre de points
d'interpolation devient grand et lorsque les points d'intégration sont équidistants. Une première
solution consiste à

 découper l'intervalle en plusieurs sous-intervalles, c'est l'interpolation par intervalles, voir


la section 1.6 du livre.
 utiliser des points judicieusement placés (zéros des polynômes de Tchebycheff par exemple).

EPFL-IACS-ASN

Next: Sensibilisation aux erreurs d'arrondis Up: Cours d'analyse numérique pour Previous:
Conclusion
Chap. 2 : Dérivation numérique

Subsections
 Sensibilisation aux erreurs d'arrondis
 Dérivées numériques d'ordre un

EPFL-IACS-ASN

Next: Dérivées numériques d'ordre un Up: Chap. 2 : Dérivation Previous: Chap. 2 : Dérivation

Sensibilisation aux erreurs d'arrondis


Sur un ordinateur, l'arithmétique n'est pas exacte. La précision d'un calcul dépend du nombre de
chiffres significatifs utilisés lors du calcul.

Voici un exemple simple pour illustrer ce propos.

Soit un entier positif. Evaluons, en double précision ("double" en langage C, soit 16 chiffres

significatifs), l'expression :

Pour , le calcul donne .

Pour , le calcul donne .

Cet exemple très simple montre l'importance des erreurs d'arrondis.

EPFL-IACS-ASN
Next: Chap. 3 : Intégration Up: Chap. 2 : Dérivation Previous: Sensibilisation aux erreurs
d'arrondis

Dérivées numériques d'ordre un


Soit une fonction continue, de première dérivée continue et soit . Il s'agit

d'approcher numériquement . Pour ce faire, on choisit ``petit'' et on utilise les


formules de différences finies progressive, rétrograde et centrée, respectivement définies par

Erreur de troncature

D'après la section 2.1 du livre, l'erreur de troncature est d'ordre 1 pour les formules de
différences finies progressive et rétrograde et d'ordre 2 pour la formule de différences finies
centrée. Nous noterons :

pour plus de précisions, voir les théorèmes 2.2 et 2.3 du livre.

Erreur d'arrondis
Sur un ordinateur, les nombres sont mémorisés avec un nombre fini de chiffres significatifs (8
pour les ``float'', 16 pour les ``double''). A l'erreur de troncature s'ajoute donc l'erreur

d'arrondis qui, pour le calcul des dérivées premières, est en (voir la section 2.2 du
livre). L'erreur totale est donc la somme de ces deux erreurs.

Illustration des erreurs de troncature et d'arrondis

Soit la fonction définie par , on pose , il s'agit d'approcher

à l'aide des formules de différences finies progressive, rétrograde et centrée. L'applet


suivante effectue ces calculs pour des valeurs de de plus en plus petites et permet de vérifier les
ordres de convergence annoncés.

Nous interprétons les résultats de la manière suivante: lorsque est "raisonnablement petit",
l'effet dû aux erreurs de troncature est prépondérant, la pente des courbes ainsi obtenues indique
l'ordre de convergence de chacune des formules de différences finies. Conformément aux
prédictions théoriques, nous observons que

 les formules de différences finies progressive et rétrograde convergent à l'ordre en ,


 la formule de différences finies centrée converge à l'ordre en .

Lorsque est "trop petit", l'effet dû aux erreurs d'arrondis devient prépondérant. Conformément

aux prédictions théoriques nous observons que l'erreur croît en .

Next: Chap. 3 : Intégration Up: Chap. 2 : Dérivation Previous: Sensibilisation aux erreurs
d'arrondis
EPFL-IACS-ASN

Next: Position du problème. Formule Up: Cours d'analyse numérique pour Previous: Dérivées
numériques d'ordre un

Chap. 3 : Intégration numérique


Subsections
 Position du problème. Formule composite
 Formule composite du rectangle

 Formule composite du trapèze


 Formule composite de Simpson
 Formule composite de Gauss-Legendre
 Exercice : vérification des ordres de convergence
 Solution de l'exercice

EPFL-IACS-ASN

Next: Formule composite du rectangle Up: Chap. 3 : Intégration Previous: Chap. 3 : Intégration

Position du problème. Formule composite


Soit une fonction continue donnée sur un intervalle . Nous
désirons approcher numériquement la quantité

Soit un entier positif, nous posons

et

Nous allons approcher numériquement

par

où est la formule composite définie par


Ici les points sont appelés points d'intégration et les
nombres réels , , , sont appelés poids de la formule de quadrature.

EPFL-IACS-ASN

Next: Formule composite du trapèze Up: Chap. 3 : Intégration Previous: Position du problème.
Formule

Formule composite du rectangle


On choisit , , . La formule composite devient

La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des

x) ainsi que (aire entre la courbe bleue et l'axe des x).

D'après le livre, si est deux fois continûment dérivable, on a :

où ne dépend pas de (ou ).


EPFL-IACS-ASN

Next: Formule composite de Simpson Up: Chap. 3 : Intégration Previous: Formule composite
du rectangle

Formule composite du trapèze


On choisit , , , , . La formule composite devient

La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des

x) ainsi que (aire entre la courbe bleue et l'axe des x).

D'après le livre, si est deux fois continûment dérivable, on a :

où ne dépend pas de (ou ).

EPFL-IACS-ASN

Next: Formule composite de Gauss-Legendre Up: Chap. 3 : Intégration Previous: Formule


composite du trapèze

Formule composite de Simpson


On choisit , , , , , , . La formule
composite devient

La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des

x) ainsi que (aire entre la courbe bleue et l'axe des x).

D'après le livre, si est quatre fois continûment dérivable, on a :

où ne dépend pas de (ou ).

EPFL-IACS-ASN

Next: Exercice : vérification des Up: Chap. 3 : Intégration Previous: Formule composite de
Simpson

Formule composite de Gauss-Legendre


Dans le cas de la formule de Gauss-Legendre à points, les points d'intégration

sont les zéros du polynôme de Gauss-Legendre définis par


Les poids sont définis par

où est la base de Lagrange des polynômes de degré associée aux


points .

La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des

x) ainsi que (aire entre la courbe bleue et l'axe des x).

D'après le livre, si est fois continûment dérivable, on a :

où ne dépend pas de (ou ).

Par exemple, on choisit , , , , . La formule


composite de Gauss-Legendre à deux points s'écrit
Next: Exercice : vérification des Up: Chap. 3 : Intégration Previous: Formule composite de
Simpson
EPFL-IACS-ASN
s
Next: Solution de l'exercice Up: Chap. 3 : Intégration Previous: Formule composite de Gauss-
Legendre

Exercice : vérification des ordres de


convergence
Il s'agit de vérifier l'ordre de convergence des différentes formules dans le cas où ,

, . On a alors

On choisit par exemple la formule du rectangle et , on note et on calcule l'erreur

. On choisit ensuite l'erreur doit être approximativement


divisée par , etc...

EPFL-IACS-ASN

Next: Chap. 4 : Elimination Up: Chap. 3 : Intégration Previous: Exercice : vérification des

Solution de l'exercice
Voici, en fonction de , l'erreur entre

et
Nous vérifions que les formules du rectangle et du trapèze convergent à l'ordre 2 (pente 2 en
échelle log-log). Les formules de Simpson et de Gauss à deux points convergent à l'ordre 4, la
formule de Gauss à 5 points à l'ordre 10 (l'erreur est donc divisée par chaque fois que
est divisé par ).

EPFL-IACS-ASN

Next: Position du problème Up: Cours d'analyse numérique pour Previous: Solution de
l'exercice

Chap. 4 : Elimination de Gauss


Dans ce chapitre nous allons appliquer l'algorithme d'élimination de Gauss à une matrice
tridiagonale. Nous utilisons soit le langage de programmation C, soit la bibliothèque numérique
Lapack, soit le logiciel Matlab.

Subsections
 Position du problème
 L'algorithme d'élimination de Gauss

 Programmation en langage C
 Programmation à l'aide de la bibliothèque Lapack
 Programmation à l'aide du logiciel Matlab

EPFL-IACS-ASN

Next: L'algorithme d'élimination de Gauss Up: Chap. 4 : Elimination Previous: Chap. 4 :


Elimination

Position du problème
Dans le cours d'analyse numérique, nous rencontrerons fréquemment la matrice définie
par

(4.1)

Dans la section 4.9 du livre, il est démontré que cette matrice est symétrique définie positive. Par
conséquent, en vertu du théorème 5.2, toutes les sous-matrices principales sont régulières.
D'après le théorème 4.1, tous les pivots obtenus lors de l'algorithme d'élimination de Gauss sont
non-nuls. Il s'agit maintenant d'expliciter l'algorithme.

EPFL-IACS-ASN

Next: Les deux premières étapes Up: Chap. 4 : Elimination Previous: Position du problème

L'algorithme d'élimination de Gauss


Considérons donc la matrice définie par (4.1) et appliquons l'algorithme d'élimination
de Gauss, voir les sections 4.2 et 4.3 du livre.

Subsections
 Les deux premières étapes de l'algorithme
 L'algorithme

EPFL-IACS-ASN

Next: L'algorithme Up: L'algorithme d'élimination de Gauss Previous: L'algorithme d'élimination de


Gauss

Les deux premières étapes de l'algorithme

Première étape

Divisons la première ligne par et additionnons la nouvelle première ligne à la deuxième :

Deuxième étape

Divisons la deuxième ligne par et additionnons la nouvelle deuxième ligne à la troisième :


Nous obtenons finalement une matrice triangulaire supérieure ayant l'allure suivante :

où , , ,... Il est important de constater que


l'algorithme d'élimination de Gauss conserve la structure de la matrice, au sens où la matrice est
tridiagonale, triangulaire supérieure. Du point de vue informatique, cela signifie qu'il suffit de mémoriser

le -vecteur de composantes , , , pour effectuer l'algorithme d'élimination.

Il est important de ne pas inverser la matrice lors de la résolution de . En effet, à


l'aide du logiciel Matlab (voir par exemple la fin de ce chapitre), nous pouvons inverser la
matrice et constater que est une matrice pleine. De telles opérations sont très coûteuses en
temps et en mémoire.
Next: L'algorithme Up: L'algorithme d'élimination de Gauss Previous: L'algorithme d'élimination de
Gauss

EPFL-IACS-ASN
v
Next: Programmation en langage C Up: L'algorithme d'élimination de Gauss Previous: Les deux
premières étapes

L'algorithme

Voici donc l'algorithme qui permet la résolution du système linéaire , la matrice étant
définie par (4.1).

(4.2)

Il est facile de vérifier que, si , , alors

Nous utiliserons ce résultat pour tester nos programmes. Du point de vue informatique, nous utilisons le
vecteur pour mémoriser la solution du système linéaire .

EPFL-IACS-ASN

Next: Programmation à l'aide de Up: Chap. 4 : Elimination Previous: L'algorithme


Programmation en langage C
Le programme ci-dessous implémente l'algorithme 4.2 en langage C.

#include <stdio.h>
#include <math.h>

#define NMAX 1001

/*

programme elimin.c : elimination de Gauss (chap.4 du livre)

Etant donne un entier N, deux reels a, c et un N-vecteur b,


appliquer l'agorithme d'elimination de Gauss,
au systeme lineaire Ax=b, ou A est la matrice tridiagonale
symetrique de diagonale a et sous-diagonales -c.

parametres :

N : nombre d'inconnues du systeme lineaire


a,c : diagonale, sous-diagonale
b : N-vecteur, second membre du systeme lineaire en entree,
solution du systeme lineaire Ax=b en sortie
u : N-vecteur utilise lors de l'elimination de Gauss

*/

void main (void){

int N,i; double a,c,p; double b[NMAX],u[NMAX];

N = 10;
a = 2.;
c = 1.;

/* initialisation du second membre de Ax=b */

for (i=1;i<=N;i++) {
b[i] = 1.;
}

/* algorithme d'elimination de gauss */

u[1] = -c/a;
b[1] /= a;
for (i=1;i<=N-1;i++) {
p = a + c * u[i]; /* pivot */
u[i+1] = -c / p;
b[i+1] = (b[i+1] + c * b[i]) / p;
}
/* resolution du systeme lineaire */

for (i=N-1;i>=1;i--) {
b[i] = b[i] - u[i] * b[i+1];
}

/* impression des resultats */

for (i=1;i<=N;i++) {
printf(" i = %d x[i]-i*(N+1-i)/2 = %e \n",i,b[i]-i*(N+1.-i)/2.);
}

}
Voilà le résultat du programme :
i = 1 x[i]-i*(N+1-i)/2 = -8.881784e-16
i = 2 x[i]-i*(N+1-i)/2 = -1.776357e-15
i = 3 x[i]-i*(N+1-i)/2 = -1.776357e-15
i = 4 x[i]-i*(N+1-i)/2 = 0.000000e+00
i = 5 x[i]-i*(N+1-i)/2 = 0.000000e+00
i = 6 x[i]-i*(N+1-i)/2 = 0.000000e+00
i = 7 x[i]-i*(N+1-i)/2 = 0.000000e+00
i = 8 x[i]-i*(N+1-i)/2 = 0.000000e+00
i = 9 x[i]-i*(N+1-i)/2 = 0.000000e+00
i = 10 x[i]-i*(N+1-i)/2 = 0.000000e+00

EPFL-IACS-ASN

Next: Documentation de DGTSV Up: Chap. 4 : Elimination Previous: Programmation en


langage C

Programmation à l'aide de la bibliothèque


Lapack
La bibliothèque numérique Lapack est devenue un standard de programmation pour la résolution
de grands systèmes linéaires par des méthodes directes (chap. 4 et 5 du livre). Elle a l'avantage
d'être gratuite et exempte de fautes.

Cette bibliothèque existe depuis de nombreuses années et a été écrite en Fortran pour des raisons
historiques et d'efficacité. Il est néanmoins possible d'appeler les routines de cette bibliothèque
depuis des programmes C, C++ (il existe des versions C et C++ de cette bibliothèque). D'autre
part, cette bibliothèque fait appel aux routines du BLAS (Basic Linear Algebra Subroutine) qui
sont souvent optimisées par le constructeur.
Par exemple, la routine DGTSV permettant de résoudre un système linéaire tridiagonal grâce à
l'algorithme d'élimination de Gauss.

Subsections
 Documentation de DGTSV
 Exemple d'appel de la routine DGTSV en FORTRAN

 Exemple d'appel de la routine DGTSV en C

EPFL-IACS-ASN

Next: Exemple d'appel de la Up: Programmation à l'aide de Previous: Programmation à l'aide de

Documentation de DGTSV

DGTSV(l) DGTSV(l)

NAME
DGTSV - solve the equation A*X = B,

SYNOPSIS
SUBROUTINE DGTSV( N, NRHS, DL, D, DU, B, LDB, INFO )

INTEGER INFO, LDB, N, NRHS

DOUBLE PRECISION B( LDB, * ), D( * ), DL( * ), DU( * )

PURPOSE
DGTSV solves the equation

where A is an N-by-N tridiagonal matrix, by Gaussian elimination with


partial pivoting.

Note that the equation A'*X = B may be solved by interchanging the


order of the arguments DU and DL.

ARGUMENTS
N (input) INTEGER
The order of the matrix A. N >= 0.

NRHS (input) INTEGER


The number of right hand sides, i.e., the number of columns of
the matrix B. NRHS >= 0.

DL (input/output) DOUBLE PRECISION array, dimension (N-1)


On entry, DL must contain the (n-1) subdiagonal elements of A.
On exit, DL is overwritten by the (n-2) elements of the second
superdiagonal of the upper triangular matrix U from the LU
factorization of A, in DL(1), ..., DL(n-2).

D (input/output) DOUBLE PRECISION array, dimension (N)


On entry, D must contain the diagonal elements of A. On exit, D
is overwritten by the n diagonal elements of U.

DU (input/output) DOUBLE PRECISION array, dimension (N-1)


On entry, DU must contain the (n-1) superdiagonal elements of A.
On exit, DU is overwritten by the (n-1) elements of the first
superdiagonal of U.

B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)


On entry, the N-by-NRHS right hand side matrix B. On exit, if
INFO = 0, the N-by-NRHS solution matrix X.

LDB (input) INTEGER


The leading dimension of the array B. LDB >= max(1,N).

Page 1

DGTSV(l) DGTSV(l)

INFO (output)
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, U(i,i) is exactly zero, and the solution has
not been computed. The factorization has not been completed
unless i = N.

EPFL-IACS-ASN

Next: Programmation à l'aide du Up: Programmation à l'aide de Previous: Exemple d'appel de la

Exemple d'appel de la routine DGTSV en C

#include <stdio.h>
#define NMAX 1000

extern void dgtsv_(int *, int *,


double *, double *, double *, double *,
int *, int *);

void main()
{
int i, n=10, one=1, info;
double dl[NMAX-1],d[NMAX],du[NMAX-1],b[NMAX];
/*
initialisations
*/
for (i=0;i<n-1;i++) {
dl[i] =-1.;
d[i] = 2.;
du[i] =-1.;
b[i] = 1.;
}
d[n-1] =2.;
b[n-1] =1.;
/*
appel de DGTSV (LAPACK)
tous les parametres sont passes par adresse en fortran
*/
dgtsv_(&n,&one,dl,d,du,b,&n,&info);
/*
resultats
*/
if (info==0) {
for (i=0;i<n;i++) {
printf(" i %d b(i) %le erreur %le \n",
i,b[i],b[i]-(i+1)*(n+1-i-1)/2.);

}
}

}
Voilà le résultat du programme :

i 0 b(i) 5.000000e+00 erreur -8.881784e-16


i 1 b(i) 9.000000e+00 erreur -1.776357e-15
i 2 b(i) 1.200000e+01 erreur -1.776357e-15
i 3 b(i) 1.400000e+01 erreur 0.000000e+00
i 4 b(i) 1.500000e+01 erreur 0.000000e+00
i 5 b(i) 1.500000e+01 erreur 1.776357e-15
i 6 b(i) 1.400000e+01 erreur 0.000000e+00
i 7 b(i) 1.200000e+01 erreur 0.000000e+00
i 8 b(i) 9.000000e+00 erreur 0.000000e+00
i 9 b(i) 5.000000e+00 erreur 0.000000e+00

EPFL-IACS-ASN

Next: Chap. 5 : Décomposition Up: Chap. 4 : Elimination Previous: Exemple d'appel de la

Programmation à l'aide du logiciel Matlab


Le logiciel Matlab est un outil très performant pour la résolution de grands systèmes linéaires.
L'utilisation de Matlab permet de faire des expériences numériques sans avoir à programmer en
C ou Fortran.
Matlab contient une bibliothèque numérique très complète pour la résolution de grands systèmes
linéaires creux (tapez help sparfun pour avoir des précisions). Par exemple, vous pouvez
effectuer l'élimination de Gauss d'une matrice tridiagonale en procédant de la manière suivante.

N = 10;
a = 2;
c = 1;
A = sparse(2:N,1:N-1,-c,N,N) + sparse(1:N,1:N,a,N,N) + sparse(1:N-1,2:N,-
c,N,N);
full(A)
b = ones([N,1]);
x=A\b

Le résultat est :

x =

5.0000
9.0000
12.0000
14.0000
15.0000
15.0000
14.0000
12.0000
9.0000
5.0000

EPFL-IACS-ASN

Next: Position du problème Up: Cours d'analyse numérique pour Previous: Programmation à
l'aide du

Chap. 5 : Décomposition de Cholesky


Dans ce chapitre, nous allons appliquer l'algorithme de décomposition de Cholesky à une matrice
bande. Nous utilisons soit la bibliothèque numérique Lapack, soit le logiciel Matlab.

Subsections
 Position du problème
 Programmation à l'aide la bibliothèque Lapack

 Programmation à l'aide du logiciel Matlab


EPFL-IACS-ASN

Next: Programmation à l'aide la Up: Chap. 5 : Décomposition Previous: Chap. 5 :


Décomposition

Position du problème
Soit un entier positif, et soit tel que . Dans la section 11.3 du livre, nous avons à
résoudre un système linéaire , la matrice étant définie par la figure ci-dessous.
Cette matrice est clairement symétrique et de bande de demi-largeur . D'après le
théorème 11.1, elle est définie positive et nous pouvons effectuer sa décomposition de Cholesky

puis effectuer les deux résolutions et pour résoudre le système


linéaire. Dans la suite nous proposons un programme effectuant ces opérations, soit en utilisant
la bibliothèque numérique Lapack, soit le logiciel Matlab.

Considérons le cas où le -vecteur a pour coefficients

les autres coefficients étant nuls. Nous pouvons alors vérifier que le -vecteur a pour
coefficients

Nous utiliserons ce résultat pour valider nos programmes.

Next: Programmation à l'aide la Up: Chap. 5 : Décomposition Previous: Chap. 5 :


Décomposition
EPFL-IACS-ASN
Next: Position du problème Up: Cours d'analyse numérique pour Previous: Programmation à
l'aide du

Chap. 6 : Méthodes itératives pour la


résolution de systèmes linéaires
Dans ce chapitre, nous allons appliquer l'algorithme du gradient conjugué pour résoudre le
système linéaire , la matrice étant creuse. Nous utilisons le logiciel Matlab.

Subsections
 Position du problème
 Programmation à l'aide du logiciel Matlab

 Méthode directe ou méthode itérative ?


 Préconditionnement

EPFL-IACS-ASN

Next: Programmation à l'aide du Up: Chap. 6 : Méthodes Previous: Chap. 6 : Méthodes

Position du problème
Considérons à nouveau le système linéaire du chapitre 5 du support de cours. Soit un entier
positif, et soit tel que . Dans la section 11.3 du livre nous avons à résoudre un
système linéaire , la matrice étant définie par la figure ci-dessous.
Cette matrice est clairement symétrique, de bande de demi-largeur . D'après le théorème
11.1, elle est définie positive et nous pouvons utiliser l'algorithme du gradient conjugué pour
résoudre le système linéaire. D'après le théorème 6.7, l'algorithme converge en au plus
itérations. En pratique, nous constaterons qu'il faut de l'ordre de itérations, soit beaucoup
moins que le résultat annoncé dans le théorème 6.7.

Considérons le cas où le -vecteur a pour coefficients


les autres coefficients étant nuls. Nous pouvons alors vérifier que le -vecteur a pour
coefficients

Nous utiliserons ce résultat pour valider les calculs.

Next: Programmation à l'aide du Up: Chap. 6 : Méthodes Previous: Chap. 6 : Méthodes


EPFL-IACS-ASN

Next: Méthode directe ou méthode Up: Chap. 6 : Méthodes Previous: Position du problème

Programmation à l'aide du logiciel Matlab


Le logiciel Matlab est un outil très performant pour la résolution de grands systèmes linéaires.
L'utilisation de Matlab permet de faire des expériences numériques sans avoir à programmer en
C ou Fortran.

Matlab contient une bibliothèque numérique très complète pour la résolution de grands systèmes
linéaires creux (tapez help sparfun pour avoir des précisions). Par exemple, vous pouvez
résoudre le système linéaire en question en utilisant la fonction pcg.

M=5
I = speye(M,M);
E = sparse(2:M,1:M-1,1,M,M);
D = -E-E'+2*I;
A = kron(D,I)+kron(I,D);
spy(A);
N=M*M;
b = zeros([N,1]);
for i=1:M
b(i) = b(i)+i;
end
for i=1:M
b(M*(i-1)+1) = b(M*(i-1)+1)+i;
end
for i=1:M
b(M*(i-1)+M) = b(M*(i-1)+M)+M+1+i;
end
for i=1:M
b(M*(M-1)+i) = b(M*(M-1)+i)+M+1+i;
end
x=pcg(A,b,1.e-6,500);
Voici les coefficients non nuls de la matrice (spy(A) dans le script Matlab) :

voici le résultat pour :

pcg converged at iteration 11 to a solution with relative residual 6e-16

Le nombre d'itérations en fonction de est reporté dans le tableau suivant :

itérations
5 11
10 25
20 49
40 96
80 187
160 360

Nous observons donc que

 Le nombre d'itérations augmente lorsque augmente.


 Le nombre d'itérations est environ multiplié par deux lorsque est multiplié par deux.
Next: Méthode directe ou méthode Up: Chap. 6 : Méthodes Previous: Position du problème
EPFL-IACS-ASN

Next: Préconditionnement Up: Chap. 6 : Méthodes Previous: Programmation à l'aide du

Méthode directe ou méthode itérative ?


Il s'agit maintenant d'estimer la mémoire et le nombre d'opérations nécessaires à la résolution du
système linéaire . Nous considérons les cas suivants :

 Méthode directe : le système linéaire est résolu en utilisant la décomposition de


Cholesky.
 Méthode itérative : le système linéaire est résolu en utilisant l'algorithme du gradient
conjugué.

La décomposition de Cholesky de la matrice nécessite le stockage de la bande, soit

coefficients. Le nombre d'opérations nécessaire à la décomposition est d'ordre

(théorème 5.4 du livre).

En ce qui concerne l'algorithme du gradient conjugué, seuls les éléments non-nuls de la matrice
doivent être stockés, soit moins de coefficients. Les expériences numériques
montrent que le nombre d'itérations nécessaire à la convergence de l'algorithme est d'ordre .A
chaque itération, le coût principal est celui d'une multiplication matrice-vecteur, soit moins de
opérations. Par conséquent, le nombre d'opérations de l'algorithme du gradient
conjugué est de l'ordre de .

Les résultats sont résumés dans le tableau ci-dessous.

méthode mémoire opérations

directe

itérative

A l'aide des fonctions flops et whos de Matlab, nous avons comparé le nombre d'opérations
ainsi que la mémoire nécessaire à la mise en oeuvre des deux algorithmes pour différentes
valeurs de (pour la mise en oeuvre de la décomposition de Cholesky avec Matlab, voir le
chapitre 5 du support de cours).

Le nombre d'opérations (en millions) est reporté dans le tableau suivant :

méthode directe méthode itérative


20 0.197 0.694
40 2.86 5.48
80 43.3 42.8
160 674 331

Nous observons donc que

 Méthode directe : le nombre d'opérations est environ multiplié par chaque fois
que est multiplié par deux : le nombre d'opérations est bien d'ordre .
 Méthode itérative : le nombre d'opérations est environ multiplié par chaque fois
que est multiplié par deux : le nombre d'opérations est bien d'ordre .

 Pour , la méthode itérative nécessite moins d'opérations que la méthode directe.

En ce qui concerne la place mémoire, rappelons que pour les coefficients non-nuls des
matrices et (avec ) sont
La place mémoire nécessaire au stockage de et (en millions de ``double'') est reporté dans le
tableau suivant :

mémoire pour mémoire pour


20 0.0294 0.0978
40 0.119 0.775
80 0.482 6.17
160 1.94 49.2

Nous observons donc que

 Méthode directe : la place mémoire nécessaire au stockage de est environ multiplié par
chaque fois que est multiplié par deux : la place mémoire nécessaire au
stockage de est bien d'ordre .
 Méthode itérative : la place mémoire nécessaire au stockage de est environ multiplié
par chaque fois que est multiplié par deux : la place mémoire nécessaire au
stockage de est bien d'ordre .
 La méthode itérative nécessite toujours moins de place mémoire que la méthode directe.

Nous concluons donc en affirmant que, lorsque est grand, l'algorithme du gradient conjugué
est plus performant que la décomposition de Cholesky pour la résolution du système linéaire
, la matrice étant définie par la figure ci-dessous.
Ces résultats sont généralisables au cas où la matrice est celle obtenue lorsqu'on utilise une
méthode d'éléments finis continus de degré un (voir la section 11.2 du livre).

Next: Préconditionnement Up: Chap. 6 : Méthodes Previous: Programmation à l'aide du


EPFL-IACS-ASN
Vv

Next: Les équations du mouvement Up: Chap. 7 : Calcul Previous: Chap. 7 : Calcul
Motivation : un système de billes et ressorts
Nous considérons un système de deux billes de masse unité reliées par trois ressorts de raideur

unité. Notons et les positions des deux billes au temps , par rapport à leur position

d'équilibre. Soit , et les forces appliquées sur les billes dues aux forces de

rappel des trois ressorts. Nous allons déterminer les positions des billes et en nous
ramenant à un calcul de valeurs propres.

Subsections
 Les équations du mouvement
 Résolution des équations du mouvement

 Lien avec un problème de valeurs propres


 Conclusion

EPFL-IACS-ASN
v
Next: Lien avec un problème Up: Motivation : un système Previous: Les équations du mouvement

Résolution des équations du mouvement

Nous allons maintenant chercher les positions des billes et sous la forme

les grandeurs , et étant inconnues. Injectons ces relations dans les équations du mouvement.
Puisque

nous obtenons, après avoir simplifié par

(7.1)

Le problème revient donc à chercher , et tels que les deux équations ci-dessus soient
satisfaites.

EPFL-IACS-ASN

Next: Lien avec un problème Up: Motivation : un système Previous: Les équations du mouvement
Résolution des équations du mouvement

Nous allons maintenant chercher les positions des billes et sous la forme

les grandeurs , et étant inconnues. Injectons ces relations dans les équations du mouvement.
Puisque

nous obtenons, après avoir simplifié par

(7.1)

Le problème revient donc à chercher , et tels que les deux équations ci-dessus soient
satisfaites.

EPFL-IACS-ASN

Next: Chap. 8 : Equations Up: Motivation : un système Previous: Lien avec un problème

Conclusion
Nous avons considéré un système de deux billes et trois ressorts et nous nous sommes ramenés à la

résolution d'un problème de valeurs propres pour une matrice .


Nous pouvons généraliser au cas du système de billes et ressorts ( grand) que nous
saurons résoudre si nous savons résoudre un problème de valeurs propres pour une matrice

Souvent dans la pratique, étant donné une matrice, il n'est pas nécessaire de chercher toutes les
valeurs propres et vecteurs propres de cette matrice. Par exemple, si nous admettons que la
matrice est issue de l'étude de la réponse dynamique d'un pont, nous chercherons à déterminer
les valeurs propres correspondant aux fréquences induites par des piétons marchant sur ce pont.

EPFL-IACS-ASN

Next: Exercice : équations non Up: Cours d'analyse numérique pour Previous: Conclusion

Chap. 8 : Equations et systèmes d'équations


non linéaires

Subsections
 Exercice : équations non linéaires
 Systèmes d'équations non linéaires et programmation

EPFL-IACS-ASN

Next: Résultats : i) Up: Chap. 8 : Equations Previous: Chap. 8 : Equations

Exercice : équations non linéaires


Nous avons à notre disposition un programme interactif permettant de trouver un zéro d'une

fonction en utilisant les méthodes de la bissection, de Newton et de Newton-corde (voir les


sections 8.1 et 8.3 du livre).
La méthode de la bissection nécessite la donnée de deux réels et tels que .

Pour les méthodes de Newton et Newton-corde, la donnée d'une approximation du zéro de


est demandée.

Considérons les exemples suivants :

i) La fonction est définie par , , , .

ii) La fonction est définie par , , , , puis .

iii) La fonction est définie par , , , , puis .

iv) La fonction est définie par , , , , puis .

Subsections
 Résultats : i)
 Résultats : ii)

 Résultats : iii)
 Résultats : iv)
 Conclusions

EPFL-IACS-ASN

Next: Résultats : ii) Up: Exercice : équations non Previous: Exercice : équations non

Résultats : i)
Nous concluons en affirmant que les trois méthodes convergent. La méthode la plus rapide est la
méthode de Newton, la méthode la plus lente est la méthode de Newton-Corde. La vitesse de
convergence de la méthode de Newton-Corde dépend fortement du choix de . Par exemple,
avec , la méthode Newton-Corde converge beaucoup plus rapidement qu'avec .

EPFL-IACS-ASN

Next: Résultats : iii) Up: Exercice : équations non Previous: Résultats : i)

Résultats : ii)

La méthode de la bissection converge. La méthode de Newton diverge avec mais


converge très rapidement avec . La méthode de Newton-Corde diverge avec et
mais converge avec .

EPFL-IACS-ASN

Next: Résultats : iv) Up: Exercice : équations non Previous: Résultats : ii)

Résultats : iii)
La méthode de la bissection converge. La méthode de Newton converge très rapidement avec
mais diverge avec . La méthode de Newton-Corde converge très lentement
avec mais diverge avec .

EPFL-IACS-ASN

Next: Conclusions Up: Exercice : équations non Previous: Résultats : iii)

Résultats : iv)

La méthode de la bissection converge. La méthode de Newton converge lentement avec


mais diverge avec . La méthode de Newton-Corde converge très lentement avec
mais diverge avec . La relative lenteur de la méthode de Newton s'explique de la manière

suivante. La dérivée de la fonction au voisinage du zéro est presque nulle. Les hypothèses du
théorème 8.4 du livre ne sont donc pas satisfaites. La méthode de Newton ne converge que
linéairement (plutôt que quadratiquement).

EPFL-IACS-ASN

Next: Systèmes d'équations non linéaires Up: Exercice : équations non Previous: Résultats : iv)
Conclusions

La méthode de la bissection converge toujours, pour autant que les points de départ et soient

choisis de sorte que . En revanche, la convergence est relativement lente

(l'intervalle est divisé par deux à chaque itération).

La méthode de Newton converge très rapidement, pour autant que le point de départ soit choisi

suffisamment proche du zéro de . De plus cette méthode est généralisable à un système


d'équations non linéaires.

EPFL-IACS-ASN

Next: Donnée du problème Up: Chap. 8 : Equations Previous: Conclusions

Systèmes d'équations non linéaires et


programmation
Nous présentons la méthode de Newton pour résoudre un système d'équations non linéaires à
travers un exemple.

Subsections
 Donnée du problème
 La méthode de Newton

 La matrice jacobienne
 Programmation

EPFL-IACS-ASN

Next: La méthode de Newton Up: Systèmes d'équations non linéaires Previous: Systèmes d'équations
non linéaires
Donnée du problème
Soit une fonction continûment dérivable donnée. Dans la section 10.6 du livre, nous aurons
à résoudre le système de équations non linéaires

(8.1)

les inconnues étant les réels , , , .

EPFL-IACS-ASN

Next: La matrice jacobienne Up: Systèmes d'équations non linéaires Previous: Donnée du problème

La méthode de Newton
Soit le -vecteur défini par

Ecrivons le système (8.1) sous la forme , avec . Nous avons clairement


Etant donné un -vecteur , la méthode de Newton consiste à résoudre le sytème linéaire

(8.2)

et à calculer

(8.3)

pour .

EPFL-IACS-ASN

Next: Programmation Up: Systèmes d'équations non linéaires Previous: La méthode de Newton

La matrice jacobienne

La matrice jacobienne est tridiagonale et définie par


EPFL-IACS-ASN

Next: Equations différentielles du premier Up: Cours d'analyse numérique pour Previous: Le
programme

Chap. 9 : Equations différentielles

Subsections
 Equations différentielles du premier ordre : généralités
 Schémas d'Euler

 Schémas de Runge-Kutta explicite d'ordre 2 et 4


 Quelques compléments
 Une simulation interactive libre

EPFL-IACS-ASN

Next: Solution globale unique pour Up: Chap. 9 : Equations Previous: Chap. 9 : Equations
Equations différentielles du premier ordre :
généralités
Soit une fonction donnée à deux variables et . Etant

donnée une valeur , on cherche une fonction qui satisfait

(9.1)
si
(9.2)

Le problème (9.1)-(9.2) est appelé problème de Cauchy. L'équation (9.1) est une équation
différentielle, et la relation (9.2) est une condition de Cauchy.

Subsections
 Solution globale unique pour le problème de Cauchy
 Problèmes numériquement mal posés

EPFL-IACS-ASN

Next: La solution n'est pas Up: Equations différentielles du premier Previous: Equations différentielles
du premier

Solution globale unique pour le problème de Cauchy

Pour un couple donné, il n'existe pas toujours de solution au problème (9.1)-(9.2). Il se


peut aussi qu'il existe plus d'une solution au problème. Rappelons (théorème 9.2 du livre) que, si

est lipchitzienne, i.e si

(9.3)
tel que
alors le problème (9.1)-(9.2) admet une solution globale unique (i.e. pour tout ).

Nous considérons les exemples suivants:

Subsections

 La solution n'est pas unique


 Il y a une solution non globale

 Il y a une solution globale unique

EPFL-IACS-ASN

Next: Il y a une Up: Solution globale unique pour Previous: Solution globale unique pour

La solution n'est pas unique

Nous reprenons l'exemple 9.2 du livre : on considère le problème

si

Les trois fonctions définies par , sont toutes trois solutions du


problème.

L'applet suivante illustre la non-unicité de la solution.


EPFL-IACS-ASN

Next: Il y a une Up: Solution globale unique pour Previous: La solution n'est pas

Il y a une solution non globale

Nous reprenons l'exemple 9.3 du livre : on considère le problème

si

La solution du problème est donnée, pour , par . La solution explose

donc lorsque s'approche de .

L'applet suivante illustre ce phénomène.

EPFL-IACS-ASN

Next: Problèmes numériquement mal posés Up: Solution globale unique pour Previous: Il y a une
Il y a une solution globale unique

Nous reprenons l'exemple 9.5 du livre : on considère la fonction et

. La fonction est lipschitzienne par rapport à la variable et le problème de Cauchy admet

une solution unique globale pour toute valeur initiale .

Dans l'applet suivante, vous pouvez vérifier ce résultat en changeant la valeur initiale .

EPFL-IACS-ASN

Next: Schémas d'Euler Up: Equations différentielles du premier Previous: Il y a une

Problèmes numériquement mal posés

Soit une fonction lipschitzienne par rapport à la variable , i.e. vérifiant la relation (9.3).
Nous savons donc que, pour tout donné, il existe une solution globale unique au problème de
Cauchy correspondant.

Néanmoins, dans certains cas, une toute petite modification de la valeur initiale (due par
exemple aux erreurs d'arrondis) induit une énorme différence sur la solution du problème de
Cauchy au temps . On dit alors que le problème est numériquement mal posé.

Nous reprenons l'exemple de la section 9.2 du livre : on considère le problème

si
Si , la solution du problème est donnée par . Si , la solution

du problème de Cauchy est donnée par . La différence entre ces deux solutions
est donc et pourrait être grande même si est petit.

En effet, pour , la différence absolue est de l'ordre de , la différence relative de


l'ordre de . Il faut donc 13 chiffres significatifs pour obtenir le résultat à 10% près !

L'applet suivante illustre ce phénomène.

Next: Schémas d'Euler Up: Equations différentielles du premier Previous: Il y a une

EPFL-IACS-ASN
Vvv

Next: Schémas de Runge-Kutta explicite Up: Chap. 9 : Equations Previous: Problèmes


numériquement mal posés

Schémas d'Euler
Pour établir un schéma d'approximation correspondant au problème (9.1)-(9.2), nous
commençons par partitionner l'axe Ot, c'est-à-dire nous choisissons des points tels
que

En posant , nous pouvons approcher et par .

Si est une approximation de , ces deux approches nous suggèrent les schémas suivants :

Schéma d'Euler progressif

(9.4)
Schéma d'Euler rétrograde

(9.5)

Le schéma d'Euler progressif est un schéma explicite car le calcul de en fonction de est
explicite. Le schéma d'Euler rétrograde est un schéma implicite car le calcul de en fonction
de est implicite.

Stabilité.

On considère le cas particulier où , où . Le problème (9.1)-(9.2) devient

(9.6)
si
(9.7)

et la solution est donnée par . Puisque est positif, ce problème est


numériquement bien posé. Néanmoins, si on décide de résoudre numériquement (9.6)-(9.7) avec
le schéma d'Euler explicite avec un pas de temps constant, il faut respecter la condition de

stabilité . En revanche, le schéma d'Euler implicite est toujours stable.

L'applet suivante illustre la notion de stabilité pour les schémas d'Euler avec .

Convergence.
La notion de stabilité d'un schéma ne garantit pas que les résultats numériques obtenus soient
proches de la solution du problème de Cauchy. La notion de convergence garantit que, lorsque
tend vers zero, les résultats numériques s'approchent de la solution du problème de Cauchy.

Les schémas d'Euler implicite ou explicite sont des schémas d'ordre un en au sens suivant :

Soit le temps final, soit le nombre de pas de temps, soit le pas de temps et soit

l'approximation de obtenue avec les schémas d'Euler implicite ou explicite.

Le théorème 9.3 du livre nous assure que, si est une fois continûment dérivable par rapport à
ses deux variables et , il existe telle que pour tout on a

(9.8)

Next: Schémas de Runge-Kutta explicite Up: Chap. 9 : Equations Previous: Problèmes


numériquement mal posés
EPFL-IACS-ASN
Vv

Next: Quelques compléments Up: Chap. 9 : Equations Previous: Schémas d'Euler

Schémas de Runge-Kutta explicite d'ordre 2


et 4
Le schéma d'Heun s'écrit :

(9.9)

Le schéma de Runge-Kutta classique s'écrit :


(9.10)

Ces deux schémas sont des schémas de Runge-Kutta explicites. Ils sont a priori plus précis que
les schémas d'Euler. Le schéma de Heun est d'ordre 2, le schéma de Runge-Kutta classique est
d'ordre 4.

Dans l'applet suivante, vous pouvez vérifier que les schémas de Heun et de Runge-Kutta
classique sont plus précis que les schémas d'Euler.

Next: Quelques compléments Up: Chap. 9 : Equations Previous: Schémas d'Euler


EPFL-IACS-ASN

Next: Une simulation interactive libre Up: Chap. 9 : Equations Previous: Schémas de Runge-
Kutta explicite

Quelques compléments
Les quatres méthodes (Euler explicite, Euler implicite, Heun, RK4) que nous vous avons
présentées sont des méthodes simples et très couramment utilisées en pratique. Il existe
cependant d'autres méthodes, plus complexes mais plus efficaces, dont l'utilisation peut-être
avantageuse dans certains cas. Pour un exposé détaillé, nous renvoyons le lecteur aux deux livres
suivants :
- E. Hairer, S.P. Norsett, G. Wanner : ``Solving ordinary differentiel equations I ``, Springer
Verlag (1993),
- E. Hairer, G. Wanner : ``Solving ordinary differentiel equations II ``, Springer Verlag (1996).

A titre d'exemple, nous présentons succintement la méthode DOPRI5 avec pas adaptatif. Il
s'agit d'une méthode de Runge-Kutta d'ordre 5. De plus, partant d'un pas donné, la méthode
adapte automatiquement le pas pour que l'erreur entre la solution numérique et la solution exacte
ne dépasse pas (presque jamais) une tolérance fixée à l'avance.
Dans l'exemple interactif ci-dessous, vous pouvez visualiser le comportement des quatres
schémas présentés et de DOPRI5 pour la résolution d'un problème de Cauchy raide (i.e. la
dérivée de la solution exacte présente de fortes variations) :

Next: Une simulation interactive libre Up: Chap. 9 : Equations Previous: Schémas de Runge-
Kutta explicite
EPFL-IACS-ASN

Next: Chap. 10 : Différences Up: Chap. 9 : Equations Previous: Quelques compléments

Une simulation interactive libre


Vous avez à votre disposition une simulation interactive correspondant à la résolution numérique
du problème (9.1)-(9.2). Vous avez la possibilité de modifier tous les paramètres du problème.

EPFL-IACS-ASN
-50*(x-cos(t))

Next: Motivation : déformation d'une Up: Cours d'analyse numérique pour Previous: Une
simulation interactive libre

Chap. 10 : Différences finies pour un


problème aux limites unidimensionnel

Subsections
 Motivation : déformation d'une corde élastique
 Méthode des différences finies
EPFL-IACS-ASN

Next: Méthode des différences finies Up: Chap. 10 : Différences Previous: Chap. 10 :
Différences

Motivation : déformation d'une corde


élastique
Considérons le problème du déplacement vertical au point d'une corde tendue entre les

extrémités et , soumise à une tension unité et à une densité de charge verticale


. Le problème correspondant s'énonce : trouver une fonction deux fois continûment dérivable

sur telle que

(10.1)
si
(10.2)

Voici une illustration interactive de la solution du problème (10.1) (10.2).

L'équation (10.1) est une équation différentielle linéaire du second ordre.


Les égalités (10.2) sont appelées ``conditions aux limites''.
Le problème (10.1),(10.2) est appelé ``problème du second ordre aux limites 1D''.
En intégrant (10.1) une fois, on obtient :

(10.3)

En tenant compte de (10.2), on peut calculer les constantes et . On obtient finalement


Next: Méthode des différences finies Up: Chap. 10 : Différences Previous: Chap. 10 :
Différences
EPFL-IACS-ASN

Next: Chap. 11 : Une Up: Chap. 10 : Différences Previous: Motivation : déformation d'une

Méthode des différences finies


Soit un entier positif, on pose , , .

Pour tout , on approche par la valeur définie par :

Nous obtenons ainsi le système linéaire


(10.4)

où est la matrice définie par


et les -vecteurs et sont donnés par

La matrice étant tridiagonale symétrique définie positive, on résout le système (10.4) par la
méthode de Cholesky (voir le chapitre 5 du livre).

Si est 4 fois continûment dérivable, on a l'estimation d'erreur suivante :

où ne dépend pas de (et donc pas de ).


Avec l'exemple interactif ci-dessous, vous pouvez visualiser l'approximation de par différences
finies.

Next: Chap. 11 : Une Up: Chap. 10 : Différences Previous: Motivation : déformation d'une
EPFL-IACS-ASN

Next: Problème de Poisson 2D Up: Cours d'analyse numérique pour Previous: Méthode des
différences finies

Chap. 11 : Une méthode d'éléments finis pour


l'approximation de problèmes elliptiques

Subsections
 Problème de Poisson 2D : présentation du problème
 Solutions du problème de Poisson dans un cadre particulier

 Approximation de Galerkin
 Mise sous forme matricielle de l'approximation de Galerkin
 Eléments finis triangulaires
 Exemples numériques
 Utilisation du logiciel Matlab

EPFL-IACS-ASN

Next: Solutions du problème de Up: Chap. 11 : Une Previous: Chap. 11 : Une

Problème de Poisson 2D : présentation du


problème
Soit un domaine ``régulier'' dans le plan de frontière . Si est une
fonction continue donnée, on cherche une fonction satisfaisant les relations :

(11.1)
(11.2)

Ici le point a deux coordonnées et on note .

Le problème est appelé problème de Poisson. Il modélise le déplacement vertical au point


d'une membrane tendue, attachée à , et soumise à une densité de force verticale et

proportionnelle à . Le problème de Poisson est un problème elliptique (voir définition 11.1 du


livre).

EPFL-IACS-ASN

Next: Approximation de Galerkin Up: Chap. 11 : Une Previous: Problème de Poisson 2D

Solutions du problème de Poisson dans un


cadre particulier
On considère le domaine comme étant le disque unité auquel on a retranché un secteur
circulaire d'angle

On choisit . Dans la figure ci-dessous, nous avons représenté, pour diverses

valeurs de , la dérivée de la solution du problème (11.1) (11.2) par rapport à

sur le segment horizontal .


Nous remarquons que plus est petit, plus la solution devient ``peu régulière'' en . Le

phénomène est compréhensible si nous interprétons comme le déplacement vertical d'une


membrane chargée uniformément et attachée sur le bord de . En terme pratique, cela

signifie que plus est petit, plus le point est une partie fragile de la membrane, depuis
laquelle une déchirure est susceptible de se former.

EPFL-IACS-ASN
vv

Vous aimerez peut-être aussi