Vous êtes sur la page 1sur 267

Analyse et analyse numrique

LAVOISIER, 2005
LAVOISIER

11, rue Lavoisier


75008 Paris
Serveur web : www.hermes-science.com
2-7462-0993-4 ISBN Gnral
2-7462-0995-0 ISBN Volume 2
Tous les noms de socits ou de produits cits dans cet ouvrage sont utiliss des fins
didentification et sont des marques de leurs dtenteurs respectifs.

Le Code de la proprit intellectuelle n'autorisant, aux termes de l'article L. 122-5, d'une


part, que les "copies ou reproductions strictement rserves l'usage priv du copiste et non
destines une utilisation collective" et, d'autre part, que les analyses et les courtes citations
dans un but d'exemple et d'illustration, "toute reprsentation ou reproduction intgrale, ou
partielle, faite sans le consentement de l'auteur ou de ses ayants droit ou ayants cause, est
illicite" (article L. 122-4). Cette reprsentation ou reproduction, par quelque procd que ce
soit, constituerait donc une contrefaon sanctionne par les articles L. 335-2 et suivants du
Code de la proprit intellectuelle.

APPLICATIONS MATHMATIQUES
AVEC MATLAB

Analyse
et analyse numrique
rappel de cours et exercices corrigs

Luc Jolivet
Rabah Labbas

Table des matires

Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

P REMIRE PARTIE . A NALYSE

. . . . . . . . . . . . . . . . . . . . . . . . . .

15

Chapitre 1. Suites relles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

1.1. Gnralits sur les suites . . . . . . . . . .


1.1.1. Dnitions . . . . . . . . . . . . . . .
1.1.2. Exemple . . . . . . . . . . . . . . . .
1.2. Limite dune suite . . . . . . . . . . . . . .
1.2.1. Approche intuitive . . . . . . . . . . .
1.2.2. Cas de limite nie . . . . . . . . . . .
1.2.3. Cas de limite innie . . . . . . . . . .
1.3. Proprits des limites de suites . . . . . . .
1.3.1. Cas de limites nies . . . . . . . . . .
1.3.2. Cas de limites innies . . . . . . . . .
1.3.3. Calculs de limites avec Matlab . . . .
1.4. Suites monotones . . . . . . . . . . . . . .
1.5. Suites rcurrentes . . . . . . . . . . . . . .
1.5.1. Dnition . . . . . . . . . . . . . . . .
1.5.2. Etude complte dun exemple modle
1.6. Exercices . . . . . . . . . . . . . . . . . . .
1.6.1. Limite dune suite et majorations . .
1.6.2. Etude dune suite rcurrente (1) . . .
1.6.3. Etude dune suite rcurrente (2) . . .
1.7. Solutions . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

17
17
18
19
19
19
22
22
22
23
23
24
25
25
25
28
28
28
29
29

Chapitre 2. Fonctions numriques dune variable relle . . . . . . . . . . .

37

2.1. Rappels gnraux sur les fonctions . . . . . . . . . . . . . . . . . . . . .


2.1.1. Majoration dune fonction et extrema . . . . . . . . . . . . . . . .

37
37

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Mathmatiques avec Matlab

2.1.2. Exemple . . . . . . . . . . . . . . . . . . . .
2.1.3. Priodicit, parit et imparit dune fonction
2.1.4. Exemple . . . . . . . . . . . . . . . . . . . .
2.1.5. Fonctions monotones . . . . . . . . . . . . .
2.1.6. Fonctions injectives, surjectives, bijectives .
2.2. Limite dune fonction . . . . . . . . . . . . . . . .
2.2.1. Dnitions . . . . . . . . . . . . . . . . . . .
2.2.2. Rsultat fondamental . . . . . . . . . . . . .
2.2.3. Exemple . . . . . . . . . . . . . . . . . . . .
2.3. Continuit . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Dnitions . . . . . . . . . . . . . . . . . . .
2.3.2. Exemple . . . . . . . . . . . . . . . . . . . .
2.3.3. Rsultats gnraux sur la continuit . . . . .
2.4. Drivation . . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Dnitions . . . . . . . . . . . . . . . . . . .
2.4.2. Exemple . . . . . . . . . . . . . . . . . . . .
2.4.3. Interprtation gomtrique . . . . . . . . . .
2.4.4. Proprits gnrales . . . . . . . . . . . . . .
2.4.5. Drives successives . . . . . . . . . . . . . .
2.4.6. Consquences de la drivation . . . . . . . .
2.4.7. Etude dune fonction avec Matlab . . . . . .
2.4.8. Retour lexemple modle . . . . . . . . . .
2.5. Fonctions trigonomtriques inverses . . . . . . . .
2.5.1. Rappel . . . . . . . . . . . . . . . . . . . . .
2.5.2. Fonction arcsin . . . . . . . . . . . . . . . . .
2.5.3. Fonction arccos . . . . . . . . . . . . . . . .
2.5.4. Fonction arctan . . . . . . . . . . . . . . . . .
2.5.5. Exemple modle . . . . . . . . . . . . . . . .
2.6. Comparaison de deux fonctions . . . . . . . . . .
2.6.1. Notion de voisinage . . . . . . . . . . . . . .
2.6.2. Notations dites de Landau . . . . . . . . . .
2.6.3. Exemples . . . . . . . . . . . . . . . . . . . .
2.7. Formules de Taylor et dveloppements limits . .
2.7.1. Diverses formules de Taylor . . . . . . . . .
2.7.2. Exemples de calculs de D.L. . . . . . . . . .
2.7.3. Application des D.L. . . . . . . . . . . . . .
2.8. Exercices . . . . . . . . . . . . . . . . . . . . . . .
2.8.1. Bijection rciproque . . . . . . . . . . . . .
2.8.2. Etude de fonction et construction de courbe
2.8.3. Etude dune fonction priodique . . . . . . .
2.8.4. Fonction trigonomtrique inverse . . . . . .
2.8.5. D.L. et tude de limite (1) . . . . . . . . . .
2.8.6. D.L. et recherche dasymptote . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

38
39
39
40
41
42
42
44
44
46
46
47
47
48
48
49
50
51
51
52
53
55
57
57
58
60
60
61
67
67
68
68
69
69
72
73
76
76
76
77
77
78
78

Table des matires

2.8.7. D.L. et tude de limite (2) . . . . . . . . . . . . . . . . . . . . . .


2.9. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78
79

Chapitre 3. Intgration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

3.1. Intgrale de Riemann . . . . . . . . . . . . . . . . .


3.1.1. Dnitions . . . . . . . . . . . . . . . . . . . .
3.1.2. Exemple . . . . . . . . . . . . . . . . . . . . .
3.1.3. Proprits gnrales . . . . . . . . . . . . . . .
3.2. Primitive dune fonction . . . . . . . . . . . . . . . .
3.2.1. Cas dune fonction continue . . . . . . . . . .
3.2.2. Cas dune fonction intgrable quelconque . .
3.2.3. Notation . . . . . . . . . . . . . . . . . . . . . .
3.3. Calcul intgral . . . . . . . . . . . . . . . . . . . . .
3.3.1. Calcul intgral avec Matlab . . . . . . . . . . .
3.3.2. Changement de variable . . . . . . . . . . . . .
3.3.3. Intgration par parties . . . . . . . . . . . . . .
3.4. Dcomposition en lments simples . . . . . . . . .
3.4.1. Les fonctions polynmes . . . . . . . . . . . .
3.4.2. Fractions rationnelles . . . . . . . . . . . . . .
3.4.3. Exemples . . . . . . . . . . . . . . . . . . . . .
3.5. Intgration de fractions rationnelles . . . . . . . . .
3.6. Exercices . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1. Calculs de primitives usuelles . . . . . . . . .
3.6.2. Linarisations dexpressions trigonomtriques
3.6.3. Changement de variable (1) . . . . . . . . . .
3.6.4. Changement de variable (2) . . . . . . . . . .
3.6.5. Dcomposition en lments simples . . . . .
3.7. Solutions . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

91
91
95
96
97
97
98
100
100
100
101
103
104
104
107
108
112
114
114
114
115
115
115
116

D EUXIME PARTIE . A NALYSE NUMRIQUE LMENTAIRE . . . . . . . . 123


Chapitre 4. Arithmtique de lordinateur

. . . . . . . . . . . . . . . . . . . 125

4.1. Reprsentation des entiers . . . . . . . . . . . . .


4.1.1. Gnralits . . . . . . . . . . . . . . . . . .
4.1.2. Exemples . . . . . . . . . . . . . . . . . . .
4.1.3. Fonctions prdnies de Matlab . . . . . .
4.2. Reprsentation des rels positifs en virgule xe
4.2.1. Notations . . . . . . . . . . . . . . . . . . .
4.2.2. Exemple en base 2 . . . . . . . . . . . . . .
4.2.3. Exemple en base 8 . . . . . . . . . . . . . .
4.2.4. Calculs avec Matlab . . . . . . . . . . . . .
4.3. Reprsentation des rels en virgule ottante . .
4.3.1. Gnralits . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

125
125
126
127
127
127
129
129
130
130
130

Mathmatiques avec Matlab

4.3.2. Exemple . . . . . . . . . . . . . . . . .
4.4. Les rels en V.F.N chiffres . . . . . . . .
4.4.1. En base 10 . . . . . . . . . . . . . . . .
4.4.2. En base 2 . . . . . . . . . . . . . . . . .
4.4.3. Les formats machine oat et double . .
4.5. Oprations de base sur les nombres machine
4.5.1. Multiplication . . . . . . . . . . . . . .
4.5.2. Division . . . . . . . . . . . . . . . . . .
4.5.3. Addition . . . . . . . . . . . . . . . . .
4.6. Exercices . . . . . . . . . . . . . . . . . . . .
4.6.1. Conversion dun entier . . . . . . . . .
4.6.2. Schma de Horner . . . . . . . . . . .
4.6.3. Conversion dun nombre virgule . .
4.6.4. Valeurs extrmes au format double . .
4.7. Solutions . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

131
131
132
133
134
136
136
137
138
140
140
140
141
141
141

Chapitre 5. Gestion derreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 145


5.1. Erreur absolue et erreur relative . . . . . . . . . . . . . . . . . . .
5.1.1. Dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2. Erreurs doprations . . . . . . . . . . . . . . . . . . . . . . .
5.1.3. Estimation derreur par le thorme des accroissements nis
5.2. Erreurs daffectation . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1. Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2. Rsultat gnral . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3. Cas des formats oat et double . . . . . . . . . . . . . . . . .
5.2.4. Erreurs daffectation et oprations . . . . . . . . . . . . . . .
5.3. Cumul derreurs daffectation et dopration . . . . . . . . . . . .
5.3.1. Cas dune somme . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2. Cas dun produit . . . . . . . . . . . . . . . . . . . . . . . . .
5.4. Erreurs dabsorption . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1. Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.2. Consquence pratique . . . . . . . . . . . . . . . . . . . . . .
5.5. Erreurs de cancellation . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1. Prsentation sur un exemple . . . . . . . . . . . . . . . . . .
5.5.2. Exemple trait avec Matlab . . . . . . . . . . . . . . . . . . .
5.5.3. Remarque . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6. Erreurs dues aux choix des formules algbriques . . . . . . . . . .
5.6.1. Exemple 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6.2. Exemple 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7. Erreurs dues aux perturbations des donnes . . . . . . . . . . . . .
5.7.1. Un systme dquations linaires . . . . . . . . . . . . . . .
5.7.2. Un calcul de dterminant . . . . . . . . . . . . . . . . . . . .
5.8. Estimation probabiliste de lerreur . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

146
146
146
147
148
148
149
150
150
151
151
152
154
155
156
156
156
157
158
161
161
162
163
163
164
166

Table des matires

5.9. Exercices . . . . . . . . . . . . . . . . . . . .
5.9.1. Erreur doprations . . . . . . . . . . .
5.9.2. Erreurs dabsorption et de cancellation
5.9.3. Non associativit de laddition machine
5.9.4. Choix de formules de calcul . . . . . .
5.9.5. Choix ditrations de calculs . . . . . .
5.9.6. Sujet dtude . . . . . . . . . . . . . . .
5.10.Solutions . . . . . . . . . . . . . . . . . . . .

. . . .
. . . .
. . . .
. . .
. . . .
. . . .
. . . .
. . . .

Chapitre 6. Approximation de racines dquations

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

167
167
167
167
168
168
169
170

. . . . . . . . . . . . . . 183

6.1. Mthode de la dichotomie . . . . . . . . . . . . . . . . . . . .


6.1.1. Hypothses sur la fonction . . . . . . . . . . . . . . .
6.1.2. Algorithme de la mthode . . . . . . . . . . . . . . . .
6.1.3. Exemple . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.4. En conclusion . . . . . . . . . . . . . . . . . . . . . . .
6.2. Mthode des approximations successives (ou du point xe) .
6.2.1. Hypothses sur la fonction . . . . . . . . . . . . . . .
6.2.2. Thorme du point xe . . . . . . . . . . . . . . . . . .
6.2.3. Algorithme et estimation derreur . . . . . . . . . . . .
6.2.4. Exemple . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.5. Vitesse de convergence . . . . . . . . . . . . . . . . . .
6.3. Mthode de Newton (ou de la tangente) . . . . . . . . . . . .
6.3.1. Hypothses et algorithme de Newton . . . . . . . . . .
6.3.2. Vitesse de convergence . . . . . . . . . . . . . . . . . .
6.3.3. Exemple . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.4. Choix de linitialisation . . . . . . . . . . . . . . . .
6.4. Plan pour la recherche dune racine . . . . . . . . . . . . . .
6.4.1. Exemple . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5.1. Mthode de dichotomie, de Newton et du point xe .
6.5.2. Mthode de Newton pour une fonction afne . . . . .
6.5.3. Valeur approche de . . . . . . . . . . . . . . . . .
6.5.4. Programmation de la mthode du point xe . . . . . .
6.5.5. Programmation de la mthode de Newton . . . . . . .
6.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

184
184
184
185
186
186
187
187
187
190
191
192
192
194
195
196
200
200
207
207
207
207
208
208
209

Chapitre 7. Interpolation polynomiale . . . . . . . . . . . . . . . . . . . . . . 217


7.1. Le polynme dinterpolation dune fonction .
7.1.1. Dnitions . . . . . . . . . . . . . . . . .
7.1.2. Thorme dexistence et dunicit de
7.1.3. Polynme de Lagrange . . . . . . . . . .
7.1.4. Algorithme dAitken . . . . . . . . . . .
7.1.5. Gestion derreur . . . . . . . . . . . . . .

. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .

217
217
218
219
221
223

10

Mathmatiques avec Matlab

7.2. Approche polynomiale de la drivation . . . . . . . . . .


7.2.1. Approche classique . . . . . . . . . . . . . . . . . .
7.2.2. Approche polynomiale . . . . . . . . . . . . . . . .
7.2.3. Gestion derreur mathmatique . . . . . . . . . . . .
7.2.4. Etude complte derreur . . . . . . . . . . . . . . . .
7.3. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.1. Calcul dun polynme dinterpolation . . . . . . .
7.3.2. Polynme de Lagrange et programmation . . . . .
7.3.3. Effet de Runge . . . . . . . . . . . . . . . . . . . . .
7.3.4. Mthode dAitken et programmation . . . . . . . .
7.3.5. Complexit de calcul de polynme dinterpolation
7.3.6. Formule barycentrique de Lagrange . . . . . . . . .
7.3.7. Complexit de calcul par la mthode dAitken . . .
7.4. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

225
225
226
227
227
232
232
232
233
234
234
235
236
237

Chapitre 8. Intgration numrique . . . . . . . . . . . . . . . . . . . . . . . . 249


8.1. Description de la mthode . . . . . . . . . . . . . . . . . .
8.2. Mthode des rectangles . . . . . . . . . . . . . . . . . . . .
8.2.1. Formules simples . . . . . . . . . . . . . . . . . . . .
8.2.2. Formules composites . . . . . . . . . . . . . . . . . .
8.3. Mthode des trapzes . . . . . . . . . . . . . . . . . . . . .
8.3.1. Formule simple . . . . . . . . . . . . . . . . . . . . . .
8.3.2. Formule composite . . . . . . . . . . . . . . . . . . .
8.4. Mthode de Simpson . . . . . . . . . . . . . . . . . . . . .
8.4.1. Formule simple . . . . . . . . . . . . . . . . . . . . . .
8.4.2. Formule composite . . . . . . . . . . . . . . . . . . .
8.5. Gestion derreur . . . . . . . . . . . . . . . . . . . . . . . .
8.5.1. Erreur dans la mthode des trapzes . . . . . . . . . .
8.5.2. Erreur dans la mthode de Simpson . . . . . . . . . .
8.6. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.6.1. Utilisations des mthodes des trapzes et de Simpson
8.6.2. Programmation . . . . . . . . . . . . . . . . . . . . .
8.6.3. Calculs approchs dintgrales et gestion derreur . .
8.7. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

249
251
251
251
252
252
252
253
253
254
254
254
255
256
256
256
257
257

Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

Avant-propos

Le but de cette collection "Applications Mathmatiques avec Matlab" est de comprendre et dutiliser les outils mathmatiques fondamentaux de premier cycle laide
dun logiciel de calcul. Elle correspond lesprit des formations en IUT, BTS, Ecoles
dingnieurs, mais aussi en premiers semestres du cycle L du nouveau schma LMD.
Nous nous sommes bass sur lexprience de nos cours, travaux dirigs et sances
de travaux pratiques de mathmatiques avec des tudiants de 1re et 2me anne du
dpartement dInformatique dIUT de lUniversit du Havre. Pour cet enseignement,
nous disposons du logiciel Matlab 1(la version actuellement installe est 6.5.0) et de
son extension Symbolic Math Toolbox (version 2.1.3).
Ces outils nous ont permis daccompagner les notions de base prsentes, par des
illustrations numriques et graphiques, et par des vrications utilisant le calcul formel.
Lutilisation dun logiciel de calcul permet de se concentrer davantage sur la comprhension du problme pos, sur une stratgie de rsolution et sur linterprtation des
rsultats. Ltudiant devra aussi porter un regard critique sur les rponses fournies, en
prenant garde aux erreurs darrondi dans les calculs numriques, et aux simplications
abusives dans certaines expressions symboliques.
Ce second tome comprend deux parties.
En premire partie, on prsente les notions de base et les principaux thormes
de lanalyse (suites, fonctions numriques dune variable relle, intgration), le plus
souvent sans dmonstrations, pour les utiliser principalement dans des applications et
calculs concrets.

. Matlab est une marque dpose de The MathWorks Inc. Tous les autres produits cits sont
des marques dposes de leur socit respective.

11

12

Mathmatiques avec Matlab

La deuxime partie est consacre larithmtique des ordinateurs, quelques outils de base en analyse numrique et la gestion derreurs. Le but tant dinitier les
tudiants rsoudre numriquement quelques problmes.
Chaque partie est compose de chapitres. Ils sont accompagns dillustrations et
dexemples traits avec Matlab. Des exercices sont ensuite proposs. Certains sont
originaux, dautres sont repris ou inspirs de divers manuels dont la liste est donne
en bibliographie. La correction de ces exercices se trouve en n de chapitre. Nous
avons choisi de la prsenter en utilisant systmatiquement Matlab. Le lecteur pourra
cependant traiter la plupart de ces exercices " la main".
Lorsquune commande Matlab est utilise pour la premire fois, elle est explique
et apparat en gras. Les programmes et squences de calcul sous Matlab sont mis en
vidence dans des tableaux. Le lecteur pourra trouver une initiation la pratique de ce
logiciel dans les premiers chapitres du tome 1.
En n douvrage, se trouve un index regroupant les mots-cls mathmatiques et
les commandes Matlab utilises. Ces dernires apparaissent en italique.
Nous tenons remercier vivement tous nos collgues qui ont consacr un temps
prcieux la lecture de cet ouvrage, notamment Serge Derible, Thierry Dumont, Khaled Sadallah et Francis Wirth.
Nous remercions particulirement Franois Coquet, Professeur lUniversit du
Havre, pour sa lecture attentive, ses remarques et conseils judicieux .
Nous accueillerons avec reconnaissance les ventuelles remarques que le lecteur
voudra bien nous faire parvenir.

Note au lecteur

Ce recueil de rappels de cours et dexercices corrigs fait partie dun ensemble


comportant trois tomes.

Tome 1
premire partie : prsentation de Matlab,
deuxime partie : algbre linaire,
troisime partie : gomtrie.

Tome 2
premire partie : analyse,
deuxime partie : analyse numrique lmentaire.

Tome 3
thorie lmentaire du signal.

13

14

P REMIRE PARTIE

Analyse

15

16

Chapitre 1

Suites relles

Dans ce chapitre, on rappelle lessentiel concernant les suites relles et on termine


par une tude complte dune suite rcurrente avec Matlab.
1.1. Gnralits sur les suites
1.1.1. Dnitions
On appelle suite numrique une application dnie par

est le terme gnral de la suite et est souvent not . Par abus de langage, la
suite qui est dtermine par ses valeurs , se note

Une suite peut tre dnie partir dun certain rang x. On notera


Une suite

est majore sil existe une constante telle que

elle est minore sil existe une constante telle que

17

18

Mathmatiques avec Matlab

telle que

Elle est borne sil existe une constante

Il est facile de vrier quune suite est borne si, et seulement si, elle est majore et
minore.

1.1.2. Exemple

, par

Considrons la suite dnie pour

Sachant que pour tout on a

et que pour

on dduit que, pour tout

On peut avec Matlab observer numriquement et graphiquement cette majoration,


pour les 19 premiers termes de la suite.

for n=2 :20,


u(n)=sin(n)/(n+(-1)^n);
end
u(2 :20)
ans =
0.3031 0.0706 -0.1514 -0.2397 -0.0399 0.1095 0.1099
0.0515 -0.0495 -0.1000 -0.0413 0.0350 0.0660 0.0464
-0.0169 -0.0601 -0.0395 0.0083 0.0435
plot(2 :20,u(2 :20),x)
grid on ; axis([0 21 -1 1]) ;

Suites relles

19

1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1

10

12

14

16

18

20

1.2. Limite dune suite


1.2.1. Approche intuitive

, il existe quatre possibilits


Lorsque devient de plus en plus grand (
pour les termes dune suite numrique donne :
1) sapproche dun nombre , on notera :

ou

2) devient aussi grand quon veut, on crira

3) devient aussi petit quon veut, on crira

4) na aucun des comportements ci-dessus. Cest par exemple le cas de la suite

qui prend alternativement les valeurs et .


1.2.2. Cas de limite nie
1.2.2.1. Dnitions

La description mathmatique de la premire possibilit doit traduire le fait qu


partir dun rang , les termes successifs de la suite

20

Mathmatiques avec Matlab

sont aussi proches quon veut de . On crira alors :


tant donn un nombre
(aussi petit que lon veut)
il existe un rang tel que pour tout , on a :

On dira que la suite est convergente et converge vers . On notera

On montre, grce cette dnition, quune telle limite, si elle existe, est unique.
Dans les autres cas on dira que la suite est divergente.
1.2.2.2. Suites de rfrence
Les suites dnies pour

, de la forme

o est un rel positif, sont appeles suites de rfrence. Elles vrient :

Il est souvent commode de les utiliser pour montrer quune suite converge
vers une limite nie . Lorsque la suite vrie : il existe une constante

et un entier tels que pour tout on ait

alors

1.2.2.3. Exemple
Examinons lexemple de la suite dnie pour

On a, sous Matlab,

par :

Suites relles

21

for n=1 :60,


u(n)=(2*n+1)/(n+2);
end
u(50 :60)
ans =
Columns 1 through 7
1.9423 1.9434 1.9444 1.9455 1.9464 1.9474 1.9483
Columns 8 through 11
1.9492 1.9500 1.9508 1.9516
plot(u,x)

2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1

10

20

30

40

50

60

Cela laisse prsager que la suite converge vers . Pour montrer ce rsultat , on peut
utiliser la suite de rfrence

(ou toute autre suite de la forme

) et montrer quil existe une
constante positive telle que, partir dun certain rang on ait

Or

Il suft de prendre

et

22

Mathmatiques avec Matlab

1.2.3. Cas de limite innie


La deuxime possibilit scrit mathmatiquement sous la forme :
tant donn un nombre
(aussi grand que lon veut)
il existe un rang tel que pour tout , on a :

On crit

De manire similaire, la troisime possibilit snonce par


tant donn un nombre
(aussi petit que lon veut)
il existe un rang tel que pour tout , on a :

On crit


1.3. Proprits des limites de suites
1.3.1. Cas de limites nies
On se donne deux suites
des limites nies et .
Alors on a :

et

convergentes respectivement vers


(pour tout nombre

(si ),

On a aussi le rsultat suivant :

Si la suite

est borne et si

, alors

Sa dmonstration utilise lencadrement dit des gendarmes :


il existe

tel que pour tout

, on a

dautre part, pour petit donn strictement positif, en notant

Suites relles

il existe tel que pour

do lencadrement

on a

ou bien
pour

23

ce qui montre que

1.3.2. Cas de limites innies


Les rsultats prcdents stendent aux cas de limites innies :

si et alors
si et , alors
si et alors
si et , alors
si et alors
si et alors
si et alors
si et , alors
(si et (si

Par contre, toute recherche de limite qui se prsente sous lune des formes suivantes est une indtermination :

Lindtermination est lever en appronfondissant les calculs sur lexpression donne.


1.3.3. Calculs de limites avec Matlab
On utilise la commande limit pour obtenir directement la limite dune suite
Par exemple, si


on a
syms n ; Un=(2*n+1)/(n+6);
limit(Un,n,inf)
ans = 2

24

Mathmatiques avec Matlab

Vn=(2*abs(n^2-20)+1)/(abs(n-10)+7);
limit(Vn,n,inf)
ans = inf
Matlab permet aussi de retrouver les calculs sur les limites innies :
inf+inf
ans=Inf
inf*inf
ans=Inf
inf*(-inf)
ans=-Inf
0*inf
ans=NaN
la dernire rponse exprime lindtermination : Not a Number.
1.4. Suites monotones
Une suite relle

est dite croissante si

elle est dcroissante si


La suite est strictement croissante si

strictement dcroissante si

Dans chacun de ces cas on parlera de suite monotone (resp. strictement monotone).
Ces notions restent valables si elles sont vraies partir dun rang donn
Le rsultat essentiel pour les suites monotones est :
Thorme.
Toute suite relle croissante et majore est convergente.
Toute suite relle dcroissante et minore est convergente.

Suites relles

25

1.5. Suites rcurrentes


1.5.1. Dnition

On donne une fonction


rcurrence :

et on dnit la suite

pour

par la relation de

est rel donn.


De telles suites sont dites rcurrentes. Elles sont bien dnies lorsque pour tout
les termes appartiennent au domaine de dnition de .

Le calcul de la limite de telles suites rcurrentes, lorsquelles convergent, se fait


par passage la limite dans la relation de rcurrence :
1) on peut vrier que si
tion),

alors

2) lorsque la fonction est continue, on a :


3) on en dduit lquation

(en utilisant la dni-

Si elle admet une solution, ou plusieurs, une tude de la suite (monotonie, minoration
ou majoration,...) permet de prciser la limite ventuelle.

1.5.2. Etude complte dun exemple modle

On donne la suite dnie pour

par

En ritrant on voit que le terme gnral scrit

1.5.2.1. Calcul des premiers termes de la suite


La suite est videmment minore par

26

Mathmatiques avec Matlab

On calcule, sous Matlab, les dix premiers termes de cette suite, quon range dans
un tableau :
u(1)=1 ;
for n=1 :9,u(n+1)=sqrt(1+u(n));end
u(1 :5)
1.0000 1.4142 1.5538 1.5981 1.6118
u(6 :10)
1.6161 1.6174 1.6179 1.6180 1.6180
Cela suggre que la suite est majore par . Montrons-le par rcurrence. On a

Dautre part, la rsolution de linquation

donne

maple(solve(sqrt(1+Un)-2 =0))
ans=RealRange(-1,3)

Do limplication

Ainsi, lhypothse de rcurrence

et le fait que est minor par , donnent

1.5.2.2. Calcul de la limite ventuelle

tant continue sur


, la limite , si
La fonction dnie par
elle existe, vrie ncessairement lquation . On la calcule sous Matlab :
syms x
l= solve(x=sqrt(1+x))
l =1/2+1/2*5^(1/2)
Si la suite converge, alors sa limite est gale au nombre (dit dor)

On va maintenant prouver la convergence, en montrant que la suite est croissante et majore. On sait dj que la suite est majore par 2. Mais dans ltude de la
monotonie, on aura besoin de la majoration

Etablissons cette proprit :

Suites relles

1.5.2.3. Majoration de la suite par


On raisonne par rcurrence. Il est clair que la suite est positive et que

On tudie le signe de

maple(solve(sqrt(1+Un)-1/2-sqrt(5)/2 =0))
ans = RealRange(-1,1/2+1/2*5^(1/2))
Ainsi, si on suppose

alors

1.5.2.4. Sens de variation

, do

, on tudie celui de lexpression


Pour tudier le signe de

Pour cela, montrons que

On a :
syms Un
UnPlus1 = sqrt(1+Un) ;
P = expand((UnPlus1-Un)*(UnPlus1+Un))
P = 1+Un-Un^2
% On cherche les racines de P pour factoriser :
S = solve(P)
S = [ 1/2+1/2*5^(1/2)]
[ 1/2-1/2*5^(1/2)]
Q=(Un-S(1))*(Un-S(2)); expand(Q)
ans = -1-Un+Un^2
On en dduit que pour tout

27

28

Mathmatiques avec Matlab

car

et
puisque

et

La suite tant croissante et majore, elle est donc convergente et sa limite est bien
.

1.6. Exercices
1.6.1. Limite dune suite et majorations
On se propose de calculer la limite de la suite dnie par

en utilisant la dnition.
1) Peut-on se servir de la lecture du graphe de la suite pour en donner lventuelle
limite ?
2) En calculant

rsoudre mathmatiquement linquation

3) Conclure.
4) Retrouver par

tous les rsultats de la question 2.


(solution p. 29)

