Vous êtes sur la page 1sur 97

Programmation et techniques scientiques

 exploitation du langage et des modules Python 

jlo@univ-jfc.fr
INU ChampollionL2 PC-EEA

v2023.1.v1

jlo@univ-jfc.fr Programmation et techniques scientiques 1 / 78


Sommaire

Ö Partie I : Généralités de la démarche en programmation scientique

Ö Partie II : Utilisation des bibliothèques usuelles pour la programmation


scientique

Ö Partie III : Outils de base en analyse numérique

jlo@univ-jfc.fr Programmation et techniques scientiques 2 / 78


Première partie I

Généralités de la démarche en
programmation scientique

jlo@univ-jfc.fr Programmation et techniques scientiques 3 / 78


Deuxième partie II

Utilisation des bibliothèques usuelles


pour la programmation scientique

jlo@univ-jfc.fr Programmation et techniques scientiques 4 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques
Résolution numérique des équations algébriques non linéaires
Approximation et interpolation par une fonction

Troisième partie III

Outils de base en analyse numérique

jlo@univ-jfc.fr Programmation et techniques scientiques 5 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Outline

1 Notions des erreurs numériques


2 Dérivées & intégrales numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 6 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Outline
1 Notions des erreurs numériques
Sources des erreurs numériques
Erreurs d'arrondi & troncature des nombres
Propagation des erreurs d'arrondi et de troncature des nombres
Erreurs d'approximation
Démarche de contrôle des erreurs numériques
Bilan mTake home message
2 Dérivées & intégrales numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 7 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Sources des erreurs numériques


Exemple introductive :
On sait que mais :
PI = np.pi
π
sin = sin (30◦ ) = 0.5
6 print(np.sin(PI/6))

0.49999999999999994

On sait que mais :


0.1 + 0.1 + 0.1 = 0.3 testCompare = 0.1 + 0.1 + 0.1 == 0.3
print(testCompare)

False
Erreurs d'arrondi & de troncature de nombres
Erreurs d'approximation
Erreurs de propagation (approximation & arrondi)
jlo@univ-jfc.fr Programmation et techniques scientiques 8 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Dénitions
TRONCATURE à m chires ARRONDI à m chires
X = ±.d1 d2 d3 . . . dm dm+1 × b e
X = ±.d1 d2 d3 . . . dm dm+1 × b e X∗ = ±.d1 d2 d3 . . . dm × b e
tronc(X ) = ±.d1 d2 d3 . . . dm × be ±.00 . . . 00vm+1 × b e

X − tronc(X ) = ±.dm+1 b e+m


avec v = b/2
Xe = tronc(X ∗ )

e.g. b = 10, m = 3, X = 1237. e.g. b = 10, m = 3, X = 1237.


=⇒ X ∗ = (0.1237 + 0.0005) × 104
=⇒ X = 0.1237 × 104 ⇐⇒ X̃ = 0.124 × 104
⇐⇒ tronc(X ) = 0.123 × 104

=⇒ Erreurs fortement liés au codage des nombres : b, m, e


jlo@univ-jfc.fr Programmation et techniques scientiques 9 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Codage binaire des nombres ottants en 32 bits


norme IEEE 754

n = (−1) 1.Mt |2 × 2E −127


S d

S est le bit de signe


Mt la mantisse tronquée sur 23 bits
Ed est l'exposant décalé sur 8 bits

E.g. S = 0, Mt = 112 , Ed = 128


n = (−1)0 1.112 × 2128−127 = 1.112 × 2 = 11.12 = 21 + 21 + 2−1

s exposant décalée mantisse


0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

jlo@univ-jfc.fr Programmation et techniques scientiques 10 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Principes de codage binaire en 32 bits


Quelques principes de codage :
La partie entière en valeur absolue codée en binaire naturelle : e.g.
1027|10 = 210 + 21 + 20 = 0100 0000 0011|2
La mantisse et l'exposant sont obtenus par normalisation d'écriture
où la virgule est décalée à droite du premier chire 1 en binaire :
1027|10 = 01.00 0000 0011 × 210 2
Dans ce cas, l'exposant étant E = 10, l'exposant décalé en 32 bits
est par convention Ed = E + 127.
Les chires après les virgules sont codés en exposant négatif. e.g.
0.625|1 0 = 2−1 + 2−3 0.101|2
=⇒ certains nombres à virgule simple ne peut jamais être codée sans
erreur. e.g. 0.3 → δX
X
≈ 10−7

s exposant décalée mantisse


0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
jlo@univ-jfc.fr Programmation et techniques scientiques 11 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Limites du codage binaire selon norme IEEE 754


Illustration pour 32 bits :

Codage exposant min. max. précision machine


16 bits 5 bits ±6.1031 × 10−5 ±65504 εm ≈ 10−3
32 bits 8 bits ±1.1754944 × 10−38 ±3.4028235 × 1038 εm ≈ 10−7
64 bits 11 bits ±2.225 × 10−308 ±1.797 × 10308 εm ≈ 10−16
128 bits 15 bits ±3.362 × 10 −4932
±1.189 × 104932 εm ≈ 10−34

jlo@univ-jfc.fr Programmation et techniques scientiques 12 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Exemples de dépassement overow & underow


Dépassement overow Dépassement underow
# Floating=point overow example # Floating=point overow example
x = 1.0e308 # A very large positive x = 1.0e-308 # A very small
number positive number
y = x * 2.0 # Doubling the large # Multiply the small number by a
number constant
print(y) y = x * 1.0e-16
print(y)
inf
0.0

.
∃ un intervalle où le nombre ottant n'est pas représentable.
valeur trop grande =⇒ overow
valeur trop petite =⇒ underow

jlo@univ-jfc.fr Programmation et techniques scientiques 13 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Epsilon machine
EPSILON le plus petit nombre tel que :
MACHINE :
(EPS) 1 + EPS ̸= 1
C'est la plus petite valeur dont l'opération addition n'est pas neutre, sa
valeur dépend de bits d'exposant.
import sys import numpy as np
sys.float_info.epsilon np.finfo(np.float32).eps

2 . 2 2 0 4 4 6 0 4 9 2 5 0 3 1 3 e =16 1 . 1 9 2 0 9 2 9 e =07

jlo@univ-jfc.fr Programmation et techniques scientiques 14 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Epsilon machine
EPSILON le plus petit nombre tel que :
MACHINE :
(EPS) 1 + EPS ̸= 1
C'est la plus petite valeur dont l'opération addition n'est pas neutre, sa
valeur dépend de bits d'exposant.
import sys import numpy as np
sys.float_info.epsilon np.finfo(np.float32).eps

2 . 2 2 0 4 4 6 0 4 9 2 5 0 3 1 3 e =16 1 . 1 9 2 0 9 2 9 e =07
Pour un nombre x quelconque, la valeur minimale où l'opération addition
n'est pas neutre :
εx  εx
1+ ̸= x ⇐⇒ εx ≥ EPS · x ⇐⇒

x + εx ̸= x ⇐⇒ x ≥ EPS
x x
.les opérations entre deux nombres dont l'écart est plus petit que la
précision machine est assujettie à des erreurs. .
jlo@univ-jfc.fr Programmation et techniques scientiques 14 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Exemple limitation due à la précision de la machine


