0% ont trouvé ce document utile (0 vote)
58 vues28 pages

Cours de Calcul Numérique

Cours numérique

Transféré par

kouakouyaochirac
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)
58 vues28 pages

Cours de Calcul Numérique

Cours numérique

Transféré par

kouakouyaochirac
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

COURS DE CALCUL NUMERIQUE

UTA- Licence 1: RIT- IGL


Table des matières

NOTATIONS 3

1 Bases du calcul numérique 5


1.1 Introduction au calcul numérique et à l’approximation des fonctions . . . 5
1.2 Introduction à l’évaluation des erreurs numériques . . . . . . . . . . . . . 18
1.3 Représentation des nombres en virgule flottante . . . . . . . . . . . . . . 18
1.4 Erreurs d’arrondi et de troncature . . . . . . . . . . . . . . . . . . . . . . 18

2 Méthodes d’interpolation 39
2.1 Interpolation polynomiale . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2 Interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3 Interpolation de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4 Applications et utilisation de l’interpolation dans le calcul numérique . . 39
2.4.1 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3 Méthodes d’intégration numérique 60


3.1 . Méthodes des rectangles . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.2 Méthodes des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3 Méthodes de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4 Méthodes d’intégration numérique adaptative . . . . . . . . . . . . . . . 60
3.4.1 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4 Méthodes de résolution d’équations non linéaires 75


4.1 Méthode de dichotomie . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2 Méthode de point fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.3 Méthode de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . 75
4.4 Méthodes itératives de résolution d’équations non linéaires . . . . . . . . 75
4.4.1 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

5 Résolution numérique des systèmes linéaires 93


5.1 Méthode de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

1
TABLE DES MATIÈRES

5.2 Méthode de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . 93


5.3 Factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.4 Méthodes itératives de résolution de systèmes linéaires . . . . . . . . . . 93
5.4.1 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

6 TP Calcul formel et numérique 137

BIBLIOGRAPHIE 187

2 UP Maths
Notations

Notation Définition
N Ensemble des entiers naturels
Z Ensemble des entiers relatifs
R Ensemble des nombres réels
[] : La partie entière.
Card(Ω) : Le cardinal : nombre d’éléments de l’ensemble Ω.
:= Est défini comme étant (symbole d’affectation).
Pn
i=1 :La somme pour i variant de 1 à n.
V.S : La variable statistique
M e La médiane.
M e+ Me par valeur supérieure.
M e− Me par valeur inférieure.
M0 Le mode.
x̄ La moyenne d’une série statistique X.
σX L’écart-type de X.
V ar(X) La variance de X. Cov(X, Y ) La covariance entre les variables X et Y .
σXY Le coefficient de corrélation entre les variables X et Y .
Fx La fonction s’appelle la fonction de répartition du caractère X
Im Image d’une application
ker Noyau d’une application linéaire
|.| Valeur absolue
∥.∥X Application norme sur l’ensemble X
⊕ La somme directe
P
Symbole de sommation
Q
Symbole du produit
◦ La composition des applications
∩ L’intersection
∪ L’union
̸= La non égalitïé
⊂ L’inclusion

3
Notations

∈ Appartenance

/ non Appartenance
∀ Symbole universel "pour tout"
∃ Symbole universel "il existe"
u(k) Dérivée d’ordre k de u définie sur une partie de R
a|b a divise b
E(x) = [x] partie enti‘ere de x
PGCD plus grand commun diviseur
a∧b P GCD(a, b)
PPCM plus petit commun multiple
a∨b P P CM (a, b)
a ≡ b[N ] a est congru à b modulo N
an ...a0 b écriture en base b
n! factorielle de n : n! = 1 × 2 × ... × n
Cnk coefficient binomial : Cnk = k!(n−k)!
n!

Objectifs du cours
Comprendre les principes et les techniques du calcul numérique utilisés en informa-
tique, - Acquérir des compétences en approximation, en interpolation, en intégration nu-
mérique, en résolution d’équations non linéaires, ainsi qu’en résolution de systèmes li-
néaires. - Savoir choisir et appliquer les méthodes numériques appropriées pour résoudre
des problèmes mathématiques et d’ingénierie concrets en informatique. - Apprendre à
évaluer et à contrôler les erreurs numériques dans les calculs. - Développer des compé-
tences en programmation et en utilisation de logiciels spécialisés pour le calcul numé-
rique. - Préparer les étudiants à des cours plus avancés en mathématiques et en infor-
matique, en renforçant leur capacité à résoudre des problèmes concrets en utilisant des
techniques de calcul numérique..
1
2
3

4 UP Maths
Chapitre 1

Bases du calcul numérique

1.1 Introduction au calcul numérique et à l’approxima-


tion des fonctions

5
Chapitre 1

Introduction au calcul
numérique

Ce chapitre se propose d’introduire les concepts de base du calcul numérique.


D’abord, nous proposons une définition formelle du calcul numérique basée sur
la définition de Trefethen [7] :
Le calcul numérique est une discipline qui traite de la définition, l’analyse et
l’implémentation d’algorithmes pour la résolution numérique des problèmes mathé-
matiques continus qui proviennent de la modélisation des phénomènes réels.
Cette définition s’appuie sur plusieurs notions, comme celle de modèle, de pro-
blème et d’algorithme, que nous allons introduire dans la suite.

1.1 Du modèle au problème mathématique


Nous entendons par modèle d’un phénomène physique l’expression dans un lan-
gage formel de tout ce que l’on connaît sur ce phénomène. La relation entre la
réalité, le modèle et la personne qui utilise le modèle est à la base de la notion de
modélisation.
Toutes les sciences (mathématiques, humaines et appliquées) sont caractérisées
par une activité de définition, analyse et utilisation de modèles. A titre d’exemple,
citons les modèles utilisés en physique, économie, finance, médecine, sociologie et
toutes les sciences de l’ingénieur.
En termes généraux, l’utilisation d’un modèle pour la résolution d’un problème
pratique passe à travers la résolution d’un problème mathématique (Figure 1.1).
Le modèles mathématiques continus prennent typiquement la forme d’un ensemble

