Méthodes Numériques CH01
Méthodes Numériques CH01
Méthodes Numériques CH01
1.1 Motivation
L’analyse numérique (numerical analysis en anglais) est une branche des mathématiques
appliquées s’intéressant au développement d’outils et de méthodes numériques pour le
calcul d’approximations de solutions de problèmes de mathématiques qu’il serait di¢ -
cile, voire impossible, d’obtenir par des moyens analytiques. Son objectif est notamment
d’introduire des procédures calculatoires détaillées susceptibles d’être mises en œuvre par
des calculateurs (électroniques, mécaniques ou humains) et d’analyser leurs caractéris-
tiques et leurs performances. Elle possède des liens étroits avec deux disciplines à la
croisée des mathématiques et de l’informatique. La première est l’analyse des algorithmes
(analysis of algorithmsen anglais), elle-même une branche de lathéorie de la complex-
ité (computational complexity theoryen anglais), qui fournit une mesure de l’e¢ cacité
d’une méthode en quanti…ant le nombre d’opérations élémentaires, ou parfois la quantité
de ressources informatiques (comme le temps de calcul, le besoin en mémoire...), qu’elle
requiert pour la résolution d’un problème donné. La seconde est le calcul scienti…que
(scienti…c computingen anglais), qui consiste en l’étude de l’implémentation de méthodes
1
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
Les nombres réels sont les éléments d’un corps archimédien complet totalement ordonné
noté R, constitué de nombres dits rationnels, comme 76 ou 34 , et de nombres dits irra-
p
tionnels, comme 2 ou . On peut les représenter grâce à un système de numération
positionnel relatif au choix d’une base (base ou encore radix en anglais) , 2 N, 2,
2
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
en utilisant que: 0 1
B i=p C
BX X
i=+1
C
x 2 R () x = B x i
+ x iC
B i i C;
@ i=0 i=1 A
| {z } | {z }
y z
où p 2 N et les coe¢ cients xi ,x i , prennent leurs valeurs dans l’ensemble f0; :::; 1g.
On écrit alors conventionnellement:
3
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
92 16
12 5 16
5 0
1 1
(2; 75)10 = 2 + + 2 4
= 1 21 + 0 20 + 1 2 1
+1 2 2
= (10; 11)2 :
(0; 375)10 = (0; 011)2 :
zi zi E ( zi )
0; 375 0; 375 0
0; 750 1; 5 1
0; 5 1 1
0
1
3 10
= (0; 333:::)10 = 0; 3 10
= (0; 010101:::)2 = 0; 01 2
:
zi zi E ( zi )
1 2
3 3
0
2 4
3 3
1
1 2
3 3
0
::: ::: :::
1
3 10
= (0; 333:::)10 = 0; 3 10
= (0; 252525:::)8 = 0; 25 8
:
zi zi E ( zi )
1 8
3 3
2
2 16
3 3
5
1 8
3 3
2
::: ::: :::
0; 0011 2
= (0; 2)10 :
3 4 7 8
0; 0011 2
= 2 +2 +2 +2 + :::
X
+1 X
+1
4i 4i+1 4i
= 2 +2 =3 2
i=1 i=1
3 X
+1 i
1 1
= = = (0; 2)10 :
16 i=0 16 5
4
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
Le dernier des exemples ci-dessus montre qu’à la représentation …nie d’un nombre réel
dans le système décimal peut parfaitement correspondre une représentation in…nie non
triviale dans le système binaire.
Soit 2 une base. tout réel x non nul peut s’écrire sous la forme:
X
+1
e i
x = x i
i=1
e
= m
e
= (0; x 1 :::x n :::) ; avec x 1 6= 0.
e s’appelle l’exposant et m la mantisse. Les chi¤res x 1 ; x 2 ; :::; x n ; ::: sont les chi¤res
signi…catifs de x en base .
Cette écriture est appelée représentation en virgule ‡ottante normalisée (VFN) du réel
x.
On écrira aussi en décalant la virgule d’une position vers la droite:
e 1
x= (x 1 ; x 2 :::x n :::) :
5
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
où 8
< 0; x 1 x 2 :::x t ; si x <5
t 1
m=
: 0; x 1 x 2 :::x t + 10 t ; si x t 1 5
Dans le deuxième cas, on renormalisera si nécessaire l’écriture de f l (x).
L’arrondi est en fait le nombre le plus proche de x dont la mantisse possède t chi¤res.
En troncature
x = (1976)10 ; b = 104
x (0; 197)10 ;
x = (1962)10 ; b = 104
x (0; 196)10 ;
6
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
e
x= (0; x 1 x 2 :::x n :::) :
où 8
< 0; x 1 x 2 :::x t ; si x <
t 1 2
m=
: 0; x 1 x 2 :::x t + t
; si x t 1 2
En troncature
7
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
Pour un réel x non nul donné, on considère son écriture en virgule ‡ottante normalisée
arrondie à 53 chi¤res
f l (x) = 2e (a0 ; a 1 a 2 :::a t )2 ;
avec a0 6= 0, t = 52.
La mantisse a son premier chi¤re a0 di¤érent de 0, donc nécessairement égal à 1 en
base 2 et il n’est pas nécessaire de le représenter en machine. C’est la convention du "bit
implicite". On ne mémorisera donc que la partie fractionnaire de la mantisse
f = a 1 a 2 :::a 52 :
eb = 1023 + e
compris entre 1 et 2046. (Les exposants biaisés 0 et 2047 sont utilisés pour représenter
des nombres dénormalisés, notamment 0 et inf ).
En…n le signe sera mémorisé à l’aide d’un bit s égal à 1 si le nombre x est négatif, égal
à 0 si x est positif.
Avec ces notations, le nombre x sera représenté sur 64 bits répartis ainsi:
s
|{z} e f
| {zb }| {z }
1 11 52
Dé…nition 1.2.1 On appelle valeur approchée d’un nombre réel x tout nombre réel x~
voisin de x, on écrit x~ ' x ou x~ x:
8
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
2
p
Exemple 1.2.5 3
' 0; 6666, ' 3; 14, 5 ' 2; 23, sont des approximations par défaut
mais e ' 2; 72 est une approximation par excès.
x = jx f l (x)j
110
Exemple 1.2.7 Soit x = 3
; la valeur arrondi à t = 5 chi¤res en base 10 de x est:
110
x= = 102 (0; 366666:::)10 :
3
Majoration des erreurs: Si la valeur exacte n’est pas connue donc les erreurs devien-
nent inconnues et pour les précisées on introduit la notion de majoration des erreurs.
Dé…nition 1.2.3 On appelle majoration de l’erreur absolue d’une va leur approchée x~,
tout réel positif x véri…ant: jx x~j x:
9
1.2. Arithmétique en virgule ‡ottante et erreurs d’arrondis
e
Il résulte bien-sûr de ces dé…nitions que l’on a alors x ' x e (1
x et x ' x x) :
Exemple 1.2.8 Dans l’exemple ci-dessus, on obtient une majoration de l’erreur, jx f l (x)j =
102 (0; 0000033:::)10 102 (0; 000004)10 = 102 4 10 6
=4 10 4 :
1 1
On obtient aussi une majoration de l’erreur relative en remarquant que: jxj
= 102 (0;366666:::)10 :
1
102 (0;3)10 :
= 102 31 10 1 ;
102 4 10 6
d’où jx jxjf l(x)j
102 4 10 1 = 4
3
10 5 :
e
Théorème 1.2.1 Soit le réel positif x = (0; x 1 x 2 :::x n :::)
1 t+1
jx f l (x)j 2
jxj 10 (en base = 10).
1 t+1
jx f l (x)j 2
jxj 2 (en base = 2).
jx f l (x)j 1 t+1
= "mach
jxj 2
Remarque 1.2.2 L’erreur relative due à l’approximation d’un nombre par sa représen-
tation binaire en machine est :
jx f l(x)j 1 53+1 53 16
jxj 2
2 =2 ' 1; 1 10 (au format double).
jx f l(x)j 1 24+1 24 8
jxj 2
2 =2 '6 10 (au format ‡oat).
On retiendra en particulier pour les calculs numériques avec Matlab, qui se font au
format double, que
53
"mach = 2 :
On pourra véri…er que ce nombre 2 "mach est égal à la constante eps de Matlab .
10
1.3. Conditionnement d’un problème et Stabilité des méthodes numériques
Propagation des erreurs par les opérations arithmétiques: Soit a et b deux réel
et a, b, a, b les erreurs absolues et relatives de a et de b respectivement.
Opération Erreur absolue Erreur relative
a+ b
a b a+ b ja bj
a b
a b jbj a + jaj b jaj
+ jbj
a jbj a+jaj b a b
b b2 jaj
+ jbj
F (d; x) = 0;
La première de ces conditions semble être la moindre des choses à exiger du problème
que l’on cherche à résoudre : il faut qu’il admette au moins une solution. La seconde
condition exclut de la dé…nition les problèmes possédant plusieurs, voire une in…nité de,
solutions, car une telle multiplicité cache une indétermination du modèle sur lequel est
basé le problème. La dernière condition, qui est la moins évidentea priori, est absolument
fondamentale dans la perspective de l’utilisation de méthodes numériques de résolution.
En e¤et, si de petites incertitudes sur les données peuvent conduire à de grandes variations
sur la solution, il sera quasiment impossible d’obtenir une approximation valable de cette
dernière par un calcul dans une arithmétique en précision …nie.
11
1.4. Les TP
1.4 Les TP
12
1.4. Les TP
qui applique le schéma de Horner pour convertir en base 10 l’entier dont la suite des
chi¤res en base est donnée dans le tableau x. Tester cette fonction.
13
1.4. Les TP
14
1.4. Les TP
qui calcule en base 2 les n premiers chi¤res de la partie fractionnaire f rac d’un réel donnée
en base 10 . On obtient le résultat sous forme d’une chaîne de caractères s. Tester cette
fonction.
15
1.4. Les TP
if X==1,s(i)=1;else s(i)=0;end
end
X
i=n
1 2 n i
s=s 1 2 +s 2 2 + ::: + s n 2 = s i 2
i=1
16
1.4. Les TP
else
disp(’mais on ne trouve pas exactement 1’)
end
Justi¢ er
S = 0; 1 + 0; 1 + ::: + 0; 1
| {z }
1000 termes
1. Le nombre décimal 0; 1 est converti et stocké en machine, avec une erreur relative
53
majorée par "machine = 2 . L’erreur absolue sur la somme de 1000 nombres égaux
à 0; 1 est donc estimée par
>> epsMachine=2^-53
epsMachine =1.1102e-016
>> DeltaS=1000^2*epsMachine*0.1
DeltaS = 1.1102e-011
17
1.4. Les TP
>> S=0;
>> errObserv=abs(100-S)
errObserv = 1.4069e-012
s1 = (x + y) + z et s2 = x + (y + z)
18