Méthodes numériques. Introduction à l'analyse numérique et au calcul scientique. Guillaume Legendre R E S E A R C H U N I V E R S I T Y



Documents pareils
2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Résolution de systèmes linéaires par des méthodes directes

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Conversion d un entier. Méthode par soustraction

Développement décimal d un réel

Représentation des Nombres

NOTATIONS PRÉLIMINAIRES

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Représentation d un nombre en machine, erreurs d arrondis

Introduction à l étude des Corps Finis

La correction des erreurs d'enregistrement et de traitement comptables

(VM(t i ),Q(t i+j ),VM(t i+j ))

Date : Tangram en carré page

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Raisonnement par récurrence Suites numériques

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

3 Approximation de solutions d équations

D'UN THÉORÈME NOUVEAU

Informatique Générale

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Calculateur quantique: factorisation des entiers

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Fonctions de plusieurs variables

Peut-on tout programmer?

Optimisation et programmation mathématique. Professeur Michel de Mathelin. Cours intégré : 20 h

Rappels sur les suites - Algorithme

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Logiciel de Base. I. Représentation des nombres

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Cours d analyse numérique SMI-S4

Compter à Babylone. L écriture des nombres

Cours 02 : Problème général de la programmation linéaire

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Chapitre 10 Arithmétique réelle

Image d un intervalle par une fonction continue

CAPTEURS - CHAINES DE MESURES

Licence Sciences et Technologies Examen janvier 2010

Algorithme. Table des matières

DOCM Solutions officielles = n 2 10.

Axiomatique de N, construction de Z

Retournement Temporel

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Correction de l examen de la première session

Recherche dans un tableau

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

CHAPITRE VIII : Les circuits avec résistances ohmiques

LES NOMBRES DECIMAUX. I. Les programmes

avec des nombres entiers

Vers l'ordinateur quantique

Algorithmes d'apprentissage

Équations non linéaires

Structures algébriques

Limites finies en un point

Texte Agrégation limitée par diffusion interne

Carl-Louis-Ferdinand von Lindemann ( )

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Chapitre 1 I:\ Soyez courageux!

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Polynômes à plusieurs variables. Résultant

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Le chiffre est le signe, le nombre est la valeur.

MATHÉMATIQUES EN PREMIER CYCLE PRÉSENTATION DU PROGRAMME

Sites web éducatifs et ressources en mathématiques

Corps des nombres complexes, J Paul Tsasa

1 Recherche en table par balayage

Chapitre 1 : Introduction aux bases de données

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

LE PROBLEME DU PLUS COURT CHEMIN

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Chapitre 2 Le problème de l unicité des solutions

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

I. Polynômes de Tchebychev

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

I. Ensemble de définition d'une fonction

Chp. 4. Minimisation d une fonction d une variable

Résolution d équations non linéaires

Représentation d un entier en base b

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Programmes des classes préparatoires aux Grandes Ecoles

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Codage d information. Codage d information : -Définition-

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Programmes des classes préparatoires aux Grandes Ecoles

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

Continuité et dérivabilité d une fonction

Introduction à MATLAB R

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Table des matières. I Mise à niveau 11. Préface

Introduction. Mathématiques Quantiques Discrètes

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Transcription:

R E S E A R C H U N I V E R S I T Y Méthodes numériques Introduction à l'analyse numérique et au calcul scientique Guillaume Legendre (version provisoire du novembre )

Avant-propos Ce document est une version augmentée et regroupée des notes de deux cours enseignés à l'université Paris-Dauphine, respectivement en deuxième année de licence de Mathématiques et Informatique appliquées à l'économie et à l'entreprise (MIE) et en première année de master de Mathématiques de la Modélisation et de la Décision Mathématiques Appliquées (MMDMA) Ces enseignements se composent à la fois de cours magistraux et de séances de travaux dirigés et de travaux pratiques Leur but est de présenter plusieurs méthodes numériques de base utilisées pour la résolution des systèmes linéaires, des équations non linéaires, des équations diérentielles et aux dérivées partielles, pour le calcul numérique d'intégrales ou encore pour l'approximation de fonctions par interpolation polynomiale, ainsi que d'introduire aux étudiants les techniques d'analyse (théorique) de ces dernières Certains aspects pratiques de mise en uvre sont également évoqués et l'emploi des méthodes est motivé par des problèmes concrets La présentation et l'analyse des méthodes se trouvent complétées par un travail d'implémentation et d'application réalisé par les étudiants avec les logiciels Matlab R et GNU Octave Il est à noter que ce support de cours comporte des plusieurs passages qui ne sont pas traités dans le cours devant les étudiants (ce dernier xant le programme de l'examen), ou tout au moins pas de manière aussi détaillée Il contient également deux annexes de taille relativement conséquente, l'une consacrée à des rappels d'algèbre, l'autre à des rappels d'analyse, qui constituent les pré-requis à une bonne compréhension des deux premières parties du cours Les notes biographiques sont pour partie tirées de Wikipedia 3 Je tiens enn à remercier Matthieu Hillairet pour son attentive relecture d'une partie du manuscrit et ses remarques, ainsi qu'à Nicolas Salles et Julien Salomon pour leurs suggestions Quelques références bibliographiques Guillaume Legendre Paris, août Pour approfondir les thèmes abordés dans ces pages, voici une sélection de plusieurs ouvrages de référence, plus ou moins accessibles selon la formation du lecteur, que l'on pourra consulter avec intérêt en complément du cours Ouvrages rédigés en français [AD8] [AK] [Cia98] L Amodei et J-P Dedieu Analyse numérique matricielle Mathématiques pour le master/smai Dunod, 8 G Allaire et S M Kaber Algèbre linéaire numérique Mathématiques pour le deuxième cycle Ellipses, P G Ciarlet Introduction à l'analyse numérique matricielle et à l'optimisation cours et exercices corrigés Mathématiques appliquées pour la maîtrise Dunod, 998 Matlab est une marque déposée de The MathWorks, Inc, http://wwwmathworkscom/ GNU Octave est distribué sous licence GNU GPL, http://wwwgnuorg/software/octave/ 3 Wikipedia, the free encyclopedia, http://wwwwikipediaorg/ i