construction du modèle
PROBLEME APPLICATIF PROBLEME MATHEMATIQUE

interpretation
SOLUTION DU PROBLEME SOLUTION MATHEMATIQUE

Figure 1.1 – Du problème réel à la solution via le problème mathématique

3
6
4 CHAPITRE 1. INTRODUCTION AU CALCUL NUMÉRIQUE

d’équations (algébriques ou différentielles) et/ou inéquations avec paramètres (connus


et/ou inconnus). Le problème mathématique qui en découle peut être de nature qua-
litative ou quantitative. Plus précisément, nous entendons par
Problème qualitatif, un problème qui concerne le comportement des solutions,
par exemple leur stabilité ou leur comportement asymptotique.
Problème quantitatif, le problème qui demande la calcul d’une solution (fonction
ou variable).
Le cours traitera exclusivement des problèmes quantitatifs.
En particulier, nous définissons un problème mathématique quantitatif comme
suit :

Définition 1 (Problème mathématique). Un problème mathématique est une rela-


tion fonctionnelle F entre un ensemble de données d et une solution x.

On peut distinguer entre deux formes de problème :


Forme explicite :
x = F (d) (1.1)

Forme implicite :
F (x, d) = 0 (1.2)

Selon la nature du problème, la solution x et les données d peuvent être représentées


par des matrices, des nombres réels ou des fonctions. Voici quelques exemples de
problèmes mathématiques :

1. Trouver la racine carrée de d : x = d. Ceci est un problème sous forme
explicite.
2. Résoudre l’équation différentielle

ϕ′′ (t) = −ω 2 sin(ϕ(t)) ϕ(0) = ϕ0 , ϕ′ (0) = 0 (1.3)

qui décrit le mouvement d’un pendule où ϕ est le déplacement angulaire,


ω 2 = g/l, et g est l’accélération de la gravité. Ceci est un problème sous forme
implicite.
3. Trouver la plus grande racine x de l’équation algébrique

ax2 + bx + c = 0 (1.4)

où les données sont représentées par le vecteur d = [a, b, c]. Ceci est un pro-
blème sous forme implicite.
4. Trouver la solution x = [x1, x2, x3] du système


2x1 + 4x2 − 6x3 = −4
x1 + 5x2 + 3x3 = 10 (1.5)


x1 + 3x2 + 2x3 = 5

où les données sont représentées par la matrice


 
2 4 −6 −4

d= 1 5 3 10 
1 3 2 5

7
1.1. DU MODÈLE AU PROBLÈME MATHÉMATIQUE 5

d=0.09 d=0 d=−0.07


1 1 1

0.8 0.8 0.8

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2

0 0 0

−0.2 −0.2 −0.2

−0.4 −0.4 −0.4

−0.6 −0.6 −0.6

−0.8 −0.8 −0.8

−1 −1 −1
−1 −0.5 0 0.5 1 1.5 2 −1 −0.5 0 0.5 1 1.5 2 −1 −0.5 0 0.5 1 1.5 2

Figure 1.2 – Le polynôme p(z, d) pour trois valeurs de d prés de zéro (d =


−0.07, 0, 0.09).

1.1.1 Problèmes bien/mal posés


La notion de problème bien/mal posé a été introduite pour la première fois par
Hadamard [3]. Afin de faciliter la présentation dans l’analyse qui suit, nous nous
limiterons à considérer le cas des problèmes explicites.

Définition 2 (Problème bien posé). Le problème mathématique x = F (d) est bien


posé si la solution x
– existe,
– est unique,
– dépend continûment des données d.
Autrement le problème est dit mal posé.

Nous utiliserons indifféremment les termes bien posé et stable et nous ne consi-
dérerons dans la suite que des problèmes bien posés.

1.1.1.1 Exemples de problèmes mal posés


Un cas simple de problème mal posé est x = (d > 0.5) où d est un nombre réel
et x ∈ {0, 1}. Ceci résulte du fait que la fonction F (d) = (d > 0.5) est discontinue
pour d = 0.5
Un autre exemple de problème mal posé est le suivant : Trouver le nombre x de
racines réelles d’un polynôme. Considérons le polynôme

p(z, d) = d + z − 2z 2 + z 3

Le nombre de racines réelles x varie de façon discontinue pour d autour du zéro


(Figure 1.2)

x = 1 si d > 0
x = 2 si d = 0
x = 3 si d < 0

On retrouve des exemples de problèmes mal posés aussi dans le cas de problèmes
inverses, qui consistent à trouver d étant donné x. Considérons un problème direct
où deux valeurs différentes de d produisent le même x (Figure 1.3) : le problème
inverse d = F −1 (x) est par conséquent mal posé. Des exemples de problèmes inverses
mal posés sont les suivants :
– trouver la position d’un obstacle à partir de l’information radar ;
– trouver une information sur une scène 3D à partir d’une image 2D (par
exemple dans le procédé de la tomographie) ;

8
6 CHAPITRE 1. INTRODUCTION AU CALCUL NUMÉRIQUE

d x

Figure 1.3 – Problème inverse d = F −1 (x) mal posé

– trouver sur une barre métallique la valeur de la température en sachant la


température en une autre position ;
– trouver la solution d’équations différentielles partielles.

1.1.2 Conditionnement d’un problème


Le conditionnement d’un problème de la forme (1.1) mesure la sensibilité de la
solution x du problème aux changements des données d.

Définition 3 (Conditionnement Relatif). Soient δd une perturbation admissible


des données et δx la modification induite sur la solution du problème x = F (d). On
appelle conditionnement relatif de ce problème la quantité

kδxk/kxk
κ(d) = sup (1.6)
δd∈D kδdk/kdk

où sup dénote la borne supérieure et D est un voisinage de l’origine.


