Vous êtes sur la page 1sur 22

Synthèse de Méthodes numériques

Q2 - LEPL1104

Benoît Legat Antoine Paris Gilles Peiffer

Compilation: 06/01/2022 (10:51)

Dernière modification: 07/02/2019 (18:02) 84317685

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

3 Les fonctions B-splines 6

4 Les NURBS (Non-Uniform Rational B-splines) 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

6 Gauss-Legendre : Méthodes à pas inégaux 9

7 Méthodes récursives 10
7.1 Extrapolation de Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.2 Méthode de Romberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

III Dérivation numérique 10


8 Différences 11
8.1 Différences centrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2 Différences unilatérales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.3 Différences amont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.4 Différences aval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.5 Extrapolation de Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.5.1 Différences centrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

IV Résolution numérique du problème de Cauchy 11


9 Stabilité d’une équation différentielle 12

10 Méthodes de résolution numériques 12


10.1 Analyse de la stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
10.2 Méthode de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
10.3 Méthodes d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.4 Méthodes de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.4.1 Méthode de Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.4.2 Méthode de Runge-Kutta-Fehlberg . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.5 Méthodes d’Adams-Bashforth-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1
10.6 Méthodes de Gear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
10.7 Méthode Leapfrog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

V Résolution d’équations non linéaires 16


11 Méthode de bissection 16
11.1 Application à un problème aux conditions aux limites . . . . . . . . . . . . . . . . . . . . 16
11.1.1 Méthode du tir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
11.1.2 Méthode des différences finies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

12 Méthode du point fixe 17


12.1 Méthode du point fixe et systèmes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . 18

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

En prenant ϕj (x) = xj , ça donne un système linéaire à résoudre :


    
1 X0 ··· X0n   a0   U0 
    
    
n 
1
 X1 ··· X1   a1   U1 
 
   =  .
. .. ..  .  . 
 .. . .  .  . 
  .   . 
    
    
1 Xn ··· Xnn 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.

1.1 Formule d’interpolation de Lagrange


Au lieu de résoudre le système précédent, la formule d’interpolation de Lagrange nous permet d’ob-
tenir directement cet unique polynôme d’interpolation.
Il suffit de prendre Q
i̸=j (x − Xi )
ϕj (x) = Q .
i̸=j (Xj − Xi )

Figure 1 – Les fonctions de base de Lagrange pour les abscisses X0 = 0, X1 = 31 , x2 = 2


3 et X3 = 1 sur
l’intervalle [0, 1]. (Tiré du syllabus.)

On remarque alors que la matrice de Vandermonde devient la matrice identité et que aj = Uj . En


effet, ϕi (Xj ) = 0 ∀i ̸= j et ϕi (Xi ) = 1 (voir figure 1).

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)

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.

1.3 Erreur d’interpolation


L’erreur d’interpolation du polynôme de Lagrange peut être calculée par le Théorème 3.

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 ).

1.4 Convergence de l’interpolation polynomiale


Définition 5 (Convergence d’une interpolation). Une interpolation est dite convergente si l’erreur d’in-
terpolation tend vers zéro lorsque le nombre de degrés de liberté, c’est à dire n tend vers l’infini :

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)

1.6 Les splines cubiques


L’utilisation des abscisses de Tchebychev ne suffit parfois pas à faire converger l’interpolation poly-
nomiale (c’est le cas pour des fonctions pas du tout régulières), il faut alors utiliser une autre méthode :
l’interpolation polynomiale par morceaux. Au lieu de chercher un polynôme passant par tous les points,
l’idée des splines cubiques est de prendre un polynôme différent entre chaque paire de points adjacents.
On définit donc n polynômes cubiques uhi , chacun dans son intervalle [Xi−1 , Xi ]. On peut déterminer
4n − 2 coefficients grâce à 4n − 2 équations.
— Passer par tous les points : 2n équations ;
— Dérivées premières et secondes égales aux points Xi pour deux polynômes uhi adjacents : 2n − 2
équations.
Comme on a 4n coefficients à déterminer, on peut rajouter deux contraintes. On les rajoute souvent
sur uh1 (x) en X0 et sur uhn (x) en Xn ou sur leurs dérivées en ces points.

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.

2.1 Approximation au sens des moindres carrés