1.6.2. Etude dune suite rcurrente (1)


La direction dun journal constate pour chaque anne un taux de rabonnement
voisin de , ainsi que lapparition de nouveaux abonns.
On note le nombre dabonns lanne numrote . Lanne numro , le
nombre dabonns est .

Suites relles

29

1) Donner la relation de rcurrence entre et


2) Calculer les 20 premiers termes de cette suite et les reprsenter graphiquement.
3) Vers quelle limite cette suite semble-t-elle converger ?
4) On considre la suite dnie par
Utiliser le calcul symbolique de
Matlab pour montrer que est une suite gomtrique
5) En dduire lexpression de puis celle de
6) Conrmer le rsultat exprimental de la question 3.

(solution p. 31)
1.6.3. Etude dune suite rcurrente (2)
On dnit la suite

par la relation de rcurrence

pour

1) Calculer pour
et en donner une reprsentation graphique.
2) Quelle est lventuelle limite de cette suite ?
3) Montrer avec Matlab que la suite est majore par
4) En dduire quelle est croissante.

6) En dduire que
5) Vrier que

7) Trouver un rang tel que :

(solution p. 33)
1.7. Solutions
Exercice 1.6.1
1) On reprsente graphiquement les nombres pour
clf
n=26 :1 :100 ;
u=sqrt(n)./(sqrt(n)-5);
plot(n,u,x)
grid on

30

Mathmatiques avec Matlab


60

50

40

30

20

10

0
20

30

40

50

60

70

80

90

100

Le dessin laisse penser que la suite est dcroissante, minore, mais nindique pas
clairement la limite. Le calcul des termes laisse prsager que la
limite est :
n=[100 1000 10000] ;
u= sqrt(n)./(sqrt(n)-5)
u = 2.0000 1.1878 1.0526
2) On a, pour

Et linquation

est quivalente

soit

ou encore
do
et nalement

3) Pour on peut majorer par qui est une suite de rfrence (voir 1.2.2.3). Cette majoration montre que la suite converge vers 1.

Suites relles

4) On utilise le calcul symbolique de Matlab pour calculer


rsoudre linquation

31

puis pour

syms n
un=sqrt(n)/(sqrt(n)-5);
simplify(abs(un-1))
ans = 5/abs(n^(1/2)-5)
maple(solve(5/abs(n^(1/2)-5) =10/n^(1/2)))
ans = RealRange(100,inf),RealRange(Open(0),100/9)
Lensemble solution de cette inquation

est vrie pour

montre que lingalit

En utilisant la commande limit de Matlab, on obtient directement la limite de la


suite :
limit(un,n,inf)
ans = 1

Exercice 1.6.2
1) On a la formule de rcurrence

2) On calcule les 20 premiers termes de cette suite et on les reprsente graphiquement


a(1)=10000 ;
for n=1 :20,
a(n+1)=0.6*a(n)+5000;
end
plot(a, x)
title(Suite An+1 = 0.6*An + 5000)
grid on
a(1 :5) % 5 premiers termes
ans = 10000 11000 11600 11960 12176
a(16 :20) % 5 derniers
ans = 12499 12499 12500 12500 12500

32

Mathmatiques avec Matlab


Suite An+1 = 0.6*An + 5000

1.25

x 10

1.2

1.15

1.1

1.05

10

15

3) Cette suite semble converger vers la valeur

20

25

12500.

4) On dnit en fonction de les expressions de , , :


syms An
AnPlus1 = 0.6*An+5000 ;
Un= 12500-An ;
UnPlus1= 12500-AnPlus1
UnPlus1 = 7500-3/5*An
simplify(UnPlus1/Un)
ans = 3/5
De la dernire galit, on dduit que la suite est une suite gomtrique de raison

5) A partir du premier terme


, on dduit lexpression gnrale

puis


U1 = subs(Un,An,10000)
U1 =2500
syms n ; Un = U1*(3/5)^(n-1) ;
An = 12500-Un
An =12500-2500*(3/5)^(n-1)

On a, pour tout

Suites relles

6) Comme

33

on dduit que

Exercice 1.6.3
1) On place dans le tableau les 20 premiers termes de la suite, et on utilise plot
pour reprsenter graphiquement cette suite.
clear
u(1)=1 ;
for n=1 :19, u(n+1)= 1/5*u(n)+1 ;end
u
u=
Columns 1 through 7
1.0000 1.2000 1.2400 1.2480 1.2496 1.2499 1.2500
Columns 8 through 14
1.2500 1.2500 1.2500 1.2500 1.2500 1.2500 1.2500
Columns 15 through 20
1.2500 1.2500 1.2500 1.2500 1.2500 1.2500
plot(u,x)
hold on ; axis([0 20 0.8 1.3])
1.3
1.25
1.2
1.15
1.1
1.05
1
0.95
0.9
0.85
0.8

10

12

14

16

18

20

Au vu de ce dessin, il semble que la suite soit croissante, majore, convergente vers


Les questions suivantes vont prouver que ces observations sont fondes.
2) On sait que, pour une suite vriant la relation de rcurrence

34

Mathmatiques avec Matlab

avec

continue sur , sa limite , si elle existe, vrie ncessairement lquation

soit ici

do

Si la suite converge, sa limite est ncessairement


3) On utilise la relation de rcurrence

et on rsout linquation, dinconnue

syms Un
maple(solve(1/5*Un+1 =5/4))
ans =RealRange(-inf,5/4)
Ainsi, si
alors
Comme par hypothse
demande est dmontre par rcurrence.
4) On rsout linquation

UnPlus1=1/5*Un+1 ;
UnPlus1-Un
ans =-4/5*Un+1
maple(solve(-4/5*Un+1 =0))
ans =RealRange(-inf,5/4)
Daprs la question prcdente, on a, pour tout

do

5) On compare

avec

l=5/4 ;
d=UnPlus1-l
d =1/5*Un-1/4
p=1/5*(Un-l)
p =1/5*Un-1/4
cela montre lgalit demande.

la majoration

Suites relles

6) On en dduit par rcurrence

7) Si on utilise lexpression ci-dessus pour rsoudre linquation

on obtient

maple(solve(5/4*(1/5)^n =10^(-7)))
ans =

ce qui signie que lensemble solution na pu tre obtenu par Maple.


On transforme linquation

en linquation quivalente

puis en

On obtient alors
maple(solve(5^n =5/4*10^7))
ans = RealRange(log(12500000)/log(5),inf)
double(log(12500000)/log(5))
ans=10.1534
Ainsi, pour

35

36

Chapitre 2

Fonctions numriques dune variable relle

Ce chapitre est consacr ltude des fonctions dune variable relle dnies sur
un intervalle de ni ou inni.
2.1. Rappels gnraux sur les fonctions
2.1.1. Majoration dune fonction et extrema
Comme pour les suites, on dira que :
1) est majore sur sil existe une constante telle que

2) Elle est minore sil existe une constante telle que

On dira quelle est borne sil existe une constante

telle que

On peut vrier quune fonction est borne si, et seulement si, elle est majore et
minore.
On rappelle aussi quen un point

la fonction admet un minimum si

37

38

Mathmatiques avec Matlab

et quen un point

elle a un maximum si

en chacun de ces points, on dira quil y a un extremum.


2.1.2. Exemple
Soit

la fonction dnie sur lintervalle

On a
et
On remarque que

, donc

par

admet un maximum au point

Mais il nexiste pas de point tel que

Graphiquement, on a :
syms x real ; f=1/(1+x^2) ;
ezplot(f,0,10) ; grid on
axis([0 10 -0.5 1.5])
1/(1+x^2)
1.5

0.5

0.5

5
x

10

Fonctions numriques dune variable relle

39

2.1.3. Priodicit, parit et imparit dune fonction


Une fonction dnie sur est dite priodique de priode si on a

Pour de telles fonctions, il sufra de les tudier sur un intervalle de longueur .


Lorsquune fonction est dnie sur un intervalle centr
ventuellement
on dira quelle est paire si

(avec

Si est paire, alors son graphe admet une symtrie par rapport laxe des ordonnes
et donc il sufra de ltudier sur .
De mme, une fonction
est dite impaire si

dnie sur

(avec ventuellement

son graphe admet alors une symtrie par rapport lorigine du repre. Il sufra dtudier la fonction sur .

2.1.4. Exemple
La fonction cosinus, dnie sur
Matlab :

est paire et priodique, de priode Sous

syms x real
f=cos(x) ;
simplify(cos(-x))
ans = cos(x)
simplify(cos(x+2*pi))
ans = cos(x)
Pour la reprsentation graphique, on utilise la fonction dessineRepere permettant de
faire apparatre les axes du repre en traits mixtes.

40

Mathmatiques avec Matlab

function dessineRepere
hold on
V=axis ;
% V contient les abscisses et ordonnes minimum et maximum
Xmin=V(1) ;Xmax=V(2) ;Ymin=V(3) ;Ymax=V(4) ;
plot([Xmin Xmax],[0 0],-.,LineWidth,1.5)
% LineWidth permet de choisir la largeur du trait (1 par dfaut)
plot(Xmax,0, ,LineWidth,1.5) %dessine la che horizontale
plot([0 0],[Ymin Ymax],-.,LineWidth,1.5)
plot(0,Ymax,^,LineWidth,1.5)

On utilise la commande dessineRepere la suite de ezplot, pour complter le trac


ezplot(f,-2*pi,2*pi); grid on
dessineRepere
cos(x)

0.5

0.5

0
x

2.1.5. Fonctions monotones


Une fonction

est dite croissante sur , si pour tous

De mme

est dcroissante sur , si pour tous

de on a

de on a

Fonctions numriques dune variable relle

Dans ces deux cas, est dite monotone.


1) Lorsque lingalit est stricte pour les valeurs de , on dit que
monotone (strictement croissante ou strictement dcroissante).

41

est strictement

2.1.6. Fonctions injectives, surjectives, bijectives


Soit
o et
sont deux sous-ensembles quelconques de On
rappelle que :
1) est injective de dans si deux lments quelconques et diffrents de
admettent deux images diffrentes :

On crira, par contrapose, que

2) est surjective de dans


si tout lment de lensemble darrive
limage dau moins un lment de . On crira

est

3) est bijective de dans si elle est injective et surjective. Dans ce cas,


chaque lment de correspond une et une seule image de et rciproquement,
pour tout lment de , il existe un et un seul lment de tel que .
4) Lorsquune fonction

est bijective, on dnit la fonction dite rciproque (ou inverse) de

caractrise par

On la note

et on vrie que

par

42

Mathmatiques avec Matlab

2.2. Limite dune fonction


2.2.1. Dnitions
2.2.1.1. Limite nie en un point
Soit un point de et
un intervalle ouvert contenant On se donne
une fonction dnie en tout point de sauf peut-tre en On dit que tend
vers une limite nie pour
si et seulement si pour tout
il existe

tel que

On crira

De mme, on dira que



il existe

si et seulement si pour tout



il existe

tel que

Dune manire similaire,

si et seulement si, pour tout

tel que

2.2.1.2. Limite nie en


Lorsque la fonction

est dnie sur un intervalle



si pour tout

il existe

on dit que

tel que

2.2.1.3. Autres cas


Dune manire similaire, on dnit les autres cas de limites.

Fonctions numriques dune variable relle

2.2.1.4. Exemple
Soit

dnie sur

43

par

On cherche la limite de en

Le tableau de valeurs :

X=[10 100 1000 10000] ;


Y=(2.*X+3)./(X-1)
Y=
2.5556 2.0505 2.0050 2.0005
laisse prsager que
Montrons-le. Fixons



. Lingalit

est quivalente

ou encore

qui est vrie ds que

Sous Matlab, on obtient la limite par


syms x real ;
limit((2*x+3)/(x-1),x,inf)
ans = 2
2.2.1.5. Limite gauche, limite droite
On dira que
tel que

admet pour limite gauche en si pout tout

On notera

il existe

44

Mathmatiques avec Matlab

On dnit de mme la limite droite de


admet pour limite en si et seulement si
droite de .
Par exemple, pour la fonction

dnie par

on a

admet pour limite gauche et

si
si

syms x real ;
limit(exp(x),x,1,left)
ans = exp(1)
limit(x^2,x,1,right)
ans = 1

Do



et

2.2.2. Rsultat fondamental


Les rgles sur les limites de fonctions sont similaires celles sur les suites numriques.
Un rsultat important sur les limites de fonctions (en lien avec les suites) est le
suivant :
Thorme.
Une fonction admet une limite pour
si et seulement si, pour
toute suite convergente vers , la suite converge vers

Dans la pratique, on se servira de ce thorme pour montrer que certaines fonctions


oscillantes (de type trigonomtriques par exemple), nadmettent pas de limite nie en
ventuellement).
certains points particuliers (ou en

2.2.3. Exemple
Considrons la fonction
.
tuelle) pour

et examinons sa limite (ven-

Fonctions numriques dune variable relle

45

On trace le graphe de cette fonction sur le "petit" intervalle


syms x real
fDeX=sin(1/x) ;
ezplot(fDeX,[0.01,0.05])
dessineRepere

sin(1/x)

0.5

0.5

0.01

0.015

0.02

0.025

0.03
x

0.035

0.04

0.045

0.05

Cette courbe montre une allure oscillante au voisinage de zro. On construit une suite
particulire tendant vers zro telle que la suite nadmette pas de
limite.
syms n real
Xn=1/(n*pi+pi/2) ;
limit(Xn,n,inf)
ans=0
fDeXn=subs(fDeX,x,Xn)
fDeXn=cos(n*pi)
Ainsi

nadmet pas de limite.

46

Mathmatiques avec Matlab

2.3. Continuit
2.3.1. Dnitions
2.3.1.1. Cas dun intervalle ouvert de
Soit une fonction dnie sur un intervalle ouvert de et
donn. La fonction est dite continue au point si et seulement si

un point

Cela traduit le fait que lorsque la variable est proche de , la valeur est proche
de Autrement dit, pour tout
il existe
tel que :

En posant

on a la dnition quivalente

On dnit aussi la continuit gauche en (resp. droite en ). Par exemple,


est continue gauche en si pour tout
il existe
tel que

On notera

est continue en si et seulement si elle est continue gauche et droite de .


La fonction
point de

est continue sur tout lintervalle lorsquelle est continue en tout

2.3.1.2. Cas dun intervalle ferm


Soit une fonction dnie sur un intervalle ferm
dnir comme ci-dessus la continuit en pour
droite en et la continuit gauche en .

La fonction

est continue sur lintervalle ferm


est continue sur lintervalle ouvert
est continue droite en
est continue gauche en .

(avec
On peut
, ainsi que la continuit
si

Fonctions numriques dune variable relle

47

2.3.2. Exemple
On donne la fonction


si
si

Etudions sous Matlab sa continuit en .


On calcule les limites gauche et droite, au point 1, de
syms x
f1Moins =(3-x^2)/2 ;
f1Plus=1/x ;
limit(f1Moins,x,1,left)
ans = 1
limit(f1Plus,x,1,right)
ans = 1
Les deux limites tant gales , la fonction est continue en .
2.3.3. Rsultats gnraux sur la continuit
On donne deux fonctions
Alors on a les rsultats :

continues en et un rel quelconque .

et
sont continues en
et
sont continues en
est continue en (si est non nul).

Lorsque on a

o est un autre intervalle de et si est continue en et


alors la compose
dnie sur par

est continue en
Les fonctions usuelles :

est continue en

48

Mathmatiques avec Matlab

1) polynomiales,
2) trigonomtriques directes et inverses,
3) logarithme, exponentielle,...
sont continues sur leur domaine de dnition.
On retiendra le thorme suivant :
Thorme des valeurs intermdiaires.
Pour toute fonction relle continue sur
limage par de cet intervalle est
lintervalle o est le minimum de et est le maximum de sur
Autrement dit, pour toute valeur intermdiaire comprise entre et il existe au
moins une valeur dans
telle que .
Thorme des valeurs intermdiaires

2.4. Drivation
2.4.1. Dnitions
La notion de drive (comme le mot lindique bien) est lie la courbure du
graphe reprsentatif dune fonction. Cette notion sert aussi dans de nombreuses applications telles que la cinmatique, les systmes dynamiques, etc...

Fonctions numriques dune variable relle

Une fonction
le rapport

dni sur

( intervalle ouvert) est drivable en un point si

49

admet une limite nie lorsque

Noter que ce rapport est exactement le coefcient directeur de la droite


les points et de coordonnes et .

joignant

La limite (lorsquelle existe) est note

et est appele la drive de

en

De mme ici, on peut dnir une drive gauche et une drive droite au point
: par exemple la drive gauche est, quand elle existe,

Si

ou

est drivable en alors

Si la fonction est drivable en chaque point de , on dnit la fonction drive

Une fonction dnie sur un intervalle


si
lintervalle ferm

est dite drivable sur

(avec

est drivable sur lintervalle ouvert


est drivable droite en
est drivable gauche en .
2.4.2. Exemple
La fonction

est drivable en tout

en effet

50

Mathmatiques avec Matlab

Ce calcul de limite seffectue avec Matlab par :


syms x x0 real
fDeX=x^2 ;
fDeX0=x0^2 ;
fPrimeDeX0=limit((fDeX- fDeX0)/(x-x0),x,x0)
fPrimeDeX0 = 2*x0
Grce la commande diff, on obtient directement la fonction drive :
fPrimeDeX=diff(fDeX,x)
fPrimeDeX=2*x
fPrimeDeX0=subs(fPrimeDeX,x,x0)
fPrimeDeX0 = 2*x0

2.4.3. Interprtation gomtrique


Comme nous lavons dit prcdemment, si existe, la droite
une droite limite qui est tangente la courbe reprsentative de
Cette tangente a pour quation cartsienne

En notant

on remarque que pour tout

admet donc
au point .

avec

En posant

, on a

pour

Cette dernire galit donne une premire approximation afne de au voisinage de ds que existe et montre aussi quune fonction drivable en est
ncessairement continue en ce point.

Fonctions numriques dune variable relle

51

2.4.4. Proprits gnrales


Soient

deux fonctions drivables sur et

(si ),


(drive logarithmique de

Lorsquon a

),

, si

o est un autre intervalle de , alors, si est drivable sur et


, on a

est drivable sur

Si

est drivable et est une bijection de dans , alors


point o et on a

avec

Alors on a

est drivable en tout

2.4.5. Drives successives


Soit

drivable sur . Si la fonction


deux fois drivable et on note

est drivable, on dira que

En ritrant, on dnit de mme la drive lordre de

note

On peut montrer par rcurrence la formule dite de Leibnitz :

par

est

52

Mathmatiques avec Matlab

vraie pour deux fonctions

et , fois drivables. On rappelle que

On dira quune fonction est de classe


(
sont continues sur Une fonction de classe

Sous Matlab, le calcul de la drive


pour

sur si

existent et
est une fonction continue sur

seffectue en utilisant diff . Par exemple,

syms x real ;
fDeX=(x^3+2*x-5)*exp(x);
fOrdre4DeX=diff(fDeX,x,4);
factor(fOrdre4DeX)
ans=exp(x)*(x+1)*(x^2+11*x+27)
on obtient

2.4.6. Consquences de la drivation


Les premires proprits de la drivation sont :
Si dnie sur
est drivable en
un extremum en alors
Si est continue sur
avec
sur
alors il existe un point de

et admet

et est drivable
tel que

Ce dernier rsultat est connu sous le nom du thorme de Rolle et exprime le fait quil
y a au moins un point o la courbe reprsentative de admet une tangente horizontale
(cest--dire parallle laxe des abcisses).
Si est continue sur
et est drivable sur
un point de
tel que

alors il existe

Cest le thorme des accroissements nis (T.A.F). Il exprime le fait quil existe
au moins une tangente la courbe de parallle la scante joignant les points de

Fonctions numriques dune variable relle

coordonnes

et

53

. (Voir gure ci-dessous).


Illustration du T.A.F

1.6

1.5

1.4

1.3

1.2

1.1

a
1

0.5

0.5

En crivant
sous forme

et sachant quun point de lintervalle ouvert

scrit

, on obtient la formulation courante


qui exprime bien lide daccroissements nis. De ce thorme on dduit aussi (sous
les mmes hypothses) :

est croissante sur si


est dcroissante sur si
est constante sur si

2.4.7. Etude dune fonction avec Matlab


On se propose dtudier les variations de la fonction

et de tracer sa courbe reprsentative.


Cette fonction est de classe sur .

dnie sur par

54

Mathmatiques avec Matlab

On dclare lexpression symbolique correspondant la fonction, on calcule la


drive et on la factorise :
syms x real
f=1+x*exp(-x) ;
fprime=diff(f)
=exp(-x)-x*exp(-x)
factor(fprime)
=-exp(-x)*(-1+x)
Ce rsultat est sufsant pour donner le signe de
lquation

mais on peut aussi rsoudre

ou linquation

solve(fprime)
ans=1
maple(solve(-exp(-x)*(-1+x) 0))
ans = realRange(-inf,open(1))

Ainsi, la drive est positive sur


On calcule alors, symboliquement et numriquement, , puis les limites de en et

fDe1=subs(f,x,sym(1))
fDe1=1+exp(-1)
double(fDe1)
ans=1.3679
limit(f,x,-inf,right)
ans=-inf
limit(f,x,inf,left)
ans=1
Do le tableau de variations

On construit le graphe sur un intervalle contenant par exemple


ezplot(f,-1,5)
grid on
axis auto % ajuste le cadre
dessineRepere

Fonctions numriques dune variable relle

55

1+x*exp(x)
1.5

0.5

0.5

1.5

2
1

2
x

2.4.8. Retour lexemple modle


Etudions la drivabilit et la continuit de la fonction drive en de la fonction :

sinon.

La fonction
de

si

est indniment drivable sur

. On dclare les deux expressions

syms x real
f1Moins =(3-x^2)/2 ;
f1Plus=1/x ;
On calcule les limites gauche et droite suivantes :

56

Mathmatiques avec Matlab

taux1Moins = (f1Moins - 1)/(x-1)


taux1Moins = (1/2-1/2*x^2)/(x-1)
factor(taux1Moins)
ans = -1/2*x-1/2
taux1Plus = (f1Plus - 1)/(x-1)
taux1Plus = (1/x-1)/(x-1)
factor(taux1Plus)
ans = -1/x
limit(taux1Moins,x,1,left)
ans = -1
limit(taux1Plus,x,1,right)
ans = -1
Ces deux limites tant gales, la fonction est drivable en et

Pour la continuit de la fonction drive en 1, on calcule

et

f1MoinsPrime = diff(f1Moins)
f1MoinsPrime = -x
f1PlusPrime = diff(f1Plus)
f1PlusPrime = -1/x^2
limit(f1MoinsPrime,x,1,left)
ans = -1
limit(f1PlusPrime,x,1,right)
ans = -1
Donc

est de classe

(continment drivable) et

si
si
sinon.

Pour le graphe de cette fonction dnie par morceaux, on cre un chier appel
dans lequel est dnie la fonction
function y = f1(x)
if(x 1) y = (3-x.^2)./2 ;
else y =1./x ;
end

Fonctions numriques dune variable relle

57

puis on utilise fplot pour le trac de la courbe :


fplot(f1,[-3 3])
grid on ; hold on
plot(1,f1(1),o) % pour marquer le point dabscisse 1
dessineRepere

1.5

0.5

0.5

1.5

2.5

3
3

Observons que le raccord au point se fait dune manire lisse, au sens que la
fonction en ce point admet une drive et cette dernire y est continue.
2.5. Fonctions trigonomtriques inverses
2.5.1. Rappel
Dans cette section on utilisera en particulier le rsultat suivant :
Thorme.
Si est une fonction continue strictement croissante sur
alors est une bijection de
dans Il en est de
mme si est strictement dcroissante de
dans

De plus sa fonction rciproque


est de mme nature (cest--dire strictement
dcroissante ou strictement croissante selon le sens de variations de ).

58

Mathmatiques avec Matlab

Supposons que

est continue strictement croissante et notons


la courbe reprsentative de
de scrit :

dans le plan rapport un repre orthonorm. Alors celle

par symtrie par rapport la premire

et est clairement obtenue partir de


bissectrice dquation

Comme applications, on va dnir les trois fonctions circulaires inverses suivantes.

2.5.2. Fonction arcsin


On part de la fonction sinus, restreinte lintervalle

qui est continue et strictement croissante et donc elle admet une fonction rciproque
note arc
arc


arc

arc

avec la caractrisation


si et seulement si

Cette fonction est note sous matlab asin.


On reprsente sur une mme gure les graphes des fonctions arc et sin, ainsi
que la droite dquation

Fonctions numriques dune variable relle

59

clf
fplot(asin,[-1,1])
hold on
fplot(sin,[-pi/2,pi/2],)
ezplot(x,[-pi/2,pi/2])
axis equal ; axis auto
Pour placer une lgende, associe aux tracs successifs :
legend (arcsin(x),sin(x),4)
grid on ; dessineRepere

Fonctions sinus et arcsinus


1.5

0.5

0.5

1
arcsin(x)
sin(x)
1.5
1.5

0.5

0
x

0.5

1.5

Par lecture inverse des valeurs du sinus on a par exemple


arc
arc
arc
arc
arc

En appliquant la rgle de drivation dune fonction inverse (voir 2.4.4), la drive de


est
arc en

arc

60

Mathmatiques avec Matlab

2.5.3. Fonction arccos


On part cette fois de la restriction de la fonction cosinus lintervalle

qui est continue et strictement dcroissante et donc on dnit son inverse par

arc

La drive en

sobtient par

arc

arc

Cette fonction est note sous matlab acos.


On obtient les graphes de ces deux fonctions de la mme faon que prcdemment :
Fonctions cosinus et arccosinus
3

arccos(x)
cos(x)

2.5

1.5

0.5

0.5

2.5.4. Fonction arctan


La restriction de la fonction tangente lintervalle

Fonctions numriques dune variable relle

61

est continue et strictement croissante donc elle admet une fonction rciproque note

arc


arc

qui est de mme nature et, si

arc

Cette fonction est note sous matlab atan.


Graphiquement, on a
Fonctions tangente et arctangente
6
arctan(x)
tan(x)
4

6
6

0
x

2.5.5. Exemple modle


On donne la fonction suivante :

On note, pour

62

Mathmatiques avec Matlab

, on a

1) Vrier que pour tout

En dduire le domaine de dnition


2) Montrer que, sur

de .

est drivable et vrier avec Matlab la relation

pour tout
3) Etudier la drivabilit de

en et

4) Etudier les variations de la fonction


thonormal.

et tracer son graphe dans un repre or-

5) On donne la fonction

Etudier ses variations et tracer son graphe sur la mme gure que
6) En comparant et sur , puis sur
montrer que

Solution
1) On dnit avec Matlab

et on vrie que

si
si

:
syms x positive
dDeX=1-(1-sqrt(x))^2/(1+x);
simplify(dDeX)
ans = 2*x^(1/2)/(1+x)

On dduit de cette galit que, pour

, on a

Fonctions numriques dune variable relle

De plus

Ainsi, pour tout ,


et est dni.
Le domaine de dnition de est
.

2) On sait que
est drivable sur

est donc drivable si
lest, et si de plus

, et si

est drivable sur ]

La fonction

soit
La fonction

est donc drivable sur

Pour

on calcule avec Matlab


et

hDeX=2*sqrt(x)/(1+x);
fDeX=asin(hDeX) ;
hPrimeDeX=diff(hDeX)
hPrimeDeX = 1/x^(1/2)/(1+x)-2*x^(1/2)/(1+x)^2
d1DeX=simplify(hPrimeDeX*1/sqrt(1-hDeX^2))
d1DeX = -1/x^(1/2)/(x+1)*signum(x-1)
fPrimeDeX=simplify(diff(fDeX))
fPrimeDeX = -1/x^(1/2)/(x+1)*signum(x-1)
On a bien vri lgalit

3) Pour tudier la drivabilit droite en on calcule avec Matlab

63

64

Mathmatiques avec Matlab

fDe0=simplify(subs(fDeX,x,sym(0)))
fDe0 = 0
limit((fDeX-fDe0)/x,x,0,right)
ans = inf
Comme

nest pas drivable droite en , mais sa courbe reprsentative admet au point dabscisse une demi-tangente verticale.
On tudie de mme la drivabilit en :
fDe1=simplify(subs(fDeX,x,sym(1)))
fDe1 = 1/2*pi
limit((fDeX-fDe1)/(x-1),x,1,right)
ans = -1/2
limit((fDeX-fDe1)/(x-1),x,1,left)
ans = 1/2
Ainsi

et

admet en une drive droite et une drive gauche, qui sont distinctes.
4) On a montr la question quen tenant compte du signe de

, on avait

si

si

Le signe de sen dduit immdiatement.


Pour complter le tableau de variations, on calcule la limite de
limit(fDeX,x,inf)
ans = 0
Do

en

Fonctions numriques dune variable relle

65

On construit la courbe reprsentative de


hold on
set(gca,LineStyle,- -)
ezplot(fDeX,0,5)
grid on
axis ([0 5 0 2.5])
dessineRepere
La commande set(gca,LineStyle,- -) permet dobtenir lorsquon utilise ensuite ezplot un trac en pointills. Cela permettra de diffrencier les graphes de et
asin(2*x^(1/2)/(1+x))
2.5

1.5

0.5

0.5

1.5

2.5
x

3.5

4.5

5) La fonction g est dnie, continue sur drivable sur


sa drive
gDeX=2*atan(sqrt(x)) ;
gPrimeDeX=diff(gDeX)
gPrimeDeX = 1/x^(1/2)/(1+x)
Ainsi

On calcule

66

et

Mathmatiques avec Matlab

est strictement croissante sur

On calcule les limites aux bornes et

gDe0 =simplify(subs(gDeX,x,sym(0)))
gDe0 =0
limit(gDeX,x,inf)
ans = pi

Do le tableau de variations

On trace la courbe reprsentative de en traits pleins :


set(gca,LineStyle,-)
ezplot(gDeX,0,5)
axis ([0 5 0 2.5])
dessineRepere
2*atan(x^(1/2))
2.5

1.5

0.5

0.5

1.5

2.5
x

3.5

6) Sur lintervalle , lexpression donne par de