[Dem6] J-P Demailly Analyse numérique et équations diérentielles Grenoble Sciences EDP Sciences, 6 [Fil9] F Filbet Analyse numérique Algorithme et étude mathématique Dunod, 9 [LTa] P Lascaux et R Théodor Analyse numérique matricielle appliquée à l'art de l'ingénieur Méthodes directes Dunod, [LTb] P Lascaux et R Théodor Analyse numérique matricielle appliquée à l'art de l'ingénieur Méthodes itératives Dunod, [QSS7] A Quarteroni, R Sacco et F Saleri Méthodes numériques Algorithmes, analyse et applications Springer, 7 Ouvrages rédigés en anglais [Act9] F S Acton Numerical methods that work The Mathematical Association of America, 99 [Atk89] K Atkinson An introduction to numerical analysis Second edition John Wiley & Sons, 989 [Axe94] O Axelsson Iterative solution methods Cambridge University Press, 994 [CLRS9] T H Cormen, C E Leiserson, R L Rivest, and C Stein Introductions to algorithms Third edition MIT Press, 9 [DB8] G Dahlquist and Å Björk Numerical methods in scientic computing Volume I SIAM, 8 doi: 37/97889877785 [Gau97] W Gautschi Numerical analysis: an introduction Birkhäuser, 997 [GVL96] G H Golub and C F Van Loan Matrix computations Third edition Johns Hopkins University Press, 996 [Hig] N J Higham Accuracy and stability of numerical algorithms Second edition SIAM, doi: 37/978898787 [IK94] E Isaacson and H B Keller Analysis of numerical methods Dover, 994 [LeV7] R J LeVeque Finite dierence methods for ordinary and partial dierential equations: steady-state and time-dependent problems SIAM, 7 [Par98] B N Parlett The symmetric eigenvalue problem Classics in applied mathematics SIAM, 998 doi: 37/97869763 [PTVF7] W H Press, S A Teukolsky, W T Veterling, and B P Flannery Numerical recipes: the art of scientic computing Third edition Cambridge University Press, 7 [QV97] A Quarteroni and A Valli Numerical approximation of partial dierential equations Corrected second printing Vol 3 Springer series in computational mathematics Springer-Verlag, 997 doi: 7/978-3-54-8568- [SB] J Stoer and R Bulirsch Introduction to numerical analysis Third edition Springer- Verlag, [SM3] E Süli and D F Mayers An introduction to numerical analysis Cambridge University Press, 3 [Ste98] G W Stewart Matrix algorithms Volume I: basic decompositions SIAM, 998 [TB97] L N Trefethen and D Bau, III Numerical linear algebra SIAM, 997 [Var] R S Varga Matrix iterative analysis Second edition Vol 7 Springer series in computational mathematics Springer-Verlag, [Wil65] J H Wilkinson The algebraic eigenvalue problem Numerical mathematics and scientic computation Oxford University Press, 965 ii

Table des matières Généralités sur l'analyse numérique et le calcul scientique Diérentes sources d'erreur dans une méthode numérique Premières notions d'algorithmique 3 3 Arithmétique à virgule ottante 5 3 Système de numération 6 3 Représentation des nombres réels en machine 7 33 Arithmétique en précision nie 34 La norme IEEE 754 3 4 Propagation des erreurs et conditionnement 4 4 Propagation des erreurs dans les opérations arithmétiques 5 4 Analyse de sensibilité et conditionnement d'un problème 6 5 Analyse d'erreur et stabilité des méthodes numériques 6 5 Analyse d'erreur directe et inverse 6 5 Stabilité numérique et précision d'un algorithme 3 6 Notes sur le chapitre 33 I Algèbre linéaire numérique 37 Méthodes directes de résolution des systèmes linéaires 4 Exemples d'application * 4 Résolution d'un problème aux limites par la méthode des diérences nies 4 Estimation d'un modèle de régression linéaire en statistique ** 43 Remarques sur la résolution des systèmes triangulaires 44 3 Méthode d'élimination de Gauss 46 3 Élimination de Gauss sans échange 46 3 Élimination de Gauss avec échange 48 33 Résolution de systèmes rectangulaires par élimination 49 34 Choix du pivot 49 35 Méthode d'élimination de GaussJordan 5 4 Interprétation matricielle de l'élimination de Gauss : la factorisation LU 5 4 Formalisme matriciel 5 4 Condition d'existence de la factorisation LU 55 43 Mise en uvre et implémentation 57 44 Factorisation LU de matrices particulières 58 5 Autres méthodes de factorisation 6 5 Factorisation LDM T 63 5 Factorisation de Cholesky 63 53 Factorisation QR 65 6 Stabilité numérique des méthodes directes ** 7 6 Résolution des systèmes triangulaires * 7 6 Stabilité de l'élimination de Gauss * 7 63 Stabilité de la factorisation de Cholesky ** 73 iii

7 Notes sur le chapitre 73 3 Méthodes itératives de résolution des systèmes linéaires 77 3 Généralités 77 3 Méthodes de Jacobi et de sur-relaxation 8 33 Méthodes de GaussSeidel et de sur-relaxation successive 8 34 Remarques sur l'implémentation des méthodes itératives 83 35 Convergence des méthodes de Jacobi et GaussSeidel 83 35 Cas des matrices à diagonale strictement dominante 84 35 Cas des matrices hermitiennes dénies positives 85 353 Cas des matrices tridiagonales 85 36 Notes sur le chapitre 88 4 Calcul de valeurs et de vecteurs propres 9 4 Exemples d'application ** 9 4 Détermination des modes propres de vibration d'une corde * 9 4 Évaluation des n uds et poids des formules de quadrature de Gauss ** 93 4 Localisation des valeurs propres 93 43 Conditionnement d'un problème aux valeurs propres 95 44 Méthode de la puissance 96 44 Approximation de la valeur propre de plus grand module 96 44 Méthodes de déation 98 443 Méthode de la puissance inverse 99 45 Méthode de Jacobi pour les matrices symétriques 45 Matrices de rotation de Givens 45 Méthode de Jacobi 453 Méthode de Jacobi cyclique 5 46 Notes sur le chapitre 5 II Traitement numérique des fonctions 9 5 Résolution numérique des équations non linéaires 3 5 Ordre de convergence d'une méthode itérative 4 5 Méthodes d'encadrement 5 5 Méthode de dichotomie 5 5 Méthode de la fausse position 7 53 Méthodes de point xe 53 Principe 53 Quelques résultats de convergence 533 Méthode de relaxation ou de la corde 6 534 Méthode de NewtonRaphson 8 535 Méthode de Steensen * 3 536 Méthodes de Householder ** 33 54 Méthode de la sécante et variantes * 33 54 Méthode de Muller * 36 54 Méthode de Brent ** 36 55 Critères d'arrêt 36 56 Méthodes pour les équations algébriques 37 56 Localisation et estimation des racines ** 38 56 Évaluation des polynômes et de leurs dérivées 38 563 Méthode de NewtonHorner 4 564 Déation 4 565 Méthode de Bernoulli ** 4 566 Méthode de Gräe 4 iv

567 Méthode de Laguerre ** 43 568 Méthode de Bairstow 43 569 Méthode de JenkinsTraub ** 45 56 Recherche des valeurs propres d'une matrice compagnon ** 45 57 Notes sur le chapitre 45 6 Interpolation polynomiale 5 6 Quelques résultats concernant l'approximation polynomiale 5 6 Approximation uniforme 5 6 Approximation au sens des moindres carrés 55 6 Interpolation de Lagrange 55 6 Dénition du problème d'interpolation 55 6 Diérentes représentations du polynôme d'interpolation de Lagrange 57 63 Interpolation polynomiale d'une fonction 65 64 Généralisations 7 63 Interpolation polynomiale par morceaux 73 63 Interpolation de Lagrange par morceaux 73 63 Interpolation par des fonctions splines 74 64 Notes sur le chapitre 8 7 Formules de quadrature 89 7 Généralités 9 7 Formules de NewtonCotes 9 73 Estimations d'erreur 94 74 Formules de quadrature composées 97 75 Évaluation d'intégrales sur un intervalle borné de fonctions particulières ** 75 Fonctions périodiques ** 75 Fonctions rapidement oscillantes ** 76 Notes sur le chapitre III Équations diérentielles et aux dérivées partielles 7 8 Résolution numérique des équations diérentielles ordinaires 8 Rappels sur le problème de Cauchy * 8 Exemples d'équations et de systèmes diérentiels 5 8 Problème à N corps en mécanique céleste 5 8 Modèle de LotkaVolterra en dynamique des populations 6 83 Oscillateur de van der Pol 8 84 Modèle SIR de KermackMcKendrick en épidémiologie 9 85 Modèle de Lorenz en météorologie 86 Problème de Robertson en chimie 83 Méthodes numériques 3 83 La méthode d'euler 4 83 Méthodes de RungeKutta 7 833 Méthodes à pas multiples linéaires 37 834 Méthodes basées sur des développements de Taylor 43 84 Analyse des méthodes 44 84 Rappels sur les équations aux diérences linéaires * 44 84 Ordre et consistance 46 843 Zéro-stabilité * 5 844 Convergence 56 845 Stabilité absolue 59 846 Cas des systèmes d'équations diérentielles ordinaires 65 85 Méthodes de prédiction-correction 65 v