Il y a 2 cas, soit on connait n + 1 points de u(x), soit on connait carrément u(x) entre a et b. L’analyse
de ces cas est assez semblable, pour passer du second au premier, il suffit de discrétiser les intégrales en
somme sur les points qu’on connait. Faisons donc uniquement l’analyse dans le deuxième cas.
On cherche donc à minimiser
ˆ b ˆ b
h
2 2
e (x) dx = u(x) − uh (x) dx.
a a
´b
Seulement, on remarque qu’en définissant le produit scalaire ⟨f, g⟩ = a
f g dx, ce qu’on doit minimiser
devient h
e (x) = u(x) − uh (x) .

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 .

On voit ici qu’on se permet de mettre plusieurs noeuds au même t.

3 Les fonctions B-splines


Une fonction B-spline est définie comme suit
t − Ti Ti+1+p − t
Bip (t) = Bip−1 (t) + B p−1 (t)
Ti+p − Ti Ti+1+p − Ti+1 i+1

où, si un dénominateur s’annule, on met le terme à 0.


L’initialisation est la suivante


 1 si t ∈ [Ti , Ti+1 [

0
Bi (t) = .

 0 sinon.

On peut déduire de cette définition le théorème suivant

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

4 Les NURBS (Non-Uniform Rational B-splines)


Pour être capable de représenter exactement certaines formes telles que les coniques, on a rajouté la
possibilité de rajouter des poids Wi . La formule de l’approximation devient alors
Pn−p−1
h h Wi Bip (t)(Xi , Yi )
(x (t), y (t)) = i=0Pn−p−1 .
i=0 Wi Bip (t)

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

qu’on appelle règle d’intégration ou quadrature. Si X0 = a et Xm = b, on dit que la méthode est


fermée, sinon, on dit qu’elle est ouverte.
On définit l’erreur d’intégration E h ≜ I −I h . On définit également le degré de précision d’une méthode
d’intégration numérique comme le plus grand entier d tel que pour tout polynôme de degré inférieur où
égal à d, E h = 0.
Sans perte de généralité, on peut toujours se ramener à une intégrale sur l’intervalle [−1, 1]. Il suffit
pour cela d’utiliser un changement de variable
ˆ b ˆ 1
b−a
I= u(x) dx = u(x(ξ)) dξ,
a 2 −1

b−a b+a ξ+1 1


où x(ξ) = 2 ξ + 2 . Par exemple, si u(x) = x2 , a = 0 et b = 1, on a x(ξ) = 2 et donc dx = 2 dξ
d’où ˆ ˆ 2
1 1 
2 1 ξ+1
x dx = dξ.
0 2 −1 2
On va donc se limiter par la suite à l’intégration de fonction entre −1 et 1.

5 Newton-Cotes : Méthodes à pas égaux


La méthode de Newton-Cotes revient à calculer l’intégrale de uh au lieu de u qui est son interpolation
par des points équidistants.
ˆ 1 m
X ˆ 1
Ih = uh (x) dx = u(Xi ) ϕi (x) dx.
−1 i=0 −1

´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

5.1 Méthodes composites


On a des méthodes efficaces pour calculer l’intégrale sur plusieurs intervalles juxtaposés mais si on
augmente trop m, on aura le même problème que pour l’interpolation, l’erreur deviendra très importante
pour un bon nombre de u.

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

Les termes en h3 , h5 et h7 sont les erreurs locales sur un sous-intervalle.

Attention Dans les équations précédentes, h = (b − a), b−a b−a


2 , 4 respectivement où b − a est la longueur
de l’intervalle.

Figure 3 – Méthode composite des trapèzes - intervalles juxtaposés. (Tiré du syllabus.)

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.

6 Gauss-Legendre : Méthodes à pas inégaux


Avec la méthode de Newton-Cotes, on sait, avec n + 1 points, avoir un degré de précision d = n ou
même d = n + 1 si n est pair.
Seulement, en se laissant n + 1 degrés de liberté supplémentaires qui sont les choix des abscisses, on
peut atteindre un degré de précision d = 2n + 1.
C’est d’ailleurs la méthode utilisée pour calculer ces points. On les prend de telle sorte que tout
polynôme de degré ≤ 2n + 1 soit intégré parfaitement.
Ça nous donne le système de 2n + 2 équations suivant à résoudre pour trouver les Xi et les wi .

 Pn 2j 2
i=0 wi Xi = 2j+1


pour j = 0, . . . , n.
 Pn 2j+1

 w
i=0 i iX = 0

Ce qui donne

n+1 X0 , . . . , Xn w0 , . . . , wn

1 0 2

2 −0.58, 0.58 1, 1

3 −0.77, 0, 0.77 0.56, 0.89, 0.56

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

Figure 4 – Extrapolation de Richardson.

7.2 Méthode de Romberg


Soit f (h) = I h , l’intégrale exacte est f (0). On peut donc utiliser Richardson en calculant I h avec la
méthode des trapèzes. C’est ce qu’on appelle la méthode de Romberg.
Cependant, E h n’a pas de terme d’ordre impair, on peut donc passer une étape sur deux dans
Richardson. On utilise donc la méthode adaptée suivante pour la récurrence :

22j Ii,j−1 − Ii−1,j−1


Ii,j =
22j − 1

I − In,n est alors de grand ordre O h2(n+1) .

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

8.2 Différences unilatérales


Les différences unilatérales sont moins efficaces que les différences centrées et sont utilisées quand on
ne sait calculer des valeurs qu’avant ou après 0.

8.3 Différences amont

3U0 − 4U−h + U−2h


u′ (0) ≈ O(h2 ).
2h

8.4 Différences aval

−3U0 + 4Uh − U2h


u′ (0) ≈ O(h2 ).
2h

Attention Ces méthodes souffrent cruellement des erreurs d’arrondi car au plus h est petit, au plus
Uh − U−h ≪ Uh .

8.5 Extrapolation de Richardson


On peut appliquer Richardson pour continuer à gagner en précision en évitant de prendre des h trop
petits et d’avoir des erreurs d’arrondi.

8.5.1 Différences centrées


Pour les différences centrées, on sait que l’erreur ne comporte pas de termes avec des puissances
impaires de h.
Dès lors, il faut utiliser l’adaptation de Romberg.

22j Di,j−1 − Di−1,j−1


Di,j = .
22j − 1

Dn,n sera alors de grand ordre O(h2(n+1) ).

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)
 = ū.

On utilise aussi souvent fˆ(x) ≜ f (x, u(x)).


Définissons aussi la jacobienne de l’équation linéaire comme suit

∂f
J(x, u(x)) ≜ .
∂u (x,u(x))

9 Stabilité d’une équation différentielle


Avant de regarder comment résoudre cela numériquement, analysons comment se propage une erreur
de mesure ϵ.
On cherche uϵ (x) avec une condition initiale modifiée suivante

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.

10 Méthodes de résolution numériques


On peut résoudre numériquement un problème de Cauchy en divisant [a, b] en m sous-intervalles de
taille uniforme h. Soit a = X0 , X1 , . . . , b = Xm ces abscisses discretisées et ū = U0 , U1 , . . . , Um les images
approchées uh (Xi ) = Ui .

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),

