0% ont trouvé ce document utile (0 vote)
23 vues11 pages

Chapitre 0

Analyse numérique

Transféré par

gtjdpgsf7m
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues11 pages

Chapitre 0

Analyse numérique

Transféré par

gtjdpgsf7m
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Abdelmalek Essaâdi

École Nationale des Sciences


Appliquées-Tétouan

Département : Sciences Mathématiques et


Aide à la Décision (SMAD)

Années Préparatoires

Notes de cours :

Analyse numérique
Responsable :
P r. A. EL HAKOU M E

Année Universitaire : 2025/2026


2AP2

CHAPITRE 0.
INTRODUCTION À L’ANALYSE
D’ERREURS

1- Introduction.
Dans le titre de ce chapitre, le mot erreur n’est pas pris au sens faute (raisonnement
faux dans la méthode, instruction fausse dans le programme). Il ne concerne que des
erreurs inévitables.
On peut les classer en trois catégories :
- Les erreurs sur les données. Elles peuvent être dues à l’imprécision des mesures
physiques ou au fait que les données proviennent elles mêmes d’un calcul approché.
Elles sont imposées, en quelque sorte, de l’extérieur et nous ne pouvons agir sur elles.
Pourtant, la manière dont elles se propagent au cours des calculs est davantage du
ressort du calculateur. L’analyse de cette propagation sera évoquée au cours de ce
chapitre. Elle est liée aux notions de conditionnement et de stabilité.
- Les erreurs d’arrondi. Ce sont des erreurs dues au fait que la machine ne peut
représenter les nombres réels qu’avec un nombre fini de chiffres. A chaque opération
mathématique élémentaire, il pourra y avoir une perte de chiffres significatifs. Le cal-
culateur doit être vigilant quand le nombre d’opérations est très important.
- Les erreurs d’approximation ou de discrétisation. Ce sont des erreurs qu’on
commet, par exemple, lorsqu’on calcule une intégrale à l’aide d’une somme finie, une
dérivée à l’aide de différence finies ou bien la somme d’une série infinie à l’aide un
nombre fini de ses termes (erreur de troncature). Une situation qu’on rencontrera sou-
vent consiste à approcher une fonction par une combinaison linéaire finie de fonctions
élémentaires. Ce type d’erreurs est fortement lié à la méthode employée. Un des buts
de l’analyse numérique consiste à évaluer ces erreurs de discrétisation pour chaque
algorithme mis en place.
2 - Evaluation de l’erreur

Analyse numérique
Pour mesurer l’erreur entre la solution fournie par une méthode numérique et la
solution du problème qu’on cherche à résoudre (on parle aussi d’estimer la précision de
la méthode), on introduit les notions d’erreur absolue et relative.
Définition 1. Soit x
b une approximation d’un nombre réel x. On définit l’erreur absolue
entre ces deux scalaires par
|x − x
b|
qu’on note aussi par |∆x|.
Et on définie l’erreur relative par
|x − x b|
|xr |
qu’on note par Er (x) = |∆x| |xr |
, avec xr ̸= 0 est une valeur de référence pour x. En
général, on prend xr = x.
De ces deux erreurs, c’est souvent la seconde que l’on priviligie pour évaluer la précision
d’un résultat, en raison de son invariance par changement d’échelle : la mise à l’échelle
x 7→ αx et x b 7→ αb
x, α ̸= 0, laisse en effet l’erreur relative inchangée.
Exemple. Si x = 2.224 et x b = 2.223 alors, si on prend xr = x, l’erreur relative
|x − x b| |x − xb| 0, 001
Er = = = ≤ 4, 4965 × 10−4 .
|xr | |x| 2, 224

Cependant, si x est la valeur d’une fonction F (t) avec a ≤ t ≤ b, on choisira parfois


une valeur de référence globale pour toutes les valeurs de t.

Exemple. Si x = sin(t) avec 0 ≤ t ≤ π4 , on pourra prendre xr = 22 = sup sin(t).
0≤t≤ π4