Si F (·) est différentiable en d et si nous notons par F ′ (d) ≈ δx δd sa dérivée, on
obtient
kδxk kdk kdk kdk
κ(d) ≈ = kF ′ (d)k = kF ′ (d)k (1.7)
kδdk kxk kxk kF (d)k
où le symbole k · k désigne la norme matricielle (Section A.11).

Quand d = 0 ou x = 0, il est nécessaire d’introduire le conditionnement absolu,


défini par
kδxk
κabs (d) = sup (1.8)
δd∈D kδdk

Un problème peut avoir un petit conditionnement κ(d) pour certaines valeurs de


d et un grand conditionnement pour d’autres valeurs. Si κ(d) est grand pour toute
donnée admissible d, le problème est dit mal conditionné.
En outre, il est important de remarquer que
– un problème mal posé est forcément aussi un problème mal conditionné, mais
que mal conditionné ne signifie pas forcement mal posé ;

9
1.2. LA RÉSOLUTION D’UN PROBLÈME MATHÉMATIQUE 7

– le fait d’être bien conditionné est une propriété du problème qui est indépen-
dante de la méthode choisie pour le résoudre.

Exemples de conditionnement
– Considérons le problème x = F (d) = d − 1. En vertu de la formule (1.7), le
conditionnement relatif du problème est

kdk kdk
κ(d) ≈ kF ′ (d)k =
kF (d)k kd − 1k

Il en résulte que κ(d) > 100 pour 0.999 < d < 1.001. Donc, le problème est
mal conditionné pour les valeurs de d autour de 1.
– Considérons le problème x = F (d) = d1000 . Alors

kdk kdk
κ(d) ≈ kF ′ (d)k = 1000kd999k 1000 = 1000
kF (d)k kd k

Le problème est mal conditionné pour toute valeur de d.

1.1.2.1 Le conditionnement d’un problème composé


Considérons un problème décrit par la fonction composée

x = F (d) = F2 (F1 (d)) (1.9)

où F (·), F1 (·) et F2 (·) sont dérivables.


Calculons son conditionnement
F ′ (d)d
κ(d) = . (1.10)
F (d)

On peut réécrire (1.9) comme

x1 = F1 (d), x = F2 (x1 ) (1.11)


F1′ (d)d F2′ (x1 )x1
κ1 (d) = , κ2 (d) = . (1.12)
F1 (d) F2 (x1 )
Des formules (1.11) et (1.12) il vient que

F1′ (d)d F2′ (x1 )x1 F1′ (d)F2′ (x1 )d


κ1 (d)κ2 (d) = = = κ(d). (1.13)
F1 (d) F2 (x1 ) F2 (x1 )

Ceci montre que le conditionnement d’un modèle composé est égal au produit des
conditionnements des modèles composants.

1.2 La résolution d’un problème mathématique


Les propriétés présentées jusqu’ici dépendent de la forme du problème mathéma-
tique et sont indépendantes de la méthode de résolution adoptée. Par la suite, nous
allons nous pencher sur les méthodes de résolution d’un problème mathématique
quantitatif.
Deux approches peuvent être envisagées :

10
8 CHAPITRE 1. INTRODUCTION AU CALCUL NUMÉRIQUE

Résolution symbolique : ceci utilise les propriétés analytiques et mathématiques


du problème pour en dériver la solution x. Par exemple dans le problème
élémentaire de la recherche des racines d’une équation du second ordre

d1 x2 + d2 x + d3 = 0, (1.14)

où d = [d1 , d2 , d3 ], la solution analytique est


p
−d2 ± d22 − 4d1 d3
x= .
2d1
Aussi, dans le cas de l’équation différentielle ordinaire du premier ordre

x′ = −x, x(0) = 1, (1.15)

la solution analytique est x(t) = e−t .


Malheureusement une solution analytique n’est pas calculable pour tous le
problèmes. Par exemple dans le problème d’intégration numérique suivant
Z πp
1 + cos2 (x)dx (1.16)
0

aucune solution analytique n’est disponible.


Résolution numérique : ceci utilise une méthode numérique pour déterminer la
solution x pour une valeur d donnée. Par exemple, dans le problème (1.14),
pour d = [0.1, 1.2, 0.3] une méthode numérique de résolution donne la solution
x = −11.74. Dans le problème (1.15), une méthode numérique fournit comme
solution une série de valeurs x(ti ).
Une méthode numérique présente des bénéfices aussi bien que des inconvénients
par rapport à une solution analytique. Les avantages tiennent (i) au fait qu’une
solution numérique peut être obtenue aussi lorsqu’aucune solution analytique n’est
disponible et (ii) au fait que la décomposition d’une méthode numérique en une
longue série d’opérations arithmétiques élémentaires s’avère être facilement gérable
par un ordinateur. A son détriment, il faut mentionner que l’analyse et l’étude d’une
solution numérique sont typiquement plus coûteuses.

1.3 Algorithmes et problèmes numériques


Avant de présenter une notion formelle, nous jugeons utile d’ introduire d’abord
une notion intuitive d’algorithme.

1.3.1 Définition qualitative d’algorithme


Définition 4. Un algorithme est un texte fini qui spécifie l’exécution d’une série
finie d’opérations élémentaires, conçue pour résoudre des problèmes d’une classe ou
d’un type particulier.
Les propriétés d’un algorithme sont :
– un algorithme décrit la résolution d’un problème en utilisant un niveau d’abs-
traction qui dépend du type et du nombre d’opérations élémentaires ;
– un algorithme est destiné à résoudre une classe de problèmes et pas simplement
une instance isolée d’un problème ;
– un algorithme est exécuté par un processeur. Le processeur peut être un être
humain, une mécanique ou plus généralement un ordinateur ;
– l’exécution d’un algorithme procède par étapes ;

11
1.3. ALGORITHMES ET PROBLÈMES NUMÉRIQUES 9

Ordre Classe de complexité exemple de C(p)