86 Techniques pour l'adaptation du pas de discrétisation 7 86 Cas des méthodes à un pas 7 86 Cas des méthodes à pas multiples linéaires * 76 87 Systèmes raides 76 87 Deux expériences numériques 77 87 Diérentes notions de stabilité pour la résolution des systèmes raides * 8 88 Application à la résolution numérique de problèmes aux limites ** 84 89 Notes sur le chapitre * 84 9 Résolution numérique des équations diérentielles stochastiques 9 9 Rappels de calcul stochastique 9 9 Processus stochastiques à temps continu * 9 9 Filtrations et martingales * 9 93 Processus de Wiener et mouvement brownien * 93 94 Calcul stochastique d'it o ** 96 95 Équations diérentielles stochastiques * 3 96 Développements d'it otaylor * 3 9 Exemples d'équations diérentielles stochastiques 3 9 Modèle de BlackScholes pour l'évaluation des options en nance 3 9 Modèle de Vasicek d'évolution des taux d'intérêts en nance ** 37 93 Quelques dénitions 37 93 Méthodes numériques pour la résolution d'équations diérentielles stochastiques** 39 93 Simulation numérique d'un processus de Wiener * 39 93 Méthode d'eulermaruyama 3 933 Méthode de Milstein 34 934 Quelques remarques 36 94 Notes sur le chapitre 36 Méthodes de résolution des systèmes d'équations hyperboliques 3 Généralités sur les systèmes hyperboliques 3 Exemples de systèmes d'équations hyperboliques et de lois de conservation * 3 Équations de transport ** 3 Équation des ondes linéaire * 34 3 Système des équations de Maxwell en électromagnétisme * 34 3 Problème de Cauchy pour une loi de conservation scalaire 34 3 Solutions classiques * 35 3 Solutions faibles * 37 33 Solutions entropiques * 39 34 Le problème de Riemann 333 4 Méthodes de discrétisation par diérences nies ** 334 4 Principe 335 4 Analyse des méthodes ** 336 43 Quelques exemples de schémas ** 34 44 Analyse par des techniques variationnelles ** 347 5 Notes sur le chapitre ** 347 Résolution numérique des équations paraboliques 35 Quelques exemples d'équations paraboliques * 35 Un modèle de conduction thermique * 35 Retour sur le modèle de BlackScholes * 35 3 Systèmes de réaction-diusion ** 353 4 Systèmes d'advection-réaction-diusion ** 354 Existence et unicité d'une solution, propriétés ** 354 3 Résolution approchée par la méthode des diérences nies 355 3 Analyse des méthodes ** 355 vi

3 Présentation de quelques schémas ** 355 33 Remarques sur l'implémentation des conditions aux limites ** 357 IV Annexes 359 A Rappels et compléments d'algèbre 36 A Ensembles et applications 36 A Généralités sur les ensembles 36 A Relations 363 A3 Applications 366 A4 Cardinalité, ensembles nis et innis 369 A Structures algébriques 37 A Lois de composition 37 A Structures de base 37 A3 Structures à opérateurs externes 373 A3 Matrices 375 A3 Opérations sur les matrices 377 A3 Liens entre applications linéaires et matrices 378 A33 Inverse d'une matrice 38 A34 Trace et déterminant d'une matrice 38 A35 Valeurs et vecteurs propres 383 A36 Quelques matrices particulières 383 A37 Matrices équivalentes et matrices semblables 385 A38 Matrice associée à une forme bilinéaire ** 387 A39 Décomposition en valeurs singulières ** 387 A4 Normes et produits scalaires 387 A4 Dénitions 388 A4 Produits scalaires et normes vectoriels 389 A43 Normes de matrices * 393 A5 Systèmes linéaires 399 A5 Systèmes linéaires carrés 399 A5 Systèmes linéaires sur ou sous-déterminés 4 A53 Systèmes linéaires sous forme échelonnée 4 A54 Conditionnement d'une matrice 4 B Rappels et compléments d'analyse 47 B Nombres réels 47 B Majorant et minorant 48 B Propriétés des nombres réels 49 B3 Intervalles 4 B4 Droite numérique achevée 4 B Suites numériques 4 B Premières dénitions et propriétés 4 B Convergence d'une suite 43 B3 Existence de limite 49 B4 Quelques suites particulières 4 B3 Fonctions d'une variable réelle * 43 B3 Généralités sur les fonctions 43 B3 Propriétés globales des fonctions 44 B33 Limites 45 B34 Continuité 43 B35 Dérivabilité * 436 B4 Intégrales * 443 B4 Intégrabilité au sens de Riemann * 443 vii

B4 Classes de fonctions intégrables * 445 B43 Théorème fondamental de l'analyse et intégration par parties ** 446 B44 Formules de la moyenne 446 viii