L’erreur absolue donne une mesure quantitative de l’erreur commise et l’erreur relative
en mesure l’importance. Par exemple si, si on fait usage d’un chronomètre dont la
précision est de l’ordre de 0, 1 seconde, l’erreur absolue est bornée par 0,1 s. Mais
est-ce une erreur importante ? Dans le contexte d’un marathon de 2h 20 mn l’erreur
relative liée au chronomètre est très faible :
0, 1
≤ 0, 00001191
2 × 60 × 60 + 20 × 60
et ne devrait pas avoir de conséquence sur le classement des coureurs. Par contre s’il
s’agit d’une course de 100 m d’une durée d’environ 10 s, l’erreur relative est beaucoup
plus importante
0, 1
= 0, 01
10
soit 1% du temps de la course ! Précision insuffisante pour départager les coureurs.
Les opérations élémentaires propagent des erreurs. Dans la pratique, on considère que :
- L’erreur absolue sur une somme est la somme des erreurs absolues.

3
- L’erreur relative sur un produit ou un quotient est la somme des erreurs relatives.
3 - Arithmétique machine
Exemple. Calculer la valeur de (1.111.111.1)2
La valeur fournie par une petite calculatrice à dix chiffres est 1, 234567876 × 1014 .
Mais la réponse exacte est 123456787654321. La machine a donc tronqué le résultat à
10 chiffres et l’erreur absolue est 54321 et l’erreur relative est de 0, 000000044%. Cet
exemple montre qu’il faut établir clairement l’objectif visé.
Cet objectif est double :
1) Nous voulons un bon ordre de grandeur (ici 1014 ) et avoir le maximum de
décimales exactes,
2) Ce maximum ne peut excéder la longueur des mots permis par la machine et
dépend donc de la machine.
Représentation machine des nombres réels
Le système de représentation machine de nombres réels le plus utilisé en calcul
scientifique est celui de la représentation en virgule flottante normalisée. Cette notation
a été introduite pour garder une erreur relative à peu prés constante, quelque soit l’ordre
de grandeur du nombre qu’on manipule. En notation flottante, un nombre x ̸= 0 à la
forme suivante
p
x ≈ ± m × b = f l(x)
où b est la base de numération utilisé (entier supérieur où égal à 2)
m est la mantisse : s’écrivant 0, puis une suite de s entiers y1 y2 . . . ys avec y1 ̸= 0 et
0 ≤ yi ≤ b − 1, où le nombre des yi est au maximum de N nombres significatifs (imposé
par le choix de la taille des emplacements reservés au type réel)
p est l’exposant (un nombre entier relatif, lui aussi limité par la machine avec laquelle
on travaille)
Dire que la représentation est normalisée, c’est supposer que b−1 ≤ m < 1 et que le
premier chiffre de la matisse après la virgule est non nul.
2
Exemple. 12, 153 = 0, 12153 × 10 en base 10 ou en base 2 on a 1100, 001001 (ce n’est
pas exacte, c’est un arrondi)
Les puissances de 2 sont fréquement utilisées par les constructeurs d’ordinateurs. Cela
signifie par exemple que tous les calculs internes sont faits en base 2 et seul le résultat
affiché est traduit en base 10.
p
Remarque. Du fait que l’ensemble des réels s’écrivant sous la forme ± m × b est fini
et que R est infini, les erreurs d’arrondi sont inévitables.
1
Exemple. En base 10, x = 15 = 0, 0666666......
Dans le cas d’une représentation tronquée nous avons, pour s = 5 :

f l(x) = 0, 66666 × 10−1

4
Ici, nous avons modifié l’exposant afin de respecter la règle qui veut que le premier
chiffre de la mantisse ne soit pas nul. L’erreur absolue |x − f l(x)| est majoré par 0, 7 ×
10−6 et l’erreur relative est de l’ordre de 10−5 .
Dans une représentation tronquée à s chiffres, l’erreur relative maximale est de l’ordre
de 10−s .
Dans une représentation arrondie, lorsque la première décimale négligée est supérieure
ou égale à 5, on ajoute 1 à la dernière décimale conservée.
1
Dans ce cas pour, x = 15 = 0, 0666666....., on a