par :
fPrime0_1=subs(fPrimeDeX,signum(x-1),-1)
fPrime0_1= 1/x^(1/2)/(1+x)
fPrime0_1-gPrimeDeX
ans = 0

4.5

se simplie

Fonctions numriques dune variable relle

Sur cet intervalle, on a

67

do

Pour dterminer cette constante, on calcule par exemple

fDe1Tiers=simplify(subs(fDeX,x,sym(1/3)))
fDe1Tiers =1/3*pi
gDe1Tiers=simplify(subs(fDeX,x,sym(1/3)))
gDe1Tiers =1/3*pi
fDe1Tiers-gDe1Tiers
ans = 0

Donc, pour tout on a

On a aussi vri que


et on a

Sur lintervalle

on simplie

puis on calcule

fPrime1_inf=subs(fPrimeDeX,signum(x-1),1)
fPrime1_inf = -1/x^(1/2)/(1+x)
fPrime1_inf+gPrimeDeX
ans =0
do

On value cette constante comme prcdemment :


fDe3=simplify(subs(fDeX,x,sym(3)))
fDe3 = 1/3*pi
gDe3=simplify(subs(gDeX,x,sym(3)))
gDe3 =2/3*pi
fDe3+gDe3
ans=pi
Do

si

2.6. Comparaison de deux fonctions


2.6.1. Notion de voisinage
Soit un point de Une fonction est dite dnie dans un voisinage de
si elle est dnie en tout point dun intervalle ouvert
contenant , sauf
peut-tre en

68

Mathmatiques avec Matlab

Une fonction est dnie au voisinage de (respectivement

(respectivement
dnie sur un intervalle de la forme

si elle est
).

2.6.2. Notations dites de Landau

Soit dnie au voisinage de (pouvant tre ventuellement


). Il arrive
frquemment quau voisinage du point les valeurs de soient du mme ordre de
grandeur que celles dune autre fonction ayant une expression analytique plus simple
utiliser. Par exemple, les expressions

vrient

et

De mme, pour

on a

et

Il est alors prfrable de travailler sur la deuxime expression au voisinage du point


considr. Do les dnitions :

on dira que

on dira que

est quivalente

au voisinage de si

On notera :

est un petit o de au voisinage de si

On notera :

on dira que

est un grand O de au voisinage de si

le rapport
est born au voisinage de

On notera :

2.6.3. Exemples
On a

Fonctions numriques dune variable relle

et pour tout

69

Les dnitions ci-dessus sappliquent aux suites. Ainsi, pour

2.7. Formules de Taylor et dveloppements limits


Nous avons vu prcdemment que la drivation est essentielle dans ltude des
fonctions. On va voir que les dveloppements limits fournissent encore plus de prcision dans lallure et le comportement dune fonction au voisinage dun point donn.
Une autre application concrte et importante de cette notion est le calcul approch de
la valeur dune fonction en un point, en particulier pour celles qui ne sont pas de type
polynomial.
2.7.1. Diverses formules de Taylor
Dans toute cette section, on se donne une fonction
drivable.

indniment

2.7.1.1. Formule de Taylor-Lagrange

On considre sur un intervalle ni


et .
Alors il existe un point
tel que :

Cest la formule de Taylor-Lagrange lordre pour .


Pour , la formule prcdente est celle du thorme des accroissements nis.
Lorsquon sait que la drive dordre de est majore par une constante la
formule prcdente fournit une approximation polynomiale de pour petit,
on a
en fonction des drives successives de en . En effet, en posant

70

Mathmatiques avec Matlab

2.7.1.2. Exemple
On se propose de :
1) afcher la valeur arctan
2) calculer les drives premire et deuxime de arctan

3) donner une majoration de (arctan) sur lintervalle



4) utiliser la formule de Taylor-Lagrange pour donner une approximation
arctan et une estimation de lerreur commise en remplaant par

de

Solution
1) On obtient avec Matlab
format long
atan(1.01)
ans=0.79037324672830
2) On calcule les drives successives de

syms x real
FdeX=atan(x) ;
Fdif1=diff(FdeX)
Fdif1=1/(1+x^2)
Fdif2=diff(Fdif1)
Fdif2=-2/(1+x^2)^2*x
3) De

on dduit, en majorant la valeur absolue du numrateur et en minorant le dnominateur, la majoration de la drive seconde sur lintervalle
M=2*1.01/(1+1)^2
M=0.50500000000000
4) On peut donc appliquer la formule de Taylor-Lagrange lordre et lingalit du paragraphe 2.7.1.1 pour avoir une majoration de lerreur lorsquon confond
arctan avec
la valeur de

arctan

On a

Fonctions numriques dune variable relle

71

Avec Matlab, on obtient


vBarre=atan(1)+1/2*0.01
vBarre=0.79039816339745
MajErreur=M*(1.01-1)^2/2
MajErreur=2.525000000000004e-005
2.7.1.3. Formule de Mac-Laurin
est de la forme tant une
On se place dans le cas o lintervalle
variable positive relle quelconque. Alors la formule de Taylor-Lagrange lordre
devient :

2.7.1.4. Formule de Taylor-Young


Considrons maintenant le cas o est une application dun intervalle vers ,
et soit et deux points de . Alors on montre quil existe une fonction dnie au
voisinage de telle que

avec
Le terme

pour

est appel reste dordre pour

Noter qu loppos des autres formules donnes prcdemment, cette dernire


prcise le comportement du reste dordre pour tendant vers
Dans le cas particulier o

on obtient

On peut noter, en utilisant les notations de Landau

72

Mathmatiques avec Matlab

et

On dira que

est le dveloppement limit (en abrg D.L.) dordre de au voisinage de


Les D.L. sont trs utiles pour ltude locale des fonctions puisquils permettent :

une expression plus simple de , (au voisinage du point),


une recherche facile de limites,
un trac plus prcis de la courbe (recherche dasymptotes,
position de la courbe par rapport celles-ci,...).

2.7.2. Exemples de calculs de D.L.


On va donner le D.L. lordre 2 et au voisinage de de la fonction dnie par

On utilise la fonction taylor


au point , mais lordre

de Matlab qui donne le dveloppement de Taylor,

syms x real
taylor(sqrt(1+x)*sin(x),3,0)
ans=x+1/2*x^2

Le D.L. de

lordre est donc

on crira aussi que

avec

pour

On afche le D.L. lordre 2 au voisinage de de la fonction


syms x real
taylor(exp(x),3,1)
ans=exp(1)+exp(1)*(x-1)+1/2*exp(1)*(x-1)^2

Fonctions numriques dune variable relle

73

Ainsi

avec

pour

2.7.3. Application des D.L.

2.7.3.1. Calcul de limites


Calculons

Cette limite se prsente sous la forme indtermine

On cherche des dveloppements limits un ordre sufsant, pour lever lindtermination. Ici lordre 2 ne suft pas. En effet
syms x real
% Au numrateur :
U = taylor(exp(sin(x)),3,0)
% lordre est 3-1=2.
U= 1+x+1/2*x^2
V =taylor(exp(tan(x)),3,0)
V = 1+x+1/2*x^2
% Par diffrence :
U -V
ans = 0
% De mme, au dnominateur :
W= taylor(sin(x)-tan(x),3,0)
ans = 0

74

Mathmatiques avec Matlab

A lordre 3, on a

syms x real
% Au numrateur :
U = taylor(exp(sin(x)),4,0)
U= 1+x+1/2*x^2
V =taylor(exp(tan(x)),4,0)
V = 1+x+1/2*x^2+1/2*x^3
% Par diffrence :
U -V
ans = 1/2*x^3
% De mme, au dnominateur :
W= taylor(sin(x)-tan(x),4,0)
ans = -1/2*x^3

do

2.7.3.2. Recherche dasymptote oblique


Trouver lasymptote oblique la courbe reprsentative de la fonction dnie par

au voisinage de

en effectuant le changement de variable

et en calculant le D.L. un ordre convenable. Donner lallure de cette courbe.


1) On vrie avec Matlab que

syms x real
f= sqrt(1+x+x^2) ;
limit(f,x,inf)
ans = inf

Fonctions numriques dune variable relle

75

2) On calcule le D.L. lordre 2 de

en effectuant le changement de variable

au point

g=f/x
g = 1+x+x^2)^(1/2)/x
syms t real
h = subs(g,x,1/t) ;
h1 = taylor(h,3,0)
h1 = 1+1/2*t+3/8*t^2

Ainsi, en remplaant par

on a, au voisinage de

puis

Lasymptote oblique est donc la droite dquation

et la courbe reprsentative de est au-dessus de cette asymptote au voisinage de


car

au voisinage de

3) On construit la courbe et son asymptote


ezplot(f,0,6)
hold on ;grid on
g=x+1/2
set(gca,LineStyle,)
ezplot(g,0,6)
axis auto ; axis equal
legend (y=f(x),y=x+1/2,4)
title( )
dessineRepere

76

Mathmatiques avec Matlab

1
y=f(x)
y=x+1/2
0
0

2.8. Exercices
2.8.1. Bijection rciproque
On donne la fonction dnie de dans

par

Montrer quelle est bijective et donner sa fonction rciproque.


(solution p. 79)
2.8.2. Etude de fonction et construction de courbe
On considre la fonction

dnie sur

1) Montrer que la fonction

est impaire.

) par

Fonctions numriques dune variable relle

77

2) Etudier les variations de sur [0, .


3) Prciser les tangentes la courbe reprsentative aux points dabscisses 0 et .
4) Construire la courbe reprsentative de pour
5) En dduire le trac de la courbe dquation

(solution p. 80)
2.8.3. Etude dune fonction priodique
Soit la fonction dnie sur par
entire de dnie de la manire suivante :

dsigne la partie

est le plus grand entier tel que

Vrier que est priodique de priode et donner son graphe.


(solution p. 82)
2.8.4. Fonction trigonomtrique inverse
On considre la fonction

dnie par

1) Montrer que est dnie sur .


2) Utiliser Matlab pour reprsenter graphiquement

sur

3) Montrer que si

,
4) Montrer que est paire et 2 -priodique et en dduire lexpression de
pour appartenant
, puis

5) Vrier graphiquement
(solution p. 84)

78

Mathmatiques avec Matlab

2.8.5. D.L. et tude de limite (1)


On propose de calculer la limite pour

de la fonction dnie par


1) Donner les D.L. lordre et au voisinage de

On pose

des expressions

2) En dduire la limite.
(solution p. 86)
2.8.6. D.L. et recherche dasymptote
1) Dterminer lasymptote oblique (pour
fonction donne par

) la courbe reprsentative de la

On posera et on effectuera un D.L. de lexponentielle lordre 2 au voisinage


de .
2) Prciser la position de la courbe par rapport cette asymptote au voisinage de

3) Tracer son graphe.

(solution p. 87)
2.8.7. D.L. et tude de limite (2)
Soit

1) Un D.L. lordre 4 au voisinage de suft-il pour calculer la limite de cette


?
expression pour
2) Calculer cette limite. Donner lallure de cette fonction au voisinage de
(solution p. 88)

Fonctions numriques dune variable relle

79

2.9. Solutions
Exercice 2.8.1
Pour montrer que la fonction est injective on part de

qui implique ncessairement que et sont de mme signe. On a donc, pour et


positifs :

syms x1 x2 x y real
FdeX1=x1/(1+x1) ;FdeX2=x2/(1+x2) ;
D=FdeX1-FdeX2 ;
simplify(D)
ans=-(-x1+x2)/(1+x1)/(1+x2)
la rponse implique que

On fait de mme pour les variables ngatives.

Pour montrer que est surjective et trouver lexpression de lapplication rciproque, on doit rsoudre lquation (en la variable )

pour quelconque dans


Le mme raisonnement que prcdemmment montre
que si la donne est positive alors lest aussi. On considre donc deux cas :

% Cas y positif
solve(x/(1+x)=y)
ans=-y/(-1+y)
% Cas y ngatif
solve(x/(1-x)=y)
ans=y/(1+y)
On dduit que

est surjective, et la fonction rciproque de

est lapplication

80

Mathmatiques avec Matlab

Exercice 2.8.2
1) On dnit

et on vrie limparit avec Matlab .


syms x real ; syms a positive
fDeX = x/a * sqrt(a^2-x^2) ;
% Imparit
fDeMoinsX = subs(fDeX, x,-x)
fDeMoinsX = -x/a*(a^2-x^2)^(1/2)
fDeMoinsX + fDeX
ans = 0

On a bien vri que

.
2) Pour tudier les variations de , on tudie le signe de la drive sur lintervalle

fPrimeDeX = diff(fDeX) ;
fPrimeDeX = factor(fPrimeDeX)
fPrimeDeX = -(-a^2+2*x^2)/a/(-(x-a)*(x+a))^(1/2)

La commande numden permet de sparer numrateur et dnominateur dans lexpression de


[N,D] = numden(fPrimeDeX)
N = a^2-2*x^2
D = a*(a^2-x^2)^(1/2)
S =solve(N)
S = [ 1/2*2^(1/2)*a]
[ -1/2*2^(1/2)*a]
Ainsi sur [0 [,

sannule pour

et est positif pour

On calcule les extrema, en utilisant subs :


fDe0 = subs(fDeX,x,0)
fDe0 = 0
fDeA = subs(fDeX,x,a)
fDeA = 0
fMax = simplify(subs(fDeX,x, S(1)))
fMax = 1/2*a

Fonctions numriques dune variable relle

81

Do le tableau de variations

3)

fPrimeDe0 = simple(subs(fPrimeDeX,x,0))
fPrimeDe0 = 1

La tangente au point dabscisse a pour coefcient directeur

Pour obtenir la tangente au point dabscisse


ment de en gauche :

on tudie la limite du taux daccroisse-

limit((fDeX-fDeA)/(x-a),x,a,left)
ans = -inf
On a

et la courbe reprsentative de admet une demi-tangente verticale au point ( ).


sobtient par :
4) La courbe reprsentative pour

f4DeX =subs (fDeX, a,4)


ezplot(f4DeX,-4,4)
grid on ;dessineRepere
1/4*x*(16x^2)^(1/2)

2
1.5
1
0.5
0
0.5
1
1.5
2

0
x

82

Mathmatiques avec Matlab

5) On rsout lquation dinconnue


syms y real
E = a^2*y^2 - x^2*(a^2-x^2) ;
Se = solve(E,y)
Se = [ x/a*(a^2-x^2)^(1/2)]
[ -x/a*(a^2-x^2)^(1/2)]
ce qui montre que

ou

On peut donc complter le trac laide de la courbe reprsentative de

hold on
ezplot (-f4DeX, -4,4)
title(Courbe dquation a^2y^2=x^2(a^2-x^2))
Courbe dquation a^2y^2=x^2(a^2x^2)

2
1.5
1
0.5
0
0.5
1
1.5
2

0
x

Exercice 2.8.3

Sous Matlab, la fonction mathmatique


ne permet pas deffectuer de calcul symbolique :

est dnie par oor(x), qui

Fonctions numriques dune variable relle

oor(pi)
ans = 3
syms x real
gDeX=x-oor(x)
? ? ? Function oor not dened for values of class sym.

Pour prouver la priodicit, posons

Ainsi

do

donc

On a alors

do la priodicit de
Pour le graphe, on effectue le trac sur les intervalles

syms x n real
gDeX=x-n ;
clf
hold on
for i=-5 :5,
=subs(gDeX,n,i) ;
ezplot(,i,i+1) ;
end
axis [-6 6 -1 1] ;axis equal ; grid on
title(g(x)=x-E(x))
dessineRepere

g(x)=xE(x)
2

1
6

0
x

83

84

Mathmatiques avec Matlab

Exercice 2.8.4
1) Pour tout rel

donc est dnie.


2) On utilise ezplot pour reprsenter graphiquement sur :

syms x real
fDeX=acos(cos(x))
set(gca,LineStyle,- -)
ezplot(fDeX,-3*pi,3*pi)
hold on ;grid on
axis equal
T=axis ; % pour mmoriser Xmin, Xmax, Ymin, Ymax
dessineRepere
acos(cos(x))
8

0
x

3) Par dnition, la fonction est la rciproque de la fonction restreinte


. Donc on a , pour tout

priodique, on a :

4) La fonction tant paire et 2

et

Fonctions numriques dune variable relle

Matlab donne aussi ces rsultats


fDeMoinsX=simplify(subs(fDeX,x,-x))
fDeMoinsX = acos(cos(x))
fDeXplus2PI=simplify(subs(fDeX,x,x+2*pi))
fDeXplus2PI = acos(cos(x))
Pour appartenant

, on a

et

, et pour

donc, pour appartenant lintervalle

Par priodicit, pour

On remarquera que

on a

implique

do

et, pour tout rel

5) On utilise cette dernire expression pour reprsenter graphiquement


set(gca,LineStyle,-)
ezplot(abs(x-2*pi*oor((x+pi)./(2*pi))),[-3*pi 3*pi])
axis(T)

85

86

Mathmatiques avec Matlab


abs(x2*pi*floor((x+pi)./(2*pi)))
8

Exercice 2.8.5.
1) On calcule les trois expressions

0
x

) comme fonctions de

syms x h real
f1=sqrt(2*x-x^4);f2=x^(1/3) ; f3=x^(3/4) ;
f=(f1-f2)/(1-f3)
f =((2*x-x^4)^1/2)-x^(1/3))/(1-x^(3/4))
g1=subs(f1,x,1+h);
g2=subs(f2,x,1+h);
g3=subs(f3,x,1+h);
On donne les D.L. lordre demand :
Tg1=taylor(g1,h,0,2)
Tg1 =1-h
Tg2=taylor(g2,h,0,2)
Tg2 =1+1/3*h
Tg3=taylor(g3,h,0,2)
Tg3 =1+3/4*h
2) On en dduit que pour
, on a

Fonctions numriques dune variable relle

87

do la limite cherche :
rapport=(Tg1-Tg2)/(1-Tg3)
rapport =16/9
On peut effectuer un calcul direct de limite avec Matlab :
limit(f,x,1)
ans =16/9
Exercice 2.8.6
1) Le changement de variable (permettant lanalyse au voisinage de zro) donne
syms x t real
f=(x+1)*exp(1/x);
g=subs(f,x,1/t)
g =(1/t+1)*exp(t)
do :

Texp=taylor(exp(t),3)
Texp =1+t+1/2*t^2

En dveloppant et en revenant la variable initiale, on a :


g1=expand((1/t+1)*Texp)
g1 =1/t+2+3/2*t+1/2*t^2
f1=expand(subs(1/t+2+3/2*t,t,1/x))
f1 =x+2+3/2/x
do lquation de la droite asymptote
2) La courbe est au-dessus de cette droite car pour

Lorsque tend vers , tend vers par valeurs positives.

3) On construit la courbe et son asymptote


ezplot(f,0.5,10)
hold on ;grid on
set(gca,LineStyle,)
ezplot(x+2,0,10)
axis equal ;axis ([-0.1 10 -0.1 12])
dessineRepere
title(La courbe et son asymptote)

88

Mathmatiques avec Matlab


La courbe et son asymptote
12

10

10

Exercice 2.8.7
La fonction est dnie sur

A lordre 4, le D.L du numrateur ne permet pas de conclure (il donne une indtermination) :
syms x real
num = sin(tan(x))+sin(x)-2*x;
Tnum4=taylor(num,5)
Tnum4 = 0
A lordre 5 on a

et donc la limite est

Tnum5=taylor(num,6)
Tnum5 = -1/60*x^5

. On reprsente graphiquement cette fonction :


ezplot(num/x^5,-2,2)
hold on ;grid on
plot([-2 2],[-1/60 -1/60],)
axis([-1.5 1.5 -0.7 0.1])
dessineRepere

Fonctions numriques dune variable relle

89

On obtient
(sin(tan(x))+sin(x)2*x)/x^5
0.1

0.1

0.2

0.3

0.4

0.5

0.6

1.5

0.5

0
x

0.5

1.5

Le graphe au voisinage de zro montre bien que la fonction est assez plate et se comporte comme .

90

Chapitre 3

Intgration

3.1. Intgrale de Riemann


3.1.1. Dnitions
3.1.1.1. Sommes de Darboux et intgrale de Riemann
On donne une fonction numrique continue, monotone et positive sur un inter. On considre une subdivision de cet intervalle pas quidistants :
valle

et

On appelle sommes de Darboux les quantits :

On montre que pour une telle fonction , les suites et forment deux
suites adjacentes (lune croissante, lautre dcroissante) convergeant vers une mme
limite qui est gale laire de la surface dlimite par la courbe reprsentative de
(dans un repre orthonorm), laxe des et les droites dquations

91

92

Mathmatiques avec Matlab

On a lingalit (dans le cas o

est croissante)

Graphiquement,
reprsente laire dun rectangle de largeur et
de hauteur et on dessine ci-dessous les surfaces correspondant la runion
de ces rectangles, daires respectives et ainsi que la surface daire
Somme de Darboux Sn

3.5

2.5

1.5

1
1

1.1

1.2

1.3

1.4

1.5
x

1.6

1.7

1.8

1.9

1.7

1.8

1.9

Somme de Darboux sn

3.5

2.5

1.5

1
1

1.1

1.2

1.3

1.4

1.5
x

1.6

Intgration

93

Aire A
4

3.5

2.5

1.5

0.5

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

On posera par dnition

et on dira que la fonction

est intgrable (au sens de Riemann) entre

et

Il est important de remarquer ds maintenant que la variable lintrieur de


lintgrale peut tre note dune manire quelconque ... variant entre et
3.1.1.2. Intgrale dune fonction continue
On admet quon peut aussi construire lintgrale dans le cas o
continue sur
:
Thorme.
Toute fonction continue est intgrable sur

est seulement

3.1.1.3. Gnralisation
De mme, on peut aussi considrer le cas o prsente un nombre ni de disconcest--dire quen un certain nombre de points
tinuits sur

94

Mathmatiques avec Matlab

de

, les limites gauche et droite

existent et ne sont pas ncessairement gales. On dit alors que


morceaux.

est continue par

Le rsultat concernant le cas gnral des fonctions bornes dnies sur lintervalle
est donn par le :
Thorme.
Toute fonction borne et monotone par morceaux est intgrable sur

On verra que de nombreuses fonctions concrtes (comme certains signaux) sont


de cette nature. Ci-dessous, un exemple.
fonction continue par morceaux
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0

0.5

1.5
x

2.5

3.1.1.4. Dnition
Si

on pose par dnition

et si

Intgration

95

3.1.2. Exemple

On peut, sur un exemple effectuer ce calcul de sommes de Darboux. Considrons


la fonction dnie par

sur lintervalle
a=1 ; b=2 ;
syms x
f=x^2 ;
syms n k real
h=(b-a)/n ;
Sn=h*symsum(subs(f,x,a+k*h),k,1,n)
Sn = 1/n*(n+1/n*(n+1)^2-(n+1)/n+
1/3/n^2*(n+1)^3-1/2/n^2*(n+1)^2+1/6/n^2*(n+1))
sn=h*symsum(subs(f,x,a+(k-1)*h),k,1,n)
sn = 1/n*(n-3*(n+1)/n+13/6/n^2*(n+1)+
1/n*(n+1)^2-3/2/n^2*(n+1)^2+1/3/n^2*(n+1)^3+2/n-1/n^2)

(On a utilis la commande symsum(sk,k,1,n) qui permet le calcul symbolique de la


somme des premiers termes de la suite ).

On reprsente graphiquement les deux suites et pour


N=1 :1 :30 ;
sN=double(subs(sn,N)) ;
SN=double(subs(Sn,N)) ;
plot(sN,x)
hold on
plot(SN,+)
title(Suites Sn et sn)
legend(sn,Sn)

96

Mathmatiques avec Matlab


Suites Sn et sn
4
sn
Sn
3.5

2.5

1.5

10

15

20

25

30

On peut aussi calculer la limite de ces deux suites :


limit(sn,n,inf,left)
ans =7/3
limit(Sn,n,inf,left)
ans =7/3
On retrouve bien

3.1.3. Proprits gnrales


Les proprits essentielles de cette intgrale sont :
1) relation de Chasles : pour tout
,

2) linarit : pour tous rels

Intgration

3) positivit (pour

):

4) majoration (pour

):

5) formule dite de la moyenne lorsque

est continue :

3.2. Primitive dune fonction


3.2.1. Cas dune fonction continue
Soit

une fonction continue sur

. Posons, pour

On montre grce la formule de la moyenne ci-dessus que


qui sannule en . Autrement dit,

Si

et

est une primitive quelconque de

est la primitive de

alors

Cette diffrence se note usuellement

Par exemple, on a

97

98

Mathmatiques avec Matlab

3.2.2. Cas dune fonction intgrable quelconque


Lorsque est seulement intgrable , on montre que la fonction
nue, mais non ncessairement drivable.

est encore conti-

Exemple
Soit

la fonction dnie sur par

si
si

La reprsentation graphique sobtient par :


clf
ezplot(x,0,1) ;
hold on
ezplot(2/x,1,3) ;
axis([-0.2 3.2 -0.2 2.2])
plot(0,0,o)
plot(1,1,o)
plot(3,2/3,o)
grid on
dessineRepere
title(Graphe de f)
Graphe de f

1.5

0.5

0.5

Calculons

1.5
x

2.5

Intgration

Pour

, on a

Pour

99

, la relation de Chasles donne

On construit le graphe de F :
clf
ezplot(t^2/2,0,1) ;
hold on
ezplot(1/2+2*log(t),1,3);
axis([-0.2 3.2 -0.2 3])
title(Graphe de F)
grid on
dessineRepere
Graphe de F
3

2.5

1.5

0.5

0
0

0.5

1.5
t

est continue en car

2.5



mais nest pas drivable en : on peut lobserver sur le graphique et le vrier en
calculant les limites gauche et droite du taux daccroissement :

100

Mathmatiques avec Matlab

syms t real
F0=t^2/2 ;
F1=1/2+2*log(t) ;
Fde1=subs(F0,t,1)
Fde1 =1/2
limitG=limit((F0-Fde1)/(t-1),t,1,left)
limitG =1
limitD=limit((F1-Fde1)/(t-1),t,1,right)
limitD =2
Ainsi

3.2.3. Notation
On conviendra par la suite que la notation (imprcise)

dsignera une primitive quelconque de . On devra faire attention lusage de cette


notation en particulier par rapport la variable des primitives considres et lintervalle de travail.
3.3. Calcul intgral
3.3.1. Calcul intgral avec Matlab
La commande int permet de calculer :
des intgrales dnies : on dtermine par exemple la valeur de

en utilisant les commandes :


syms x real
I= int(sqrt((1-x)/(2+x)),-1,1)
I = 3/4*pi-2^(1/2)+3/2*asin(1/3)
double(I)
ans = 1.4517

Intgration

do

des primitives : on obtient

par
syms x real
FdeX=int(x*sqrt(1+x))
FdeX = -2/3*(1+x)^(3/2)+2/5*(1+x)^(5/2)
Ainsi

On peut, dans lutilisation de int, prciser la variable dintgration :


syms t x
int((t*x+1)/(t^2+1),t)
ans = 1/2*x*log(t^2+1)+atan(t)
int((t*x+1)/(t^2+1),x)
ans = 1/(t^2+1)*(1/2*t*x^2+x)
ce qui montre que

alors que

3.3.2. Changement de variable


3.3.2.1. Cas dune intgrale dnie
Soit

une fonction continue sur

Dans lintgrale

on peut effectuer un changement de variable :

101

102

Mathmatiques avec Matlab

o
, et
former les fonctions
o

est une primitive de

est continment drivable sur

dans

. En drivant, on obtient


est une primitive de

Si

. En effet, on peut

et

donc

et

on a

3.3.2.2. Exemple
Calculer

en effectuant le changement de variable

La dmarche suivre est :


1) on dnit lintervalle
correspond
la valeur

: la valeur
. De plus on a

, correspond

est continument drivable,


ce qui revient en fait calculer :

2) on vrie que la fonction


3) on calcule

4) on peut alors calculer lintgrale :

, et

Intgration

103

Sous Matlab on a :
par calcul direct de lintgrale :
syms x real
FdeX=exp(x)/(1+exp(x));
int(FdeX,1,2)
ans=log(1+exp(2))-log(1+exp(1))
par le changement de variable :
syms t real
GdeT=subs(FdeX,x,log(t))
exp(log(t))/(1+exp(log(t)))
B= int(GdeT*diff(log(t)),sym(exp(1)),sym(exp(2)))
B = log(1+exp(2))-log(1+exp(1))
3.3.2.3. Cas dune intgrale indnie

est une primitive de


On a vu prcdemment que

Do :

En particulier

3.3.3. Intgration par parties


En intgrant la drive dun produit

o et sont deux fonctions supposes continment drivables sur


les formules dintgration par parties :

, on obtient

et

Lemploi de ces formules est utile lorsquon intgre un produit de fonctions telles
que
etc,

o est une fonction polynomiale.

104

Mathmatiques avec Matlab

3.3.3.1. Exemple
Donner une primitive de la fonction
On pose

do

Avec Matlab :

syms x
u = x;
vPrime = exp(x) ;
uPrime = diff(u)
uPrime = 1
v = int(vPrime)
v = exp(x)
I = u*v-int(uPrime*v)
I = x*exp(x)-exp(x)

On pouvait videmment obtenir ce rsultat directement par :


int(x*exp(x))
ans = x*exp(x)-exp(x)
3.4. Dcomposition en lments simples
Nous avons insr volontairement cette section (sur le calcul polynomial et les
fractions rationnelles) dans ce chapitre en vue de ses applications concernant le calcul de primitives et dintgrales. Cette dcomposition utilise les nombres complexes,
rappels au chapitre 1 du volume 3.
3.4.1. Les fonctions polynmes
3.4.1.1. Dnitions
ou

Une fonction polynme de degr est dnie sur une partie quelconque de
par

Intgration

sont rels ou complexes, et

La fonction polynomiale nulle, dnie par


son degr).
auteurs xent

On dit que est une racine dordre


. On notera

105