O(1) constante c ∈ R+
O(log p) logarithmique c log p
O(p) linéaire c1 p + c0
O(p2 ) quadratique c2 p 2 + c1 p + c0
O(p3 ) cubique c3 p 3 + c2 p 2 + . . .
.. .. ..
. . .
O(pm ), m ∈ N polynomiale cm pm + cm−1 pm−1 + . . .
O(cp ) exponentielle cdp +polynôme(p)
O(p!) factorielle cp!

Table 1.1 – Classes de complexité

– un algorithme peut être décomposé en plusieurs sous-algorithmes ;


– la description d’un algorithme est nécessairement de longueur finie ;
– on dit qu’un algorithme se termine s’il s’achève après un nombre fini d’étapes
et s’il renvoie un résultat à chaque exécution ;
– un algorithme est dit déterministe si à chaque moment de l’exécution, la pro-
chaine étape est déterminée de façon unique. Si plusieurs alternatives existent,
l’algorithme est dit non-déterministe. Un algorithme non-déterministe est dit
stochastique si la probabilité des différentes alternatives est décrite par une
distribution de probabilité.
Pour une introduction plus complète et rigoureuse de la notion d’algorithme nous
renvoyons le lecteur aux cours d’algorithmique et programmation.

1.3.2 Complexité d’un algorithme


Plusieurs mesures peuvent être adoptées pour caractériser la complexité d’un
algorithme : le nombre d’étapes, le temps d’exécution, l’occupation de la mémoire
ou des mesures dépendantes de l’architecture du processeur.
Toutefois, dans certains cas l’utilisateur de l’algorithme est intéressé à avoir une
idée qualitative du comportement de l’algorithme plutôt que le nombre exact d’opé-
rations. Pour ce faire, la notion d’ordre de complexité (ou complexité asymptotique)
à été introduite.

Définition 5 (Ordre de complexité). Si la complexité d’un algorithme dépend d’un


paramètre p (représentant la taille du problème), la complexité C(p) d’un algorithme
est dite d’ordre f (p) s’il existe deux constantes a et b telles que

C(p) ≤ bf (p) pour tout p ≥ a. (1.17)

Ceci est indiqué par la notation conventionnelle

C(p) = O(f (p)). (1.18)

Les algorithmes peuvent être répartis en classes de complexité. Les classes de


complexité les plus importantes sont mentionnées à la Table 1.1.
Les éléments à la Table 1.1 suivent un ordre de complexité asymptotique crois-
sante : par exemple, un algorithme ayant une complexité cubique, pour un grand
p, demande un effort de calcul plus important qu’un algorithme de complexité lo-
garithmique.
En général, si deux algorithmes ont la même complexité asymptotique, ils de-
mandent le même effort de calcul pour une grande taille du problème.

12
10 CHAPITRE 1. INTRODUCTION AU CALCUL NUMÉRIQUE

Exemple Nous verrons dans la suite que l’algorithme de Gauss pour la réso-
lution d’un système linéaire d’ordre n demande un total de 2n3 /3 + 3n2 /2 − 7n/6
opérations élémentaires. Par conséquent, nous pouvons dire que cet algorithme a
une complexité cubique, ou d’ordre 3.

1.3.2.1 Complexité d’un problème


Notons que même si nous pouvons définir la complexité d’un algorithme, la
notion de complexité d’un problème reste floue, car plusieurs algorithmes de com-
plexité différente peuvent être utilisés pour résoudre le même problème.
En général, nous définissons la complexité d’un problème comme étant la com-
plexité de l’algorithme qui a la complexité la plus petite parmi ceux qui résolvent
le problème.

1.3.3 Algorithmes numériques


Cette section traitera les algorithmes numériques et leurs propriétés théoriques.
Définition 6 (Algorithme numérique). Étant donné un problème bien posé F (x, d) = 0,
nous définissons l’algorithme numérique pour la résolution du problème F par la
suite de problèmes approchés

F1 (x(1) , d(1) ), F2 (x(2) , d(2) ), . . . , Fn (x(n) , d(n) ) (1.19)

dépendant d’un paramètre n, où x(n) est la solution du sous-problème Fn .


L’idée sous-jacente à la décomposition en sous-problèmes est que la résolution
des Fn est plus simple que la résolution de F . Ceci rend possible l’exécution d’un
algorithme par une machine.
Différents algorithmes peuvent résoudre le même problème numérique. Il est
alors nécessaire de choisir l’algorithme qui présente les meilleurs propriétés numé-
riques et de complexité.
Les propriétés souhaitées d’un algorithme numérique sont
– la consistance,
– la stabilité,
– la convergence
Voyons ces propriétés en détail.

1.3.4 Consistance
Définition 7. Un algorithme Fn (x(n) , d(n) ) est dit consistant si

lim Fn (x, d(n) ) = F (x, d) = 0,


n→∞

c.-à-d., si la solution exacte x du problème est une solution de Fn (x(n) , d(n) ) = 0


pour n → ∞.
En d’autres termes, un algorithme est consistant si à partir d’une certaine étape
le sous-problème approché Fn a la solution x parmi ses solutions.
Définition 8. Un algorithme Fn (x(n) , d(n) ) est dit fortement consistant si

Fn (x, d(n) ) = 0

pour tout n.

13
1.3. ALGORITHMES ET PROBLÈMES NUMÉRIQUES 11

Exemple Considérons le problème mathématique F (x, d) = 0 qui correspond


à la résolution d’un système linéaire d’ordre 3 :


2x1 + 4x2 − 6x3 = −4
x1 + 5x2 + 3x3 = 10 (1.20)


x1 + 3x2 + 2x3 = 5

Les données sont représentées par


 
2 4 −6 −4
d= 1 5 3 10 
1 3 2 5

et la solution est x = [−3, 2, 1].


Considérons un algorithme de résolution numérique en 2 étapes où la première
étape est représentée par


2x1 + 4x2 − 6x3 = −4
((1)) (1)
F1 (x , d ) = 0 ⇔ 3x2 + 6x3 = 12


x2 + 5x3 = 7

où  
2 4 −6 −4
d1 =  0 3 6 12 
0 1 5 7