Chapitre Généralités sur l'analyse numérique et le calcul scientique L'analyse numérique est une branche des mathématiques appliquées s'intéressant au développement d'outils et de méthodes numériques pour le calcul d'approximations de solutions de problèmes de mathématiques qu'il serait dicile, voire impossible, d'obtenir par des moyens analytiques Son objectif est notamment d'introduire des procédures calculatoires détaillées susceptibles d'étre mises en uvre par des calculateurs (électroniques, mécaniques ou humains) et d'analyser leurs caractéristiques et leurs performances Elle possède des liens étroits avec deux disciplines à la croisée des mathématiques et de l'informatique L'une est le calcul scientique, qui consiste en l'étude de l'implémentation de méthodes numériques dans des architectures d'ordinateurs et leur application à la résolution eective de problèmes issus de la physique, de la biologie, des sciences de l'ingénieur ou encore de l'économie et de la nance L'autre est la théorie de la complexité algorithmique, qui permet à mesurer l'ecacité théorique d'une méthode en quantiant le nombre d' opérations élémentaires 3, ou parfois la quantité de ressources informatiques (temps de calcul, besoin en mémoire), qu'elle requiert pour résoudre un problème de taille donnée Si l'introduction et l'utilisation de méthodes numériques précèdent de plusieurs siècles l'avénement des ordinateurs 4, c'est néanmoins avec l'apparition de ces outils modernes, vers la n des années 94 et le début des années 95, que le calcul scientique connut un essor sans précédent et que l'analyse numérique devint une domaine à part entière des mathématiques La possibilité d'eectuer un grand nombre d'opérations arithmétiques très rapidement et simplement ouvrit en eet la voie au développement à de nouvelles classes de méthodes nécessitant d'être rigoureusement analysées pour s'assurer de l'exactitude et de la pertinence des résultats qu'elles fournissent À ce titre, les travaux pionniers de Turing 5, avec notamment l'article [Tur48] sur l'analyse des eets des erreurs d'arrondi sur la factorisation LU, et de Les problèmes considérés peuvent virtuellement provenir de tous les domaines d'étude des mathématiques pures ou appliquées La théorie des nombres, la combinatoire, les algèbres abstraite et linéaire, la géométrie, les analyses réelle et complexe, la théorie de l'approximation et l'optimisation, pour ne citer qu'elles, possèdent toutes des aspects calculatoires Parmi les questions les plus couramment traitées numériquement, on peut mentionner l'évaluation d'une fonction en un point, le calcul d'intégrales ainsi que la résolution d'équations, ou de systèmes d'équations, algébriques, transcendantes, diérentielles ordinaires ou aux dérivées partielles (déterministes ou stochastiques), de problèmes aux valeurs et vecteurs propres, d'interpolation ou d'optimisation (avec ou sans contraintes) Pour compléter quelque peu cette première dénition, on ne peut que recommander la lecture de l'essai de L N Trefethen intitulé The denition of numerical analysis, publié dans la revue SIAM News en novembre 99 et reproduit par la suite dans une annexe de l'ouvrage [Tre] 3 La notion d' opération élémentaire est ici laissée nécessairement oue et entendue un sens plus large que celui qu'on lui attribue habituellement en arithmétique 4 Le lecteur intéressé est renvoyé à l'ouvrage de Goldstine [Gol77], qui retrace une grande partie des développements de l'analyse numérique en Europe entre le seizième et le dix-neuvième siècle 5 Alan Mathison Turing (3 juin 9-7 juin 954) était un mathématicien et informaticien anglais, spécialiste de la logique et de la cryptanalyse Il est l'auteur d'un article fondateur de la science informatique, dans lequel il formalisa les notions d'algorithme et de calculabilité et introduisit le concept d'un calculateur universel programmable, la fameuse machine de Turing, qui joua un rôle majeur dans la création des ordinateurs