f l(x) = 0, 66667 × 10−1

L’erreur absolue est majorée par 0, 34 × 10−6 et l’erreur relative serait 5 × 10−6 .
Norme IEEE. L’institute for Electrical and Electronic Engineers (IEEE) a mis en
place l’une des représentations standard des nombres flottants les plus utilisées (norme
IEEE 754). Il a proposé une représentation arrondie des nombres réels en simple
précision sur 32 bits et en double précision sur 64 bits.
Pour la simple précision, c’est à dire pour celle sur 32 bits, chaque nombre se
décompose de la manière suivante : 24 bits pour la mantisse (dont 1 bit pour le signe)
et 8 bits pour l’exposant (dont 1 bit pour le signe). Le plus grand nombre que l’on
puisse représenter est xmax = 1, 7 × 1037 et le plus petit nombre positif que l’on puisse
représenter est 7, 0 × 10−46 .
Pour la double précision, c’est à dire pour celle sur 64 bits, chaque nombre se
décompose de la manière suivante : 53 bits pour la mantisse (dont 1 bit pour le signe)
et 11 bits pour l’exposant (dont 1 bit pour le signe). Le plus grand nombre que l’on
puisse représenter est xmax = 9 × 10307 et le plus petit nombre positif que l’on puisse
représenter est xmin = 2, 5 × 10−324 .
Erreurs d’arrondi. Considérons un x ∈ R∗ , tel que |x| se trouve entre les valeurs
p
positives minimale et maximale s’écrivant de la forme m×b avec N chiffres significatifs.
On a alors
p p−1
|x| ≥ 0.1 × b = b
et soit f l(x) la représentation arrondie de x, la différence |f l(x) − x|, l’erreur absolue,
p
vaut au plus la moitié de la distance entre deux éléments consécutifs de la forme m × b
avec N chiffres significatifs entourant x

1 p p 1 −N p
|f l(x) − x| ≤ 0, d1 . . . dN −1 dN × b − 0, d1 . . . dN −1 (dN + 1) × b = b b
2 2
et par suite, on a pour l’erreur relative :
−N p 1−N
|f l(x) − x| b b b
≤ p−1 =
|x| 2b 2

5
1−N
La quantité b 2 est appelée epsilon machine en utilisant l’arrondi et où b est la base
utilisée. Elle est notée εm . εm ≈ 6.0 × 10−8 dans le cas de la simple précision et
εm ≈ 1.1 × 10−16 dans le cas de la double précision.
Cette erreur est systématiquement présente dans tout calcul arithmétique sur nombre
réel effectué par un ordinateur. Elle fait que l’arithmétique numérique n’a pas la
précision de l’arithmétique mathématique et peut, si on n’y prend pas garde, conduire
à des résultats inexactes, voire abérrants.
Exemple. Si on choisit N = 4, on a alors

f l( 31 ) − 1
 
1 1 1 1 1
fl = 0, 3333×100 , f l( ) − ≤ 10−4+0 = 0, 5×10−4 et 1
3
≤ 10−3
3 3 3 2 3
2

1 |f l(π) − π| 1
f l (π) = 0, 3142 × 101 , |f l(π) − π| ≤ 10−4+1 = 0, 5 × 10−3 et ≤ 10−3
2 |π| 2
1
f l (12, 4551) = 0, 1246 × 102 , |f l(12, 4551) − 12, 4551| ≤ 10−4+2 = 0, 5 × 10−2
2

|f l(12, 4551) − 12, 4551| 1 −3


et ≤ 10
|12, 4551| 2

Arithmétique en virgule flottante.


