Analyse Numérique Cours Ver 2022 - 2023

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 33

Analyse Numerique

1
• Objectifs pédagogiques :
Introduction des notions usuelles en analyse numérique utiles à l’ingénieur.
• Pré-requis :
- Mathématiques 2.2 – Complément d’analyse,
- Mathématiques 3.1 – Séries.
• Programme du cours :
- Origines des erreurs en calcul numérique,
- Résolution de systèmes linéaires,
- Interpolation / extrapolation,
- Ajustement de courbe.
• Compétences :
- Utiliser des méthodologies d’analyse numérique en
discernant les limites, en sachant les choisir, les appliquer ou
les adapter.

2
Définition de l’analyse
numérique
• Nous proposons une définition formelle de
l’analyse numérique basée sur la définition de
Nick Trefethen (Oxford University):
• L’analyse numérique est une discipline qui
traite de la conception, l’analyse et
l’implémentation d’algorithmes pour la
résolution numérique des problèmes
mathématiques continus qui proviennent de
la modélisation des phénomènes réels.
3
Les compétences associées
• Domaine: Modélisation et développement
informatique
– Compétence:
• Savoir modéliser
– Capacités et connaissances associées
• Comprendre ce qu'est un modèle
• Savoir faire une modélisation macroscopique (numérique) et
microscopique (symbolique)
• Savoir définir un modèle conceptuel de données
• Savoir identifier les entrées et sorties d'un problème
• Savoir décomposer un problème en sous-problèmes
(autonomes) plus simples 4
Les compétences associées
• Domaine: Modélisation et développement
informatique
– Compétence:
• Savoir développer
– Capacités et connaissances associées
• Savoir traduire un algorithme vers un langage de
programmation
• Savoir différencier commentaire et documentation
• Savoir appliquer des règles de codage

5
Evaluation des compétences
Intitulé Description des capacités/connaissances associées

Structurer son programme en mettant des commentaires, des noms de


Ecrire un programme
variables signifiants et éventuellement ecrire des fonctions, des boucles…

Exécuter un programme Détecter une erreur et la corriger

Comparer correctement plusieurs résultats numériques Utilisation du format d’affichage des données et/ou du test d’égalité

Différencier valeur analytique/ valeur numérique en utilisant les notions de :


Analyser les conséquences de l'erreur numérique de codage virgule flottante et virgule fixe; précision relative et précision absolu; ;
chiffres significatifs et epsilon machine

Tester le conditionnement d’un problème, d’un algorithme et en déduire


Analyser les conséquences du conditionnement d'un problème l’intérêt d’un pré-conditionnement et l’analyse de la précision du résultat
numérique

Utilisation de fonctions d'analyse avancée Utiliser les fonctions polyfit et polyval, avec et sans preconditionnement

Construction d'une matrice, extraction d'une sous-matrice, visualisation des


Manipuler les éléments d'une matrice
valeurs numériques des élements d'une matrice
Visualisation d'un tableau à l'aide d'un graphique
Analyse d'un tableau à l'aide d'un graphique

Visualisation de la courbe d’une fonction à l'aide d'un graphique Construction des points en tenant compte du problème de l'échantillonnage

6
Prise en compte de l’évaluation
pédagogique par les étudiants
• A l’origine, cet enseignement était organisé de manière classique avec la présentation en
cours des notions théoriques à connaitre:
précision numérique / conditionnement d’un problème / génération et
propagation de l’erreur / interpolation / extrapolation / ajustement de courbes
Dans le cours nous définissions ces notions puis nous présentions différents exemples pour
illustrer comment utiliser correctement ces outils lors d’une analyse numérique. Après
chaque cours une séance de travaux pratiques utilisant le logiciel MATLAB permettaient aux
étudiants de réaliser des analyses numériques et de valider les compétences associées.
• Lors de l’évaluation de cet enseignement par les étudiants il s’est avéré que la difficulté
de programmation à l’aide du logiciel MATLAB rendait trop difficile le lien entre le
cours et le TP. Le cours devenait ainsi trop théorique car les étudiants n’anticipaient pas
suffisamment une application des notions à l’aide de MATLAB et les TP n’étaient pas
assez efficaces car les étudiants prenaient trop de temps pour l’écriture d’un programme
et pas assez de temps à l’analyse des résultats.

