Introduction à l'Analyse Numérique
Introduction à l'Analyse Numérique
Probabilités et Statistique1
2021 − 2022
1 Introduction 3
1.1 Qu’est-ce que l’analyse numérique ? . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Qu’est-ce qu’un bon algorithme ? . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Pourquoi un ordinateur fait-il des calculs faux ? . . . . . . . . . . . . . . . 4
1.3.1 Ecriture en base b . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Exemple 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.3 Exemple 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Résolution f (x) = 0 5
2.1 Résolution d’équations non linéaires . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Racines de l’équation f (x) = 0 . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Séparation des racines . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Approximation des racines : Méthodes itératives . . . . . . . . . . . . . . . 6
2.2.1 Méthode de bisection (dichotomie) . . . . . . . . . . . . . . . . . . 7
2.2.2 Méthode de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . 8
2.2.3 Méthode du point fixe . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Interpolation Polynômial 13
3.1 Méthode de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1 Détermination pratique des polynômes de Lagrange : . . . . . . . . 14
3.2 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.1 Calcul des différences divisées . . . . . . . . . . . . . . . . . . . . . 16
4 Intégration Numérique 19
4.1 Méthode des trapèzes (n = 1) . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Méthode de Simpson (n = 2) . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Méthode de Newton (n = 3) . . . . . . . . . . . . . . . . . . . . . . . . . . 23
i
ii TABLE DES MATIÈRES
6 TP Matlab 31
6.1 Résolution d’équations non linéaires . . . . . . . . . . . . . . . . . . . . . . 31
6.1.1 Méthode de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . 31
6.1.2 Méthode du point fixe . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2 Interpolation polynômial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2.1 Méthode de Lagrange et de Newton . . . . . . . . . . . . . . . . . . 33
6.2.2 Calcul des différences divisées . . . . . . . . . . . . . . . . . . . . . 34
6.3 Intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3.1 Méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3.2 Méthode de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.3.3 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.4 Résolution d’équations différentielles ordinaires (ÉDO) . . . . . . . . . . . 37
6.4.1 Méthode d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.4.2 Méthodes de Runge-Kutta d’ordre 2 . . . . . . . . . . . . . . . . . 40
1 Introduction
3
4 CHAPITRE 1. INTRODUCTION
Définition 1.3.1. Soit b un entier strictement supérieur à 1. Pour tout entier n supérieur
ou égal à 1, il existe un unique entier p et des entiers di (0 ≤ i ≤ p) compris entre 0 et
b − 1 avec dp 6= 0 tels que :
p
b
di bi = dp dp−1 . . . d0
X
n=
i=0
1.3.2 Exemple 1
10
En base 10 : 234 = 2 × 102 + 3 × 10 + 4 × 100 ; donc 234 = 234
2
En base 2 : 234 = 27 + 26 + 25 + 23 + 2 ; donc 234 = 11101010
8
En base 8 : 234 = 3 × 82 + 5 × 8 + 2 ; donc 234 = 352
On généralise cette écriture aux nombres réels. Mais attention le nombre de chiffres
après la virgule étant infini la somme va de −∞ à p.
Définition 1.3.2. Soit b un entier strictement supérieur à 1. Pour tout réel x non nul, il
existe un unique entier p et des entiers di (i ≤ p) compris entre 0 et b − 1 avec dp 6= 0 tels
que :
p
b
di bi = dp dp−1 . . . d0 , d−1 . . . d−q . . .
X
x=
i=−∞
1.3.3 Exemple 2
10
1
En base 10 : 0.625 = 0 × 1010 + 6 × 10 + 2 × 1012 + 5 × 1013 ; donc 0.625 = 0.625
2
En base 2 : 0.625 = 0.500 + 0.125 = 0 × 210 + 1 × 21 + 0 × 212 + 1 × 213 ; donc 0.625 = 0.101
2 Résolution f (x) = 0
f (x) = 0 (2.1)
et ce dans toutes sortes de contextes. Introduisons dès maintenant la terminologie qui nous
sera utile pour traiter ce problème.
f (α) = 0 (2.2)
Résoudre l’équation (2.1) c’est trouver tous les nombres réels α tels que (2.2) soit vérifiée.
Théorème 2.1 (Valeurs Intermédiaires (TVI)). Soit I un intervalle. Soient a et b dans I
avec a < b. Soit f une application continue et dérivable dans I. Si : f (a)f (b) < 0 alors il
existe α ∈ [a, b] telque f (α) = 0.
Soit f (x) = x(1 + ex ) − ex et I = [0, 1]. f (x) est continue et dérivable sur I.
d’autre part f 0 (x) = 1 + xex ≥ 0 sur I (monotone). Donc d’après le théorème des valeurs
intermédiaires il existe une seule solution α ∈ [0, 1] telque f (α) = 0.
5
6 CHAPITRE 2. RÉSOLUTION F (X) = 0
1. Soit on trace le graphe de la fonction f (x) et on cherche son intersection avec l’axe
Ox.
2. Soit on décompse la fonction f (x) en deux fonctions f1 (x) et f2 (x) simples à étudier,
telle que :
f (x) = f1 (x) − f2 (x)
et on cherche les points d’intersection des graphes de f1 (x) et f2 (x), dont les abscisse
sont exactement les racines de l’équation f (x) = 0.
Soit la fonction : f (x) = ex + x. Alors on a :
f = ex
1 (x)
f (x) = f1 (x) − f2 (x) = ex − (−x), avec f2 (x) = −x
20
15
f1(x) = exp(x)
10
5
α●
0
f2(x) = − x
−5
−3 −2 −1 0 1 2 3
d’après la figure 2.1 : f1 (x) ∩ f2 (x) = {α} ⇒ α ∈ [−1, 0]. f (x) est continue et dérivable
sur [−1, 0]
f (−1) = −0, 63 et f (0) = 1 ⇒ f (0)f (1) < 0
d’autre part f 0 (x) = 1 + ex ≥ 0 sur [−1, 0] (monotone). Donc d’après le théorème des
valeurs intermédiaires il existe une seule solution α ∈ [−1, 0] telque f (α) = 0.
dans lequel on part d’une valeur x0 (approchée) pour calculer x1 , puis à l’aide de x1 on
calculer x2 , ect. La formule (2.3) est dite formule de récurrence.
k ≥ ln (1/10−2 ) / ln 2 = 6.643856 ≈ 7
Remarque 2.1. Choix de l’initialisation x0 , il doit vérifier la condition f (x0 )f 00 (x0 ) > 0.
(k)
ex +x(k)
k x(k+1) (k) ≤ 10−3
ex +1
− x(0) = 0 −
0 x(1) = −0, 5000 0.5000
1 x(2) = −0, 5664 0.0664
2 x(3) = −0, 5672 0.0008 ≤ 10−3
Définition 2.2.3. Un point fixe d’une fonction g(x) est une valeur de x qui reste invariante
pour cette fonction, c’est-à-dire toute solution de :
x = g(x)
Théorème 2.2 (théorème du point fixe). Supposons que g(x) est définie sur l’intervalle
[a, b] et satisfait aux conditions suivantes :
1. g([a, b]) ⊂ [a, b], i.e. ∀x ∈ [a, b], a ≤ g(x) ≤ b.
2. g(x) est contractante, i.e. ∃L ∈ R, 0 ≤ L ≤ 1 tel que :
Alors g(x) admet un point fixe unique x∗ ∈ [a, b]. De plus, pour tout point x0 ∈ [a, b] la
suite xk définie par xk+1 = g(xk ) converge vers x∗ .
Il existe un algorithme très simple permettant de déterminer des points fixes. Il suffit
en effet d’effectuer les itérations de la façon suivante :
x
0 donné
xn+1 = g (xn )
à partir d’une valeur estimée initiale x0 . L’intérêt de cet algorithme réside dans sa généralité
et dans la relative facilité avec laquelle on peut en faire l’analyse de convergence. Il en
résulte l’algorithme plus complet suivant.
Algorithme 2.2.3 (Méthode de point fixe).
1. Étant donné x0 une valeur initiale de la solution, et la valeur maximale de l’erreur
(un critère d’arrêt).
2. Effectuer :
xk+1 = g(xk ), ∀ k = 0, 1, 2, . . .
3. Si |xk+1 −xk |
|xk+1 |
≤:
– écrire la solution α = xk+1 .
– arrêté.
4. Si non, retour à l’étape 2.
On peut résoudre des équations non linéaires de la forme f (x) = 0 en utilisant l’algo-
rithme des points fixes. Il suffit pour ce faire de transformer l’équation f (x) = 0 en un
problème équivalent de la forme x = g(x). L’ennui, c’est qu’il y a une infinité de façons
différentes de le faire.
Soit la fonction f (x) = ex + x avec x0 = −1 et = 10−2 . On a :
f (x) = 0 ⇔ ex + x = 0 ⇔ x = −ex
donc la fonction g(x) (voir la Figure 2.2) est contractante dans l’intervalle [−1, 0].
– On g 0 (x) = −ex , d’ou |g 0 (−1)| = 0.3678 < 1.
D’après le théoème de convergence du point fixe, notre itéation proposée x = − exp(x)
converge vers la solution unique x∗ de l’équation f (x) = ex + x = 0.
L’itération du point fixé est :
xk+1 = −exk , ∀ k = 0, 1, 2, . . .
2.2. APPROXIMATION DES RACINES : MÉTHODES ITÉRATIVES 11
g([− 1, 0]) ⊂ [− 1, 0]
La fonction g(x) est contractante
0.0
−0.2
g(x) = − exp(x)
−0.4
−0.6
−0.8
−1.0
|xk+1 −xk |
k xk+1 = −exk |xk+1 |
≤ 10−2
0 x1 = −0, 36787 1.71828
1 x2 = −0.69220 0.46853
2 x3 = −0.50047 0.38309
3 x4 = −0.60624 0.17446
4 x5 = −0.54540 0.11156
5 x6 = −0.57961 0.05903
6 x7 = −0.56012 0.03480
7 x8 = −0.57114 0.01930
8 x9 = −0.56488 0.01108
9 x10 = −0.56843 0.00624 ≤ 10−2
Soit y = f (x) une fonction dont on ne connait que les valeurs yi qu’elle prend aux
(n + 1) points distincts xi ; i = 0, 1, . . . , n. On a donc :
f (xi ) = yi ; i = 0, 1, . . . , n.
Pn (xi ) = yi = f (xi ); i = 0, 1, . . . , n.
de manière à pouvoir estimer les valeurs f (x) au moyen de Pn (x) pour x (xmin ≤ x ≤ xmax ).
C’est ce qu’on appelle : Interpoler la fonction f (x) par le polynôme Pn (x) au points
x0 , x1 , . . . , xn .
et donc :
1
Ki =
(xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )
ou encore :
1
Ki = Qn
j=0 (xi − xj )
j6=i
13
14 CHAPITRE 3. INTERPOLATION POLYNÔMIAL
et dela : Qn
j=0 (x − xj )
j6=i
Li (x) = Qn avec degré de Li (x) égale à n
j=0 (xi − xj )
j6=i
ou :
(x − x0 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )
Li (x) =
(xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )
Pour chaque i = 0, 1, . . . , n, Li (x) est appelé : Polynôme de Lagrange au points xi .
Passons à présent à la résolution du problème général qui consiste à former Pn (x)
vérifiant les conditions indiquées plus haut ie : Pn (xi ) = yi . Ce polynôme est de la forme :
n
X
Pn (x) = yi Li (x)
i=0
Qn
n j=0 (x − xj )
yi Qnj6=i
X
=
i=0 j=0 (xi − xj )
j6=i
n
X (x − x0 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )
= yi
i=0 (xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )
x − x0 x0 − x 1 x0 − x2 x0 − x3 · · · x0 − xn
x1 − x0 x − x1 x 1 − x2 x1 − x3 · · · x1 − xn
x2 − x0 x2 − x1 x − x 2 x2 − x3 · · · x2 − xn
.. .. .. .. ..
. . . . .
xn − x0 xn − x1 xn − x2 xn − x3 · · · x − xn
et on voit que :
1.0
●
0.8
function(x) sin(pi * x)
0.6
●
0.4
0.2
0.0
● ● ●
x −4 4 −2 −1
4 x−4 8 2 3
−4 −8 x + 4 −6 −5
2 −2 6 x−2 1
1 −3 5 −1 x − 1
Théorème 3.1. Le polynôme Pn (x) qui prend les valeurs f (xi ), i = 0, 1, . . . , n aux points
distincts xi , peut s’écrire :
Pn (x) = δ(x0 ) + δ(x0 , x1 )(x − x0 ) + δ(x0 , x1 , x2 )(x − x0 )(x − x1 ) + · · ·
· · · + δ(x0 , . . . , xn )(x − x0 )(x − x1 ) · · · (x − xn−1 ) (3.3)
Pn (x) s’appelle : Le polynôme d’interpolation de Newton.
3.2. MÉTHODE DE NEWTON 17
Remarque 3.1. L’équation (3.3) c’est la forme la plus utilisée pour calculer le polynôme
d’interpolation, car elle nécessite le moins de calculs pour obtenir numériquement ses co-
efficients.
x 0 2 3 5
f (x) -1 2 9 87
18 CHAPITRE 3. INTERPOLATION POLYNÔMIAL
4 Intégration Numérique
F (b) − F (a) et tout se ramène au calcul d’une fonction F (primitive de f ) pour des valeurs
données de la variable.
Pourtant on aura intérèt à utiliser une méthode approchée dans le cas ou, bien que la
primitive soit connue, sa complexité la rend impropre au calcul numérique. On se propose
de chercher des approximations de I(f ) au moyen d’expression de la forme :
n
X
Ai f (xi )
i=0
h
avec : A0 = A1 = 2
(h = b − a). Donc l’approximation d’ordre 1 est :
Z b
b−a
I(f ) = f (x)dx ' [f (a) + f (b)] (4.2)
a 2
La formule (4.2) est connue sous le nom de "Formule des Trapèzes".
Remarque 4.1. En général, la précision fournie par un seul trapèze n’est pas suffisante.
On divise alors le segment [a, b] en segment partiel égaux, et à chacun on applique la
19
20 CHAPITRE 4. INTÉGRATION NUMÉRIQUE
0, 1, 2).
Posons h = x1 − x0 = x2 − x1 = (b − a)/2. Afin de calculer les polynômes de Lagrange
on considère le tableau suivant :
x − x0 x0 − x1 x0 − x2
x1 − x0 x − x1 x1 − x2
x2 − x0 x2 − x1 x − x2
on a alors :
(x − x1 )(x − x2 ) (x − x1 )(x − x2 )
L0 (x) = =
(x0 − x1 )(x0 − x2 ) 2h2
(x − x0 )(x − x2 ) (x − x0 )(x − x2 )
L1 (x) = =−
(x1 − x0 )(x1 − x2 ) h2
(x − x0 )(x − x1 ) (x − x0 )(x − x1 )
L2 (x) = =
(x2 − x0 )(x2 − x1 ) 2h2
ou encore :
n n
−1
Z b
b−a X2 2
X
f (x)dx ' f (a) + f (b) + 4 f (x2i−1 ) + 2 f (x2i ) (4.5)
a 3n i=1 i=1
Tous les termes de rang impair sont multipliés par 4 tandis que ceux de rang pair sont
multipliés par 2, sauf le premier f (a) et le dernier f (b). La formule (4.5) est connue sous
le nom de "Formule de Simpson Générale".
L’erreur globale de l’approximation (4.5) étant donnée par :
(b − a) 4
|E(h)| ≤ h max |f (4) (x)|
180 x∈[a,b]
5
(b − a)
≤ max |f (4) (x)|
180n4 x∈[a,b]
La méthode des Simpson générale est d’ordre 4.
Remarque 4.4. Pour déterminer le nombre (suffisant) de sous intervalles partiels de l’in-
tervalle d’intégration tel que l’erreur soit inférieur à , il suffit de faire la majoration :
(b − a)5
max |f (4) (x)| ≤
180n4 x∈[a,b]
Calculer l’intégrale : Z 8 √
I1 = x x2 + 1dx
0
1. Par la méthode de Simpson.
2. Par la méthode de Simpson, forme générale, pour n = 4(k = 2) et n = 6(k = 3).
4.3. MÉTHODE DE NEWTON (N = 3) 23
Solution :
√
1. I1 = 08 x x2 + 1dx ' 173, 9570
R
√
2. ◦ I1 = R08 x√x2 + 1dx ' 174, 2385 pour n = 4.
R
5.1 Introduction
Nous prenons comme point de départ la formulation générale d’une équation différen-
tielle d’ordre 1 avec condition initiale. La tâche consiste à déterminer une fonction y(t)
solution de problème de Cauchy :
y 0 = f (t, y)
y (t0 )
(5.1)
= y0
La variable indépendante t représente très souvent (mais pas toujours) le temps. La
variable dépendante est notée y et dépend bien sûr de t. La fonction f est pour le moment
une fonction quelconque de deux variables que nous supposons suffisamment différentiable.
La condition y (t0 ) = y0 est la condition initiale et en quelque sorte l’état de la solution
au moment où on commence à s’y intéresser. Il s’agit d’obtenir y(t) pour t ≥ t0 , si on
cherche une solution analytique, ou une approximation de y(t), si on utilise une méthode
numérique.
Le théorème ci-après nous donne des conditions qui assurent l’existence et l’unicité de
la solution y(t) théorique (explicite) de problème (5.1).
Théorème 5.1. Si f est continue et s’il existe une constante L strictement positive telle
que pour tout t ∈ [t0 , t0 + T ], et pour tout y1 , y2 ∈ R, on ait :
alors, le problème de Cauchy admet une solution unique, quelque soit y0 ∈ R. On dit alors
que f est L− lipschitzienne, ou L est la constante de Lipschitz.
Remarque 5.1. Nous nous plaçerons toujours dans les conditions du théorème 5.1.
Soit l’équation différentielle du premier ordre :
y 0 (t) =t
(5.2)
y (0) =1
25
26CHAPITRE 5. RÉSOLUTION D’ÉQUATIONS DIFFÉRENTIELLES ORDINAIRES (ÉDO)
Voilà certainement l’un des exemples les plus simples que l’on puisse imaginer. La solution
particulière est alors :
t2
y(t) = + 1 (5.3)
2
qui vérifie à la fois l’équation différentielle et la condition initiale.
Soit l’équation différentielle :
y 0 (t)
= ty(t)
y (0) = 2
(5.4)
ne suffit pas dans ce cas d’intégrer les deux côtés de l’équation pour obtenir la solution.
On doit d’abord séparer les variables en écrivant par exemple :
dy
= ty(t)
dt
qui devient :
dy
= tdt
y
la solution particulière est :
2 /2
y(t) = 2et (5.5)
qui vérifie à la fois l’équation différentielle et la condition initiale.
L’objectif de ce chapitre est de décrire un certain nombre de méthodes permettant de
résoudre numériquement le problème de Cauchy (5.1).
Étant donné une subdivision t0 < t1 < · · · < tN = t0 + T de l’intervalle [t0 , t0 + T ],
on cherche à déterminer des valeurs approchées y0 , y1 , . . . , yN des valeurs ytn prises par la
solution exacte y(t). On notera les pas succéssives :
h = tn+1 − tn , ∀ 0≤n≤N −1
Dans toutes les méthodes numériques développées par la suite, on subdivise l’intervalle
[t0 , t0 + T ] en N intervalles de longueur h donnée par :
T − t0
h=
N
n 0 1 2 3 4 5 6 7 8 9 10
tn 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
yn 2,0000 2,0000 2,0200 2,0604 2,1222 2,2071 2,3175 2,4565 2,6285 2,8387 3,0942
y(tn ) 2,0000 2,0100 2,0404 2,0921 2,1666 2,2663 2,3944 2,5552 2,7543 2,9986 3,2974
On trouve y(1) ≈ 3, 0942. La solution exacte de l’équation (5.6) est donnée par l’équa-
tion (6.2), ce qui donne y(1) = 3, 2974. L’approximation calculée est donc très grossière.
où la fonction Φ est une approximation de f (t, y) sur l’intervalle [tn , tn+1 ]. La méthode
Runge-Kutta est plus symétrique puisqu’elle revient à évaluer numériquement la dérivée
au centre de l’intervalle [tn , tn+1 ]. Ceci conduit à l’algorithme suivant :
1. Étant donné un pas de temps h, une condition initiale (t0 , y0 ) et un nombre maximal
d’itérations N .
2. Pour 0 ≤ n ≤ N − 1 :
k1 = f (t ,y )
n n
k = f t + h , y + h k
2 n 2 n 2 1
–
yn+1 = yn + hk2
tn+1 = tn + h
– Écrire tn+1 et yn+1
3. Arrêt.
k2 = 0.5yn (h + 2 (1 + 0.25h2 ) tn + ht2n ) (5.8)
2 2
yn+1 = yn [1 + 0.5h (h + 2 (1 + 0.25h ) tn + htn )] , ∀ 0 ≤ n ≤ 9
tn+1 = tn + h
On calculer les valeurs :
n 0 1 2 3 4 5 6 7 8 9 10
tn 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
yn 2,0000 2,0100 2,0403 2,0918 2,1661 2,2656 2,3933 2,5535 2,7517 2,9950 3,2923
y(tn ) 2,0000 2,0100 2,0404 2,0921 2,1666 2,2663 2,3944 2,5552 2,7543 2,9986 3,2974
On trouve y(1) ≈ 3, 2923. La solution exacte de l’équation (5.6) est donnée par l’équa-
tion (6.2), ce qui donne y(1) = 3, 2974. L’approximation calculée est donc très bonne.
n 0 1 2 3 4 5 6 7 8 9 10
tn 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
Euler 2,0000 2,0000 2,0200 2,0604 2,1222 2,2071 2,3175 2,4565 2,6285 2,8387 3,0942
RK2 2,0000 2,0100 2,0403 2,0918 2,1661 2,2656 2,3933 2,5535 2,7517 2,9950 3,2923
Exacte 2,0000 2,0100 2,0404 2,0921 2,1666 2,2663 2,3944 2,5552 2,7543 2,9986 3,2974
30CHAPITRE 5. RÉSOLUTION D’ÉQUATIONS DIFFÉRENTIELLES ORDINAIRES (ÉDO)
6 TP Matlab
5 xvect =
6 0
7 −0.5000
8 −0.5663
9 −0.5671
10
11 xdif =
12 0.5000
31
32 CHAPITRE 6. TP MATLAB
13 0.0663
14 0.0008
15
16 fx =
17 1.0000
18 0.1065
19 0.0013
20 0.0000
21
22 nit =
23 3
La solution de l’équation f (x) est α = x(3) = −0, 5671.
6.1.2 Méthode du point fixe
1 f u n c t i o n [ xvect , x d i f , fx , n i t ]= f i x p o i n t ( x0 , t o l , fun , p h i )
2 e r r=t o l +1; n i t =0;
3 x v e c t=x0 ; x=x0 ; f x=e v a l ( fun ) ; x d i f = [ ] ;
4 while err > t o l
5 n i t=n i t +1;
6 x=x v e c t ( n i t ) ;
7 xn=e v a l ( ph i ) ;
8 e r r=abs ( xn−x ) / abs ( xn ) ;
9 x d i f =[ x d i f ; e r r ] ;
10 x=xn ; x v e c t =[ x v e c t ; x ] ; f x =[ f x ; e v a l ( fun ) ] ;
11 end
12 return
Soit la fonction f (x) = ex + x avec x0 = −1 et = 10−2 . On a :
f (x) = 0 ⇔ ex + x = 0 ⇔ x = −ex
5 xvect =
6 −1.0000
7 −0.3679
8 −0.6922
9 −0.5005
10 −0.6062
11 −0.5454
6.2. INTERPOLATION POLYNÔMIAL 33
12 −0.5796
13 −0.5601
14 −0.5711
15 −0.5649
16 −0.5684
17
18 xdif =
19 1.7183
20 0.4685
21 0.3831
22 0.1745
23 0.1116
24 0.0590
25 0.0348
26 0.0193
27 0.0111
28 0.0062
29
30 fx =
31 −0.6321
32 0.3243
33 −0.1917
34 0.1058
35 −0.0608
36 0.0342
37 −0.0195
38 0.0110
39 −0.0063
40 0.0035
41 −0.0020
42
43 nit =
44 10
La solution de l’équation f (x) est α = x(10) = −0.5684.
6.2 Interpolation polynômial
6.2.1 Méthode de Lagrange et de Newton
Utiliser la formule d’interpolation (Lagrange ou celle de Newton) pour trouver le poly-
nôme passant par : x0 = 0, 4 ; x1 = 0, 5 ; x2 = 0, 7 ; x3 = 0, 8 pour la fonction f (x) = sin(x).
1 >> x = [ 0 . 4 0 . 5 0 . 7 0 . 8 ] ;
2 >> y = s i n ( x ) ;
34 CHAPITRE 6. TP MATLAB
3 >> p = p o l y f i t ( x , y , l e n g t h ( x ) −1)
4
5 p =
6 −0.1372 −0.0342 1.0145 −0.0021
7
8 >> poly2sym ( p , ’ x ’ )
9
10 ans =
11 3 2
12 −0.0021 − 0 . 1 3 7 2 x − 0.0342 x + 1.0145 x
13 >>
On trouve : P3 (x) = −0.1372x3 − 0.0342x2 + 1.0145x − 0.0021.
1 f u n c t i o n [ d]= d i v i d i f ( x , y )
2 [ n ,m]= s i z e ( y ) ;
3 i f n == 1 , n = m; end
4 n = n−1;
5 d = z e r o s ( n+1,n+1) ;
6 d(: ,1) = y ’;
7 f o r j = 2 : n+1
8 f o r i = j : n+1
9 d ( i , j ) = ( d ( i −1, j −1)−d ( i , j −1) ) / ( x ( i −j +1)−x ( i ) ) ;
10 end
11 end
12 d=[x ’ , d ] ;
13 return
Claculer les différences divisées de la fonction f (x) aux points xi :
x 0 2 3 5
f (x) -1 2 9 87
1 >> x = [ 0 2 3 5 ] ;
2 >> y = [−1 2 9 8 7 ] ;
3 >> Tab=d i v i d i f ( x , y )
4
5 Tab =
6 0 −1.0000 0 0 0
7 2.0000 2.0000 1.5000 0 0
8 3.0000 9.0000 7.0000 1.8333 0
9 5.0000 87.0000 39.0000 10.6667 1.7667
6.3. INTÉGRATION NUMÉRIQUE 35
1 f u n c t i o n [ i n t ] = t r a p e z ( a , b ,m, fun )
2 h=(b−a ) /m;
3 x=[a : h : b ] ;
4 dim=l e n g t h ( x ) ;
5 y=e v a l ( fun ) ;
6 i f s i z e ( y )==1
7 y=d i a g ( ones ( dim ) ) ∗y ;
8 end
9 i n t=h ∗ ( 0 . 5 ∗ y ( 1 )+sum ( y ( 2 :m) ) +0.5∗ y (m+1) ) ;
10 return
Calculer l’intégrale : Z 8 √
I(f ) = x x2 + 1dx
0
1. Par la méthode des trapèzes n = 1.
2. Par la méthode des trapèzes, forme générale, avec n = 4.
1 >> f = ’ x . ∗ s q r t (1+x . ^ 2 ) ’ ;
2 >> I 1 = t r a p e z ( 0 , 8 , 1 , f )
3
4 I1 =
5 257.9922
6
7 >> I 2 = t r a p e z ( 0 , 8 , 4 , f )
8
9 I2 =
10 179.4203
R8 √
1. I1 = 0 x x2 + 1dx ' 257, 9922
R8 √
2. I1 = 0 x x2 + 1dx ' 179, 4203
1 >> syms x ;
2 >> do ub le ( i n t ( x∗ s q r t (1+x ^2) , 0 , 8 ) )
3
4 ans =
5
6 174.3489
1 >> f = ’ x . ∗ s q r t (1+x . ^ 2 ) ’ ;
2 >> I 1=simpson ( 0 , 8 , 1 , f )
3
4 I1 =
5 173.9570
6
7 >> I 2=simpson ( 0 , 8 , 2 , f )
8
9 I2 =
10 174.2385
11
12 >> I 3=simpson ( 0 , 8 , 3 , f )
13
14 I3 =
15 174.3079
R8√
1. I(f ) = x x2 + 1dx ' 173, 9570
0
√
2. ◦ I(f ) = R08 x√x2 + 1dx ' 174, 2385 pour n = 4(k = 2).
R
4 I =
5 174.1024
R8 √
On trouve : I(f ) = 0 x x2 + 1dx ' 174, 1024.
Voilà certainement l’un des exemples les plus simples que l’on puisse imaginer. la solution
particulière est :
2
y(t) = 2et /2 (6.2)
38 CHAPITRE 6. TP MATLAB
3 Sol
4 2
5 2 exp ( 1 /2 t )
6 >> e z p l o t ( S o l , [ 0 2 ] )
7 >> l e g e n d ( ’ S o l u t i o n Exacte ’ )
2 /2
Figure 6.1 – y(t) = 2et avec y(0) = 2.
1 f u n c t i o n [ t , y ] = ER( f , t0 , T, N, y0 )
2 h = (T−t 0 ) /N ;
3 t = l i n s p a c e ( t0 , T,N+1) ;
4 y ( 1 ) = y0 ;
5 f o r n = 2 : N+1
6 y ( n ) =y ( n−1) + h∗ f e v a l ( f , t ( n−1) , y ( n−1) ) ;
7 end
8 end
On veut approcher la solution de (6.1) en t = 1 à l’aide de la méthode d’Euler, en
subdivisant l’intervalle [0, 1] en 10 parties égales.
1 >> f=i n l i n e ( ’ t ∗y ’ , ’ t ’ , ’ y ’ ) ;
2 >> [ tn , ytn ]=ER( f , 0 , 1 , 1 0 , 2 )
6.4. RÉSOLUTION D’ÉQUATIONS DIFFÉRENTIELLES ORDINAIRES (ÉDO) 39
4 tn =
5 Columns 1 through 6
6
9 Columns 7 through 11
10
13 ytn =
14 Columns 1 through 6
15
18 Columns 7 through 11
19
1 >> e z p l o t ( fun , [ 0 1 ] )
2 >> h o l d on
3 >> p l o t ( tn , ytn , ’ r−o ’ )
4 >> l e g e n d ( ’ Exacte ’ , ’ E u l e r ’ )
5 >> hold o f f
40 CHAPITRE 6. TP MATLAB
1 f u n c t i o n [ t , y ] = RK2( f , t0 , T, N, y0 )
2 h = (T−t 0 ) /N ;
3 t = l i n s p a c e ( t0 , T,N+1) ;
4 y ( 1 ) = y0 ;
5 f o r n = 2 :N+1
6 k1 = f e v a l ( f , t ( n−1) , y ( n−1) ) ;
7 k2 = f e v a l ( f , t ( n−1)+0.5∗h , y ( n−1)+0.5∗h∗k1 ) ;
8 y ( n ) = y ( n−1) + h∗k2 ;
9 end
10 end
On veut approcher la solution de (6.1) en t = 1 à l’aide de la méthode de Runge-Kutta
d’ordre 2, en subdivisant l’intervalle [0, 1] en 10 parties égales.
1 >> f=i n l i n e ( ’ t ∗y ’ , ’ t ’ , ’ y ’ ) ;
2 >> [ tn , ytn ]=RK2( f , 0 , 1 , 1 0 , 2 )
3
4 tn =
5 Columns 1 through 6
6
9 Columns 7 through 11
10
13 ytn =
14 Columns 1 through 6
15
18 Columns 7 through 11
19
1 >> e z p l o t ( fun , [ 0 1 ] )
2 >> h o l d on
3 >> p l o t ( tn , ytn , ’ r−o ’ )
4 >> l e g e n d ( ’ Exacte ’ , ’RK2 ’ )
5 >> hold o f f