CHAPITRE GÉNÉRALITÉS SUR L'ANALYSE NUMÉRIQUE ET LE CALCUL SCIENTIFIQUE Wilkinson 6, dont on peut citer l'ouvrage [Wil94] initialement publié en 963, constituent les premiers exemples d'une longue succession de contributions sur le sujet Dans ce premier chapitre, nous revenons sur plusieurs principes qui, bien que n'ayant a priori pas toujours de rapport direct avec les méthodes numériques, interviennent de manière fondamentale dans leur mise en uvre et leur application à la résolution de problèmes Diérentes sources d'erreur dans une méthode numérique Les solutions de problèmes calculées par une méthode numérique sont aectées par des erreurs que l'on peut principalement classer en trois catégories : les erreurs d'arrondi, qui proviennent du fait que tout calculateur travaille en précision nie, c'està-dire dans un sous-ensemble discret du corps des réels R, l'arithmétique naturelle étant alors approchée par une arithmétique de nombres à virgule ottante (voir la section 3), les erreurs sur les données, imputables à une connaissance imparfaite des données du problème que l'on cherche à résoudre, comme lorsqu'elles sont issues de mesures physiques soumises à des contraintes expérimentales, les erreurs de troncature, d'approximation ou de discrétisation, introduites par les schémas de résolution numérique utilisés, comme le fait de tronquer le développement en série inni d'une solution analytique pour permettre son évaluation, d'arrêter d'un processus itératif dès qu'un itéré satisfait un critère donné avec une tolérance prescrite, ou encore d'approcher la solution d'une équation aux dérivées partielles en un nombre ni de points On peut également envisager d'ajouter à cette liste les erreurs qualiées d' humaines, telles les erreurs de programmation, ou causées par des dysfonctionnements des machines réalisant les calculs 7 Le présent chapitre est en grande partie consacré aux erreurs d'arrondi, aux mécanismes qui en sont à l'origine, à leur propagation, ainsi qu'à l'analyse de leurs eets sur le résultat d'une suite de calculs L'étude des erreurs de troncature, d'approximation ou de discrétisation constitue pour sa part un autre sujet majeur traité par l'analyse numérique Elle sera abordée à plusieurs reprises dans ce cours, lors de l'étude de diverses méthodes itératives (chapitres 3, 4 et 5), de techniques d'interpolation polynomiale (chapitre 6) ou de formules de quadrature (chapitre 7) Pour mesurer l'erreur entre la solution fournie par une méthode numérique et la solution du problème que l'on cherche à résoudre (on parle encore d'estimer la précision de la méthode), on introduit les notions d'erreur absolue et relative Dénition Soit ˆx une approximation d'un nombre réel x On dénit l'erreur absolue entre ces deux scalaires par x ˆx, et, lorsque x est non nul, l'erreur relative par x ˆx x De ces deux quantités, c'est souvent la seconde que l'on privilégie pour évaluer la précision d'un résultat, en raison de son invariance par changement d'échelle : la mise à l'échelle x α x et ˆx α ˆx, α, laisse en eet l'erreur relative inchangée Notons que ces dénitions se généralisent de manière immédiate à des variables vectorielles ou matricielles en substituant des normes aux valeurs absolues (on parle de normwise errors en anglais) Par exemple, pour des vecteurs x et ˆx de R n, on a ainsi l'expression x ˆx pour l'erreur absolue et 6 James Hardy Wilkinson (7 septembre 99-5 octobre 986) était un mathématicien anglais Il fut l'un des pionniers, et demeure une grande gure, de l'analyse numérique 7 Il a été fait grand cas du bogue de division de l'unité de calcul en virgule ottante du fameux processeur Pentium R d'intel R, découvert peu après le lancement de ce dernier sur le marché en 994 En réalisant des tests informatiques pour ses recherches sur les nombres premiers, Thomas Nicely, de l'université de Lynchburg (Virginie, USA), constata que la division de par 84633744 renvoyait un résultat erroné Il apparut plus tard que cette erreur était due à l'algorithme de division implanté sur le microprocesseur Pour plus de détails, on pourra consulter [Ede97]

PREMIÈRES NOTIONS D'ALGORITHMIQUE x ˆx / x pour l'erreur relative, où désigne une norme vectorielle donnée Dans ces derniers cas, les erreurs sont également couramment évaluées par composante ou par élément (componentwise errors en anglais) dans le cadre de l'analyse de sensibilité et de l'analyse d'erreur (voir respectivement les sections 4 et 5) Pour des vecteurs x et ˆx de R n, une mesure de l'erreur relative par composante est max i n x i ˆx i x i Premières notions d'algorithmique Une méthode numérique repose sur l'emploi d'un (ou de plusieurs) algorithme(s), notion ancienne, apparue bien avant les premiers ordinateurs, avec laquelle le lecteur est peut-être déjà familier Par dénition, un algorithme est un énoncé décrivant, à l'aide d'un enchaînement déterminé d'opérations élémentaires arithmétiques et logiques, une démarche systématique permettant la résolution d'un problème donné en un nombre ni 8 d'étapes Un exemple d'algorithme : l'algorithme d'euclide Décrit dans le septième livre des Éléments d'euclide 9, cet algorithme permet de déterminer le plus grand commun diviseur de deux entiers naturels Il est basé sur la propriété suivante : on suppose que a b et on note r le reste de la division euclidienne de a par b ; alors le plus grand commun diviseur de a et b est le plus grand commun diviseur de b et r En pratique, on divise le plus grand des deux nombres entiers par le plus petit, puis le plus petit des deux par le reste de la première division euclidienne On répète ensuite le procédé jusqu'à ce que le reste de la division, qui diminue sans cesse, devienne nul Le plus grand commun diviseur cherché est alors le dernier reste non nul (ou le premier diviseur, si le premier reste est nul) L'implémentation d'un algorithme consiste en l'écriture de la suite d'opérations élémentaires le composant dans un langage de programmation Une première étape en vue de cette tâche est d'écrire l'algorithme en pseudo-code, c'est-à-dire d'en donner une description compacte et informelle qui utilise les conventions structurelles des langages de programmation tout en s'aranchissant de certains détails techniques non essentiels à la bonne compréhension de l'algorithme, tels que la syntaxe, les déclarations de variables, le passage d'arguments lors des appels à des fonctions ou des routines externes, etc On donnera à plusieurs reprises dans les présentes notes de cours, à commencer par les algorithmes et ci-après décrivant le calcul d'un produit de matrices rectangulaires, des exemples (relativement simples) d'implémentation d'algorithmes en pseudo-code Algorithme : Algorithme pour le calcul du produit C = AB des matrices A de M m,p (R) et B de M p,n (R) (version ijk ) Données : les matrices A et B Résultat : la matrice C pour i = à m faire pour j = à n faire c ij = ; pour k = à p faire c ij = c ij + a ik b kj ; n n n 8 D'un point de vue pratique, c'est-à-dire pour être utilisé au sein d'un programme informatique, un algorithme doit forcément pouvoir s'achever après avoir eectué un nombre ni d'opérations élémentaires Dans un contexte plus abstrait, le nombre d'opérations réalisées dans un algorithme peut être inni, tout en restant dénombrable 9 Euclide (Eukleídhc en grec, v 35 avant J-C - v 65 avant J-C) était un mathématicien de la Grèce antique ayant probablement vécu en Afrique Il est l'auteur des Éléments, un traité de mathématiques et de géométrie qui est considéré comme l'un des textes fondateurs des mathématiques modernes On notera en particulier que le signe = en pseudo-code ne représente pas l'égalité mathématique, mais l'aectation de la valeur d'une variable à une autre 3

CHAPITRE GÉNÉRALITÉS SUR L'ANALYSE NUMÉRIQUE ET LE CALCUL SCIENTIFIQUE Pour un problème donné, il existe généralement plusieurs algorithmes le résolvant Certains se peuvent se distinguer par la nature et/ou le nombre des opérations élémentaires les constituant, tout en fournissant au nal un résultat identique, alors que d'autres vont au contraire eectuer strictement les mêmes opérations élémentaires et ne diérer que par la façon d'enchaîner ces dernières An d'illustrer ce dernier point, comparons les algorithmes et On remarque tout d'abord qu'ils ne se diérencient que par l'ordre de leurs boucles, ce qui ne change évidemment rien au résultat obtenu D'un point de vue informatique cependant, on voit qu'on accède aux éléments des matrices A et B selon leurs lignes ou leurs colonnes, ce qui ne se fait pas à la même vitesse selon la manière dont les matrices sont stockées dans la mémoire En particulier, la boucle interne de l'algorithme correspond à un produit scalaire entre une ligne de la matrice A et une colonne de la matrice B Dans chacun de ces deux algorithmes présentés, on peut encore modier l'ordre des boucle en i et j pour obtenir d'autres implémentations parmi les six qu'il est possible de réaliser Algorithme : Algorithme pour le calcul du produit C = AB des matrices A de M m,p (R) et B de M p,n (R) (version kij ) Données : les matrices A et B Résultat : la matrice C pour i = à m faire pour j = à n faire c ij = ; n n pour k = à p faire pour i = à m faire pour j = à n faire c ij = c ij + a ik b kj ; n n n Quelle que soit leur puissance théorique, les machines informatiques sont soumises à des limitations physiques touchant à leur capacité de calcul, c'est-à-dire le nombre d'opérations élémentaires pouvant être eectuées chaque seconde, ainsi qu'à la mémoire disponible, c'est-à-dire la quantité d'information qu'un programme peut avoir à disposition ou à laquelle il peut accéder à tout moment en un temps raisonnable Pour ces raisons, on évalue le coût d'une opération ou d'un calcul, au sens large, par le temps et la quantité de mémoire que nécessite son exécution On a coutume de mesurer l'ecacité et le coût d'un algorithme par sa complexité, qui est donnée le plus souvent par le nombre d'opérations arithmétiques (addition, soustraction, multiplication et division) ou logiques élémentaires que l'algorithme requiert La calcul de complexité du (ou des) algorithme(s) qui la compose(nt) fait partie de l'étude d'une méthode numérique Une part importante de la recherche dans ce domaine consiste en l'élaboration d'algorithmes ecaces, c'est-à-dire ayant une complexité la plus faible possible Il apparaît souvent qu'un eort d'analyse important au moment de la conception permet de mettre au point des algorithmes extrêmement puissants vis-à-vis des applications, avec des gains parfois exceptionnels lorsque le problème à résoudre est de grande taille comme le montre l'exemple ci-dessous Complexité du calcul du produit de deux matrices carrées On considére l'évaluation du produit de deux matrices d'ordre n à coecients dans un anneau, R par exemple Pour le réaliser, on a a priori, c'està-dire en utilisant la dénition (A), besoin de n 3 multiplications et n (n ) additions, soit de l'ordre de n 3 opérations arithmétiques Par exemple, dans le cas de matrices d'ordre, ( ) ( ) ( ) c c a a b b =, () c c a a b b Dans le décompte d'opérations arithmétiques intervenant dans un calcul de complexité, les additions et les soustractions sont prises en compte identiquement, mais une addition est moins coûteuse qu'une multiplication, elle-même moins coûteuse qu'une division 4

3 ARITHMÉTIQUE À VIRGULE FLOTTANTE il faut ainsi faire huit multiplications et quatre additions Plus explicitement, on a c = a b + a b, c = a b + a b, c = a b + a b, c = a b + a b Il est cependant possible d'eectuer le produit () avec moins de multiplications En eet, en faisant appel aux formules découvertes par Strassen en 969, qui consistent en l'introduction des quantités telles que q = (a + a )(b + b ), q = (a + a )b, q 3 = a (b b ), q 4 = a ( b + b ), q 5 = (a + a )b, q 6 = ( a + a )(b + b ), q 7 = (a a )(b + b ), c = q + q 4 q 5 + q 7, c = q 3 + q 5, c = q + q 4, c = q q + q 3 + q 6, on utilise sept multiplications et dix-huit additions et soustractions Cette construction ne dépendant pas du fait que les éléments multipliés commutent entre eux ou non, on peut l'appliquer à des matrices décomposées par blocs Ainsi, si A, B et C sont des matrices d'ordre n, avec n un entier pair, partitionnées en blocs d'ordre n, ( ) ( ) ( ) C C A A B B =, C C A A B B les blocs C ij, i, j, du produit C peuvent être calculés comme précédemment, en substituant aux coecients les blocs correspondant L'algorithme de Strassen [Str69] consiste à appliquer récursivement ce procédé jusqu'à ce que les blocs soient des scalaires Pour cela, il faut que l'entier n soit une puissance de, cas auquel on peut toujours se ramener en ajoutant des colonnes et des lignes de zéros aux matrices A, B et C Pour des matrices d'ordre n = m, m N, le nombre f(n) de multiplications et d'additions requises par l'algorithme de Strassen vérie f(n) = f( m ) = 7 f( m ) + 8 ( m ), la somme de deux matrices d'ordre n nécessitant n additions Un raisonnement par récurrence montre alors que dont on déduit que m f( m ) = 7 m f() + 8 7 k 4 m k 7 m (f() + 6), k= f(n) C n log (7), avec C une constante strictement positive 3 et log (7), 87 En pratique, la constante C fait que cette technique de multiplication n'est avantageuse que pour une valeur de n susamment grande, qui dépend par ailleurs de l'implémentation de l'algorithme et de l'architecture de la calculateur utilisé, principalement en raison de la récursivité de l'algorithme qui implique le stockage de sousmatrices D'autre part, le prix à payer pour la diminution asymptotique du nombre d'opérations est une stabilité numérique bien moindre que celle de la méthode standard de multiplication Sur ce point particulier, on pourra consulter l'article [Hig9] 3 Arithmétique à virgule ottante La mise en uvre d'une méthode numérique sur une machine amène un certain nombre de dicultés d'ordre pratique, qui sont principalement liées à la nécessaire représentation approchée des nombres réels Volker Strassen (né le 9 avril 936) est un mathématicien allemand Il est célèbre pour ses travaux sur la complexité algorithmique, avec l'algorithme de Strassen pour la multiplication rapide de matrices carrées et l'algorithme de Schönhage Strassen pour la multiplication rapide de grands entiers, et en théorie algorithmique des nombres, avec le test de primalité de SolovayStrassen 3 Dans [Str69], il est établi que f(n) 4, 7 n log (7) 5

CHAPITRE GÉNÉRALITÉS SUR L'ANALYSE NUMÉRIQUE ET LE CALCUL SCIENTIFIQUE en mémoire Avant de décrire plusieurs des particularités de l'arithmétique à virgule ottante en usage sur la majorité des ordinateurs et calculateurs actuels, les principes de représentation des nombres réels et de leur stockage en machine sont rappelés Une brève présentation du modèle d'arithmétique à virgule ottante le plus en usage actuellement, la norme IEEE 754, clôt la section 3 Système de numération Les nombres réels sont les éléments d'un corps archimédien complet totalement ordonné 4 noté R, constitué de nombres dits rationnels, comme 76 ou 4 3, et de nombres dits irrationnels, comme ou π On peut les représenter grâce à un système de numération positionnel relatif au choix d'une base (base ou encore radix en anglais) β, β N, β, en utilisant que x R x = s q b i β i, () où s est le signe de x (s = ±), p N {+ }, q N et les coecients b i, p i q, prennent leurs valeurs dans l'ensemble {,, β } On écrit alors 5 conventionnellement i= p x = s b q b q b, b b pβ, (3) où la virgule 6 est le séparateur entre la partie entière et la partie fractionnaire du réel x, l'indice β nal précisant simplement que la représentation du nombre est faite relativement à la base β Le système de numération est dit positionnel au sens où la position du chire b i, p i q, par rapport au séparateur indique par quelle puissance de l'entier β il est multiplié dans le développement () Lorsque β =, on a aaire au système de numération décimal communément employé, puisque l'on manipule généralement les nombres réels en utilisant implicitement leur représentation décimale (d'où l'omission de l'indice nal) Sur machine, cependant, le choix β =, donnant lieu au système binaire, est le plus courant 7 Dans ce dernier cas, les coecients b i, p i q, du développement () peuvent prendre les valeurs et et sont appelés chires binaires, de l'anglais binary digits dont l'abbréviation est le mot bits Le développement () peut posséder une innité de termes non triviaux, c'est notamment le cas pour les nombres irrationnels, et la représentation (3) lui correspondant est alors qualiée d' innie Une telle représentation ne pouvant être écrite, on a coutume d'indiquer les chires omis par des points de suspension, par exemple π = 3, 4596535897933846 Par ailleurs, la représentation d'un nombre rationnel dans une base donnée est dite périodique lorsque l'écriture contient un bloc de chires se répétant à l'inni On a, par exemple, 3 =, 333333333333, 7 =, 48574857, 7 =, 583333333333 Il est possible de noter cette répétition de chires à l'inni en plaçant des points de suspension après plusieurs occurrences du bloc en question, comme on l'a fait ci-dessus Cette écriture peut paraître claire lorsqu'une seule décimale est répétée une dizaine de fois, mais d'autres notations, plus explicites, font le choix de placer, de manière classique, la partie entière du nombre rationnel à gauche du séparateur et la partie fractionnaire non périodique suivie du bloc récurrent de la partie fractionnaire périodique, marqué d'un trait tiré au-dessus ou au-dessous ou bien placé entre crochets, à droite du séparateur On a ainsi, pour les exemples précédents, 3 =, 3, 7 =, 4857, 7 =, 583 4 Le lecteur est renvoyé à la section B de l'annexe B pour plus détails sur ces propriétés 5 Pour bien illustrer le propos, on a considéré l'exemple d'un réel x pour lequel p et q sont tous deux strictement plus grand que 6 Il est important de noter que le symbole utilisé comme séparateur par les anglo-saxons, et notamment les langages de programmation ou les logiciels Matlab et GNU Octave, est le point et non la virgule 7 Sur certains ordinateurs plus anciens, le système hexadécimal, c'est-à-dire tel que β = 6, est parfois utilisé Un nombre s'exprime dans ce cas à l'aide des seize symboles,,, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F 6

