Sûreté et validation des calculs numériques GT identification Sûreté et validation des calculs numériques GT identification 18/09/2003 Suzanne LESECQ Laboratoire d’Automatique de Grenoble Suzanne.lesecq@inpg.fr UJF UMR 5528
Plan Introduction Quelques exemples simples… Les flottants Précision d’un résultat … Amélioration de la stabilité Moindres carrées … Estimation de la précision Conditionnement Méthode stochastique (RFPA) Amélioration de la précision Conclusion Bibliographie
Analyse de la sensibilité et de la précision … ???
Quelques exemples simples … (Algorithme instable) Équation 2nd degré Numérique classique Théorique x1 -9.31322574615478516432793566942...e-10 x2 -1.07374182400000+009 -1073741823.99999999906867742539 si b>0, x₂=((-b-√(b²-4ac))/(2a)) sinon x₂=((-b+√(b²-4ac))/(2a)) x₁=(c/(ax₂)) Numérique stable Théorique x1 -9.313225746154785e-010 -9.31322574615478516432793566942...e-10 x2 -1.07374182400000+009 -1073741823.99999999906867742539
Quelques exemples simples … (Algorithme instable) Intégration Démo
Quelques exemples simples … 2 difficultés fondamentales Somme de 2 nombres d’ordre de grandeur très différent : « absorption » Exemple : 1.0100 + 1.01020 = 1.01020 Soustraire 2 nombres proches « élimination catastrophique » Exemple : 4.3765498 100 - 4.3765489 100 = 9.0000000 10-7 résultat avec 1 seul digit significatif !!! Démo Hilbert : calcul déterminant = pas de sens en machine !!!
Quelques exemples simples … Observabilité bioprocédé, benchmark COST624 matrice A(13*13) matrice C(2*13) Matrice d’observabilité Max(size(O(C,A))*Max(svd)*eps Nature cyclique naturellement mal conditionnée
Quelques exemples simples … Matrice de Rosenbrock ( R ) Véritable difficulté à observer… Max(size(R))*Max(svd)*eps Formes canoniques Max(svd)*eps ? Non décidable !
L’ensemble des flottants F Raisonnement En précision infinie (C ou R) En base = 10 Calcul en précision finie (ensemble F) En base = 2 Propriétés non conservées associativité, distributivité Exemple : ?
L’ensemble des flottants F Norme IEEE 754 -1985 Hiérarchie de type Clôture des opérations (1 résultat pour chaque opération) Reproductibilité des calculs et « arrondi exact » (+, -, , /, ) s exposant mantisse F (a b)th fl(a b) a, b F type taille mantisse exposant Précision machine Domaine de variation simple 32 23+1 8 2-24 1038 double 64 52+1 11 2-52 2.2 10-16 = 10308 Fonctions « élémentaires » sin, cos, exp, log ? Exemple (thèse D. Dufour, Laboratoire de l'Informatique du Parallélisme) 1 1+
Précision d’un résultat … (1/4) Précision du résultat numérique ? Stabilité de l’algorithme Conditionnement du problème Stabilité numérique Conditionnement
Précision d’un résultat … (2/4) Relation entre erreurs directe et inverse Sensibilité de la solution à des petites variations des données initiales Prévoir, estimer la précision du résultat Estimation du conditionnement Méthodes directes : Arithmétique Stochastique ou autre… “Presque résolu” le problème posé Erreur « inverse » « directe » y y + y x = f(y) Calculé Résout le “presque problème” posé
Précision d’un résultat … (3/4) Stabilité Numérique Algorithme déjà étudié ? Problèmes potentiels simples « Bonnes » bibliothèques, formulations a+b ? a-b ? … Sommes, Produits scalaires Outils spécifiques : PRECISE, CADNA Filtre de Kalman Intégration
Précision d’un résultat … (4/4) précision y Algorithme inverse-stable précision eps … { Résultat numérique , précision } Quelle confiance accorder à un résultat ? Combien de décimales exactes ? Prendre en compte la précision des mesures ? Influence de la précision du calculateur ? Le calcul a-t-il un sens ? Le problème est-il soluble sur la machine ?
Amélioration de la stabilité des algorithmes (1/4) Bibliothèques de calculs scientifiques Slicot, lapack, blas … Harwell, Imsl, Nag TOMS le site netlib.org le site niconet http://www.win.tue.nl/niconet/ les livres de N. Higham, A. Bjork, Daumas-Muller, Daumas-de Dinechin-Tisserand, Barraud … toolboxs développées par des numériciens… (INRIA, LIP6,…) Parfois, nécessité de développer un code sur mesure …
Amélioration de la stabilité des algorithmes (2/4) Moindres carrés Exemple 1 : m=6 et n=4 Exemple 2 : m=10 et n=5 = 7.2e+009 standard factorisée valeurs théoriques 2.556460969463191e+000 9.999999660352122e-001 1.000000000000000e+000 1.116948673663456e+000 9.999999972000330e-001 1.000000000000000e+000 1.012448795727427e+000 9.999999996848843e-001 1.000000000000000e+000 1.001309688495636e+000 9.999999999656054e-001 1.000000000000000e+000 1.000094610362988e+000 9.999999999974503e-001 1.000000000000000e+000 = 8.8e+005 standard factorisée valeurs théoriques 1.000000551687572e+000 1.000000000049787e+000 1.000000000000000e+000 1.000000098099040e+000 1.000000000008435e+000 1.000000000000000e+000 1.000000021901616e+000 1.000000000001821e+000 1.000000000000000e+000 1.000000003944129e+000 1.000000000000320e+000 1.000000000000000e+000
Amélioration de la stabilité des algorithmes (3/4) Factorisations de Cholesky, LU, SVD Mise sous forme Schur, Schur généralisée Algorithme du QR Algorithme du QZ
Amélioration de la stabilité des algorithmes (4/4) Filtre de Kalman Forme factorisée Approches ensembliste ellipsoïdale [Durieu et al., 1996] t t+1 Forme factorisée [Lesecq et al., 2002] =
Précision : quels moyens pour l’estimer ? (1/9) Conditionnement Dépend du problème ! Évaluation dépend de la solution !! Difficulté de calcul !!! Majorants… … Pessimisme 1.654789032457434 e-12 2.456893256787654 e3 ??? … Autres approches ?
Précision : à partir du conditionnement (2/9) Des cas « simples » Des problèmes moins simples Équations de Sylvester AX+XB=C Plusieurs estimateurs Des problèmes difficiles Équations de Riccati … et tous les autres !!!
Précision : Sylvester (3/9) Moyenne sur les différentes composantes Obtenu à partir de (Ghavimi-Laub) (1995) Pessimisme
Précision : approche probabiliste – 1 (4/9) Pourquoi ? Idée sous-jacente Chiffres significatifs exacts (Chiffres/bits) Qualité du résultat numérique Estimation de l’erreur, pas de majorant Méthode indépendante de l’algorithme 1974… …1992… x2 x1 x 8 6 3 2 1. 7 5 ^
Précision : approche probabiliste – 2 (5/9) Modélisation (Approximation au 1er ordre en 2-p) [Chesneaux] Arrondi aléatoire i v.a.i. uniformément distribuées [-1,1] Test de Student : Résultat informatique Dépend des données Perdu lors des arrondis Nombre de bits de la mantisse Moyenne Écart type Optimisme 1 chiffre = 0.54 ‰ Pessimisme de 1 chiffre = 29 %
Précision : approche probabiliste – 3 (6/9) Programmation des tests ? Même séquence de calculs Arithmétique stochastique, zéro informatique (cf. déterminant) Implantation CADNA Boite à outils Matlab RFPA Non dédiée « Maths Applis » Type rfpa > type double Surcharge d’opérateurs Fonctions built-in Objectifs Combien de décimales « justes » ? Précision/imprécision des données en entrée 1.5 1.50 en machine 1.500000000000000 !!! Codage des algorithmes : perte de précision ? Inst. I+1 Inst. II1 Inst. I Test i OUI NON
Précision : approche probabiliste – 4 (7/9) Application : équation de Sylvester AX+XB=C Moyenne sur les différentes composantes
Précision : approche probabiliste – 5 (8/9) Site CADNA http://www-anp.lip6.fr/cadna/ add-on à certains compilateurs Fortran/C (LINUX) Définition de variables stochastique Surcharge d’opérateur Fichier « trace »
Précision : approche probabiliste – 6 (9/9) Application : Digestion anaérobie (SMC-LAG) Système raide Mal conditionné Modèle algébro-différentiel Dimension 41 (21 EDO + 20 eq. alg.) Simulateur : instabilité ? Réécriture Méthodes d’intégration ad-hoc Pertes de précision « Localisées »
Amélioration de la précision (1/3) Raffinement itératif (portable !) [Barraud, 2002] Calcul du résidu non trivial produit scalaire arithmétique en précision finie Produits scalaires en précision étendue CONVERGENCE de l’algorithme Solution exacte Problèmes linéaires
Améliorer la précision (2/3) Eliminer les cas triviaux oui non FIN fullp X
Améliorer la précision (3/3) Exemple 1 xnum = A\b xexact = solution exacte (formelle) du problème en machine xthéorique= solution exacte du problème posé Résidu standard : b-Ax s = 10, c = 1e-8 : non représentable en machine s = 10, c = 1e+8 : représentable en machine Exemple 2 Interprétation de “résidu = 0” ?
Stabilité des algorithmes Bonnes bibliothèques Sites web Conclusion Stabilité des algorithmes Bonnes bibliothèques Sites web Programmes spécifiques Précision Conditionnement Systèmes équations linéaires Sylvester/Riccati Développement pour chaque problème… Approche probabiliste
Bibliographie