Pour effectuer une opérations sur deux nombres réels, on effectue l’opération sur leurs
représentations flottantes et on prend ensuite la représentation flottante du résultat.
- L’addition flottante : x ⊕ y = f l (f l (x) + f l (y)).
- La soustraction flottante : x ⊖ y = f l (f l (x) − f l (y)).
- La multiplication flottante : x ⊗ y = f l (f l (x) × f l (y)) .
- La division flottante : x ⊘ y = f l (f l (x) /f l (y)) .
Chaque opération intermédiaire dans un calcul introduit une nouvelle erreur d’arrondi
ou de troncature. On verra que deux expressions algébriquement équivalentes peuvent
fournir des résultats différents et que l’ordre des opérations peut changer les résultats.
Pour l’addition et la soustraction, on peut effectuer ces deux opérations que si les
deux exposants sont les mêmes. On transforme le plus petit exposant et alors on ne
respecte plus la régle voulant que le premier chiffre de la mantisse ne soit pas nul. Il
est possible de constater une déviation importante par rapport aux régles habituelles
de l’arithmétique. Ainsi x + (y + z) peut être différent de (x + y) + z.
Exemple. Pour N = 4 chiffres significatifs, on a :

(1 + 0, 0005) + 0, 0005 = 1

6
Du fait que

0, 1 × 101 + 0, 5 × 10−3 = 0, 1 × 101 + 0, 0000. × 101 = 0, 1 × 101 = 1

et
1 + (0, 0005 + 0, 0005) = 1, 001.
Ainsi, l’addition flottante n’est pas associative. On remarquera que si y est très petit
par rapport à x, l’addition de x et y donnera x.
Remarque. Dans les calculs où interviennent des nombres de grandeur différents, il est
en général préférable d’effectuer les opérations en groupant ceux d’ordres de grandeur
similaires pour éviter les pertes de chiffres significatifs.
Propagation des erreurs. Les opérations élémentaires propagent des erreurs. La
propagation des erreurs est un des principaux problèmes en calcul numérique.
Dans le cas de l’addition, les erreurs absolues s’additionnent. Soit en effet |∆x1 | et
|∆x2 | les erreurs absolues sur x1 et x2 . On peut écrire

(x1 ± |∆x1 |) + (x2 ± |∆x2 |) = (x1 + x2 ) ± (|∆x1 | + |∆x2 |) .

En arithmétique flottante, l’erreur relative Er (x) est à peu près constante, qu’on peut
noter par u et alors les erreurs absolues peuvent être approximativement explicitées
par
|∆x1 | = |x1 | × u et |∆x2 | = |x2 | × u
Si les nombres en présence ont le même signe, l’erreur relative reste la même que
celle qu’avait x1 et x2

|∆x1 | + |∆x2 | (|x1 | + |x2 |) × u


= = u.
|x1 + x2 | |x1 + x2 |
Si par contre les nombres sont de signes différents, l’erreur relative peut être amplifiée
de façon spectaculaire si |x1 | ≈ |x2 |.
Dans le cas de la multiplication, les erreurs relatives s’additionnent. On a, en négligeant
certaoins termes
|(x1 + |∆x1 |) × (x2 + |∆x2 |) − x1 x2 | |x |1 ∆x2 | + x2 |∆x1 || |∆x1 | |∆x2 |
≈ = + ≤ 2u ≤ 2εm
|x1 x2 | |x1 x2 | |x1 | |x2 |

Des formules équivalentes peuvent donner des résultats différents, on peut améliorer le
résultat en utilisant une formule mathématique équivalente nécessitant des opérations
différentes.
√ √
Exemple. Si on considère les nombres 7001 et 7000. En arithmétique flottante

7
à 8 chiffres, on a
√  √ 
2
fl 7001 = 0, 83671979 × 10 et f l 7000 = 0, 83666003 × 102

Alors
√ √
7001 − 7000 ≈ f l (0, 83671979 − 0, 83666003) × 102 = 0, 59760000 × 10−2 .


On peut obtenir un résultat plus précis en utilisant l’identité suivante :