na pas de degr (certains

de si

o est une fonction polynme telle que

3.4.1.2. Thorme de dAlembert


Le rsultat fondamental sur les racines dune fonction polynme est le suivant (de
dAlembert) :
Thorme.
Une fonction polynme de degr strictement positif admet
exactement racines dans (comptes avec leur multiplicit).
3.4.1.3. Division euclidienne
On peut effectuer la division euclidienne de deux fonctions polynmes
, cette dernire tant suppose non nulle. On a le rsultat :

et

Thorme.
Il existe un couple unique de fonctions polynmes telles que :

avec

3.4.1.4. Calculs avec Matlab
Sous Matlab, une fonction polynme peut tre dnie sous forme dexpression
symbolique, mais aussi sous forme dun tableau numrique form de ses coefcients.
Certaines oprations (en particulier la division euclidienne) ncessitent lutilisation
de ces tableaux numriques. La conversion dune forme lautre se fait laide des
fonctions poly2sym et sym2poly.
3.4.1.5. Exemple
On donne les polynmes

106

Mathmatiques avec Matlab

1) Calculons les racines de

et factorisons ce polynme.

syms x
A=x^6-12*x^4+5 ;
B=2*x^4-11*x^3+9*x^2+27*x-27;
solve(B)
ans = [1 -3/2 3 3]
factor(B)
ans = (x-1)*(2*x+3)*(x-3)^2
Ainsi les racines de ce polynme sont

, cette dernire tant racine double.


2) Effectuons la division euclidienne de par : pour cela, on doit :
- convertir les polynmes et en tableaux numriques, contenant les coefcients du polynme dans lordre dcroissant des degrs :
A1 = sym2poly(A)
A1 = 1 0 -12 0 0 0 5
B1=sym2poly(B)
B1 = 2 -11 9 27 -27

- utiliser deconv, pour obtenir les quotient et reste sous forme de tableaux numriques et :
[Q1,R1]=deconv(A1,B1)
Q1 = 0.5000 2.7500 6.8750
R1 = 0 0 0 37.3750 -122.6250 -111.3750 190.6250
- convertir les rsultats en polynmes symboliques :

Q= poly2sym(Q1)
Q = 1/2*x^2+11/4*x+55/8
R = poly2sym(R1)
R = 299/8*x^3-981/8*x^2-891/8*x+1525/8

Les polynmes quotient et reste sont donc :

Intgration

107

3.4.2. Fractions rationnelles


3.4.2.1. Dnitions
Ici, on appelle fraction rationnelle toute fonction de la forme

o et sont deux fonctions polynomiales et nest pas la fonction polynomiale nulle. On dira que cette fraction rationnelle est irrductible sil ny a pas
de racine commune aux deux polynmes et . Une racine dordre du polynme est appele un ple dordre de la fraction .
Lorsque

, la division euclidienne permet dcrire :

avec

Le polynme est appel la partie entire de

Nous considrons par la suite des fractions rationnelles

avec

3.4.2.2. Dcomposition en lments simples


On appelle lment simple (de premire espce) tout lment de la forme

o sont des rels ou complexes et un entier positif. De mme un lment simple


(de 2me espce) est un lment de la forme

o et sont des rls, un entier positif et o


. Cette dernire
na pas de racine relle.
condition signie que lquation

108

Mathmatiques avec Matlab

Le rsultat essentiel de la dcomposition en lments simples dune fraction

avec

est le suivant :

Thorme.
Sur , se dcompose dune manire unique
en somme nie dlments simples de 1re espce.
Sur , se dcompose dune manire unique
en somme nie dlments simples de 1re et 2me espce.

Cette dcomposition sobtient partir dune factorisation du dnominateur


exemples suivants illustrent les cas usuels.

Les

3.4.3. Exemples
3.4.3.1. Cas de ples rels simples
La dcomposition en lments simples de la fraction rationnelle

est de la forme

Dans ce cas simple, on peut obtenir les coefcients et de la manire suivante :


en multipliant par les deux membres de lgalit ci-dessus, on a

do, en faisant tendre vers on obtient


.
on fait de mme pour avoir

Intgration

109

Sous Matlab, on obtient une dcompsition en utilisant la fonction residue (qui


sapplique des polynmes donns sous forme de tableaux numriques) :
syms x
AdeX=2*x
BdeX=(x-1)*(x+2)
A1=sym2poly(AdeX)
A1=2 0
B1=sym2poly(BdeX)
B1= 1 1 -2
[R1, P1]=residue(A1,B1)
R1 = 1.3333
0.6667
P1 = -2
1
sym(R1)
ans= [4/3]
[ 2/3]
le rsultat signie que les valeurs contenues dans ( et ) sont les numrateurs
(appels aussi rsidus) des lments simples de premire espce correspondant aux
ples donns dans (dans lordre et ). On a donc

3.4.3.2. Cas gnral


Considrons la fraction rationnelle

Elle admet le ple simple rel le ple triple rel et deux ples doubles complexes conjugus et
La dcomposition en lments simples de sur est de la forme

On utilise le calcul symbolique et la mthode didentication pour obtenir ces coefcients :

110

Mathmatiques avec Matlab

on dnit

et sa forme dcompose note

syms x
F=(x^4+2*x^3-x+11)/((x-2)*(x-1)^3*(x^2+1)^2);
syms a1 b1 b2 b3 c1 d1 c2 d2 real
FDecomp=a1/(x-2)+b1/(x-1)+b2/(x-1)^2+b3/(x-1)^3+...
(c1*x+d1)/(x^2+1)+(c2*x+d2)/(x^2+1)^2;
par rduction au mme dnominateur, on crit

sous forme de quotient

en utilisant la fonction numden de Matlab


[NDecomp, DDecomp]=numden(FDecomp)
NDecomp =
2*c2*x+c1*x^7-5*c1*x^6-a1+3*a1*x-7*a1*x^4-5*a1*x^2+7*a1*x^3
-3*a1*x^6+a1*x^7+5*a1*x^5-2*b1+2*b2+2*c1*x+b1*x^7+7*b1*x^5
+5*b2*x^2-3*b2*x^5-6*b2*x^3+4*b2*x^4+b2*x^6+11*b1*x^3
-10*b1*x^4+5*b1*x-8*b1*x^2+2*d2-4*b1*x^6+b3*x^5-3*b2*x
-7*c1*x^2-7*d1*x-4*b3*x^2+2*b3*x^3+b3*x-2*b3*x^4-2*b3
+11*d1*x^2-12*d1*x^3+10*d1*x^4-12*c1*x^4+11*c1*x^3
+10*c1*x^5-5*d2*x^3+9*d2*x^2+d2*x^4+9*c2*x^3+c2*x^5
-5*c2*x^4-7*d2*x-7*c2*x^2+d1*x^6-5*d1*x^5+2*d1
DDecomp =
(x-2)*(x-1)^3*(x^2+1)^2
en utilisant collect, on rduit et ordonne le numrateur
celui de :

pour lidentier

collect(NDecomp,x)
ans =
(c1+a1+b1)*x^7
+(-5*c1-3*a1+b2-4*b1+d1)*x^6
+(7*b1+10*c1+5*a1+c2+b3-3*b2-5*d1)*x^5
+(4*b2-2*b3-10*b1+d2+10*d1-12*c1-7*a1-5*c2)*x^4
+(-5*d2+2*b3+7*a1+11*c1+9*c2-6*b2+11*b1-12*d1)*x^3
+(-5*a1+11*d1+5*b2-4*b3-7*c2-8*b1-7*c1+9*d2)*x^2
+(-3*b2+5*b1+3*a1+2*c2+2*c1+b3-7*d2-7*d1)*x
+2*d1-2*b3-a1+2*b2+2*d2-2*b1

Intgration

111

cette identication conduit un systme linaire de huit quations huit inconnues :


[a1 b1 b2 b3 c1 d1 c2 d2] = solve(c1+a1+b1=0, ...
d1-4*b1+b2-5*c1-3*a1=0, ...
7*b1+c2-5*d1-3*b2+5*a1+b3+10*c1=0, ...
-2*b3-7*a1-10*b1+4*b2+10*d1-12*c1-5*c2+d2=1, ...
2*b3-5*d2+9*c2-6*b2+7*a1+11*c1+11*b1-12*d1=2, ...
9*d2-5*a1-7*c1-7*c2+11*d1-8*b1+5*b2-4*b3=0, ...
2*c2-7*d2+2*c1+3*a1+b3+5*b1-3*b2-7*d1=-1, ...
-2*b1-2*b3+2*d2+2*b2+2*d1-a1=11)
la solution est donne par
a1 = 41/25
b1 =-4
b2 =1
b3 =-13/4
c1 =59/25
d1 =21/20
c2 =-7/25
d2 =-33/20

en lments simples est donc


La dcomposition de

3.4.3.3. Remarques
Dans le cas de ples multiples, la fonction residue de Matlab peut conduire des
erreurs importantes dans le calcul numrique des coefcients
Dans le cas de ples complexes, cette fonction residue donne la dcomposition
dans et non dans .
La mthode didentication prsente ci-dessus est gnrale, mais les calculs, sils
sont effectus la main, peuvent tre fastidieux. Il existe des mthodes spciques
pour obtenir les lments simples de premire ou de deuxime espce. Nous ne les
prsenterons pas ici.

112

Mathmatiques avec Matlab

3.5. Intgration de fractions rationnelles


Le calcul de primitives de fonctions sous forme de fractions rationnnelles utilise la
dcomposition en lments simples.
Illustrons ce calcul sur quelques exemples.

Exemple 1
Pour chercher les primitives


on doit dcomposer en lments simples la fraction


La dcomposition (voir paragraphe 3.4.3.1) est de la forme :

avec

Do

syms x
AdeX=x ;
FdeX=(x+1)*(x+5) ;
alpha=limit((x+1)*AdeX/FdeX,x,-1)
alpha= -1/4
beta=limit((x+5)*AdeX/FdeX,x,-5)
beta = 5/4

ainsi


et

Intgration

113

Exemple 2
Pour chercher les primitives de la fonction

on dcompose cette fraction en lments simples sous la forme

On procde par identication (voir paragraphe 3.4.3.2) : on rduit au mme dnominateur lexpression

et on crit son numrateur sous forme de polynme rduit et ordonn


syms x
syms a1 a2 b1 real
FDecomp=a1/(x-1)+a2/(x-1)^2+b1/(x+1);
[Num,Den]=numden(FDecomp)
Num = a1*x^2-a1+a2*x+a2+b1*x^2-2*b1*x+b1
Den =(x-1)^2*(x+1)
Num=collect(Num)
Num = (a1+b1)*x^2+(-2*b1+a2)*x-a1+b1+a2
Par identication de et du numrateur de F(x), on obtient un systme de
trois quations aux trois inconnues
[a1 a2 b1]=solve(a1+b1=0,-2*b1+a2=1,-a1+b1+a2=0)
a1 = 1/4
a2 =1/2
b1 =-1/4
do la dcomposition

Les primitives cherches sont donc

114

Mathmatiques avec Matlab

On obtenait directement avec Matlab :

A=x ; B=(x-1)^2*(x+1) ;
int(A/B)
ans = -1/2/(x-1)+1/4*log(x-1)-1/4*log(x+1)

3.6. Exercices
3.6.1. Calculs de primitives usuelles
Donner sous Matlab les primitives des fonctions usuelles suivantes dnies par :
1) ,
2)

3)
4)
5)

(solution p. 116)

3.6.2. Linarisations dexpressions trigonomtriques


1) Utiliser linstruction simple de Matlab (option combine(trig)) pour exprimer
en fonction de et (on dira quon a linaris )
2) En dduire

3) Utiliser la mme mthode pour calculer

(solution p. 116)

Intgration

115

3.6.3. Changement de variable (1)


On donne lintgrale

Vrier que la fonction

dnie par

est un changement de variable (voir 3.3.2) et utiliser ce changement de variable pour


calculer .
(solution p. 117)
3.6.4. Changement de variable (2)
Soient

1) Que donne Matlab pour ces deux intgrales ?


2) Montrer grce au changement de variable
3) Calculer En dduire et

que

(solution p. 118)
3.6.5. Dcomposition en lments simples
1) Factoriser sur le polynme
2) Donner la dcomposition en lments simples de la fraction rationnelle

3) En dduire la valeur de lintgrale

4) Vrier ce rsultat par un calcul direct de cette intgrale sous Matlab.


(solution p. 119)

116

Mathmatiques avec Matlab

3.7. Solutions
Exercice 3.6.1
Il suft dutiliser la commande int.
On prendra garde certaines rponses donnes par Matlab, qui font abstraction
des domaines de dnitions des fonctions considres.
Voici certaines rponses aux primitives demandes
syms x a real
int(x^a,x)
ans=x^(a+1)/(a+1)
int(log(x))
ans=x*log(x)-x
int(tan(x))
ans=-log(cos(x))
la dernire rponse est correcte si on crit

Exercice 3.6.2
1) En crivant

syms x real
simple(sin(x)^4)

on obtient plusieurs rponses, parmi lesquelles


combine(trig) :
3/8+1/8*cos(4*x)-1/2*cos(2*x)
do

2) De cette forme linarise de

on dduit

On peut le vrier avec Matlab


I=int(3/8+1/8*cos(4*x)-1/2*cos(2*x))
I =3/8*x+1/32*sin(4*x)-1/4*sin(2*x)

Intgration

3) De mme

simple(cos(x)^2)
...
combine(trig) :
1/2*cos(2*x)+1/2
...
I=int(1/2*cos(2*x)+1/2,0,pi/2)
I =1/4*pi

Ainsi

Exercice 3.6.3
La fonction

est continument drivable sur

pour
pour

on a
on a

dnie par

. De plus :

La formule de changement de variable

donne ici

car le signe de est positif.


Avec Matlab, on peut vrier le rsultat obtenu


syms x t rea1
I1=int(sqrt(1-x^2),x,-1,1)
I1 = 1/2*pi
I2=int((cos(t))^2,-pi/2,pi/2)
I2 = 1/2*pi

117

118

Mathmatiques avec Matlab

On peut aussi effectuer pas pas les calculs du changement de variable :


fDEx=sqrt(1-x^2) ;
phiDEt=sin(t) ;
alpha=sym(-pi/2) ;beta=sym(pi/2) ;
phiDEalpha=simplify(subs(phiDEt,t,alpha))
phiDEalpha = -1
phiDEbeta=simplify(subs(phiDEt,t,beta))
phiDEbeta = 1
gDEt=simplify(subs(fDEx,x,phiDEt)*diff(phiDEt))
gDEt = signum(cos(t))*cos(t)^2
I3=int(gDEt,t,alpha,beta)
I3 = 1/2*pi

Exercice 3.6.4
1) Le calcul direct des deux intgrales ne peut pas seffectuer sous Matlab, faute
de primitive calculable :
syms x real
FdeX=sqrt(sin(x))/(sqrt(sin(x))+sqrt(cos(x)));
int(FdeX,0,pi/2)
Warning : Explicit integral could not be found
2) On doit donc utiliser le changement de variable donn. La fonction , dnie
par

est continument drivable sur . De plus :

pour
pour

et

Intgration

119

La formule de changement de variable donne ici

3) Il est par ailleurs facile de vrier que

GdeX=sqrt(cos(x))/(sqrt(sin(x))+sqrt(cos(x)));
SdeX=simplify(FdeX+GdeX)
SdeX = 1
IplusJ=int(SdeX,0,pi/2)
IplusJ = 1/2*pi
Do

Exercice 3.6.5
1) On factorise le polynme :
syms x real
BdeX=x^3+1 ;
factor(BdeX)
ans = (x+1)*(x^2-x+1)
On a deux lments simples, lun de premire espce, lautre de deuxime espce,
do la dcomposition :

120

Mathmatiques avec Matlab

2) On va dterminer les coefcients

(sous Matlab) par identication :

FdeX=1/BdeX ;
syms a b c
GdeX=a/(x+1)+(b*x+c)/(x^2-x+1)
GdeX =a/(x+1)+(b*x+c)/(x^2-x+1)
[N,D]=numden(GdeX)
N =a*x^2-a*x+a+b*x^2+b*x+c*x+c
D =(x+1)*(x^2-x+1)
collect(N,x)
ans =(b+a)*x 2+(b-a+c)*x+a+c
ainsi

et de

S=solve(b+a=0,b-a+c=0,a+c=1);
[S.a S.b S.c]
ans =[ 1/3, -1/3, 2/3]

on a

3) La primitive de la premire fraction est simple. Pour la deuxime fraction, on


doit lcrire sous forme

avec

Do les calculs :

syms a1 b1
u=x^2-x+1 ;
u1=diff(u) ;
num=collect(a1+b1*u1,x)
num =2*b1*x-b1+a1
S=solve(2*b1=-1/3,-b1+a1=2/3);
[S.a1 S.b1]
ans =[ 1/2, -1/6]
Et donc
Par ailleurs

Intgration

Le calcul de la primitive de

sous forme canonique :

ncessite lcriture du polynme

On recherche l encore les coefcients

par identication

syms a1 a2 b real
collect(a1*(a2*(x-b)^2+1),x)
ans = a1*a2*x^2-2*a1*a2*b*x+a1*(a2*b^2+1)
[a1,a2,b]=solve(a1*a2=1,-2*a1*a2*b=-1,a1*(a2*b^2+1)=1)
a1 = 3/4
a2 = 4/3
b = 1/2
do lon dduit que

et par le changement de variable

on trouve


Arc

En regroupant les diffrents rsultats, on obtient

Arc

121

122

Mathmatiques avec Matlab

4) Le calcul direct sous Matlab est videmment plus rapide et donne :


int(FdeX)
ans =1/3*log(1+x)-1/6*log(x^2-x+1)
+1/3*3^(1/2)*atan(1/3*(2*x-1)*3^(1/2))

D EUXIME PARTIE

Analyse numrique lmentaire

123

124

Chapitre 4

Arithmtique de lordinateur

Dans ce chapitre, on va rappeler lessentiel sur larithmtique des ordinateurs travaillant sur les ottants en double prcision.
Il est important de rappeler que toute opration mathmatique sur des nombres
rels (ou complexes) effectue sur ordinateur ne peut se faire que si les nombres en
question ont un nombre ni de chiffres signicatifs. Et donc ds le dpart, une opration arithmtique quelconque obira la contrainte technique du nombre possible de
chiffres utilisables : il faudra arrondir ou tronquer.

4.1. Reprsentation des entiers


4.1.1. Gnralits

On sait que :

Soit un entier naturel tel que


Thorme :
pour tout entier
dentiers

il existe une unique suite nie


tels que

o appartient

Lcriture de en base est alors

125

126

Mathmatiques avec Matlab

Les bases utilises couramment sont :

base binaire,
base octale,
base dcimale,
base hexadcimale.
Pour cette dernire, par convention, les sont pris dans lensemble


o reprsente
On a par exemple :

reprsente etc...

On obtient successivement la suite


base de la manire suivante :

des chiffres dun entier dans la

le terme est le reste de la division euclidienne de par

On note

car

le quotient de cette division euclidienne.


Le terme est alors le reste de la division euclidienne de par

Plus gnralement les termes pour


euclidienne par des quotients successifs.

sont les restes de la division

4.1.2. Exemples
On dispose en pratique les calculs de la manire suivante :
pour convertir le nombre dcimal en base :
11 2
1 5 2
1 2 2
0 12
10

ainsi

Arithmtique de lordinateur

127

de mme, pour convertir le nombre dcimal en base :


92 16
12 5 16
5 0

ainsi =

4.1.3. Fonctions prdnies de Matlab


Les fonctions dec2bin, dec2hex et dec2base permettent de convertir un entier
donn en une chane de caractres reprsentant cet entier dans la base choisie.
Les fonctions bin2dec, hex2dec et base2dec effectuent la conversion inverse.
Ainsi :
dec2bin(82)
ans=1010010
bin2dec( 10111)
ans=23
base2dec( 77 ,8)
ans=63

4.2. Reprsentation des rels positifs en virgule xe


4.2.1. Notations
Lcriture usuelle en base 10, telle que

stend pour dnir lcriture en virgule xe dans une base quelconque :

On remarquera que, tant donn une suite innie


appartenant
la suite de terme gnral

est :
croissante car

dentiers

128

Mathmatiques avec Matlab

et majore par car

Elle converge donc (voir chapitre 1, paragraphe 1.4, p. 24) vers un nombre rel,
not

ou encore

On montre plus gnralement que tout rel positif peut scrire

Cest la reprsentation usuelle des nombres rels positifs en base appele reprsentation en virgule xe. Le nombre est la somme dune partie entire

et dune partie dite fractionnaire (ventuellement nulle)

Le calcul des pour

se fait comme prcdemment. Pour

et si est la partie fractionnaire de

alors

on ritre ensuite le procd pour dterminer

on a

Arithmtique de lordinateur

129

4.2.2. Exemple en base 2

en virgule xe en base
La partie entire est
On veut crire
. Pour obtenir la partie fractionnaire, on peut disposer les calculs de la faon
suivante :


...
... ...

Ainsi par priodicit on trouve :

A linverse, pour convertir la partie fractionnaire de ce rel de la base 2 vers la base


10, on a

Cest la limite de la somme des termes dune suite gomtrique de premier terme
de raison , limite qui est gale

Donc on retrouve

4.2.3. Exemple en base 8


On a de mme

...






...
...

do

130

Mathmatiques avec Matlab

4.2.4. Calculs avec Matlab


Les fonctions prdnies de conversion (dec2bin, bin2dec, etc...) ne sappliquent
qu des entiers. Mais on peut dnir une fonction
function s=fracDec2bin(frac,n)
qui calcule en base les premiers chiffres de la partie fractionnaire dun rel,
donne en base . On obtient le rsultat sous forme dune chane de caractres .
En reprenant les notations ci-dessus, on utilise avec la variable
qui
contiendra chaque itration la partie fractionnaire et la variable qui contiendra
la partie entire . Suivant la valeur de , on ajoute le caractre ou la chane
.
function s=fracDec2bin(frac,n)
Z=frac ;
for i=1 :n,
v=2*Z ;
X=oor(v) ;
Z=v-X ;
%Z est la nouvelle partie fractionnaire
if X==1,s(i)= 1 ;else s(i)= 0 ;end
end
Exemple dutilisation :
fracDec2bin(1/3,14)
ans =01010101010101

4.3. Reprsentation des rels en virgule ottante


4.3.1. Gnralits
Soit une base. On montre alors le rsultat suivant :
tout rel non nul peut scrire sous la forme

, avec

sappelle lexposant, la mantisse.


On crira aussi en dcalant la virgule dune position vers la droite :

Arithmtique de lordinateur

131

Cest lcriture scientique dun rel.


Les deux critures ci-dessus sont appeles reprsentation en virgule ottante normalise ( ) du nombre .
4.3.2. Exemple
Le rel

en base scrit


On utilise Matlab pour donner les 25 premiers chiffres de lcriture en base 2 de ce
mme rel : laide de fonctions dcrites prcdemment, on obtient la partie entire,
qui comprend 6 chiffres, et les 19 premiers chiffres de la partie fractionnaire en base
2:
dec2bin(61)
ans =
fracDec2bin(0.123,19)
ans
En concatnant les deux expressions, on obtient

puis, en dcalant convenablement la virgule

ou bien, en notation scientique

4.4. Les rels en V.F.N chiffres


Une machine (ordinateur, calculatrice,...) ne peut stocker quun nombre ni de
chiffres pour reprsenter un rel donn. On utilise pour cela la reprsentation en virgule ottante normalise, en arrondissant ou en tronquant la mantisse chiffres.

132

Mathmatiques avec Matlab

4.4.1. En base 10
4.4.1.1. Troncature et arrondi
Soit un rel positif quelconque (en

Alors sa reprsentation en virgule ottante normalise chiffres en troncature est


le nombre

.
Sa reprsentation machine en virgule ottante normalise chiffres en arrondi est
le nombre


o

si
sinon.

Dans le deuxime cas, on renormalisera si ncessaire lcriture de


Larrondi est en fait le nombre le plus proche de
chiffres.

dont la mantisse possde

4.4.1.2. Exemple
Soit

Alors, en arrondi

4.4.1.3. Utilisation de vpa


Sous Matlab, linstruction

ou la squence

donne la reprsentation de lexpression en virgule ottante, en base 10, et en arrondi


chiffres. reprsente le plus souvent une expression symbolique pouvant tre

Arithmtique de lordinateur

133

value. Mais peut tre aussi de type numrique, chane de caractres, ou tableau.
Le rsultat est de type symbolique.
vpa(sym(pi),30)
ans = 3.14159265358979323846264338328
x= sym(50/3333) ;
x1 =vpa(x,10)
x1= .1500150015e-1
x2=vpa(x,29)
x2=.15001500150015001500150015002e-1
4.4.2. En base 2
Le principe de larrondi et de la troncature est le mme quen base 10.
Soit un rel positif quelconque (en

Alors sa reprsentation machine en virgule ottante normalise chiffres en troncature est

.
Sa reprsentation machine en virgule ottante normalise chiffres en arrondi est
le nombre


o

si
si

4.4.2.1. Exemple
Le nombre

a pour reprsentation en V.F.N :


en troncature 3 chiffres

en arrondi 4 chiffres

134

Mathmatiques avec Matlab

4.4.3. Les formats machine oat et double


En pratique, la plupart des ordinateurs utilise la base . La norme actuelle retient
deux formats standards de reprsentation des rels :
4.4.3.1. Le format double (ottants en double prcision)
Pour un rel non nul donn, on considre son criture en virgule ottante normalise arrondie 53 chiffres

avec

La mantisse a son premier chiffre diffrent de 0, donc ncessairement gal


1 en base 2 et il nest pas ncessaire de le reprsenter en machine. Cest la convention
du "bit implicite". On ne mmorisera donc que la partie fractionnaire de la mantisse

Pour reprsenter lexposant en base 2 avec 11 chiffres, on impose

et on reprsentera lexposant biais


compris entre 1 et 2046. 1.
Enn le signe sera mmoris laide dun bit gal 1 si le nombre est ngatif,
gal 0 si est positif.
Avec ces notations, le nombre sera reprsent sur 64 bits rpartis ainsi :

4.4.3.2. Le format oat (ottants en simple prcision)


Pour ce format, les rels sont stocks sur bits, 1 pour le signe, 8 pour lexposant
et 23 pour la mantisse, suivant le mme principe.

. Les exposants biaiss 0 et 2047 sont utiliss pour reprsenter des nombres dnormaliss,
notamment 0 et inf.

Arithmtique de lordinateur

135

4.4.3.3. Calculs avec Matlab


Les calculs numriques seffectuent en binaire, au format double, en arrondi mme
si les rsultats sont ensuite afchs en dcimal.
Il ne faut pas confondre cet afchage en base 10, avec lutilisation de la fonction
qui, elle, effectue directement les calculs en arithmtique ottante en base 10 (voir
4.4.1.3).

Si on veut connatre avec Matlab le format interne de reprsentation dun rel, il


faut utiliser le format dafchage hex (hexadcimal).

Considrons par exemple le nombre

x=0.6 ;
format hex
x
x =3fe3333333333333
en convertissant chacun des chiffres hexadcimaux en binaire, on obtient la reprsentation binaire interne de :

Le bit de signe est donc (nombre positif) ;


Lexposant biais scrit en binaire


donc en base

format
bin2dec(01111111110)
ans = 1022

et lexposant non biais est

Enn, la mantisse est, aprs ajout du bit implicite


On peut retrouver la valeur dcimale de cette mantisse en utilisant, pour convertir la
partie fractionnaire, la fonction fracBin2dec obtenue lexercice 4.6.3
fracBin2dec(0011001100110011001100110011001100110011)
ans = 0.2000
On retrouve alors la valeur dcimale du nombre

136

Mathmatiques avec Matlab

4.5. Oprations de base sur les nombres machine


Nous allons dcrire la multiplication, laddition et la division sur une machine
travaillant en arithmtique ottante. Ces oprations lmentaires sont effectues dans
une mmoire auxiliaire (accumulateur) travaillant gnralement en double prcision.
Le schma simpli est le suivant :
les nombres exacts , sont reprsents (en machine) par leurs quivalents
nombres machines chiffres ;
lopration arithmtique est excute sur chiffres pour les mantisses ;
le rsultat est ensuite arrondi chiffres.
Nous illustrons ces oprations sur des exemples.
4.5.1. Multiplication
4.5.1.1. Principe
On part de deux nombres exacts et
leur produit

en base par exemple, en vue de calculer

Le produit machine

est effectu exactement en double prcision ( chiffres). Aprs renormalisation


ventuelle de la mantisse et changement de puissance, la machine arrondit
chiffres et afche le rsultat .
4.5.1.2. Exemple
Soient

et

On suppose que

Alors




(rsultat sur chiffres)

Arithmtique de lordinateur

137

La machine donnera le rsultat

On notera que la valeur exacte du produit est

En utilisant vpa, on peut retrouver avec Matlab les tapes de ce calcul en base 10 :
a=vpa(24.321,4)
a = 24.32
b=vpa(680.76,4)
b =680.8
P = a*b
P = 16557.056
P1 = vpa(P,4)
P1 =.1656e5

4.5.2. Division
Le principe est le mme que pour la multiplication.. Si on note, en base 10

avec

on a


do

et

seffectue donc suivant deux cas :


si
le quotient est calcul exactement sur chiffres puis le
rsultat mantisse est arrondi chiffres pour obtenir
Lopration machine en base 10

si
on crit
; le calcul
comme prcdemment et le rsultat machine est

seffectue exactement

138

Mathmatiques avec Matlab

4.5.3. Addition
4.5.3.1. Principe
Laddition machine de

seffectue sur les mantisses aprs avoir "dnormalis" lun des nombres, pour obtenir
des exposants gaux. La suite des oprations effectuer est :
ramener lexposant du plus petit celui du plus grand,
ajouter les mantisses sur chiffres,
arrondir le rsultat chiffres.
Deux cas sont distinguer :
Si alors le rsultat machine est

Si

on ajoute
zros gauche de la mantisse pour avoir la

nouvelle mantisse La somme est ensuite calcule exactement en double


prcision et le rsultat est arrondi chiffres.

4.5.3.2. Exemples
On suppose que

on a ici

et on donne

on crit

zros

do

(mantisse sur chiffres). Le rsultat machine est donc

Arithmtique de lordinateur

Avec la commande vpa de Matlab, on a :


a = vpa(0.3218e5,4)
a = .3218e5
b = vpa(0.2432e-1,4)
b = .2432e-1
aPlusbDouble = vpa(a+b,8)
aPlusbDouble = 32180.024
aPlusb = vpa(aPlusbDouble,4)
aPlusb = .3218e5
Toujours avec

on donne

Dans ce cas, on a

et

do

(mantisse sur chiffres). Le rsultat machine, en arrondi, est


4.5.3.3. Calculs au format double de Matlab
Dans ce cas
1) Cas

et on peut retrouver les deux cas prcdents :

x=2226.76 ;
y=x*2^(-54)
y = 1.2361e-013
z=x+y
z = 2.2268e+003
format hex
x
x = 40a165851eb851ec
z
z = 40a165851eb851ec

139

140

Mathmatiques avec Matlab

Grce au format dafchage hxadcimal, on vrie quon a obtenu dans ce cas


2) Cas

