Académique Documents
Professionnel Documents
Culture Documents
AN Complet
AN Complet
Références bibliographiques 41
II Résolution de f (x) = 0 43
II.1 Position du problème . . . . . . . . . . . . . . . . . . . . . . 44
II.2 Estimation de la solution approchée . . . . . . . . . . . . . . 44
II.3 Résolution par les méthodes itératives . . . . . . . . . . . . . 45
Méthodes Numériques
L IDÉE de faire des calculs à moindre effort est aussi veille que les mathéma-
tiques comme en témoigne, entre autres, les travaux de John Napier. Au
15me siècle, extraire une racine carrée ou élever à une puissance importante
représentaient des opérations très coûteuses à faire à la main et pourtant très
courantes dans la vie de tous les jours quand on est astronome ou naviga-
teur. En cherchant alors à rendre possible des calculs compliqués jusqu’alors,
Napier mets en place une méthode numérique qui √ conduit à la définition du
logarithme. Ainsi, par exemple, pour calculer x = 2357814 × 548127556, la
méthode traditionnelle fait appel à une multiplication de deux grands nombres
et une démarche très longue d’extraction de racine. Napier propose, comme
alternative, la méthode suivante :
√
x = 2357814 × 548127556 = 2.357814.106 × 5.48127556.108 × 100.5
X = log10 x = log10 2357814 + log10 548127556 + log10 100.5
= 6 + log10 (2.357814) + 8 + log10 (5.48127556) + 0.5
appelle des feuilles de calcul. Cette table fournit les valeurs du logarithme pour
les nombres compris entre 0 et 10 de manière discrète (donc pas pour tous !).
Ce n’est que dans la foulée de la guerre mondiale et la course vers la
bombe atomique que les ordinateurs arrivent pour remplacer les feuilles de
calculs. Depuis, une nouvelle discipline appelée Analyse numérique est née à
l’interface des mathématiques et de l’informatique avec comme objectif l’éla-
boration et la mise en pratique des méthodes permettant de résoudre, par des
calculs purement numériques, des problèmes d’analyse mathématique délicats.
De la simple calculatrice aux super-ordinateurs, les machines se basent
sur une représentation des nombres qui est limitée par leur capacité mémoire.
Cette représentation peut être une source principale pour beaucoup de pro-
blèmes associés à l’usage des calculateurs. L’objectif principal de ce chapitre
est de comprendre le principe de cette représentation afin d’en minimiser les
inconvénients.
Le calcul Numérique et analyse d’erreur
Comme montré sur Fig 1.1, à chacune de ses étapes, tout calcul numé-
rique est entaché d’erreurs dont la source peut être une ou la combinaison de
plusieurs facteurs :
• Erreurs de données :
1. Erreur de mesure : peuvent provenir de mesures effectuées sur
le phénomène étudié ou de constantes physiques approchées.
2. Erreur de modélisation : dues à des termes dont la contribution
a été négligée dans la formulation mathématique du problème.
Ces erreurs sont extérieures au calcul numérique, on n’a pas de contrôle
sur elles. Cependant, il est important de comprendre leur comporte-
ment pendant le calcul à travers les notions de conditionnement et de
stabilité qu’on verra plus loin.
• Erreurs numériques : :
1. Erreur de troncature : Liée à la méthode de résolution nu-
mérique utilisée en général. On peut citer l’approximation d’une
dérivée par un développement de Taylor à l’ordre 1, le calcul d’une
intégrale par une somme discrète d’aires sous la courbe, ... etc.
Elles sont dues aussi à l’utilisation des fonctions prédéfinies (bi-
bliothèques mathématiques) dans les programmes. En réalité, ces
fonctions font appel a une partie d’un programme qui remplace une
fonction continue par une fonction discrète tronquée à un certain
ordre.
Exemple :
Prenons un cas simple : le calcul du logarithme Népé-
rien d’un nombre ln(x). On peut écrire son développement en série
de Taylor au voisinage de 1 qui donne :
1 1
ln(x) = 0 + (x − 1) − (x − 1)2 + (x − 1)3 + ...
2! 3!
En faisant un changement de variable X = x − 1 et en se limitant
à l’ordre 3, la fonction ln(X + 1) est approchée par le polynôme
d’ordre 3 :
X3 X2
P3 (X) = − +X
3! 2!
Le calcul Numérique et analyse d’erreur
1 1
Po → =
3! 6
1 1 −2
P1 → − + × 1 =
2 6 6
2 4
P2 → 1 − × 1 =
6 6
4 4
P3 → 0 + × 1 =
6 6
X4 X3 X2
P4 (X) = − + − +X
4! 3! 2!
∆(x) = |x − x∗ | (I.1)
On remarque que l’erreur absolue est d’autant plus petite que x∗ se rapproche
de x. C’est une quantification de la précision de la valeur approchée x∗ .
Exemple :
Le nombre exact π = 3.14159265359... possède une représenta-
tion décimale infinie. Sa valeur ne nous est donc connue qu’approximativement.
Historiquement, plusieurs démarches mathématiques ont tenté de déterminer
le maximum de chiffres dans la représentation de π. De l’antiquité à nos jours,
on est passé de 2 chiffres à 1010 !
Les fractions x1∗ = 355 ∗ 377
113 = 3.14159292035... , x2 = 120 = 3.14166666667... et
x3∗ = 22
7 = 3.14285714286... en sont quelques exemples.
On constate, par intuition, que x1∗ est plus précis que x2∗ tous deux plus précis
que x3∗ . Ceci est confirmé par le calcul de l’erreur absolue sur chacun des
nombres approchés :
31415926536 − 31415929204
∆(x1 ) = |x − x1 ∗ | = | 10
| = 0.27 × 10−6
10
∗ 31415926536 − 31416666667
∆(x2 ) = |x − x2 | = | 10
| = 0.74 × 10−4
10
31415926536 − 31428571429
∆(x3 ) = |x − x3 ∗ | = | | = 0.12 × 10−2
1010
|x − x∗ | ∆(x)
r(x) = = (I.2)
|x| |x|
Le calcul Numérique et analyse d’erreur
Exemple :
1
Le nombre fractionnaire x1 = 14 est dix fois plus petit que x2 = 57 .
Néanmoins, l’erreur absolue sur leurs représentations approchées respectives
x1∗ = 0.0714 et x2∗ = 0.7143 est la même :
1 714 1
∆(x1 ) = |x − x1 ∗ | = | − 4|= × 10−4
14 10 7
∗ 5 7143 1
∆(x2 ) = |x − x2 | = | − |= × 10−4
7 104 7
Regardons maintenant l’importance de cette erreur dans chacun des deux cas :
|x − x1 ∗ |
r(x1 ) = = 2 × 10−5 = 0.002 × 10−2 = 0.002%
|x1 |
|x − x2 ∗ | 2
r(x2 ) = = 10−5 = 0.0002 × 10−2 = 0.0002%
|x2 | 10
Ainsi, la même erreur absolue est dix fois plus importante dans l’approximation
de x1 par x1 ∗ que dans celle de x2 par x2 ∗ .
x = signe × valeur
2. A virgule flottante :
x = signe × M × b p
Exemple :
Le nombre fractionnaire x = 438 25 s’écrit x = +17.52 en virgule
fixe et peut avoir plusieurs écritures équivalentes en virgule flottante dans la
base 10 : x = +0.1752 × 102 , x = +1.752 × 10, x = +175.2 × 10−1 , etc ...
Pour éviter des représentations différentes du même nombre, la mantisse
est normalisée. Cela revient simplement à l’écrire en notation scientifique :
x = signe × M1 . M2 M3 ....Mn × b p , où M1 est non nul Dans l’exemple pré-
cédent, la deuxième écriture x = +1.752 × 10 est la représentation normalisée
de x.
De façon générale, un nombre réel x est représenté en décimal sous la forme :
dm dm−1 ...d1 d0 .d−1 d−2 ...d−n . En écriture compacte, x peut être exprimé par
la somme : x = ∑m k
k=−n dk 10 , d ∈ {0, 1, . . . , 9}
Ainsi, en décimal, un nombre fractionnaire ne peut avoir une représentation
exacte en virgule flottante que s’il peut s’écrire sous la forme 10Xk , c’est-à-dire
que sa mantisse normalisée contient un nombre n fini de chiffres.
Comparons, à titre explicatif, entre x1 = 438 1752
25 = 100 = 17.52 et le rationnel
x2 = 31 qui vaut +0.333333....
Contrairement à x1 , x2 ne peut pas être transformé sous la forme bXk , sa repré-
sentation en virgule flottante s’écrit avec une infinité de décimales et donc sa
valeur ne peut être qu’ approximative.
Le calcul Numérique et analyse d’erreur
Le fonctionnement des machines se base sur l’algèbre de Bool qui fait appel
au code binaire dont la base de numérisation est b = 2. Ainsi, tout nombre réel
écrit en décimal doit être converti en binaire (par l’assembleur) avant d’être
traité par l’ordinateur.
Exercice 1:
1. Ecrire en binaire le nombre x = 9.
2. Convertir y = 9.375 en binaire.
Réponse :
1. Le nombre x=9 dans la base décimale
correspond à la combinaison x2 = 1001 dans
la base binaire. La reconversion vers la base
décimale donne:
x10 = 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 .
2. Le nombre y = 9.375 s’écrit en binaire
y2 = 1001.011 et sa reconversion dans la base
décimale est:
y10 = 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 + 0 × 2−1 + 1 ×
2−2 + 1 × 2−3 .
9 2
9.375 =?
8 4 2
910 = 10012
1 4 2 2
0 2 1
0.375x2 = 0.75
0
0.75x2 = 1.5
0.5x2 = 1.0
9 = 10012 0.375 = 1001.0112
D’autres écritures en virgule flottante sont possibles, elles sont équivalentes.
On en cite quelques unes :
Comme pour la base 10, un nombre x qui s’écrit dans la base binaire sous la
forme : x = bm bm−1 ...b1 b0 . b−1 b−2 ...b−n vaut :
m
x= ∑ bk 2k , b ∈ {0, 1} (I.3)
k=−n
Il s’en suit qu’en binaire, seuls les nombres fractionnaires de la forme 2Xk ont
une représentation exacte.
3
C’est le cas de x = 0.3 = 10 dont la représentation est exacte dans la base
décimale et qui ne peut être écrit en binaire que de manière approximative :
0.3x2 = 0.6
0.6x2 = 1.2
0.2x2 = 0.4
0.4x2 = 0.8
0.8x2 = 1.6
0.6x2 = 1.2
...
0.3 = 0.01001[1001]
Le calcul Numérique et analyse d’erreur
1. Les quatre derniers zéros dans le nombre x1 = 1.73 × 106 ne sont pas
significatifs. x contient 3 cs
2. Tandis que ces mêmes zéros dans le nombre x2 = 1.730000 × 106 sont
significatifs. x contient 5 cs
Remarques:
• Pour un expérimentateur qui relève une
mesure d’une grandeur physique x, écrire
x∗ = 1.730 × 106 µm signifie que l’appareil de
mesure est tout simplement une règle graduée. La
plus petite graduation qu’on peut lire étant le
millimètre, le résultat de la mesure peut être
affiché avec trois chiffres après la virgule. Ce
sont des chiffres significatifs. Si ce résultat
est utilisé dans un calcul numérique, il sera
transformé en x = 1730000. On voit bien que les
trois derniers zéro n’ont pas de sens, ils ne
sont pas significatifs.
Si, pour la même mesure, le résultat est présenté
comme x∗ = 1.730000 × 106 alors on comprends
que l’appareil de mesure utilisé a accès aux
micromètres. Ces trois derniers zéros sont des
’ zéros mesurés ’, ils sont significatifs.
• Notons qu’à ce niveau, on ne parle pas encore
d’erreur de calcul (mesure). Tout chiffre
significatif peut être bien ou mal déterminé.
Remarque:
• Le résultat d’un arrondi correct est un nombre
qui ne possède que des chiffres significatifs
exacts.
• Si le chiffre significatif de rang n est exact,
alors tous les chiffres significatifs qui se
trouvent à gauche le sont aussi.
• Si les cs d’un nombre approché x∗ coïncident
avec ceux du nombre exact x, alors ils sont cse
Exemples :
• Nous avons vu dans l’exemple précédant que l’erreur absolue commise lors
de l’approximation de x = π = 3.14159265359... par la fraction x∗ = 22/7 =
3.142857142... est : ∆(x) = |x−x∗ | = |π − 227
| = 0.001264... = 0.1264...10−2 .
L’erreur relative correspondante est : r(x) = ∆(x) −3
x = 0.00040... = 0.4...10 .
Le nombre x = 22/7 donne π avec une précision de trois chiffres ou avec
∗|
trois chiffres exacts puisque Cx∗ ,x = E[−log10 |x−x
|x| ] − 1 = 3 − 1 = 2. En effet,
c’est à partir de la quatrième position que les chiffres des deux nombres se
distinguent.
• • Contrairement au premier cas, ici une exception qui confirme la règle !
Entre le nombre exact x = 2.4599976 et son approximation x∗ = 2.4600012,
la différence commence à apparaître à partir du troisième chiffre. Néanmoins,
après calcul, on trouve 4 décimales exactes :
∗|
Cx∗ ,x = E[−log10 |x−x
|x| ] − 1 = 4. Ceci a une explication ! c’est parce que la
différence n’est pas aussi importante. Elle n’est significative qu’à partir du
cinquième chiffre.
Le calcul Numérique et analyse d’erreur
Le champ exposant e permet de représenter, sur huit bits, des nombres com-
pris entre deux valeurs limites qui servent à représenter 0 et l’infini (+∞)
respectivement :
e0 = 00000000 = 0 × (27 + 26 + 25 + 24 + 23 + 22 + 21 + 20 ) = 0
eIn f = 11111111 = 1 × (27 + 26 + 25 + 24 + 23 + 22 + 21 + 20 ) = 255
Méthodes Numériques
Soient xn et xn+1 deux nombres flottants consécutifs dans la base b avec une
mantisse à n chiffres significatifs. Considérons un nombre réel x encadré par
les deux nombres flottants xn et xn+1 , c’est à dire que xn < x < xn+1 . Lorsque
le nombre x est correctement arrondi, alors x∗ = f l(x) prendra la valeur du
plus proche des nombres xn et xn+1 . Il s’en suit que l’erreur absolue sur x∗
sera :
1
∆(x) = | f l(x) − x| ≤ |xn+1 − xn |
2
1
≤ × M1 . M2 M3 ....(Mn + 1) × b p − M1 . M2 M3 ....Mn × b p
2
1 p
≤ × 0.0000...000}1×b
2 | {z
n zéros
1
≤ × b−(n−1) × b p
2
1
≤ × b1−n+p
2
L’écart entre tous les réels x ∈ [xn , xn+1 ] et leur flottants associés est majoré
par la valeur ε = b1−n+p appelée erreur machine. Cette distance est d’autant
plus importante que p est grand, c’est à dire pour des x grands.
Quant à l’erreur relative d’arrondi sur x, elle est donnée par l’expression
∗
εx = | x x−x | = | f l(x)−x
x |. En utilisant le résultat précédent sur l’erreur absolue,
Le calcul Numérique et analyse d’erreur
Exercice 3:
1. Représenter, en utilisant le standard
IEEE754, le nombre y = 113.3.
2. Quels sont les plus grands et plus petits
nombres (positifs/négatifs) représentable en
32 bits?
3. Quel est le plus petit nombre machine eps qui
vérifie 1 + eps ≥ 1. Que représente t-il?
Réponse :
1. D’abord, il faut écrire y dans la base
binaire: y = 113.310 = 10000101.01001[1001]2 .
En seconde étape, on normalise l’écriture
binaire : y = 1.000010101001[1001] × 27 .
L’exposant dans ce cas étant p=7, le
calcul de l’exposant biaisé donne e=p+127
= 134. C’est cette valeur qui est codée
dans le champ exposant: e=10000110. Quant
à la mantisse,elle est infinie. Pour
la représenter sur les 23 bits qui lui
sont réservés, il faut la tronquer:
m=00001010100110011001100. Comme y est
positif, le bit de signe est codé à 0.
Finalement, y = 01000011000001010100110011001100
Méthodes Numériques
On obtient alors:
y−
max = −(2 − 2
−23 ) × 2127 ≈ −3, 4028 × 1038 .
On obtient alors:
y+
min = 2
−126 ≈ 1, 1755 × 10−38 .
Exercice 4:
Calculer la plus grande erreur relative commise
en représentant, sur machine, un nombre
y = signe × 1 . M1 M2 M3 ....Mn × 2 p lorsque 23 termes
uniquement sont considérés (simple précision).
Réponse:
En représentant un nombre y sur 32 bits:
l’exposant E est un nombre entier occupant 8
bits et sa représentation est exacte tant que
sa valeur ne dépasse pas pmax =254-127=127. Par
ailleurs, la mantisse peut être soit infinie
(c’est le cas d’une fraction dont le dénominateur
n’est pas une puissance de 2) ou finie, s’étalant
sur un nombre n de bits. L’espace mémoire réservé
à la mantisse étant 23 bits uniquement, la
mantisse est nécessairement tronquées à 23
chiffres après la virgule. En négligeant les
chiffres de rang supérieur à 23, on commet une
erreur ∆y = 0.00...0M24 M25 ....Mn × 2 p . Cette erreur est
maximale lorsque les termes négligés sont tous
des 1. Dans ce cas, ∆y = 1 × (2−24 + 2−25 + ... + 2−n ) ×
−n 1−2−23
2 p = ( 1−2
1−2 − 1−2 ) ×2
E
des erreurs absolues peut devenir dans ce cas non négligeable par rapport à la
somme, entraînant une erreur relative très grande et donc une perte de cse. Ce
phénomène peut être illustré par simple représentation en double précision de
deux nombres :
a = x.xxxxxx... et b = x.xxxxxxyy..., approchés par a∗ = x.xxx...xxxa et b∗ =
| {z }
16 décimales
x.xxxxxxy...yyya respectivement, dans la base décimale ainsi que le résultat c∗
| {z }
16 décimales
de leur addition :
x.xxxxxxxxxxxxxxxa xxx...
−
x.xxxxxxyyyyyyyyya yyy... (I.7)
= − − − − − − − − − −−
0.000000zzzzzzzzza nnnnnnn
x.xxxxxxxxxxxxxxxa xxxxxxxxxxx.10ea
+
0.0000000000yyyyya yyyyyyyyyyy10ea (I.8)
= − − − − − − − − − −−
x.xxxxxxxxxxzzzzza nnnnnnnnnnn10ea
Le résultat affiché sera c = x.xxxxxxxxxxzzzzza 10ea . Les décimales les moins
significatives de b sont perdues à cause de l’écart entre les deux exposants (ici
11 cs perdus).
Méthodes Numériques
Exemples :
• Considérons deux nombres d’amplitudes très différentes
a = 0.333... × 105 et b = 0.333... et calculons leur somme c sur une machine
32bits :
0.333333333333.105
+
0.000003333333.105 (I.9)
= − − − − − − − − − −−
0.3333366nnnnn105
On constate que cinq décimales sur sept de b sont absorbées dans la somme,
ce qui a un impact sur la suite du calcul :
0.3333366nnnnn105
−
0.333333333333.105 (I.10)
= − − − − − − − − − −−
0.0000033nnnnn105
0.333333333333.105
+
0.00000000003333333.105 (I.11)
= − − − − − − − − − −−
0.3333333nnnnn105
0.3333333nnnnn105
−
0.333333333333.105 (I.12)
= − − − − − − − − − −−
0.0000000nnnnn105
Dans les réels, on peut écrire : a.(b + c) = a.b + a.c. On dit que l’addi-
tion est distributive sur la multiplication. A cause des erreurs d’arrondis, les
nombres flottants ne respectent plus cette relation de distributivité.
∆y f 0 (x)∆x
=
y f (x)
(I.14)
x f 0 (x) ∆x
= ×
f (x) x
Exercice 5:
1. Evaluer le conditionnement de la fonction
F(x) = 1 − cos(x) autour de x = 0.
2. Qu’en est-il pour la stabilité?
Réponse :
1.
xF 0 (x) x.sin(x) 2x.sin( 2x )cos( 2x ) x.cos( 2x )
C(x) = = = =
F(x) 1 − cos(x) 2sin2 ( 2x ) sin( 2x )
x.sin(x) 1 − cos(x)
lim C(x) = limx→0 | − |=1
x→0 1 − cos(x) 1 − cos(x)
On constate alors que le problème mathématique est
bien conditionné pour des x proches de 0 .
Analyse de stabilité: Si nous considérons une
donnée x entachée d’erreurs, alors la valeur
manipulée par l’ordinateur est x∗ = x(1 + εr ).
Si également les coefficients C1 ,C2 ,C3 sont les
conditionnements relatifs aux trois étapes de
ce calcul à savoir l’évaluation du cosinus, la
soustraction et la division respectivement, alors
le résultat de l’évaluation f (x∗ ) donne:
[1 − (cos(x)(1 + ε1 )](1 + ε2 )
F(x∗ ) = × (1 + ε3 )
x
cos(x)
≈F(x)(1 + ε1 × + ε2 + ε3 )
1 − cos(x)
Le calcul Numérique et analyse d’erreur
1 − cos(x) 2 × sin2 ( 2x )
F(x) = = , cos(2a) = 1 − 2 × sin2 (a)
x x
Avec l’algorithme amélioré, l’évaluation
donne :
2 × (sin( 2x )(1 + ε1 ))2 (1 + ε2 )
F ∗ (x) = (1 + ε3 )
x
2 × sin2 ( 2x )
= (1 + ε1 )2 (1 + ε2 )(1 + ε3 )
x
≈F(x)(1 + 2ε1 + ε2 + ε3 )
» x=0
x =
0
» 1/x
ans =
Inf
» x/x
ans =
NAN
x
(1) On fait d’abord y.z puis (y.z) ;
x
(2) On calcule y le résultat divisé par z.
Une autre façon pour contourner l’indétermination est de normaliser les gran-
deurs utilisées dans les expressions mathématiques. Cela équivaut à un chan-
gement d’échelle.
Exemple :
Pour étudier la vitesse de propagation du son dans différents mi-
lieux, on peut prendre la vitesse de propagation du son dans l’air comme
référence : u = 1230 km/h . Pour une vitesse v on écrit :
v
V=
u
A travers cette opération non seulement on a supprimé l’unité mais aussi réduit
l’échelle. Si la vitesse réelle appartient au domaine [1500, 2000] (km/h), la
vitesse normalisée est dans le domaine [1.2195, 1.6260]. Ainsi, une fonction
des vitesses peut être tracée avec une échelle linéaire.
Méthodes Numériques
Références bibliographiques
Résolution de f (x) = 0
Determination graphique de la racine x0 de la fonction f =β exp(−γ x)+α x + c Determination graphique de la racine x0 de la fonction f =β exp(−γ x)+α x + c
600
m=300, rho=12, h=−1000, g=10 20 m=300, rho=12, h=−1000, g=10
400
15
200 10
0 5
X: 15.61
Y: −0.1082
−200 0
f
f
−5
−400
−10
−600
−15
−800
−20
−1000
0 2 4 6 8 10 12 14 16 18 20 15.45 15.5 15.55 15.6 15.65 15.7 15.75
x x
d’une suite convergente l’erreur est réduite, une réduction quantifiée par un
paramètre p qui s’appelle vitesse de convergence donné par la définition :
ao +bo
• Evaluer la fonction f au point wo = 2 milieu de l’intervalle [ao ; bo ].
• Si f (ao )∗ f (wo ) < 0, alors la racine se trouve dans [ao ; wo ]. On considère
alors un nouvel intervalle [a1 ; b1 ] = [ao ; w] et on refait les mêmes étapes
• Si f (ao )∗ f (wo ) > 0, alors la racine se trouve dans [wo ; bo ]. On considère
alors un nouvel intervalle [a1 ; b1 ] = [wo ; bo ] et on refait les mêmes étapes
Ainsi, on génère une suite d’intervalles emboîtés [an ; bn ] qui vérifient à chaque
itération f (an ) ∗ f (bn ) < 0. Aux itérations successives n ≥ no de la suite, ce
produit se rapproche de plus en plus de 0 tandis que wn se rapproche de la
racine x. Voici un graphe qui explique la méthode de la bissection appliquée
sur la fonction f = ln(1 + x) − 0.5x + 1 dans l’intervalle [4; 7]
n+1
rence, on aboutit à ∆(xn ) = |xn − x| ≤ ( 21 ) |bo − ao |, ce qui définit une borne
supérieure à l’erreur commise à chaque itération n. La borne supérieure de
n+1
l’erreur est une suite Xn = ( 12 ) |bo − ao | qui converge q − linairement vers
0 puisque :
εn+1 Xn+1 − 0 1
lim = lim = (II.1)
n→∞ εn n→∞ Xn − 0 2
−ao
1 n+1 ln| botol |
∆(xn ) ≤ ( ) |bo − ao | ≤ tol ⇒ n ≥ −1 (II.2)
2 ln(2)
ln| bo −ao |
Il suffit de prendre le plus petit entier n qui vérifie Eq.II.2 : n = E[ ln(2)
tol
] − 1.
Néanmoins, la majoration de l’erreur s’avère assez large pour certains cas et le
nombre calculé d’itérations est surestimé.
II.3.2.4 Exemples
x −1 1. +∞
f 0 (x) + 0 −
α ≈ 1.2
f (x)
−∞ −∞
• La calculatrice donne :
an bn wn f (wn )
0 1 0.5000 0
On voit alors qu’on atteint la racine x sans aucune itération. Le nombre
d’itérations calculé théoriquement est surestimé car la majoration faite
lors du calcul de l’erreur (la borne supérieure) est très large.
qui donne l’altitude z(t) en fonction du temps, mesurée par rapport au sol. Ici,
v0 = mg/ρ est la vitesse limite atteinte quand l’effet de la résistance de l’air
est complètement compensé par le poids du mobile. Le paramètre τ = m/ρ
représente la constante de temps du mouvement et ρ est une constante qui
Résolution de f (x) = 0
αx + β [e−γx − 1] + h = 0 (II.5)
La racine de l’équation II.5 étant déjà isolée graphiquement dans la partie II.2,
calculons la solution numérique dans l’intervalle :
[ao ; bo ] = [14; 16] en utilisant la méthode de la dichotomie. On reprend les
étapes précédentes dans le programme mtd-dichotomie.m :
% Programme mtd-dichotomie.m
a(1)=14;b(1)=16;m=300;g=10;rho=12;h=-1000;
v0=(m*g)/rho;tau=m/rho;alpha=v0;gamma=1/tau;
beta=alpha/gamma;
% On défini la fonction
f=@ (x) alpha*x+ beta*(exp(-gamma*x)-1) + h ;
% Vérifier que f(a) x f(b) < 0
if f(a(1))*f(b(1)) < 0
for n=1:15
w(n)=(a(n)+b(n))./2;
if f(a(n)).*f(w(n))<0
b(n+1)=w(n);
a(n+1)=a(n);
elseif f(a(n))*f(w(n))>0
a(n+1)=w(n);
b(n+1)=b(n);
else
dispe’solution exacte ici’
end
Méthodes Numériques
end
else
disp ’Pa de solution ou solution exacte’
end
format long;
a=a(1:n);
b=b(1:n);
a, b , w, f(w)
18
16
16
14 14
12
12
10
10
8
8 6
4
6
2
4
0
0 2 4 6 8 10 12 14 16 18 0 5 10 15 20
15.65 15.65
15.6 15.6
15.55 15.55
15.5 15.5
15.5 15.55 15.6 15.65 15.5 15.55 15.6 15.65
xn+1 = g(xn )
1 00
= g(x) + g0 (x)(xn − x) + g (x)(xn − x)2 + o((xn − x)2 ).
2!
Ceci conduit à
1 00
xn+1 − g(x) = g0 (x)(xn − x) + g (x)(xn − x)2 + o((xn − x)2 ). (II.6)
2!
Comme g(x) = x , alors
1 00
xn+1 − x = g0 (x)(xn − x) + g (x)(xn − x)2 + o((xn − x)2 ). (II.7)
2!
Ceci veut dire que si on s’arrête au premier ordre, ∆(xn+1 ) ≈ g0 (x) ∆(xn ).
On constate que l’erreur sur la racine est multipliée par un facteur constant
k = g0 (x) à chaque itération, ce qui représente une diminution à condition que
k soit inférieur à 1.
La convergence de la méthode du point fixe est donc linéaire avec un coeffi-
cient k = |g0 (x)| < 1. Il est clair que cette convergence et d’autant plus rapide
que ce coefficient se rapproche de 0.
Optimisation : Si en revanche on se place dans le cas limite g0 (x) = 0 et les
dérivées supérieures non nulles, alors le développement précédant au deuxième
ordre donnera :∆(xn+1 ) ≈ 2!1 g00 (x)∆(xn )2 .
On voit que la convergence cette fois ci est quadratique et par conséquent plus
rapide, comparée au premier cas.
Pour déterminer une fonction g, un bon choix serait de prendre une fonction
dont la dérivée g0 soit nulle en (x) (convergence quadratique). Théoriquement,
Méthodes Numériques
II.3.5 Applications
II.3.5.1 Chute libre avec frottements linéaires
Reprenons l’équation II.5 et écrivons la sous une forme auxiliaire x = g(x).
Choix de la fonction g(x)
On considère en première tentative l’écriture triviale
β h
x = g(x) = − (e−γx − 1) − (II.8)
α α
Calculons à présent sa dérivée pour vérifier la convergence de la suite xn :
β γ −γx
g0 (x) = e = e−γx (II.9)
α
On obtient 0 < g0 (x) = e−γx < 1 pour tout x > 0, une garantie de convergence
(monotone) de l’algorithme de la méthode du point fixe pour ce choix de la
fonction g.
Calcul itératif de la solution
Voici le programme mtd_point_fixe.m qui calcule les 10 premiers itérés de la
suite xn+1 = g(xn ) à l’aide de l’algorithme de la méthode du point fixe.
%programme mtd-point-fixe.m
xo=15.57;m=300;g=10;h=-1000;rho=12;
v0=(m*g)/rho;tau=m/rho;alpha=v0;gamma=1/tau;
beta=alpha/gamma;
for n=1:10 % début de la boucle des itérations
x(n)=-(beta/alpha)*(exp(-gamma*xo)-1) - h/
alpha;
xo=x(n);
end % fin de la boucle
format long
% résultat donné sous la forme d’un vecteur
colonne
x’
» mtd-point-fixe
ans =
15.588992501379442
15.599176975453549
15.604635077006797
15.607559288266042
15.609125689691203
15.609964682791080
15.610414041140398
15.610654707867260
15.610783602043101
15.610852633545655
2mg v0 2
v2o = , α = v0 , τ = , H = v0 τ, γ = , β = 1
η Cx S g τ
Détermination de xo
La méthode graphique nous donne une valeur approchée xo = 14.15 de la
solution de l’équation II.10. La figure II.6 illustre cette démarche pour le choix
indiqué en légende sur la figure des paramètres de l’équation.
Choix de la fonction g(x)
Un choix trivial de la fonction g(x) = − H −γx ) − h ne nous permet
α log(1 + e α
pas de conclure quant à la convergence de la méthode. En effet,
Hγ e−γx Hγ e−γx Hγ
|g0 (x)| = | −γx
| = | || −γx
|≤
α 1+e α 1+e α
Résolution de f (x) = 0
Comme Hγ/α = 2, il vient alors que 0 < g0 (x) ≤ 2. Ceci peut se voir à travers
une vérification rapide avec le programme mtd-point-fixe.m précèdent. Voici
le résultat de ce calcul :
» ans =
14.140001136864901
14.140002273123596
14.140003408777288
14.140004543825967
14.140005678272590
14.140006812114205
14.140007945353764
14.140009077988312
14.140010210020806
14.140011341451244
On voit bien, dans le résultat ci-dessous, que la méthode converge dans ce cas
et ceci dès la première itération
» ans =
14.142708809020339
14.142141082402615
14.142136003156766
14.142135957367278
14.142135956815794
14.142135955517032
14.142135954600068
14.142135957546754
14.142135958016658
14.142135957275906
» ans =
14.333333696346891
14.106481809939998
14.148447659902951
14.141007584514558
14.142337333507916
14.142100006931081
14.142142372821164
14.142134815297059
14.142136161570498
14.142135919981525
14.142135963268625
f (xn ) f (xn )
∆(xn+1 ) = xn+1 − x = xn − 0
− x = ∆(xn ) − 0 (II.12)
f (xn ) f (xn )
En appliquant le développement limité (II.11) à la fonction f (xn ) au voisinage
de x et en s’arrêtant à l’ordre 2, alors
f (xn ) f (x) f 0 (x) f 00 (x)
0
= 0
+ 0
∆(xn ) + 0
∆(xn )2 + o(∆(xn )2 )
f (xn ) f (xn ) f (xn ) 2 f (xn )
0 0
avec : f (x) = 0, f (x) ≈ f (xn ).
On obtient
f 00 (x)
∆(xn+1 ) ≈ − ∆(xn )2 (II.13)
2 f 0 (xn )
On constate que lorsque la racine recherchée s’agit d’une racine simple, la
méthode de Newton converge d’une manière quadratique si f 00 (x) , 0.
Toutefois, si la racine x de la fonction f est multiple, de multiplicité p :
f 0 (x) = f 00 (x) = ... = f (p−1) = 0. Il en résulte que
f (xn ) 1 f (p) (x)
≈ ∆(xn ) p (II.14a)
f 0 (xn ) p! f 0 (xn )
1 p!
≈ ∆(xn ) p (II.14b)
p! p(xn − x) p−1
1 (xn − x) p
≈ (II.14c)
p (xn − x) p−1
1 1
≈ (xn − x) = ∆(xn ). (II.14d)
p p
et donc
1 1
∆(xn+1 ) ≈ ∆(xn ) − ∆(xn ) = (1 − )∆(xn ). (II.15a)
p p
∆(xn+1 ) ≈ k∆(xn ) (II.15b)
La convergence de la méthode de Newton se voit ralentit par la multiplicité
de la racine, elle passe de quadratique à linéaire et la vitesse de convergence
k = 1 − 1/p est d’autant plus faible que l’ordre de multiplicité p augmente.
Méthodes Numériques
II.4.4 Applications
II.4.4.1 Chute libre avec frottements linéaires
Dans le programme MATLAB suivant, l’algorithme de Newton permet de
retrouver la solution approchée de l’équation II.5.
% Programme mtd-newton.m
m=300;g=10;rho=12;h=-1000;
v0=(m*g)/rho;
tau=m/rho;
alpha=v0;
gamma=1/tau;
beta=alpha/gamma;
x(1)=15.6;
% la fonction est sa dérivée f=@(x) alpha*x +
beta*exp((-gamma*x)-1) + h ;
fp=@(x) alpha - beta*gamma*exp(-gamma*x);
for n=1:50
x(n+1)=x(n)-(f(x(n))./fp(x(n)));
end
format long; x ’
II.5.2 Applications
% Programme mtd-secante.m
m=300;g=10;rho=12;h=-1000;
v0=(m*g)/rho;
tau=m/rho;
alpha=v0;
gamma=1/tau;
beta=alpha/gamma;
x(1)=15.75;
x(2)=15.8; f=@(x) alpha*x+ beta*(exp(-gamma*x)-1)
+ h;
Résolution de f (x) = 0
for n=1:8
x(n+2)=x(n+1)-f(x(n+1))*(x(n+1)-x(n))
/(f(x(n+1))-f(x(n)));
end
format long;
y=f(x);[ x , y ]
Exemple :
Exemple :
la valeur de P4 (x) = x4 + 2x3 + 3x2 − 2x − 4 pour xo = 1. Le
programme horner.m ci-dessous utilise l’algorithme II.20 pour évaluer p4 au
point x = 1.
Méthodes Numériques
% Programme horner.m
function horner(N,x0)
an=input(’entrer les coefficients du polynome:
’);
pn(1)=an(1);
for n=1:N-1
pn(n+1)=an(n+1)+pn(n)*x0
end
Partant du polynôme :
n
Pn (x) = ∑ ai xn−i = ao xn + a1 xn−1 + ... + an (II.21)
i=0
m
Pn (x) = ao (x − α) ∏ (x2 + sk x + pk ) n(impair) = 2m + 1 (II.23)
k=1
bo = ao
b1 = a1 − s bo
...................
bk = ak − s bk−1 − p bk−2 , k = 2 . . . n
................................................
bn−1 = an−1 − s bn−2 − p bn−3
bn = an − s bn−1 − p bn−2
α(s, p) = bn−1
β (s, p) = bn + s bn−1
∂α ∂β
∂s = −cn−2 ∂s = −cn−1 − p cn−2
∂α ∂β
∂p = −cn−3 ∂p = −cn−2 − s cn−3
avec
co = bo
c1 = b1 − sco
ck = bk − s ck−1 − p bk−2 , k = 2 . . . n − 1
...............................................
cn = bn − s cn−1 − p bn−2
On se donne des valeurs de départ pour la somme et le produit (n est (le degré
du polynôme) + 1) :
» s=1;p=1;n=5;
II.6.4 Applications
II.6.4.1 a. Oscillateur anharmonique
Un système mécanique masse-ressort horizontal dans lequel la masse
effectue des oscillations périodiques de forme sinusoïdale ou harmonique
est appelé oscillateur harmonique (OH). Son énergie potentielle est donnée par
1
EOH = Kx2 (II.29)
2
Où k est la constante de raideur du ressort et x le déplacement de la masse par
rapport à sa position d’équilibre xo .
Lorsque un système physique évolue de façon périodique quelconque, des
termes supplémentaires sont ajoutés à l’énergie de l’OH. On parle dans ce cas
d’un oscillateur anharmonique dont l’énergie est donnée par :
1
EOA = Kx2 +Cx3 + Dx4 (II.30)
2
A un moment donné l’énergie de OA vaut Eo , on cherche la position xo
correspondante. Pour cela on doit résoudre l’équation :
Kx2 +Cx3 + Dx4 = Eo (II.31)
Résolution de f (x) = 0
% Programme mtd-bairstow.m
% C’est une fonction qui fait appel à une autre
fonction.
function[zeros]=bairstow(a,n,Delta)
% n: (le degré du polynôme) +1.
% a: vecteur ligne qui contient les coefs a_i du
poly.
% Delta: l’erreur sur le calcul de la racine
% zeros: vecteur de deux colonnes qui contient
les parties réelle et imaginaire des racines.
% Valeurs initiales
while n>3
s=1; p=1; err=1.e-10;
while Delta>err % test d’arret
%calculer bn et cn
b(1)=a(1); b(2)=a(2)-b(1)*s;
for k=3:n
b(k)=a(k)-b(k-1)*s-b(k-2)*p;
end;
c(1)=b(1); c(2)=b(2)-c(1)*s;
for k=3:n-1
c(k)=b(k)-c(k-1)*s-c(k-2)*p;
end;
%calculer delta s et delta p
N1=-b(n)*c(n-3)+b(n-1)*c(n-2);
N2=-c(n-1)*b(n-1)+c(n-2)*b(n);
D=-c(n-1)*c(n-3)+c(n-2)*c(n-2);
ds=N1/D;
dp=N2/D;
%calculer s et p
s=s+ds;
p=p+dp;
st=norm([ds dp]);
end;
Résolution de f (x) = 0
II.7.1 Applications
Nous donnons dans le programme solution_graphique.m suivant les
lignes de commandes qui ont permis de visualiser la solution approchée initiale
xo de l’équation II.5 dans l’intervalle [0 , 20] et ceci pour un choix donné des
paramètres α, β , γ et c.
% Programme solution_graphique.m
% Les constantes de l’équation(dans le système
SI)
m=300;g=10; ρ=12; h=-1000;
v0=(m*g)/ρ;tau=m/ρ; alpha=v0;gamma=1/tau;
beta=alpha/gamma;
x = 0:0.01:20;% définir l’intervalle d’etude
% Définir et tracer la fonction f
f = beta*[exp(-gamma*x)-1]+alpha*x + h;
plot(x,f,’Linewidth’,2) % épaisseur de trait=2
grid on;box on; % ajouter grille et cadre à la
figure
xlabel(’x’);ylabel(’f’); % nommer les axes
% les accolades {} veulent dire qu’on est en
% mode Latex, accepté par MATLAB .
% ajouter un titre de la fonction {f =\alpha x +
\beta %(e∧{-\ gamma x}-1)+ h.
title(’Determination graphique de la racine xo’);
on fait appel à la commande fzero qui nous retournera les racines trouvées.
Nous pouvons simplement le faire en lignes de commande dans le workspace.
» options = optimset(’Display’,’iter’);
» [x fval exitflag output]=fzero(@(x)fun(x,alpha
,beta,gamma,h),x0,options);
» ans =
15.610932237264159
Nous avons choisi ici de fixer le paramètre option pour afficher les itérations
ainsi que des informations sur le processus itératif utilisé, d’autres options
existent.
II.7.2 Limitations :
La commande fzero ne considère comme racine que les valeurs pour les-
quelles la fonction coupe l’axe des abscisses. Lorsqu’il s’agit d’une fonction
qui touche uniquement l’axe des abscisses, comme dans le cas de la fonction
f (x) = x.2 qui passe par le point (0, 0), sans changer de signe, alors ces racines
ne sont pas considérées comme tel. Dans ce cas, fzero exécute son algorithme
d’itération jusqu’à afficher Inf, NAN, ou une valeur complexe. La commande
f zero reste pratique mais à utiliser avec prudence, on est souvent amenés à
élaborer des programmes faisant appel aux différentes méthodes numériques.
Chapitre III
Interpolation et approximation
Polynômiales
Le polynôme Pn est défini si les coefficients (ai ) sont connus, ce qui revient à
résoudre le système suivant :
1 x0 ... xn0 a0 y0
1 x1 ... xn1 a1 y1
. .. .. . .. = .. .
1 ..
. . . .
1 xn ... xnn an yn
| {z }
Matrice de Vandermonde
(x − x1 ) (x − x0 )
P1 (x) = y0 L0 (x) + y1 L1 (x) = f (x0 ) + f (x1 ) (III.1)
(x0 − x1 ) (x1 − x0 )
De là, on peut par récurrence construire le polynôme qui passe par (n+1)
points : (xo , f (xo )), (x1 , f (x1 )), ..., (xn , f (xn )). Il est de degré n et s’écrit :
Avec :
n
Pn (x) = ∑k=0 Ln,k (x) × f (xk )
(III.3)
(x−xm ) (x−x0 )(x−x1 )...(x−xk−1 )(x−xk+1 )...(x−xn )
Ln,k (x) = ∏nm=0
(xk −xm ) = (xk −x0 )(xk −x1 )...(xk −xk−1 )(xk −xk+1 )...(xk −xn )
m,k
(x − 0.1)(x − 0.2)
L2,0 (x) = = 5.102 (10x2 − 3x + 0.1)
(0 − 0.1)(0 − 0.2)
(x − 0)(x − 0.2)
L2,1 (x) = = −102 (x2 − 0.2x)
(0.1 − 0)(0.1 − 0.2)
(x − 0)(x − 0.1)
L2,2 (x) = 5.102 (x2 − 0.1x)
(0.2 − 0)(0.2 − 0.1)
2. Le polynôme d’interpolation de Lagrange Pn (x) est :
P2 (x) = x2 + 0.9x + 1
f (n+1) (ξ ) n
En (x) = f (x) − Pn (x) = ∏ (x − xk ) (III.4)
(n + 1)! k=0
Notons que l’erreur aux noeuds d’interpolation est nulle En (xk ) = 0, puisque
la fonction et le polynôme se confondent pour x = xk (k = 0 : n).
Si les points sont régulièrement espacés d’un pas h : xk = x0 + k × h , on peut
écrire
Max| f (n+1) (x)|
x∈I
Max|En (x)| ≤ hn+1 (III.5)
x∈I 4(n + 1)
savons très bien qu’un polynôme de degré n possède n racines réelles ou com-
plexes. Si le nombre de racines réelles augmente (voir figure III.1) alors dans
un domaine précis la méthode de Lagrange donne un résultat complètement
aberrant (comparer l’écart entre le polynôme et la fonction au voisinage des
crêtes).
F IGURE III.1 – Tracé (trait plein) du polynôme P4 (x) = 2x4 − 13x3 + 28x2 + 6
possédant 4 racines dans le domaine [0, 4] et de la fonction f (x) = e(x/4) . Les
deux courbes sont proches uniquement dans le domaine [1, 2].
n
∑ Ln,k (x) × x j m = xm pour m = 0, 1, ..., n (III.6)
k=0
Corrigé :
1. Le polynôme d’interpolation de Lagrange de f (x) = xm est :
n
Pn (x) = ∑ Ln,k (x) × xkm
k=0
f (n+1) (ξ ) n
En = ∏ (x − xk ) = 0 car f (n+1)(x) = 0
(n + 1)! k=o
f (x2 )− f (x0 ) f (x1 )− f (x0 ) (x2 −x0 ) f (x2 )− f (x1 ) f (x1 )− f (x0 )
(x2 −x1 ) − (x1 −x0 ) (x2 −x1 ) (x2 −x1 ) + (x1 −x0 )
III.11 ⇒ a2 = =
(x2 − x0 ) (x2 − x0 )
f [x2 , x1 ] − f [x1 , x0 ]
=
(x2 − x0 )
= f [x0 , x1 , x2 ]
a
z }|0 {
xo f [x0 ] = f (x0 )
a
z }|1 {
f [x1 ] − f [x0 ]
f [xo , x1 ] =
(x1 − x0 )
a
z }|2 {
f [x1 , x2 ] − f [x0 , x1 ]
x1 f [x1 ] = f (x1 ) f [x0 , x1 , x2 ] =
(x2 − x0 )
a3
z }| {
f [x2 ]− f [x1 ] f [x1 , x2 , x3 ] − f [x0 , x1 , x2 ]
f [x1 , x2 ] = (x2 −x1 ) f [x0 , .., x3 ] =
(x3 − x0 )
f [x2 ,x3 ]− f [x1 ,x3 ]
x2 f [x2 ] = f (x2 ) f [x1 , x2 , x3 ] = (x3 −x1 )
f [x3 ]− f [x2 ]
f [x2 , x3 ] = (x3 −x2 )
x3 f [x3 ] = f (x3 )
Les coefficients de la formule de Newton sont donnés par les premiers éléments
de chaque colonne (diagonale principale). A partir de (III.8) on peut construire
le polynôme d’interpolation
n
Pn (x) = f [xo ] + ∑ f [xo , x1 , . . . xk ](x − xo )(x − x1 ) . . . (x − xk−1 ) (III.13)
k=1
Interpolation et approximation Polynômiales
Cette expression est dite formule de Newton des différences divisées. Son
avantage par rapport à la formule de Lagrange est que les différences divisées
sont invariantes par permutation des noeuds.
Avec les mêmes données (xi , f (xi )) et en inversant l’ordre des points nous
pouvons définir les Différences Divisées f [xn , xn−1 , . . . x0 ] qui seront données
par la deuxième diagonale de la table précédente. Le polynôme d’interpolation
de Newton sera alors exprimé par :
n
Pn (x) = f [xn ] + ∑ f [xn , xn−1 , . . . , xn−k ](x − xn )(x − xn−1 ) . . . (x − xn−k )
k=1
(III.14)
Pn (x) = Pn−1 (x) + f [xn , xn−1 , . . . x0 ](x − xn−1 )(x − xn−2 ) . . . (x − x0 ) (III.16)
xk −1/2 0 1/2 1
f (xk ) 45/8 7 59/8 9
Corrigé
1. Les différences divisées correspondent à :
Méthodes Numériques
−1/2 45/8
11/4
0 7 −2
3/4 3
1/2 59/8 5/2
13/4
1 9
−1/2 45/8
11/4
0 7 −2
3/4 3
1/2 59/8 5/2
13/4
1 9
La fonction MATLAB qui calcule les différences divisées d’une fonction f (x)
connue en n points (l’ordre des point n’est pas important) est donnée par le
programme suivant
Interpolation et approximation Polynômiales
function D=difdiv(X,Y)
% Cette fonction MATLAB pour calculer la table
des
% différences divisées d’une fonction f
% n: est le nombre de points
% X: vecteur des abscisses; vecteur colonne
% y: vecteur de coordonnées y=f(x)
n=length(X);
D=zeros(n,n);
D(1:n,1)=Y;
for k=2:n
for h=1:(n-k+1)
D(h,k)=(D(h+1,k-1)-D(h,k-1))/(X(h+k-1)-X(h));
end
end
D=difdiv(X’,Y’);
m=length(X);
Pr=zeros(m-1,1);% vecteur colonne de longueur
m-1.
Pr(1)=(x-X(1)); % initialisation du produit Pr
for s=2:m-1
Pr(s)=Pr(s-1)*(x-X(s));
end
% Calcul de la valeur du polynôme d’interpolation
Pn=0;
for h=1:m-1
Pn=Pn+D(1,h+1)*Pr(h);
end
Pn=D(1,1)+Pn
∆n f (x0 )
f [xo , x1 , . . . , xn ] = (III.21)
n!hn
Le polynôme d’interpolation de Newton s’écrit en un point x = xo + p × h où
p est un réel positif :
x − x0 (x − xo )(x − x1 ) 2
Pn (x) = f (x0 ) + ∆ f (x0 ) + ∆ f (x0 ) + . . .
1!h 2!h2
(x − xo )(x − x1 ) . . . (x − xn−1 ) n
+ ∆ f (x0 ) (III.22)
n!hn
p(p − 1) 2
Pn (x) = f (x0 ) + p∆ f (x0 ) + ∆ f (x0 ) + . . .
2!
p(p − 1)(p − 2) . . . (p − (n − 1)) n
+ ∆ f (x0 ) (III.23)
n!
Exemple : Construire la table des différences finies progressives de la fonction
définie par le tableau suivant :
k xk ∆o f ∆1 f ∆2 f ∆3 f ∆4 f
0 0.1 1.11
0.14
1 0.2 1.25 0.04
0.18 0
2 0.3 1.43 0.04 0.01
0.22 0.01
3 0.4 1.65 0.05
0.29
4 0.5 1.94
∇n f (xn )
f [xn , xn−1 , . . . , x0 ] = (III.24)
n!hn
x − xn (x − xn )(x − xn−1 ) 2
Pn (x) = f (xn ) + ∇ f (xn ) + ∇ f (xn ) + . . .
1!h 2!h2
(x − xn )(x − xn−1 ) . . . (x − x1 ) n
+ ∇ f (xn ) (III.25)
n!hn
p(p + 1) 2
Pn (x) = f (xn ) + p∇ f (xn ) + ∇ f (xn ) + . . .
2!
p(p + 1)(p + 2) . . . (p + (n − 1)) n
+ ∇ f (xn ) (III.26)
n!
Exemple : La table ci-dessous représente les termes consécutifs d’une série
Sn donnés par les valeurs :
n 3 4 5 6 7 8 9
Sn 4.8 8.4 14.5 23.6 36.2 52.8 73.9
k xk ∇o f ∇1 f ∇2 f ∇3 f ∇4 f ∇5 f ∇6 f
6 9 73.9
21.1
5 8 52.8 4.5
16.6 0.5
4 7 36.2 4 0
12.6 0.5 0
3 6 23.6 3.5 0 0
9.1 0.5 0
2 5 14.5 3 0
6.1 0.5
1 4 8.4 2.5
3.6
0 3 4.8
Ainsi :
∇o f (x6 ) = 73.9, ∇1 f (x6 ) = 21.1, ∇2 f (x6 ) = 4.5, ∇3 f (x6 ) = 0.5 et
∇4 f (x6 ) = 0,∇5 f (x6 ) = 0,∇6 f (x6 ) = 0.
En remarquant que : f [xk+n , xk+n−1 ] = f [xk+n−1 , xk+n ] et d’une manière
générale f [xn , xn−1 , . . . , x0 ] = f [x0 , x1 , . . . , xn ] on déduit que :
∇n f (xn ) ∆n f (x0 )
n!hn = n!hn . Ce qui offre la possibilité de calculer les différences finies
régressives à partir de la table des différences finies progressives :
k xk ∆o f ∆1 f ∆2 f ∆3 f ∆4 f ∆5 f ∆6 f
0 3 4.8
3.6
1 4 8.4 2.5
6.1 0.5
2 5 14.5 3 0
9.1 0.5 0
3 6 23.6 3.5 0 0
12.6 0.5 0
4 7 36.2 4 0
16.6 0.5
5 8 52.8 4.5
21.1
6 9 73.9
Interpolation et approximation Polynômiales
δ n+1 f (x (n+1) )
f [x−n+1 ,...,x1 ]− f [x−n ,...,x0 ] −n+ 2
• f [x−n , ..., x0 , x1 ] = (x1 −x−n ) = (n+1)!hn+1
f [x−n+1 ,xn ]− f [x−n ,...,xn−1 ] 2n
f (x0 ) ∆ f (x−n ) 2n
• f [x−n , x−n+1 , ..., x0 , ..., xn−1 xn ] = (xn −x−n ) = δ2n!h 2n = 2n!h2n
k xk ∆o f ∆1 f ∆2 f ∆3 f ∆4 f ∆5 f ∆6 f
-3 3 f (x−3 )
∆ f (x−3 ) = δ f (x −5 )
2
-2 4 f (x−2 ) ∆2 f (x−3 ) = δ 2 f (x−2 )
∆ f (x−2 ) = δ f (x −3 ) ∆3 f (x−3 ) = δ 3 f (x −3 )
2 2
-1 5 f (x−1 ) ∆2 f (x−2 ) = δ 2 f (x−1 ) ∆4 f (x−3 ) = δ 3 f (x−1 )
∆ f (x−1 ) = δ f (x −1 ) ∆3 f (x−2 ) = δ 3 f (x −1 ) .
2 2
0 6 f (x0 ) ∆2 f (x−1 ) = δ 2 f (x0 ) ∆4 f (x−2 ) = δ 4 f (x0 ) .
∆ f (x0 ) = δ f (x 1 ) ∆3 f (x−1 ) = δ 3 f (x 1 ) .
2 2
1+ 7 f (x1 ) ∆2 f (x0 ) = δ 2 f (x1 ) ∆4 f (x−1 ) = δ 3 f (x1 )
∆ f (x1 ) = δ f (x 3 ) ∆3 f (x0 ) = δ 3 f (x 3 )
2 2
2+ 8 f (x2 ) ∆2 f (x1 ) = δ 2 f (x2 )
∆ f (x2 ) = δ f (x 5 )
2
3+ 9 f (x3 )
D’après la table :
∆ f (x0 ) − ∆ f (x−1 ) = ∆2 f (x−1 ) ⇒ ∆ f (x0 ) = ∆ f (x−1 ) − ∆2 f (x−1 )
De même : ∆2 f (x0 ) = ∆2 f (x−1 ) − ∆3 f (x−1 )
et ∆3 f (x0 ) = ∆3 f (x−1 ) − ∆4 f (x−1 )
D’autre part :
∆3 f (x−1 ) − ∆3 f (x−2 ) = ∆4 f (x−2 ) ⇒ ∆3 f (x−1 ) = ∆3 f (x−2 ) − ∆4 f (x−2 )
De même : ∆4 f (x−1 ) = ∆4 f (x−2 ) + ∆5 f (x−2 )
et ∆3 f (x0 ) = ∆3 f (x−1 ) − ∆4 f (x−1 )
En remplaçant dans le polynôme d’interpolation de Newton, on obtient :
p(p + 1) 2
Pn (x) = f (x0 ) + p∆ f (x−1 ) + ∆ f (x−1 )
2!
(p + 1)p(p − 1) 3 (p + 2)(p + 1)p(p − 1) 4
+ ∆ f (x−2 ) + ∆ f (x−2 ) . . .
3! 3!
C’est la formule de Gauss régressive. En fonction des DFs centrées, elle
s’écrit :
(p + 1)p 2 (p + 1)p(p − 1) 3
Pn (x) = f (x0 ) + pδ f (x −1 ) + δ f (x0 ) + δ f (x −1 )
2 2! 3! 2
p(p − 1) 2 (p + 1)p(p − 1) 3
Pn (x) = f (x0 ) + pδ f (x 1 ) + δ f (x0 ) + δ f (x 1 )
2 2! 3! 2
x − x0
x = x0 + p × h ⇒ p =
h
x − x0 x − x0 + h x − (x0 − h) x − x−1
⇒ p+1 = +1 = = =
h h h h
x − x0 x − x0 − h x − (x0 + h) x − x1
⇒ p−1 = −1 = = =
h h h h
x − x0 x − x0 + 2h x − (x0 − 2h) x − x−2
⇒ p+2 = +2 = = =
h h h h
x − x0 x − x0 − 2h x − (x0 + 2h) x − x2
⇒ p−2 = −2 = = =
h h h h
on peut exprimer les deux formules de Gauss progressive et régressive en
fonction de x et des abscisses xk :
• Gauss progressive :
(x − x0 (x − x0 )(x − x1 ) 2
Pn (x) = f (x0 ) + )δ f (x −1 ) + δ f (x0 )
h 2 2h2 !
(x − x0 )(x − x1 )(x − x−1 ) 3
+ δ f (x −1 )
3!h3 2
• Gauss régressive :
(x − x0 ) (x − x0 )(x − x−1 ) 2
Pn (x) = f (x0 ) + δ f (x 1 ) + δ f (x0 )
h 2 2h2 !
(x − x0 )(x − x−1 )(x − x1 ) 3
+ δ f (x 1 )
3!h3 2
k xk ∆o f ∆1 f ∆2 f ∆3 f ∆4 f
-2 0.1 1.11
0.14
-1 0.2 1.25 0.04
δ f (x− 1 ) = 0.18 δ 3 f (x− 1 ) = 0
2 2
0 0.3 1.43 δ 2 f (x0 ) = 0.04 δ 4 f (x0 ) = 0.03
δ f (x 1 ) = 0.22 δ 3 f (x 1 ) = 0.03
2 2
+1 0.4 1.65 0.07
0.29
+2 0.5 1.94
p(p − 1) 2
Pn (x) = f (x0 ) + pδ f (x 1 ) + δ f (x0 )
2 2!
p(p − 1)(p + 1) 3 (p − 2)(p − 1)p(p + 1) 4
+ δ f (x 1 ) + δ f (x0 ) . . .
3! 2 4!
Les coefficients des DFs Centrées sont respectivement : 0.22, 0.04, 0.03, 0.03
A.N : Pn (0.35) = f (0.3) + 0.5 × 0.22 + 0.5×(0.5−1)
2 × 0.04 + 0.5(0.5−1)(0.5+1)
6 ×
0.5(0.5−1)(0.5+1)(0.5−2)
0.03 + 24 × 0.03 = 1.53
Par la formule de Gauss régressive :
(p + 1)p 2
Pn (x) = f (x0 ) + pδ f (x −1 ) + δ f (x0 )
2 2!
(p + 1)p(p − 1) 3 (p + 2)(p + 1)p(p − 1) 4
+ δ f (x −1 ) + δ f (x0 ) . . .
3! 2 4!
Les coefficients des DFs Centrées sont respectivement :0.18, 0.04, 0, 0.03 A.N :
Pn (0.35) = f (0.3) + 0.5 × 0.18 + 0.5×(0.5+1)
2 × 0.04 + 0.5(0.5+1)(0.5−1)
6 ×0+
0.5(0.5+1)(0.5−1)(0.5+2)
24 × 0.03 = 1.53
Interpolation et approximation Polynômiales
» A=inv(M)*T
A =
-1.0458
1.0595
Après minimisation
∂ E(a, b) b Z
= −2x[ f (x) − a − ax]dx = 0
∂a a
Z b
∂ E(a, b)
= −2[ f (x) − a − bx]dx = 0 (III.35)
∂b a
qui aboutit à :
1 1/2 a e−1
=
1/2 1/3 b 1
III.5.3 Généralisation
D’une manière plus générale, une fonction f , connue uniquement en n
valeurs discrètes, peut être approximée par un polynôme de degré m ≤ n dans
la base canonique 1, x, x2 , ..., xn de l’ensemble des polynômes à coefficients
réels Pn : Pm (x) = a0 + a1 x + a2 x2 + ... + am xm .
Pour un ensemble de points (xi , yi = f (xi ))i=1:n , le polynôme Pm (x) qui réalise
la meilleure approximation au sens des moindres carrés des valeurs yi aux
points xi est celle qui minimise la somme des carrés des écarts entre les
yi = f (xi ) et les yi = Pm (xi ) soit :
n
E(a0 , a1 , ..., am ) = ∑ [yk − a0 − a1xk − ... − amxkm]2 (III.37)
k=1
Intégration Numériques
x3
numérique de la fonction f (x) = ex −1 dans le domaine [a, b] ≡ [0, x].
L’idée de base est de :
1. discrétiser le domaine [a, b] en un nombre (n + 1) de points xk , k = 0 : n
avec x0 = a et xn = b.
2. Remplacer la fonction f par un polynôme d’ordre m (fonction plus
simple à intégrer) sur un sous intervalle Sk de [a, b] contenant (m +
1) points d’interpolation, m ≤ n
3. L’intégrale ∆Ik de la nouvelle fonction dans le keme sous intervalle consi-
déré constitue une valeur approchée de l’intégrale de f dans cet inter-
valle.
4. Appliquer les étapes précédentes sur tous les M sous intervalles Sk , k =
0 : M constituant [a, b]. La somme ∑M k=1 ∆Ik , k = 1 : M est une approxi-
mation de I.
L’étape 2 fait appel aux méthodes d’interpolation et d’approximation dé-
veloppées au chapitre précédent.
Le polynôme Pm (x) est en suite intégré pour donner une valeur approchée de
l’intégrale recherchée :
Z xk+m Z xk+m Z xk+m
∆Ii = f (x)dx ≈ Pm (x)dx ≈ (a0 + a1 x + ... + am xm )dx
xk xk xk
x
≈ [a0 x + a1 x2 + ... + am xm+1 ]xk+m
k
Réponse :
Il s’agit d’intégrer une fonction continue dont la primitive ne peut pas être
2
déterminée analytiquement. Calcul numérique de l’intégrale I(1) = 01 e−t dt :
R
a0 + a1 x0 + a2 x02 = f (x0 ) ⇒ a0 + a1 .0 + a2 .0 = 1
a0 + a1 x1 + a2 x12 = f (x1 ) ⇒ a0 + a1 (0.2) + a2 (0.2)2 = 0.96
a0 + a1 x2 + a2 x22 = f (x2 ) ⇒ a0 + a1 (0.4) + a2 (0.4)2 = 0.85
Pn (p) = fo + p∆ f + p(p−1) 2
2 ∆ f + ... +
p(p−1)...(p−n) n
n! ∆ f (IV.3)
Intégration Numériques
x =x0 ⇒p =0
Il s’en suit qu’en intégrant entre xk = x0 et xk+m = x, on a :
x=x ⇒p=p
Comme :dx=h
Z xk +mdp, alors : Z xk +m Z p
∆Ik (x) = f (x)dx ≈ Pn (x)dx ≈ h Pn (p)d p
xk xk 0
h h h
I = ( f (a) + f (x1 )) + ( f (x1 ) + f (x2 )) + . . . ( f (xk+1 ) + f (xk ))
2 2 2
h
+ . . . ( f (xn−1 ) + f (b))
2
( )
n−1
h
I= f (a) + f (b) + 2 ∑ f (xk ) (IV.4)
2 k=1
f(x)=exp(−x2) 0.8
0.8
0.7 f(x )
h k
0.6
0.7
f(x)
0.5
f(x)
0.6 0.4
0.3
0.5
0.2
0.1
0.4
0
xk
xk+1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −0.6 −0.5 −0.4 −0.3 −0.2 −0.1 0
x x
2
F IGURE IV.1 – Calcul de l’intégrale de la fonction f (x) = e−x par la méthode
des trapèzes (le domaine hachuré est de largeur h = xk+1 − xk ) .
Réponse :
• Pour h = 0.5, le nombre de sous intervalles de discrétisation est :
1
n = b−a
h = 0.5 = 2 auquel correspond un nombre de points n + 1 = 3. La
variante de Simpson a utiliser est donc : Simpson 1/3.
Pour un ensemble de (2n + 1) points, la formule Simpson 1/3 s’écrit :
" #
n−1 n−1
h
I1/3 = f (a) + 4 ∑ f (x2k+1 ) + 2 ∑ f (x2k ) + f (b)
3 k=0 k=1
h 0.5 h 1 1 1
i
I1/3 = [ f (x0 ) + 4 f (x1 ) + f (x2 )] = (1 − e ) + 4(1.5 − e ) + (2 − e )
1 1.5 2
3 3
= −0.526
" #
n−1 n−1 n−1
3h
I3/8 = f (a) + 3 ∑ f (x3k+1 ) + 3 ∑ f (x3k+2 ) + 2 ∑ f (x3k ) + f (b)
8 k=0 k=0 k=1
(IV.9)
Méthodes Numériques
Ici : 3n + 1 = 4 ⇒ n = 1
Z x2 Z x5
I= f (x)dx + f (x)dx ≈ I1/3 + I3/8
x0 x2
h
≈ ( f (x0 ) + 4 f (x1 ) + f (x2 ))
3
3h
+ ( f (x2 ) + 3 f (x3 ) + 3 f (x4 ) + f (x5 ))
8
Avec : x0 = 1, x1 = 1.2, x2 = 1.4, x3 = 1.6, x4 = 1.8, x5 = 2 ⇒ I ≈ −0.520
Z 1 n
I= F(t)dt = ∑ Ck F(tk ) (IV.11)
−1 k=1
Intégration Numériques
Z +1
1
I[F(t) = t] = t dt = t 2 |+1 = C1 × t1 +C2 × t2
−1 2 −1
Z +1
1
I[F(t) = t 2 ] = t 2 dt = t 3 |+1 = C1 × t12 +C2 × t22
−1 3 −1
Z +1
1
I[F(t) = t 3 ] = t 3 dt = t 4 |+1 3 3
−1 = C1 × t1 +C2 × t2
−1 4
La résolution de ce système aboutit à
1 1
C1 = C2 = 1 et t1 = − √ , t2 = √
3 3
1R
En conclusion, l’intégrale I = −1 f (t)dt , quelle que soit la fonction f (t), peut
n
être approchée par la somme ∑k=1 Ck f (tk ) dont les coefficients Ck et les points
xk sont bien connus.
Bien évidemment l’intégrale n’est exacte que si la fonction f (t) est un poly-
nôme de degré ≤ 2n − 1, pour une fonction quelconque une E erreur d’intégra-
tion est introduite.
Dans ce qui précède, nous avons établi la formule de quadrature de Gauss à
l’ordre 2, mais des tables donnant les poids Ck ainsi que les points de Gauss xk
existent à des ordres très supérieurs.
A présent on peut calculer l’intégrale de n’importe quelle fonction f (x) définie
sur l’intervalle [a, b]. Pour ce faire, on doit d’abord ramener l’intervalle [a, b]
à l’intervalle [−1, 1] moyennant le changement de variable x = mt + p tel que
ce qui donne
(b − a) (b + a)
m= et p=
2 2
Alors,
Rb Rb
I= a f (x)dx = m a f (mt + p)dt
(b−a) R +1 (b−a) (b+a)
= 2 −1 f ( 2 t + 2 )dt
(b−a) 2 (b−a) (b+a)
= 2 ∑ C
k=1 k f 2 k t + 2 (IV.12)
Intégration Numériques
R0 x
Exemple : Calculer .
−0.2 e dx
Z 0
x (0 + 0.2) (0 + 0.2) −1 (0 − 0.2)
e dx = 1 × exp √ + +
−0.2 2 2 3 2
(0 + 0.2) 1 (0 − 0.2)
1 × exp √ +
2 3 2
I = 0.1813
On note que I = Iexacte à quatre chiffres près après la virgule. La précision
peut être améliorée en réduisant les sous intervalles. Par ailleurs cette méthode
n’exige pas des points régulièrement espacés. Il est clair que la quadrature de
Gauss s’applique particulièrement à des fonctions qui présentent des singulari-
tés (comme 1/x au point x = 0), les coordonnées tk sont des constantes et ne
dépendant pas explicitement des singularités.
IV.4.1 Généralisation
Les quadratures de Gauss s’écrivent comme suit :
Z β n
I= w(x) f (t)dt = ∑ ck f (tk ) tk ∈ [α, β ] (IV.13)
α k=1
où w(x) est une fonction poids et les ck sont des coefficients tabulé. Les tk
dépendent de la forme de la fonction poids est des bornes d’intégration. Par
exemple pour le cas précédent 1, t, t 2 , t 3 , √
la fonction poids correspond à
w(x) = 1, α = −1 et β = 1, les tk=1,2 = ±1/ 3 ne sont autres que les racines
des polynômes de Legendre :
Lo (x) = 1, L1 (x) = 1
qu’on construit à l’aide de la relation de récurrence :
(n + 1)Ln+1 (x) = (2n + 1)xLn (x) − nLn−1 (x) (IV.14)
√
Ainsi, L2 (x) = (3x2 − 1)/2 on trouve bien que L2 (x) = 0, pour x1,2 = ±1/ 3.
Si on prend n points, l’erreur associée à cette méthode est :
2n+1 (n!)4
∆= f 2n (ξ ) (IV.15)
(2n + 1)((2n)!)3
ξ ∈ [−1, 1] étant une valeur qui majore la fonction f (x). Les quadratures les
plus communes sont :
Méthodes Numériques
— Gauss-Legendre :
Relation de récurrence :
— Gauss-Chebyshev :
p
w(x) = 1/ 1 − x2 , domaine : [−1, 1]
Relation de récurrence :
— Gauss-Hermite :
2
w(x) = e−x , domaine :] − ∞, +∞[
Relation de récurrence :
— Gauss-Laguerre :
Relation de récurrence :
Equations différentielles
ordinaires
dy(x)
y0 = x avec : y0 = (V.1)
dx
revient à intégrer les deux membres de l’équation, on aboutit alors à
x2
Z Z
dy(x) = xdx ⇒ y(x) = +C
2
2
Toutes les fonctions y(x) = x2 +C, C étant la constante d’intégration, sont des
solutions possibles de l’équation V.1.
Si de plus la solution dont nous cherchons à connaître l’évolution en fonction de
la variable x vaut y(x = 0) = yo (condition initiale), la constante d’intégration
Méthodes Numériques
V.1 Rappels
• Une équation différentielle d’ordre n de la variable y(x) admet une
solution unique si n conditions initiales sont données :
dy
y0 = = f (x, y), y(x = xo ) = yo (V.2)
dx
La résolution de l’Eq.(V.2) consiste à trouver, dans le domaine considéré,
la valeur de y pour tout x. Numériquement, cela revient à trouver des
valeurs approchées y∗ de y en des points xk , espacés d’un pas h (régulier
ou non), en utilisant un algorithme choisi.
• Considérons l’exemple de l’équation linéaire suivante :
d2y
= f (x, y, y0 )
dx2
On peut passer d’une équation de second ordre à un système de deux
équations du premier ordre en posant z = y0 , :
dy dz
= z⇒ dx = f (x, z, y)
dx
Méthodes Numériques
L’équation (V.5), est la relation itérative qui permet, en démarrant d’une valeur
initiale yo , de trouver (tabuler) une approximation de la solution y(x) en tout
point xk pour k = 0, 1, ..., n.
Il faut bien noter que yk+1 = 0.8333 a été obtenue en utilisant h = 0.5 (n = 2).
D’autre part, un pas h = 0.1 (10 itérations) donne y(2) = 0.709 qui est beau-
coup plus proche de la valeur exacte.
k 0 1 2 3 4 5 6 7 8 9 10
xk 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
yk 0 0.1 0.191 0.274 0.341 0.412 0.479 0.542 0.601 0.656 0.709
Le choix du pas joue un rôle déterminant pour la convergence et la précision de
la solution. Malheureusement, réduire le pas implique un nombre d’itérations
plus important, ce qui se traduit par un temps de calcul plus important et pas
forcement une meilleure précision a cause des arrondis (à chaque itération le
nombre de décimal est fini).
1 (2)
yk = yk+1 + y0k+1 (−∆x) + yk+1 (−∆x)2 + · · ·
2
Ce qui permet d’écrire à l’ordre 1 :
L’expression itérative (V.11) permet de trouver yk+1 qui dépend , non pas de
y0k , mais de y0k+1 = f (xk+1 , yk+1 ). On doit donc d’abord déterminer y0n+1 avant
de calculer les itérations. Cet algorithme, appelé algorithme d’Euler implicite,
permet d’accélérer la convergence.
Exemple : On se donne l’équation différentielle :
y0 + y = 0, y(xo = 0) = yo = 1
yk+1 = yk + h y0n+1
yk
= yk + h(−yk+1 ) ⇒ yk+1 =
1+h
k 0 1 2 3 4 5 6 7 8 9 10
xk 0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 10
yk 0.91 0.82 0.75 1.09 0.68 0.62 0.56 0.51 0.47 0.42 0.38
(V.15)
qui donne
h
yk+1 = yk + [ f (xk , y(xk )) + 4 f (xk+ 1 , y(xk+ 1 ) + f (xk+1 , y(xk+1 ))] (V.16)
6 2 2
Ici également la présence des termes yk+1 et yk+ 1 fait que la méthode est impli-
2
cite. Pour rendre le schéma explicite, il faut exprimer les termes 4 f (xk+ 1 , y(xk+ 1 ))
2 2
et f (xk+1 , y(xk+1 )) en fonction de yk , xk et h :
Méthodes Numériques
Finalement :
K1 = h f (xk , xk )
h f (xk + h2 , xk + K21 )
K2 =
yk+1 = yk + 16 [K1 + 2K2 + 2K3 + K4 ] Avec :
K = h f (xk + h2 , xk + K22 )
3
K4 = h f (xk + h, xk + K3 )
On veut calculer y(0.4) avec un pas égal à h = 0.2 par les méthodes de Runge-
Kutta R22 et R44 :
Réponse :
b−a 0.4−0
• Nombre de noeuds : n = h = 0.2 = 2 ⇒ n + 1 = 3 points.
• Le tableau de valeurs à remplir :
Equations différentielles ordinaires
k 0 1 2
xk 0 0.2 0.4
yk 1
K1 = f (xk , yk )
• R22 : yk+1 = yk + h( 12 K1 + 12 K2 ) Avec :
K2 = f (xk + h, yk + hk1 )
• k=0 :
K1 = f (x0 , y0 ) = 7
K2 = f (x0 + h, y0 + hK1 ) = f (0.2, 0.2x7 + 1) = f (0.2, 2.4) = 15.2
y1 = y0 + h( 12 K1 + 12 K2 ) = 3.22
• k=1 :
K1 = f (x1 , y1 ) = 20.12
K2 = f (x1 +h, y1 +hK1 ) = f (0.4, 0.2x20.12+3.22) = f (0.4, 7.24) =
44.04
y2 = y1 + h( 21 K1 + 12 K2 ) = 9.63
K1 = h f (xk , yk )
K2 = h f (xk + 2h , yk + K21 )
• R44 : yk+1 = yk + 61 [K1 + 2K2 + 2K3 + K4 ] Avec :
K = h f (xk + h2 , yk + K22 )
3
K4 = h f (xk + h, xk + K3 )
• k=0 :
K1 = h f (x0 , y0 ) = 1.4
K2 = h f (x0 + h2 , y0 + K21 )
K3 = h f (x0 + 2h , y0 + K22 )
K4 = h f (x0 + h, y0 + K3 )
y1 = y0 + 16 [K1 + 2K2 + 2K3 + K4 ]
• k=1 :
K1 = h f (x1 , y1 ) = 4.02
K2 = h f (x1 + 2h , y1 + K21 )
K3 = h f (x1 + 2h , y1 + K22 )
K4 = h f (x1 + h, y1 + K3 )
y2 = y1 + 16 [K1 + 2K2 + 2K3 + K4 ]