3 ARITHMÉTIQUE À VIRGULE FLOTTANTE Ajoutons que la représentation d'un nombre dans un système de numération n'est pas forcément unique, tout nombre pouvant s'écrire avec un nombre ni de chires ayant plusieurs représentations, dont une représentation innie non triviale On peut en eet accoler une répétition nie ou innie du chire à la représentation nie d'un nombre réel pour obtenir d'autres représentations, mais on peut également diminuer le dernier chire non nul de la représentation d'une unité et faire suivre ce chire d'une répétition innie du chire β pour obtenir une représentation innie non triviale Le nombre possède à ce titre les représentations nies,,,,, parmi d'autres, et les deux représentations innies, et, 9 Pour parer à ce problème d'unicité, il est courant de ne pas retenir la représentation innie d'un nombre lorsqu'une représentation nie existe et d'interdire que les chires de cette représentation nie soient tous nuls à partir d'un certain rang Exemples d'écriture de nombres réels dans les systèmes binaire et décimal, = 4 + + + = 6 + + + 4 + = 9, 375, 8 +, = i = + ( ) i = 4 4 4 = =, 3, 3 i= i= 4 +, = 3 4i = 3 + ( ) i = =, 6 6 5 i= i= Le dernier des exemples ci-dessus montre qu'à la représentation nie d'un nombre réel dans le système décimal peut parfaitement correspondre une représentation innie non triviale dans le système binaire Nous verrons dans la prochaine section que ceci a des conséquences au niveau des calculs eectués sur une machine En revanche, il est facile de voir qu'un nombre ayant une représentation nie dans le système binaire aura également une représentation nie dans le système décimal 3 Représentation des nombres réels en machine La mémoire d'une machine étant constituée d'un support physique, sa capacité est, par construction, limitée Pour cette raison, le nombre de valeurs (entières, réelles, etc) représentables, stockées en machine sous la forme d'ensembles de chires aectés à des cellules-mémoire 8 portant le nom de mots-mémoire, est ni Pour les nombres réels, il existe essentiellement deux systèmes de représentation : celui des nombres à virgule xe et celui des nombres à virgule ottante Tout d'abord, supposons que l'on dispose de N cellules-mémoire pour stocker un nombre réel non nul Une manière naturelle de faire est de réserver une cellule-mémoire pour son signe, N r cellulesmémoire pour les chires situés à droite du séparateur (la partie entière du nombre) et r cellules-mémoire restantes pour les chires situés à droite du séparateur, l'entier r étant xé, c'est-à-dire s b n r b, b b r β, (4) ce qui revient à convenir d'une position immuable et tacite du séparateur Les nombres réels ainsi représentables sont dits à virgule xe (xed-point numbers en anglais) Ils sont principalement utilisés lorsque le processeur de la machine (un microcontrôleur par exemple) ne possède pas d'unité de calcul pour les nombres à virgule ottante ou bien quand ils permettent de diminuer le temps de traitement et/ou d'améliorer l'exactitude des calculs Cependant, l'absence de dynamique dans le choix de placement du séparateur limite considérablement la plage de valeurs représentables par un nombre à virgule xe, sauf à disposer d'un grand nombre de cellules-mémoire Ce défaut peut néanmoins être aisément corrigé en s'inspirant de la notation scientique des nombres réels L'idée est d'écrire tout nombre réel représentable sous la forme symbolique s m β e, (5) où m est un réel positif, composé d'au plus t chires en base β, appelé signicande (signicand en anglais), ou plus communément mantisse 9, et e est un entier signé, appelé exposant, compris entre deux 8 Quand β =, on notera que la taille d'une cellule-mémoire est de un bit 9 En toute rigueur, ce terme désigne la diérence entre un nombre et sa partie entière, et c'est en ce sens que l'on parle de la mantisse d'un logarithme décimal C'est probablement le rapport étroit entre le logarithme décimal et la notation scientique d'un nombre qui est à l'origine du glissement de sens de ce mot 7