7
Plan de l’enseignement
• L’enseignement d’analyse numérique est maintenant découpé ainsi:
Une première partie illustrée par ce diaporama est une présentation des objectifs et de
l’organisation pédagogique.
Ensuite une série de TP permettra une montée en compétence en premier lieu de l’outil de
programmation mais aussi des notions élémentaires d’analyses numériques. Pendant ces TP
nous regarderons principalement la notion de précision numérique et de conditionnement
d’un problème.
Nous aurons ensuite une deuxième série de TP qui concernera des notions plus avancées
d’analyse numérique (résolution de systèmes linéaires/interpolation/extrapolation/ajustement
de courbes).

8
Table de matières du cours
• Introduction au calcul numérique.
• Analyse d’erreurs

9
Du modèle au problème
mathématique
• L’utilisation d’un modèle pour la résolution
d’un problème pratique passe à travers la
résolution d’un problème mathématique.

10
Problème mathématique
• Un problème mathématique est une relation
fonctionnelle entre un ensemble de données
et une solution .
• On peut distinguer deux formes de problème:
• Forme explicite:
= ( )
• Forme implicite:
( )=0
• Selon la nature du problème, la solution et les
données peuvent être représentées par des
matrices, des nombres réels ou des fonctions.
11
Conditionnement d’un problème
• Le conditionnement d’un problème de la forme
= ( ) mesure la sensibilité de la solution
du problème aux changements des données .
• Soient d une perturbation admissible des
données et d la modification induite sur la
solution du problème = ( ).
• On appelle conditionnement relatif de ce
problème la quantité

12
• Que veut dire:
Le conditionnement relatif de ce problème est
très petit devant 1

Le conditionnement relatif de ce problème est


très grand devant 1

13
14
Définissons le problème où d=s(0) et x=s(20) et étudions les solutions
pour d proche de 0.2.

On observe qu’une très légère variation de d suffit à donner des


résultats de x très différents. Ce problème est mal conditionné.

15
16
Exemples
• x=F(d) = d-1
• x=F(d) = d1000
Conditionnement relatif ?

17
Exemples

• x=F(d) = d-1

• x=F(d) = d1000

18
Table de matières du cours
• Introduction au calcul numérique.
• Analyse d’erreurs

19
3 illustrations qui montrent
qu’une erreur d’analyse
numérique peut avoir de graves
conséquences
• Missile Patriot le 25 février 1991 (28 morts, 100
blessés)
• Lanceur Ariane 5 le 4 juin 1996 (500 M$)
• Plate-forme offshore Sleipner A le 23 Août 1991
(700 M$)
20
Batterie de missile Patriot
• Le 25 février 1991, durant la première
guerre du Golfe, une batterie de missile
patriot basée à Dharan, en Arabie Saoudite,
échoua à suivre et intercepter un missile
Scud irakien en approche. Le missile Scud
frappa un baraquement américain, tuant 28
soldats et blessa environ 100 autres
personnes.
21
Le temps t en (s) dans l’ordinateur était calculé
ainsi :
t =1/10 N
où N était le nombre de 1/10 de secondes depuis
l’allumage de l’ordinateur.

Cependant, en binaire :
(1/10)2= 0.000110011001100110011001100 · · ·
donc en norme IEEE-754, 1/10 a une erreur de l’ordre de :
Erreur =0.000000000000000000000000000110011 · · · .
c’est-à-dire environ 9.5 · 10−8 secondes= 95 ns.

22
La batterie du lanceur Patriot ayant tourné près de 100
heures, l’erreur est de :
9.5 · 10−8 100 60 60 10 = 0.34 secondes.

Le missile Scud se déplaçant à 1676 m/s, durant