y1=x*2^(-53) ;
z1=x+y1
z1 = 40a165851eb851ed
format long
z1
z1 = 2.226760000000001e+003
x
x = 2.226760000000000e+003
On a ici

4.6. Exercices
4.6.1. Conversion dun entier
Convertir en base 2 le nombre
(solution p. 141)
4.6.2. Schma de Horner
Pour convertir un nombre

en base 10, il suft dvaluer dans cette base

Cette valuation peut se faire en utilisant le schma de Horner

1) Convertir en base 10

et

2) Ecrire une fonction

qui applique le schma de Horner pour convertir en base 10 lentier dont la suite des
chiffres en base est donne dans le tableau
Tester cette fonction.
(solution p. 142)

Arithmtique de lordinateur

141

4.6.3. Conversion dun nombre virgule


Ecrire de mme une fonction

qui convertit en valeur dcimale


fractionnaire

la chane de caractres

reprsentant la partie

dun nombre en base 2.


(solution p. 143)
4.6.4. Valeurs extrmes au format double
En se rfrant au paragraphe 4.4.3 p. 134, calculer :
1) Le plus grand rel reprsentable en machine au format double.
2) Le plus petit rel strictement positif reprsentable dans ce mme format.
3) Le rel tel que soit le plus petit rel strictement suprieur 1 reprsentable en machine.
4) Comparer avec les valeurs des constantes realmax, realmin et eps de Matlab.
(solution p. 143)
4.7. Solutions
Exercice 4.6.1
A chaque itration, on calcule les quotients et le reste dans la division
euclidienne de par On initialise , et la base 2.
x=1321 ;b=2 ;
q(1)=x ;
i=1 ;
while q(i) ~=0
q(i+1)=x(q(i)/b) ;
r(i)=q(i)-b*q(i+1);
i=i+1 ;
end
r
r=10010100101

142

Mathmatiques avec Matlab

Le rsultat sobtient en inversant lordre des restes obtenus.


n=length(r) ;
xb=r(n :-1 :1)
xb = 1 0 1 0 0 1 0 1 0 0 1
On peut vrier le rsultat obtenu en utilisant la fonction prdnie dec2bin.
dec2bin(x)
ans = 10100101001

Exercice 4.6.2
1) On applique le schma de Horner pour convertir de la base 2 et de la base 8 vers
la base 10 :
x10=((((1*2+0)*2+1)*2+1)*2+0)*2+1
x10 = 45
y10=(5*8+6)*8+7
y10 = 375
On effectue les vrications laide des fonctions prdnies bin2dec et base2dec
bin2dec(101101)
ans = 45
base2dec(567,8)
ans = 375

2) Selon le schma de Horner, la valeur dcimale sobtient en rptant pour les


chiffres donns dans le tableau
lopration

pour

function xd=horner(Xb,b)
xd=0 ;
for i=1 :1 :length(Xb)
xd=xd*b+Xb(i) ;
end

On teste cette fonction en reprenant les deux exemples de la question prcdente.


horner([1 0 1 1 0 1],2)
ans = 45
horner([5 6 7],8)
ans = 375

Arithmtique de lordinateur

143

Exercice 4.6.3
Pour

on doit calculer

On utilisera une variable qui contient les valeurs successives de On initialise la


valeur de et, chaque itration, on lui ajoute la valeur seulement si
function x=fracBin2dec(s)
x = 0;
P =1/2 ;
for i = 1 :length(s)
if(s(i)==1)
x = x+P ;
end
P = P/2 ;
end
Exemple dutilisation :
fracBin2dec(010101010101010101010101)
ans = 0.3333

Exercice 4.6.4
1) Au format double, le plus grand exposant est

et la plus grande mantisse est, en binaire

soit

Le plus grand nombre reprsentable dans ce format est donc


doubleMAX=(2-2^-52)*2^1023
doubleMAX =1.7977e+308

144

Mathmatiques avec Matlab

2) De mme on a

et

do

doubleMIN=1*2^(-1022)
doubleMIN = 2.2251e-308

3) Le nombre suivant immdiatement au format double est

do le calcul de

epsilon=2^(-52)
epsilon = 2.2204e-016

4) Ces trois valeurs correspondent trois constantes prdnies de Matlab :


realmax
ans = 1.7977e+308
realmin
ans = 2.2251e-308
eps
ans = 2.2204e-016

Chapitre 5

Gestion derreurs

Que se passe-t-il si on excute avec Matlab les instructions suivantes ?


disp(On ajoute 10 fois 0.1 )
S=0 ;
for n=1 :10,
S=S+0.1 ;
end
if S==1
disp(et on trouve exactement 1)
else
disp(mais on ne trouve pas exactement 1)
end
On obtient pour rponse :
On ajoute 10 fois 0.1
mais on ne trouve pas exactement 1
Comme on la vu au chapitre prcdent, lorsquon remplace le rel par sa reprsentation machine, on commet une erreur due la conversion en base 2 puis
larrondi, appele erreur daffectation.
Dans ce chapitre, aprs avoir rappel des rsultats gnraux sur les calculs derreurs absolues et relatives, on prsente des calculs o les erreurs daffectation doivent
tre prises en considration.

145

146

Mathmatiques avec Matlab

5.1. Erreur absolue et erreur relative


5.1.1. Dnition
Soit une quantit relle donne suppose exacte et
On appelle erreur absolue commise sur la quantit

une approximation de .

et erreur relative commise sur le quotient

On exprimera souvent lerreur relative en pourcentage, pour la rendre plus signicative.


Ces erreurs sont souvent estimes ou majores.
5.1.2. Erreurs doprations

Dans ce paragraphe, on note et des valeurs approches de deux nombres rels


et .

5.1.2.1. Addition et soustraction


On a

Lerreur commise sur la somme des deux nombres vrie donc

De mme

5.1.2.2. Multiplication et division

En supposant et strictement positifs, en utilisant la fonction logarithme et le


thorme des accroissements nis, on sait quil existe un rel compris entre et ,
tel que :

Comme
que

est proche de

on confond dans lestimation derreur,

avec , de sorte

Gestion derreurs

De mme :

147

Or

Donc une majoration de lerreur relative est


Ce dernier rsultat reste valable pour et non nuls, de signes quelconques (en raisonnant sur les valeurs absolues). Par un calcul analogue au prcdent, on obtient,
pour un quotient de nombres non nuls :

5.1.3. Estimation derreur par le thorme des accroissements nis


Soit une application

On suppose connatre une valeur approche de appartenant . On suppose galement que la fonction est continument drivable sur On veut estimer lerreur

commise sur .
Le thorme des accroissements nis permet dafrmer quil existe un nombre compris entre et tel que

On en dduit lestimation

et donc lerreur absolue commise en confondant et est au plus de

148

Mathmatiques avec Matlab

Exemple
Estimons lerreur

commise en confondant

Ici on a
prcdent donne

et

et on peut prendre

Le rsultat

On peut vrier sous Matlab que lerreur

observe par un calcul direct est bien infrieure lestimation :


format long
errObservee = abs(1000003^(1/3)-100)
errObservee = 9.999989997311332e-05

5.2. Erreurs daffectation


Etant donn un nombre rel si on note sa reprsentation machine digits
dans une base donne, on appelle erreur daffectation le nombre

5.2.1. Exemple
On majore lerreur daffectation commise en base , en VFN
en arrondi, sur le nombre

On a

chiffres, et

Gestion derreurs

et

On obtient une majoration de lerreur relative en remarquant que

do

5.2.2. Rsultat gnral


On a le rsultat gnral suivant :

Thorme

Soit le rel positif


Dans une machine travaillant sur les nombres en virgule ottante
normalise chiffres et en arrondi, on a :



(en base
)



(en base
).

Montrons par exemple le deuxime point Soit

alors

si
si

et donc

149

150

Mathmatiques avec Matlab

or

et

si
si

le rsultat sen dduit.


Remarque
Le thorme ci-dessus permet dobtenir, en base quelconque, la majoration

Ce nombre sappelle "epsilon machine".


5.2.3. Cas des formats oat et double
On dduit du paragraphe prcdent que lerreur relative due lapproximation
dun nombre par sa reprsentation binaire en machine est :

(au format double)


(au format oat).

On retiendra en particulier pour les calculs numriques avec Matlab, qui se font au
format double, que


On pourra vrier que ce nombre est gal la constante eps de Matlab.
5.2.4. Erreurs daffectation et oprations
Mme si on effectue une opration partir des valeurs exactes des nombres et
on peut commettre une erreur daffectation sur le rsultat de lopration. Cette erreur
daffectation est donne par le rsultat suivant.

Gestion derreurs

Thorme
Les rsultats machines et
vrient les majorations :

151

Il suft dappliquer le thorme nonc au paragraphe 5.2.2.


5.3. Cumul derreurs daffectation et dopration
Gnralement, dans les calculs numriques, on effectue plusieurs oprations lmentaires pour lobtention de la valeur cherche. Il est clair que les erreurs daffectation commises au dbut sur les nombres rels exacts, entre autres, vont avoir un impact
sur le calcul nal. Plus prcisment, pour chaque opration, il faudra tenir compte
de lerreur dopration calcule partir de lerreur commise sur chaque oprande,
de lerreur daffectation du rsultat de lopration.
5.3.1. Cas dune somme
5.3.1.1. Cas dune somme de deux nombres
Soient deux nombres et dont on donne des valeurs approches et avec
des erreurs absolues majores par et Leur somme sera approche en
machine par

et on aura

Rsultat :
Lerreur absolue commise sur le rsultat nal de la somme est obtenue en
ajoutant lerreur dopration dans le calcul de la somme et lerreur
daffectation de cette somme.
Si les erreurs commises sur et proviennent elles-mmes uniquement de lerreur
daffectation de ces deux nombres, le rsultat machine de laddition de et est

152

Mathmatiques avec Matlab

not abusivement

et on a

5.3.1.2. Gnralisation
A laide dun raisonnement par rcurrence, on gnralise ce rsultat la somme
:
de nombres

5.3.2. Cas dun produit


5.3.2.1. Cas dun produit de deux nombres
On donne deux nombres non nuls et dont on connat des valeurs approches
et avec une erreur relative estime et Leur produit sera approch en
machine par

et on aura

Utilisant le fait que


on en dduit

Rsultat :
Lerreur relative commise sur le rsultat nal du produit est estime en
ajoutant lerreur relative dopration dans le calcul du produit, et lerreur
relative daffectation de ce produit.

Gestion derreurs

153

L encore, si les erreurs commises sur et proviennent elles-mmes uniquement de


lerreur daffectation de ces deux nombres, on note

pour

et on a

5.3.2.2. Exemple
Dans une arithmtique en base 10, en VFN et en arrondi
calcule le produit
avec

chiffres, on


a=1.075 ;b=1.075 ;t=3 ;
digits(t) ;
A=vpa(a) ;
B=vpa(b) ; ;
P=vpa(A*B)
P = 1.17
On calcule ensuite les erreurs relatives commises sur
exactes les valeurs de ces nombres au format double.

et en considrant comme

errA=abs(a-double(A))/a
errA = 0.0047
errB=abs(b-double(B))/b
errB = 0.0047
p=a*b
p = 1.1556
errP=abs(p-double(P))/p
errP = 0.0124
On notera que les valeurs calcules avec vpa sont de type symbolique et quil faut les
convertir dans le type double pour effectuer numriquement les calculs derreurs.
On vrie les majorations

154

Mathmatiques avec Matlab

epsM=1/2*10^(-t+1)
epsM = 0.0050
errA+errB+epsM
ans = 0.0143
3*epsM
ans = 0.0150
On remarque bien que, dans cette arithmtique, lerreur relative commise dans le calcul de


est strictement suprieure la somme des erreurs relatives sur

et sur

5.3.2.3. Gnralisation
A laide dun raisonnement par rcurrence, on montre que, tant donns nombres
non nuls
:

5.4. Erreurs dabsorption


Soient deux nombres donns par leur reprsentation machine en base , en arrondi
chiffres :

On a vu au chapitre prcdent que, si

on a

On dit quil y a absorption de


produit lorsque

par

On peut vrier aussi que cette erreur se

Plus gnralement, une erreur dabsorption se produit lorsquon ajoute deux nombres
dordres de grandeur trs diffrents. Dans ce cas

Une consquence importante de lerreur dabsorption est la non associativit de laddition machine, comme lillustrent les exemples ci-dessous.

Gestion derreurs

155

5.4.1. Exemples
5.4.1.1. Une somme de trois nombres

Effectuons les deux additions machines suivantes dans une arithmtique darrondi
digits, travaillant en double prcision et en base

La premire addition seffectue comme suit

On peut aussi effectuer ce calcul avec Matlab, en utilisant la fonction vpa :


digits(3) ;
x = vpa(1) ; y = vpa(0.004) ;z=vpa(0.003) ;
S1= vpa(vpa(x+y)+z)
S1 = 1.00
La deuxime addition donne :





S2=vpa(x+vpa(y+z))
S2 = 1.01

156

Mathmatiques avec Matlab

5.4.1.2. Une somme de plusieurs nombres


Dans cette mme arithmtique, si on calcule

fois

dans lordre indiqu, on a :


S=1 ;
for i = 1 :100,
S=vpa(S+0.004, 3) ;
end
S
S = 1.00
Si on ajoute dabord entre eux les nombres 0.004, puis le nombre 1 la n, on obtient :
S=0 ;
for i = 1 :100,
S=vpa(S+0.004, 3) ;
end
S =vpa(1+S,3)
S = 1.40

5.4.2. Consquence pratique


On retiendra donc que dans une somme de nombres positifs, il faut dabord commencer par additionner les petits nombres pour viter lerreur dabsorption.
5.5. Erreurs de cancellation
Une erreur de cancellation se produit gnralement lorsquon soustrait deux quantits de mme signe trs proches.
5.5.1. Prsentation sur un exemple
Considrons deux nombres exacts et approchs par

Gestion derreurs

157

Supposons que les erreurs absolues commises sur ces nombres sont au plus de

Alors, les erreurs relatives sont

Lerreur relative commise sur la diffrence approche

est

Ce rsultat signie que lestimation derreur relative commise sur les nombres et
a t multiplie par en calculant leur diffrence. Cela sexplique par le fait que les
deux nombres considrs sont trs proches.
5.5.2. Exemple trait avec Matlab
Dans une arithmtique en base 10, en arrondi, 4 chiffres, on calcule la diffrence

digits(4)
r=22/7 ;
piApp=vpa(pi)
piApp = 3.142
rApp=vpa(r)
rApp = 3.143
diffApp=vpa(rApp-piApp)
diffApp = .1e-2

158

Mathmatiques avec Matlab

On a obtenu pour valeur approche de le nombre 0,01.


En considrant comme exactes les valeurs numriques au format double de
on calcule les erreurs relatives commises sur ces nombres.

et

errPi=abs(pi-double(piApp))/pi
errPi = 1.2966e-004
errR=abs(r- double(rApp))/r
errR = 4.5455e-005
diff=r-pi ;
errDiff=abs(diff-double(diffApp))/diff
errDiff = 0.2092
Lerreur relative sur est de lordre de , soit environ 1600 fois lerreur relative
commise au dpart sur
rapp=errDiff/errPi
rapp = 1.6132e+003
5.5.3. Remarque
Dans le calcul numrique dune somme nie de termes, certains algorithmes produisent des erreurs de cancellation et dabsorption. Considrons par exemple le calcul
de la somme

qui reprsente le dveloppement de Taylor lordre en 0 de Nous effectuerons successivement le calcul pour
(les termes sont alors de signes alterns),
puis pour

Lerreur commise en remplaant


par est




o est un rel compris entre 0 et (cf. chapitre 2, paragraphe 2.7.1.1, p. 69). Si on
suppose

cette erreur est majore par

Pour

on obtient
N= 80 ;
X0 =20 ;
M=X0^(N+1)/prod(1 :1 :N+1)*exp(X0)
M = 2.0235e-007

Gestion derreurs

159

Pour
on effectue le calcul de en base 10, en virgule ottante normalise, en arrondi
chiffres, en utilisant les fonctions digits et vpa. On utilise
trois tableaux
et , permettant de mmoriser les valeurs de

digits(10)
X = -20 ;
Puiss(1)=sym(X) ;Fact(1)=sym(1) ;
T(1)=vpa(X) ;
S=vpa(1+T(1)) ;
for i=2 :N,
Puiss(i)=vpa(Puiss(i-1)*X) ;
Fact(i)=vpa(Fact(i-1)*i) ;
T(i)=vpa(Puiss(i)/Fact(i)) ;
S=vpa(S+T(i)) ;
end
S
S = -.8654019579e-2
On obtient pour valeur approche de

On compare cette valeur celle de


double de Matlab.

la valeur

donne avec toute la prcision du format

E =exp(X)
E = 2.0612e-009
errObs=double(abs(E-S))
errObs = 0.0087
Q=errObs/M
Q = 4.2767e+04
Lerreur absolue constate est denviron fois lerreur thorique . Elle provient
derreurs dans le calcul de : les termes que lon ajoute sont de signes alterns,
ce qui peut provoquer dans le calcul de la somme des phnomnes de cancellation,
ajouts au risque dabsorption des plus petits en valeur absolue par dautres beaucoup

160

Mathmatiques avec Matlab

plus grands. Afchons quelques-uns de ces termes :


T(1 :5)
ans = [ -20., 200., -1333.333333, 6666.666667, -26666.66667]
T(16 :20)
ans = [ 31322782.64, -36850332.52, 40944813.91, -43099804.12, 43099804.12]
T(76 :80)
ans = [ .4007323037e-12, -.1040863127e-12, .2668879812e-13,
-.6756657752e-14, .1689164438e-14]
Effectuons maintenant la somme
tique :

pour

dans la mme arithm-

X1 = 20 ;
Puiss(1)=sym(X1) ;Fact(1)=sym(1) ;
T1(1)=vpa(X1) ;
S1=vpa(1+T1(1)) ;
for i=2 :N,
Puiss(i)=vpa(Puiss(i-1)*X1) ;
Fact(i)=vpa(Fact(i-1)*i);
T1(i)=vpa(Puiss(i)/Fact(i)) ;
S1=vpa(S1+T1(i)) ;
end
S1
S1 =485165195.3
E1 =exp(X1)
E1 = 4.8517e+008
errObs=double(abs(E1-S1))
errObs = 0.1000
Dans ce cas, tous les termes

sont de signe positif, et il ny a plus derreurs de cancellation dans le calcul de


Limpact des erreurs dabsorption est ici trs minime.

Si on veut utiliser la formule de Taylor pour calculer une valeur approche de


il est prfrable, dans ce cas prcis, de calculer dabord une valeur approche de car le calcul est plus able, puis dutiliser la proprit

Gestion derreurs

161

E3=1/S1
E3 = .2061153623e-8
errObs=double(abs(E-E3))
errObs = 1.0000e-18

5.6. Erreurs dues aux choix des formules algbriques


5.6.1. Exemple 1
Des erreurs de cancellation se produisent aussi dans les expressions telles que

o et sont des polynmes de mme degr. Par exemple, pour trs grand
lexpression

produira une erreur de cancellation. Pour viter cela on utilisera lexpression quivalente


On peut le vrier, en effectuant les calculs dans une arithmtique ottante trois
chiffres en base 10, avec
digits(3)
n=1100 ;
v1=vpa(1/n) ;
v2=vpa(1/(n+1)) ;
d1=vpa(v1-v2)
d1 = .1e-5
d2=vpa(v1*v2)
d2 = .825e-6
En calculant numriquement la valeur de avec toute la prcision de la machine, on
constate que est une bien meilleure approximation que
res=1/(n*(n+1))
res = 8.2570e-007
res1=1/n-1/(n+1)
res1 = 8.2570e-007

162

Mathmatiques avec Matlab

De mme dans la rsolution de certaines quations algbriques, on prendra garde


dutiliser, dans certains cas, les formules adquates pour viter la cancellation. Ainsi,
pour une quation de second degr

lutilisation des formules

pourra produire une erreur de cancellation pour le calcul dune des deux racines
lorsque est trs proche de .

5.6.2. Exemple 2
Soit rsoudre lquation

en effectuant les calculs dans une arithmtique ottante normalise


digits.
Si on utilise les formules classiques donnant les solutions dune quation du second
degr, on obtiendra :
digits(5) ;a=vpa(1) ;b=vpa(-160) ;c=vpa(1) ;
delta=vpa(b^2-4*a*c)
delta = 25596.
racDelta=vpa(sqrt(delta))
racDelta = 159.99
x1=vpa(vpa(-b+racDelta)/vpa(2*a))
x1 = 160.00
x2=vpa(vpa(-b-racDelta)/vpa(2*a))
x2 = .50000e-2
Donc on a :

Dans le calcul de la plus petite racine une erreur de cancellation a t commise. En


, on obtient
conservant la valeur la plus able et en utilisant la formule
pour
x2=vpa(c/a/x1)
x2 = .62500e-2

Gestion derreurs

do

163

La rsolution de cette quation avec Matlab donne, en afchant les valeurs numriques des solutions :
format short e
double(solve(x^2-160*x+1=0))
ans =
1.5999e+02
6.2502e-03

5.7. Erreurs dues aux perturbations des donnes


Dans certains calculs, de petites perturbations des donnes peuvent modier les rsultats de manire surprenante. Do la prcaution quon doit prendre lors de pareilles
situations. Illustrons cela par deux exemples classiques.
5.7.1. Un systme dquations linaires
On considre le systme linaire

Avec le calcul symbolique de Matlab, on obtient sa solution :


S1=solve(x-1.99995*y=3,2*x-4*y=1);
[S1.x,S1.y]
ans = [ .10000e6, 50000.]
soit

On considre le systme
chiffres signicatifs :

obtenu en tronquant le premier coefcient de

Lerreur relative commise sur ce coefcient est

cinq

164

Mathmatiques avec Matlab

La solution de est donne par


S2=solve(x-1.9999*y=3,2*x-4*y=1);
[S2.x,S2.y]
ans = [ 50001., 25000.]
soit

On observe une erreur relative denviron sur chacune des solutions .


Dans certains sytmes linaires, une perturbation trs petite dun coefcient peut
entraner des rsultats inattendus. On dit que ces systmes sont mal conditionns.
5.7.2. Un calcul de dterminant
On considre la matrice :

On veut calculer

et le comparer au dterminant obtenu en tronquant

Pour dnir la matrice sans entrer un un ses 100 termes, on utilise la fonction
diag pour laquelle laide de Matlab prcise :

help diag
DIAG Diagonal matrices and diagonals of a matrix.
DIAG(V,K) when V is a vector with N components is a square matrix
of order N+ABS(K) with the elements of V on the K-th diagonal. K = 0
is the main diagonal, K 0 is above the main diagonal and K 0
is below the main diagonal.

Gestion derreurs

165

En utilisant

et cette fonction diag, on dnit successivement les


termes sur chaque diagonale.
V=[10 :-1 :1]
V = 10 9 8 7 6 5 4 3 2 1
M=diag(V(2 :10),-1) ;
for i =0 :9,M=M+diag(V(i+1 :10),i) ; end
M =sym(M) ;
M(1,10)=1.0001
M=
[ 10, 9, 8, 7, 6, 5, 4, 3, 2, 10001/10000]
[ 9, 9, 8, 7, 6, 5, 4, 3, 2, 1]
[ 0, 8, 8, 7, 6, 5, 4, 3, 2, 1]
[ 0, 0, 7, 7, 6, 5, 4, 3, 2, 1]
[ 0, 0, 0, 6, 6, 5, 4, 3, 2, 1]
[ 0, 0, 0, 0, 5, 5, 4, 3, 2, 1]
[ 0, 0, 0, 0, 0, 4, 4, 3, 2, 1]
[ 0, 0, 0, 0, 0, 0, 3, 3, 2, 1]
[ 0, 0, 0, 0, 0, 0, 0, 2, 2, 1]
[ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
d=det(M)
d =-4411/125
(On a utilis le calcul symbolique pour obtenir la valeur exacte du dterminant, vitant
ainsi dintroduire des erreurs darrondi dues aux conversions en base 2).
Ainsi

On dnit la matrice telle que

et, pour tout

On calcule le dterminant

de la matrice ainsi perturbe.


Mprime=M ;
Mprime(1,10)=1 ;
dPrime=det(Mprime)
dPrime = 1

166

Mathmatiques avec Matlab

Alors que sur les donnes on a

sur le rsultat, lerreur relative est

On voit que, dans ces deux cas, une perturbation trs petite des donnes a entran
une importante variation des rsultats.

5.8. Estimation probabiliste de lerreur


Il y a aussi une vision statistique et probabiliste de la gestion des erreurs. Illustrons
cette notion derreurs probables sur une expression simple crite sous forme dune
somme nie de termes rels.

sur

Soit calculer

est et on note

On suppose que lerreur absolue commise

la plus grande valeur de ces erreurs.


Une estimation de lerreur dopration commise sur est alors de

Lorsque est trs grand, cette dernire estimation derreur est rarement atteinte,
compte tenu de la compensation de signes. Aussi on peut chercher lerreur maximale
probable sur
On montre en calcul de probabilits que

au sens o

a de grandes chances de rester born quand

Gestion derreurs

167

5.9. Exercices
5.9.1. Erreur doprations
1) Estimer lerreur absolue commise lorsquon effectue la somme

termes

2) Vrier en effectuant le calcul de cette somme avec Matlab, et en comparant


avec le rsultat exact.
(solution p. 170)
5.9.2. Erreurs dabsorption et de cancellation

On cherche deux nombres et dont la somme vaut millions, et le produit


vaut . On note le plus grand de ces deux nombres.
1) Montrer que est solution dune quation du second degr.
2) Trouver la valeur de en rsolvant cette quation.
3) Trouver la valeur approche de obtenue en utilisant

4) Trouver la valeur approche de obtenue en utilisant

5) Quel est le rsultat le plus able, et pourquoi ? Analyser les diffrentes causes
derreurs et de propagation derreurs dans les calculs.
6) En supposant que cest la bonne valeur, dterminer lerreur relative commise en calculant la place de et comparer avec lerreur relative de dpart
commise par le stockage en machine du discriminant .
(solution p. 171)
5.9.3. Non associativit de laddition machine

On considre les trois nombres


1) Donner les rsultats des calculs pour :
a)
b)

2) Expliquer les rsultats obtenus.


(solution p. 172)

168

Mathmatiques avec Matlab

5.9.4. Choix de formules de calcul


1) Utiliser le calcul symbolique de Matlab pour vrier que

2) Calculer la valeur de ces deux expressions dans une arithmtique en virgule


chiffres en arrondi (utiliser vpa et effectuer les calculs un par un).
ottante
3) Quel est le rsultat le plus able et pourquoi ?

(solution p. 172)

5.9.5. Choix ditrations de calculs


On dnit la suite

par

1) En utilisant les proprits de lintgrale, montrer que cette suite est positive et
dcroissante. On notera sa limite. inconnue.
2) Montrer que cette suite vrie

, pour

(on utilisera une intgration par parties). En dduire


3) Utiliser les galits ci-dessus pour calculer avec Matlab la valeur numrique
approche de
puis
4) Expliquer par un calcul derreur les rsultats obtenus.
5) Utiliser la formule inverse donnant en fonction de en partant dune
valeur de votre choix, pour calculer de nouvelles valeurs approches de puis

6) Comparer les rsultats obtenus.

(solution p. 173)

Gestion derreurs

169

5.9.6. Sujet dtude


La suite dnie dans ce sujet dtude est due Jean-Michel Muller de lEcole
Normale Suprieure de Lyon.
On considre la suite

dnie par

[On admet quaucun terme de la suite ne sannule, et que cette suite est donc bien
dnie]
1) Calculer numriquement les 30 premiers termes de cette suite.
2) Utiliser le calcul symbolique pour obtenir la valeur exacte de ces 30 premiers
termes, puis la valeur numrique de ces nombres. Que constatez-vous ? Quel calcul
vous semble plus able, et pourquoi ?
3) Etude dune suite auxiliaire.
On introduit la suite dnie par

En utilisant la relation

et en exprimant de mme et montrer que la suite vrie la relation


linaire, pour tout

(R)

4) Une tude classique des suites de ce type consiste alors chercher les nombres
tels que la suite dnie pour par

vrie la relation (R). Montrer que est solution dune quation du troisime degr.
Rsoudre cette quation avec Matlab. On notera ses solutions, ranges dans
lordre dcroissant.
5) Montrer que toute suite de la forme

vrie la relation (R).

170

Mathmatiques avec Matlab

6) Dterminer les valeurs des inconnues

pour que les conditions initiales

soient vries.
On notera les solutions exactes, et les solutions
approches obtenues par le calcul numrique de Matlab.
7) On dnit, pour tout



Montrer par rcurrence que, pour tout

8) En dduire la limite de la suite


9) Que devient cette limite si
?

on

remplace

par

(solution p. 177)
5.10. Solutions
Exercice 5.9.1
1) Le nombre dcimal
est converti et stock en machine, avec une
erreur relative majore par (cf 5.2.3). Lerreur absolue sur la somme
de nombres gaux est donc estime par

termes