a = 1.0e308 # Un nombre tres grand
b = 1.0e-6 # Un nombre relativement petit, mais signicatif dans la
precision du codage
res = a+b
print('a+b =' , res, '\n a =', a)
print( 'Test egalite : ", a+b == a)

a+b = 1 e +308
a = 1 e +308
T e s t e g a l i t e : True

.
Les opérations des nombres dont l'ordre de grandeurs dièrent
grandement induit des erreurs.
L'opération entre deux nombres est limitée par la précision de la
machine (bits d'exposant), et donnée par l'epsilon machine.
jlo@univ-jfc.fr Programmation et techniques scientiques 15 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Propagation des erreurs d'arrondi


Quelques exemples simples où le résultat/nombre n'a pas besoin
d'une précision de 10−16 mais. . .
exacte calculée numériquement par Python
sin(30◦ ) = sin π/6 0.5 0.49999999999999994
cos(60 ) = cos π/3

0.5 0.50000000000000001
tan(45 ) = tan π/4

1 0.9999999999999999
4
 
1−3 −1 0 2.220446049250313e-16
3

1 − (4√− 3) 0 0
2× 2−2 0 4.440892098500626e-16
(4095.1 + 1)1 − 4095.1 1 1.0000000000004547

® Que se passe-t-il ? ®
jlo@univ-jfc.fr Programmation et techniques scientiques 16 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Transformation des opérations arithmétiques simples


^ ^
X +Y =⇒ Xe + Ye X ∗Y =⇒ Xe ∗ Ye
^ ]
X −Y =⇒ Xe − Ye X /Y =⇒ Xe /Ye

Pour une suite d'opérations, il faut arrondir et tronquer à chaque


résultat intermédiaire.

jlo@univ-jfc.fr Programmation et techniques scientiques 17 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Transformation des opérations arithmétiques simples


^ ^
X +Y =⇒ Xe + Ye X ∗Y =⇒ Xe ∗ Ye
^ ]
X −Y =⇒ Xe − Ye X /Y =⇒ Xe /Ye

Pour une suite d'opérations, il faut arrondir et tronquer à chaque


résultat intermédiaire.

Exemple (b = 10, m = 3) : X = (1/3) × 3 Erreur relative :


^ δX 0.001 × 100
=⇒ X = 1/e3) × e3
(^ = = 0.001 = 0.1%
1 × 100
e
X
1g
/3 × e3
^
=
= (0.333 × 10
^0 ) (0.3 × 101 ) . Perte de la précision accrue si
= (0.0999 × 101 )
^ l'exposant de chaque nombre est
0.999 × 100 diérent à cause de l'erreur de

=
décalage. E.g. (1/3) × 31
jlo@univ-jfc.fr Programmation et techniques scientiques 17 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Transformation des opérations arithmétiques simples


^ ^
X +Y =⇒ Xe + Ye X ∗Y =⇒ Xe ∗ Ye
^ ]
X −Y =⇒ Xe − Ye X /Y =⇒ Xe /Ye

Pour une suite d'opérations, il faut arrondir et tronquer à chaque


résultat intermédiaire.
Exemple (b = 10, m = 3) : X = (1 × 3)/3 Erreur relative :
^ δX 0
=⇒ X = 1^
(e ×e3)/e3 = = 0%
X 1 × 100
= 3/e3
g
e
= (0.300 × 101^) /(0.300 × 101 ) . Pour une suite d'opérations,
= 0
(1.000 × 10 )
^ l'ordre dans lequel sont eectuées
0.100 × 101 les opérations est très important !

=
=⇒ perte de l'associativité des
opérations.
jlo@univ-jfc.fr Programmation et techniques scientiques 18 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Exemples pertes d'associativité


Pertes d'associativité des opérations
(a ∗ b) ∗ c ̸= a ∗ (b ∗ c)

a = (1 + 1e-16) -1 a = 0.1+0.2+0.3
b = 1 + (1e-16 -1) b = 0.2+0.3+0.1
print('a =', a, '\n b =', b) print('a =', a, '\n b =', b)

a = 0.0 a = 0.6000000000000001
b = 1 . 1 1 0 2 2 3 0 2 4 6 2 5 1 5 6 5 e =16 b = 0.6

m
Due à la limite de précision du codage IEEE 754 des nombres ottants,
l'associativité des opérations n'est plus garantie. Les opérations font
gurer des arrondis et des troncatures intermédiaires qui peuvent avoir
des conséquences négatives sur les calculs.
jlo@univ-jfc.fr Programmation et techniques scientiques 19 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Propagation divergente des erreurs d'arrondi


b=4095.1
a = b+1
x = 1
x = a*x - b

® Que vaut en théorie x ? ®

jlo@univ-jfc.fr Programmation et techniques scientiques 20 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Propagation divergente des erreurs d'arrondi


b=4095.1
a = b+1
x = 1
x = a*x - b

® Que vaut en théorie x ? ®


® Que vaut en théorie x si on
répète la même opération
x = a*x - b plusieurs fois ? ®

jlo@univ-jfc.fr Programmation et techniques scientiques 20 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Propagation divergente des erreurs d'arrondi


b=4095.1 Résultat sur la console :
a = b+1 iter 0 x = 1.0000000000004547
x = 1 iter 1 x = 1.0000000018631
x = a*x - b iter 2 x = 1.0000076314440776
iter 3 x = 1.0312591580864137
® Que vaut en théorie x ? ® iter 4 x = 129.04063743775941
iter 5 x = 524468.2550088064
® Que vaut en théorie x si on iter 6 x = 2148270324.241572
répète la même opération iter 7 x = 8799530071030.805
x = a*x - b plusieurs fois ? ®
. Résultat divergent au bout de
b=4095.1 quelques itérations ! ! !
a = b+1
x = 1
for i in range(8):
x = a*x - b
print('iter ', i, 'x = ', x)

jlo@univ-jfc.fr Programmation et techniques scientiques 20 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Ordre de grandeur des erreurs propagatives d'arrondi


Exemple d'opération de multiplications
Soit un nombre X issu de n multiplications
X = x · x · x · . . . · x = xn
Estimation par calcul variationnel du premier ordre :

jlo@univ-jfc.fr Programmation et techniques scientiques 21 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Ordre de grandeur des erreurs propagatives d'arrondi


Exemple d'opération de multiplications
Soit un nombre X issu de n multiplications
X = x · x · x · . . . · x = xn
Estimation par calcul variationnel du premier ordre :
xn dX dx
dX = n · x n−1 dx = n · dx ⇐⇒ n = n ·
x x x
Estimation d'erreurs au premier ordre (grossière) :
dX dx
∆r X = =n· avec dx/x : erreur relative de l'arrondi
X x
Exemple
Exemple avec une représentation simple des ottants avec εm = 10−7 . Avec 100
millions de multiplications par seconde pendant 24 heures, l'estimation grossière de
l'erreur d'arrondi sur le résultat vaut :
dX
= 108 × 24 × 3600 × 10−7 = 8.6 × 105 IMPORTANT ! !
X
jlo@univ-jfc.fr Programmation et techniques scientiques 21 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Ordre de grandeur des erreurs propagatives


Exemple d'opération de multiplications

Opération erreur estimée