CHAPITRE GÉNÉRALITÉS SUR L'ANALYSE NUMÉRIQUE ET LE CALCUL SCIENTIFIQUE bornes e min et e max (on a généralement e min < et e max > ) En autorisant l'exposant e à changer de valeur, on voit qu'on laisse le séparateur (la virgule ou le point selon la convention) otter et une même valeur du signicande peut alors servir à représenter des nombres réels dont la valeur absolue est arbitrairement grande ou petite Les nombres ainsi dénis sont dits à virgule ottante ( oating-point numbers en anglais), et l'entier t est la précision ou encore nombre de chires signicatifs du nombre à virgule ottante On remarquera qu'un même nombre peut posséder plusieurs écritures dans ce système de représentation Par exemple, en base et avec une précision égale à 3, on peut représenter par 3,,,,,,,, ou bien, La notion d'exposant n'est pas intrinsèque et dépend de conventions adoptées sur le signicande, comme la place du séparateur dans ce dernier On parle de représentation normalisée lorsque le premier chire, encore appelé le chire de poids fort, du signicande est non nul, ce qui assure, une fois la position du séparateur xée, que tout réel non nul représentable ne possède qu'une seule représentation En base binaire, une conséquence intéressante est que le premier bit du signicande d'un nombre à virgule ottante normalisé est toujours égal à On peut alors décider de ne pas le stocker physiquement et on parle de bit de poids fort implicite ou caché (implicit or hidden leading bit en anglais) du signicande Dans toute la suite, on suppose que le séparateur est placé entre le premier et le deuxième chire du signicande Le signicande d'un nombre à virgule ottante vérie par conséquent m ( β t )β, et m si le nombre est normalisé Il est alors facile de vérier que le plus petit (resp grand) nombre réel positif atteint par un nombre à virgule ottante normalisé est β emin (resp ( β t ) β emax+ ) (6) L'ensemble des nombres à virgule ottante construit à partir d'une représentation normalisée est un ensemble ni de points de la droite réelle, qui ne sont par ailleurs pas équirépartis sur cette dernière On note parfois F(β, t, e min, e max ) l'union de ces nombres avec le singleton {} L'écart entre un nombre à virgule ottante normalisé x non nul et son plus proche voisin se mesure à l'aide de l'epsilon machine, ε mach = β t, qui est la distance entre le nombre et le nombre à virgule ottante le plus proche qui lui est supérieur On a l'estimation suivante Lemme La distance entre un nombre à virgule ottante normalisé x non nul et nombre à virgule ottante normalisé adjacent est au moins β ε mach x et au plus ε mach x Démonstration On peut, sans perte de généralité, supposer que le réel x est strictement positif et l'on pose x = m β e avec m < β Le nombre à virgule ottante supérieur à x lui étant le plus proche est x + β e t+, d'où β ε mach x = β t x x < mβ = x + t βe t+ x = β e t+ (m β t )β e t+ = ε mach x Si l'on considère le nombre à virgule ottante adjacent et inférieur à x, celui-ci vaut x β e t+ si x > β e, ce qui fournit à le même majorant que précédemment, et x β e t si x = β e, auquel cas on a x x + β e t = β β t+ β e = β ε mach x La restriction imposée fait que le nombre n'est pas représentable par un nombre à virgule ottante normalisé Par construction, cet ensemble est constitué des nombres rationnels exactement représentables dans le système de numération utilisé Ils sont en eet plus denses près du plus petit (resp grand) nombre positif (resp négatif) non nul représentable Par exemple, pour β =, t = 3, e min = et e max =, les nombres à virgule ottante positifs représentables sont et les nombres normalisés, 5, 3, 7,, 5, 3, 7,, 5, 3, 7,, 5, 3, 7, 4, 5, 6, 7, d'où la répartition suivante des éléments de 4 6 8 6 8 4 8 4 4 F(, 3,, ) 7 6 5 4 3 3 4 5 6 7 sur la droite réelle On remarque que la distance entre deux nombres à virgule ottante consécutifs est multipliée par β (doublée dans cet exemple) à chaque fois que l'on passe une puissance de β ( dans cet exemple) 8