on analyse l’évolution de l’erreur avec la même méthode numérique mais avec

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

avec Pi un polynôme tel que deg(Pi ) ≤ mi pour i = 1, . . . , s.


On fait donc un plot du maximum des modules des racines en fonction de hλ qui peut être complexe
car h ∈ R>0 et λ ∈ C.
Pour qu’une méthode soit stable en (x, u), il faut alors que maxi |ri | < 1 pour λ valant chacune des
∂f
valeurs propres de .
∂u (x,u)

Exemple 11. Par exemple, pour Crank-Nicolson, on a


h
Ei+1 = Ei + (fe (Xi , Ei ) + fe (Xi+1 , Ei+1 ))
2

= Ei + (Ei + Ei+1 )
2
2 + hλ
= Ei
2 − hλ
d’où le polynôme caractéristique
2 + hλ
r− = 0.
2 − hλ
On impose donc
2 + hλ
2 − hλ ≤ 1

ce qui s’interprête géométriquement comme dist(hλ, −2) ≤ dist(hλ, 2), d’où

ℜ(hλ) ≤ 0.

10.2 Méthode de Taylor


On remarque que, lorsqu’on connait Ui , on sait calculer les dérivées successives de uh (Xi ) par l’opé-
rateur  
d ∂ ∂
= +f .
dx u′ =f ∂x ∂u
La méthode de Taylor consiste à appliquer Taylor d’un certain degré. Par exemple, pour le degré 2,
on a
h2 ∂f
 
∂f
Ui+1 = Ui + hf (Xi , Ui ) + +f .
2 ∂x ∂u (Xi ,Ui )

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.

Nom Euler explicite Euler implicite Crank-Nicolson


