20
Méthodes numériques Georges Koepfler L3 2019-2020 G. Koepfler Méthodes numériques L3 2019-2020 1

Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

  • Upload
    others

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Méthodes numériques

Georges Koepfler

L3 2019-2020

G. Koepfler Méthodes numériques L3 2019-2020 1

Page 2: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Table des matières

1 Introduction 1

2 Algèbre linéaire appliquée 92.1 Origine de grands systèmes linéaires . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.2 Discrétisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.3 Résolution numérique . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Algèbre linéaire et analyse matricielle . . . . . . . . . . . . . . . . . . . . . 152.2.1 Rappels. Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.2 Normes vectorielles. Normes matricielles . . . . . . . . . . . . . . . 172.2.3 Stabilité de l’inversion matricielle et conditionnement . . . . . . . . 20

2.3 Résolution de systèmes linéaires par des méthodes directes . . . . . . . . . 232.3.1 Systèmes triangulaires . . . . . . . . . . . . . . . . . . . . . . . . . 232.3.2 Factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.3 Factorisation de Cholesky . . . . . . . . . . . . . . . . . . . . . . . 26

2.4 Résolution de systèmes linéaires par des méthodes itératives . . . . . . . . 272.4.1 Généralités. Définitions . . . . . . . . . . . . . . . . . . . . . . . . . 272.4.2 Méthode de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.4.3 Méthode de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . 282.4.4 Méthode de relaxation . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.5 Détermination des valeurs propres d’une matrice . . . . . . . . . . . . . . . 302.5.1 La matrice Google c© . . . . . . . . . . . . . . . . . . . . . . . . . . 302.5.2 Définitions. Stabilité des valeurs propres. Conditionnement . . . . . 332.5.3 Méthode de la puissance . . . . . . . . . . . . . . . . . . . . . . . . 352.5.4 Algorithme QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.5.5 Méthode de Jacobi pour matrices réelles symétriques . . . . . . . . 41

G. Koepfler Méthodes numériques L3 2019-2020 2

Page 3: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Instabilité

Certains problèmes mathématiques sont instables :de petites perturbations des paramètres, dont dépend le problème,vont engendrer de grandes variations des solutions

Soit s = A[e]. Que devient s si l’on perturbe l’entrée e par δe ?

On va majorer l’erreur relative en sortie, grâce à l’erreur relative enentrée :

|s − s||s| =

|A(e + δe)−A(e)||A(e)| ≤ c(A)

|δe||e| .

où la constante c(A) est la meilleure borne possible.

On appelle c(A) le conditionnement du problème A.

G. Koepfler Méthodes numériques Introduction L3 2019-2020 4

Page 4: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Instabilité de détermination des racines d’un polynôme

On définit un polynôme d’ordre 20 comme suit (Wilkinson, 1963) :

w(x) =20∏

i=1

(x − i)

= x20−210 x19+20615 x18+· · ·+1.380·1019 x2−8.753·1018 x+20!

Soit le polynôme perturbé

w(x) = w(x)− 2−23 x19.

En faisant des calculs numériques en haute précision, on obtient lesracines pour w , représentées sur la figure suivante.

G. Koepfler Méthodes numériques Introduction L3 2019-2020 5

Page 5: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Détermination des racines d’un polynôme (suite)

-3

-2

-1

0

1

2

3

0 5 10 15 20

Les zéros de w (×) et de w () dans le plan complexe.

Une petite perturbation d’un coefficient (2−23 ≈ 10−7) transforme unpolynôme ayant 20 racines réelles en un polynôme avec 10 racinesréelles et 10 racines complexes conjuguées de partie imaginaire nonnégligeable.G. Koepfler Méthodes numériques Introduction L3 2019-2020 6

Page 6: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Erreurs d’approximation

Lorsque l’on remplace un problème continu par un problème discret oncommet une erreur d’approximation.

Exemple : la méthode des trapèzes pour le calcul numérique del’intégrale d’une fonction f sur [a,b] s’écrit∫ b

af (t)dt ≈

N−1∑i=0

(xi+1 − xi)f (xi) + f (xi+1)

2

PSfrag repla ements

f

ta = x0 b = x3x1 x2

Lorsque le pas de discrétisation tend vers zéro, la solution discrètetend vers la solution continue.G. Koepfler Méthodes numériques Introduction L3 2019-2020 7

Page 7: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Erreurs d’arrondi

Les calculs numériques sur ordinateur se font avec une précision finie.La mémoire disponible étant finie, on ne peut pas représenter lesnombres réels qui ont un développement décimal infini :on ne peut représenter π, e,

√2, . . . que par un nombre fini de

décimales.Un représentation fréquente des nombres réels est celle en virguleflottante normalisée :

f = (−1)s 0,d−1d−2 . . . d−r × be avec m ≤ e ≤ M et 0 ≤ d−i ≤ b−1,