dX dx
multiplications X = xn =n· ≈ n · εm
successives X x
1 dX dx
divisions succes- X = = −n · − ≈ n · εm
xn
sives X x
dX dx
additions succes- X =n·x = ≈ εm
sives X x

jlo@univ-jfc.fr Programmation et techniques scientiques 22 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Démarche de limitation des erreurs d'arrondi


Quelques règles pour limiter les erreurs d'arrondi :
Utiliser un système d'unités tel que les valeurs utilisées soient de
l'ordre de l'unité.
.ATTENTION aux opérations sur des petits nombres. Exemple
pour θ ≈ 10−14 , il vaut mieux transformer le système d'équation et
θ
eectuer l'ensemble des calcus numériques sur θn = −14 .
10
Éviter de soustraire des nombres comparables.
Minimiser les soustractions.
Chercher le plus possible à sommer par paquet les quantités de
même ordre de grandeur.
Toujours contrôler et surveiller les erreurs. (cf. section Démarche
de contrôle des erreurs)

jlo@univ-jfc.fr Programmation et techniques scientiques 23 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Généralités d'un schéma numérique

paramètres Procédure xbn : résultat obtenu


de calculs de calculs

Méthodes numériques reposant sur des schémas approximatifs


. Méthodes itératives (en général) .
=⇒ Erreurs indépendantes de la précision machine (en plus).
Provenance des erreurs d'approximation
Modèle physique simplié
Equations analytiques tronquées

jlo@univ-jfc.fr Programmation et techniques scientiques 24 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Erreurs d'approximation d'un modèle simplié/tronqué


Un problème  bien posé  mais avec des
hypothèses idéalisées.
Exemple du modélè pendulaire en l'absence de L
friction visqueux : θ

d 2θ dθ
+mg sin θ = 0
mL + fv L

dt 2  dt m
| {z }
fv : frottement≈0
Solution si frottement visqueux est négligé :
θ(t) ≈ α sin (ω (t − t0 ))



g sin θ g
où α = α ω, et ω =
dt t=0 L

m Certains calculs sont pourvue d'erreur par construction car on ne peut


tenir compte de tous les paramètres d'un phénomène physique. m
jlo@univ-jfc.fr Programmation et techniques scientiques 25 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Erreurs d'approximation par troncature de développement


analytique
Exemple d'un développement Taylor :
h h2 h3 hn (n)
f (x + h) = f (x) + f ′ (x) + f ” (x) + f (3) (x) + . . . + f (x) + o (hn )
1! 2! 3! n!
Estimation de la dérivée par taux d'accroissement
f (x + h) − f (x) h h2 (3) hn−1 (n)
= f ′ (x) + f ” (x) + f (x) + o hn−1

f (x) + . . . +
h 2
|
! 3!
{z
n!
}
o(h)

.
Estimation d'une dérivée par taux d'accroissement est pourvue d'une
erreur d'approximation due à la troncature du développement :
df (x) f (x + h) − f (x)
≈ avec une erreur de surestimation de o (h)
dx h
jlo@univ-jfc.fr Programmation et techniques scientiques 26 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Exemples de calculs par approximations analytiques

calcul analytique approximation


100
x2 x 100
+∞ N=
xk xk
=1+x + = 1 + x + ... +
X X
exp(x) ...
k=0
k! 2! k=0
k! 100!
10
π2
+∞
1 1 1 N=
1 1 1 1
= 1 + + ... =1+
X X
+ + . . . + 10
6 k2 2 4 k2 2 4 2
k=1 k=0
 >0
x0 
1 2





2 2

xn+1 = xn + x10 ≈
2 √ un
lim xn = 2




n→∞

jlo@univ-jfc.fr Programmation et techniques scientiques 27 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Ordre de convergence d'un schéma numérique

paramètres Procédure xbk : résultat intermédiare


de calculs de calculs obtenu

. Méthodes itératives .

jlo@univ-jfc.fr Programmation et techniques scientiques 28 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Ordre de convergence d'un schéma numérique

paramètres Procédure xbk : résultat intermédiare


de calculs de calculs obtenu

. Méthodes itératives .

Lors d'une procédure de calculs successifs/itératifs, on génère une suite


numérique :
n−1 , xbn tel que
xb1 , xb2 , xb3 , . . . , xbk , . . . , xd lim xbn = xsol
n→+∞

où xsol est la solution exacte.


L'erreur de l'itéré k :
errk = xbk − xsol

jlo@univ-jfc.fr Programmation et techniques scientiques 28 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Ordre de convergence d'un schéma numérique


On dit que la méthode est de
convergence d'ordre p si l'erreur
varie comme 1/k p . Càd selon
l'inverse en puissance p du nombre
d'itération k .
Plus rigoureusement l'ordre de
convergence p est dénie par :

 p=1 linéaire

|errk+1 |

∃α ∈ R∗+ ∖ {+∞} lim
k→+∞ |errk |
p =α avec p=2 quadratique
p=3 cubique

mAu nombre d'itérations k identique, l'erreur est plus petit avec un


ordre p plus élevé m
mOrdre de convergence élevée =⇒ vitesse de convergence élevée m
jlo@univ-jfc.fr Programmation et techniques scientiques 29 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Bilan des erreurs


Soit la procédure de calculs itératifs appelée F suivant un schéma
numérique (algorithme) donné) :

. ∃ accumulation des erreurs d'arrondi (antécédent et image), ainsi que


des erreurs de propagation . =⇒ Il est toujours nécessaire de contrôler
et surveiller les erreurs à n d'évaluer la pertinence du résultat obtenu.

jlo@univ-jfc.fr Programmation et techniques scientiques 30 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Dénition des erreurs et diérences d'incrément


Procédure valeur attendue : X
paramètres de calculs
de calculs valeur obtenue : X∗

Erreur absolue Erreur relative



∆X = |X − X |
X − X∗
∆r X = × 100(%)
X

jlo@univ-jfc.fr Programmation et techniques scientiques 31 / 78


Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Dénition des erreurs et diérences d'incrément


Procédure valeur attendue : X
paramètres de calculs
de calculs valeur obtenue : X∗

Erreur absolue Erreur relative



∆X = |X − X |
X − X∗
∆r X = × 100(%)
X
Lorsque la valeur exacte attendue X est inconnue, mais son calcul fait
intervenir une succession des valeurs intermédiaire (suite) X0 , X1 , X2 , . . .,
Xk , Xk+1 , . . ., Xn−1 , Xn → Xsol :
n→+∞
Diérence d'incrément à Diérence relative d'incrément à
l'itération k + 1 l'itération k + 1
dik+1 = Xk+1 − Xk X −X
di(rk+) 1 = k+1 k
Xk
jlo@univ-jfc.fr Programmation et techniques scientiques 31 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Critère de convergence et tolérance résiduelle


Si on suppose que la série des valeurs intermédiaire converge vers le
résultat théorique X0 , X1 , X2 , . . ., Xk , Xk+1 , . . ., Xn−1 , Xn 7→n→+∞ X ,
on peut dénir une tolérance résiduelle tol<1 qui permet d'indiquer le
critère d'arrêt :
Xk+1 − Xk
< tol
Xk

A ne pas confondre avec l'erreur absolue err à l'itération k qui ne peut