Soit x(1) = x = [−3, 2, 1] la solution de la première étape. Notons que, dans cet
exemple, nous avons utilisé la notion x((n)) afin de ne pas confondre la solution
(vecteur) de la nème étape de l’algorithme et le nème composant (scalaire) de la
solution x du problème.
Soit la deuxième étape représentée par


2x1 + 4x2 − 6x3 = −4
(2) (2)
F2 (x , d ) = 0 ⇔ 3x2 + 6x3 = 12


3x3 = 3

avec  
2 4 −6 −4
d(2) = 0 3 6 12 
0 0 3 3

et x(2) = x = [−3, 2, 1] sa solution.


Pour toute valeur de n (n = 1, 2), Fn (x, d(n) ) = 0. Donc cet algorithme est
fortement consistant.

1.3.5 Stabilité d’un algorithme


Soit x(n) la suite des solutions approchées produite par l’algorithme pour les
données d(n) et x̄(n) = x(n) + δx(n) la suite des solutions approchées produite par
l’algorithme suite aux perturbations des données {δd(i) }, i = 1, . . . , n.

Définition 9 (Stabilité). Un algorithme numérique est dit stable (ou bien posé) si
1. il existe pour tout n une solution unique x(n)

14
12 CHAPITRE 1. INTRODUCTION AU CALCUL NUMÉRIQUE

Stable algorithm: delta d=0.01


0.014

0.012

0.01

0.008

Delta x
0.006

0.004

0.002

0
0 20 40 60 80 100
Number of iterations

Figure 1.4 – Algorithme stable : perturbation de la solution numérique x(n) vs.


nombre d’itérations pour une perturbation δd(n) = 1e − 2 de la donnée d. Fichier
MATLAB s_stable2.m

2. il existe un η > 0 et un ǫ > 0 tel que

kδd(i) k ≤ η ⇒ kx̄(n) − x(n) k ≤ ǫ

En d’autres termes, un algorithme est stable si des petites perturbations des


données du sous-problème Fn entraînent des petites perturbations de sa solution
x(n) .
Définition 10 (Conditionnement asymptotique relatif). Nous appelons condition-
nement asymptotique relatif de la méthode numérique la quantité

κnum (d(n) ) = lim sup κn (d(n) ), (1.21)


k→∞ n≥k


kδx(n) k/kx(n) k
κn (d(n) ) = sup . (1.22)
δd(n) ∈Dn kδd(n) k/kd(n)k
L’algorithme numérique est dit bien conditionné si κnum est petit pour toutes
données d(n) et mal conditionné sinon.

Exemple Considérons le problème mathématique

2x = 1

et les deux algorithmes itératives suivants


1.
1 1
x(n) = d(n) x(n−1) + , d(n) =
4 2
2.
1
x(n) = d(n) x(n−1) − , d(n) = 2
2
Tous les deux sont consistants mais uniquement le premier algorithme est stable.
Dans le premier cas uniquement, un petit changement δd(n) des données entraîne
un changement borné de la solution x(n) pour tous n (Figure 1.4).

15
1.4. EXERCICES 13

24 Unstable algorithm: delta d=1e−005


x 10
4

3.5

2.5

Delta x
2

1.5

0.5

0
0 20 40 60 80 100
Number of iterations

Figure 1.5 – Algorithme instable : perturbation de la solution numérique x(n) vs.


nombre d’itérations pour une perturbation δd(n) = 1e − 5 de la donnée d. (Script
MATLAB s_unstable2.m).

1.3.6 Convergence d’un algorithme


Soit x̄(n) = x(n) + δx(n) la suite des solutions approchées produite par l’algo-
rithme suite aux perturbations des données {δd(i) }, i = 1, . . . , n.
Définition 11 (Convergence). Un algorithme est convergent si

lim x̄(n) = lim x(n) + δx(n) = x


n→∞,δd(i) →0 n→∞,δd(i) →0

ou, en d’autres termes, si pour chaque ǫ > 0 il existe η > 0 et un n0 tels que pour
tous n > n0
kδd(i) k ≤ η ⇒ kx̄(n) − xk ≤ ǫ
Les concepts de stabilité et convergence sont fortement liés dans le cas d’algo-
rithmes consistants. Les méthodes numériques que nous allons considérer dans ce
livre satisfont les conditions du théorème de Lax-Richtmyer (ou théorème d’équiva-
lence) selon lequel pour un algorithme numérique consistant, la stabilité est équiva-
lente à la convergence.

Remarque Les notions présentées jusqu’ici peuvent paraître au lecteur comme


purement théoriques et sans lien évident avec les problèmes pratiques. Le chapitre
prochain illustrera pourquoi une analyse théorique est nécessaire et comment les pro-
priétés énoncées ici justifient le comportement, parfois inattendu, des algorithmes
numériques.

1.4 Exercices
1. Montrer que l’évaluation de F (d) = cos(d) est bien conditionnée près de d = 0.
2. Que peut on dire du conditionnement de la fonction F (d) = d−1 pour 0.999 <
d < 1.001 ? Est-il grand ou petit ?
3. Calculer le conditionnement κ(d) des expressions suivantes :
– x − ad = 0, a > 0 ;

16
14 CHAPITRE 1. INTRODUCTION AU CALCUL NUMÉRIQUE

– d − x + 1 = 0.
p
4. Etudier le conditionnement de la formule x± = −p± p2 + q donnant la solu-
tion d’une équation du second degré x2 +2px−q par rapport aux perturbations
des paramètres p et q séparément.
Rappel : (f m )′ = mf m−1 f ′
5. Que peut-on dire du conditionnement de la fonction F (d) = (d − 1)2 pour d
proche de 1 ?

17
Bases du calcul numérique

1.2 Introduction à l’évaluation des erreurs numériques

1.3 Représentation des nombres en virgule flottante

1.4 Erreurs d’arrondi et de troncature

18 UP Maths
Chapitre 2

Analyse d’erreurs