epsM=2^(-53)
epsM = 1.1102e-016
DeltaS=1000^2*epsM*0.1
DeltaS = 1.1102e-11
2) On effectue le calcul de puis de

avec Matlab :

S=0 ;
for i=1 :1000,
S=S+0.1 ;
end
errObserv=abs(S-100)
errObserv = 1.4069e-12
Lerreur observe est bien infrieure la majoration derreur

trouve.

Gestion derreurs

171

Exercice 5.9.2
1) On transforme le systme dquations

en exprimant, dans la premire quation, en fonction de puis en substituant la


valeur trouve dans la seconde quation.
syms S P x1 x2
eq1=x1+x2-S ;
eq2=x1*x2-P ;
sol2=solve(eq1,x2)
sol2 = -x1+S
eq=subs(eq2,x2,sol2)
eq =x1*(-x1+S)-P
collect(eq,x1)
ans = -x1^2+S*x1-P
On retrouve ainsi un rsultat classique : vrie lquation

2) On calcule numriquement la valeur de la plus grande des solutions :


S=5e7 ;P=1 ;
delta=S^2-4*P
delta = 2.5000e+15
x1=(S+sqrt(delta))/2
x1 = 5.0000e+07
3) On calcule la deuxime solution selon les deux mthodes indiques.
x2a=S-x1
x2a = 1.4901e-08
4)

x2b=P/x1
x2b = 2.0000e-08

5) Le calcul de engendre une erreur de cancellation. Le calcul de est plus


able.
6) On calcule lerreur relative sur le rsultat :
errRel=abs(x2a-x2b)/x2b
errRel = 0.2549

172

Mathmatiques avec Matlab

Elle est de lordre de .


Dans le calcul machine du discriminant un phnomne dabsorption a pu engendrer une erreur, mais on sait que celle-ci, en valeur relative, est ncessairement
infrieure ou gale
epsM=2^(-53)
epsM = 1.1102e-16
errRel/epsM
ans = 2.2963e+15
La cancellation a multipli cette erreur initiale par plus de deux millions de milliards !

Exercice 5.9.3
1) On effectue les deux calculs, en respectant lordre impos par les parenthses.
a=1 ;b=2^53 ;c=-2^53 ;
s1=(a+b)+c
s1 = 0
s2=a+(b+c)
s2 = 1
2) Dans le calcul de il y a eu absorption de par Lorsquon ajoute , un phnomne de cancellation se produit. Dans le calcul de le phnomne de cancellation
na pas lieu car on calcule avec les valeurs exactes de et

Exercice 5.9.4
1) On dnit les deux expressions symboliques

et, en calculant leur diffrence, on vrie quelles sont bien gales.


d1 = sym(1000-sqrt(999999))
d1 =1000-sqrt(999999)
d2=sym(1/(1000+sqrt(999999)))
d2 =1/(1000+sqrt(999999))
simplify(d1-d2)
ans =0

Gestion derreurs

2) On calcule les valeurs approches de

et

173

dans larithmtique choisie.

digits(6) ;
racineApp=vpa(sqrt(999999))
racineApp =999.999
d1App=vpa(1000-racineApp)
d1App =.1e-2
denom2App=vpa((1000+racineApp))
denom2App =2000.00
d2App =vpa(1/denom2App)
d2App= .500000e-3

Des deux rsultats


et
le second est le plus able,
tant deux
car le premier peut gnrer une erreur de cancellation, et
nombres trs proches. On vrie cette afrmation en calculant numriquement, avec
toute la prcision de la machine, les valeurs de et d
double(d1)
ans = 5.0000e-004
double(d2)
ans = 5.0000e-004

Exercice 5.9.5
1) Pour tout

, on a

et pour tout

Lintgrale dune fonction positive tant elle-mme positive, on a

Cette mme proprit montre que

car

et pour

La suite

tant dcroissante et minore par 0, elle admet une limite nie

174

Mathmatiques avec Matlab

2) On a

On effectue une intgration par parties pour calculer On pose :

On calcule et :

clear ; syms x n real


e=sym(exp(1)) ;
u=log(x)^n ;
vPrime= 1 ;
uPrime=simplify(diff(u,x))
uPrime = log(x)^(n-1)*n/x
v=int(vPrime,x)
v=x

soit

Do

simplify(subs(u*v,x,e)-subs(u*v,x,1))
ans = exp(1)
simplify(uPrime*v)
ans =log(x)^(n-1)*n
Donc

De cette galit, on dduit que ncessairement


limite

ce qui est absurde car

sinon, on aurait par passage la

Gestion derreurs

3) On dnit
de pour

175

et on place dans un tableau les valeurs successives

clear
e=exp(1)
I0=e-1 ;
I(1)=e-I0 ;
for n=2 :30,
I(n)=e-n*I(n-1);
end
I(1 :10)
ans =
Columns 1 through 7
1.0000 0.7183 0.5634 0.4645 0.3956 0.3447 0.3055
Columns 8 through 10
0.2744 0.2490 0.2280
I(30)
ans = 2.9228e+16
4) La valeur obtenue pour est contradictoire avec les proprits de la suite
dcroissante et tendant vers 0. Expliquons ce phnomne :
si on note la valeur numrique approche de obtenue par la relation

on a

en ngligeant les erreurs daffectation commises sur et . Lerreur sur peut donc
tre value

Mme si lerreur sur est une simple erreur daffectation value


commise sur calcule selon la formule ci-dessus donne
F30=prod(1 :1 :30)
F30 = 2.6525e+32
errI30=F30*2^(-53)*I0
errI30 = 5.0602e+16

5) De lgalit

lerreur

176

Mathmatiques avec Matlab

on dduit aussi

Si on utilise cette formule pour calculer en fonction de on aura, toujours en


ngligeant les erreurs daffectation

Si on calcule ainsi de proche en proche partir dune valeur estime de


aura

on

M=prod(50 :-1 :31)


M = 1.1466e+32
Lerreur initiale sur sera ainsi divise par plus de
Compte tenu des proprits de la suite il est raisonnable de partir de lestimation

I=zeros(1,50) ;
I(50)=0 ;
for n=50 :-1 :2,
I(n-1)=(e-I(n))/n;
end
I(30)
ans = 0.0850
I(1 :10)
ans =
Columns 1 through 7
1.0000 0.7183 0.5634 0.4645 0.3956 0.3447 0.3055
Columns 8 through 10
0.2744 0.2490 0.2280

Gestion derreurs

Mais partir dune estimation autre de


et pour
.

177

ne changera pas les valeurs obtenues pour

I=zeros(1,50) ;
I(50)=1e9 ;
for n=50 :-1 :2,
I(n-1)=(e-I(n))/n;
end
I(30)
ans = 0.0850
I(1 :10)
ans =
Columns 1 through 7
1.0000 0.7183 0.5634 0.4645 0.3956 0.3447 0.3055
Columns 8 through 10
0.2744 0.2490 0.2280
6) On constate ici quon obtient des rsultats aberrants en utilisant une formule
exacte, mais gnrant une amplication catastrophique des erreurs. Lutilisation de
la formule de rcurrence inverse, et dune estimation de donne des rsultats plus
ables pour
.

Exercice 5.9.6
1) On calcule numriquement les termes successifs de la suite
clear ; a(1)=11/2 ; a(2)=61/11 ;
for n=2 :29,
a(n+1)= 111-1130/a(n)+3000/(a(n)*a(n-1));
end
a
a=
Columns 1 through 7
5.5000 5.5455 5.5902 5.6334 5.6746 5.7133 5.7491
Columns 8 through 14
5.7818 5.8113 5.8377 5.8609 5.8813 5.8982 5.8980
Columns 15 through 21
5.6470 0.9683 -507.3216 107.1206 100.3959 100.0235 100.0014
Columns 22 through 28
100.0001 100.0000 100.0000 100.0000 100.0000 100.0000 100.0000
Columns 29 through 30
100.0000 100.0000

178

Mathmatiques avec Matlab

2) On effectue de mme le calcul symbolique.


aSym(1)=sym(11/2);aSym(2)=sym(61/11);
for n=2 :29,
aSym(n+1)= 111-1130/aSym(n)+3000/(aSym(n)*aSym(n-1));
end
double(aSym)
ans =
Columns 1 through 7
5.5000 5.5455 5.5902 5.6334 5.6746 5.7133 5.7491
Columns 8 through 14
5.7818 5.8113 5.8377 5.8610 5.8814 5.8992 5.9145
Columns 15 through 21
5.9277 5.9391 5.9487 5.9569 5.9638 5.9696 5.9746
Columns 22 through 28
5.9787 5.9822 5.9851 5.9876 5.9896 5.9913 5.9928
Columns 29 through 30
5.9940 5.9950
On observe partir du quinzime terme une diffrence considrable entre les rsultats
fournis par les deux modes de calcul. On peut priori juger plus ables les rsultats
obtenus en convertissant en numrique les valeurs exactes : on vite ainsi propagation
et risques damplication derreurs.
3) Partant de

on peut afrmer que, pour tout

et on a pour

On reporte dans la relation

et on obtient

soit

Do la relation

Gestion derreurs

4) On remplace par
cherche tel que

par

par

179

par et on

On obtient lquation

tant suppos diffrent de 0, on peut simplier par , do lquation quivalente

On rsout alors lquation du troisime degr obtenue.


syms r real
eq1 = r^3-111*r^2+1130*r-3000;
solve(eq1)
ans =
[ 100]
[ 5]
[ 6]
Ses solutions sont donc

5) On dnit

et, en exprimant
(R) est vrie.

partir de cette relation, on montre que la relation

r1=100 ;r2=6 ;r3=5 ;


syms k1 k2 k3 n real
xn=k1*r1^n+k2*r2^n+k3*r3^n;
xnPlus1=subs(xn,n,n+1);
xnMoins1=subs(xn,n,n-1);
xnMoins2=subs(xn,n,n-2);
eq=simplify(xnPlus1-(111*xn-1130*xnMoins1+3000*xnMoins2))
eq = 0

180

Mathmatiques avec Matlab

6) On exprime

en fonction de

x0=subs(xn,n,0)
x0 = k1+k2+k3
x1=subs(xn,n,1)
x1 = 100*k1+6*k2+5*k3
x2=subs(xn,n,2)
x2 = 10000*k1+36*k2+25*k3
On doit donc rsoudre le systme

Pour obtenir la solution exacte de ce systme, on utilise le calcul symbolique : on


dnit la matrice des coefcients du systme, la matrice des seconds membres,
et on calcule la matrice colonne

des solutions :
As=sym([1 1 1 ; 100 6 5 ; 100^2 6^2 5^2 ]) ;
Bs=[1 ;aSym(1) ; aSym(2)*aSym(1)] ;
K=As^(-1)*Bs ;
K1 =K(1)
K1 = 0
K2 =K(2)
K2 = 1/2
K3=K(3)
K3 = 1/2
Do

En effectuant les mmes calculs numriquement, on obtiendra des valeurs approches


des solutions :
A=[1 1 1 ; 100 6 5 ; 100^2 6^2 5^2 ] ;
B=[1 ;a(1) ; a(2)*a(1)] ;
KApp=A^(-1)*B ;
K1App =KApp(1)
K1App = 8.6736e-19
K2App =KApp(2)
K2App = 0.5000
K3App= KApp(3)
K3App = 0.5000

Gestion derreurs

7) On dnit

et on calcule

et

num=K1*r1^n+K2*r2^n+K3*r3^n;
den=subs(num,n,n-1);
bn=num/den
bn = (1/2*6^n+1/2*5^n)/(1/2*6^(n-1)+1/2*5^(n-1))
b1=subs(bn,n,sym(1))
b1 = 11/2
b2=subs(bn,n,sym(2))
b2 = 61/11
Ainsi

On suppose (hypothse de rcurrence) :

et on montre que

an=bn ;
anMoins1=subs(bn,n,n-1);
bnPlus1=subs(bn,n,n+1)
bnPlus1 = (1/2*6^(n+1)+1/2*5^(n+1))/(1/2*6^(+1/2*5^n)
anPlus1=simplify(111-1130/an+3000/(an*anMoins1))
anPlus1 = (6^(n+1)+5^(n+1))/(6^n+5^n)
simplify(bnPlus1-anPlus1)
ans = 0
On a ainsi montr que, pour tout

8) Pour obtenir la limite de la suite on crit

181

182

Mathmatiques avec Matlab

Do


Ce rsultat se vrie avec Matlab :
an
an = (1/2*6^n+1/2*5^n)/(1/2*6^(n-1)+1/2*5^(n-1))
limit(an,n,inf,left)
ans = 6
9) Si on remplace
pour terme gnral

par

la suite a maintenant



on a

et, comme

Le calcul sous Matlab donne :


numApp=K1App*r1^n+K2App*r2^n+K3App*r3^n;
denApp=subs(numApp,n,n-1);
anApp=numApp/denApp;
limit(anApp,n,inf,left)
ans = 100
On retrouve les rsultats de la premire question : la suite a pour limite mais
des calculs numriques approchs conduisent une suite convergeant vers

Chapitre 6

Approximation de racines dquations

Cest seulement pour certaines quations bien particulires que les procds classiques de rsolution permettent dexprimer les solutions exactes. Un exemple typique
est celui des quations du second degr, en utilisant le discriminant. Dans de nombreux
cas, on peut seulement localiser les solutions, et en calculer des valeurs numriques
approches.
Considrons par exemple, lquation

Les mthodes usuelles de transformation (transposition, utilisation de la fonction logartihme, ...) ne permettent pas de rsoudre algbriquement cette quation. Pourtant,
on observe graphiquement quelle admet une solution unique sur .
f(x)=10x 9 exp(x)
8

10
0

0.1

0.2

0.3

0.4

0.5
x

183

0.6

0.7

0.8

0.9

184

Mathmatiques avec Matlab

Dans ce chapitre, on va exposer les principales mthodes itratives de rsolution dune


quation de la forme

o est une fonction continue dnie sur un intervalle
. On se placera dans le
cas o, localement, il y a une unique racine, pour en donner un algorithme dapproximation.

6.1. Mthode de la dichotomie


Cette mthode consiste en une succession de divisions par deux de lintervalle
, jusqu ce quune
pour approcher de plus en plus la racine de lquation
prcision soit atteinte.
6.1.1. Hypothses sur la fonction
On se place dans le cas o la fonction

vrie les hypothses :

est continue sur


est strictement monotone sur

ce qui assure lexistence et lunicit de la racine

6.1.2. Algorithme de la mthode


On partage

en deux intervalles gaux

et

Si le signe de est le mme que celui de , la racine appartient


.
lintervalle

Sinon, elle appartient lintervalle

On ritre le procd avec lintervalle obtenu contenant .


On arrte litration lorsque la longueur de lintervalle devient infrieure un
nombre x au dpart.

Approximation de racines dquations

185

Remarque
A ltape

appartient lintervalle de travail, qui a pour longueur

Dune itration la suivante, lerreur est donc multiplie par


6.1.3. Exemple
On considre lquation

est continue, drivable, et sa drive

donc

dnie sur par

vrie

La fonction

est strictement croissante sur

De plus

et

sont de signes contraires.

On peut donc utiliser la mthode de dichotomie pour calculer prs la solution de lquation propose.
Le nombre de termes calculer doit vrier :

soit

On cre le chier f1.m


function y=f1(x)
y=10*x-9*exp(-x);
On value le nombre de termes calculer (sous Matlab, ceil(x) donne le plus petit
entier suprieur ou gal )
n0=ceil(log(1e6)/log(2))
n0 = 20

186

Mathmatiques avec Matlab

Do

a = 0; b = 1;
for i = 1 :20
m=(a+b)/2 ;
f1DeM = f1(m) ;
if (f1DeM 0) b = m ; else a = m ; end
end

On afche lintervalle obtenu


format long
[a b]
ans = 0.52983283996582
A prs, la solution est

0.52983379364014

6.1.4. En conclusion
La mthode de dichotomie a lavantage dexiger peu dhypothses sur la fonction.
Elle sert parfois de moyen de calcul dune initialisation pour les algorithmes des autres
mthodes. Linconvnient majeur de cette mthode est la lenteur de convergence de
son algorithme.
6.2. Mthode des approximations successives (ou du point xe)
Parmi les mthodes de rsolution de lquation

la mthode dite des approximations successives (ou du point xe) est la plus importante. Son principe est bas sur la construction dune suite itrative approchant de
plus en plus la racine exacte, son premier lment (appel initialisation) pouvant tre
.
nimporte quel point de lintervalle de travail
La mthode du point xe sapplique des quations de la forme

On peut toujours crire lquation


Par exemple, lquation

sous une forme quivalente de ce type.


est quivalente

On prendra garde de ne pas confondre la fonction

et la fonction

Approximation de racines dquations

187

6.2.1. Hypothses sur la fonction


On se place dans le cas o la fonction

vrie les hypothses :

est continue et drivable sur


prend ses valeurs dans

On dira que est une contraction stricte.


6.2.2. Thorme du point xe
Lorsque vrie les trois hypothses , , , il existe une
unique racine de lquation , appele point xe de .
Considrons en effet la fonction dnie par

qui est strictement dcroissante puisque

grce Alors, daprs lhypothse on a

Le thorme des valeurs intermdiaires donne alors lexistence dun unique point
appartenant
tel que

6.2.3. Algorithme et estimation derreur
6.2.3.1. Algorithme
On construit la suite des itrs de la manire suivante :
on xe un point quelconque de
,
puis on dnit

.
.
.

188

Mathmatiques avec Matlab

6.2.3.2. Majoration derreur


Si est le point xe de on a

En ritrant, on voit bien quon sapproche de plus en plus de la racine : cest le principe des approximations successives. Plus prcisment, on dmontre par rcurrence la
majoration derreur

En effet, la proprit est videmment vrie pour et si on la suppose vrie un rang donn, le thorme des accroissements nis implique lexistence
tel que :
dun

Ainsi, la suite converge vers puisque, appartenant on a

6.2.3.3. Test darrt


Fixons

Pour que soit une valeur approche de prs, il suft que :

soit

Approximation de racines dquations

189

Do lalgorithme de la mthode du point xe :


Etant donn une fonction vriant les hypothses , ,
sur un intervalle
et un nombre positif :

on calcule
on choisit
pour de

on calcule

Une valeur approche prs de la racine est


6.2.3.4. Remarque
On peut construire graphiquement la suite des itrs , laide de la ligne poo a pour coordonnes
lygonale

et a pour coordonnes

Ainsi, est le segment vertical joignant les points dabscisse de la droite


dquation
et de la courbe dquation
et est le segment
horizontal joignant les points dordonne de ces deux mmes gures (voir
exercice 6.5.4).
Mthode du point fixe
1
0.9

y =9/10*exp(x)

0.8

N0

y=x
M1

0.7
0.6

N2

0.5
M2

0.4

N1

0.3
0.2
M0

0.1
0

x0
0

0.1

x1

x2
0.2

0.3

0.4

0.5
x

0.6

0.7

0.8

0.9

190

Mathmatiques avec Matlab


Mthode du point fixe
4
3.8

y=x

3.6
3.4
y =log(x)+2
3.2

N2
N1

M2
N0

2.8

M1
2.6
2.4
2.2
M0
2

x0
2.2

x2

x1
2.4

2.6

2.8

3
x

3.2

3.4

3.6

3.8

6.2.4. Exemple
Pour calculer prs la solution, dans lintervalle de lquation

par la mthode du point xe, on procde comme suit :


On dnit la fonction telle que

Cette fonction est continue et drivable sur


Pour vrier lhypothse on tudie les variations de en calculant :
syms x ;
phiDeX = 9/10*exp(-x) ;
phiPrimeDeX = diff( phiDeX )
phiPrimeDeX = -9/10*exp(-x)
Comme

dcrot de
phiDe1= subs( phiDeX ,1)
phiDe1 = 0.3311
phiDe0= subs( phiDeX ,0)
phiDe0 = 0.9000)

Approximation de racines dquations

191

Donc, prend ses valeurs dans lintervalle

et est vrie.

Pour vrier il faut en gnral tudier les variations de donc calculer


mais ici

Le nombre de termes calculer pour obtenir une valeur approche de la


solution prs est donn par :

donc

a pour maximum

n0=ceil ((log(10^(-6))-log(1-0))/log(9/10))
n0 = 132
do

On calcule les itrs successifs :


X(1) = 0 ;
for i = 1 :132 X(i+1) = 9/10*exp(-X(i)) ; end
format short
X(1 :6)
ans =
0 0.9000 0.3659 0.6242 0.4821 0.5557
format long
X(133)
ans = 0.52983296563343
On retrouve la valeur approche 0.529833 prs.

6.2.5. Vitesse de convergence


Elle dpend de la valeur de (voir hypothse ) :
Si est proche de 1, la convergence est lente. On a vu dans lexemple prcdent,

o quil fallait termes pour obtenir une prcision de
Si
Si

, on retrouve la vitesse de convergence de la mthode de dichotomie.


est proche de 0, on a une convergence rapide.

192

Mathmatiques avec Matlab

6.3. Mthode de Newton (ou de la tangente)


6.3.1. Hypothses et algorithme de Newton
6.3.1.1. Hypothses
On revient la rsolution de lquation

et on suppose que la fonction

vrie les hypothses suivantes :

est continue sur


,
est strictement monotone sur

est drivable sur
et

sur

Les trois premires hypothses garantissent lexistence et lunicit dune racine


lquation

de

6.3.1.2. Construction de lalgorithme


Lide principale de la mthode de Newton est de dire quau voisinage de la racine
la courbe reprsentative de la fonction peut tre confondue avec la tangente en un
point proche de . Cela revient confondre avec son dveloppement limit
lordre en :

La solution de l quation

peut donc tre approche par la rsolution de

dont la solution est

Approximation de racines dquations

193

0.8
0.6
0.4
0.2
x0

x1

0
0.2
0.4
0.6
0.8
1
1.2
0.4

0.6

0.8

1.2

1.4

1.6

1.8

est une premire approximation de


la suite dnie par :

En ritrant le procd ci-dessus, on construit

x proche de

appele suite des itrs de lalgorithme de Newton.


6.3.1.3. Remarque
Cette suite est celle permettant de chercher le point xe de la fonction

(voir 6.2.1).
est drivable si, et seulement si, lest. Cela conduit ajouter lhypothse
suivante sur

est deux fois drivable sur

6.3.1.4. Thorme
On a le
Thorme
Sous les hypothses
et pour choisi sufsamment proche
de lunique racine la suite des itrs de Newton converge vers
On admettra ce thorme dont lide de dmonstration repose sur le fait que la
fonction vrie toutes les hypothses du point xe dans un voisinage de .

194

Mathmatiques avec Matlab

6.3.2. Vitesse de convergence


Notant toujours

on a

et donc au point

La formule de Taylor-Lagrange lordre deux donne lexistence dun

tel que

do

En appliquant cette majoration aux itrs


,
il vient
tout ,

On montre alors par rcurrence sur :

Par exemple, si on choisit linitialisation telle que

et en supposant que pour

Approximation de racines dquations

il vient

195

Cette estimation traduit bien la vitesse de convergence de la mthode de Newton.


Elle signie que le nombre de dcimales exactes double dune itration la suivante.
Concrtement si on veut la racine avec 1000 dcimales exactes, contiendrait ces
dcimales.
La convergence de lalgorithme de Newton est donc trs rapide.
6.3.3. Exemple
Ltude de la fonction

dnie sur par

faite au paragraphe 6.1.3 , a permis de vrier les hypothses La fonction drive

est elle-mme drivable, donc lhypothse est vrie. Partant de linitialisation

on calcule les huit premiers itrs de la mthode de Newton :

syms x real
fDeX=10*x-9*exp(-x);
fPrimeDeX=diff(fDeX) ;
X(1)=1 ;
for i=1 :7
X(i+1)=X(i)-double(subs(fDeX,x,X(i))/subs(fPrimeDeX,x,X(i)));
end
format long
X
X=
Columns 1 through 4
1.00000000000000 0.49747368650014 0.52964976566513 0.52983295982123
Columns 5 through 8
0.52983296563343 0.52983296563343 0.52983296563343 0.52983296563343
En comparant aux rsultats obtenus par la mthode de dichotomie (voir 6.1.3), on
observe que
est une valeur approche de la racine prs. Les itrs
contiennent les mmes 14 premiers chiffres signicatifs.

196

Mathmatiques avec Matlab

6.3.4. Choix de linitialisation


6.3.4.1. Mise en garde
Mme si la fonction vrie toutes les hypothses sur un intervalle
il se peut que pour certains choix de linitialisation
on ait, un rang

. Dans ce cas, on nest plus assur de la convergence de la suite
vers la racine cherche.

6.3.4.2. Exemple
Considrons lquation

avec

fonction polynme est continue et drivable sur et on peut vrier une une
les hypothses dapplication de la mthode de Newton :
1) et sont de signes contraires :
syms x real
f =x^3-4.53*x^2+6.0291*x-2.218039;
fDe1 =subs(f,x,1)
fDe1 = 0.2811
fDe2 = subs(f,x,2)
fDe2 = -0.2798
2)

ne sannule pas sur lintervalle :


fPrime=diff(f)
fPrime = 3*x^2-453/50*x+60291/10000
S=solve(fPrime)
S = [ 99/100]
[ 203/100]

3)
:

est de signe ngatif, donc

est strictement dcroissante sur lintervalle

maple(solve(3*x^2-453/50*x+60291/10000 0))
ans = RealRange(Open(99/100),Open(203/100))

On peut illustrer graphiquement ces proprits :


clf ; ezplot(f,[1 2]) ; grid on ;
title(f(x) sur [1, 2])
dessineRepere

Approximation de racines dquations

197

f(x) sur [1, 2]


0.3

0.2

0.1

0.1

0.2

0.3
1

1.1

1.2

1.3

1.4

1.5
x

1.6

1.7

1.8

1.9

Pourtant, si on calcule les 10 premiers itrs de la mthode de Newton applique


cette fonction , on obtient :
en choisissant
X(1)=1 ;
for i=1 :10
X(i+1)=X(i)-double(subs(f,x,X(i)))/double(subs(fPrime,x,X(i)));
end
X
X = 1.0000 10.0958 7.2550 5.3716 4.1319 3.3295 2.8309
2.5521 2.4351 2.4116 2.4107

en choisissant

X(1)=2 ;
for i=1 :10
X(i+1)=X(i)-double(subs(f,x,X(i)))/double(subs(fPrime,x,X(i)));
end
X
X = 2.0000 -1.0785 -0.2883 0.2018 0.4742 0.5868 0.6085
0.6093 0.6093 0.6093 0.6093

198

Mathmatiques avec Matlab

en choisissant

X(1)=1.1 ;
for i=1 :10
X(i+1)=X(i)-double(subs(f,x,X(i)))/double(subs(fPrime,x,X(i)));
end
X
X = 1.1000 1.9591 0.6304 0.6086 0.6093 0.6093 0.6093
0.6093 0.6093 0.6093 0.6093

Dans les trois cas, on obtient des valeurs qui nappartiennent pas lintervalle
dans lequel on cherche la solution.

Par contre, linitialisation


solution cherche.

donne une suite qui semble converger vers la

X(1)=1.15 ;
for i=1 :10
X(i+1)=X(i)-double(subs(f,x,X(i)))/double(subs(fPrime,x,X(i)));
end
X
X = 1.1500 1.7309 1.4776 1.5101 1.5100 1.5100 1.5100
1.5100 1.5100 1.5100 1.5100

On peut expliquer graphiquement ce qui se passe (on utilise une fonction newtonGraph qui est prsente dans l exercice 6.5.5) :

Approximation de racines dquations

199

partant de la mthode de la tangente donne une valeur proche de 2,


et une valeur nappartenant plus lintervalle
initialisation 1.10
0.3

0.2

0.1

0.1

0.2

0.3
1

1.1

1.2

1.3

1.4

1.5
x

1.6

1.7

1.8

1.9

alors que la suite des itrs converge vers la racine cherche en partant de la valeur
initiale
initialisation 1.15
0.3

0.2

0.1

0.1

0.2

0.3
1

1.1

1.2

1.3

1.4

1.5
x

1.6

1.7

1.8

1.9

Le rsultat suivant permet dobtenir un choix de assurant la convergence de la


mthode.

200

Mathmatiques avec Matlab

6.3.4.3. Thorme
Si vrie les hypothses
,
si de plus ne sannule pas et garde un signe constant sur ,
alors :
en choisissant
, tel que et soient de mme signe,
la suite des itrs de la mthode de Newton converge vers la racine cherche.

Mais cela suppose que


lexemple prcdent.

ne sannule pas sur

ce qui nest pas le cas de

6.4. Plan pour la recherche dune racine


A travers un exemple modle, on met en uvre un plan dtude pour la recherche
de solutions approches dune quation de la forme


et/ou de la forme

Ce plan est le suivant :


1) tude de sur son domaine de dnition et trac de sa courbe reprsentative.
Cette tape permettra la localisation de la ou des racines, et un choix adquat dun
intervalle de travail
2) pour la mthode du point xe :
a) vrication des hypothses , , (voir 6.2.1),
b) choix de
et mise en uvre de lalgorithme de calcul approch.
3) pour la mthode de Newton :
a) vrication des hypothses (voir 6.3.1.1),
(en utilisant si possible le thorme 6.3.4.3), et mise en
b) choix de
uvre de lalgorithme de calcul approch.

6.4.1. Exemple
Soit rsoudre lquation

Cette quation peut aussi scrire, pour

sous la forme

Approximation de racines dquations

1) On considre donc la fonction

201

dnie par

Elle est dnie, continue, drivable sur


on calcule et on factorise :

On entre son expression sous Matlab,

syms x real
f=atan((x+1)/(x^2+2))-x/(x+1);
fPrime =simplify(diff(f))
fPrime= -(2*x^4+4*x^3+8*x^2+3)/(x+1)^2/(x^4+5*x^2+5+2*x)
[N,D]=numden(fPrime)
N = -2*x^4-4*x^3-8*x^2-3
D = (x+1)^2*(x^4+5*x^2+5+2*x)
Ainsi

La recherche des solutions de lquation


nadmet pas de solution relle :

avec Matlab montre que celle-ci