3 ARITHMÉTIQUE À VIRGULE FLOTTANTE Tout ensemble de nombres à virgule ottante normalisés peut être complété 3 par des nombres dénormalisés ou sous-normaux (denormalized or subnormal numbers en anglais) Ces derniers permettent de représenter des nombres réels dont la valeur absolue est aussi petite que β emin t+, en abandonnant l'hypothèse sur le chire de poids fort du signicande (et donc au détriment de la précision de la représentation) En représentation binaire, le bit de poids fort n'étant plus implicite, on réserve une valeur spéciale de l'exposant (celle qui correspondrait à e min ) pour la représentation de ces nombres Arrondi Le caractère ni des ensembles de nombres à virgule ottante pose notamment le problème de la représentation en machine d'un nombre réel quelconque donné, que l'on a coutume de résoudre en remplaçant, le cas échéant, ce nombre par un autre admettant une représentation à virgule ottante dans le système considéré Pour un nombre réel dont la valeur absolue est comprise entre les bornes (6), une première manière de faire consiste à tout d'abord écrire le nombre sous la forme (5) pour ne conserver ensuite que les t premiers chires de sa mantisse On parle alors de troncature ou d'arrondi vers zéro (chopping ou rounding towards zero en anglais), qui est un premier exemple d'arrondi dirigé On peut aussi substituer au nombre réel le nombre à virgule ottante qui lui est le plus proche ; c'est l'arrondi au plus proche (rounding to nearest en anglais) Lorsque le nombre se situe à égale distance des deux nombres à virgule ottante qui l'entourent, on choisit la valeur de l'arrondi en faisant appel à des arrondis dirigés On peut alors prendre le nombre à virgule ottante le plus petit (resp grand), c'est l'arrondi par défaut (resp excès) (rounding half down (resp up) en anglais), le nombre à virgule ottante le plus petit (resp grand) en valeur absolue, c'est l'arrondi vers zéro (resp vers l'inni) (rounding half towards zero (resp away from zero) en anglais), le nombre à virgule ottante dont le dernier chire de la mantisse est pair (resp impair), c'est, par abus de langage, l'arrondi au chire pair (resp impair) (rounding half to even (resp odd) en anglais) Cette dernière méthode est employée an d'éliminer le biais pouvant survenir en arrondissant selon les autres règles Dans le cas d'un nombre réel non nul dont la valeur absolue n'appartient pas à l'intervalle déni par (6), il n'est pas possible d'eectuer un remplacement correspondant à un arrondi Ce dépassement de la capacité de stockage est appelé débordement vers l'inni (overow en anglais) si la valeur absolue du nombre est trop grande ou débordement vers zéro (underow en anglais) si elle est trop petite L'occurrence d'un débordement vers l'inni est un problème sérieux 4, notamment lorsque le nombre qui le provoque est le résultat d'une opération, et devrait, en toute rigueur, conduire à l'interruption du calcul en cours Un débordement vers zéro est moins grave et un remplacement par (la valeur la plus 3 Si l'on reprend l'exemple précédent, les nombres à virgule ottante dénormalisés positifs sont,, 3 et on a alors 6 8 6 la répartition suivante pour l'ensemble des nombres à virgule ottante 7 6 5 4 3 3 4 5 6 7 sur la droite réelle 4 Une illustration des conséquences désastreuses auxquelles peut conduire une mauvaise gestion d'un dépassement de capacité est celle du vol inaugural d'ariane 5 le 4 juin 996, durant lequel la fusée explosa à peine quarante secondes après son décollage de Kourou en Guyane française, détruisant ainsi sa charge utile (quatre sondes spatiales) d'une valeur totale de 37 millions de dollars Une enquête (voir J-L Lions et al, Ariane 5: ight 5 failure, Ariane 5 inquiry board report, 996) mit à jour un dysfonctionnement du système de guidage inertiel, causé par la conversion d'un nombre à virgule ottante stocké sur 64 bits donnant la vitesse horizontale de la fusée en un entier signé stocké sur 6 bits L'entier obtenu étant plus grand que 3767, la plus grande valeur entière signée représentable avec 6 bits, l'échec de conversion déclencha une exception non traitée (suite à une erreur de programmation) qui fût interprétée comme une déviation de la trajectoire La violente correction demandée par le système de guidage provoqua alors un dérapage de la fusée de sa trajectoire, entraînant son auto-destruction préventive Il s'avére que, pour des raisons d'économies sur le coût des préparatifs, aucune simulation n'avait été eectuée avant le vol, le système de navigation étant le même que celui d'ariane 4, fusée moins puissante et donc moins rapide qu'ariane 5, et réputé able 9

CHAPITRE GÉNÉRALITÉS SUR L'ANALYSE NUMÉRIQUE ET LE CALCUL SCIENTIFIQUE proche) est en général eectué, mais cette solution n'est cependant pas toujours satisfaisante 5 Quand l'ensemble des nombres à virgule ottante contient des nombres dénormalisés, l'arrondi peut prendre une valeur non nulle comprise entre et la dernière valeur représentable par un nombre normalisé 6 et le débordement vers zéro est dit progressif (gradual or graceful underow en anglais) Dans toute la suite, on note fl(x) l'arrondi au plus proche d'un nombre réel x, dénissant ainsi une application de [(β t ) β emax+, β emin ] {} [β emin, ( β t ) β emax+ ] dans F(β, t, e min, e max ) Si x est un nombre à virgule ottante, on a clairement fl(x) = x On vérie également la propriété de monotonie suivante x y fl(x) fl(y), pour tous nombres réels x et y pour lesquels l'arrondi est déni Le résultat suivant montre qu'un nombre réel x, pour lequel l'arrondi est déni, est approché avec une erreur relative x fl(x) x ne dépassant pas la valeur u = β t = ε mach, appelée précision machine (machine precision ou unit roundo 7 en anglais) Théorème 3 Soit x un nombre réel tel que β emin x ( β t )β emax+ Alors, on a fl(x) = x( + δ), δ < u (7) Démonstration On peut, sans perte de généralité, supposer que le réel x est strictement positif En écrivant x sous la forme x = µ β e t+, β t µ < β t, on observe que x se trouve entre les deux nombres à virgule ottante adjacents y = µ β e t+ et y = µ β e t+ (ou y = µ β βe t si µ = β t ), où µ (resp µ ) désigne la partie entière par défaut (resp par excès) du réel µ Par conséquent, fl(x) = y ou y et l'on a x fl(x) y y βe t+, d'où x fl(x) e t+ β x β t = u µ βe t+ La dernière inégalité est stricte sauf si µ = β t, auquel cas fl(x) = x L'inégalité dans (7) est donc stricte On peut établir que les arrondis dirigés satisfont une inégalité identique à (7) avec δ < u La version modiée suivante du précédent résultat est parfois utile pour l'analyse d'erreur Théorème 4 Sous les hypothèses du théorème 3, on a fl(x) = x, δ u + δ Démonstration conséquent dont on déduit le résultat En reprenant la preuve du théorème 3, on constate que y i β e, i =, On a par x fl(x) fl(x) β e t+ β e = β t Les erreurs d'arrondi sont inévitables et parfois présentes avant même qu'une seule opération ait eu lieu, puisque la représentation en machine des données d'un problème peut nécessiter de les arrondir Prises isolément, ces erreurs sont généralement bénignes, mais leur propagation et leur accumulation 8 au cours d'une série de calculs, notamment lorsque l'on cherche à résoudre un problème mal conditionné (voir la sous-section 4) et/ou que l'on utilise un algorithme numériquement instable (voir la sous-section 5), peuvent faire perdre toute signication au résultat numérique obtenu 5 On peut en eet imaginer que le nombre incriminé puisse ensuite être multiplié par un très grand nombre ; si un remplacement par zéro a lieu, le résultat nal sera nul 6 En d'autres mots, en présence de nombres dénormalisés, on a l'intéressante propriété suivante : si x y, la valeur calculée de x y ne peut être nulle Le dépassement de capacité progressif assure ainsi l'existence et l'unicité dans F de l'opposé d'un nombre à virgule ottante 7 Cette dernière appellation provient du fait que le nombre u représente la plus grande erreur relative commise sur les nombres réels arrondis à 8 Un exemple célèbre de désastre dû à une erreur d'arrondi est celui de l'échec d'interception par un missile Patriot = u,