Chaque analyse numérique doit se confronter avec une certaine dose d’erreurs.
Dans ce chapitre nous répondrons aux questions suivantes
– Qu’est-ce qu’une erreur ?
– D’où viennent les erreurs ?
– Quelles conséquences ont-elles ?
– Comment analyser leurs effets ?

2.1 Erreurs absolue et relative


Un nombre approché x̂ est un nombre légèrement différent du nombre exact x
et qui dans le calcul remplace ce dernier. Si l’on sait que x̂ < x, x̂ est dit valeur
approchée du nombre x par défaut ; si x̂ > x, x̂ est une valeur approchée par excès.

Exemple Soit x = 2. Le nombre x̂ = 1.41 est une valeur approchée par
défaut, alors que le nombre x̂ = 1.42 est une valeur approchée par excès.

Si x̂ est une valeur approchée de x on note x̂ ≈ x.

Définition 12 (Erreur absolue). On appelle erreur absolue δx d’un nombre appro-


ché x̂ la valeur absolue de la différence entre le nombre exact x correspondant et le
nombre approché donné
δx = |x̂ − x|. (2.1)

Définition 13 (Écart relatif). L’écart relatif d’un nombre approché x̂ est le rapport

x̂ − x
ρx = . (2.2)
x
Cette relation peut aussi être écrite sous la forme

x̂ = x(1 + ρx ). (2.3)

Définition 14 (Erreur relative). L’erreur relative εx d’un nombre approché x̂ est


la valeur absolue de l’écart relatif, c.-à-d. le rapport de l’erreur absolue δx de ce
nombre et du module du nombre exact correspondant (si x 6= 0)

x̂ − x δx
εx = |ρx | = = (2.4)
x |x|

15
19
16 CHAPITRE 2. ANALYSE D’ERREURS

L’erreur relative fournit une information plus pertinente sur la grandeur réelle
de l’erreur. Cependant, elle n’est définie que pour x 6= 0.

Définition 15 (Borne supérieure relative.). La borne supérieure d’erreur relative


u d’un nombre approché x̂ donné est un nombre quelconque supérieur ou égal à
l’erreur relative de ce nombre
εx = |ρx | ≤ u (2.5)

2.2 Sources d’erreurs


Les erreurs commises dans les problèmes mathématiques peuvent être en principe
classées en cinq catégories :
Erreurs de modélisation : ces erreurs sont dues à la façon même dont est posé
le problème. Puisque les modèles mathématiques sont plus ou moins idéalisés,
ceci donne lieu à plusieurs erreurs. Un exemple est l’erreur du modèle (1.3)
du pendule qui ne tient pas en considération la force de friction.
Erreurs de mesure : ces erreurs sont dues à la présence dans le modèle mathéma-
tique de paramètres numériques dont les valeurs ne peuvent être déterminées
qu’approximativement suite à des mesures expérimentales. Telles sont toutes
les constantes physiques.
Erreurs d’approximation ou de troncature : ces sont les erreurs associées aux
processus infinis en analyse mathématique (par exemple les séries numériques [2]).
Un processus infini ne se terminant pas en général en un nombre fini de pas
1 1 1
e=1+ + + + ...
1! 2! 3!
on est obligé d’y mettre fin à un certain terme de la suite en le considérant
comme une approximation de la solution cherchée.
Un autre exemple d’erreurs de troncature sont les erreurs dues à la discréti-
sation de processus continus, comme dans les séries temporelles continues.
Erreurs d’arrondi : ce sont les erreurs associées au système de numération. Elles
sont dues au fait qu’un ordinateur ne peut prendre en considération qu’un
nombre fini de chiffres. Notons que même des nombres rationnels notés dans
le système décimal peuvent comporter à droite de la virgule une infinité de
chiffres (un nombre décimal périodique, par exemple). L’erreur d’arrondi sera
le sujet principal du reste du chapitre.
Erreurs de propagation et génération : ces sont les erreurs qui apparaissent
dans le résultat d’une opération comme conséquence des erreurs des opérandes.
Ces erreurs tiennent au fait qu’en effectuant des calculs sur des nombres ap-
prochés, les erreurs des données de départ sont propagées sur le résultat.
Les deux premiers types d’erreur sont regroupés sous le nom d’ erreurs de modé-
lisation tandis que les trois derniers sont appelés erreurs numériques.
Dans ce qui suit nous allons étudier en détail les erreurs numériques.

2.3 Représentation des nombres en machine


Un ordinateur ne peut représenter qu’un sous-ensemble fini de l’ensemble des
nombres réels. Par conséquent, toute opération d’un ordinateur est entachée par des
erreurs d’arrondi.
Les notations machine les plus adoptées pour représenter les nombres réels sur
un ordinateur sont la notation à virgule fixe et la notation à virgule flottante.

20
2.3. REPRÉSENTATION DES NOMBRES EN MACHINE 17

2.3.1 Notation à virgule fixe


Soit x un nombre réel non nul. Sa représentation en virgule fixe est

{[xn xn−1 . . . x1 x0 ,x−1 x−2 . . . x−m ], b, s} (2.6)


– b ∈ N, b ≥ 2 est appelée la base,
– s ∈ {0, 1} est appelé le signe,
– xi ∈ N, 0 ≤ xi < b, i = −m, . . . , n sont les symboles,
– m désigne le nombre de chiffres après la virgule,
– n + 1 est le nombre de chiffres avant la virgule,
et la valeur x ∈ R codée par la notation (2.6) est
n
!
X
x = (−1)s xk bk . (2.7)
k=−m

Il s’ensuit que pour s = 0, x est un nombre positif, alors que pour s = 1, x est un
nombre négatif.

Exemples
Soient b = 10, n = 3, m = 6, s = 0. Alors
– l’écriture à virgule fixe [0030, 421000] désigne le réel

x = 3 · 101 + 0 · 100 + 4 · 10−1 + 2 · 10−2 + 1 · 10−3 = 30.421

– l’écriture [0000, 043700] désigne le réel x = 0.0437.