Ui+1 −Ui f (Xi ,Ui )+f (Xi+1 +Ui+1 )
h f (Xi , Ui ) f (Xi+1 , Ui+1 ) 2

Ordre 1 1 2

Stabilité |1 + hλ| < 1 1 < |1 − hλ| ℜ(hλ) < 0

10.4 Méthodes de Runge-Kutta


Les méthodes de Runge-Kutta sont explicites et peuvent être d’ordre de précision arbitrairement
élevé. Seulement, elles sont explicites et donc pas appropriées pour résoudre des problèmes raides.
La relation de récurrence est  
Xn
Ui+1 = Ui + h  wj Kj 
j=1

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.

10.4.1 Méthode de Heun


Dans le cas particulier pour n = 2, on a la méthode de Heun
h
Ui+1 = Ui + (K1 + K2 )
2
avec

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.

10.4.2 Méthode de Runge-Kutta-Fehlberg


L’idée de la méthode est d’adapter le pas h le long de l’intégration pour gagner du temps lorsque
c’est stable et gagner de la précision lorsque ça l’est moins.
Pour cela, on fait une approximation Pi+1 avec Runge-Kutta d’ordre 4 et une approximation Ui+1
avec Runge-Kutta d’ordre 5.
On suppose alors que par rapport à Pi+1 , Ui+1 est beaucoup plus précis donc l’erreur de Ui+1 est
négligeable par rapport à celle de Pi+1 donc on peut l’utiliser comme référence pour calculer l’erreur

θi+1 ≈ |Ui+1 − Pi+1 |.

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.

10.5 Méthodes d’Adams-Bashforth-Moulton


L’idée de la méthode c’est que si on a calculé Fi−1 , Fi−2 , . . . , Fi−n , autant les réutiliser.
Pour approximer Ui+1 , on approxime f avec le polynôme d’interpolation de (Xi , Fi ), . . . , (Xi−n , Fi−n ).
On calcule ensuite ˆ Xi+1
Ui+1 = Ui + f (x, u(x)) dx.
Xi

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.

10.6 Méthodes de Gear


Pour les méthodes de Gear, on calcule le polynôme d’interpolation passant par les points de Xi−n+1
à Xi+1 et on impose que sa dérivée valle Fi ou Fi+1 . Si on impose qu’elle valle Fi , c’est une méthode
explicite, sinon, c’est une méthode implicite. Pour la méthode de Gear, on utilise Fi+1 donc
n
X
Ui+1−j ϕ′j (Xi+1 ) ≈ Fi+1 ,
j=0

ce qui nous donne  


n
1 X
Ui+1 = − Ui+1−j ϕ′j (Xi+1 ) + Fi+1  .
ϕ′ (Xi+1 ) j=1

Le degré de la méthode est n, c’est-à-dire le nombre de Uj utilisés sans compter Ui+1 .

10.7 Méthode Leapfrog


La méthode Leapfrog combine astucieusement deux développements de Taylor

h2 ′′
Ui+1 = Ui + hUi′ + 2 Ui + O(h3 )

h2 ′′
Ui−1 = Ui − hUi′ + 2 Ui + O(h3 )

⇐⇒ Ui+1 − Ui−1 = 2hUi′ + O(h3 )

⇐⇒ Ui+1 = Ui−1 + 2hFi + 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 ;

11.1 Application à un problème aux conditions aux limites


Définition 13 (Problème aux conditions aux limites). Lorsqu’on a un système d’équations différentielles
ordinaires avec des conditions aux limites en plus d’un point de la variable indépendante, le problème
est appelé problème aux conditions aux limites.
Un exemple d’un tel problème est le suivant :
Problème 2. Trouver u(x) tel que
 ′
 u (x) = v(x)
 ′

 v (x)
 = f (x, u(x)), x ∈ [a, b]

u(a) = ua




u(b) = ub ,

où v(x) représente la dérivée première de u(x).


Les méthodes vues précédemment ne peuvent pas être utilisées ici car elles ne fonctionnent que pour
les problèmes aux valeurs initiales (c’est-à-dire si on prescrit u(a) et v(a)).
Il y a deux méthodes pour résoudre ce problème.

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) .


L’expression uhva représente la première composante de la solution approchée du Problème 2 avec ua


et v a comme valeurs initiales.

11.1.2 Méthode des différences finies