solve(fPrime) ;
double(ans)
ans =
0.0996 - 0.5989i
0.0996 + 0.5989i
-1.0996 - 1.6913i
-1.0996 + 1.6913i
On montre par rsolution dinquation que, pour tout

on a

maple(solve(-(2*x^4+4*x^3+8*x^2+3)/(x+1)^2/(x^4+5*x^2+5+2*x) 0))
ans =RealRange(-inf,Open(-1)), RealRange(Open(-1),inf)
On complte ltude des variations de

par la recherche des limites aux bornes.

limit(f,x,-inf,right)
ans =-1
limit(f,x,-1,left)
ans =-inf
limit(f,x,-1,right)
ans = inf
limit(f,x,inf,left)
ans =-1

202

Mathmatiques avec Matlab

Ces calculs permettent dobtenir le tableau de variations :

La stricte monotonie et la continuit de la fonction sur lintervalle


per admet une solution unique. On trace la
mettent dafrmer que lquation
courbe reprsentative de
ezplot(f,-1,10)
grid on
title(Graphe de f)
dessineRepere
Graphe de f
1.2
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1

10

et on vrie par le calcul que la solution cherche appartient lintervalle


puisquon a

et

:
subs(f,x,1)
ans = 0.0880
subs(f,x,2)
ans = -0.2030

Approximation de racines dquations

203

2) Mthode du point xe.


a) Pour la rsolution de

par la mthode du point xe, on introduit la fonction dnie par

Cette fonction est continue et drivable sur On trace, sur une autre gure, sa
courbe reprsentative (la commande gure(n) permet douvrir une nouvelle gure,
numrote , sans avoir fermer la ou les gures en cours).
syms x real
phi=(x+1)*atan((x+1)/(x^2+2));
gure(2)
ezplot(phi,1,2) ; grid on ;hold on
set(gca,LineStyle,)
ezplot(x,1,2)
axis equal ; axis auto
legend(y=phi(x),y=x)
title(Graphe de phi)

Graphe de phi
2
y=phi(x)
y=x

1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1

1.2

1.4

1.6
x

1.8

204

Mathmatiques avec Matlab

On calcule sa drive et on trace aussi la courbe reprsentative de sur lintervalle


de travail.
phiPrime = simplify(diff(phi)) ;
gure(3)
ezplot(phiPrime,1,2)
grid on
title(Graphe de phi )
Graphe de phi
0.45

0.4

0.35

0.3

0.25

0.2

0.15

0.1

0.05
1

1.1

1.2

1.3

1.4

1.5
x

1.6

1.7

1.8

1.9

Graphiquement, on observe les proprits :

pour tout
pour tout

Pour vrier ces proprits par le calcul, on tudie les variations de donc le signe
de :
phiSeconde =simplify(diff(phiPrime))
phiSeconde =
2*(3-12*x^3-4*x^4+2*x^5-10*x^2-28*x)/(x^4+5*x^2+5+2*x)^2
solve(phiSeconde)
ans =
[ -1.90625]
[ -.105843-1.37614*i]
[ -.105843+1.37614*i]
[ .102881]
[ 4.01506]

Approximation de racines dquations

205

Ainsi lquation admet 5 solutions, dont 3 relles (Matlab ne peut fournir


ici que des valeurs approches). Il ny a pas de solution dans lintervalle ce qui
montre, par continuit, que garde un signe constant dans cet intervalle. Par le calcul
de on dtermine ce signe :
subs(phiSeconde,1)
ans = -0.5799
Ainsi, est ngative, donc est dcroissante sur lintervalle On calcule le
minimum et le maximum de
M1=subs(phiPrime,x,1)
M1 = 0.4342
M2=subs(phiPrime,x,2)
M2 = 0.0636
On a donc, pour tout


do :

pour tout
pour tout

est donc strictement croissante de On calcule le minimum et le maximum de sur


minPhi=subs(phi,x,1)
minPhi = 1.1760
maxPhi=subs(phi,x,2)
maxPhi = 1.3909

On a bien prouv

Toutes les hypothses dapplication de la mthode du point xe sont vries.


b) On calcule le nombre de termes ncessaire pour obtenir une valeur approche de la racine
prs, en utilisant la formule

epsilon =1e-6 ;
N0=ceil((log(epsilon)-log(2-1))/double(log(M1)))
N0 = 17

206

Mathmatiques avec Matlab

Partant de on calcule successivement


Ces valeurs sont places
(attention au dcalage dindices).
dans un tableau
X(1)=1 ;
for i=2 :N0+1, X(i)=double(subs(phi,x,X(i-1)));end
format long
X
X=
1.00000000000000 1.17600520709514 1.24379170581345 1.26557796182895
1.27210780086810 1.27402155079797 1.27457867309538 1.27474054108967
1.27478754376334 1.27480118996655 1.27480515165309 1.27480630177079
1.27480663566025 1.27480673259122 1.27480676073111 1.27480676890036
1.27480677127196 1.27480677196046
La solution , prs, est donc

3) Mthode de Newton
a) Pour la mthode de Newton, les hypothses ont dj t
tablies au cours de ltude de . La proprit (drivabilit de est elle aussi
vrie.
b) On place dans le tableau la suite des cinq premiers itrs de la mthode
de Newton partir de linitialisation :

clear X ; X(1)=1 ;
for i=1 :5,X(i+1)=X(i)-double(subs(f,x,X(i))/subs(fPrime,x,X(i)));end
X
X=
1.00000000000000 1.26918443438080 1.27480320880089 1.27480677224065
1.27480677224209 1.27480677224209
On peut apprcier la vitesse de convergence en comparant la suite de valeurs obtenues,
avec la solution approche donne directement par la fonction solve de Matlab.
solve(f)
ans =1.2748067722420946580579944415928
On a un chiffre signicatif pour , deux pour quatre pour huit pour
et les quinze chiffres quon peut lire pour sont galement signicatifs.

Approximation de racines dquations

207

6.5. Exercices
6.5.1. Mthode de dichotomie, de Newton et du point xe
On considre lquation

, avec

1) Etudier les variations de et montrer que cette quation admet une unique
solution dans , .
2) Utilliser la mthode de dichotomie pour trouver une valeur approche de avec
la prcision .
3) Vrier que la mthode de Newton est applicable pour trouver une valeur approche de . En tudiant le signe de indiquer un bon choix de Calculer alors
les 10 premiers itrs de cette mthode
4) On met lquation

sous la forme

a) Montrer que les hypothses dapplication de la mthode du point xe ne


sont pas vries sur lintervalle , .
b) Montrer quelles le sont sur lintervalle
.
c) Combien de termes devrait-on calculer par la mthode du point xe pour
trouver une valeur approche de prs ?
(solution p. 209)
6.5.2. Mthode de Newton pour une fonction afne

Appliquer la mthode de Newton une fonction afne dnie par


en prenant une initialisation quelconque.

(solution p. 212)
6.5.3. Valeur approche de

En considrant la fonction dnie par


Newton pour construire une suite convergeant vers
termes avec Matlab.
(solution p. 212)

utiliser la mthode de
calculer les six premiers
En

208

Mathmatiques avec Matlab

6.5.4. Programmation de la mthode du point xe


1) Ecrire une fonction

qui place dans le tableau


les n premiers itrs de la mthode du point xe applique la fonction de la variable


var, dnie par lexpression symbolique phi, en partant de linitialisation (on aura
donc
2) Ecrire une fonction

qui, en plus des traitements de la question prcdente, reprsente sur un graphique,


dans un repre orthonorm :
;
- la fonction sur lintervalle
- la droite dquation ;
- la ligne polygonale prsente au paragraphe 6.2.3.1.
(solution p. 213)

6.5.5. Programmation de la mthode de Newton


1) Ecrire une fonction

qui place dans le tableau


les n premiers itrs de la mthode de Newton applique la fonction de la variable


var, dnie par lexpression symbolique f, en partant de linitialisation
2) Ecrire une fonction

qui, en plus des traitements de la question prcdente, reprsente sur un graphique :


- la fonction sur lintervalle
;
- les tangentes successives illustrant la mthode (voir paragraphe 6.3.4.2).

(solution p. 215)

Approximation de racines dquations

209

6.6. Solutions
Exercice 6.5.1
1) Remarquons tout dabord que la fonction
dnit avec Matlab, et on calcule sa drive.

est indniment drivable. On la

syms x
f = cos(x)-x*exp(x);
fPrime = diff(f)
fPrime = -sin(x)-exp(x)-x*exp(x)
Sur lintervalle

donc
On a On calcule une valeur approche de

fDePisur2 = double(subs(f,x,pi/2))
fDePisur2 = -7.5563

est continue et dcrot strictement de 1


Lquation admet donc une solution unique.
On construit la courbe reprsentative de
clf
ezplot(f,[0 pi/2])
hold on ;grid on
dessineRepere
title(f(x)= cos(x)-x*exp(x))
f(x)= cos(x)x*exp(x)

1
0
1
2
3
4
5
6
7
8
0

0.5

1
x

1.5

210

Mathmatiques avec Matlab

2) Les hypothses de la mthode de dichotomie ont t vries prcdemment.


On applique lalgorithme de la mthode, en comptant le nombre ditrations pour
obtenir la prcision de
g = 0 ; d = pi/2 ;
n=0 ;
while (d-g 1e-6)
n=n+1 ;
m = (g+d)/2 ;
fdeM = cos(m) - m*exp(m) ;
if fdeM 0
g=m ;
else
d = m;
end
end
format long
[ g d]
ans = 0.51775671562829 0.51775746464235
n
n =21



3) Daprs la premire question, les hypothses sont vries sur
On calcule :
lintervalle

Ainsi,

fSec=diff(fPrime)
fSec = -cos(x)-2*exp(x)-x*exp(x)
On a sur
et on choisit linitialisation telle que soit lui
aussi ngatif, par exemple

On calcule alors

...,

h = simplify(x-f/fPrime)
h = (x*sin(x)+x^2*exp(x)+cos(x))/(sin(x)+exp(x)+x*exp(x))
X(1)= pi/2 ;
for i = 1 :10,
X(i+1)=double(subs(h,x,X(i)));
end
X
X=
1.57079632679490 1.00549242610729 0.65572760463222 0.53184945218649
0.51792141093558 0.51775738621207 0.51775736368246 0.51775736368246
0.51775736368246 0.51775736368246 0.51775736368246

Approximation de racines dquations

211

Ds le sixime terme, on a obtenu 6 chiffres signicatifs, et ds le huitime, on a


quatorze chiffres signicatifs..
4) Pour la mthode du point xe, on utilise lquivalence

pour tout

.
a) On dnit donc

et on calcule :

phi = cos(x)./exp(x) ;
phiPrime = diff(phi)
phiPrime = -sin(x)/exp(x)-cos(x)/exp(x)
On calcule les valeurs de et pour

format short ; double(subs(phi, x, [0 0.45 0.6 pi/2]))


ans = 1.0000 0.5741 0.4529 0
double(subs(phiPrime, x, [0 0.45 0.6 pi/2]))
ans = -1.0000 -0.8515 -0.7628 -0.2079

Comme
lhypothse nest pas vrie.
b) On calcule
phiSeconde = diff(phiPrime)
phiSeconde = 2*sin(x)/exp(x)
Sur lintervalle

est croissante car

Les tableaux de valeurs prcdents montrent que crot de

On a donc

et, tant ngative dcrot de 0,5741 0,4529. Les hypothses et


sont donc bien vries sur lintervalle

212

Mathmatiques avec Matlab

c) On value le nombre

de termes calculer pour obtenir la prcision de

M =double(abs(subs(phiPrime, x, 0.45 )))


M = 0.8515
n = ceil((log(1e-6)-log(0.6-0.45))/log(M))
n = 75

Exercice 6.5.2
On vrie facilement que les hypothses sont satisfaites. Partant dune
initialisation quelconque, on calcule

Ainsi, ds la premire itration, on a obtenu la valeur exacte de la solution de lquation

Exercice 6.5.3

, la fonction dnie par est continue


Sur lintervalle
et deux fois drivable (fonction polynme). Sa drive est strictement positive, donc
est strictement croissante sur cet intervalle. De plus
et sont de
signes contraires. Ainsi, toutes les hypothses sont vries pour appliquer la mthode
de Newton. Comme

on choisit linitialisation telle que

par exemple

La suite des itrs de Newton est dnie par

On calcule avec Matlab les six premiers termes de cette suite.

Approximation de racines dquations

213

X(1)=2 ;
for n=1 :5,
X(n+1)=(X(n)^2+2)/(2*X(n));
end
format long ;
X
X=
Columns 1 through 4
2.00000000000000 1.50000000000000 1.41666666666667 1.41421568627451
Columns 5 through 6
1.41421356237469 1.41421356237309
On compare avec la valeur de

, afche au format long :

s=sqrt(2)
s = 1.41421356237310
Ds le sixime terme, on a obtenu 15 chiffres signicatifs.
Exercice 6.5.4
1) La suite des itrs de la mthode du point xe est dnie par

Pour calculer

on remplace dans lexpression de la variable var par

function s=pointFixe(phi,var,x0,n)
s(1)=x0 ;
for i=2 :n
s(i)=double(subs(phi,var,s(i-1)));
end
On peut tester sur lexemple prsent au paragraphe 6.2.4.
pointFixe(9/10*exp(-x),x,0,6)
ans =
0 0.9000 0.3659 0.6242 0.4821 0.5557
2) Pour lillustration graphique, aprs avoir construit la courbe reprsentative de

et la droite

on trace, pour de

les segments joignant

214

Mathmatiques avec Matlab

puis

graphe 6.2.3.1). Au point

et enn

on place le texte .

(voir para-

function s=pointFixeGraph(phi,var,x0,n,a,b)
s=pointFixe(phi,var,x0,n);
clf ; hold on ;
ezplot(phi,[a b]) %reprsentation de phi
axis equal
h=(b-a)/40 ; % h dnit une marge gauche de a et droite de b
axis([a-h b+h a b])
plot([a b], [a b],-.) %reprsentation de y=x entre a et b
legend(strcat(y = ,char(phi)),strcat(y = ,char(var)))
for i=1 :n-1
plot([s(i) s(i)],[a s(i)], :)
plot([s(i) s(i)],[s(i) s(i+1)],)
plot([s(i) s(i+1)],[s(i+1) s(i+1)],)
text(s(i),a+h,strcat(s,num2str(i))) % place le texte si
end
plot([s(n) s(n)],[a s(n)], :) % dessine le segment [An Mn]
text(s(n),a+h,strcat(s,num2str(n))) % place le texte sn
title(Mthode du point xe)
Pour la fonction de lexemple 6.4.1, on obtient le graphe suivant

Mthode du point fixe


1.4
y =(x+1)*atan((x+1)/(x2+2))
y =x

1.35

1.3

1.25

1.2

1.15

1.1

1.05

s1
1

s2
1.05

1.1

1.15

s3 s4
1.2
x

1.25

1.3

1.35

1.4

Approximation de racines dquations

215

grce aux instructions


syms x real
phi=(x+1)*atan((x+1)/(x^2+2));
s=pointFixeGraph(phi,x,1,4,1,1.4)
s = 1.0000 1.1760 1.2438 1.2656

Exercice 6.5.5
1) Appliquer la mthode de Newton la fonction
du point xe la fonction

revient appliquer la mthode

Do la fonction Matlab
function s=newton(f,var,x0,n)
phi = simplify(var - f/diff(f,var)) ;
s=pointFixe(phi,var,x0,n);
Exemple dutilisation (voir paragraphe 6.3.4.2) :
syms x real
f=x^3-4.53*x^2+6.0291*x-2.218039;
s=newton(f,x,1.15,6)
s = 1.1500 1.7309 1.4776 1.5101 1.5100 1.5100
2) Pour la fonction newtonGraphe, on doit en plus reprsenter graphiquement ,
et construire pour chaque itr de la mthode de Newton :
- le segment "vertical" joignant le point dabscisse de laxe au
point dabscisse de la courbe reprsentative de ;
- le segment de tangente joignant ce dernier point au point dabscisse
de laxe .
function s=newtonGraph(f,var,x0,n,a,b)
s=newton(f,var,x0,n);
clf ; hold on ;
ezplot(f,[a b])
plot([a b], [0 0],.-) % dessin axe des abscisses
for i=1 :n-1
y= double(subs(f,x,s(i))); % calcul de y = f(s )
plot([s(i) s(i)],[0 y],) %dessin de [N M ]
plot([s(i) s(i+1)],[y 0],) %dessin de [M N ]
end

216

Mathmatiques avec Matlab

Sur lexemple prcdent :


syms x real
f=x^3-4.53*x^2+6.0291*x-2.218039;
s=newtonGraph(f,x,1.15,6,1,2);
Do le graphe
x^3453/100*x^2+60291/10000*x2497289903473307/1125899906842624
0.3

0.2

0.1

0.1

0.2

0.3
1

1.1

1.2

1.3

1.4

1.5
x

1.6

1.7

1.8

1.9

Chapitre 7

Interpolation polynomiale

7.1. Le polynme dinterpolation dune fonction


7.1.1. Dnitions
On suppose connues les valeurs dune fonction
distincts selon le tableau suivant :

en un nombre ni de points

Un tel tableau peut tre le rsultat de mesures effectues exprimentalement.

On se propose alors dapprocher par une fonction simple de type polynomial


de degr infrieur ou gal et telle que

On montrera que existe et est unique. On lappelle le polynme dinterpolation de


aux points

La reprsentation graphique de cette fonction


points de coordonnes

217

est une courbe passant par les

218

Mathmatiques avec Matlab


Polynme dinterpolation P3
4

2
(x0 , f0)

(x3 , f3)

(x1 , f1)

4
(x2 , f2)
0

0.1

0.2

0.3

0.4

Lorsquon travaille sur un intervalle

0.5
x

0.6

0.7

0.8

0.9

linterpolation polynomiale :

permet de donner une approximation numrique de pour appartenant


et

On dira quon a interpol,
sert construire des formules explicites utiles pour le calcul approch dintgrales.

7.1.2. Thorme dexistence et dunicit de


On a le rsultat :
Il existe un unique polynme de degr infrieur ou gal tel que

Dmontrons ce rsultat dans le cas


Le cas gnral se fait dune manire
similaire. En crivant



et

on obtient le systme linaire

Interpolation polynomiale

219

quon peut crire sous forme matricielle

Le dterminant de la matrice de ce systme (appel dterminant de Vandermonde) se


calcule sous Matlab :
syms x0 x1 x2
A=[1 x0 x0^2 ; 1 x1 x1^2 ; 1 x2 x2^2] ;
factor (det(A))
ans= -(x2-x0)*(-x0+x1)*(x1-x2)
Ce dterminant est diffrent de zro puisque les points sont distincts. Do lexistence et lunicit des
7.1.2.1. Remarque
Dans le cas gnral, on montre que la rsolution du systme, permettant le calcul des coefcients du polynme dinterpolation, ncessite un nombre doprations
en . On utilisera plutt dautres mthodes, moins coteuses en nombre doprations, ds que devient grand. Par exemple, lutilisation des polynmes de Lagrange,
prsente ci-dessous, ncessite un nombre doprations en (voir exercice 7.3.5).

7.1.3. Polynme de Lagrange


7.1.3.1. Dnition

On appelle polynme de Lagrange dindice

associ aux
points
le polynme dni par

On retiendra que dans le polynme de Lagrange dindice


le numrateur est le produit de tous les facteurs
facteur ,

le dnominateur est le produit de tous les facteurs

exception faite du
pour

220

Mathmatiques avec Matlab

7.1.3.2. Exemple

trait prcdemment, les trois polynmes de Lagrange sont

Dans le cas

On va montrer que les polynmes de Lagrange constituent une base pour lcriture du
polynme dinterpolation de En effet on a le rsultat :
7.1.3.3. Thorme
Le polynme dinterpolation de aux points

est donn par


Cette relation dcoule facilement du fait que

do pour tout

pour
pour

7.1.3.4. Exemple 1
Dans le cas de deux points

on a les deux polynmes de Lagrange


et le polynme est la fonction afne donne par


Interpolation polynomiale

221

7.1.3.5. Exemple 2
Soit

une fonction connue aux points

de valeurs respectives

Calculons pour en dduire une approximation polynomiale de


On a

do

7.1.4. Algorithme dAitken


Lalgorithme dAitken utilise une formule de rcurrence permettant de calculer le
polynme dinterpolation dune fonction connue en points, partir de deux
polynmes dinterpolation dtermins partir de de ces points.
Etant donn le tableau de valeurs dinterpolation

on notera par commodit


Dans le cas dun seul point dinterpolation

, on a

222

Mathmatiques avec Matlab

On vrie que, partir des polynmes dinterpolation

construits respectivement sur les points

construit sur points par

on obtient le polynme

7.1.4.1. Exemple
A partir du tableau de valeurs

calculons par lalgorithme dAitken.


On a

o et sont les polynmes dinterpolation sur


respectivement. On ritre ensuite pour obtenir

On obtient de mme

et

Interpolation polynomiale

Do

223

On peut disposer les rsultats dans le tableau

Ces rsultats sobtiennent sous Matlab de la manire suivante


x0=0 ; x1=2 ; x2=4 ;
f0=3 ; f1=-1 ; f2=3 ;
Px0=f0 ; Px1=f1 ; Px2=f2 ;
x=2.5 ;
Px0x1=((x1-x)*Px0-(x0-x)*Px1)/(x1-x0)
Px0x1=
-2
Px1x2=((x2-x)*Px1-(x1-x)*Px2)/(x2-x1)
Px1x2=
0
Px0x1x2=((x2-x)*Px0x1-(x0-x)*Px1x2)/(x2-x0)
Px0x1x2=
-0.75

7.1.5. Gestion derreur


7.1.5.1. Rsultat prliminaire
On va estimer lerreur mathmatique

dans le cas o la fonction est suppose fois drivable sur lintervalle de travail
et o sa drive dordre est borne.
Posons, pour

et xs

Alors la drive dordre de est

224

Mathmatiques avec Matlab

dautre part on a

et donc, par application du thorme de Rolle la fonction dans les intervalles


il existe des points

, tels que

On ritre le thorme de Rolle pour la fonction , puisque

pour avoir cette fois points

tels que

puis, de proche en proche, il existe un point

tel que

On en dduit que

Do le thorme suivant :
7.1.5.2. Thorme

Soit
une fonction fois drivable, telle que
soit borne par une constante . Si dsigne le polynme
dinterpolation de sur la subdivision
de
, alors on a
pour tout

7.1.5.3. Exemple
En utilisant cette dernire ingalit, dans le cas o on peut donner
une majoration de lerreur commise en calculant une valeur approche de
par une interpolation utilisant les valeurs de et :

Interpolation polynomiale

avec

225

On obtient

A titre de vrication, on calcule

puis

Lerreur observe, lie cette mthode dinterpolation est donc


7.2. Approche polynomiale de la drivation


7.2.1. Approche classique
On se donne une fonction
est drivable au point , on a

Cela suggre que pour

et un point

. On sait alors que, lorsque


assez petit, on peut approcher

par le rapport

On peut aussi penser utiliser dautres quotients diffrentiels tels que

On pourra montrer que, si

est drivable en

226

Mathmatiques avec Matlab

7.2.2. Approche polynomiale


de

Dans le cas dune fonction connue en points quidistants


, avec

est le pas, on peut approcher

par

7.2.2.1. Exemple dans le cas de deux points


Partant du tableau :

le polynme est

do

On retrouve les rsultats de la premire approche.


7.2.2.2. Exemple dans le cas de trois points
Partant du tableau

et, aprs calcul de , on trouve


Interpolation polynomiale

do

valeurs qui approchent respectivement

227

et

On remarquera que, pour on retrouve le quotient diffrentiel donn


la n du paragraphe 7.2.1.

7.2.3. Gestion derreur mathmatique


Par drivation de la formule

vue au paragraphe 7.1.5.1, on dduit que pour une fonction indniment drivable,
admettant une drive dordre borne, et pour une subdivision de points quidistants



on a la majoration derreur

A titre illustratif, dans le cas de trois points quidistants, on a, au point

7.2.4. Etude complte derreur


On va montrer, que le cumul de lerreur mathmatique et des erreurs darrondi
fait quon ne peut pas prendre le pas trop petit si on veut optimiser lerreur totale

commise lorsquon confond avec

228

Mathmatiques avec Matlab

7.2.4.1. Premire partie


Etant donn le tableau dinterpolation bas sur les trois points quidistants

on retrouve, grce au calcul symbolique sous Matlab, les approximations polynomiales des drives de aux points dinterpolation.
On calcule dabord les trois polynmes de Lagrange.
syms x x0 h fMoins1 f0 f1
xMoins1=x0-h ;
x1=x0+h ;
LMoins1=(x-x0)*(x-x1)/((xMoins1-x0)*(xMoins1-x1))
LMoins1= 1/2*(x-x0)*(x-x0-h)/h^2
L0=(x-xMoins1)*(x-x1)/((x0-xMoins1)*(x0-x1))
L0= -(x-x0+h)*(x-x0-h)/h^2
L1=(x-xMoins1)*(x-x0)/((x1-xMoins1)*(x1-x0))
L1= 1/2*(x-x0+h)*(x-x0)/h^2
On calcule ensuite

et

P=fMoins1*LMoins1+f0*L0+f1*L1;
Pprime=diff(P,x) ;
Pprime=simple(Pprime) ;
PprimeX0=simple(subs(Pprime,x,x0))
PprimeX0= 1/2/h*(-fMoins1+f1)

On retrouve ainsi

7.2.4.2. Deuxime partie


On analyse lerreur mathmatique lie linterpolation et la drivation numrique.
On utilise la formule

Comme on ne connat pas explicitement , on dclare la variable symbolique fTierceCx et sa drive fTierceCxprime (on admet lexistence de cette dernire).
syms fTierceCx fTierceCxprime
FmoinsP=(x-xMoins1)*(x-x0)*(x-x1)/6*fTierceCx
FmoinsP= 1/6*(x-x0+h)*(x-x0)*(x-x0-h)*fTierceCx

Interpolation polynomiale

Dans le calcul de

on doit tenir compte de la drive de

229

FmoinsPprime=diff(FmoinsP,x) +...
fTierceCxprime*(x-xMoins1)*(x-x0)*(x-x1);
FmoinsPprimeX0=simple(subs(FmoinsPprime,x,x0))
FmoinsPprimeX0= -1/6*h^2*fTierceCx
On retrouve ainsi lestimation de lerreur mathmatique

7.2.4.3. Troisime partie


Sachant que sur les donnes , on commet une erreur de mesure (ou
darrondi) dau plus cherchons le pas optimum pour que lerreur globale commise

sur en la confondant avec soit minimale.


On rappelle que

La valeur calcule de (due aux erreurs sur les donnes) est

Lerreur de mesure est estime par

On en dduit lestimation de lerreur totale

230

Mathmatiques avec Matlab

Il suft de chercher les valeurs de

relles positives pour lesquelles la fonction

est minimum.
syms epsi M
f=M*h^2/6+epsi/h ;
fPrime=diff(f,h)
fPrime = 1/3*M*h-epsi/h^2
S =solve(fPrime,h) ;
h0 = S(1) %seule la premire solution est relle
h0 = 1/M*3^(1/3)*(epsi*M^2)^(1/3)
Pour vrier quau point

la fonction

prsente un minimum, on crit

sous forme de quotient

[N,D]=numden(fPrime)
N =M*h^3-3*epsi
D =3*h^2
Le dnominateur

est strictement positif, et le numrateur est positif si

soit

Ltude du signe de la drive montre que


sur

est dcroissante sur

7.2.4.4. Quatrime partie


Illustrons les calculs prcdents numriquement sur la fonction

au voisinage de

Lerreur darrondi est estime par

et croissante

Interpolation polynomiale

On peut penser a priori que le pas

est proche de

optimum pour approcher

231

par

Le calcul prcdent montre qu il nen est rien, puisquon a ici


au voisinage de on peut assimiler 3. Do

et

h0=double(subs(h0,{M,epsi},{3,2^(-52)}))
h0 = 6.0555e-006
Le pas optimum est donc

Examinons de plus prs lerreur observe

lorsque

prend les valeurs successives :


On calcule


syms x
f= x^5/20 ;
x0 = 1 ;
f0 = double(subs(f,x,x0))
f0 = 0.0500
derExact = double(subs(diff(f),x,x0))
derExact = 0.2500

On calcule pour

(premire colonne du tableau

les valeurs correspondantes de (deuxime colonne) et enn ler

reur observe (en troisime colonne).

for n = 1 :14
h=10^(-n) ;
derApp(n,1) = h ;
fMoins1= double(subs(f,x,x0-h));
f1 = double(subs(f,x,x0+h));
derApp(n,2) = (f1-fMoins1)/(2*h) ;
end
derApp( :,3)=abs(derExact-derApp( :,2)) ;

232

Mathmatiques avec Matlab

format long
derApp
derApp =
0.10000000000000
0.01000000000000
0.00100000000000
0.00010000000000
0.00001000000000
0.00000100000000
0.00000010000000
0.00000001000000
0.00000000100000
0.00000000010000
0.00000000001000
0.00000000000100
0.00000000000010
0.00000000000001

0.25500500000000
0.25005000050000
0.25000050000005
0.25000000500000
0.25000000005125
0.24999999999331
0.24999999997249
0.24999999952147
0.25000000680730
0.24999998599062
0.25000002068509
0.25000834735778
0.24993895841874
0.24945323584546

0.00500500000000
0.00005000050000
0.00000050000005
0.00000000500000
0.00000000005125
0.00000000000669
0.00000000002751
0.00000000047853
0.00000000680730
0.00000001400938
0.00000002068509
0.00000834735778
0.00006104158126
0.00054676415454

On constate que, au-del de la sixime ligne de ce tableau (correspondant


),

lerreur observe augmente. Pour

lerreur est suprieure celle observe


pour !
7.3. Exercices
7.3.1. Calcul dun polynme dinterpolation
Soit

une fonction connue selon le tableau suivant

1) Donner les trois polynmes de Lagrange , , .


2) Donner le polynme dinterpolation en expression symbolique polynomiale
et calculer une approximation de

3) En supposant que donner lerreur absolue commise en confondant