Soient b = 16, n = 3, m = 6, s = 0. Alors
– l’écriture [0030, 421000] désigne le réel

3 · 161 + 0 · 160 + 4 · 16−1 + 2 · 16−2 + 1 · 16−3 = 48.258

– l’écriture [0000, 043700] désigne le réel x = 0.0165.

Il est important de remarquer la différence qui existe entre symboles et nombres.


Par exemple en utilisant la notation à virgule fixe (formule (2.6)) l’écriture [111, 101]
correspond au nombre 111.101 si et seulement si b = 10, alors que elle correspond
au nombre 7.625 pour b = 2 et au nombre 13.3704 pour b = 3.
Une autre particularité concerne le nombre de chiffres significatifs nécessaire
pour représenter un nombre x. Par exemple, le nombre réel x = 0.1 a une repré-
sentation finie en base b = 10 tandis qu’il demande un nombre infini de chiffres
significatifs pour la base b = 2.
Bien que, d’un point de vue théorique, toutes les bases soient équivalentes, les
ordinateurs emploient souvent trois bases :
– b = 10 : ceci est la base du système décimal. Les 10 symboles sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Cette base est normalement utilisée pour l’affichage des résultats.
– b = 2 : ceci est la base du système binaire. Les symboles sont 0, 1 (bits).
Cette base est habituellement utilisée pour stocker les nombres et effectuer les
calculs.
– b = 16 : ceci est la base du système hexadécimal. Les 16 symboles sont

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Cette base permet une représentation compacte des nombres binaires.

21
18 CHAPITRE 2. ANALYSE D’ERREURS

Les propriétés de la notation en virgule fixe peuvent être résumées ainsi :


– Les nombres en virgule fixe sont équirépartis le long de la droite réelle.
– L’écart entre deux nombres consécutifs réels qui peuvent être représentés en
notation à virgule fixe est égal à b−m .
– L’utilisation de la virgule fixe limite considérablement les valeurs maximales
et minimales des nombres représentés par l’ordinateur.
– La chaîne de caractères nécessaire à la représentation d’un même nombre est
autant plus longue que la base est petite.

2.3.2 Notation à virgule flottante


Étant donné un nombre réel non nul x, sa représentation à virgule flottante est

{[a1 a2 . . . at ], e, b, s} (2.8)


– b ∈ N, b ≥ 2 est appelée la base,
– e ∈ Z , L ≤ e ≤ U est appelé l’exposant,
– s ∈ {0, 1} est appelé le signe,
– t est le nombre de chiffres significatifs,
– ai ∈ N, 0 < a1 < b, 0 ≤ ai < b, i = 2, . . . , t
– la quantité
t
X
m = m(x) = ai bt−i (2.9)
i=1

est appelée mantisse.


Nous ne considérons que le cas normalisé, c.-à-d.

a1 > 0 (2.10)

qui implique la relation suivante

bt−1 ≤ m ≤ bt − 1 (2.11)

La notation (2.8) est utilisée pour encoder le nombre réel

t
X
x = (−1)s be ai b−i = (−1)s mbe−t (2.12)
i=1

Exemples
– La notation à virgule flottante {[3, 4], e = 1, b = 10, s = 0} désigne le réel

x = 101 (3 · 10−1 + 4 · 10−2 ) = 3.4

– La notation {[3, 4], e = −1, b = 10, s = 1} désigne le réel x = −0.034


– La notation {[3, 4], e = −1, b = 16, s = 1} désigne le réel

x = (−1)1 16−1 (3 · 16−1 + 4 · 16−2 ) = −0.0127

22
2.3. REPRÉSENTATION DES NOMBRES EN MACHINE 19

[a1 ] e x
1 -1 0.01
2 -1 0.02
3 -1 0.03
... -1 ...
9 -1 0.09
1 0 0.1
2 0 0.2
... 0 ...
9 0 0.9
1 1 1
2 1 2
3 1 3
... 1 ...
9 1 9

Table 2.1 – Ensemble des nombres réels positifs x ∈ F(10, 1, −1, 1)

2.3.3 Répartition des nombres à virgule flottante


Notons par F(b, t, L, U ) l’ensemble des nombres réels qui sont représentés par
une notation à virgule flottante en base b, comportant t chiffres significatifs et dont
l’exposant varie dans l’intervalle [L, U ]. L’ensemble F ne contient pas le zéro si la
représentation est normalisée.
Il est évident que l’ensemble des nombres à virgule flottante est un sous-ensemble
fini de R
F(b, t, L, U ) ⊂ R
Une relation intéressante est la suivante

x ∈ F(b, t, L, U ) ⇔ b(L−1) ≤ |x| ≤ bU (1 − b−t ) (2.13)

On peut montrer que

card(F) = 2(b − 1)bt−1 (U − L + 1)

où card(E) dénote le cardinal d’un ensemble E.


A la différence des nombres à virgule fixe, les nombres réels qui appartienent à
l’ensemble F ne sont pas équirépartis le long de la droite réelle. Donc, il est important
d’évaluer l’écart entre deux nombres consécutifs.

Exemple Considérons un système de représentation à virgule flottante où la


base b = 10, les bornes de l’exposant sont L = −1 et U = 1, le signe s = 0 et le
nombre de chiffres significatifs est t = 1. L’ensemble de nombres réels qui peuvent
être représentés par ce système est indiqué dans la Table 2.1. On trouve que 27
nombres réels positifs sont représentés par cette notation. Au total card(F) = 54.

Exemple Nous représentons l’ensemble des x ∈ F pour b = 10, t = 1, L = −1,


U = 1 dans la Figure (2.1).

23
20 CHAPITRE 2. ANALYSE D’ERREURS

b=10 t=1 L=−1 U=1


1

0.8

0.6

0.4

0.2

−0.2

−0.4

−0.6

−0.8

−1
−10 −8 −6 −4 −2 0 2 4 6 8 10

