170 likes | 474 Views
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
E N D
ASI 3Méthodes numériquespour 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 • facile à programmer : comprendre pour mieux réutiliser
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 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 :
O(n) Exemples Fusionner(x,y) n = taille(x)+taille(y) pour i=1:n …. v(i) = ….. ….. fin Ab=c O(n2) pour i=1:n s = 0; pour j=i:n s =s+A(i,j)*b(i) Fin c(i)=s 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) O(nlog2n)
Règles de calcul • Algorithmes : • ; • si-alors-sinon • Pour i=1:n faire – fait • Appeler un sous programme • T : Ensemble des algorithmes R • T(A;B)= T(A) + T(B) • T(si C alors A sinon B) = T(C)+max(T(A),T(B)) • T(pour i = 1,n faire A(i) fait) = somme T(A(i)) • T(appeler A) = T(A)
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 Intéressant seulement lorsque n est grand
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 ?
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 eps n’est pas realmin
Arithmétique calculatoire (décimale) • Nombre en virgule flottante (décimale pour simplifier) normalisée (normalisation IEEE, 1985) Définition : Exercice : montez que :
Forme normalisée x = 1, y = 2, y-x ??? z=10^30; (z+x)-(z+y) ??? Exercice : écrire un programme résolvant l’équation suivante (avec 4 chiffres significatifs) Il faut faire attention à l’ordre suivant lequel sont effectuées des opérations
Erreur d’approximation • Erreur de troncature (indépendante de la machine) (ou tabulation) • propagation des erreurs • Stabilité d’un algorithme Définition : soit e (n) l’erreur d’un algorithme après n étapes avec |e (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 e. (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
Un problème de base Une nouvelle variable explicative Une nouvelle expérience (individu) n équations et m+1 inconnues Xa=y
Illustration : système de 2 équations à 2 inconnues • 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 a X y =