√ √ x−y
x− y=√ √
x+ y
On a alors
√ √ 1 1 −2
7001 − 7000 = √ √ ≈ 3 ≈ 0, 59759297 × 10 .
7001 + 7000 0, 16733798 × 10
Notions de conditionnement et de stabilité numérique.
Conditionnement. On dit qu’un problème est bien (ou mal) conditionné, si une petite
variation des données entraine une petite (une grande) variation sur les résultats. Le
conditionnement décrit la sensibilité de la sortie ou du résultat à une petite variation
de l’entrée. Cette notion de conditionnement est liée au problème mathématique lui
même et est indépendante de la méthode utilisée pour le résoudre.
Ainsi dans le cas d’une fonction d’une seule variable x ∈ R → y = f (x) ∈ R, le
conditionnement décrit la sensibilité de f au voisinage de x, c’est à dire mesurer la
variation de la sortie yb = y + ∆y (y = f (x)) en fonction de la perturbation ∆x
sur x (bx = x + ∆x). En supposant que f est suffisamment régulière, effectuons un
développement de Taylor au voisinage de x

yb − y = ∆y = f (x)∆x + o (∆x)
Si la perturbation ∆xest suffisamment petite, le reste est négligeable et alors

∆y ≃ f (x)∆x.
Dans le cas où on ne voudrait pas négliger le reste, le théorème des accroissements finis
nous donne dans une boule de centre x et de rayon ρ

|∆y| ≤ max f (t) |∆x| .
t∈B(x,ρ)

La dérivée de f en x est donc notre coefficient d’amplification pour l’erreur absolue.


Pour l’erreur relative, on obtient (on suppose que y ̸= 0 et x ̸= 0) dans le cas où le
reste est négligé

∆y xf (x) ∆x

y f (x) x

8
et dans le cas où le reste n’est pas négligé
 
∆y ′ x ∆x
≤ max f (t)
y t∈B(x,ρ) f (x) x

On vient de faire apparaı̂tre nos coefficients d’amplification que l’on appelle généralement
conditionnement de f au point x.
Définition. On appelle conditionnement au point x ̸= 0 d’une fonction f de classe C 1
au point x et telle que f (x) ̸= 0, la quantité

xf (x)
cond(f )x = .
f (x)

La quantité
′ x
cond(f )B(x,ρ) = max f (t)
t∈B(x,ρ) f (x)
est dite conditionnement de f dans le voisinage B(x, ρ) de x. On dira que le calcul de
y = f (x) est mal conditionné si cond(f )x est grand.

Exemple. f (x) = x fonction C +∞ sur R+∗ . On a pour tout x > 0,

xf (x) 1
= .
f (x) 2

On a ici un bon conditionnement, car l’erreur relative sur f sera au plus moitié d’une
erreur relative sur x.
Exemple. f (x) = a − x fonction C +∞ sur R. On a pour tout x ̸= 0 et x ̸= a

xf (x) x
=
f (x) a−x

Ici le conditionnement est très mauvais si x est voisin de a.


Stabilité numérique.
Une méthode est dite instable si elle est sujette à une propagation importante des
erreurs numériques de discrétisation et d’arrondi. Un problème peut être bien condi-
tionné alors que la méthode numérique choisie pour le résoudre est instable. Dans ce
cas, il est impératif de changer de méthode numérique. Par contre, si le problème de
départ est mal conditionné, aucune méthode numérique ne pourra y remédier. Il faudra
alors essayer de trouver une formulation mathématique différente du même problème,
si on sait que le problème physique sous-jacent est stable.
Soit un problème dont la solution (exacte) y est une fonction f des données x : y = f (x).
x et y peuvent être des scalaires, des vecteurs, des matrices, etc...En arithmétique finie

9
ou flottante, un algorithme ne peut fournir qu’une solution approchée yb (qui dépend
de cet algorithme !). La différence yb − y est appelée erreur directe.
Si cette erreur est petite (en norme), l’algorithme est dit stable.
Définition. (Stabilité directe) Soit f une fonction et fb une fonction approchée. Un
algorithme est dit stable si pour tout x