être déterminée de manière exacte :
errk = Xk − X
m La tolérance résiduelle est toutefois un indicateur des erreurs
numériques engendrée. m
jlo@univ-jfc.fr Programmation et techniques scientiques 32 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Calcul d'une grandeur conservative


En math, soit la fonction f dénie par :
∀x ∈ E, la fonction f : x 7→ y , y ∈ F
Si xc est une grandeur conservative :
f (xc ) = yc = xc =⇒ f (xc ) − xc = 0
Application à l'estimation des erreurs numériques :
xbc
Procédure xc∗
de calculs c

Evaluation de la précision des calculs par :



c − xbc
∆xc = xc

m Toute variation des valeurs numériques de cette grandeur permet


d'estimer la précision de la méthode. m
jlo@univ-jfc.fr Programmation et techniques scientiques 33 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Evaluation de l'inuence de la discrétisation


Pour les méthodes qui reposent sur une discrétisation de l'espace et/ou
du temps, on peut voir l'inuence d'une diminution du pas.

paramètre de : h1 Procédure xb1


discrétisation de calculs
∆(h) x = |xb1 − xb2 |
paramètre de : h2 Procédure xb2
discrétisation de calculs

Si les solutions sont proches, on peut penser que la méthode est able ;
l'écart entre les deux solutions donne alors un ordre de grandeur de
l'erreur produite. À l'inverse, si une diminution du pas donne une solution
radicalement diérente de la précédente il est hautement probable que
l'on se trouve dans une  région d'instabilité .
jlo@univ-jfc.fr Programmation et techniques scientiques 34 / 78
Sources des erreurs numériques
Notions des erreurs numériques Erreurs d'arrondi & troncature des nombres
Dérivées & intégrales numériques Propagation des erreurs d'arrondi et de troncature des nombres
Résolution numérique des équations algébriques non linéaires Erreurs d'approximation
Approximation et interpolation par une fonction Démarche de contrôle des erreurs numériques
Bilan mTake home message

Bilan mTake home message


§ Aucun calcul numérique n'est exact.
§ Vérication des erreurs en l'absence de la vraie valeur par évaluation
de :
diérence relative dik vs. tolérance résiduelle  critère d'arrêt/de
(r )

convergence
calcul d'une grandeur conservative
évaluation de la sensibilité à la discrétisation (ou autres paramètres
de calculs).
Les erreurs
sont liés à la convention de codage des nombres  arrondi
sont liés à la méthode de calculs  approximation
se propage et peuvent s'amplier
Il existe des démarches pour éviter les erreurs :
regroupement de calcul des nombres du même ordre de grandeur
Éviter les opérations dont les opérandes sont des ordres de grandeurs
diérentes pour les opérations multiplication, addition et division.
Eviter les opérations dont les opérandes sont de même ordre de
grandeur pour la soustraction.
jlo@univ-jfc.fr Programmation et techniques scientiques 35 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Outline

1 Notions des erreurs numériques


2 Dérivées & intégrales numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 36 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Outline

1 Notions des erreurs numériques


2 Dérivées & intégrales numériques
Dérivées numériques
Intégrations numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 37 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Avant propos
f (x) = x 2 − cos x
f ′ (x) = 2x + sin x
y
30 calcul 10 y
20 analytique x
10 −5 5
x
−10
−5 5
m f ∈ D (dérivable une fois). f une fonction analytique connue =⇒

la dérivée f ′ est facile à trouver.


® Qu'en est-il lorsque nous avons des points numériques issues des
mesures expérimentales ®
f inconnue. f ′ encore moins...

jlo@univ-jfc.fr Programmation et techniques scientiques 38 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Principe de base
Exemple d'échantillonnage de n points sur
l'intervalle [a, b]
xi yi = f (xi ) wi ≈ f ′ (xi )
x0 = a y0 ?
x1 y1 ?
x2 y2 ?
.. .. ..
. . .
xk yk wk =?
.. .. ..
. . .
xn−1 = b yn−1 ?

Les valeurs sont discrètes =⇒


 fonction  obtenue non continue !

jlo@univ-jfc.fr Programmation et techniques scientiques 39 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Principe de base
Exemple d'échantillonnage de n points sur y
l'intervalle [a, b]
80
xi yi = f (xi ) wi ≈ f ′ (xi )
x0 = a y0 ?
x1 y1 ?
x2 y2 ? 40 yk+1
.. .. .. yk
. . . yk
yk−1
xk yk wk =?
.. .. .. x
. . . . . .xk−1 xk
xn−1 = b yn−1 ?
x1
b x2 xk+1

Idée : utiliser les valeurs numériques


Les valeurs sont discrètes =⇒ pour estimer f ′ (xk ) associé à
 fonction  obtenue non continue ! chaque point xk
m La dérivée obtenue sera aussi un vecteur/tableau numérique (de
même dimension) !
m Calcul itératif pour remplacer/déterminer les valeurs de wk ≈ f ′ (xk )
jlo@univ-jfc.fr Programmation et techniques scientiques 39 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Hypothèses de travail
Ò On ne connaît pas f (x), x 7→ y = f (x)
pour ∀x ∈ [a, b]
 Mais on connaît quelques valeurs
particulières supposées être des Pour n échantillonages de points, on
images par la fonction f : peut noter :
y0 → f (x0 ) yk → f (xk )
y1 → f (x1 ) ∀k ∈ [[0; n − 1]]
y2 → f (x2 )
.. f (xk ) = f (x0 + k · h) ≈ yk
.
f (xk + h) − f (xk ) ≈ yk+1 − yk
m On suppose le pas d'échantillonage h
constant : f (xk ) − f (xk − h) ≈ yk − yk−1
x1 − x0 = h xk = xk−1 + h
x2 − x1 = h xk+1 = xk + h
x3 − x2 = h
..
.
jlo@univ-jfc.fr Programmation et techniques scientiques 40 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Développement limité de Taylor

WÊXW♥
On sait que pour ∀x ,
h2 ” h3 hn
f (x + h) = f (x) + hf ′ (x) + f (x) + f (3) (x) + . . . + + f (n) (ξ)
2! 3! n!
avec h susamment petit et x < ξ < x + h
On peut utiliser le développement de Taylor pour estimer
la dérivée à droite
la dérivée à gauche
la dérivée centrée

jlo@univ-jfc.fr Programmation et techniques scientiques 41 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à droite
m
On utilise un point à droite de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à droite de xk : {xk+1 , yk+1 = f (xk + h)})

jlo@univ-jfc.fr Programmation et techniques scientiques 42 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à droite
m
On utilise un point à droite de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à droite de xk : {xk+1 , yk+1 = f (xk + h)})
Rappel :
h2 ” h3 hn
f (x + h) = f (x) + hf ′ (x) + f (x) + f (3) (x) + . . . + + f (n) (ξ)
2! 3! n!

jlo@univ-jfc.fr Programmation et techniques scientiques 42 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à droite
m
On utilise un point à droite de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à droite de xk : {xk+1 , yk+1 = f (xk + h)})
Rappel :
h2 ” h3 hn
f (x + h) = f (x) + hf ′ (x) + f (x) + f (3) (x) + . . . + + f (n) (ξ)
2! 3! n!
h2 ” h3 hn
hf ′ (x) = f (x + h) − f (x) − f (x) + f (3) (x) + . . . + + f (n) (ξ)
2! 3! n!