avec
et justier la prcision obtenue.
(solution p. 237)
7.3.2. Polynme de Lagrange et programmation
1) On suppose que les points
sont donns dans un tableau

Interpolation polynomiale

et que les valeurs

233

sont donnes dans un second tableau

Ecrire la fonction

qui calcule la valeur du polynme dinterpolation au point , pour


pourra utiliser une fonction auxiliaire

et

donns. On

qui calcule , pour chaque polynme de Lagrange


2) Utiliser cette fonction
lexemple 7.1.3.4.

pour retrouver le polynme

de

o est le
3) Utilser cette fonction pour calculer
polynme dinterpolation associ aux valeurs donnes dans lexercice 7.3.1

(solution p. 237)
7.3.3. Effet de Runge
On considre la fonction

dnie sur

par

Pour entier donn, on note le polynme dinterpolation de Lagrange associ


aux valeurs

et

Pour comparer et on reprsente ces deux fonctions sur un mme graphique. On


effectuera cette comparaison successivement pour

(on pourra utiliser la fonction

construite lexercice 7.3.2).

(solution p. 239)

234

Mathmatiques avec Matlab

7.3.4. Mthode dAitken et programmation


Ecrire la fonction rcursive

qui calcule, par la mthode dAitken, la valeur du polynme dinterpolation au point


, pour


et

donns (on reprend les notations de lexercice 7.3.2).

(solution p. 241)

7.3.5. Complexit de calcul de polynme dinterpolation


On sintresse au nombre doprations lmentaires (additions, soustractions, multiplications, divisions) ncessaires au calcul de

pour


donns.
1) Donner le nombre doprations effectues pour calculer chaque polynme de
Lagrange

2) En dduire le nombre total doprations pour calculer


(On pourra analyser les fonctions
7.3.2).

et

(solution p. 242)

de lexercice

Interpolation polynomiale

235

7.3.6. Formule barycentrique de Lagrange


Le but de cet exercice est dobtenir une expression permettant dvaluer le polynme dinterpolation en effectuant moins de calculs quavec les polynmes de Lagrange :

1) Obtention de la formule barycentrique de Lagrange (les relations ci-dessous


peuvent sobtenir par des raisonnements et calculs simples ; on pourra aussi les vrier
avec Matlab pour une valeur raisonnable de par exemple
a) Montrer que

(considrer le polynme identiquement gal et son polynme dinterpolation as )


soci aux points
b) Pour
quelconques, on note

le polynme dinterpolation associ. On dnit

et, pour tout

Vrier que, pour

c) Dduire des deux questions prcdentes, que, pour

et enn

(formule barycentrique de Lagrange).

236

Mathmatiques avec Matlab

2)

a) Ecrire une fonction Matlab


coeff

qui calcule

en fonction de
b) Ecrire une fonction Matlab

qui calcule en utilisant le plus judicieusement possible la formule barycentrique


de Lagrange(on note

).
3) Dterminer le nombre doprations lmentaires correspondant au calcul de co
On notera que le calcul de est
eff , puis au calcul de
faire une seule fois (pour donn), et que seul le calcul de est refaire pour
chaque nouvelle valeur de
(solution p. 242)
7.3.7. Complexit de calcul par la mthode dAitken
1) Donner le nombre doprations lmentaires ncessaires pour calculer valeur du polynme dinterpolation au point , pour

donns, par la version rcursive de lalgorithme dAitken (voir exercice 7.3.4).


2) Ecrire une version itrative de cet algorithme

construisant un tableau triangulaire deux dimensions qui sera une gnralisation


de celui construit dans lexemple 7.1.4.1 :

- dans la premire colonne, on aura, pour

- dans la deuxime colonne, on aura, pour

- dans la

colonne, on aura, pour

3) Donner le nombre doprations ncessaires pour obtenir ce tableau


(solution p. 246)

Interpolation polynomiale

237

7.4. Solutions
Exercice 7.3.1
1) Pour calculer le polynme on dclare les tableaux de valeurs symboliques
et puis on calcule les polynmes de Lagrange (Attention
au dcalage des indices).
X=sym([0 pi/6 pi/4]) ;
F=sym([0 1/2 sqrt(2)/2]) ;
syms x
L1=(x-X(2))*(x-X(3))/((X(1)-X(2))*(X(1)-X(3)))
L1= 24*(x-1/6*pi)*(x-1/4*pi)/pi^2
L2=(x-X(1))*(x-X(3))/((X(2)-X(1))*(X(2)-X(3)))
L2= -72*x*(x-1/4*pi)/pi^2
L3=(x-X(1))*(x-X(2))/((X(3)-X(1))*(X(3)-X(2)))
L3= 48*x*(x-1/6*pi)/pi^2
2) On peut alors calculer puis

P2=F(1)*L1+F(2)*L2+F(3)*L3
P2=
-36*x*(x-1/4*pi)/pi^2+24*2^(1/2)*x*(x-1/6*pi)/pi^2
P2DepiSur5=subs(P2,sym(pi/5))
P2DepiSur5 = 9/25+4/25*2^(1/2)
P2DepiSur5App=double(P2DepiSur5)
P2DepiSur5App= 0.5863
3) On calcule galement
plaant
par

et lerreur absolue commise en rem-

sin(pi/5)
ans= 0.5878
err= abs( P2DepiSur5App-sin(pi/5))
err = 0.0015
Le fait que lerreur obtenue est petite sexplique par le fait que le graphe de la fonction
sinus sur lintervalle
est proche dune parabole.
Exercice 7.3.2
1) On dnit une fonction Lagrange qui calcule de manire itrative

238

Mathmatiques avec Matlab

La valeur de est donne par le nombre dlments de

diminu de 1.

function Lkx=Lagrange(k,x,X)
n=length(X)-1 ;
Lkx=1 ;
for i=1 :k-1
Lkx=Lkx*(x-X(i))/(X(k)-X(i));
end
for i=k+1 :n+1
Lkx=Lkx*(x-X(i))/(X(k)-X(i));
end
On utilise ensuite la relation

function Px=interpolLagrange(x,X,Y)
n=length(X)-1 ;
Px=0 ;
for k=1 :n+1
Px=Px+Y(k)*Lagrange(k,x,X);
end
2) On applique la fonction prcdente aux tableaux de valeurs symboliques

syms x0 x1 f0 f1 x ;
X=[x0 x1] ; Y=[f0 f1] ;
syms x
Px=interpolLagrange(x,X,Y)
Px = f0*(x-x1)/(x0-x1)+f1*(x-x0)/(x1-x0)
On retrouve lexpression

de lexemple 7.1.3.4.
3) On dnit les tableaux

et

, et on calcule

X=[0 pi/6 pi/4] ;


Y=sin(X) ;
PdePiSur5= interpolLagrange(pi/5,X,Y)
PdePiSur5 = 0.5863

Interpolation polynomiale

239

Exercice 7.3.3

On dnit la fonction

et on construit sa reprsentation graphique sur lintervalle

syms x real
f=1/(1+x^2) ;
a=-5 ;b=5 ;
ezplot(f,a,b)
hold on ;grid on

Pour

on dnit les tableaux

et

n=5
X=[a :(b-a)/n :b]
X = -5 -3 -1 1 3 5
F=1./(1+X.^2)
F = 0.0385 0.1000 0.5000 0.5000 0.1000 0.0385

On dnit ensuite le polynme dinterpolation et on le reprsente graphiquement


Pn=interpolLagrange(x,X,F);
set(gca,LineStyle,- -)
ezplot(Pn,a,b)
legend (y=f(x),y=Pn(x))
axis auto
title(n=5)
dessineRepere

240

Mathmatiques avec Matlab


n=5
1.2
y=f(x)
y=Pn(x)
1

0.8

0.6

0.4

0.2

0.2
5

On effectue le mme traitement pour

0
x

n=10
2

y=f(x)
y=Pn(x)

1.5

0.5

0
x

Interpolation polynomiale

On constate que la courbe reprsentative de est plus proche de celle de


extrmits. Ce phnomne est encore accentu pour :

241

sauf aux

n=20
y=f(x)
y=Pn(x)

1.5

0.5

0.5

1.5

0
x

on lappelle effet de Runge.


Exercice 7.3.4
On utilise les relations :
pour


pour

Do :

function y = aitkenRec(x,X,Y)
n=length(X)-1 ; % Le tableau est [X(1), ...,X(n+1)]
if n==0
y=Y(1) ;
else
Q=aitkenRec(x,X(2 :n+1),Y(2 :n+1)) ;
R=aitkenRec(x,X(1 :n),Y(1 :n)) ;
y=((X(n+1)-x)*R-(X(1)-x)*Q)/(X(n+1)-X(1));
end

242

Mathmatiques avec Matlab

On peut tester lutilisation de cette fonction sur lexemple 7.1.4.1.


X=[0 2 4] ;
Y=[3 -1 3] ;
aitkenRec(2.5,X,Y)
ans = -0.7500

Exercice 7.3.5
On reprend les notations de lexercice 7.3.2.
1) Pour calculer on doit rpter fois linstruction

soit

oprations lmentaires.

2) Pour calculer on doit rpter fois linstruction

En tenant compte de la premire question, cela fait


rpter fois. Soit au total

oprations lmentaires

Remarque
On a vri que le nombre doprations ncessaires pour calculer
(voir remarque 7.1.2.1).

est en

Exercice 7.3.6
1)
a) Le polynme constant gal 1 peut tre considr comme le polynme dinterpolation associ aux valeurs
et

En appliquant la formule de Lagrange, on a donc

Interpolation polynomiale

243

Vrication avec Matlab dans le cas


: on utilise les fonctions Lagrange et
interpolLagrange de lexercice 7.3.2 (solution p. 237).
syms x0 x1 x2 x3 x
X=[x0 x1 x2 x3] ;
n=3 ;
for i =1 :n+1,
Lk(i)=Lagrange(i,x,X);
end
simplify(sum(Lk))
ans = 1
On calcule aussi le polynme dinterpolation associ aux valeurs

Y=[1 1 1 1 ] ;
Px=interpolLagrange(x,X,Y);
simplify(Px)
ans = 1
b) Il suft de remarquer que

est le dnominateur de
peut scrire

et que, pour

le numrateur de

On effectue la vrication avec Matlab : on calcule en utilisant la fonction prod.


Qx=prod(x-X)
Qx = (x-x0)*(x-x1)*(x-x2)*(x-x3)
On calcule de mme
gure pas

en utilisant un tableau intermdiaire


for k=1 :n+1
Tab=[X(1 :k-1) X(k+1 :n+1)] ;
A(k)=prod(X(k)-Tab);
end
A(1)
ans =(x0-x1)*(x0-x2)*(x0-x3)

dans lequel ne

244

Mathmatiques avec Matlab

On calcule



en utilisant les oprations globales sur les tableaux (./, .*)
T=Qx./((x-X).*A) ;
T(1)
ans =(x-x1)*(x-x2)*(x-x3)/(x0-x1)/(x0-x2)/(x0-x3)
On vrie que les lments de sont gaux ceux de
T-Lk
ans =[ 0, 0, 0, 0]
c) Des deux questions prcdentes, on dduit

do

Et enn



Vrions la premire galit avec Matlab, en comparant

avec .

S=1/sum(1./((x-X).*A));
S=simplify(S)
S = (-x+x3)*(-x+x2)*(x-x1)*(x-x0)
simplify(S-Qx)
ans =0

Interpolation polynomiale

2)

coeff place dans le tableau

a) La fonction

les coefcients

function A=coeff(X)
n=length(X)-1 ;
for k=1 :n+1
A(k)=coeffk(X,k,n);
end

Elle utilise une fonction auxiliaire

coeffk

qui calcule un lment

function Ak=coeffk(X,k,n)
Ak=1 ;
for i=1 :k-1
Ak=Ak*(X(k)-X(i)) ;
end
for i=k+1 :n+1
Ak=Ak*(X(k)-X(i)) ;
end
b) On calcule en mme temps

et

ce qui permet de ne calculer quune fois

Le rsultat nal est videmment


function Pnx=lagrangeBar(x,X,Y,A)
n=length(X)-1 ;
N=0 ; D=0 ;
for k=1 :n+1
quot=1/(A(k)*(x-X(k)));
N=N+Y(k)*quot ;
D=D+quot ;
end
Pnx=N/D ;

245

246

Mathmatiques avec Matlab

3) Pour calculer chacun des coefcients on doit rpter fois linstruction

soit oprations lmentaires. Le nombre doprations pour obtenir lensemble


du tableau est donc

Pour calculer

on rpte fois le calcul de (3
oprations), la mise jour de (2 oprations) et celle de (1 opration). Le nombre
total doprations est donc

Le principal avantage de cette formule barycentrique est que le calcul de est faire
une seule fois (pour donn), et que chaque nouveau calcul de ne ncessite que
oprations.
Exercice 7.3.7
1) On calcule ce nombre doprations par rcurrence sur en reprenant la
version rcursive de lalgorithme dAitken, dont la solution est donne p 7.4.
- Si , on doit effectuer linstruction

qui ne ncessite aucune opration arithmtique lmentaire.


- pour on doit effectuer la suite dinstructions

do

On a alors

On pourra montrer par rcurrence que

Ce nombre crot trs vite avec


2) On construit le tableau en utilisant les relations

Interpolation polynomiale

247

puis

function T= aitkenIte(x,X,Y)
n=length(X)-1 ;
for i=1 :n+1
T(i,1)=Y(i) ;
end
for j=2 :n+1
for i=j :n+1
num=(X(i)-x)*T(i-1,j-1)-(X(i-j+1)-x)*T(i,j-1);
T(i,j)=num/(X(i)-X(i-j+1));
end
end

On teste avec les donnes de lexemple 7.1.4.1, et on retrouve le tableau triangulaire


infrieur, complt par des
X=[0 2 4] ;
Y=[3 -1 3] ;
T=aitkenIte(5,X,Y)
T=
300
-1 -7 0
358
3) La premire colonne du tableau sobtient sans effectuer doprations arithmtiques. Tous les autres termes du tableau se calculent laide de oprations. Le
tableau entier sobtient donc colonne aprs colonne par un nombre doprations gal

Le nombre doprations est en , comme pour la mthode de Lagrange.


Cet algorithme itratif est surtout intressant si on ajoute un point dinterpolation supplmentaire Il ny a pas lieu de recalculer le tableau mais seulement
dy ajouter une ligne, soit nouvelles oprations.

248

Chapitre 8

Intgration numrique

8.1. Description de la mthode

On donne une fonction numrique dnie et intgrable sur


(grce aux mesures) en points selon le tableau :

Pour approcher le nombre exact

suppose connue

, lide est la suivante :

on remplace par son polynme dinterpolation


on calcule

on estime lerreur

Une telle mthode est appele souvent mthode de quadrature. On dcrira celles
qui font appel linterpolation polynomiale de degr , et On obtient respectivement les formules simples des rectangles, des trapzes et de Simpson.

249

250

Mathmatiques avec Matlab

Mthode simple des trapzes

y=f(x)

y=P1(x)

En pratique, on subdivise lintervalle

en plusieurs petits intervalles :

de longueur

, auxquels on applique la formule simple puis par sommation, on dduit les formules dites composites.

Mthode des trapzes composite

a+h

a+2h

Le choix de la mthode dpend gnralement du type de fonctions quon doit


intgrer. On peut ventuellement combiner les trois mthodes (rectangles, trapzes,
Simpson) sur des intervalles bien choisis.

Intgration numrique

251

8.2. Mthode des rectangles


8.2.1. Formules simples
de

Supposons que est connue en un point


. Le polynme dinterpolation
est la constante
Le nombre est donc approch par

Mthode simple des rectangles

y=f(x)

f(alpha)

alpha

Dans le cas particulier o le point est le milieu de

on obtient

Cest la formule simple des rectangles point-milieu.


8.2.2. Formules composites
On gnralise les formules prcdentes points quidistants

252

Mathmatiques avec Matlab

En appliquant le mme principe dinterpolation de degr sur chaque intervalle

on approche par

, o

et on obtient la formule composite des rectangles :


qui devient dans le cas des rectangles point-milieu


8.3. Mthode des trapzes


8.3.1. Formule simple
On utilise linterpolation deux points. Si on suppose connue
et , on a vu que

Par intgration, on obtient

aux deux points

8.3.2. Formule composite


En gnralisant le mme principe aux points quidistants prcdents, on
obtient

On utilise usuellement la dernire formule plus conomique en nombre doprations


arithmtiques.

Intgration numrique

8.4. Mthode de Simpson


8.4.1. Formule simple
On suppose connue

aux trois points quidistants de

le pas est

Alors

et aprs intgration, on obtient

Cest la formule simple dite de Simpson.


Mthode simple de Simpson
y=f(x)

y=P2(x)

253

254

Mathmatiques avec Matlab

8.4.2. Formule composite


On ritre la formule prcdente en partageant lintervalle

intervalles

centrs en de longueur

pour

en

; on obtient, dabord sur

et ensuite, la formule composite de Simpson


8.5. Gestion derreur


On se bornera ltude de lerreur mathmatique commise dans la mthode des
trapzes et celle de Simpson.
8.5.1. Erreur dans la mthode des trapzes
En formule simple on a vu que la quantit

approche

En posant

, il vient

Intgration numrique

255

En supposant ensuite que admet des drives successives continues jusqu lordre
2, on montre, grce un dveloppement de Taylor de lordre 2 quon a

En formule composite, on dduit que

8.5.2. Erreur dans la mthode de Simpson


Utilisant la mthode prcdente on trouve lestimation de lerreur suivante, en
composite, pour des fonctions admettant des drives successives continues jusqu
lordre 4

Lorsquon connait une majoration de


au plus une erreur vrie ncssairement


do

est en

qui permet davoir

Le pas

le pas choisi


ou bien

Si on veut viter dutiliser une majoration de on effectue les approxi


mations et de de pas respectifs et . La deuxime est peu coteuse,
puisquelle utilise certaines valeurs dj calcules. On ritrera les calculs, en remplaant par et en effectuant le test darrt

256

Mathmatiques avec Matlab

8.6. Exercices
8.6.1. Utilisations des mthodes des trapzes et de Simpson
1) Crer le chier f1.m correspondant la fonction

2) Donner son graphe sur lintervalle et dire quelle est la mthode dintgration numrique adapte pour le calcul approch de

3) Calculer les valeurs approches et de par la mthode des trapzes et de


Simpson lorsquon utilise la subdivision

4) Comparer avec la valeur donne par la fonction int de Matlab.


(solution p. 257)
8.6.2. Programmation
1) Ecrire une fonction

qui permet de calculer une valeur approche de

en utilisant la formule composite des trapzes, avec le pas

On pourra crire deux versions :


a) lune utilisant un traitement itratif naturel ;
b) lautre utilisant les oprations globales sur les tableaux

2) Ecrire de mme une fonction

ISimpson

(solution p. 259)

Intgration numrique

257

8.6.3. Calculs approchs dintgrales et gestion derreur


Soit la fonction

1) Donner le graphe de cette fonction et une majoration de et de


sur lintervalle
2) Combien dintervalles doit-on prendre pour obtenir, par la mthode composite
des trapzes, une valeur approche prs de

3) Mme question avec la mthode de Simpson.


4) Calculer et pour les subdivisions respectives obtenues.
5) Vrier le calcul de en utilisant les fonctions prdnies de Matlab trapz et
quad.
6) Comparer les rsultats prcdents avec la valeur exacte donne par Matlab.

(solution p. 261)

8.7. Solutions
Exercice 8.6.1
1) On dnit le chier texte f1.m
% fonction calculant y=exp(-x^2)
function y=f1(x)
y=exp(-x.^2) ;
2) On utilise la commande fplot pour obtenir le graphe de la fonction ainsi dnie.
fplot(f1,[0 1])
grid on
title(fonction f(x)=exp(-x^2))

258

Mathmatiques avec Matlab


2

fonction f(x)=exp(x )
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Lallure de la courbe suggre lutilisation de la mthode des trapzes ou de Simpson.


3) On utilise les formules composites des trapzes et de Simpson avec la subdivision

Ici, le pas est

It=((f1(0)+f1(1))/8)+((f1(1/4) +...
f1(2/4)+f1(3/4))/4)
I =0.7430
Is=((f1(0)+f1(1))/12)+((2*f1(2/4) + ...
4*f1(1/4)+4*f1(3/4))/12)
Is = 0.7469
4) Sous Matlab on a
syms x
Iexact =int(f1(x),0,1)
Iexact =1/2*erf(1)*pi^(1/2)
double(Iexact)
ans = 0.7468
La fonction

na pas de primitive explicite. Matlab utilise la fonction :

On constate que Is est plus proche de Iexact que It.

Intgration numrique

259

Exercice 8.6.2
1)
a) On utilise les formules

Lorsquon dclare

le paramtre reprsente le nom du chier contenant la fonction mathmatique


On utilise alors feval pour calculer Do le programme itratif :
function It =ITrapezesA(fonc,a,b,n)
h = (b-a)/n ;
S=(feval(fonc,a)+feval(fonc,b))/2;
for i=1 :n-1
S=S+feval(fonc,a+i*h) ;
end
It=S*h ;
On le teste, sur la fonction f1 de lexercice 8.6.1 (cest le nom de cette fonction, sous
forme de chane de caractres, qui doit tre pass en paramtre).
ITrapezesA(f1,0,1,4)
ans =0.7430
b) Pour crer le tableau

dont la dernire valeur est exactement et pour viter le cas o larrondi de


est strictement suprieur on dclare

On a

Ici

function It =ITrapezesB(fonc,a,b,n)
h = (b-a)/n ;
X =a :h :b+h/2 ;
Y= feval(fonc,X) ;
It= (h/2)*(Y(1)+Y(n+1))+h*sum(Y(2 :n)) ;

calcule

260

Mathmatiques avec Matlab

On teste sur la fonction


ITrapezesB(f1,0,1,4)
ans =0.7430
Lutilisation des oprations globales sur les tableaux de valeurs conduit une syntaxe
moins naturelle, mais permet de minimiser les temps de calcul, lorsque le nombre
dintervalles devient grand :
tic ;It=ITrapezesA(f1,0,1,15000);toc
elapsedtime = 0.9237
tic ;It=ITrapezesB(f1,0,1,15000);toc
elapsedtime = 0.0031
2) On dnit les tableaux

en tenant compte comme prcdemment des erreurs ventuelles darrondi. On calculera sum(Y0), sum(Y1) et sum(Y2) reprsentant les trois sommes respectives de la
formule de Simpson :

Do
function Is =ISimpson(fonc,a,b,n)
h = (b-a)/n ;
s=n/2 ;
X0=[a b] ;
X1= a+2*h :2*h :b-h ;
X2=a+h :2*h :b ;
Y0=feval(fonc,X0) ;
Y1=feval(fonc,X1) ;
Y2=feval(fonc,X2) ;
Is=h/3*(sum(Y0)+2*sum(Y1)+4*sum(Y2));
Le test sur donne
ISimpson(f1,0,1,4)
ans =0.7469

Intgration numrique

261

Exercice 8.6.3
1) On dclare la fonction et on trace son graphe
function y=f2(x)
y=exp(-x).*cos(x);
fplot(f2,[0 2*pi])
grid on ; dessineRepere
1.2

0.8

0.6

0.4

0.2

0.2

On calcule les drives seconde et quatrime de


syms x real
f2seconde=diff(diff(f2(x)))
f2seconde = 2*exp(-x)*sin(x)
f2quatrieme=diff(diff(f2seconde))
f2quatrieme = -4*exp(-x)*cos(x)
On en dduit que ces drives sont majores respectivement par et
.

sur lintervalle

2) Pour trouver les subdivisions demandes on utilise les estimations derreur

Il vient, pour la mthode des trapzes


a=0 ;b=2*pi ;epsilon=1e-3 ;
nT=ceil(((b-a)^3/(6*epsilon))^(1/2))
nT = 204

262

Mathmatiques avec Matlab

3) De mme, pour celle de Simpson


nS=ceil(((b-a)^5*4/(180*epsilon))^(1/4))
nS = 22
Il faut donc prendre 204 intervalles (et 205 points) pour la mthode composite des
trapzes, alors quil suft dutiliser points, et intervalles
pour obtenir la mme prcision de par la mthode de Simpson.
4)
It=ITrapezesB(f2,0,2*pi,204)
It = 0.4991
Is = ISimpson(f2,0,2*pi,22)
Is = 0.4990
5) La fonction prdnie de Matlab, trapz(X,Y), applique la mthode composite
des trapzes. On lui passe en paramtres

et


On obtient ici

quad
prs de

n=204 ;
X1=0 :2*pi/n :2*pi+pi/n ;
X=X1 ;
Y=f2(X) ;
ItMatlab=trapz(X,Y)
ItMatlab = 0.4991
calcule, en utilisant

la mthode de Simpson, une valeur approche

quad(f2,0,2*pi,1e-3,1)
ans = 0.4991
6) La fonction prdnie int de Matlab donne, lorsque cela est possible, la valeur
exacte de lintgrale.
Iexact=int(f2(x),0,2*pi)
Iexact = -1/2*exp(-2*pi)+1/2
double(Iexact)
ans = 0.4991

Bibliographie

[BAR 02] A. BARRAUD, "Outils danalyse numrique pour lautomatique", Hermes, Paris
2002.
[BRE 88] C. B RZINSKI, "Algorithmique numrique", Ellipses, Paris, 1988.
[CAL 77] B. C ALVO , J. D OYEN , A. C ALVO , F. B OSCHET, "Cours danalyse III, dveloppements limits, courbes, quations diffrentielles", Collection U, Armand Colin, Paris, 1977.
[DAU 97] M. DAUMAS , J-M. M ULLER, "Qualit des calculs sur ordinateur", Informatique,
Masson, Paris, 1997.
[DEM 79] B. D EMIDOVITCH , I. M ARON, "Mathmatiques", Mir, Moscou, 1979.
[LAR 96] C. L ARCHER , M. P RIENTE , J.-C. ROY, "Lessentiel du cours, 300 exercices comments et rsolus", Techniplus, 1996.
[LEL 72] J. L ELONG -F ERRAND , J.M. A RNAUDIES, "Cours de Mathmatiques, tome 2 : analyse", Dunod, Paris, 1972.
[MON 90] J.M. M ONIER, "Analyse, tome I, 800 exercices rsolus et 18 sujets dtude, 1er
cycle universitaire", Dunod, Paris, 1990.
[SAI 89] J. H. S AIAC, "Linformatique applique au calcul scientique", Dunod, Paris, 1989
[THE] R. T HODOR, "Initiation lanalyse numrique", CNAM, cours A, Masson,3ime dition, 1992.
[WIL 65] J.H. W ILKINSON, "The algebraic eigenvalue problem", monographs on numerical
analysis, Oxford science publications, 1965.

263

264

Index

continue droite (fonction) 46


continue gauche (fonction) 46
continue par morceaux (fonction) 94
convergente (suite) 20
croissante (fonction) 40
croissante (suite) 24

absorption (erreur d) 154


accroissements nis (thorme des ) 52
acos 60
Aitken (algorithme d) 221
approximation afne (dune fonction) 50
approximations successives (mthode des)
186
arccos 60
arcsin 58
arctan 60
arrondi 132
asin 58
asymptote 74
atan 61
axis 40
axis auto 55

base (de numration) 125


base2dec 127
bijective 41
bin2dec 127
borne (fonction) 37
borne (suite) 18

Darboux (sommes de) 91


dec2base 127
dec2bin 127
dec2hex 127
dcomposition en lments simples 107
deconv 106
dcroissante (fonction) 40
dcroissante (suite) 24
drive (dune fonction) 49
drives successives 51
dessineRepere (fonction utilisateur) 39
dveloppement limit 72
diag 164
dichotomie (mthode de) 184
diff 50, 52
digits 132
divergente (suite) 20
division euclidienne (de polynmes) 105

cancellation (erreur de) 156


ceil 185
changement de variable 101
continue (fonction) 46

eps 141
erreur absolue 146
erreur daffectation 148
erreur relative 146

265

266

Mathmatiques avec Matlab

erreurs doprations 146


extremum 38
ezplot 65
F
feval 259
gure 203
oor 82
fonctions trigonomtriques inverses 57
format hex 135
fplot 57, 257
fraction rationnelle 107

majore (fonction) 37
majore (suite) 17
mantisse 130
maximum 38
minimum 37
minore (fonction) 37
minore (suite) 17
monotone (suite) 24
N
Newton (mthode de) 192
numden 110

hex2dec 127
hexadcimale (base) 126
Horner (schma de) 142

paire (fonction) 39
priodique (fonction) 39
point xe (mthode de) 186
ple (dune fraction rationnelle) 107
poly2sym 105
polynme de Lagrange 219
primitive (dune fonction) 97

I
impaire (fonction) 39
indtermination (recherche de limite) 23
injective 41
int 100, 262
intgrable (fonction) 93
intgrale de Riemann 91
intgration numrique 249
intgration par parties 103
interpolation polynomiale 217
irrductible (fraction rationnelle) 107
L
Landau (notations de) 68
legend 59
Leibnitz (formule de) 51
limit 23, 43
limite (dune fonction) 42
limite droite (fonction) 44
limite gauche (fonction) 43
limite dune suite 19
limite innie 22, 23
LineStyle 65
LineWidth 40
M
Mac-Laurin (formule de) 71

Q
quad 257, 262
R
realmax 141
realmin 141
rciproque (fonction) 41
rectangles (mthode des) 251
repre (dessiner avec Matlab) 40
residue 109, 111
Rolle (thoreme de) 52
S
set 65
Simpson (mthode des) 253
strictement croissante (suite) 24
strictement dcroissante (suite) 24
subdivision 91
suite numrique 17
suite rcurrente 25
suites de rfrence 20, 21
surjective 41
sym2poly 105

Index
symsum 95
T
tangente (mthode de la) 192
taylor 72
Taylor-Lagrange (formule de) 69
Taylor-Young (formule de) 71
terme gnral (dune suite) 17

267

trapzes (mthode des) 252


trapz 257, 262
troncature 132
V
valeurs intermdiaires (theorme des) 48
virgule ottante normalise 131
vpa 132