où s est le signe, d−1d−2 · · · d−r est la mantisse ou significande, b estla base et r est le nombre de chiffres significatifs.

Comme seulement un nombre fini de réels est représenté, le résultatdes opérations arithmétiques de base (+, −, ×, /) sur ces réels n’estpas nécessairement représentable, on est obligé d’arrondir.

G. Koepfler Méthodes numériques Introduction L3 2019-2020 8

Page 8: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Nombre flottants en base b = 10Représentation avec mantisse de r = 2 chiffres décimaux et avecl’exposant e ∈ −1,0,1. D’où réels strict. positifs de

0,01 : + 1 0 - 1 à 9,90 : + 9 9 + 1

G. Koepfler Méthodes numériques Introduction L3 2019-2020 9

Page 9: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Erreurs d’arrondi et évaluation d’un polynôme

On se propose de calculer et représenter le polynôme suivant auvoisinage de 2 :

p(x) = x15 − 30x14 + 420x13 + · · ·+ 245760x − 32768

= (x − 2)15 .

Les résultats sont représentés sur la figure suivante,on a évalué p(x) pour x ∈ [1.6,2.4] et avec un pas de 10−4 .

En fonction de la méthode d’évaluation choisie, et donc du nombred’opérations en virgule flottante, on aura des erreurs d’arrondi plus oumoins importantes comme l’on peut constater sur les graphes.

G. Koepfler Méthodes numériques Introduction L3 2019-2020 10

Page 10: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Évaluation d’un polynôme (suite)

1.6 1.8 2.0 2.2 2.4

−1.5e−06

−1.0e−06

−5.0e−07

0.0e+00

5.0e−07

1.0e−06

1.5e−06

1.6 1.8 2.0 2.2 2.4

−1.5e−06

−1.0e−06

−5.0e−07

0.0e+00

5.0e−07

1.0e−06

1.5e−06

1.6 1.8 2.0 2.2 2.4

−1.5e−06

−1.0e−06

−5.0e−07

0.0e+00

5.0e−07

1.0e−06

1.5e−06

Évaluation directe du polynôme

Évaluation par la méthode de Horner

Utilisation de la factorisation du polynôme

G. Koepfler Méthodes numériques Introduction L3 2019-2020 11

Page 11: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Complexité des calculs

En général l’on veut obtenir un résultat en un temps raisonnable,il est donc important de pouvoir estimer le temps que l’algorithmeva utiliser pour résoudre le problème.

On parle de complexité d’un algorithme.

On compte par exemple le nombre d’opérations scalaires envirgule flottante nécessaires pour arriver à la solution.

En général il suffit de connaître un ordre de grandeur.Si N est la taille du problème, on va avoir des algorithmes enO(N), O(N ln N), O(N2), O(N3), O(N!),. . .

G. Koepfler Méthodes numériques Introduction L3 2019-2020 12

Page 12: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Complexité de la multiplication de matrices

Soient A, B et C des matrices rectangulaires, de dimensionsrespectives (n,m), (m,p) et (p,q) .Combien d’opérations scalaires sont nécessaires pour calculer ABC ?

Comme ABC = (AB)C = A(BC), on a deux possibilités d’évaluation.

Le calcul de (AB)C nécessite de l’ordre de O(2np(m + q)) opérations,tandis que le calcul de A(BC) se fait en O(2mq(n + p)) opérations.

Exemple : si n = p = 10 et m = q = 100, il faut 4 · 104 opérationsscalaires pour (AB)C tandis que pour A(BC) il en faut 4 · 105 .Donc dix fois plus de calculs à faire !

Conclusion : suivant la mise en place d’un calcul, le nombred’opérations nécessaires peut varier de façon importante, pourfinalement aboutir au même résultat.

G. Koepfler Méthodes numériques Introduction L3 2019-2020 13

Page 13: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Motivation du cours de méthodes numériques

Dans la suite du cours l’on va s’intéresser à la résolution desystèmes linéaires Ax = b et à la détermination des valeurspropres de la matrice A, ceci dans le cas où A une matrice carréeréelle de très grandes dimensions.

On va présenter deux problèmes pratiques qui engendrent desmatrices de grandes dimensions.

Ceci permet de motiver les méthodes stables, précises et rapidesqui sont développées et étudiées en analyse numérique et quisont nécessaires si l’on veut s’attaquer à des problèmes réels.

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 15

Page 14: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Membrane en équilibre

Une membrane fixé sur le bord du carré [0,1]2