jlo@univ-jfc.fr Programmation et techniques scientiques 42 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à droite
m
On utilise un point à droite de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à droite de xk : {xk+1 , yk+1 = f (xk + h)})
Rappel :
h2 ” h3 hn
f (x + h) = f (x) + hf ′ (x) + f (x) + f (3) (x) + . . . + + f (n) (ξ)
2! 3! n!
h2 ” h3 hn
hf ′ (x) = f (x + h) − f (x) − f (x) + f (3) (x) + . . . + + f (n) (ξ)
2! 3! n!

f (x + h) − f (x) h h2 hn−1 (n)


f ′ (x) = − f ” (x) + f (3) (x) + . . . + f (ξ)
h |2! 3! {z n! }
O(h)
jlo@univ-jfc.fr Programmation et techniques scientiques 42 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à gauche
m
On utilise un point à gauche de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à gauche de xk : {xk−1 , yk−1 = f (xk − h)})

jlo@univ-jfc.fr Programmation et techniques scientiques 43 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à gauche
m
On utilise un point à gauche de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à gauche de xk : {xk−1 , yk−1 = f (xk − h)})
Rappel :
h2 ” h3 hn
f (x − h) = f (x) − hf ′ (x) + f (x) − f (3) (x) + . . . + (−1)n f (n) (ξ)
2! 3! n!

jlo@univ-jfc.fr Programmation et techniques scientiques 43 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à gauche
m
On utilise un point à gauche de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à gauche de xk : {xk−1 , yk−1 = f (xk − h)})
Rappel :
h2 ” h3 hn
f (x − h) = f (x) − hf ′ (x) + f (x) − f (3) (x) + . . . + (−1)n f (n) (ξ)
2! 3! n!
h2 ” h3 hn
hf ′ (x) = f (x) − f (x − h) + f (x) − f (3) (x) + . . . + (−1)n f (n) (ξ)
2! 3! n!

jlo@univ-jfc.fr Programmation et techniques scientiques 43 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée à gauche
m
On utilise un point à gauche de xk pour estimer la dérivée au point xk :
wk ≈ f ′ (xk ).

Le point en xk : {xk , yk = f (xk )}


Le point à gauche de xk : {xk−1 , yk−1 = f (xk − h)})
Rappel :
h2 ” h3 hn
f (x − h) = f (x) − hf ′ (x) + f (x) − f (3) (x) + . . . + (−1)n f (n) (ξ)
2! 3! n!
h2 ” h3 hn
hf ′ (x) = f (x) − f (x − h) + f (x) − f (3) (x) + . . . + (−1)n f (n) (ξ)
2! 3! n!

f (x) − f (x − h) h h2 hn−1 (n)


f ′ (x) = +− f ” (x) + f (3) (x) + . . . + (−1)n f (ξ)
h | 2! 3! {z n! }
O(h)
jlo@univ-jfc.fr Programmation et techniques scientiques 43 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée centrée
m
On utilise un point à gauche et un un point à droite de xk pour
estimer la dérivée au point xk : wk ≈ f ′ (xk ).

jlo@univ-jfc.fr Programmation et techniques scientiques 44 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée centrée
m
On utilise un point à gauche et un un point à droite de xk pour
estimer la dérivée au point xk : wk ≈ f ′ (xk ).
Rappel :
 2 h3 (3) hn
 f (x + h) = f (x) + hf ′ (x) + h f ” (x) + f (x) + . . . + f (n) (ξ)
22! 3!

n!
 f (x − h) = f (x) − hf ′ (x) + h f ” (x) − h3 (3) hn
f (x) + . . . + (−1)n f (n) (ξ)

2! 3! n!

jlo@univ-jfc.fr Programmation et techniques scientiques 44 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée centrée
m
On utilise un point à gauche et un un point à droite de xk pour
estimer la dérivée au point xk : wk ≈ f ′ (xk ).
Rappel :
 2 h3 (3) hn
 f (x + h) = f (x) + hf ′ (x) + h f ” (x) + f (x) + . . . + f (n) (ξ)
22! 3!

n!
 f (x − h) = f (x) − hf ′ (x) + h f ” (x) − h3 (3) hn
f (x) + . . . + (−1)n f (n) (ξ)

2! 3! n!
h3 (3) h2n+1 (2n+1)
− =⇒ f (x+h)−f (x−h) = 2hf ′ (x)+2 f (x)+. . .+2 f (ξ)
3! (2n + 1)!

jlo@univ-jfc.fr Programmation et techniques scientiques 44 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée centrée
m
On utilise un point à gauche et un un point à droite de xk pour
estimer la dérivée au point xk : wk ≈ f ′ (xk ).
Rappel :
 2 h3 (3) hn
 f (x + h) = f (x) + hf ′ (x) + h f ” (x) + f (x) + . . . + f (n) (ξ)
22! 3!

n!
 f (x − h) = f (x) − hf ′ (x) + h f ” (x) − h3 (3) hn
f (x) + . . . + (−1)n f (n) (ξ)

2! 3! n!
h3 (3) h2n+1 (2n+1)
− =⇒ f (x+h)−f (x−h) = 2hf ′ (x)+2 f (x)+. . .+2 f (ξ)
3! (2n + 1)!

f (x + h) − f (x − h) h2 h2n
f ′ (x) = + f (3) (x) + . . . + f (2n+1) (ξ)
2h 3! (2n + 1)!
| {z }
O(h2 )
jlo@univ-jfc.fr Programmation et techniques scientiques 44 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Calculs numériques des dérivées  Implémentation


schéma expression wk = f ′ (xk )
f (x + h) − f (x) yk+1 − yk
à droite f ′ (x) = − o(h) wk =
h xk+1 − xk
f (x) − f (x − h) yk − yk−1
à gauche f ′ (x) = + o(h) wk =
h xk − xk−1
f (x + h) − f (x − h) yk+1 − yk−1
centrée f ′ (x) = + o(h2 ) wk =
2h xk+1 − xk−1
1 Création et initialisation à zéro d'un
vecteur de même dimension que xVect et xi yi = f (xi ) wi ≈ f ′ (xi )

yVect : x0 = a y0 ?
x1 y1 w1
n = np.size(xVect) x2 y2 w2
wVect = np.zeros(n) .
.
.
.
.
.
. . .
2 Remplacer un à un (par itération) chaque xk
.
yk
.
wk = #
.
élément du vecteur wVect .
.
.
.
.
.
xn−2 = b yn−2 wn−2
for k in range(1, n-1): xn−1 = b yn−1 ?
#expression de calcul
wVect[k] = <...>
jlo@univ-jfc.fr Programmation et techniques scientiques 45 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

L'expression de calcul de chaque élément wVect[k] au choix :


schéma expression précision
f (x + h) − f (x)
à droite f ′ (x) = − O(h) ordre 1
h
f (x) − f (x − h)
à gauche f ′ (x) = + O(h) ordre 1
h
f (x + h) − f (x − h)
centrée ′
f (x) = + O(h2 ) ordre 2
2h

. Le schéma de la dérivée centrée ne permet pas d'évaluer la valeur de


