Académique Documents
Professionnel Documents
Culture Documents
Q2 - LEPL1104
Informations importantes Ce document est grandement inspiré de l’excellent cours donné par Vincent
Legat à l’EPL (École Polytechnique de Louvain), faculté de l’UCL (Université Catholique de Louvain). Il
est écrit par les auteurs susnommés avec l’aide de tous les autres étudiants, la vôtre est donc la bienvenue.
Il y a toujours moyen de l’améliorer, surtout si le cours change car la synthèse doit alors être mise à jour
en conséquence. On peut retrouver le code source et un lien vers la dernière version du pdf à l’adresse
suivante
https://github.com/Gp2mv3/Syntheses.
On y trouve aussi le contenu du README qui contient de plus amples informations, vous êtes invités à le
lire.
Il y est indiqué que les questions, signalements d’erreurs, suggestions d’améliorations ou quelque
discussion que ce soit relative au projet sont à spécifier de préférence à l’adresse suivante
https://github.com/Gp2mv3/Syntheses/issues.
Ça permet à tout le monde de les voir, les commenter et agir en conséquence. Vous êtes d’ailleurs invités
à participer aux discussions.
Vous trouverez aussi des informations dans le wiki
https://github.com/Gp2mv3/Syntheses/wiki
comme le statut des documents pour chaque cours
https://github.com/Gp2mv3/Syntheses/wiki/Status
Vous pouvez d’ailleurs remarquer qu’il en manque encore beaucoup, votre aide est la bienvenue.
Pour contribuer au bug tracker et au wiki, il vous suffira de créer un compte sur GitHub. Pour
interagir avec le code des documents, il vous faudra installer LATEX. Pour interagir directement avec le
code sur GitHub, vous devrez utiliser git. Si cela pose problème, nous sommes évidemment ouverts à
des contributeurs envoyant leurs changements par mail (à l’adresse contact.epldrive@gmail.com) ou par
n’importe quel autre moyen.
License Ce travail est disponible sous license Creative Commons Attribution 4.0 Unported. Une copie
de cette license est disponible sur http://creativecommons.org/licenses/by/4.0/, ou dans le dépôt
GitHub (voir ci-dessus).
Table des matières
I Approximation numérique 2
1 Interpolation 3
1.1 Formule d’interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Interpolation en 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Erreur d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Convergence de l’interpolation polynomiale . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Les abscisses de Tchebychev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Les splines cubiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Approximation 5
2.1 Approximation au sens des moindres carrés . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Les B-splines et les NURBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
II Intégration numérique 6
5 Newton-Cotes : Méthodes à pas égaux 7
5.1 Méthodes composites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2 Erreur d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7 Méthodes récursives 10
7.1 Extrapolation de Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.2 Méthode de Romberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
10.6 Méthodes de Gear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
10.7 Méthode Leapfrog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
13 Newton-Raphson 18
13.1 Méthode de la sécante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
VI Résolution d’EDP 18
14 Analyse de la stabilité 19
15 EDP elliptique 19
16 EDP parabolique 19
17 EDP hyperbolique 19
VII Annexes 20
A Installation et utilisation de Matlab ou de GNU/Octave 20
A.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
A.1.1 Sous GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
A.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
A.2.1 Interpolation polynomiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
A.2.2 Spline cubique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Définition 1 (Grand ordre). On dit qu’une fonction f (h) est un grand ordre de hn au voisinage de 0
s’il existe une constante C telle que
|f (h)| ≤ C|hn |
au voisinage de 0. On écrit alors f (h) = O(hn ).
Première partie
Approximation numérique
Soit une fonction u(x). Le problème d’approximation correspond à trouver une fonction uh (x) qui
approxime la fonction u(x).
Cette approximation est faite à l’aide de fonctions de base ϕj (x). On cherche à approximer u(x) avec
une combinaison linéaire des ϕj (x) :
n
X
u(x) ≈ uh (x) = aj ϕj (x).
j=1
On définit l’erreur d’approximation eh (x) ≜ u(x) − uh (x). On définit également l’ordre d’une approxi-
mation comme étant l’ordre de l’erreur eh (x).
2
1 Interpolation
Une interpolation est une approximation passant par certains points de u(x).
Soit (Xi , Ui ) avec i = 0, 1, 2, . . . , n ces points. On a
ϕ0 (X0 ) ϕ1 (X0 ) · · · ϕn (X0 ) a0 U0
ϕ (X ) ϕ (X ) · · · ϕn (X1 )
a1 U1
0 1 1 1
= .
. .. .. . .
.. . . .. ..
ϕ0 (Xn ) ϕ1 (Xn ) · · · ϕn (Xn ) an Un
On voit que la matrice des coefficients du système (appelée la matrice de Vandermonde) est régulière.
Ce qui nous donne le théorème suivant.
Théorème 2. Il existe un et un seul polynôme d’interpolation de degré n passant par n + 1 points
d’abscisses distinctes.
3
1.2 Interpolation en 2D
(Voir APE1, exercice 12.) On peut étendre la notion d’interpolation à des fonctions à deux variables.
Imaginons par exemple que l’on veuille interpoler une fonction u(x, y) par une fonction uh (x, y) sur un
domaine carré sur lequel on connait la valeur de u aux quatres sommets : u(Xi , Yi ) = Ui , i = 0, 1, 2, 3.
On pourrait prendre comme fonctions de bases les monômes 1, x, y et xy de sorte que uh (x, y) =
a0 + a1 x + a2 y + a3 xy et résoudre le système linéaire qui en découle. Mais on peut faire mieux. Pour ce
faire, on généralise la notion de fonction de base de Lagrange au cas à deux dimensions.
X
u(x, y) ≈ uh (x, y) = Ui ϕi (x, y)
où
Q
i̸=j (x − Xi )(y − Yi )
ϕj (x) = Q .
i̸=j (Xj − Xi )(Yj − Yi )
On a donc bien ϕi (Xi , Yi ) = 1 et ϕi (Xj , Yj ) = 0∀j ̸= i.
Théorème 3. Soit X0 < X1 < . . . < Xn les abscisses des points d’interpolation. Si la fonction u(x)
est définie sur l’intervalle [X0 , Xn ] et qu’elle est (n + 1) fois dérivable sur ]X0 , Xn [, alors pour tout
x ∈ ]X0 , Xn [, il existe ξ(x) ∈ ]X0 , Xn [ tel que
n
u(n+1) (ξ(x)) Y
eh (x) = (x − Xi ).
(n + 1)! i=0
Remarque 4. En pratique on ne dispose pas de u(x) et de ξ(x), on ne dispose donc pas non plus de
u(n+1) (ξ(x)). On va donc introduire une constante C qui borne toutes les dérivées de u(x) (dans certains
cas c’est très simple, comme pour sin(x) ou cos(x) dont la dérivée d’ordre n + 1 sera comprise entre −1 et
Qn n+1
1). Il est également possible de démontrer que i=0 (x − Xi ) < n! h 4 où h est le pas entre les abscisses
Xi (voir APE1, question 5). On peut donc finalement écrire
h C hn+1 C
e (x) ≤ · n! = hn+1 .
(n + 1)! 4 4(n + 1)
eh (x) est donc d’ordre n + 1, eh (x) = O(hn+1 ).
lim eh (x) = 0
n→∞
pour x ∈ [X0 , Xn ].
Comme on peut le voir au travers de la remarque 4, on peut prouver ce résultat de convergence pour
des fonctions u(x) dont les dérivées sont bornées sur le domaine d’interpolation par une constante C (e.g
sin(x), cos(x), ex ). En effet, en se rappelant que h = b−a
n , on a bien
n+1
1 b−a
lim eh (x) = C lim = 0.
n→∞ n→∞ 4(n + 1) n
4
1.5 Les abscisses de Tchebychev
Pour certaines fonctions u(x) plus ou moins irrégulières (e.g fonctions de Runge), l’interpolation ne
converge pas lorsque le nombre de points d’interpolation augmente : il y a présence de fortes oscillations
de l’interpolant près des bords de l’intervalle d’interpolation lorsque le degré n augmente (à cause de
la dérivée d’ordre élevé dans la borne de l’erreur). On peut réduire l’erreur maximale en essayant de la
répartir le plus possible. Comme c’est au bord qu’il y a le plus d’erreur, l’idée serait de mettre plus de
points au bord. Pour cela, il suffit d’utiliser les abscisses de Tchebychev :
(2i + 1)π
Xi = cos .
2(n + 1)
2 Approximation
Il est parfois préférable de ne pas imposer que la fonction passe par tous les points car dans ce cas,
on n’a plus une interpolation.
C’est à dire qu’on cherche une fonction uh (x) dans l’espace euclidien formé par les combinaisons
linéaires des fonctions ϕj (x) qui soit à une distance minimale de u(x) selon le produit scalaire défini pour
cet espace.
uh (x) est donc la projection orthogonale de u(x) dans cet espace. eh (x) est donc orthogonal à cet
espace. D’où ⟨ϕk , eh ⟩ = 0 pour k = 0, 1, . . . , n. Ce qui nous permet de trouver que
Xn ˆ b ! ˆ
b
aj ϕk (x)ϕj (x) dx = ϕk (x)u(x) dx,
j=0 a a
en prenant des ϕj orthogonaux, comme ϕj (x) = cos ((j + 1)x). On peut calculer aj plus facilement en
projettant u sur ϕj . Attention néanmoins car si les ϕj sont orthogonaux, ils ne sont pas nécessairement
orthonormés ! On a donc ˆ
1 1 π
aj = ⟨u, ϕj ⟩ = u(x) cos((j + 1)x) dx.
π π −π
5
2.2 Les B-splines et les NURBS
Les B-splines et les NURBS servent à faire une approximation de n + 1 points (Xi , Yi ). Cette ap-
proximation est paramétrée en fonction de t. On donne alors n + 1 noeuds
T0 ≤ T1 ≤ . . . Tn .
Théorème 6. À l’exclusion des p premiers et p derniers intervalles, la somme des B-splines vaut l’unité.
n−p−1
X
Bip (t) = 1
i=0
où Tp ≤ t < Tn−p .
On peut ensuite calculer l’approximation avec la formule suivante
n−p−1
X
(xh (t), y h (t)) = Bip (t)(Xi , Yi )
i=0
En se rappelant du Théorème 6, on voit qu’une B-spline est le cas particulier des NURBS où tous les
Wi valent 1.
Deuxième partie
Intégration numérique
Soit une fonction u(x). Une intégrale classique requiert la primitive de u(x). Seulement, cette méthode
est souvent assez fastidieuse à effectuer numériquement.
6
L’intégration numérique se fait à partir de différents points Xi auquels on donne un poids wi . On
utilise ensuite la formule suivante
ˆ b m
X
u(x) dx = I ≈ I h = wi u(Xi ).
a i=0
´1
On a donc wi = ϕi (x) dx. Comme ils ne dépendent pas de u, on peut les calculer à priori.
−1
´1
On remarque que si u est un polynôme de degré m, E h = 0. Mais comme −1 x2n+1 dx = 0 ∀n ∈ N,
si m est pair et que u est un polynôme de degré m + 1, on a aussi E h = 0. Ceci permet d’expliquer
pourquoi le degré de précision de la méthode de Simpson est 3, alors qu’on utilise un polynôme de degré
2 comme interpolation de u.
On a donc le tableau suivant où d est le degré de précision de la méthode.
m Nom de la méthode d
1 Trapèzes 1
2 Simpson 3
3
3 Simpson 8 3
4 Boole 5
7
Figure 2 – Interprétation géométrique de la méthode des trapèzes et de la méthode de Simpson. (Tiré
du syllabus.)
L’idée est donc de séparer l’intervalle à intégrer en un certain nombre de fois m intervalles qu’on
intégrera séparément.
Pour cela, il est intéressant de calculer l’expression des wi en fonction de h, l’écart entre deux abscisses
consécutives. On a pour les méthodes avec m = 1, 2, 4, respectivement,
ˆ h/2
h h3
u(x) dx = U−h/2 + Uh/2 − u(2) (ξ)
−h/2 2 12
ˆ h
h h5
u(x) dx = (U−h + 4U0 + Uh ) − u(4) (ξ)
−h 3 90
ˆ 2h
2h 8h7 (6)
u(x) dx = (7U−2h + 32U−h + 12U0 + 32Uh + 7U2h ) − u (ξ).
−2h 45 945
8
5.2 Erreur d’interpolation
On peut calculer l’erreur d’interpolation et obtenir les relations suivantes pour, respectivement, m =
1, 2, 4.
h C2 (b − a) 2
E ≤ h
12
h C4 (b − a) 4
E ≤ h
180
h 2C6 (b − a) 6
E ≤ h
945
où Ci est une borne de u(i) (x). On remarque qu’on perd un ordre par rapport aux erreurs locales.
5 5
h
Prenons par exemple l’erreur locale pour la méthode de Simpson : Elocale = − h90 u(4) (ξ) = h90 C4 . L’erreur
totale est obtenue en sommant les erreurs locales des n sous-intervalles :
n
X
h h
E = Elocale,i .
i=0
On a donc que
5
E ≤ n h C 4 .
h
90
Or, pour la méthode composite de Simpson, 2nh = b − a. On a donc finalement
h C4 (b − a) 4
E ≤ h
180
où a donc bien perdu un ordre par rapport aux erreurs locales.
Ce qui donne
n+1 X0 , . . . , Xn w0 , . . . , wn
1 0 2
2 −0.58, 0.58 1, 1
9
7 Méthodes récursives
7.1 Extrapolation de Richardson
Supposons que l’on connaisse f (x) pour un certain nombre d’abscisses en suite géométrique. On
supposera ici que la raison vaut 12 . On sait extrapoler la valeur de f (0).
Supposons donc qu’on connaisse f (h), f h2 , . . . , f 2hn . Posons Fi,j tels que Fi,0 = f 2hi et
2j Fi,j−1 − Fi−1,j−1
Fi,j = .
2j − 1
Fn,n est une extrapolation d’ordre O hn+1 de f (0).
Le schéma d’une extrapolation de Richardson est disponible à la figure 4.
h F0,0
20
h F1,0 F1,1
21
h F2,0 F2,1 F2,2
22
h F3,0 F3,1 F3,2 F3,3
23
h F4,0 F4,1 F4,2 F4,3 F4,4
24
h F5,0 F5,1 F5,2 F5,3 F5,4 F5,5
25
O h1 O h2 O h3 O h4 O h5 O h6
Troisième partie
Dérivation numérique
Taylor nous permet, avec un peu d’astuce, d’obtenir des expressions pour les dérivées de u. Sans perte
de généralité, on va les calculer autour de 0.
10
8 Différences
8.1 Différences centrées
Les différences centrées sont des différences faisant intervenir U−h à chaque fois qu’elles font intervenir
Uh . L’avantages c’est que, dans Taylor, tous les termes d’ordre impair se suppriment et on peut obtenir
un degré plus élevé
Uh − U−h
u′ (0) ≈ O(h2 )
2h
−U2h + 8Uh − 8U−h + U−2h
≈ O(h4 ).
12h
Attention Ces méthodes souffrent cruellement des erreurs d’arrondi car au plus h est petit, au plus
Uh − U−h ≪ Uh .
Quatrième partie
Résolution numérique du problème de Cauchy
Problème 1 (Problème de Cauchy). Soit le problème de Cauchy suivant
11
Trouver u(x) tel que
u′ (x)
= f (x, u(x)), x ∈ [a, b]
u(a)
= ū.
uϵ (a) = ū + ϵ.
Définissons
eϵ (x) = uϵ (x) − u(x)
On peut montrer que
e′ϵ (x) ≈ J(x, u(x)) · eϵ (x).
C’est donc la solution du problème de Cauchy
e′ϵ (x) ≈ J(x, u(x)) · eϵ (x),
x ∈ [a, b]
eϵ (a)
= ϵ.
On peut donc dire que l’équation différentielle est stable lorsque J(x, u(x)) < 0 et instable lorsque
J(x, u(x)) > 0 même si ça reste une approximation.
Lorsque l’équation différentielle est instable, ça ne sert à rien que la méthode numérique qu’on utilise
pour la résoudre soit stable.
Définition 7 (Méthode explicite et implicite). Une méthode est dite implicite si elle requiert le calcul
de f (Xi+1 , Ui+1 ) pour approximer Ui+1 . Sinon, c’est une méthode explicite.
Définition 8 (Ordre d’une méthode à pas séparés). Si une méthode a une erreur locale de discrétisation
d’ordre O(hn+1 ), son erreur globale sera O(hn ).
Définition 9 (Méthode à pas liés et séparés). Une méthode à pas liés est une méthode qui fait intervenir
plus de Uj qu’uniquement Ui dans le calcul de Ui+1 . Par exemple, si elle fait intervenir Ui et Ui−1 , elle
est à pas lié. Sinon, elle est à pas séparés.
Définition 10 (Problème raide). Un problème est raide lorsque J(x, u(x)) ≪ 0. Pour les problèmes
raides, les méthodes implicites sont meilleures que les méthodes explicites.
12
10.1 Analyse de la stabilité
Pour analyser la stabilité d’une méthode d’intégration numérique d’un problème de Cauchy
u′ = f (x, u),
e′ = λe
et donc fe (x, e) = λe. On arrive alors à une équation de récurrence homogène sur Ei . On impose alors
que limn→∞ Ei = 0, c’est à dire que que toutes les s racines ri du polynôme caractéristique doivent être
de module plus petit que 1 car la solution de l’équation de récurrence est
s
X
Ei = Pi (n)rin
i=1
ℜ(hλ) ≤ 0.
13
10.3 Méthodes d’Euler
Il y a deux méthodes d’Euler, une explicite et une implicite. La méthode d’Euler explicite est la
méthode de Taylor de degré 1.
Ordre 1 1 2
avec
K1 = f (Xi , Ui )
K2 = f (Xi + α2 h, Ui + β21 hK1 )
..
.
n−1
!
X
Kn = f Xi + αn h, Ui + βnm hKm .
m=1
On rappelle que si l’erreur locale est d’ordre n + 1 alors l’ordre global est n.
K1 = f (Xi , Ui )
K2 = f (Xi + h, Ui + hK1 ).
Son erreur locale est d’ordre 3 donc son erreur globale est d’ordre 2.
14
Si θi+1 est suffisamment petit, on garde Ui+1 sinon, on recommence en diminuant le pas. On peut
même augmenter le pas si θi+1 est très petit.
Ça donne une méthode de degré 5 car on garde Ui+1 à chaque pas. On peut aussi choisir de garder
Pi+1 au lieu de Ui+1 mais ça donne alors une méthode de degré 4.
Dans le premier cas, on appelle la méthode RKF54, dans le deuxième, on l’appelle RKF45. ode45 suit
cette convention de nomenclature et est donc de degré 4 (bien que l’algorithme ne soit pas exactement
le même).
Remarque 12. Les coefficients pour Runge-Kutta-Fehlberg sont pris pour que les Ki soient communs
pour le calcul de Pi+1 et Ui+1 , ce ne sont donc pas les Runge-Kutta classiques car il y a un Ki de plus.
En effet, le Runge-Kutta d’ordre 4 a 5 Ki et le Runge-Kutta d’ordre 5 a 6 Ki mais comme c’est les même
Ki pour les deux, on ne doit en calculer que 6 alors qu’avec les Runge-Kutta classiques, on aurait du en
calculer 4 + 5 = 9.
On peut également utiliser (Xi+1 , Fi+1 ) mais la méthode devient alors implicite. Lorsqu’elle est
explicite, on l’appelle la méthode d’Adams-Bashforth et lorsqu’elle est explicite, on l’appelle la méthode
d’Adams-Moulton.
La méthode est une méthode à pas liés. Pour utiliser des coefficients calculés a priori, il faut faire
attention de ne pas modifier le pas h.
L’ordre des méthodes est n + 1 pour les méthodes d’Adams-Bashforth et n + 2 pour les méthodes
d’Adams-Moulton.
h2 ′′
Ui+1 = Ui + hUi′ + 2 Ui + O(h3 )
h2 ′′
Ui−1 = Ui − hUi′ + 2 Ui + O(h3 )
15
On voit que l’erreur locale est d’ordre 3 donc l’erreur globale est d’ordre 2. C’est une méthode à pas liés
car on utilise Ui et Ui−1 .
La zone de stabilité forme un segment de droite allant de −i à i. Seulement, pour les ondes, comme
leur équation est u(x) = eikx , on a u′ = iku donc λ = ik. Cette méthode est donc idéale pour les ondes
où il suffira de prendre h ≤ k1 .
Cinquième partie
Résolution d’équations non linéaires
Pour résoudre une équation non linéaire, on part d’une approximation de la solution et on l’améliore
à chaque itération. On définit ei = x − xi où x est la solution. On définit aussi le taux de convergence r
comme l’entier tel que
|ei |
lim r = C.
i→∞ |ei−1 |
11 Méthode de bissection
C’est une méthode très intuitive mais qui il faut que “<” soit défini pour x. La méthode n’est donc pas
généralisable pour un système d’équations. On appelle aussi cette méthode la recherche par dichotomie
ou binary search. L’idée est de cerner x dans un intervalle et de réduire l’intervalle de moitié à chaque
itération. L’ordre r vaut donc 1 et le taux de convergence est linéaire. C’est l’algorithme qu’on trouve
normalement naturellement si on essaie de chercher un mot dans un dictionnaire.
On a la suite ai , bi tels que ai ≤ x ≤ bi . Par le théorème des valeurs intermédiaires, on a donc f (ai )
et f (bi ) de signes opposés. On voit ici que si f n’est pas continue, on n’est pas sûr de converger car le
théorème des valeurs intermédiaires ne s’applique qu’aux fonctions continues.
On prend xi = ai + bi −a 2
i
(ce qui revient au même que prendre la moyenne, sauf que la moyenne
risque de provoquer des erreurs d’overflow numérique).
— Si f (xi ) = 0, on a ai+1 = bi+1 = xi+1 = x, c’est trouvé ;
— Sinon, si f (xi ) est du même signe que ai , on prend ai+1 := xi et bi+1 := bi ;
— Sinon, c’est que f (xi ) est du même signe que bi , on prend alors bi+1 := xi et ai+1 := ai ;
u(a) = ua
u(b) = ub ,
16
11.1.1 Méthode du tir
L’idée de cette méthode est de se dire qu’au lieu d’adapter les méthodes que l’on a déjà au nouveau
problème, on adapte le problème aux méthodes. En effet, cette méthode consiste simplement à fixer une
valeur v(a) = v0a . On intègre alors de façon classique justqu’à obtenir une valeur ub0 = uh0 (b). On calcule
l’écart avec la valeur désirée, r0 = ub − uh0 (b), qui va nous guider pour faire une prochaine itération.
Pour estimer la correction à appliquer, on utilise la méthode de bissection sur r(v a ) = 0, où r est
définie par
r : v a → ub − uhva (b) .
On peut aussi utiliser dans les calculs de gj (xi ), les valeurs xk,i+1 pour k < j qu’on a déjà calculé.
On appelle ça l’algorithme de Seidel.
On peut remarquer que l’ordre r de la méthode du point fixe est aussi 1 et que son taux de convergence
est linéaire.
17
12.1 Méthode du point fixe et systèmes linéaires
Pour un système linéaire
Ax − b = 0
on peut utiliser la méthode du point fixe en transformant l’équation de deux manières différentes. Soit
Dx = (D − A)x + b
soit
(D + L)x = (D + L − A)x + b
où D est la matrice diagonale de A et L est la matrice triangulaire inférieure de A sans la diagonale.
On pose ensuite que le x du membre de gauche est xi+1 et que le x du membre de droite est xi .
On obtient alors la méthode de Jacobi
xi+1 := D−1 (D − A)xi + b
et la méthode de Gauss-Seidel
xi+1 := (D + L)−1 (D + L − A)xi + b.
Une condition suffisante pour la convergence de ces deux méthodes, c’est que la somme des éléments
d’une ligne sauf l’élément de la diagonale, en valeur absolue soit plus petite ou égale à l’élément de la
diagonale en valeur absolue
X
|aij | < |aii | i = 1, . . . , n.
j̸=i
13 Newton-Raphson
La méthode de Newton-Raphson a un ordre r = 2 (taux de convergence quadratique) et se généralise
très facilement à un système. Géométriquement, dans le cas 1D, on approxime xi+1 avec la tangente au
graphe. Généralement, on a
∂f
(xi )
∂x
∆x = − ff (x (xi )
i)
xi+1 := xi + ∆x
∂f
où (xi ) est la jacobienne de f évaluée en xi .
∂x
Sixième partie
Résolution d’EDP
On peut résoudre des EDPs numériquement grâce aux méthodes de dérivation numérique. On a en
effet
∂2u Ui+1,j − 2Ui,j + Ui−1,j
2
=
∂x h2
et
Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 − 4Ui,j
∇2 u(x, y) = .
h2
18
14 Analyse de la stabilité
Pour analyser la stabilité des EDPs paraboliques et hyperboliques, on utilise une perturbation eikx .
En effet, n’importe quelle perturbation peut être représentée comme une combinaison linéaire de ces
perturbations. Si la méthode est stable pour tout k, elle sera donc stable pour toute perturbation.
On suppose que le facteur d’amplification U est constant. On a alors Ujn = U n eikXj .
Par exemple, pour l’équation de la chaleur, on a
Pour que l’erreur diminue, on doit avoir |U | < 1. Comme cos est borné entre −1 et 1, U est ici borné
entre 1 − 4β et 1. Il faut donc β < 21 .
15 EDP elliptique
Problème 3 (Problème de Poisson). Pour l’équation de Poisson, on a
∇2 u(x, y) + 1 = 0
Ui+1,j + Ui−1,j + Ui,j+1 + Ui,j−1 − 4Ui,j
⇐⇒ + 1 = 0.
h2
Ça nous donne (n − 2)2 équations linéaires à résoudre et (n − 2)2 inconnues. Seulement, comme la
matrice est creuse, le calcul peut être grandement accéléré. On peut montrer que l’erreur est en O(h2 ).
16 EDP parabolique
Problème 4 (Diffusion de la chaleur). Pour l’équation de la chaleur, on a
∂u ∂2u
=α 2
∂t ∂x
⇐⇒ Uin+1 = Uin + β Ui+1
n n
− 2Uin
+ Ui−1
α∆t
où β = (∆x)2 .
un+1 = un + βAun
17 EDP hyperbolique
Problème 5 (Propagation d’une onde). Pour l’équation d’onde, on a
∂2u 2
2∂ u
= c
∂t2 ∂x2
∂2u
= 2Uin − Uin−1 + β 2 (Ui+1
n n
+ Ui−1 − 2Uin )
∂t2
c∆t
où β = ∆x .
19
La méthode est stable pour β ≤ 1. Pour β < 1, on a des erreurs numériques dites de dispersion. En
effet, β = 1 correspond beaucoup mieux à la physique où aucune énergie n’est dissipée.
Septième partie
Annexes
A Installation et utilisation de Matlab ou de GNU/Octave
Pour ce cours, il vous est nécessaire d’obtenir soit Matlab, soit GNU/Octave qui est un clone
libre 1 de Matlab.
A.1 Installation
A.1.1 Sous GNU/Linux
Matlab Voir le wiki de votre distribution, par exemple, pour Debian/Ubuntu, lisez https://help.
ubuntu.com/community/MATLAB et pour Arch Linux, lisez https://wiki.archlinux.org/index.php/
Matlab.
Vous pouvez aussi visiter la roadmap pour voir si votre version est supportée http://www.mathworks.
nl/support/sysreq/roadmap.html.
A.2 Utilisation
Comme le language est interprété, vous pouvez directement utiliser l’interpréteur et écrire votre
programme ligne par ligne. C’est très utile pour tester des fonctions et appeler l’aide. Par exemple, si
vous voulez savoir comment utiliser la fonction foo, entrez dans l’interpréteur
1 help f o o
Vous pouvez aussi écrire des scripts et des fonctions. Pour les fonctions, vous devez les enregistrer
dans un fichier qui a le même nom et l’extension .m. Par exemple, si vous écrivez la fonction foo, vous
devez l’enregister dans le fichier foo.m. Si vous appelez l’aide de votre fonction
1 help f o o
Remarquez que cette ligne de code peut être remplacée par la suivante :
1 U = s i n (X ) ;
20
On stocke ensuite les coefficients du polynôme de degré 2 ax2 + bx + c interpolant la fonction dans
un vecteur (a, b, c) :
1 c o e f = p o l y f i t (X, U, 2 ) ;
On peut enfin s’amuser à tracer u(x) et uh (x) sur une même figure afin de vérifier la qualité de
l’interpolation. Dans un premier temps, on définit un vecteur x contenant un ensemble de points. Pour
ce faire, on utilise la fonction linspace(a, b, n). Cette fonction va retourner un vecteur contenant n points
compris dans l’intervalle [a, b] :
1 x = linspace ( 0 , pi , 1 0 0 ) ;
où la commande hold on demande à Matlab d’afficher les deux courbes sur la même figure.
Remarquez qu’il est possible de combiner ces deux fonctions en ajoutant comme troisième argument
à la fonction spline l’ensemble de points x.
21