fb(x) − f (b
x)
= O(εm )
|f (b
x)|
avec
|b
x − x|
= O(εm )
|x|
Un problème est stable, si pour une donnée x
b pas très loin de x on obtient une solution
fb(x) pas très loin de f (b
x).
Définition. (Stabilité amont) Soit f une fonction et fb une fonction approchée. Un
algorithme est dit stable amont si pour tout x
|b
x − x|
fb(x) = f (b
x) avec = O(εm )
|x|
Un problème est stable amont, si pour une donnée x b pas très loin de x on obtient une
solution f (x) qui vaut exactement f (b
b x).
Exemple. Soient +, −, × et / les opérations arithmétiques basiques dans R notées
collectivement par (◦) et ⊕, ⊖, ⊗, ⊘ les opérations arithmétiques flottantes correspen-
dantes notées elles collectivement par (⊚). Les opérations ⊕, ⊖, ⊗, ⊘ sont stables amont
1) ∀x ∈ R, ∃ε avec |ε| ≤ εm tel que f l(x) = x (1 + ε).
2) Pour tout x, y nombres flottants, il existe ε avec |ε| ≤ εm tel que x⊚y = (x ◦ y) (1 + ε).
Exemple de la soustraction : f (x1 , x2 ) = x1 − x2 .
1) En utilisant le calcul en nombre flottant, on a

fb(x1 , x2 ) = f l(x1 ) ⊖ f l(x2 )

2) En utilisant la première propriété,

f l(x1 ) = x1 (1 + ε1 ) et f l(x2 ) = x2 (1 + ε2 )

3) En utilisant la seconde propriété,

f l(x1 ) ⊖ f l(x2 ) = (f l(x1 ) − f l(x2 )) (1 + ε3 )

4) En combinant l’ensemble de ces équations, on obtient

f l(x1 ) ⊖ f l(x2 ) = x1 (1 + ε4 ) − x2 (1 + ε5 ) = x
b1 − x
b2 .

10
On a bien
∥(b b2 ) − (x1 , x2 )∥
x1 , x
fb(x1 , x2 ) = f (b
x1 , x
b2 ) avec = O (ε) .
∥(x1 , x2 )∥

Exemple. √ √
f (x) = x+1− x
Le conditionnement de cette fonction au point x ̸= 0 est égal à :
′ r
xf (x) 1 x
cond (f )x = =
f (x) 2 x+1

cond(f )x est proche de 12 quand x est grand. Donc si x est grand, le conditionnement
de f est bon. Cependant, dans un calcul à 6 chiffres significatifs, on a
√ √
f (12345) = 12346 − 12345 ≃ 111, 113 − 111, 108 = 0, 5 × 10−2 .

Or, un calcul précis donne f (12345) ≃ 0, 4500033 × 10−2 . On a donc une erreur de
10% ce qui est important et peu en accord avec le bon conditionnement de f . Ceci est
dû à l’algorithme utilisé :
√ √
x0 = 12345, x1 = x0 + 1, x2 = x1 , x3 = x0 , x4 = x2 − x3 .

Dans cet algotithme, la fonction x3 7→ x2 − x3 (x2 est supposé fixe), a un mauvais


conditionnement pour x3 voisin de x2 , bien que f a un bon conditionnement pour x
grand.
En conclusion, le choix d’un bon algorithme numérique est essentiel. Dans notre cas
ici, un meilleur algorithme est obtenu en utilisant :
√ √ 1
f (x) = x+1− x= √ √
x+1+ x

Dans ce cas, toujours avec 6 chiffres significatifs :


1 1
f (12345) = √ √ ≃ ≃ 0, 450002 × 10−2 .
12346 + 12345 222, 221

ce qui donne une erreur relative de 3 × 10−4 %.

11

Vous aimerez peut-être aussi