Figure 2.1 – Ensemble des nombres réels x ∈ F(10, 1, −1, 1). Script MATLAB
s_floset.m

Nous définissons la distance relative entre 2 nombres consécutifs xi ∈ F et xi+1 ∈


F par
(xi+1 − xi )
η(xi ) = .
xi
Cette distance peut être dérivée en fonction des paramètres du système de no-
tation
xi+1 − xi be−t 1
η(xi ) = = e−t
= , (2.14)
xi m(xi )b m(xi )
où m(xi ) est la mantisse du nombre réel xi (formule (2.9)).
Puisque
1
bt ≥ m ≥ bt−1 ⇒ b−t ≤ ≤ b1−t , (2.15)
m
on obtient
1 xi+1 − xi
ǫ≤ ≤ ǫ, (2.16)
b xi
où ǫ = b1−t est dit l’epsilon machine

Exemple Prenons le cas où b = 10, L = −1,U = 1, s = 0 et t = 1. L’ensemble


des nombres qui appartiennent à F(10, 1, −1, 1) et les distances relatives associées
sont indiquées dans la Table (2.2).

Phénomène du wobbling Considérons l’ensemble F(10, 1, −1, 1). Si nous


traçons les distances relatives η(xi ) en fonction des réels xi ∈ F, nous avons le
graphique de la Figure 2.2. Notons que, conformément à la formule (2.15) les bornes
inférieure et supérieure sont respectivement b−t = 0.1 et b1−t = 1.

24
2.4. REPRÉSENTATION MACHINE DES NOMBRES RÉELS 21

[a1 ] = m(xi ) e xi η(xi ) = (xi+1 − xi )/xi


1 -1 0.01 (0.02-0.01)/0.01=1
2 -1 0.02 (0.03-0.02)/0.02=1/2
... -1 ... ...
8 -1 0.08 (0.09-0.08)/0.08=1/8
9 -1 0.09 (0.1-0.09)/0.09=1/9
1 0 0.1 (0.2-0.1)/0.1=1
... 0 ... ...
8 0 0.8 (0.9-0.8)/0.8=1/8
9 0 0.9 (1-0.9)/0.9=1/9
1 1 1 (2-1)/1=1
2 1 2 (3-2)/2=1/2
... 1 ... ...
8 1 8 (9-8)/8=1/8
9 1 9

Table 2.2 – Ensemble de nombres x ∈ F(10, 1, −1, 1) et distances relatives

Le phénomène d’oscillation des distances relatives η(xi ) est connu sous le nom
de wobbling precision. Il est d’autant plus prononcé que la base b est grande. C’est
une raison pour laquelle on préfère employer de petites bases dans les ordinateurs.

Une autre différence notable entre la représentation à virgule flottante et la
représentation à virgule fixe est la suivante : pour un espace mémoire fixé à l’avance,
le système à virgule flottante permet la représentation d’un plus grand intervalle
des nombres.

Exemple
Considérons une notation binaire à virgule flottante qui utilise t = 23 bits pour
la mantisse et 8 bits (incluant le signe) pour l’exposant. La valeur absolue la plus
7
grande parmi les x ∈ F est |xmaxfl | ≈ 2U = 2(2 −1) .
Pour avoir une valeur maximale comparable, le système à virgule fixe devrait
avoir un nombre de cases n (seulement pour la partie entière) tel que
7
−1)
|xmaxfix | ≈ 2n+1 − 1 = 2(2 .

Donc, au moins (n + 1) ≈ 27 − 1 = 127 bits sont nécessaires pour obtenir un


intervalle de valeurs comparable à celui du système en virgule flottante.

2.4 Représentation machine des nombres réels


Considérons un ordinateur qui utilise la notation à virgule flottante avec base b,
t chiffres significatifs et L ≤ e ≤ U . Dans un tel ordinateur, seul un sous-ensemble
F(b, t, L, U ) ⊂ R de nombres réels peut être représenté et manipulé. Par conséquent,
nous sommes confrontés au problème de représentation d’un nombre réel quelconque
x ∈ R qui n’appartient pas à F.
L’approche typique consiste à arrondir x de façon à ce que le nombre arrondi
appartienne à F.
En vertu de la relation (2.13), trois situations peuvent se produire

25
22 CHAPITRE 2. ANALYSE D’ERREURS

Relative Distance 0.8

0.6

0.4

0.2

0
1 2 3 4 5 6 7 8 9
Floating point numbers

Figure 2.2 – Wobbling : variation de la distance relative pour l’ensemble des


nombres F(10, 1, −1, 1). (Script MATLAB s_dist_flo.m)

1. |x| > bU (1 − b−t ) : le nombre x ne peut être représenté par le système de


notation et on dit que nous sommes dans une situation d’overflow. L’overflow
provoque normalement une interruption du programme par le système.
2. |x| < bL−1 : dans ce cas on parle d’underflow. D’habitude l’underflow est géré
en remplaçant x par 0.
3. bL−1 ≤ |x| ≤ bU (1 − b−t ) : dans ce cas, en prenant un nombre des chiffres
significatifs infini, le nombre x 6∈ F peut être représenté de la manière suivante
{[a1 a2 . . . at at+1 at+2 . . . ], e, b, s}
où e ∈ [L, U ]. On en déduit que deux transformations de x sont possibles :
Transformation d’arrondi :
x → fl(x) (2.17)
où fl(x) ∈ F(b, t, L, U ) a comme notation en virgule flottante
fl(x) = {[a1 a2 . . . a∗t ], e, b, s} (2.18)
et (
at si at+1 < b/2
a∗t = (2.19)
at + 1 si at+1 ≥ b/2
Transformation de troncature :
x → tr(x) (2.20)
où tr(x) ∈ F(b, t, L, U ) a comme notation en virgule flottante
tr(x) = {[a1 a2 . . . at ], e, b, s} (2.21)

Dans ce qui suit, nous nous bornerons à l’analyse des erreurs qui dérivent de la
transformation d’arrondi.

26

Vous aimerez peut-être aussi