Analyse Numérique élémentaire
Cours de Licence de Mathématiques 3ème année
Caroline Japhet
http://www.math.univ-paris13.fr/~japhet/
Bureau D312
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 1 / 43
De l’expérience au programme
Expérience
Mise en équation modèle physique
Analyse mathématique propriétés du modèle
Approximation modèle programmable - Dérivation/intégration numérique
-Interpolation et approximation
-Résolution de systèmes linéaires
Analyse numérique qualité de l’approximation - Estimation d’erreur
-Stabilité, conditionnement
Mise en oeuvre sur ordinateur vérification
Comparaison à l’expérience validation ?
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 2 / 43
PLAN DU COURS
Partie I : Analyse numérique matricielle
Outils d’algèbre
Méthodes directes et itératives pour la résolution d’un système linéaire
Partie II : Interpolation, Approximation, Intégration numérique
Interpolation polynômiale
Dérivation numérique
Intégration numérique
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 3 / 43
REFERENCES
Ce cours est basé sur les références suivantes:
- A. Quarteroni, Méthodes numériques pour le calcul scientifique, Springer
- M.J. Gander, W. Gander, F. Kwok. Scientific Computing: An introduction using MAPLE and MATLAB,
Texts in Computational Science and Engineering 11, Springer 2014.
Autres références
- P.Lascaux & R.Théodor, Analyse numérique matricielle appliquée à l’art de l’ingénieur, Masson
- G. Allaire & S.M. Kaber, Algèbre linéaire numérique, Ellipses
- P.G. Ciarlet, Introduction à l’analyse numérique matricielle et à l’optimisation, Dunod
- E. Hairer, http://www.unige.ch/~hairer/polycop.html
- J. P. Demailly. Analyse Numérique et Equations Différentielles, PUG, 1994.
Partie I : Analyse numérique matricielle
Chapitre 1 - Outils d’algèbre (voir le polycopié)
1 - Rappels d’algèbre linéaire
2 - Normes vectorielles et matricielles
3 - Suite de vecteurs et de matrices
4 - Matrices définies positives, à diagonale dominante
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 4 / 43
Partie I : Analyse numérique matricielle
Chapitre 2 - Méthodes de résolution d’un système linéaire
1 - Erreurs d’arrondis - Conditionnement d’un système linéaire
2 - Méthodes itératives pour la résolution d’un système linéaire
- Méthodes de Jacobi, Gauss-Seidel et relaxation
3 - Méthodes directes de résolution d’un système linéaire
- Méthode de Gauss
- Décomposition LU
- Cas des matrices symétriques définies positives
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 5 / 43
Définition
Un système linéaire de méquations à ninconnues est un ensemble d’équations linéaire:
n
j=1
aij xj=bi,i=1,..., m,(1)
les xjsont les inconnues,
les aij sont les coefficients du système. Ce sont des données,
les biconsituent le second membre du système. Ce sont aussi des données.
On écrit le système sous la forme matricielle
Ax=b,(2)
A= (aij )Rm×nest la matrice des coefficients, b= (bi)Rmle vecteur du second
membre et x= (xi)Rnle vecteur inconnu.
Une solution de (2) est un x= (x1,..., xn)Rnqui vérifie (1).
Dans ce chapitre on ne considère que le cas m=navec Ainversible
(Ainversible rg(A) = nle système homogène Ax=0
0
0 admet seulement la solution nulle)
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 6 / 43
Proposition
La solution du système Ax=best donnée par la formule de Cramer:
xj=j
det(A),j=1,..., n,
jest le déterminant de la matrice obtenue en remplaçant la j-ième colonne de Apar b.
Définition:
On appelle flops le nombre d’opérations à virgule flottante par seconde (en anglais: FLoating point
Operations Per Second). Le nombre de flops mesure la vitesse d’un système informatique.
Remarque:
On peut montrer que le coût de calcul de la formule de Cramer est de l’ordre de (n+1)! flops.
Si n=50, résoudre un système linéaire n×npar la méthode de Cramer sur un ordinateur de 1 gigaflops
(=109flops) nécessite environ 9.61047 annéees !
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 7 / 43
Méthodes alternatives aux formules de Cramer qui permettent de réduire le temps de calcul
pour résoudre un système linéaire
Définition
On appelle méthode directe de résolution d’un système linéaire une méthode numérique
permettant d’obtenir une solution en un nombre fini d’opérations.
On appelle méthode itérative de résolution d’un système linéaire une méthode permettant de
calculer une suite de solutions approchées (x(k))qui converge vers xquand k+.
x(k)est dit le k-ième itéré de la méthode.
Remarque:
Le choix d’une méthode dépend de l’efficacité des algorithmes, du type de matrice, de l’ordinateur (capacité
de stockage en mémoire, architecture,...)
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 8 / 43
2.1 SOURCES D’ERREURS DANS UNE MÉTHODE NUMÉRIQUE
Parmi les erreurs intervenant dans la résolution d’un système linéaire :
les erreurs d’arrondis résultant du codage des valeurs réelles sur un nombre fini de bits
(32, 64 bits,...),
les erreurs résultant de l’éventuelle méthode d’approximation.
Afin d’éviter la détéroriation de la solution deux conditions doivent être satisfaites :
problème bien conditionné,
méthode numérique stable.
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 9 / 43
2.1.1 ERREURS D’ARRONDI
Exemple: calcul approché de π
Regardons l’algorithme de calcul par les polygônes inscrits. On considère un cercle de rayon
r=1 et on note Anl’aire associée au polygône inscrit à ncôtés. En notant αn=2π
n,Anest
égale à nfois l’aire du triangle ABC représenté sur la figure ci-dessous
αn= (2π)/n
r=1
A
B
C
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 10 / 43
c’est-à-dire
An=ncos αn
2sin αn
2,
que l’on peut réécrire
An=n
2(2cos αn
2sin αn
2) = n
2sinαn=n
2sin(2π
n).
Comme on cherche à calculer πà l’aide de An, on ne peut pas utiliser l’expression ci-dessus
pour calculer An, mais on peut exprimer A2nen fonction de Anen utilisant la relation
sin αn
2=r1cosαn
2=s1p1sin2αn
2.
Ainsi, en prenant n=2k, on définit l’approximation de πpar récurrence
xk=A2k=2k
2sk,avec sk=sin(2π
2k) = r11sk1
2.
En partant de k=2 (i.e. n=4 et s=1) on obtient l’algorithme suivant:
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 11 / 43
Algorithm 0.1 Algorithme de calcul de π, version naïve
1: s1, n4Initialisations
2: Tantque s>1e10 faire Arrêt si s=sin(α)est petit
3: ssqrt ((1sqrt(1ss))/2nouvelle valeur de sin(α/2)
4: n2nnouvelle valeur de n
5: A(n/2)snouvelle valeur de l’aire du polygône
6: fin Tantque
On a limk+xk=π. Ce n’est pourtant pas du tout ce que l’on va observer sur machine! Les
résultats en Matlab du tableau 1 montre que l’algorithme commence pas converger vers πpuis
pour n>65536, l’erreur augmente et finalement on obtient An=0!! Ceci résulte du codage
des valeurs réelles sur un nombre fini de bits.
“Although the theory and the program are correct, we obtain incorrect answers” (M.J. Gander)
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 12 / 43
n AnAnπsin(αn)
4 2.000000000000000 -1.141592653589793 1.000000000000000
8 2.828427124746190 -0.313165528843603 0.707106781186548
16 3.061467458920719 -0.080125194669074 0.382683432365090
32 3.121445152258053 -0.020147501331740 0.195090322016128
64 3.136548490545941 -0.005044163043852 0.098017140329561
128 3.140331156954739 -0.001261496635054 0.049067674327418
256 3.141277250932757 -0.000315402657036 0.024541228522912
512 3.141513801144145 -0.000078852445648 0.012271538285719
1024 3.141572940367883 -0.000019713221910 0.006135884649156
2048 3.141587725279961 -0.000004928309832 0.003067956762969
4096 3.141591421504635 -0.000001232085158 0.001533980186282
8192 3.141592345611077 -0.000000307978716 0.000766990318753
16384 3.141592576545004 -0.000000077044789 0.000383495187567
32768 3.141592633463248 -0.000000020126545 0.000191747597257
65536 3.141592654807589 0.000000001217796 0.000095873799280
131072 3.141592645321215 -0.000000008268578 0.000047936899495
262144 3.141592607375720 -0.000000046214073 0.000023968449458
524288 3.141592910939673 0.000000257349880 0.000011984225887
1048576 3.141594125195191 0.000001471605398 0.000005992115260
2097152 3.141596553704820 0.000003900115026 0.000002996059946
4194304 3.141596553704820 0.000003900115026 0.000001498029973
8388608 3.141674265021758 0.000081611431964 0.000000749033514
16777216 3.141829681889202 0.000237028299408 0.000000374535284
33554432 3.142451272494134 0.000858618904341 0.000000187304692
67108864 3.142451272494134 0.000858618904341 0.000000093652346
134217728 3.162277660168380 0.020685006578586 0.000000047121609
268435456 3.162277660168380 0.020685006578586 0.000000023560805
536870912 3.464101615137754 0.322508961547961 0.000000012904784
1073741824 4.000000000000000 0.858407346410207 0.000000007450581
2.147484e+09 0.000000000000000 -3.141592653589793 0.000000000000000
Table: 1. Calcul de πavec l’algorithme naïf
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 13 / 43
Un nombre réel s’écrit de façon unique x=±m·bedans une base b(b=10 pour une calculatrice b=2
pour un ordinateur) où mest la mantisse (nombre réel compris entre 0.1 et 1) et el’exposant (entier).
Regardons en base b=10: x=±m·10e. En faisant varier e, on fait « flotter » la virgule décimale.
La limitation fondamentale est que la place mémoire d’un ordinateur est limitée, c’est-à-dire qu’il ne pourra
stocker qu’un ensemble fini de nombres. Ainsi un nombre machine ou nombre à virgule flottante s’écrit :
˜
x=±˜
m·be
˜
m=D.D···D
˜
e=D···D
D∈ {0,1,..., 9}en base 10 (ou D∈ {0,1}) en base 2.
L’arrondi à termes est noté arr(x) = ˜
xet est égal (en base 10) à x=±˜
m·10e, avec ˜
m=0.···
|{z}
.
Par exemple π=3.141592653... s’écrit π=0.31415926
| {z }
8
53...101, et avec =8, on a ˜
π=0.31415926101.
La précision de l’ordinateur est le plus petit eps tel que arr(1+eps)>1. On a alors pour tout x6=0,
xarr(x)
x<eps.
0
a in R
at in M
atmin 0t atmax
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 14 / 43
Erreurs d’annulation
Ce sont les erreurs dûes à l’annulation numérique de chiffres significatifs, quand les nombres ne sont
représentés qu’avec une quantité finie de chiffres, comme les nombres machine.
Exemple: on cherche à évaluer sur l’ordinateur de façon précise, pour xpetit, la fonction
f(x) = 1
11x2.
Pour |x|<eps , on risque d’avoir le nombre 1x2remplacé par 1, par la machine, et donc lors du
calcul de f(x), on risque d’effectuer une division par 0. C’est le cas pour pour x=eps
2, en Matlab:
» f(0.5*sqrt(eps))
ans =
Inf
On ne peut donc pas évaluer précisément f(x)sur l’ordinateur dans ce cas. Maintenant, si on multiplie
dans f(x)le numérateur et le dénominateur par 1+1x2, on obtient f(x) = 1+1x2
x2Cette fois, on
peut évaluer f(x)de façon précise :
» f(0.5*sqrt(eps))
ans =
3.6029e+16
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 15 / 43
C’est ce qui se passe aussi dans le cas du calcul de πavec l’algorithme naïf. En utilisant la formule
sin αn
2=r1cosαn
2=s1p1sin2αn
2,
comme sinαn0, le numérateur à droite est de la forme
1p1ε2,avec ε=sinαnpetit ,
donc sujet aux erreurs d’annulation. Pour y palier, il faut reformuler les équations de façon à s’affranchir des
erreurs d’annulations, par exemple en multipliant le numérateur et le dénominateur par (1+p1sin2αn).
sin αn
2=s1p1sin2αn
2=s1(1sin2αn)
2(1+p1sin2αn)=sinαn
q2(1+p1+sin2αn)
.
Catastrophe dûe à l’arithmétique flottante
Il y a un petit nombre “connu” de catastrophes dans la vie réelle qui sont attribuables à une mauvaise
gestion de l’arithmétique des ordinateurs (erreurs d’arondis, d’annulation), voir
http://www.ima.umn.edu/ arnold/disasters/.
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 16 / 43
2.1.2 CONDITIONNEMENT D’UN SYSTÈME LINÉAIRE
Soient ARn×n,bRn.
On s’intéresse à la sensibilité de la solution xdu système linéaire Ax=baux perturbations des
données Aet b.
Exemple de R.S. Wilson : A=
10 7 8 7
7 5 6 5
8 6 10 9
75910
et b=
32
23
33
31
La solution de ce système est x= (1,1,1,1)t. Perturbons le second membre de sorte que
bp=b+ ∆b= (32.01,22.99,33.01,30.99)t. La solution de Axp=bpest xp= (1.82,0.36,1.35,0.79)t.
L’erreur relative sur xest kxxpk2
kxk2=0.8198.L’erreur relative sur best kbk2
kbk2=3.319104,
soit une amplification de la perturbation de l’ordre de 2460 !
Perturbons maintenant la matrice de sorte que Ap=A+ ∆A=
10 7 8,1 7,2
7,08 5,04 6 5
8 5,98 9,89 9
6,99 4,99 9 9,98
.
La solution de Apxp=best xp= (81,137,34,22)t. L’erreur relative sur xest kxxpk2
kxk2=81.9848.
L’erreur relative sur Aest kAk2
kAk2=0.0076,soit une amplification de la perturbation de l’ordre de 104!
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 17 / 43
CONDITIONNEMENT D’UNE MATRICE
Définition
Le conditionnement d’une matrice ARn×nest défini par
cond(A) = kAkkA1k
k·kest une norme matricielle subordonnée.
Propriétés:
cond(A)dépend en général du choix de la norme. Par exemple condp(A) = kAkpkA1kp.
cond(A)1. Si Aest orthogonale, cond2(A) = 1.
Plus cond(A)est grand, plus la solution du système Ax=best sensible aux perturbations des
données.
Si Aest symétrique définie positive, alors cond2(A) = λmax
λmin =ρ(A)ρ(A1), où λmax est la plus
grande valeur propre de Aet λmin la plus petite.
On ne calcule pas A1pour évaluer cond(A)(trop coûteux!) : on calcule une approximation de
cond(A).
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 18 / 43
Théorème
Soient ARn×ninversible et bRndonnés.
Si xet x+ ∆xsont respectivement solution de
Ax=b,et A(x+ ∆x) = b+ ∆b,
alors on a l’inégalité
kxk
kxkcond(A)kbk
kbk
et c’est la meilleure possible: pour Adonnée, b6=0
0
0 et b6=0
0
0 tels qu’on ait l’égalité.
Si xet x+ ∆xsont respectivement solution de
Ax=b,et (A+ ∆A)(x+ ∆x) = b,
alors kxk
kx+ ∆xkcond(A)kAk
kAk.
et c’est la meilleure possible: pour Adonnée, b6=0
0
0 et A6=0 tels qu’on ait l’égalité.
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 19 / 43
2.1.3 PRÉCONDITIONNEMENT
Objectif : Plutôt que de résoudre Ax=blorsque Aest mal conditionnée, on résout un système
équivalent C1Ax=C1bCest une matrice inversible et telle que C1Aest mieux
conditionnée que A.
La matrice Cest appelée préconditionneur.
Exemples de préconditionneurs:
1Préconditionneur diagonal : Cest diagonale. Pour Asymétrique cii =aii .Pour Anon
symétrique cii = (n
j=1a2
ij )1/2.
2Factorisation LU incomplète (ILU) / Factorisation de Cholesky incomplète.
3Préconditionneur polynomial : C1=p(A)pest un polynôme en A, en général de
bas degré, par exemple une troncature du développement en série de A1.
Licence 3 (Université Paris 13) Analyse Numérique élémentaire Année 2014-2015 20 / 43
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !