ASI 3
Méthodes numériques pour l’ingénieur
Performance des solutions numériques :
complexité, erreur, précision et stabilité
Les enjeux de l’analyse numérique
• Résoudre des problèmes
– que l’on ne sait pas résoudre autrement – « mieux » qu’on ne le faisait avant
• plus précisément, moins cher...
• Étique de l’analyse numérique
– plus vite :
• complexité des algorithmes (et des problèmes)
– plus précis
• erreur d’arrondi (liées à la machine)
• erreur d’approximation (liées à l’algorithme)
– plus fiable
• stabilité d’un algorithme
n : taille du problè me lo
g( Te(n)) : t m ps d e c alc ul
Algorithme 1 Algorithme 2
Définition : la fonction T(n) est dite « grand O » de f(n) que l’on note T(n)=O(f(n)), s’il existe deux constantes C et n0 telles que
Exemple :
Temps de calcul
• Taille d’un problème : n
• Temps de calcul :
– aspects liés au programme et à la machine – aspects liés au problème
– Complexité d’un algorithme
• Complexité d’un problème
(
( ))
calcul de
temps =O f n
( )
Af
A
min
) ( )
(
0 T n C f n
n
n > ≤
∀
( ) ( )
32 log 3 9 1324
14x x + x + = O x
Exemples
Fusionner(x,y)n = taille(x)+taille(y) pour i=1:n
….
v(i) = …..
…..
fin
Résoudre(P(n))
Si n = 1 ,...c’est fini Sinon
A=Résoudre(P(1:n/2)) B=Résoudre(P(n/2+1:n)) Fusionner(A,B)
pour i=1:n s = 0;
pour j=i:n
s =s+A(i,j)*b(i) Fin
c(i)=s fin
O(nlog2n)
O(n)
O(n2) Ab=c
Complexité d’un algorithme, complexité d’un problème
• Complexité d ’un algorithme :
– temps : ordre du temps de calcul – taille : place mémoire nécessaire
• complexité d’un problème de taille n
– soit A un algorithme résolvant le problème
(
( ))
minO A n
A
Un calcul simple
n = 100000;
s = 0;
for i=1:n s = s+1/3;
end
» s-n/3
ans = -4.3576e-008
?Représentation des nombres
Précision :
log([eps realmax realmin]) -36.0437 709.7827 -708.3964 Maths de la continuité
maths calculables
10 17
...
3333333 .
3333 3333333333
, 3 0
1
= −
≈ erreur
mantisse 23
exposant 8
signe 1
bits 32
2
+ +
=
− = ± ×
×
×
≈ s m Be E m e x
Erreur de codage (binaire)
n = 100000;
s = 0;
for i=1:n s = s+1/3;
end
» s-n/3
ans = -4.3576e-008
Représentation des nombres
Précision :
log([eps realmax realmin]) -36.0437 709.7827 -708.3964 Maths de la continuité / calculables
10 17
...
3333333 .
3333 3333333333
, 3 0
1
= −
≈ erreur
( )
mantisse 23
exposant 8
signe 1
bits 32
2 64
) 1
(
) 1
( 1
+ +
=
−
−
× +
±
=
× +
×
−
≈
e
E s e
m
B m
x
mantisse 52
exposant 11
signe 1
bits
64 = + +
eps n’est pas realmin
Arithmétique calculatoire (décimale)
• Nombre en virgule flottante
(décimale pour simplifier)normalisée (normalisation IEEE, 1985)
n k
k k n
n k
n k
k n
k k
x x
x t x
a
d d
d d x
t
d d
d d d
d d x
10 ...
...
, 0
10 5
' avec
10 ...
, 0 )
' ( )
( arrondi
10 ...
, 0 )
( troncature
9 0
; 9 1
10
...
...
, 0
1 3
2 1
) 1 ( 2 3 1
3 2 1
1 1
3 2 1
×
=== + ×= ×
×
=
≤
≤
≤
≤
×
=
+ +
− +
δ δ δ
δ δ
δ δ
δ δ
t
x x - x k
t x
x
× −
< 5 10
~
: que tel
positif entier
grand plus
le est si
ives significat
décimales avec
réel le
approche Définition : ~
1 1 et 0,5 10
10− + < × − +
< k k
x x-a(x) x
x-t(x) Exercice : montez que :
Forme normalisée
x = 1, y = 2, y-x ???
z=10^30; (z+x)-(z+y) ???
Il faut faire attention à l’ordre suivant lequel sont effectuées des opérations
Exercice : écrire un programme
résolvant l’équation suivante
(avec 4 chiffres significatifs) 0
1 10
,
2 + 62 x + =
x
• Erreur de troncature
(indépendante de la machine)(ou tabulation)
• propagation des erreurs
• Stabilité d’un algorithme
Erreur d’approximation
( )
13 2
... !
! 3
!
1+ + 2 + + + + +
≈ i i
x x
i x x
x x
e O
p p
p = ˆ +ε q q
q = ˆ +ε
q p
pq q p R pq
p q
q p pq
q p
pq
q p q
p
ε ε
ε ε ε
ε
+
− ≈
=
+ +
=
−
ˆ ˆ
ˆ
Définition : soit ε (n) l’erreur d’un algorithme après n étapes
avec |ε (n)|=O(f(n)), la croissance de l’erreur est dite polynomiale si f est un polynôme.
Elle est dite exponentielle si f(n)=Kn ε.
(f est appelée le taux de convergence de l’algorithme)
Conclusion
• Complexité : pour comparer les algorithmes
O(f(n)) : polynomial vs exponentiel
• erreur d’arrondi
précision - ordre de grandeur
• erreur d’approximation
algorithmique : ordre de l ’approximation
• procédures stables
propagation des erreurs
Exercices pratiques :
complexité et erreur d’arrondi
• Quelle est la complexité des programmes de la semaine dernière ?
• Quel algorithme choisir ?
– Vérifier que les trois programmes donnent le bon résultat
– étudier la stabilité de ces algorithmes vis à vis des conditions initiales
• comment évaluer efficacement un polynôme ?
– Le problème vient du calcul de xn
−
=
=
=
−
=
=
=
=
=
≈
−
−
−
−
−
2 1
1 0
2 1
1 0
1 0
3 10
3;
; 1 1
3 1 3
4 3;
; 1 1
3
1
; 1
3 1
n n
n
n n
n
n n
n
c c
c c
c
b b
b b
b
a a
a
Un problème de base
= +
+ +
+ +
= +
+ +
+ +
= +
+ +
+ +
= +
+ +
+ +
n m
n m j
n j n
i m
i m j
i j i
m m j
j
m m j
j
y x
a x
a x
a a
y x
a x
a x
a a
y x
a x
a x
a a
y x
a x
a x
a a
) ( )
( )
1 ( 1 0
) ( )
( )
1 ( 1 0
2 )
( 2 )
( 2 )
1 ( 2 1 0
1 )
( 1 )
( 1 )
1 ( 1 1 0
...
...
...
...
...
...
...
...
n équations et m+1 inconnues
Xa=y
Une nouvelle expérience
(individu)
Une nouvelle variable explicative
x1 x2
s olution unique
x1 x2
pas de s olution
Illustration : système de 2 équations à 2 inconnues
= +
= +
2 2
22 1
21
1 2
12 1
11
b x
a x
a
b x
a x
a – une solution unique
– pas de solution
– une infinité de solution
– solution « triviale » : x1= x2 = 0
Les différents cas
Que se passe t’il si… ?
• On dispose d’un nouvel individu
• on dispose d’une nouvelle variable
• m=n
• m<n
• m>m
• on recopie deux individus
• on duplique une variable
X y
a
=