la dérivée aux bornes de l'intervalle [a, b] d'échantillonnge, càd aux points
x0 = a et xn−1 = b .
Idems pour :
schéma à gauche ↛ ( f ′ (x
(0()=(f(′ (
(a)
schéma à droite ↛ ( ′
(1 ) = f ′ (b)
(
(
f (x(n− ( ( (

jlo@univ-jfc.fr Programmation et techniques scientiques 46 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Ordre de précision
L'expression de calcul de chaque élément wVect[k] au choix :
schéma expression précision
f (x + h) − f (x)
à droite f ′ (x) = − O(h) ordre 1
h
f (x) − f (x − h)
à gauche ′
f (x) = + O(h) ordre 1
h
f (x + h) − f (x − h)
centrée f ′ (x) = + O(h2 ) ordre 2
2h
ordre d'une approximation
Une fonction g (h) est dite d'ordre n au voisinage de 0 si ∃M > 0
g (h)
≤ M noté =⇒ g (h) = O(h )
n
lim
h→0 hn
Ainsi pour une fonction en h d'ordre n, si h est divisée par 2 =⇒ la valeur de O(hn ) sera
divisée par 2n

. L'ordre plus élevé ⇐⇒ erreurs d'approximations amoindries.


jlo@univ-jfc.fr Programmation et techniques scientiques 47 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée seconde
Rappel :
 2 h3 (3) hn
 f (x + h) = f (x) + hf ′ (x) + h f ” (x) + f (x) + . . . + f (n) (ξ)
22! 3!

n!
 f (x − h) = f (x) − hf ′ (x) + h f ” (x) − h3 (3) hn
f (x) + . . . + (−1)n f (n) (ξ)

2! 3! n!

h4 (4) h2n (2n)


=⇒ f (x+h)+f (x−h) = 2f (x)+h2 f ” (x)+ f (x)+. . .+2
X
f (ξ)
4! (2n)!

h4 (4) h2n (2n)


h2 f ” (x) = f (x + h) + f (x − h) − 2f (x) − f (x) − . . . − 2 f (ξ)
4! (2n)!
f (x + h) + f (x − h) − 2f (x) h2 (4) h2n−2 (2n)
f ” (x) = − f (x) − . . . − 2 f (ξ)
h2 4! (2n)!
| {z }
O(h2 )

jlo@univ-jfc.fr Programmation et techniques scientiques 48 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Dérivée seconde bis


Rappel :
 2 3 n
 f (x + h) = f (x) + hf ′ (x) + h f ” (x) + h f (3) (x) + . . . + h f (n) (ξ)
2! 2 2 3! 3 3

n!
 f (x + 2h) = f (x) + 2hf ′ (x) + 2 h f ” (x) + 2 h f (3) (x) + . . . + 2 h f (n) (ξ)
n n

2! 3! n!

(2) − 2 × (1) :
−2f (x + h) + f (x + 2h) = −f (x) + h2 f ” (x)+
6h3 (3) hn (n)
f (x) + . . . + (2n − 2) f (ξ)
3! (n)!
| {z }
O(h3 )

−2f (x + h) + f (x + 2h) = −f (x) + h2 f ” (x) − O(h3 )


f (x) − 2f (x + h) + f (x + 2h)
f ” (x) = + O(h)
h2
jlo@univ-jfc.fr Programmation et techniques scientiques 49 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Sensibilité à l'ordre et au pas d'échantillonnage h


Allures des fonctions Erreurs relatives pour diérents pas
 
x
f (x) = 1 − exp −
2

jlo@univ-jfc.fr Programmation et techniques scientiques 50 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Amélioration de la précision de calculs


m Diminution du pas h =⇒
diminution d'erreurs
d'approximation.
.MAIS .
m ∃ risque de limitation due au
codage des nombres
Rappel :
yk+1 yk+1 + yk−1 − 2yk
h
yk
∆r f ”
f”≈ ordre 2
ordre 1 ordre 2 h2
10−1 1 + 10−2 10−1 10−1
yk − 2yk+1 + 2yk+2
OK 10−3 1 + 10−4 10−3 10−8 f”≈ ordre 1
10−4 1 + 10−5 10−4 10−8 h2
OK
10−7 1 + 10−8 10−1 10−1 Présence des soustractions des
10−10 1 + 10−11 100 100
nombres petits et très proches !


jlo@univ-jfc.fr Programmation et techniques scientiques 51 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Instabilité générale de la diérentiation numérique


On avait supposé :
yk = f (xk ), ∀k {0, n − 1}  O(h2 ) ↘

Si h ↘, =⇒ ∆ε
En réalité (arrondis ou mesures) : ↗
2h

yk = f (xk ) + εk ∆ε
Le terme des écarts peut devenir
2h
Conséquence sur le schéma numérique dérivation 2
plus important que O(h ) (indicateur
centrée : : de la précision de la méthode).
∆ε

 Si ε provient des
z }| {
yk+1 − yk−1 f (xk+1 ) − f (xk−1 ) εk+1 − εk−1
2h
=
2h
+
2h arrondis/troncature =⇒
augmentation en double précision
Or, f ′ (x) =
f (xk+1 ) − f (xk−1 )
+ O(h2 )  Si ε provient des incertitudes de
2h mesure/erreurs de données =⇒
Donc, inutile... il faut améliorer
l'incertitude de mesures.
yk+1 − yk−1 ∆ε
= f ′ (x) + O(h2 ) +
2h 2h
|{z}
?
terme≥O(h2 ) Programmation et techniques scientiques
jlo@univ-jfc.fr 52 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Instabilité en présence des bruits  1%


Allures des fonctions Erreurs relatives pour diérents pas
 
x
f (x) = 1 − exp −
2

jlo@univ-jfc.fr Programmation et techniques scientiques 53 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Inuence du pas des mesures bruités

Aucune amélioration de la
précision par diminution du pas
d'échantillonnage.

∃ solutions techniques :
Techniques numériques de lissage de données (cf. approximation et
interpolation par une fonction L2S1).
Filtrage des mesures in situ ou en post-traitement (cf. cours
électricité  analyse fréquentielle & SciPy )
schémas numériques plus sophistiqués (cf. L2S2 ou en Master)

jlo@univ-jfc.fr Programmation et techniques scientiques 54 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Bilan & Take home message


§ ∃ une multitude de schémas numériques pour la dérivée →
déductible facilement de la formule de Taylor
de diérents ordres d'approximation  précision
§ Diminuer le pas d'échantillonnage diminue les erreurs sauf
les erreurs d'arrondi deviennent dominantes.
en présence de bruits importants.
=⇒ un compromis est nécessaire
§ Aspect technique de l'implémentation d'un schéma de dérivée :
Création d'un vecteur de même dimension que le vecteur d'abscisse,
initialisée par des zéros.
Calculer et remplacer élément par élément du vecteur avec un
schéma numérique du choix  une gestion et utilisation éclairée de la
structure itérative for et les indices d'un vecteur.

jlo@univ-jfc.fr Programmation et techniques scientiques 55 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Bilan & Take home message


§ Supposition forte lors de l'implémentation d'un schéma de
dérivation :
le k -ème élément de l'ordonné est associé au k -ème élément de
l'abscisse : yk = f (xk ) f à priori inconnu.
idem pour le vecteur des dérivées : wk = f ′ (xk ) et vk = f ”(xk ).
le pas d'échantillonnage h est constant tel que h = xk+1 − xk et
xk = x0 + h · k
§ Un seul schéma numérique de dérivation ne permet pas de calculer
la dérivée sur l'ensemble des antécédents.
yk+1 − yk
droite : f ′ (xk ) ≈ ↛ f (xn−1 ) car xn et yn n'existe pas.
xk+1 − xk
yk − yk−1
gauche : f ′ (xk ) ≈ ↛ f (x0 ) car x−1 et y−1 n'existe pas.
xk − xk−1
yk+1 − yk−1
centrée : f ′ (xk ) ≈ ↛ ni f (x0 ) ni f (xn )
xk+1 − xk−1

jlo@univ-jfc.fr Programmation et techniques scientiques 56 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Bilan  schémas de dérivation numérique usuels

nom usuel schéma erreur ordre


fk+1 − fk−1
dérivation centrée ′
fk = O(h2 ) 2
2h
fk+1 − fk
dérivation à droite ′
fk = O(h) 1
h
fk − fk−1
dérivation à gauche ′
fk = O(h) 1
h

fk+1 + fk−1 − 2fk


derivation double fk” = O(h2 ) 2
h2

fk − 2fk+1 + 2fk+2
derivation double fk” = O(h) 1
h2

jlo@univ-jfc.fr Programmation et techniques scientiques 57 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Rappel sur la structure itérative  Pour 


Début iDeb = ...
iFin = ...
Initialisation variables pas = ...
for compteur in range(iDeb, iFin
Initialisation comp- , pas):
teur, iDeb, iFin, pas #instructions

compteur ̸= iFin ?

True False
Instructions à itérer

Mise à jour compteur Sortie de boucle


jlo@univ-jfc.fr Programmation et techniques scientiques 58 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Exercice  à vous !

text file
# t y Implémenter les méthodes de
0.000e+00;0.000e+00 dérivée numérique aux données
1.745e-01;3.015e-02 du chier de données
3.491e-01;1.170e-01
5.236e-01;2.500e-01
y = y (t) :
6.981e-01;4.132e-01  data-sin-carre.dat 
8.727e-01;5.868e-01
1.047e+00;7.500e-01
1.222e+00;8.830e-01
1.396e+00;9.698e-01

jlo@univ-jfc.fr Programmation et techniques scientiques 59 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Intégrations numériques
Avant propos
y
30 f (x) 50 y F (x)
20 calcul x
10 analytique−5 5
x −50
−5 5 Z b
Calcul d'intégral : b
f (x)dx = [F (x)]a = F (b) − F (a)
a
mPossible
seulement si : ∃F ∈ D1 , F 7→ f = F

F une fonction primitive de f .


x3
e.g. f (x) = x 2 − cos x =⇒ F (x) = − sin x + cstx
3
® Quid lorsque nous avons des points numériques issues des mesures
expérimentales. ® Ou si f (x) n'a pas de primitive ®
jlo@univ-jfc.fr Programmation et techniques scientiques 60 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Intégrale Riemann
y
80
Exprimer l'aire de la zone
aire : ak =? colorée :
40 f (αk ) yk+1
f (αk )

yk
yk−1
x
...
x1 x2 xk−1 xk αkxk+1
b

jlo@univ-jfc.fr Programmation et techniques scientiques 61 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Intégrale Riemann
y
80
Exprimer l'aire de la zone
aire : ak =? colorée :
40 f (αk ) yk+1
f (αk )

yk ak = f (αk ) · (xk+1 − xk )
yk−1
x
...
x1 x2 xk−1 xk αkxk+1
b
Selon Riemann
Z b X2
n−
f (x)d(x) = lim f (αk ) (xk+1 − xk ), t.q. xk ≤ αk ≤ xk+1
n→∞
a k=0
| {z }
ak

Intégration = somme des (n − 1) aires pour n échantillonnages


jlo@univ-jfc.fr Programmation et techniques scientiques 61 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Intégrale Riemann
y
80
Exprimer l'aire de la zone
aire : ak =? colorée :
40 f (αk ) yk+1
f (αk )

yk ak = f (αk ) · (xk+1 − xk )
yk−1
x
...
x1 x2 xk−1 xk αkxk+1
b
Selon Riemann
Z b X2
n−
f (x)d(x) = lim f (αk ) (xk+1 − xk ), t.q. xk ≤ αk ≤ xk+1
n→∞
a k=0
| {z }
ak

Intégration = somme des (n − 1) aires pour n échantillonnages


jlo@univ-jfc.fr Programmation et techniques scientiques 62 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Intégration numérique & boucle d'itérations


On sait faire (cf. L1S2) :
X1
n−
k = 0+1+2+3+. . .+k+. . .+(n−2)+(n−1)
k=0
s=0
for k in range(0, n):
s=s+k

jlo@univ-jfc.fr Programmation et techniques scientiques 63 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Intégration numérique & boucle d'itérations


On sait faire (cf. L1S2) :
On veut faire :
X1
n−
k = 0+1+2+3+. . .+k+. . .+(n−2)+(n−1) Z b n−2
X
k=0 f (x)d(x) ≈ ak
s=0 a k=0
for k in range(0, n):
s=s+k où ak = f (αk ) (xk+1 − xk )
aussi pour une liste L de n éléments
m Il faut évaluer ak (aire
X1
n−
L[k] = L[0]+L[1]+. . .+L[k]+. . .+L[(n−1)]
élémentaire) à chaque itération
k=0 ∃ multitudes façons d'évaluer
s=0 f (αk ).
for k in range(0, n): par la méthode de rectangle
el = L[k] (droite ou gauche)
s=s+el méthode de trapèze
méthode Simpson

jlo@univ-jfc.fr Programmation et techniques scientiques 63 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Méthode des rectangles


y Exprimer l'aire de la zone
80 colorée :
On peut assimiler
aire : ak =? αk = xk ou αk = xk+1 .
40 Au quel cas son image
f (αk ) = yk
yk+1
vaut :
yk
yk−1 f (αk ) = yk ou yk+1
x
x1 x2 ... xk−1 xk xk+1
b .
Z b X2
n−
f (x)d(x) ≈ ak , t.q.
a k=0
ak = yk · (xk+1 − xk ) ou ak = yk+1 · (xk+1 − xk )
N.B. On assimile f comme une droite constante dans l'intervalle [xk , xk+1]
jlo@univ-jfc.fr Programmation et techniques scientiques 64 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Méthode des trapèzes


y
Exprimer l'aire de la zone
80 colorée :
aire : ak =? On peut assimiler αk un
point intermédiare
40 yk+1 αk ∈ [xk , xk+1], tel que
f (αk ) = yk son image soit le
yk−1
yk
barycentre
yk+1 + yk+1
x f (αk ) = :
... 2
x1 x2 xk−1 xk xk+1
b
Méthode trapèze
Z b X2
n−
yk+1 + yk+1
f (x)d(x) = ak avec ak = · (xk+1 − xk )
a k=0
2
N.B. On assimile f comme une droite ane dans l'intervalle [xk , xk+1]
jlo@univ-jfc.fr Programmation et techniques scientiques 65 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Méthode de Simpson

jlo@univ-jfc.fr Programmation et techniques scientiques 66 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Sur un intervalle déni par 2 points d'échantillonnage [xk , xk+1]


=⇒ la fonction f à intégrer est assimilée est une autre fonction
dénie par intervalle :
méthode supposition
rectangles f = g avec g (x) = yk constant par intervalle
trapèzes f = g avec g (x) = ak x + bk ane par intervalle.
Sur un intervalle déni par 3 points d'échantillonnage [xk−1 , xk+1]
la fonction f à intégrer est assimilée est une autre fonction
polynomiale quadratique dénie par intervalle :
méthode supposition
Simpson f = g avec g (x) = γk x 2 + βk x 1 + αk polynôme d'ordre 2 par intervalle.
La fonction g doit coïncider par les points d'échantillonnage.
Dans l'implémentation des méthodes, on n'a pas forcément besoin de
connaître/exprimer l'équation qui régit sur chaque intervalle, mais une
valeur d'image permettant de calculer l'aire !
jlo@univ-jfc.fr Programmation et techniques scientiques 67 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Aire d'une fonction polynomiale quadratique


On peut aisément résoudre le
Sur 3 points/pivots quelconques système d'équations à trois inconnus
avec m le point milieu entre a et b. pour trouver α, β, γ du polynôme
quadratique :
g (x) = α + βx + γx 2

Supposition : ∀x ∈ [a, b] , f (x) = g (x)


mOn sait comment intégrer un
polynôme ! m
On montre ainsi que l'aire :
Zb
1
aire sous la courbe : g (x)dx = 2h (f (a) + 4f (m) + f (b)) (1)
6
a | {z }
valeur particulière calculée

jlo@univ-jfc.fr Programmation et techniques scientiques 68 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Sur un nombre n de points/pivots


En prenant deux sous-intervalles
adjacents, on calculera une aire
élémentaire :
R1
k+
Ak = g (x)dx
k−1
1
= 2h (f (xk−1 ) + 4f (xk ) + f (xk+1 ))
6
| {z }
valeur particulière calculée

(2)

avec x0 = a, xn−1 = b & n = 2m + 1 impair ..

Z b Z x2 Z x4 Z x6 Z xn−1
A= f (x)dx = g1 (x)dx + g3 (x)dx + g5 (x)dx + . . . + gn−2 (x)dx
a x0 x2 x4 xn−3
jlo@univ-jfc.fr Programmation et techniques scientiques 69 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Simplcation des termes


Z x2 Z x4 Z x6 Z xn−1
Rb
A= a f (x)dx = g1 (x)dx + g3 (x)dx + g5 (x)dx + . . . + gn−2 (x)dx
x0 x2 x4 xn−3
| {z } | {z } | {z } | {z }
A1 A3 A5 An−2
n−1
2
A2k−1 avec n = 2m + 1.IMPAIR
P
=
k=1

h
A1 = (f0 + 4f1 + f2 )
3
h Tous les termes impairs : multiples de 4
A3 = (f2 + 4f3 + f4 )
3
h
A5 = (f4 + 4f5 + f6 )
Tous les termes pairs : multiples de 2
3
h
A7 = (f6 + 4f7 + f8 )
3
h
An−4 = (fn−5 + 4fn−4 + fn−3 )
3
h
An−2 = (fn−3 + 4fn−2 + fn−1 )
jlo@univ-jfc.fr
3
Programmation et techniques scientiques 70 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Formule composite méthode Simpson

Calcul par intervalles constitués de 3 points d'échantillonnages [xk−1 , xk+1]


n−1
2
b 2h X
Z
f (x)dx ≈ (f2i−2 + 4f2i−1 + f2i )
a 6 i=1

ou
n−1 n−3
 
2 2
b 2h 
Z
f0 + fn−1 + 4 f2i−1 + 2
X X
f (x)dx ≈ f2i 

a 6 i=1 i=1

. n doit être IMPAIR .

jlo@univ-jfc.fr Programmation et techniques scientiques 71 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Bilan & Take home message


§ Pour intégrer une fonction f , on suppose que f (x) = gk (x) où gk :
constante sur l'intervalle [xk , xk+1]  méthode des rectangles
ane sur l'intervalle [xk , xk+1]  méthode des trapèzes
quadratique sur l'intervalle [xk−1 , xk+1]  méthode de Simpson
§ Nul besoin de connaître la forme exacte de gk pour l'intégrale
numérique. On calcule simplement une valeur représentative sur
chaque sous-intervalle. L'aire est calculée par cette valeur
représentative de gk (x).
§ L'intégrale de chaque sous-intervalle est assimilée à un calcul
d'aire : valeur représentative de gk × largeur du sous-intervalle
§ Il faut eectuer la somme des aires de manière itérative  boucle for.
§ Il y a autant d'itérations à faire que le nombre de sous-intervalles
considérés.
jlo@univ-jfc.fr Programmation et techniques scientiques 72 / 78
Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Bilan & Take home message

méthode rectangles trapèzes Simpson


fk+1 + fk 1
valeur représen- fk+1 ou fk (fk−1 + 4fk + fk+1 )
tative de gk 2 6
Largeur sous- h = xk+1 − xk h = xk+1 − xk 2h = xk+1 − xk−1
intervalle
fk+1 + fk 1
Aire Ak fk (xk+1 − xk ) (xk+1 − xk ) (fk−1 + 4fk + fk+1 ) (xk+1 − xk )
2 6
fk+1 + fk 1
= fk h = h = (fk−1 + 4fk + fk+1 ) 2h
2 6
n−1
(n − 1) (n − 1)
2
Nombres sous-
intervalles pour
n points

jlo@univ-jfc.fr Programmation et techniques scientiques 73 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques Dérivées numériques
Résolution numérique des équations algébriques non linéaires Intégrations numériques
Approximation et interpolation par une fonction

Exercice  à vous !

text file
Intégrer numériquement ydt à
R
# t y
0.000e+00;0.000e+00 partir du chier de données
1.745e-01;3.015e-02 y = y (t) :
3.491e-01;1.170e-01
5.236e-01;2.500e-01  data-sin-carre.dat 
6.981e-01;4.132e-01
8.727e-01;5.868e-01
1.047e+00;7.500e-01
1.222e+00;8.830e-01
1.396e+00;9.698e-01

jlo@univ-jfc.fr Programmation et techniques scientiques 74 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques
Résolution numérique des équations algébriques non linéaires
Approximation et interpolation par une fonction

Outline

1 Notions des erreurs numériques


2 Dérivées & intégrales numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 75 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques
Résolution numérique des équations algébriques non linéaires
Approximation et interpolation par une fonction

Outline

1 Notions des erreurs numériques


2 Dérivées & intégrales numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 76 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques
Résolution numérique des équations algébriques non linéaires
Approximation et interpolation par une fonction

Outline

1 Notions des erreurs numériques


2 Dérivées & intégrales numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 77 / 78


Notions des erreurs numériques
Dérivées & intégrales numériques
Résolution numérique des équations algébriques non linéaires
Approximation et interpolation par une fonction

Outline

1 Notions des erreurs numériques


2 Dérivées & intégrales numériques
3 Résolution numérique des équations algébriques non linéaires
4 Approximation et interpolation par une fonction

jlo@univ-jfc.fr Programmation et techniques scientiques 78 / 78

Vous aimerez peut-être aussi