Cours D'analyse Numérique Pour Ingénieurs
Cours D'analyse Numérique Pour Ingénieurs
Cours D'analyse Numérique Pour Ingénieurs
http://iacs.epfl.ch/asn/Support/support/node3.html
Pour véhiculer dans ce cours vous avez à votre disposition, en haut de la fenêtre, les quatre pavés
Bonne chance.
J. Rappaz M. Picasso
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
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)
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
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
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
Next: Une simulation interactive libre Up: Sur la convergence de Previous: Un exemple pour lequel
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
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 à
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
Soit un entier positif. Evaluons, en double précision ("double" en langage C, soit 16 chiffres
significatifs), l'expression :
EPFL-IACS-ASN
Next: Chap. 3 : Intégration Up: Chap. 2 : Dérivation Previous: Sensibilisation aux erreurs
d'arrondis
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 :
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.
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
Lorsque est "trop petit", l'effet dû aux erreurs d'arrondis devient prépondérant. Conformément
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
EPFL-IACS-ASN
Next: Formule composite du rectangle Up: Chap. 3 : Intégration Previous: Chap. 3 : Intégration
et
par
EPFL-IACS-ASN
Next: Formule composite du trapèze Up: Chap. 3 : Intégration Previous: Position du problème.
Formule
La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des
Next: Formule composite de Simpson Up: Chap. 3 : Intégration Previous: Formule composite
du rectangle
La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des
EPFL-IACS-ASN
La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des
EPFL-IACS-ASN
Next: Exercice : vérification des Up: Chap. 3 : Intégration Previous: Formule composite de
Simpson
La simulation ci-dessous permet de visualiser (aire entre la courbe rouge et l'axe des
, . On a alors
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
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
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
Subsections
Les deux premières étapes de l'algorithme
L'algorithme
EPFL-IACS-ASN
Première étape
Deuxième étape
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)
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
#include <stdio.h>
#include <math.h>
/*
parametres :
*/
N = 10;
a = 2.;
c = 1.;
for (i=1;i<=N;i++) {
b[i] = 1.;
}
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];
}
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
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
EPFL-IACS-ASN
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 )
PURPOSE
DGTSV solves the equation
ARGUMENTS
N (input) INTEGER
The order of the matrix A. N >= 0.
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
#include <stdio.h>
#define NMAX 1000
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 :
EPFL-IACS-ASN
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
Subsections
Position du problème
Programmation à l'aide la bibliothèque Lapack
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
les autres coefficients étant nuls. Nous pouvons alors vérifier que le -vecteur a pour
coefficients
Subsections
Position du problème
Programmation à l'aide du logiciel Matlab
EPFL-IACS-ASN
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.
Next: Méthode directe ou méthode Up: Chap. 6 : Méthodes Previous: Position du problème
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) :
itérations
5 11
10 25
20 49
40 96
80 187
160 360
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 .
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).
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 .
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é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: 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
EPFL-IACS-ASN
v
Next: Lien avec un problème Up: Motivation : un système Previous: Les é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
(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
(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
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
Subsections
Exercice : équations non linéaires
Systèmes d'équations non linéaires et programmation
EPFL-IACS-ASN
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
Résultats : ii)
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
Résultats : iv)
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
La méthode de Newton converge très rapidement, pour autant que le point de départ soit choisi
EPFL-IACS-ASN
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)
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
(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
Next: Equations différentielles du premier Up: Cours d'analyse numérique pour Previous: Le
programme
Subsections
Equations différentielles du premier ordre : généralités
Schémas d'Euler
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
(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
(9.3)
tel que
alors le problème (9.1)-(9.2) admet une solution globale unique (i.e. pour tout ).
Subsections
EPFL-IACS-ASN
Next: Il y a une Up: Solution globale unique pour Previous: Solution globale unique pour
si
Next: Il y a une Up: Solution globale unique pour Previous: La solution n'est pas
si
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
Dans l'applet suivante, vous pouvez vérifier ce résultat en changeant la valeur initiale .
EPFL-IACS-ASN
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é.
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.
EPFL-IACS-ASN
Vvv
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
Si est une approximation de , ces deux approches nous suggèrent les schémas suivants :
(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é.
(9.6)
si
(9.7)
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
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)
(9.9)
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: 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
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
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
(10.1)
si
(10.2)
(10.3)
Next: Chap. 11 : Une Up: Chap. 10 : Différences Previous: Motivation : déformation d'une
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).
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
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
(11.1)
(11.2)
EPFL-IACS-ASN
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