vérifie l’équation aux dérivées partielles−∆u = f sur Ω =]0,1[2

u = 0 sur ∂Ω

fGraphe de u(x , y)

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 17

Page 15: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Membrane en équilibre : discrétisation de Ω

Le domaine de définition Ω de u est discrétisé par la grille uniforme

Gh =

(xm, yn) / xm = mh, yn = nh, 0 ≤ m,n ≤ N + 1,h =

1N + 1

543210m

5

4

3

2

1

0

h

n

4

3

2

8

7

6

91 5

10

11

14

15

1612

13

Grille G1/5 pour N = 4 et numérotation, colonne par colonne, des 16inconnues. Les cercles gris indiquent les valeurs aux bord, fixées à 0.

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 18

Page 16: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Membrane en équilibre : discrétisation du Laplacien

L’approximation du Laplacien par un schéma centré est donnée par

∆u(xm, yn) ' 1h2

(um+1,n + um−1,n + um,n+1 + um,n−1 − 4um,n

)

mm−1 m+1

n

n−1

n+1 um,n+1

um−1,n um,n um+1,n

um,n−1

On note vm,n l’approximation discrète de u. Pour h petit, on avm,n ' um,n = u(mh,nh) et, pour 1 ≤ m,n ≤ N :

1h2

(−vm+1,n − vm−1,n − vm,n+1 − vm,n−1 + 4vm,n

)= fm,n

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 19

Page 17: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Membrane en équilibre : système linéaire

On numérote vm,n et fm,n colonne par colonne : xk = vm,n et bk = fm,noù k = (N + 1− n) + N(m − 1) = Nm − n + 1, pour 1 ≤ m,n ≤ N .

On est alors amené à résoudre le système linéaire Ax = h2bà N2 inconnues où la matrice A est donnée pour N = 4, h = 0.2, par

4 −1 0 0 −1 0 0 0 0 0 0 0 0 0 0 0−1 4 −1 0 0 −1 0 0 0 0 0 0 0 0 0 0

0 −1 4 −1 0 0 −1 0 0 0 0 0 0 0 0 00 0 −1 4 0 0 0 −1 0 0 0 0 0 0 0 0

−1 0 0 0 4 −1 0 0 −1 0 0 0 0 0 0 00 −1 0 0 −1 4 −1 0 0 −1 0 0 0 0 0 00 0 −1 0 0 −1 4 −1 0 0 −1 0 0 0 0 00 0 0 −1 0 0 −1 4 0 0 0 −1 0 0 0 00 0 0 0 −1 0 0 0 4 −1 0 0 −1 0 0 00 0 0 0 0 −1 0 0 −1 4 −1 0 0 −1 0 00 0 0 0 0 0 −1 0 0 −1 4 −1 0 0 −1 00 0 0 0 0 0 0 −1 0 0 −1 4 0 0 0 −10 0 0 0 0 0 0 0 −1 0 0 0 4 −1 0 00 0 0 0 0 0 0 0 0 −1 0 0 −1 4 −1 00 0 0 0 0 0 0 0 0 0 −1 0 0 −1 4 −10 0 0 0 0 0 0 0 0 0 0 −1 0 0 −1 4

Pour h = 10−3, on a N ' 103 et A est d’ordre 106.

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 20

Page 18: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Matrice Google c©

On considère n pages Web P1,P2, . . . ,Pn.On désire donner un classement des pages par leur importance xi .

On définit l’importance de la page Pi en tenant compte de l’importancedes pages qui pointent vers Pi mais en pénalisant celles qui proposenttrop de références vers d’autres pages.

P1

P2

P3

P4

P5

P6

Exemple d’un Web à n = 6 pages.

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 22

Page 19: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Matrice Google c© (suite)

Soit Li ⊂ 1, . . . ,n \ i l’ensemble des pages qui pointent vers Pi etsj le nombre de pages qui sont référencées par la page Pj .On obtient la relation linéaire suivante pour l’importance de Pi :

xi =∑j∈Li

xj

sj,1 ≤ i ≤ n .

Si on note A la matrice dont les éléments sont

aij =

1sj

si j ∈ Li

0 si j 6∈ Li1 ≤ i , j ≤ n,

alors le vecteur x =

x1...

xn

est solution de Ax = x.

Donc λ = 1 est une valeur propre de A et x un vecteur propre associé.

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 23

Page 20: Georges Koepfler L3 2019-2020helios.mi.parisdescartes.fr/~gk/MN_S6/CM1.pdf · G. Koepfler Méthodes numériques Introduction L3 2019-2020 8 Nombre flottants en base b = 10 Représentation

Matrice Google c© (suite)

L’exemple à n = 6 pages Web donne A =

0 1

2 0 0 0 012 0 1 1

214

12

0 0 0 12

14 0

12 0 0 0 1

4 00 0 0 0 0 1

20 1

2 0 0 14 0

.

On vérifie que λ = 1 est valeur propre et qu’un vecteur propre associé

est de la forme x = c

285613181632

, c ∈ R∗.

On déduit l’ordre d’importance (décroissante) : P2,P6,P1,P4,P5,P3.

Pour des applications tailles réelles il faut supposer n = O(109).

G. Koepfler Méthodes numériques De TRÈS grandes matrices L3 2019-2020 24