0.34 secondes,
il a déjà parcouru près de 500 m ce qui explique que
le Patriot soit passé à côté de sa cible !

23
Lanceur de fusée Ariane 5
• Lanceur de satellites sur orbite géostationnaire, Ariane 5 a été
développée en 1995 pour remplacer Ariane 4.
• Après plusieurs batteries de tests réalisées au sol et des mois de
préparation, Ariane 5 est prête pour réaliser son vol inaugural et sa
première mise en orbite de satellites, le vol 501.
• Après seulement 36.7 secondes, la fusée se brise en plein vol et
explose à une altitude de 4 000 mètres au-dessus du centre spatiale de
Kourou, en Guyane française.
• Aucune victime n’est à déplorer des retombées de débris, le vol est
également inhabité. Ce sont plus de 500 millions de dollars qui
s’envolent en fumée dans le ciel de Kourou et un coup dur subit par
l’agence spatiale européenne.

24
Le rapport d’enquête a établit que l’ordinateur
a effectué la conversion suivante :
vx (réel 64 bits) ⇒ vx (entier signé 16 bits).
où vx est la vitesse horizontale.
Une erreur d’overflow a eu lieu car :
vx > 32767 = limite 16 bits de vx .
L’erreur a brutalement dévié la fusée qui, par
mesure de sécurité, a été détruite à 3700 m
d’altitude !

25
Plate-forme offshore Sleipner A
23 août 1991, Gandsfjorden, Norvege : une plate-forme de forage de
plus de cent mille tonnes coule suite à la rupture de la paroi des
ballasts, provoquant un séisme de magnitude 3 sur l'échelle de
Richter ; coût estimé : 700 millions de dollars.

26
23 août 1991, Gandsfjorden, Norvege : une plate-forme de forage de
plus de cent mille tonnes coule suite a la rupture de la paroi des
ballasts, provoquant un séisme de magnitude 3 sur l'échelle de Richter
; coût estimé : 700 millions de dollars.
Les experts ont remonté les causes de la catastrophe jusqu'au logiciel
de calcul des éléments finis utilise pour le dessin des ballasts. Une
approximation de calcul dans ce logiciel a conduit a une sous-
estimation de la taille des parois du ballast de 47%.
Compte-tenu de cette sous-estimation, les experts ont estimé la
rupture probable a partir de 62m de profondeur. La catastrophe s'est
produite par 65m de fond.

27
Un simple calcul arithmétique
numérique peut aussi être faux !

--> sqrt(2)*sqrt(2)-2
ans =
4.441D-16
On voit que le calcul de la racine carré
s’effectue avec une certaine précision,
racine(2) étant irrationnel c’est logique !
28
• Simplifions la ques0on avec un nombre
ra0onnel
Est-ce que (4 3 − 1) = 1 ?

--> 3*(4/3-1)
ans =
1.0000000
On a bien le bon résultat mais regardons de plus près …

29
• Utilisons la fonction égalité pour tester
Est-ce que (4 3 − 1) = 1 ?
--> 3*(4/3-1) == 1
ans =
F
La fonction == nous renvoie la valeur booléenne F
(False) qui indique que 3*(4/3-1) n’est pas égal à 1 !

30
Autre cas étrange:
Est-ce que 0 2 + 0 2 + 0 2 = 0.6?
Effectuons l’analyse pas à pas …

--> 0.2+0.2 == 0.4


ans =
T Scilab trouve bien 0.2+0.2 = 0.4
--> 0.2+0.2+0.2== 0.6
ans =
F
Scilab ne trouve pas 0.2+0.2+0.2 = 0.6 et pourtant encore une fois
--> 0.2+0.2+0.2
ans =
0.6000000
31
Continuons ces additions …

--> 0.2+0.2+0.2+0.2 == 0.8


ans =
T
Scilab ne trouve pas 0.2+0.2+0.2 = 0.6 mais
Trouve 0.2+0.2+0.2+0.2 = 0.8 !

32
Nous verrons donc dans les
prochains TPs d’où proviennent
ces résultats a priori
contradictoires !

33