L’autre façon de résoudre le Problème 2 est en évaluant les valeurs nodales Ui en un nombre fini de
points a = X0 < X1 < · · · < Xm = b.
Pour obtenir les m − 1 valeurs intermédiaires, il faut m − 1 relations.
On a que

0 = u′′ (Xi ) − f (Xi , Ui )


≈ (uh )′′ (Xi ) − f (Xi , U − i),

ce qui devient en utilisant les différences finies centrées (section 8.1)

(Ui−1 − 2Ui + Ui+1 )


0≈ − f (Xi , Ui ).
h2
On a donc les m + 1 relations suivantes :
 U   ua
 2 
h 0 0
 1 −2 1  U1    f (X1 , U1 ) 
 
1   . .
 ···  .  = 

 .  
  .. .

h2 
1 −2 1  Um−1  f (Xm−1 , Um−1 )
 
2
0 h Um ub
Il ne faut alors plus que résoudre ce système (tridiagonal, donc pour lequel il existe des algorithmes
bien costauds).

12 Méthode du point fixe


On peut réécrire l’équation f (x) = 0 sous la forme x = g(x) de nombreuses manières. Certaines
convergeront mieux que d’autres. L’idée ensuite c’est d’utiliser la méthode itérative xi+1 := g(xi ). Éton-
nement, si g ′ (xi ) < 0 pour tout xi ∈ [x0 , x] où x est la solution, la méthode va converger. Cette condition
s’appelle la condition de Lipschitz.
On peut généraliser la méthode à un système, la condition devient alors
n
X ∂gj
∂xk < 1 j = 1, . . . , n.

k=1

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

13.1 Méthode de la sécante


Dans le cas 1D, le calcul de f ′ peut être évité en utilisant la méthode de la sécante, on a alors
f (xi )(xi − xi−1 )
xi+1 := xi − .
f (xi ) − f (xi−1 )
Le taux de convergence est superlinéaire (ordre r = 1.618). C’est moins que pour la méthode de Newton-
Raphson mais les itérations sont bien plus rapides car il ne faut pas calculer f ′ .

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

Ujn+1 = Ujn + β(Uj+1


n n
+ Uj−1 − 2Ujn )
U = 1 + β(eik∆x + e−ik∆x − 2)
U = 1 + β(2 cos(k∆x) − 2).

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 .

En mettant cela en matriciel, ça donne

un+1 = un + βAun

avec un A approprié. C’est équivalent à la méthode d’Euler explicite pour


β α
u′ (t) = Au(t) = Au(t).
∆t (∆x)2

La méthode est stable pour β ≤ 21 .

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.

GNU/Octave Il se trouve dans les repos officiels de votre package manager.


Sur Ubuntu, par exemple, entrez juste octave dans la barre de recherche du Ubuntu Sofware Center.
Vous pouvez aussi installer QtOctave pour avoir une interface graphique comme pour Matlab.

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

ça affichera les premières lignes de commentaire du fichier foo.m.

A.2.1 Interpolation polynomiale


Voici un exemple de code Matlab permettant d’approximer la fonction u(x) = sin(x) par un poly-
nôme uh (x) de degré 2 :
On crée d’abord un vecteur contenant les abscisses Xi pour lesquelles les ordonnées Ui sont connues :
1 X = [ 0 , pi / 2 , pi ] ;

On crée ensuite un vecteur contenant les ordonnées Ui tel quel u(Xi ) = Ui


1 U = [0 , 1 , 0];

Remarquez que cette ligne de code peut être remplacée par la suivante :
1 U = s i n (X ) ;

1. Voir la définition de Free Software : https://www.gnu.org/philosophy/free-sw.html.

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 ) ;

On va ensuite évaluer l’interpolation polynomiale uh (x) sur cet ensemble de points :


1 uh = polyval ( c o e f , x ) ;

Enfin, on peut demander à Matlab de tracer ces deux fonctions :


1 plot ( x , uh ) ; hold on ; plot ( x , s i n ( x ) ) ;

où la commande hold on demande à Matlab d’afficher les deux courbes sur la même figure.

A.2.2 Spline cubique


La démarche est presque identique que celle présentée précédemment, seules deux commandes changent.
La commande pour calculer les coefficients du spline est spline(X, U) :
1 c o e f = s p l i n e (X, U ) :

On peut alors évaluer cette spline de la manière suivante :


1 uh = p p v a l ( c o e f , x ) ;

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

Vous aimerez peut-être aussi