mat2412. analyse numérique i

106
MAT2412. Analyse Numérique I. Anne Bourlioux et Robert G. Owens 3 septembre 2019 1 Analyse des erreurs 1.1 Introduction L’analyse numérique se distingue de beaucoup d’autres domaines de mathéma- tiques puisque, pour un problème donné, plusieurs méthodes approximatives peu- vent être proposées pour sa résolution. La précision des résultats obtenus avec ces méthodes ou algorithmes différents peuvent varier fortement et est en fonc- tion des approximations utilisées. Ce qui nous intéressera principalement dans ce cours d’analyse numérique, sera l’utilisation de méthodes pour la résolution de problèmes appliqués sur l’ordinateur ainsi que l’estimation et le contrôle des erreurs provenant de ces méthodes numériques. Il faut aussi comparer les coûts de ces mêmes méthodes, bien sûr. C’est ainsi qu’on sera en mesure de distinguer les meilleures. Les méthodes ainsi introduites et analysées inclueront celles qui seront utiles pour 1. trouver les racines d’équations non-linéaires, (semaines 3 et 4) 2. construire des polynômes d’interpolation, (semaine 5) 3. obtenir les approximations aux dérivées et intégrales de fonctions, (semaines 6 à 8) 4. résoudre les systèmes d’équations algébriques, soit directement, soit d’une manière itérative. (semaines 9 à 13). Les sources d’erreurs rencontrées en analyse numérique peuvent être classifiées comme suit: 1

Upload: others

Post on 24-Oct-2021

15 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: MAT2412. Analyse Numérique I

MAT2412. Analyse Numérique I.

Anne Bourlioux et Robert G. Owens

3 septembre 2019

1 Analyse des erreurs

1.1 Introduction

L’analyse numérique se distingue de beaucoup d’autres domaines de mathéma-tiques puisque, pour un problème donné, plusieurs méthodes approximatives peu-vent être proposées pour sa résolution. La précision des résultats obtenus avecces méthodes ou algorithmes différents peuvent varier fortement et est en fonc-tion des approximations utilisées. Ce qui nous intéressera principalement dansce cours d’analyse numérique, sera l’utilisation de méthodes pour la résolutionde problèmes appliqués sur l’ordinateur ainsi que l’estimation et le contrôle deserreurs provenant de ces méthodes numériques. Il faut aussi comparer les coûtsde ces mêmes méthodes, bien sûr. C’est ainsi qu’on sera en mesure de distinguerles meilleures. Les méthodes ainsi introduites et analysées inclueront celles quiseront utiles pour

1. trouver les racines d’équations non-linéaires, (semaines 3 et 4)

2. construire des polynômes d’interpolation, (semaine 5)

3. obtenir les approximations aux dérivées et intégrales de fonctions, (semaines6 à 8)

4. résoudre les systèmes d’équations algébriques, soit directement, soit d’unemanière itérative. (semaines 9 à 13).

Les sources d’erreurs rencontrées en analyse numérique peuvent être classifiéescomme suit:

1

Page 2: MAT2412. Analyse Numérique I

• Erreurs de modélisation (em).

Afin d’être traité numériquement, un problème mathématique comporterasouvent un certain nombre de simplifications par rapport à la réalité. Le butde l’analyse numérique est de développer des méthodes qui préservent laprécision du modèle mathématique. Si le modèle de départ est inadéquat, sasolution le sera aussi. Par contre, s’il est trop compliqué, cela rendra son im-plémentation bien plus difficile et coûteuse sans nécessairement améliorerla qualité de la solution.

• Erreurs d’arrondi (ea).

Ces erreurs proviennent du fait que les calculs se font toujours sur une suitelimitée de chiffres. Ces erreurs sont l’objet principal de la première partiede ce cours.

• Erreurs de troncature/discrétisation (et).

Il s’agit des erreurs commises lorsqu’un processus de recherche d’une limiteest arrêté avant l’obtention de cette limite. L’étude de ce type d’erreur est lethème central de l’analyse numérique. L’exemple le plus courant est celuid’une série infinie de Taylor dont on ne retient que quelques termes.exemple. Soit f une fonction dérivable en un point x. La définition de ladérivée f 0(x) est

f 0(x) = limh!0

f (x+h)� f (x)h

. (1)

Une approximation numérique à cette dérivée peut être calculée en utilisant

f 0(x)⇡ f (x+h)� f (x)h

, (2)

pour un certain choix de h, petit mais non-nul. Cette approximation n’estexacte que pour f une fonction linéaire de x. En fait, par le théorème deTaylor, en supposant que f 0 et f 00 sont définies sur un intervalle [x,x+h],

f (x+h) = f (x)+h f 0(x)+h2

2f 00(q), pour un certain q 2 (x,x+h).

Donc, ✓f (x+h)� f (x)

h

◆� f 0(x) =

h2

f 00(q).

2

Page 3: MAT2412. Analyse Numérique I

• Erreurs de calcul (ec = ea + et).

• Erreurs sur les données.

Si les données proviennent d’une expérience physique, elles sont forcémententachées d’erreurs. Les erreurs de ce type ont des effets très semblablesaux erreurs d’arrondi, bien qu’elles soient, d’habitude, bien plus grandesque ces dernières.

• Erreurs humaines

Les erreurs humaines les plus fréquentes à notre époque sont les erreurs deprogrammation (les bogues).

1.1.1 Quelques exemples

1. Trouver le zéro d’une fonction.

Existence: Par le théorème des valeurs intermédiaires avec K = 0, on voitque si une fonction f 2C[a,b] et que f (a) f (b)< 0, alors il existe au moinsun zéro de f dans l’intervalle (a,b).

exemple. On essaie de trouver le zéro x⇤ (= loge2⇡ 0,6931) de la fonctionf (x) = exp(x)�2. On utilisera 20 itérations de la méthode de la bissection(avec a = 0 et b = 1) et de la méthode de Newton (avec une valeur initialex0 = 0,5).

2. Intégration numérique

On voudrait évaluer numériquement l’intégrale

I =Z b

af (x) dx

exemple. On prendra a= 0, b= 1 et f (x)= p sinpx et on évalue I numérique-ment avec deux méthodes différentes: la méthode des trapèzes composée etles quadratures de Gauss. La valeur analytique vaut 2.

3. Algèbre linéaire

Soit A une matrice (N⇥N) inversible et définissons le vecteur (N⇥1) b=Ax, où x est un vecteur (N⇥ 1) connu. En résolvant ensuite Aex = b, ons’attend à ce que ex= x.

3

Page 4: MAT2412. Analyse Numérique I

exemple 1: A une matrice aléatoire N⇥N, x= (1, . . . ,1)T ,

exemple 2: A une matrice de Hilbert N ⇥N, (ai j = 1/(i+ j� 1)), x =

(1, . . . ,1)T . (Une matrice mal conditionnée).

4

Page 5: MAT2412. Analyse Numérique I

1.2 Virgule flottante et erreurs d’arrondi

Un nombre réel x représenté en binaire (base 2, chiffres 0 et 1) peut être transforméfacilement en décimale. En général, si x est représenté sous la forme

x = (anan�1 . . .a1a0,a�1 . . .a�m)2, n,m 2 Z,cela veut dire que

x= an⇥2n+an�1⇥2n�1+ . . .+a1⇥2+a0⇥20+a�1⇥2�1+ . . .+a�mexemple.⇥2�m.

exemple. x = (11,101)2 = 1⇥2+1⇥1+1⇥ 12 +0⇥ 1

4 +1⇥ 18 = (3,625)10

Pour transformer un nombre réel x en décimale dans sa répresentation binaire,il nous faut trouver les ai (uniques) tels que x = (anan�1 . . .a1a0,a�1 . . .a�m)2,(an 6= 0,a�m 6= 0) pour n et m, à déterminer. n est ici l’entier unique tel que2n+1 > x� 2n.

exemple. x = (1005)10 = 1⇥29+1⇥28+1⇥27+1⇥26+1⇥25+0⇥24+1⇥23 +1⇥22 +0⇥21 +1⇥20 = (1111101101)2

exemple. x = (0,8125)10 = (0,1101)2.

Pour généraliser, un nombre réel x peut être représenté d’une façon unique enbase b (b � 2) comme

(anan�1 . . .a1a0,a�1 . . .a�m)b ,

x =n

Âi=�m

ai⇥b i,

et 0 ai b �1.La structure interne de la plupart des ordinateurs s’appuie sur le système binaire.

Tout nombre réel peut être représenté exactement en système binaire, mais ça peutnécessiter un nombre infini de chiffres.

exemple. 13 = (0,333333 . . .)10.

Nécessairement, la représentation d’un nombre sur un ordinateur est faite avecun nombre fini de chiffres. Ceci veut dire que tous les nombres qui peuvent êtrereprésentés sur un ordinateur sont rationnels et, en général, on introduit ainsi uneerreur de représentation. Puisque le nombre de chiffres est limité il existe aussiun minimum et un maximum sur les nombres positifs qui peuvent être représentéssur un ordinateur. En MATLAB, 64 “bits” de 0 ou 1 sont utilisés.

5

Page 6: MAT2412. Analyse Numérique I

1.2.1 Représentation en virgule flottante

En suivant la convention IEEE, un nombre réel x est représenté en double précisionen binaire avec 64 bits comme suit:

x = (�1)s 2e�1023(1+ f ),

= (�1)d12(d2...d12)2�1023⇥ (1+(0,d13 . . .d64)2), (3)

où s = d1 est le bit du signe du nombre, e = (d2 . . .d12)2 est l’exposant et finale-ment f = (0,d13 . . .d64)2 est la mantisse. On dit que la forme (3) est la représen-tation en notation flottante, en point flottant ou en virgule flottante.

On voit que lorsque s = 0 le signe est positif et que si s = 1 le nombrereprésenté est négatif.

L’exposant e est un nombre binaire à 11 chiffres. Puisque les exposants (0 . . .0)2 =0 et (1 . . .1)2 = 2047 sont réservés, la valeur minimale de e est évidemmente = (0 . . .01)2 = 1. La valeur maximale est e = (1 . . .10)2 = 210 +29 + . . .+2 =211 � 2 = 2046. On soustrait 1023 de e dans la représentation double préci-sion IEEE pour que les nombres ayant un ordre de grandeur petit puissent êtrereprésentés d’une manière adéquate.

La mantisse f = d13⇥2�1+ . . .+d64⇥2�52. Suivant la norme IEEE le 1 avantla virgule de la mantisse est toujours présent pour normaliser la représentation dex. Le 1 n’est pas gardé en mémoire. La valeur minimale de la mantisse +1 est(1,0 . . .0)2 = 1. Sa valeur maximale est (1,1 . . .1)2 = 1⇥20+1⇥2�1+ . . .+1⇥2�52 = 2�2�52 ⇡ 2�2,22⇥10�16

Si l’on n’imposait pas que le chiffre devant la virgule soit 1 plusieurs représen-tations seraient possibles pour le même nombre. Par exemple, en système déci-mal, si on n’insistait pas qu’un nombre x ait un chiffre non-nul devant la vir-gule on pourrait écrire le même nombre x = 0,0534 en virgule flottante comme0,534⇥10�1 ou 5,34⇥10�2 ou ...

La forme normalisée de la représentation de x en système décimale est en fait(voir BF p20)

x =±0,d1 . . .dk⇥10n,

où 1 d1 9, 0 di 9 (i = 2,3, . . .).Donc, le plus grand nombre réel représentable en machine (appelé realmax en

MATLAB) est

realmax = 22046�1023⇥ (2�2�52)⇡ 1,7977⇥10308.

Le plus petit nombre positif (appelé realmin en MATLAB) est

realmin = 21�1023⇥1⇡ 2,2251⇥10�308

6

Page 7: MAT2412. Analyse Numérique I

exemple. realminexemple. realmax

Les nombres hors de l’intervalle [�realmax,realmax] sont soit approximés par±realmax soit appellés ±Inf. Pour représenter un nombre entre �realmin etrealmin MATLAB utilise zéro (nombre réservé avec exposant 0 et mantisse 0) etles nombres “non-normalisés” ou “dénormalisés”. Le plus petit nombre “non-normalisé” est 2�1022⇥2�52 = 2�1074.

Si on essaie de diviser 0 par 0 MATLAB retourne NaN.

1.2.2 La troncature et l’arrondi

En général, un nombre n’a pas de représentation binaire finie, (ou bien une représen-tation qui entre dans les 64 bits de MATLAB). Dans ce cas il faut recourir soit à latroncature, soit à l’arrondi. Etant donné un nombre réel

x =±(1,b1b2 . . .b52b53b54 . . .)2E ,

la troncature avec n chiffres après la virgule dans la mantisse est faite en coupantles bits bn+1,bn+2, . . .. Ceci produit la forme en virgule flottante

f l(x) =±(1,b1b2 . . .bn�1bn)2E .

L’autre possibilité est l’arrondi. En général, on ajoute 1 au (n+ 1)ième bit et ontronque le résultat.

exemple. (n = 52)

Soit le nombre positif

x = (1,b1b2 . . .b52b53b54 . . .)⇥2E .

Le plus grand nombre x� représentable en machine et inférieur ou égal à x estobtenu en tronquant après le 52e bit:

x� = (1,b1b2 . . .b52)⇥2E x.

x� est donc le résultat d’arrondir x au cas où b53 = 0.

Le plus petit nombre x+ � x et représentable en machine est

x+ = (1,b1b2 . . .b52 +1)⇥2E � x,

(avec égalité quand b53 = b54 = . . .1). x+ est donc le résultat d’arrondir x au casoù b53 = 1.

Considérons maintenant les deux cas b53 = 0 et b53 = 1.

7

Page 8: MAT2412. Analyse Numérique I

b53 = 0

x� x� = (0,0 . . .00b54b55 . . .)⇥2E 2E�53,

x+� x = (0,0 . . .01)⇥2E � (0,0 . . .00b54b55 . . .)⇥2E ,

� 2E�52�2E�53 = 2E�52(1�21) = 2E�53.

C.-à-d.,x+� x� x� x�.

b53 = 1

x� x� = (0,0 . . .01b54b55 . . .)⇥2E � 2E�53,

x+� x = (0,0 . . .01)⇥2E � (0,0 . . .01b54b55 . . .)⇥2E ,

2E�52�2E�53 = 2E�53.

C.-à-d.,x+� x x� x�.

Donc, pour arrondir il faut choisir entre x� et x+ celui qui est le plus proche à x.Lorsque

x+� x = x� x�,

(ce qui arrive lorsque b53 = 1 et bi = 0 8i � 54 ou bien (ce qui est équivalent)b53 = 0 et bi = 1 8i� 54), on choisit le candidat dont le dernier bit est égal à zéro(IEEE).

En base 10, les mêmes idées s’appliquent sauf que pour arrondir, on ajoute 5 au(n+1)ième chiffre de la mantisse avant de tronquer.

exemple (forme décimale): p = 3,14159265 . . ..

Tronquer avec 4 chiffres après la virgule: f l(p) = 3,1415; arrondir avec 4chiffres après la virgule: f l(p) = 3,1416.

1.2.3 Les erreurs absolues et relatives

Définitions Soit x un nombre et x⇤ une approximation de ce nombre. Alors,l’erreur est définie par x� x⇤. L’erreur absolue est définie par Dx = |x� x⇤| etl’erreur relative absolue par Dx/|x|= |x� x⇤|/|x|. (x 6= 0).

8

Page 9: MAT2412. Analyse Numérique I

Définition. (Chiffres significatifs) Soit t le plus grand entier non-négatif tel quel’erreur relative vérifie

Dx|x| 5⇥10�t ,

où Dx = |x� x⇤|, comme avant. Alors, x⇤ approxime x à t chiffres significatifs.(Par exemple, x = 0,1 et x⇤ = 0,10005 ) Dx = 5⇥ 10�5 ) t = 4 (puisque

Dx/|x|= 5⇥10�4)).

Théorème Si la mantisse de la représentation en virgule flottante normalisée esten base b 2N et contient n chiffres après la virgule (c.-à-d. f l(x)=±(b0,b1 . . .bn)b⇥b E), alors tout nombre compris dans la capacité de la machine peut être représentéavec une erreur relative qui n’excède pas b�n si l’on tronque ou b�n/2 si l’on ar-rondit.

Démonstration

Soit x un nombre quelconque ayant une représentation en base b de la forme

x =±(b0,b1b2 . . .bnbn+1bn+2 . . .)b ⇥b E ,

où 1 b0 b �1 et 0 bi b �1(i = 1,2,3, . . .). L’erreur absolue commise partroncature est donc

Dx = (0,0000 . . .bn+1bn+2 . . .)b ⇥b E ,

= (0,bn+1bn+2 . . .)b ⇥b E�n,

(0,(b �1)(b �1) . . .)b ⇥b E�n.

L’erreur relative satisfait donc à

Dx|x|

(0,(b �1)(b �1) . . .)b ⇥b E�n

(b0,b1b2 . . .bnbn+1bn+2 . . .)b ⇥b E ,

(0,(b �1)(b �1) . . .)b ⇥b E�n

(1,00000 . . .)b ⇥b E ,

=(1,00000 . . .)b ⇥b�n

(1,00000 . . .)b= b�n.

D’une manière similaire, une borne égale à b�n/2 existe pour l’erreur relativelorsqu’on arrondit avec n chiffres après la virgule (voir l’exercice 24 sur la page31 de BF dans le cas b = 10). On note que l’exposant n’apparaît nulle part et queles bornes ne dépendent pas de l’ordre de grandeur de x.

9

Page 10: MAT2412. Analyse Numérique I

Définition La précision machine est la plus grande erreur relative que l’on puissecommettre en représentant un nombre réel sur ordinateur en utilisant la troncature.La précision machine est donc bornée par b�n.

exemple. Définition de e par MATLAB

En MATLAB e (= eps) est définie comme la distance de 1.0 au prochain nombreréel plus grand que 1 et représentable sur la machine. Puisque 1 est représentédans la convention IEEE avec un exposant e = (01 . . .1)2 = 1023 et une mantissef = 0 le prochain nombre réel plus grand que 1 qui peut être représenté avec 64bits est

x⇤ = (�1)0⇥20⇥ (1,0 . . .01)2,

= 1+2�52. (4)

Donc e = 2�52 ⇡ 2,22⇥10�16 On peut prendre e comme une approximation dela précision machine (en fait c’est une borne, comme remarquée ci-dessus).

exemple. (séparation des nombres réels en machine)

Question: Quel est le plus grand nombre x= 1�d < 1 représentable en machine(utilisant la forme normalisée IEEE)?

Or, l’exposant e et la mantisse f de 1 et de 1�d sont, respectivement,

1 : e = (011 . . .1)2 = 1023, f = (0,00 . . .0)2 = 0,

1�d : e = (011 . . .10)2 = 1022, f = (0,11 . . .1)2 = 2�1 +2�2 + . . .+2�52

= 1�2�52.

Alors,

1�d = 21022�1023⇥ (1+1�2�52) = 2�1(2�2�52) = 1�2�53,

) d = 2�53

En général, si le nombre réel positif x = 2E(1+ f ) est représentable en machine,le prochain nombre plus grand que x et représentable en machine est

x+2E ⇥2�52 = x+2E ⇥ e = x✓

1+e

1+ f

◆.

10

Page 11: MAT2412. Analyse Numérique I

Donc, par exemple, le prochain nombre réel plus grand que 1�d et représentableen machine est

(1�d )✓

1+2�52

2�2�52

◆= (1�2�53)

✓1+

2�52

2�2�52

◆= 1,

comme attendu.On déduit que si x est un nombre réel positif et représentable exactement en

machine et tel que 2E x < 2E+1, alors le plus petit nombre x⇤ représentable enmachine et plus grand que x est donné par

x⇤ = x+2Ee.

Ce résultat veut dire que les nombres représentables en machine entre 1 et 2 sontséparés de leurs voisins dans la même intervalle par une distance de e , ceux entre2 et 4 par une distance de 2e etc.

exemple. déterminer e expérimentalement.

1.3 Arithmétique en virgule flottante

La convention IEEE impose qu’on utilise l’arrondi dans la représentation binairedes nombres. Quand même, pour simplifier, on travaillera à partir de ce point envirgule flottante en base 10 et on notera par f l(x) la représentation d’un nombre xavec l’arrondi en n chiffres après la virgule.

On notera les operations de l’arithmétique en virgule flottante comme suit:

x� y = f l( f l(x)+ f l(y)), x y = f l( f l(x)� f l(y)),x⌦ y = f l( f l(x)⇥ f l(y)), x� y = f l( f l(x)/ f l(y)).

exemple. n = 3

x = 1,235,y = 8,764⇥10�2,

x+ y = 1,32264,

x� y = f l(0,124⇥101 +0,876⇥10�1) = f l(0,13276⇥101) = 0,133⇥101 = 1,33.

Notez que l’arithmétique en virgule flottante n’a pas nécessairement les mêmespropriétés qu’en arithmétique exacte et que l’ordre des opérations est important.

11

Page 12: MAT2412. Analyse Numérique I

Par exemple, � n’est pas associatif en général ((x� y)� z 6= x� (y� z)) et ladistributivité de multiplication sur l’addition n’est pas toujours respectée en arith-métique flottante. En MATLAB, par exemple,

�1⇥10�16 +(1⇥10�16 +1) 6= (�1⇥10�16 +1⇥10�16)+1.

exemple 1.17 de Fortin. n = 3

122⇥ (333+695) = (122⇥333)+(122⇥695) = 125416,

122⌦ (333�695) = f l( f l(0,122⇥103)⇥ f l( f l(0,333⇥103)+ f l(0,695⇥103)))

= f l(0,122⇥103⇥0,103⇥104),

= f l(0,12566⇥106) = 0,126⇥106.

(122⌦333)� (122⌦695) = f l( f l( f l(0,122⇥103)⇥ f l(0,333⇥103))

+ f l( f l(0,122⇥103)⇥ f l(0,695⇥103))),

= f l( f l(0,40626⇥105)+ f l(0,84790⇥105))

= f l(0,125400⇥106) = 0,125⇥106.

1.3.1 Opérations risquées

En général, la précision (c.à.d. erreur relative) sur le résultat d’une opération arith-métique en virgule flottante est du même ordre que la précision sur les données.Cependant, il y a quelques opérations à éviter.

1. La soustraction de 2 nombres proches (l’élimination de chiffres significat-ifs par soustraction). Cette opération peut donner une petite erreur absolue,mais une grande erreur relative. Par exemple, (ex 5 de BF, système déci-male):

p = 0,54617,q = 0,54601 =) r = p�q = 0,00016.

Si on arrondit avec 4 chiffres après la virgule, r⇤ = p q = f l( f l(p)�f l(q)) = f l(0,5462�0,5460) = f l(0,0002) = 0,0002. Alors

|r� r⇤||r| =

|0,00016�0,0002||0,00016| = 0,25,

c’est à dire, une erreur relative de 25%!

12

Page 13: MAT2412. Analyse Numérique I

2. Additionner deux nombres dont les ordres de grandeur sont très différents.On arrondit avec 4 chiffres après la virgule en système décimale normalisé(l’exemple 1.18 de Fortin)

0,4000⇥104�0,1000⇥10�2

= f l(0,4000⇥104 +0,0000001⇥104)

= f l(0,4000001⇥104)

= 0,4000⇥104.

On voit ici que le plus petit nombre disparait devant le plus grand.

1.3.2 Propagation d’erreurs avec les opérations élémentaires

Pour voir ce qu’on peut dire de la précision des résultats obtenus lorsqu’on sous-trait deux nombres approximatifs on commence avec x = x⇤+Dx,y = y⇤+Dy oùx⇤ et y⇤ sont des approximations, respectivement, aux nombres exacts x et y. Dxet Dy sont les erreurs présentes dans ces approximations. On voit que l’erreurabsolue en soustrayant x⇤ et y⇤ est ea = |(x� y)� (x⇤ � y⇤)| = |Dx�Dy| et quel’erreur relative absolue correspondante est

er =

����(x� y)� (x⇤ � y⇤)

(x� y)

����=|Dx�Dy||x� y|

|Dx|+ |Dy||x� y|

Donc, l’erreur rélative peut devenir grande si x ⇡ y. D’une manière similaire onpeut calculer les erreurs liées aux autres opérations élémentaires:

somme : ea = |Dx+Dy| |Dx|+ |Dy|, er |Dx|+ |Dy||x+ y| ,

et, en supposant que |Dx|⌧ 1, |Dy|⌧ 1

produit : ea = |xy� (x�Dx)(y�Dy)|⇡ |Dxy+Dyx| |y||Dx|+ |x||Dy|,

er .|Dx||x| +

|Dy||y| ,

quotient : ea =

����xy�✓

x�Dxy�Dy

◆����=����xy� (x�Dx)

y(1�Dy/y)

����⇡����xy�✓

x�Dxy

◆✓1+

Dyy

◆����

⇡����xy� 1

y

x+ x

Dyy�Dx

�����|Dx||y| +

|xDy||y|2 =

|y||Dx|+ |x||Dy||y|2

er .|Dx||x| +

|Dy||y| .

13

Page 14: MAT2412. Analyse Numérique I

exemple. Calcul des racines d’une équation quadratique ax2 + bx+ c = 0 avecb2� 4ac. Considérer, par exemple, l’équation

x2 + x+ c = 0.

Cette équation a des racines

x+ =�1+

p1�4c

2, x� =

�1�p

1�4c2

,

et le produit des racines x�x+ = c. Lorsque c est très petit (|c|⌧ 1), on voit qu’unecancellation catastrophique peut arriver dans le calcul de x+ due à l’ajout de �1etp

1�4c dans le numérateur.

exemple 1. (première expérience MATLAB)

Pour eviter ce problème on peut reformuler le calcul de x+ en multipliant x+ par✓�1�

p1�4c

�1�p

1�4c= 1◆

pour obtenir

x+ =�1+

p1�4c

2

✓�1�

p1�4c

�1�p

1�4c

◆=

2c�1�

p1�4c

exemple 2. (deuxième expérience MATLAB)

1.4 Le théorème de Taylor et les erreurs de troncature

Supposer que f 0, . . . , f (n+1) soient définies sur [a,x] et que Rn(x) est défini par

f (x) = Pn(x)+Rn(x),

où Pn(x) = Âni=0

f (i)(a)i! (x� a)i. Alors il existe z (x) 2 (a,x) tel qu’on peut écrire

Rn(x) (l’erreur commise) sous la forme

Rn(x) =f (n+1)(z (x))(n+1)!

(x�a)n+1

14

Page 15: MAT2412. Analyse Numérique I

On commet une erreur de troncature chaque fois que l’on utilise le développementde Taylor et que l’on néglige le terme d’erreur Rn(x).

exemple. f (x) = cosx. On prend n = 2 dans le développement de Taylor auvoisinage de 0:

cosx = P2(x)+R2(x) = 1� x2

2!+

16

sin(z (x))x3

=) cos(0,01) = P2(0,01)+R2(0,01) = 0,99995+16⇥10�6⇥ sin(z (0,01))

=) |cos(0,01)�0,99995| 16⇥10�6,

car |sinz | 1.

Définition. Une fonction f (h) est un grand ordre de hn au voisinage de 0 (notéf (h) = O(hn)) s’il existe e > 0 et une constante positive C telle que | f (h)|<C|hn|pour tout {h : |h|< e}.

Définition. Une approximation dont le terme d’erreur est un grand ordre de hn estdite d’ordre n

exemple 1. Pour x petit on utilise souvent l’approximation sinx⇡ x. On voit quepuisque sinx = x� 1

6 cos(z (x))x3, x est une approximation d’ordre 3 à sinx.

exemple 2. Dans l’exemple ci-dessus on pourrait être tenté d’écrire cosx�P2(x) = O(x3) et de conclure que P2 n’est qu’une approximation d’ordre 3. Maispuisque sinz (x)�! 0 lorsque x�! 0 il faut aller plus loin. En fait

cosx = 1� x2

2!+

x4

4!� 1

5!sinz (x)x5,

pour quelque z (x) 2 (0,x). Donc P2(x) est une approximation d’ordre 4.

15

Page 16: MAT2412. Analyse Numérique I

2 Solutions d’équations non-linéaires d’une seule vari-

able

2.1 Méthode de la bissection (ou méthode de dichotomie)

Étant donnée une fonction f , on se demande si l’on peut trouver une racine x = x⇤

à l’équation f (x) = 0. La racine est appelée un zéro dans ce contexte.

exemple. f (x) = x3�2sinpx. Par le théorème des valeurs intermédiaires, puisquef (1/2)< 0 et f (2)> 0, il existe au moins un zéro 2 (1/2,2).

La méthode de la bissection repose sur une idée très simple: supposons que pourune fonction f continue sur [a,b] avec f (a) f (b)< 0, on choisisse x1 = (a+b)/2.Par le théorème des valeurs intermédiaires, si

f (a) f (x1)< 0,

alors il existe au moins un zéro de f dans (a,x1) et on peut continuer la recherched’un zéro en remplaçant b avec x1 et en répétant le processus avec x2 = (a+x1)/2.Sinon, il existe au moins un zéro de f dans [x1,b). On continue jusqu’à ce que ladifférence absolue entre deux zéros approximatifs xk et xk+1 soit inférieure à unetolérance voulue.

exemple MATLAB f (x) = x3�2sinpx avec la méthode de la bissection et de New-ton.

2.1.1 Erreur avec la méthode de la bissection

Définitions

1. (Taux de convergence)

Supposons que {xk}•k=0 soit une suite qui converge vers un nombre x⇤ et

{ak}•k=0 une autre suite qui converge vers 0. S’il existe une constante posi-

tive l et un entier N > 0 tels que

|x⇤ � xk|< l |ak|, pour k > N

alors le taux de convergence est O(ak) (“grand ordre de ak”) et on écritxk = x⇤+O(ak).

16

Page 17: MAT2412. Analyse Numérique I

2. (Ordre de convergence)

Supposons que {xk}•k=0 soit une suite qui converge vers un nombre x⇤, avec

xk 6= x⇤, 8k. S’il existe des constantes positives l et a telles que

limk!•

|x⇤ � xk+1||x⇤ � xk|a

= l ,

alors l’ordre de convergence est a et la constante d’erreur asymptotique estl .

Soit [a,b] l’intervalle d’encadrement pour un zéro x⇤ de f (x) 2 C[a,b] avecf (a) f (b)< 0. On prend x1 = (a+b)/2. Alors

|x⇤ � x1|<(b�a)

2, après 1 itération,

|x⇤ � xk|<(b�a)

2k , après k itérations,

et le taux de convergence de {xk} vers x⇤ est O(1/2k).On note la borne (b�a)/2k sur l’erreur absolue |x⇤ � xk| par eek et on écrit que

eek+1eek

=(b�a)2k+1

2k

(b�a)=

12

Donc, on voit que si la méthode de la bissection converge, elle le fait approxima-tivement linéairement.

2.2 Méthodes des points fixes

Définition Un point fixe d’une fonction g est une solution x⇤ de l’équation

x⇤ = g(x⇤).

On peut obtenir un zéro de la fonction f avec une méthode des points fixes enréécrivant le problème original sous une autre forme:

x = g(x),

pour un choix approprié (parmi le nombre infini!) de la fonction g. Les itérationsdes méthodes des points fixes sont comme suit:

xk+1 = g(xk),8k � 0

17

Page 18: MAT2412. Analyse Numérique I

et la figure ci-dessous montre l’interprétation graphique:

exemple. Trouver un zéro de f (x) = x3 +4x2�10.

f (x) est un polynôme en x) f 2C•(R) et puisque f (0) =�10 et f (2) = 8+16�10 = 14, on a, par le théorème des valeurs intermédiaires, qu’il existe un zérodans (0,2). De plus, ce zéro est l’unique zéro positif puisque f 0(x) = 3x2+4x > 0pour x > 0 (s’il y avait un autre, f 0(x) serait zéro quelque part entre les deux zéros,par le théorème de Rolle). Quelques exemples d’une fonction g telle qu’un zérode f est un point fixe de g sont:

• g1(x) = x� f (x)/60. Plus généralement, g(x) = x+ k f (x) avec k 6= 0,

• g2(x) = 12

p10� x3,

• g3(x) = x� f (x)f 0(x) ,

• g4(x) = 10x2+4x .

(4 graphiques à démontrer. Démonstrations MATLAB)

Du côté pratique, pour extraire approximativement l’ordre de convergence d’uneméthode itérative

i) on identifie les itérations k telles que

|ek+1|⇡ l |ek|a , k ni trop petit, ni trop grand,

ii) on passe aux logarithmes:

log |ek+1|⇡ logl +a log |ek|.

18

Page 19: MAT2412. Analyse Numérique I

(Démonstration MATLAB)

Théorème (Point fixe: Existence, unicité et convergence)

1. Si g 2C[a,b] et g(x) 2 [a,b], 8x 2 [a,b], alors g a un point fixe dans [a,b].(existence, condition suffisante)

2. Si, de plus, la dérivée g0(x) existe sur (a,b) et s’il existe une constante0 < k < 1 telle que |g0(x)| k sur (a,b) alors

• le point fixe dans [a,b] est unique,

• les itérations xk+1 = g(xk) convergent vers le point fixe x⇤ 2 [a,b] 8x0 2[a,b].

Démonstration

1. Soit la fonction h(x) = g(x)� x. Alors, h 2 C[a,b]. On voit que h(a) =g(a)� a � 0 et h(b) = g(b)� b 0 car 8x 2 [a,b],g(x) 2 [a,b]. Par lethéorème des valeurs intermédiares, 9x⇤ 2 [a,b] tel que h(x⇤) = 0 = g(x⇤)�x⇤ ) g(x⇤) = x⇤, un point fixe de g.

2. Supposons qu’en fait p et q soient tous les deux des points fixes dans [a,b].Si p 6= q le théorème des accroissements finis dit qu’un nombre x existeentre p et q (et donc dans [a,b]) avec

g(p)�g(q)p�q

= g0(x ).

Alors,

|p�q|= |g(p)�g(q)|= |g0(x )||p�q| k|p�q|< |p�q|,

ce qui est une contradiction. Donc, p = q.

Les itérations xk+1 = g(xk) sont bien définies 8k parce que g(xk) 2 [a,b] 8ksi x0 2 [a,b]. Pour chaque k, il existe xk�1 2 (xk�1,x⇤) tel que

|xk� x⇤|= |g(xk�1)�g(x⇤)|= |g0(xk�1)||xk�1� x⇤|,) |xk� x⇤| k|xk�1� x⇤| k2|xk�2� x⇤| . . . kk|x0� x⇤|,

) limk!•

|xk� x⇤|= limk!•

kk|x0� x⇤|= 0, car k < 1.

19

Page 20: MAT2412. Analyse Numérique I

Corollaire Sous les mêmes hypothèses sur g,

1. |xk� x⇤| kk max{x0�a,b� x0}

2. |xk� x⇤| kk

1�k |x1� x0| 8k � 1.

Démonstration

1. Facile!

2. Par induction ou voir BF corollaire 2.5 (page 62)

Remarque On voit que si g0(x⇤) 6= 0

limk!•

|xk� x⇤||xk�1� x⇤| = lim

k!•|g0(xk�1)|= |g0(x⇤)|.

Donc, la constante d’erreur asymptotique est |g0(x⇤)| et la convergence est linéaire.

Application à g1(x).

On commence en constatant que g1(x) 2C•(R) et que

g1(x) = x� x3 +4x2�1060

) g01(x) = 1� 3x2

60� 8x

60.

Il nous faut maintenant trouver un intervalle [a,b] tel que g1(x) 2 [a,b] 8x 2 [a,b].Si on prend a = 1 et b = 2 on voit que

g1(1)= 1� 1+4�1060

= 1+5602 [1,2], g1(2)= 2� 8+16�10

60= 2� 14

602 [1,2].

On prend note que g01(x)> 0 8x 2 [1,2] et que

g001(x) =�x

10� 8

60< 0 sur [1,2].

Donc |g01(x)| |g01(1)| = 49/60 8x 2 [1,2]. On prend k = |g01(1)| = 49/60 < 1pour obtenir le résultat (voir Corollaire 1.)

|xk� x⇤|✓

4960

◆kmax(x0�1,2� x0).

exemple MATLAB g1(x)

20

Page 21: MAT2412. Analyse Numérique I

2.3 Méthode de Newton

Algorithme de la méthode de Newton pour trouver x⇤ tel que f (x⇤) = 0.

1. essai initial x0,

2. pour i = 1, . . . ,n jusqu’à convergence ou aveux d’échec:

xk+1 = g(xk) = xk�f (xk)

f 0(xk).

• interprétation géométrique Sur la figure, la droite tangente à la courbe en(x0, f (x0)) a une pente f 0(x0) et a pour équation

f (x0)� yx0� x

= f 0(x0)) y = f (x0)+ f 0(x0)(x� x0).

Cette droite coupe l’axe des x en y = 0 et en

x1 = x0�f (x0)

f 0(x0).

• présentation par Taylor Le développement de Taylor pour f (xk+1) autourde xk:

f (xk+1) = f (xk)+ f 0(xk)(xk+1� xk)+ . . .

En cherchant xk+1 comme correction à xk telle que f (xk+1) = 0 et en tron-quant la série de Taylor après les termes linéaires on trouve

0⇡ f (xk)+ f 0(xk)(xk+1� xk),

) xk+1 = xk�f (xk)

f 0(xk).

• présentation par point-fixe La méthode de Newton est un cas spécial de laméthode des points fixes, car un zéro de f (x) est un point fixe de

g(x) = x� f (x)f 0(x)

.

On voit que

g0(x) = 1�✓

f 0(x)2� f (x) f 00(x)f 0(x)2

◆=

f (x) f 00(x)f 0(x)2 , (5)

21

Page 22: MAT2412. Analyse Numérique I

et donc que g0(x⇤) = 0. On peut s’attendre à ce que la convergence soitmeilleure que linéaire pour la méthode de Newton (en fait c’est quadratique,comme sera démontrée plus tard).

Théorème (Théorème 2,6 de BF, page 70) Soit f 2C2[a,b]. Si x⇤ 2 (a,b) esttel que f (x⇤) = 0 et f 0(x⇤) 6= 0, alors il existe d > 0 tel que la méthode de Newtonconverge 8x0 2 [x⇤ �d ,x⇤+d ].

Démonstration

On définitg(x) = x� f (x)

f 0(x).

Soit k 2 (0,1). On cherche un intervalle I = [x⇤�d ,x⇤+d ] tel que 8x2 I : g(x)2 Iet |g0(x)| k .

Puisque f 0 est continue et f 0(x⇤) 6= 0 9d1 t.q. f 0(x) 6= 0 8x 2 [x⇤�d1,x⇤+d1]✓[a,b]. De (5) on voit que g 2C1[x⇤ �d1,x⇤+d1]

Or, par hypothèse, f (x⇤) = 0. Donc g0(x⇤) = 0. Par continuité de g0 dans [x⇤ �d1,x⇤+d1], il existe d d1 t.q.

|g0(x)| k, 8x 2 [x⇤ �d ,x⇤+d ]Il reste à vérifier que si x 2 [x⇤ �d ,x⇤+d ] alors g(x) 2 [x⇤ �d ,x⇤+d ].Par le théorème des accroissements finis, si x 2 [x⇤ �d ,x⇤+d ] 9x entre x et x⇤

t.q.

|g(x)�g(x⇤)|= |g0(x )||x� x⇤|, k|x� x⇤|< |x� x⇤|,

) |g(x)� x⇤|< |x� x⇤|.

Puisque x 2 [x⇤ �d ,x⇤+d ], |x� x⇤| d ) |g(x)� x⇤|< d .Du théorème des points fixes, on conclut que les itérations xk+1 = g(xk) conver-

gent vers le point fixe x⇤ 8x0 2 [x⇤ �d ,x⇤+d ].

2.3.1 Analyse de l’ordre de convergence des méthodes des points fixes (y

compris Newton)

Théorème (Ordre 2. Théorème 2.9 de BF, pages 81-82)Soit x⇤ la solution de x = g(x). Si g0(x⇤) = 0 et g 2C2(I) avec |g00(x)|< M sur

un intervalle ouvert I contenant x⇤, alors 9d > 0 tel que 8x0 2 [x⇤ � d ,x⇤+ d ] lasuite xk+1 = g(xk) (k � 0) converge au moins quadratiquement vers x⇤.

22

Page 23: MAT2412. Analyse Numérique I

De plus,

|xk+1� x⇤|< M2|xk� x⇤|2

Démonstration

Pour k 2 (0,1) 9d > 0 tel que sur [x⇤ � d ,x⇤+ d ] ⇢ I, |g0(x)| k et g00 estcontinue. Par le théorème précédent les termes de la suite {xk}•

k=0 sont contenusdans [x⇤ �d ,x⇤+d ]. Or,

xk+1 = g(xk),

xk+1� x⇤ = g(xk)�g(x⇤),

= g0(x⇤)(xk� x⇤)+g00(xk)

2(xk� x⇤)2, où xk 2 (xk,x⇤)

) |ek+1|=|g00(xk)|

2|ek|2,

<M2|ek|2,

(puisque |g00|< M dans I). Puisque, par le théorème des points fixes, xk! x⇤,

limk!•

|ek+1||ek|2

=|g00(x⇤)|

2,

et la convergence est quadratique si g00(x⇤) 6= 0.

exemple MATLAB: ordre de convergence de la méthode de Newton.

Plus généralement, si g0(x⇤) = g00(x⇤) = . . . = g(N�1)(x⇤) = 0 et g(N)(x⇤) 6= 0nous aurons de la convergence d’ordre N:

limk!•

|ek+1||ek|N

=|g(N)(x⇤)|

N!

2.3.2 Zéros de multiplicité m > 1

Il peut arriver que la méthode de Newton converge, mais pas avec l’ordre prévu.Ceci peut être causé par une erreur de programmation ou peut signaler la présenced’un zéro de multiplicité > 1.

Définitions (Zéro multiple, deux définitions équivalentes)

x⇤ est un zéro de multiplicité m 2 Z+ de la fonction f si

23

Page 24: MAT2412. Analyse Numérique I

1. f (x⇤) = f 0(x⇤) = . . . f (m�1)(x⇤) = 0 mais f (m)(x⇤) 6= 0, ou

2. 8x 6= x⇤, f (x) = (x� x⇤)mq(x) avec limx!x⇤ q(x) 6= 0.

exemple (cf. exemple 2,13 de Fortin) La fonction f (x) = xsinx possède un zérode multiplicité 2 en x = 0 puisque

f (x) = xsinx,f 0(x) = sinx+ xcosx,f 00(x) = 2cosx� xsinx,

et on voit que f (0) = f 0(0) = 0 mais que f 00(0) = 2. On voit aussi qu’on peutécrire f (x) sous la forme

f (x) = xmq(x) = x2 sinxx

,

et limx!0sinx

x = 1(6= 0)Supposons que la fonction f (x) ait un zéro x⇤ de multiplicité m > 1 et définis-

sonsg(x) = x� f (x)

f 0(x),

dans l’interprétation point fixe de la méthode de Newton. Donc on peut écriref (x) = (x� x⇤)mq(x) avec limx!x⇤ q(x) 6= 0 et f 0(x) = m(x� x⇤)m�1q(x)+ (x�x⇤)mq0(x). Alors,

g(x) = x� (x� x⇤)mq(x)m(x� x⇤)m�1q(x)+(x� x⇤)mq0(x)

= x� (x� x⇤)q(x)mq(x)+(x� x⇤)q0(x)

,

) g0(x) = 1�(mq+(x� x⇤)q0)(q+(x� x⇤)q0(x))� (x� x⇤)q(mq0+q0+(x� x⇤)q00)

[mq+(x� x⇤)q0]2

�,

) g0(x⇤) = 1� mq2

m2q2 = 1� 1m.

Puisque, pour m � 2, g0(x⇤) 6= 0, la convergence de la méthode de Newton versun zéro x⇤ de multiplicité m est linéaire avec une constante d’erreur asymptotique1�1/m.

Pour récupérer la convergence quadratique de la méthode de Newton vers unzéro de multiplicité m� 2, on pourrait, par exemple,

24

Page 25: MAT2412. Analyse Numérique I

1. définir un nouveaug := x�m

f (x)f 0(x)

,

si m est connu. Dans ce cas g0(x⇤) = 1�m/m = 0, ou

2. appliquer la méthode de Newton à

h(x) =f (x)f 0(x)

,

puisque dans ce cas-ci le zéro x⇤ de f est un zéro simple de h(x). Ce résultatdécoule du fait que

f (x)⌘ (x� x⇤)mq(x),

) f (x)f 0(x)

=(x� x⇤)mq(x)

m(x� x⇤)m�1q(x)+(x� x⇤)mq0(x),

=(x� x⇤)q(x)

mq(x)+(x� x⇤)q0(x)

et que

limx!x⇤

qmq+(x� x⇤)q0

=1m6= 0.

exemple MATLAB

2.3.3 Méthode de la sécante

Dans la méthode de Newton il faut, à chaque pas itératif, calculer la pente dela fonction dont on cherche le zéro. Ceci peut être parfois difficile. On peutcontourner cette difficulté en remplaçant la dérivée exacte en xk, par exemple, parune approximation aux différences finies:

f 0(xk)⇡f (xk)� f (xk�1)

xk� xk�1.

L’algorithme de la méthode de la sécante:

1. 2 essais initiaux x0 et x1,

2.xk+1 = xk�

f (xk)(xk� xk�1)

f (xk)� f (xk�1), k = 1,2,3, . . . , (6)

25

Page 26: MAT2412. Analyse Numérique I

La méthode de la sécante est une méthode à deux pas puisque xk+1 = F(xk,xk�1)et, en conséquent, n’est pas une méthode des points fixes.

Convergence: on soustrait les deux côtés de (6) de x⇤ et on note l’erreur x⇤ � xkpar ek pour obtenir

ek+1 = ek +f (x⇤ � ek)(ek�1� ek)

f (x⇤ � ek)� f (x⇤ � ek�1),

= ek +( f (x⇤)� f 0(x⇤)ek + f 00(x⇤)e2

k/2+ . . .)(ek�1� ek)

( f (x⇤)� f 0(x⇤)ek + f 00(x⇤)e2k/2+ . . .)� ( f (x⇤)� f 0(x⇤)ek�1 + f 00(x⇤)e2

k�1/2+ . . .),

= ek +(� f 0(x⇤)ek + f 00(x⇤)e2

k/2+ . . .)

f 0(x⇤)� f 00(x⇤)(ek�1 + ek)/2+ . . .,

=� f 00(x⇤)ekek�1/2+ . . .

( f 0(x⇤)� f 00(x⇤)(ek�1 + ek)/2+ . . .),

où on a supposé que x⇤ soit un zéro simple ( f (x⇤) = 0, f 0(x⇤) 6= 0) et que f 00(x⇤) 6=0. Donc, en ne gardant que les termes dominants au numérateur et au dénomina-teur, on obtient, lorsque k! •, que

ek+1!� f 00(x⇤)ekek�1

2 f 0(x⇤).

Pour extraire l’ordre de convergence de la méthode de la sécante on cherche un atel que

|ek+1|= l |ek|a(= l 1+a |ek�1|a2),

lorsque k! •. Alors, dans la limite k! • on a

l 1+a |ek�1|a2=

����f 00(x⇤)

2 f 0(x⇤)

����l |ek�1|a+1,

) |ek�1|a2�a�1 = l�a

����f 00(x⇤)

2 f 0(x⇤)

���� .

Cette dernière équation n’est possible que si le terme de gauche est indépendantde ek�1 (puisque le membre de droite l’est). Ceci nécessite que

a2�a�1 = 0,

de sorte que (en choisissant la racine positive)

a =1+p

52

, l a =

����f 00(x⇤)

2 f 0(x⇤)

���� .

La convergence de la méthode de la sécante est dite “superlinéaire".

26

Page 27: MAT2412. Analyse Numérique I

3 Interpolation

Le problème qu’on considérera est le suivant: étant donné (n + 1) noeuds xk(k = 0,1, . . . ,n) distincts et (n+ 1) valeurs correspondantes yk, peut-on trouverun polynôme Pn(x) de degré au plus n tel que

Pn(xk) = yk, k = 0,1, . . . ,n?

L’intérêt de construire un tel polynôme (appelé un polynôme d’interpolation) ré-side dans la facilité d’intégrer et dériver Pn. Donc, cette partie du cours sera im-portante plus tard dans la Section 4 du cours (dérivation et intégration numérique).

Théorème (Existence et unicité) Soit x0,x1, . . . ,xn (n+ 1) nombres distincts ety0,y1, . . . ,yn des valeurs réelles correspondantes. Alors, il existe un polynômeunique Pn(x) de degré au plus n avec la proprieté que

Pn(xk) = yk, k = 0, . . . ,n.

Ce polynôme est donné par

Pn(x) =n

Âk=0

ykLn,k(x),

avecLn,k(x) = Pn

i=0,i6=k(x� xi)

(xk� xi),

le kième polynôme d’interpolation de Lagrange de degré n.

Démonstration

La démonstration de l’existence de Pn est par construction. Par la définition dukième polynôme de Lagrange Ln,k, on voit que

Ln,k(x j) =

⇢0 si k 6= j1 si k = j

et que chaque Ln,k (k = 0,1, . . . ,n) est un polynôme de degré n. Donc

Pn(x) =n

Âk=0

ykLn,k(x), (la formule de Lagrange)

27

Page 28: MAT2412. Analyse Numérique I

est un polynôme de degré n et

Pn(x j) =n

Âk=0

ykdk j = y j.

Unicité: On procède par l’absurde et suppose qu’il existe deux polynômes d’interpolationde degré au plus n, Pn et Qn, tels que

Pn(x j) = Qn(x j) = y j, j = 0,1,2, . . . ,n.

On définit Dn(x) = Pn(x)�Qn(x) et constate que Dn doit être un polynôme dedegré n tel que

Dn(x j) = 0, j = 0,1,2, . . . ,n.

C’est à dire Dn a (n+1) zéros distincts x0,x1, . . . ,xn ce qui est impossible sauf siDn ⌘ 0.

Théoreme (Erreur) Soit x0,x1, . . . ,xn (n+ 1) nombres distincts dans l’intervalle[a,b] et f une fonction telle que f 2C(n+1)[a,b]. Alors, 8x 2 [a,b], 9x (x) 2 (a,b)tel que

f (x) = Pn(x)+f (n+1)(x (x))(n+1)!

Pni=0(x� xi),

avec Pn(x) l’unique polynôme d’interpolation donné dans le premier théorème(avec yk = f (xk)).

Démonstration

Si x = xk pour n’importe quel k = 0,1,2, . . . ,n le résultat est trivial, puisquedans ce cas Pn(x) = f (x) et le terme d’erreur est zéro. Si x 6= xk 8k = 0,1,2, . . . ,nformer (pour t 2 [a,b])

g(t) = f (t)�Pn(t)� [ f (x)�Pn(x)]Pni=0

(t� xi)

(x� xi).

Puisque f 2C(n+1)[a,b] et Pn 2C•[a,b], il suit que g 2C(n+1)[a,b]. On voit que

g(x) = f (x)�Pn(x)� [ f (x)�Pn(x)]Pni=0

(x� xi)

(x� xi)= 0,

g(xk) = f (xk)�Pn(xk)� [ f (x)�Pn(x)]Pni=0

(xk� xi)

(x� xi)= 0,

28

Page 29: MAT2412. Analyse Numérique I

et donc que g a (n+ 2) zéros. Par le théorème de Rolle généralisé, il existe x 2(a,b) tel que g(n+1)(x ) = 0. Alors

0 = g(n+1)(x ) = f (n+1)(x )�P(n+1)n (x )� [ f (x)�Pn(x)]

dn+1

dtn+1 Pni=0

(t� xi)

(x� xi)

����t=x

,

= f (n+1)(x )� [ f (x)�Pn(x)]dn+1

dtn+1

✓tn+1

Pni=0(x� xi)

+ . . .

◆����t=x

,

= f (n+1)(x )� [ f (x)�Pn(x)](n+1)!

Pni=0(x� xi)

,

) f (x) = Pn(x)+f (n+1)(x )(n+1)!

Pni=0(x� xi).

Une borne supérieure sur l’erreur absolue | f (x)�Pn(x)| est donc

maxx

�����f (n+1)(x )(n+1)!

�����Pni=0|x� xi|.

exemple MATLAB. f (x) = exp(�4x)cos(2px) sur [0,1].

exemple (exemple 4, BF 3,1) (Interpolation linéaire par morceaux) On voudraitapproximer la fonction f (x)= exp(x) sur [0,1] en utilisant une interpolation linéairepar morceaux, c’est à dire, si x0,x1, . . . ,xn sont les abscisses, la fonction P(x) quiinterpole f (x) est linéaire dans chaque intervalle [x j,x j+1]. Pour les abscisseséquidistantes avec x j+1� x j = h, quelle valeur devrait-on choisir pour h pour quel’erreur absolue soit inférieure à 10�6?

Solution: Soit x un nombre dans [0,1] et supposons que j soit choisi tel quex j x x j+1. L’erreur absolue d’interpolation dans l’intervalle [x j,x j+1] est

| f (x)�P(x)|=

�����f (2)(x )

2!(x� x j)(x� x j+1)

����� .

Puisque le pas est h il s’en suit que x j = jh et x j+1 = ( j+1)h et

| f (x)�P(x)|=

�����f (2)(x )

2!

����� |(x� jh)(x� ( j+1)h)|,

29

Page 30: MAT2412. Analyse Numérique I

d’où

| f (x)�P(x)| 12

maxx2[0,1]

exp(x ) maxx jxx j+1

|(x� jh)(x� ( j+1)h)|,

=12

e maxx jxx j+1

|(x� jh)(x� ( j+1)h)|.

La fonction g(x) = (x� jh)(x� ( j+ 1)h) est une parabole ayant valeur absoluemaximale dans [x j,x j+1] en x = ( j+1/2)h. Donc

| f (x)�P(x)| e2|�h/2⇥h/2|= eh2

8Donc, il est suffisant de choisir h tel que

eh2

8 1⇥10�6) h < 1,72⇥10�3.

Puisque n = 1/h doit être un entier, un choix convenable pour h serait h = 0,001(En fait, on pourrait choisir n = 582) h = 1,7182⇥10�3)

exemple. MATLAB. f (x) = cos(px) sur [�1,1].

exemple. MATLAB. f (x) = 11+25x2 sur [�1,1]. (Phénomène de Runge (1901)).

3.1 Différences divisées: le polynôme de Newton

Un polynôme Pn de degré n peut toujours être écrit sous la forme

Pn(x) = a0 +a1(x� x0)+a2(x� x0)(x� x1)+ . . .+an(x� x0)(x� x1) . . .(x� xn�1),

= Pn�1(x)+an(x� x0)(x� x1) . . .(x� xn�1). (polynôme de Newton)

Supposons maintenant que Pn soit un polynôme d’interpolation, passant par les(n+ 1) points distincts (x0, f (x0)),(x1, f (x1)), . . . ,(xn, f (xn)) pour quelque fonc-tion f . (Donc, Pn�1 est le polynôme d’interpolation de (x0, f (x0)),(x1, f (x1)), . . . ,(xn�1, f (xn�1))).En évaluant Pn en x0 il se voit que

Pn(x0) = a0 = f (x0).

De la même manière,

Pn(x1) = a0 +a1(x1� x0) = f (x1)) a1 =f (x1)� f (x0)

(x1� x0).

30

Page 31: MAT2412. Analyse Numérique I

Définition (Différences divisées) On définit les premières différences diviséesd’une fonction f par

f [xi,xi+1] =f (xi+1)� f (xi)

(xi+1� xi),

de sorte que a1 ci-dessus puisse être écrit a1 = f [x0,x1].Les deuxièmes différences divisées d’une fonction f sont définies à partir des

premières différences divisées par

f [xi,xi+1,xi+2] =f [xi+1,xi+2]� f [xi,xi+1]

(xi+2� xi).

De la même manière, les n-ièmes différences divisées d’une fonction f sontdéfinies à partir des (n�1)-ièmes différences divisées par la relation

f [x0,x1, . . . ,xn] =f [x1,x2, . . . ,xn]� f [x0,x1, . . . ,xn�1]

(xn� x0)

Théorème Les coefficients ai du polynôme de Newton de degrée n sont les dif-férences divisées

ai = f [x0,x1, . . . ,xi], pour 0 i n.

Démonstration (par induction, voir Fortin Théorème 5,3)Le résultat est déjà démontré pour n = 1. On suppose que le résultat soit

vrai pour les polynômes de degré (n� 1). Soit Pn�1 et Qn�1 les polynômesd’interpolation de degré (n�1) et passant respectivement par les points(x0, f (x0)),(x1, f (x1)), . . . ,(xn�1, f (xn�1)) et (x1, f (x1)),(x2, f (x2)), . . . ,(xn, f (xn)).

On note par bi la différence divisée

bi = f [x1,x2, . . . ,xi+1], pour i = 0, . . . ,n�1.

On peut écrire

Pn�1(x) = Pn�2(x)+an�1(x� x0)(x� x1) . . .(x� xn�2),

Qn�1(x) = Qn�2(x)+bn�1(x� x1)(x� x2) . . .(x� xn�1),

et, en exprimant Pn(x) sous la forme

Pn(x) =✓

x� xn

x0� xn

◆Pn�1(x)+

✓x� x0

xn� x0

◆Qn�1(x),

31

Page 32: MAT2412. Analyse Numérique I

on voit que

Pn(x0) = Pn�1(x0) = f (x0),Pn(xn) = Qn�1(xn) = f (xn)

et

Pn(xi) =(xi� x0)Qn�1(xi)� (xi� xn)Pn�1(xi)

(xn� x0),

=(xi� x0� xi + xn)

(xn� x0)f (xi) = f (xi),pour i = 1,2, . . . ,n�1.

Pn est donc le polynôme d’interpolation passant par (x0, f (x0)), . . . ,(xn, f (xn)).L’équation pour Pn(x) peut s’écrire

Pn(x)�Pn�1(x) =✓

x� x0

xn� x0

◆(Qn�1(x)�Pn�1(x)), (7)

et puisque les coefficients de xn�1 pour Pn�1 et Qn�1 sont, respectivement, an�1et bn�1, il suit que le coefficient de xn pour Pn est

(bn�1�an�1)

(xn� x0)=

f [x1,x2, . . . ,xn]� f [x0,x1, . . . ,xn�1]

(xn� x0)= f [x0,x1, . . . ,xn].

Finalement, puisque le membre de droite de (7) s’annule en x0,x1, . . . ,xn�1 lemembre de droite de cette équation doit être égal à

f [x0,x1, . . . ,xn](x� x0)(x� x1) . . .(x� xn�1).

Théorème (Corréspondence entre les dérivées et différences divisées) Si f 2Cn[a,b] et x0,x1, . . . ,xn sont des nombres distincts dans [a,b], alors il existe x 2(a,b) avec

f [x0,x1, . . . ,xn] =f (n)(x )

n!.

Démonstration

Soit g(x)= f (x)�Pn(x). Alors, puisque f (xi)=Pn(xi) pour chaque i= 0,1,2, . . . ,nla fonction g possède au moins (n + 1) zéros distincts dans [a,b]. Ensuite, lethéorème de Rolle généralisé implique qu’un nombre x existe tel que g(n)(x ) = 0.Il s’en suit que

P(n)n (x ) = f (n)(x ),

32

Page 33: MAT2412. Analyse Numérique I

et puisque Pn(x) est un polynôme de degré n dont le coefficient de xn est f [x0,x1, . . . ,xn],

P(n)(x) = n! f [x0,x1, . . . ,xn] 8x (x inclus!),

) f [x0,x1, . . . ,xn] =f (n)(x )

n!.

3.1.1 Table de différences divisées

La manière la plus facile d’évaluer les différences divisées qui apparaissent dansle polynôme de Newton consiste à construire une table comme suit:

Pour obtenir, par exemple, f [x0,x1,x2] on soustrait le terme f [x0,x1] de f [x1,x2]et on divise le résultat par x2�x0. Pour obtenir f [x0,x1,x2,x3] on soustrait f [x0,x1,x2]de f [x1,x2,x3] et on divise par x3� x0. La formule de Newton utilise la diagonalesupèrieure de cette table.

exemple (Exemple 5,5 de Fortin) p233-234.

La table de différences divisées pour les points (0,1), (1,2), (2,9) et (3,28) est:

33

Page 34: MAT2412. Analyse Numérique I

Suivant la formule de Newton avec x0 = 0, le polynôme d’interpolation est

p3(x) = 1+1(x�0)+3(x�0)(x�1)+1(x�0)(x�1)(x�2) = x3 +1.

Si l’on veut ajouter un point d’interpolation et calculer le polynôme d’interpolationde degré 4, c’est facile à faire. Par exemple, en incluant le point (5,54) nous au-rons la table

Le polynôme p4(x) = p3(x)� 35(x�0)(x�1)(x�2)(x�3) est le polynôme de

degré 3 déjà calculé auquel on a ajouté une correction de degré 4.

exemple (Exemple 5,6 de Fortin) p234.

Notons que les points d’interpolation ne doivent pas forcément être placés parabscisses croissantes. Considérez, par exemple, la table suivante:

Le polynôme passant par ces points est

p3(x) = 1+1(x�2)+0,4(x�2)(x�0)+1,2(x�2)(x�0)(x�5).

34

Page 35: MAT2412. Analyse Numérique I

4 Dérivation et Intégration Numériques

Dans la dernière section on a construit des polynômes d’interpolation pour éval-uer une fonction f (x) connue seulement en quelques points x0,x1, . . . ,xn 2 [a,b].Dans cette section, on utilisera ces polynômes pour obtenir des approximationsnumériques aux dérivées f 0(xi) et aux intégrales

Z b

af (x) dx.

Supposons dans ce qui suit que les noeuds xi soient équidistants avec xi = x0 + ihpour un pas h constant: h = x j+1� x j.

4.1 Dérivée première

Le polynôme linéaire P1(x) qui interpole une fonction f (x) en xi et xi+1 est donné,selon la formulation de Newton par

P1(x) = f (xi)+ f [xi,xi+1](x� xi) = f (xi)+f (xi+1)� f (xi)

h(x� xi)

Alors

P01(x) = f [xi,xi+1] =f (xi+1)� f (xi)

h⇡ f 0(xi), (différénce avant)

Si, comme alternative, on choisit le polynôme P1 comme celui qui interpole f enxi�1 et xi, il suit que

P1(x) = f (xi�1)+ f [xi�1,xi](x� xi�1)

) P01(x) = f [xi�1,xi] =f (xi)� f (xi�1)

h⇡ f 0(xi), (différence arrière).

En utilisant le polynôme d’interpolation P2(x) de degré deux pour évaluer ap-proximativement la dérivée de la fonction f en xi, nous pourrions considérer, parexemple, celui qui interpole f en xi�1,xi et xi+1. Ceci nous donnerait

P2(x) = f (xi�1)+ f [xi�1,xi](x� xi�1)+ f [xi�1,xi,xi+1](x� xi�1)(x� xi).

Donc

P02(x) = f [xi�1,xi]+ f [xi�1,xi,xi+1](2x� (xi�1 + xi)),

) P02(xi) =f (xi)� f (xi�1)

h+

f (xi+1)�2 f (xi)+ f (xi�1)

2h2 (xi� xi�1),

=f (xi+1)� f (xi�1)

2h⇡ f 0(xi). (différence centrée)

35

Page 36: MAT2412. Analyse Numérique I

Interprétation géométrique des formules aux différences

4.2 Analyse de l’erreur

On peut aborder l’analyse de l’erreur commise en dérivant numériquement lafonction f en xi de deux façons différentes: soit en utilisant un développementde Taylor, soit en dérivant l’erreur d’interpolation polynômiale.

4.2.1 Développement de Taylor

Pour illustrer la première approche on écrira un développement de Taylor pourf (x+h) autour de x. Supposons tout d’abord que f et ses deux premières dérivéesexistent sur [x,x+h]. Alors, il existe x 2 (x,x+h) tel que

f (x+h) = f (x)+ f 0(x)h+f 00(x )

2h2.

En réorganisant, on obtient

f 0(x) =f (x+h)� f (x)

h� h

2f 00(x ).

Si on met x = xi, il en résulte que

f 0(xi) =f (xi+1)� f (xi)

h� h

2f 00(x ),

=f (xi+1)� f (xi)

h+O(h),

et on identifie le premier terme de droite dans les équations ci-dessus comme ladifférence avant. Le deuxième terme de droite est l’erreur et donc l’approximation

36

Page 37: MAT2412. Analyse Numérique I

est d’ordre 1. D’une manière similaire, on peut écrire

f 0(x) =f (x)� f (x�h)

h+

h2

f 00(x )

=f (x)� f (x�h)

h+O(h), (différence arrière),

f 0(x) =f (x+h)� f (x�h)

2h� h2

3!f (3)(x )

=f (x+h)� f (x�h)

2h+O(h2), (différence centrée).

4.2.2 Erreur d’interpolation

On a déjà vu que si x0 < x1 . . . < xn sont n+1 nombres distincts dans un intervalle[a,b] et f une fonction telle que f 2 C(n+1)[a,b], alors, l’erreur En commise eninterpolant f (x) en x0,x1, . . . ,xn par un polynôme Pn de degré n est

En = f (x)�Pn(x) =f (n+1)(x (x))(n+1)!

Pnk=0(x� xk),

pour un certain x 2 (x0,xn). Si les abscisses {xi}ni=0 sont toutes équidistantes avec

x j+1� x j = h, on voit que l’erreur commise en approximant la dérivée de f en xiest

E 0n(xi) = f 0(xi)�P0n(xi)

=ddx

f (n+1)(x (x))(n+1)!

!�����x=xi

Pnk=0(xi� xk)+

f (n+1)(x (xi))

(n+1)!Pn

k=0,k 6=i(xi� xk),

=f (n+1)(x (xi))hn

(n+1)!Pn

k=0,k 6=i(i� k), (8)

Selon l’équation (8) ci-dessus, dans le cas du polynôme linéaire P1 qui interpolef en xi et xi+1,

E 01(xi) = f 0(xi)�( f (xi+1)� f (xi))

h

=f 00(x (xi))h

2!(i� (i+1))

=� f 00(x (xi))h2!

,

37

Page 38: MAT2412. Analyse Numérique I

qui est le même résultat obtenu ci-dessus pour la différence avant d’ordre 1. Onobtiendra les mêmes résultats pour les formules des erreurs commises avec lesformules de différence arrière d’ordre 1 et centrée d’ordre 2 si l’on dérive

P1 = f (xi�1)+ f [xi�1,xi](x� xi�1),

et P2 ci-dessus.

exemple Ordre de précision. f (x) = xexp(x).

Considérons les évaluations de la fonction f (x) = xexp(x) aux points x = 1.9 :0.05 : 2.1.

x f (x)1.90 12.703199441.95 13.705940782.00 14.77811222.05 15.924197272.10 17.14895682

La dérivée exacte de f en x = 2 est f 0(2) = exp(x)+ xexp(x)|x=2 = 22.167168.

Soit h = 0.05. La différence centréef (2+h)� f (2�h)

2h=

f (2.05)� f (1.95)0.1

= 22.1825649,

approche f 0(2) avec une erreur

eh := f 0(2)�✓

f (2.05)� f (1.95)0.1

◆=�0.015396602,

tandis que l’erreur e2h commise en approchant f 0(2) par

f (2+2h)� f (2�2h)4h

✓=

f (2.10)� f (1.90)0.2

= 22.2287869◆,

vaut22.167168�22.2287869 =�0.061618602.

Supposons, pour h suffisamment petit, que eh ⇠ Ahk pour une certaine constanteréelle A (indépendante de h) et un entier k. Alors,

e2h

eh⇠ A(2h)k

Ahk = 2k.

38

Page 39: MAT2412. Analyse Numérique I

Dans l’exemple donné ci-dessus,

e2h

eh=�0.061618602/�0.015396602 = 2k

) k = log✓�0.061618602�0.015396602

◆�log(2)⇡ 2.0008.

C’est-à-dire, l’ordre de précision est égal à 2.

4.3 Dérivées d’ordre supérieur

Pour obtenir les approximations aux dérivées d’ordre supérieur on utilise la mêmestratégie qu’avec les dérivées d’ordre 1: on construit un polynôme d’interpolationet on le dérive aussi souvent que nécessaire. La manière la plus facile d’obtenirl’erreur d’approximation est d’utiliser les expansions de Taylor. Pour illustrer:soit

P2(x) = f (xi�1)+ f [xi�1,xi](x� xi�1)+ f [xi�1,xi,xi+1](x� xi�1)(x� xi),

le polynôme de degré au plus 2 qui interpole f (x) en xi�1,xi,xi+1 où xi = x0 + ih.Donc,

f 00(xi)⇡f (xi�h)�2 f (xi)+ f (xi +h)

h2 . (9)

Par un développement de Taylor autour de xi, on voit que

f (xi�h) = f (xi)�h f 0(xi)+h2

2f 00(xi)�

h3

3!f (3)(xi)+

h4

4!f (4)(xi)� . . .

De même,

f (xi +h) = f (xi)+h f 0(xi)+h2

2f 00(xi)+

h3

3!f (3)(xi)+

h4

4!f (4)(xi)� . . .

Du membre de droite de l’équation (9) on parvient alors à

f (xi�h)�2 f (xi)+ f (xi +h)h2 =

h2 f 00(xi)+h4

12 f (4)(xi)+ . . .

h2 ,

= f 00(xi)+h2

12f (4)(xi)+ . . . ,

39

Page 40: MAT2412. Analyse Numérique I

et donc l’erreur

E 002 (xi) = f 00(xi)�f (xi�h)�2 f (xi)+ f (xi +h)

h2 =�h2

12f (4)(xi)+ . . .= O(h2).

On pourrait aussi écrire l’erreur sous la forme

E 002 (xi) =�h2

4!( f (4)(x1)+ f (4)(x2)) =�

h2

12f (4)(x ),

pour certains x1 2 (xi� h,xi), x2 2 (xi,xi + h) et un certain x 2 (x1,x2), en sup-posant que f 2C4(xi�h,xi +h).

4.4 Extrapolation de Richardson

Le but de cette technique est d’augmenter la précision d’un résultat obtenu avecune formule d’ordre peu élevé. La méthode de Richardson nous permettra degagner au moins un ordre de précision.

4.4.1 Application à la différence arrière

En réorganisant le développement de Taylor pour f (x� h) autour de x (fixe) onobtient

f 0(x) =f (x)� f (x�h)

h+

h2

f 00(x)� h2

3!f (3)(x)+

h3

4!f (4)(x)+ . . .

=f (x)� f (x�h)

h+k1(x)h+k2(x)h2 +k3(x)h3 + . . .

où k j =(�1) j+1

( j+1)! f ( j+1)(x). On note par N1(h) la différence arrière avec un pas égalà h, de sorte que

f 0(x) = N1(h)+k1h+k2h2 +k3h3 + . . . (10)

Maintenant, on remplace h par h/2 dans l’équation ci-dessus pour obtenir

f 0(x) = N1(h/2)+k1h2+k2

✓h2

◆2+k3

✓h2

◆3+ . . . (11)

40

Page 41: MAT2412. Analyse Numérique I

Soustrayant l’équation (10) de deux fois (11) résulte en l’élimination du termeavec k1:

f 0(x) = 2N1(h/2)�N1(h)+k2

✓h2

2�h2

◆+k3

✓h3

4�h3

◆+ . . .

) f 0(x) = N2(h)�k2h2

2� 3k3h3

4� . . . , (12)

où N2(h) = 2N1(h/2)�N1(h). Si on remplace h par h/2 dans cette formule onaura

f 0(x) = N2(h/2)�k2h2

8� 3k3h3

32� . . . (13)

Si l’on élimine le terme contenant h2 par la soustraction de (12) de quatre fois (13)on voit que

3 f 0(x) = 4N2(h/2)�N2(h)+3k3h3

8+ . . . ,

) f 0(x) =✓

4N2(h/2)�N2(h)3

◆+

k3h3

8+ . . . ,

=

N2(h/2)+

N2(h/2)�N2(h)3

�+

k3h3

8+ . . . ,

= N3(h)+k3h3

8+ . . . ,

oùN3 ⌘

N2(h/2)+

N2(h/2)�N2(h)3

�.

En général, si une valeur M (dans le cas traité ci dessus, M = f 0(x)) est approximéavec une formule N(h) selon

M = N(h)+m�1

Âj=1

k jh j +O(hm),

alors pour chaque j = 2,3, . . . ,m on a une approximation d’ordre j de la forme

Nj(h) = Nj�1(h/2)+Nj�1(h/2)�Nj�1(h)

2 j�1�1.

Ces approximations sont engendrées ligne par ligne dans la table suivante:

41

Page 42: MAT2412. Analyse Numérique I

Pour le cas de la difference centrée

N(h) =f (x+h)� f (x�h)

2h

nous aurions

f 0(x) = N(h)+m�1

Âj=1

k jh2 j +O(h2m),

etNj(h) = Nj�1(h/2)+

Nj�1(h/2)�Nj�1(h)4 j�1�1

.

exemple MATLAB. Extrapolation de Richardson pour les différences centrées. (Dérivéede cosx en x = p/6. Valeur initiale de h = 0.05.)

4.5 Sources des erreurs

C’est particulièrement important de prêter attention aux erreurs d’arrondi lorsqu’onapproxime des dérivées. Soit f une fonction dont les dérivées f 0(x), f 00(x), f (3)(x)existent sur un intervalle [x0�H,x0+H] pour quelque H > 0. Examinons l’équation

f 0(x0) =f (x0 +h)� f (x0�h)

2h� h2

6f (3)(x ),

qui est vérifiée pour tout h H et avec un x 2 (x0� h,x0 + h). Lorsque h tendvers zéro le numérateur de la différence centrée ci-dessus contient la soustractionde deux termes très proches l’un de l’autre, ce qui est une opération dangereuse.Soit e(x0+h) et e(x0�h) les erreurs d’arrondi commises en évaluant f (x0+h) etf (x0�h), respectivement. On note par ef les valeurs calculées de sorte que

f (x0 ±h) = ef (x0 ±h)+ e(x0 ±h),

et

f 0(x0)�(ef (x0 +h)� ef (x0�h))

2h=

(e(x0 +h)� e(x0�h))2h

� h2

6f (3)(x ).

42

Page 43: MAT2412. Analyse Numérique I

Supposons qu’il existent des nombres e > 0 et M > 0 tels que |e(x)| e et| f (3)(x)|M 8x 2 [x0�H,x0 +H]. Alors, pour tout h H

����� f0(x0)�

(ef (x0 +h)� ef (x0�h))2h

�����eh+

h2

6M.

Lorsqu’on réduit h, l’erreur de troncature diminue mais l’erreur d’arrondi aug-mente. On cherche, donc, une valeur optimale pour h telle que la borne sur l’erreurtotale est minimisée. Dérivant e/h+h2M/6 par rapport à h et mettant le résultatégal à zéro nous donne une éstimation de hopt:

hopt ⇡ 3

r3eM

.

exemple MATLAB: valeur optimale de h. ( f (x) = sinx, x0 = 0.3).

4.6 Intégration numérique

L’intégration numérique d’une fonction est basée principalement sur l’intégrationd’un polynôme d’interpolation Pn:

I =Z b

af (x) dx =

Z b

aPn(x) dx+

Z b

aEn(x) dx, (14)

où En désigne l’erreur d’interpolation. L’intégration numérique sera nécessaire sif (x) n’est connue qu’en certains points discrets ou si la primitive

Rf (x)dx n’est

pas connue explicitement. Selon le théorème de l’erreur d’interpolation de §3, six0,x1, . . . ,xn sont n+1 nombres distincts dans l’intervalle [a,b] et f 2C(n+1)[a,b],alors, 8x 2 [a,b], 9x (x) 2 (a,b) tel que

f (x) = Pn(x)+f (n+1)(x (x))(n+1)!

Pnk=0(x� xk).

On peut écrire

Pn(x) =n

Âi=0

f (xi)Ln,i(x),

Ln,i(x) =Pn

j=0, j 6=i(x� x j)

Pnj=0, j 6=i(xi� x j)

,

43

Page 44: MAT2412. Analyse Numérique I

est le i-ième polynôme de Lagrange. Donc, de (14) on a

I =Z b

af (x) dx =

n

Âi=0

ai f (xi)+ bEn, (15)

ai =Z b

aLn,i(x) dx, et bEn =

Z b

aEn(x) =

Z b

a

f (n+1)(x (x))(n+1)!

Pnk=0(x� xk) dx.

L’approximation du premier terme de droite de (15) est appelée, en général, uneformule de quadrature. En faisant varier la valeur de n on obtiendra les formulesde Newton-Coates.

4.6.1 Méthode des trapèzes (n = 1)

La méthode des trapèzes est obtenue en intégrant le polynôme d’interpolationlinéaire P1 qui interpole f aux deux points x0 = a et x1 = b. On voit que dans cecas

I ⇡ f (x0)+ f (x1)

2⇥ (x1� x0),

ayant une erreurbE1 =

Z b

a

f 00(x (x))2

(x� x0)(x� x1) dx.

On constate que (x� x0)(x� x1) ne change pas de signe sur [x0,x1]. Par lethéorème de la valeur moyenne pour intégrales on conclut qu’il existe h 2 (x0,x1)tel que

bE1 =f 00(h)

2

Z x1

x0(x� x0)(x� x1) dx =� f 00(h)

12(x1� x0)

3 =� f 00(h)

12h3,

si x1 = x0 +h. Il est évident que la méthode des trapèzes donne une valeur exactepour

R ba f (x) dx si f est elle-même un polynome de degré inférieur ou égal à 1.

Définition (Degré de précision)

Le degré de précision d’une formule de quadrature est le plus grand entier m telque la formule est exacte pour tout polynôme de degré au plus m et pour chaqueintervalle d’intégration fini.

On dit, par conséquent, que la méthode des trapèzes a un degré de précision 1.

44

Page 45: MAT2412. Analyse Numérique I

4.6.2 Méthode des trapèzes composée

Pour essayer d’améliorer la performance de la méthode des trapèzes on pourraitdécomposer l’intervalle [a,b] en n sous-intervalles, chacun de longueur

h =b�a

n,

et approximer l’intégrale de f sur [a,b] avec la méthode des trapèzes dans chaquesous-intervalle (ou panneau) [xi,xi +h] où x0 = a. On a alors

Z b

af (x) dx⇡ h

2

"f (a)+2

n�1

Âi=1

f (xi)+ f (b)

#,

avec une erreur

�n

Âi=1

f 00(hi)

12h3,

où hi 2 (xi�1,xi).Par un théorème des valeurs intermédiaires généralisé (voir la feuille séparée et

mettre g = f 00) si f 2C2[a,b], il existe h 2 (a,b) tel que

f 00(h) =1n

n

Âi=1

f 00(hi).

Donc,

Z b

af (x) dx =

h2

"f (a)+2

n�1

Âi=1

f (xi)+ f (b)

#� (b�a)

12f 00(h)h2.

exemple MATLAB. (Méthode des trapèzes composée).✓Z 1

0e�x dx

45

Page 46: MAT2412. Analyse Numérique I

4.6.3 Méthode de Simpson(n = 2)

Si l’on intègre sur [x0,x2] le polynôme quadratique P2 qui interpole la fonctionf en x0,x1 et x2 où xk = a+ kh on obtient la formule de quadrature (formule deSimpson 1/3 simple) suivante:

Z b

af (x) dx⇡

Z b

aP2(x) dx =

h3[ f (x0)+4 f (x1)+ f (x2)].

Le terme d’erreur associé à cette formule est

bE2 =Z x2

x0

f (3)(x (x))3!

(x� x0)(x� x1)(x� x2) dx,

mais cette fois (contrairement au cas de la méthode des trapèzes) on ne peut pas seservir du théorème de la moyenne pour les intégrales pour une analyse de l’erreur.On peut s’attendre à ce que bE2 = O(h4), mais en fait la formule de Simpson 1/3simple est plus précise! Définissons le polynôme d’interpolation de degré 3

P3(x) = P2(x)+( f (x3)�P2(x3))

(x3� x0)(x3� x1)(x3� x2)(x� x0)(x� x1)(x� x2),

qui passe par les points (x0, f (x0)),(x1, f (x1)),(x2, f (x2)) et (x3, f (x3)), pour unchoix arbitraire de x3. Puisque

Z x2

x0(x� x0)(x� x1)(x� x2) dx = 0,

on voit que Z x2

x0P2(x) dx =

Z x2

x0P3(x) dx,

et que donc bE2 est la même que l’erreur bE3 de la formule de quadrature qui corre-spond à l’intégration de P3(x). Cette dernière est

bE3 =Z x2

x0

f (4)(x )4!

(x� x0)(x� x1)(x� x2)(x� x3),

est puisque l’abscisse x3 est arbitraire on peut la choisir d’être égale à x1. Dans cecas

bE2 = bE3 =Z x2

x0

f (4)(x )4!

(x� x0)(x� x1)2(x� x2) dx,

=Z 2

0

f (4)(x )4!

s(s�1)2(s�2)h5 ds,

46

Page 47: MAT2412. Analyse Numérique I

où on a utilisé un changement de variables x� x0 = hs. On remarque que lafonction s(s� 1)2(s� 2) ne change pas de signe dans l’intervalle [0,2], ce quinous permet d’utiliser le théorème de la moyenne pour les intégrales pour obtenir

bE2 =f (4)(h)

4!h5Z 2

0s(s�1)2(s�2) ds =� f (4)(h)

90h5,

où h 2 (x0,x2).

4.6.4 Méthode de Simpson 1/3 composée

On peut encore améliorer la méthode de Simpson en la composant. L’idée estde diviser l’intervalle [a,b] en 2n sous-intervalles de longueur h = (b� a)/2n etd’utiliser la méthode de Simpson dans chaque paire de sous-intervalles. Ainsi

Z b

af (x) dx =

n�1

Âj=0

Z x2 j+2

x2 j

f (x) dx

=n�1

Âj=0

h3( f (x2 j)+4 f (x2 j+1)+ f (x2 j+2))�

n�1

Âj=0

f (4)(h j)

90h5,

=h3

"f (a)+2

n�1

Âj=1

f (x2 j)+4n�1

Âj=0

f (x2 j+1)+ f (b)

#�

n�1

Âj=0

f (4)(h j)

90h5.

Avec les mêmes arguments qu’avant, il existe h 2 (a,b) tel que

n�1

Âj=0

f (4)(h j)

90h5 = n

f (4)(h)

90h5,

en supposant que f 2C4[a,b]. Puisque n = (b�a)/2h,

n�1

Âj=0

f (4)(h j)

90h5 =

(b�a)180

f (4)(h)h4.

47

Page 48: MAT2412. Analyse Numérique I

4.6.5 Formules générales de Newton-Coates à (n+1) points pour intégrales

sur [a,b]

Théorème (Théorème 4,2 de BF)Supposez que Ân

i=0 ai f (xi) désigne la formule de Newton-Coates fermée à n+1points x0,x1, . . . ,xn, avec xi = a+ ih et h = (b� a)/n. Alors, il existe x 2 (a,b)tel que

Z b

af (x) dx =

n

Âi=0

ai f (xi)+hn+3 f (n+2)(x )

(n+2)!

Z n

0t2(t�1) . . .(t�n) dt,

si n est pair et f 2Cn+2[a,b] etZ b

af (x) dx =

n

Âi=0

ai f (xi)+hn+2 f (n+1)(x )

(n+1)!

Z n

0t(t�1) . . .(t�n) dt,

si n est impair et f 2Cn+1[a,b].Quelques exemples de la formule de Newton-Coates fermée sont la méthode

des trapèzes (n = 1), la méthode de Simpson 1/3 simple (n = 2) et la méthode deSimpson 3/8 (n = 3).

Théorème (Théorème 4,3 de BF)

Supposez que Âni=0 ai f (xi) désigne la formule de Newton-Coates ouverte à n+1

points x0,x1, . . . ,xn, avec xi = a+(i+1)h et h = (b�a)/(n+2). Alors, il existex 2 (a,b) tel que

Z b

af (x) dx =

n

Âi=0

ai f (xi)+hn+3 f (n+2)(x )

(n+2)!

Z n+1

�1t2(t�1) . . .(t�n) dt,

si n est pair et f 2Cn+2[a,b] etZ b

af (x) dx =

n

Âi=0

ai f (xi)+hn+2 f (n+1)(x )

(n+1)!

Z n+1

�1t(t�1) . . .(t�n) dt,

si n est impair et f 2Cn+1[a,b].Les exemples de la formule de Newton-Coates inclurent la méthode du point

milieu (n = 0) oùZ x1=b

x�1=af (x) dx = 2h f (x0)+

h3

3f 00(x ), où a < x < b.

48

Page 49: MAT2412. Analyse Numérique I

4.6.6 Méthode de Romberg (1955)

La méthode de Romberg est basée sur la méthode des trapèzes composée et laméthode d’extrapolation de Richardson.

On commence avec la méthode des trapèzes composée avec m sous intervalleset on prend, successivement, m1 = 1, m2 = 2, m3 = 4, . . . ,mn = 2n�1. Le pas hkqui correspond à mk est hk = (b� a)/mk = (b� a)/2k�1. Avec cette notation laméthode des trapèzes composée devient

Z b

af (x) dx =

hk

2

"f (a)+2

2k�1�1

Âi=1

f (a+ ihk)

!+ f (b)

#� (b�a)

12h2

k f 00(hk),

(16)où, pour chaque k, hk 2 (a,b).

On utilise la notation Rk,1 pour noter l’approximation de la méthode des trapèzescomposée dans (16). Alors

R1,1 =h1

2[ f (a)+ f (b)] =

(b�a)2

( f (a)+ f (b)),

R2,1 =h2

2[ f (a)+2 f (a+h2)+ f (b)],

=(b�a)

4

f (a)+2 f

✓a+

(b�a)2

◆+ f (b)

�,

=12[R1,1 +h1 f (a+h2)],

R3,1 =12{R2,1 +h2[ f (a+h3)+ f (a+3h3)]},

et, en général,

Rk,1 =12

"Rk�1,1 +hk�1

2k�2

Âi=1

f (a+(2i�1)hk)

#, k = 2,3, . . .

En fait, on peut démontrer (mais pas facilement: voir Ralston et Rabinowitz, “Afirst course in numerical analysis”, pp. 136-138, QA 297 R35 1978) que la méth-ode des trapèzes composée peut être écrite avec un terme d’erreur alternatif sousla forme Z b

af (x) dx�Rk,1 =

Âi=1

kih2ik = k1h2

k +•

Âi=2

kih2ik , (17)

49

Page 50: MAT2412. Analyse Numérique I

où chaque ki est indépendant de hk et est en fonction seulement de f (2i�1)(a) etf (2i�1)(b). Avec la méthode des trapèzes composée exprimée sous cette forme,on remplace k avec k+1 et écrit

Z b

af (x) dx�Rk+1,1 =

Âi=1

kih2ik+1 =

k1h2k

4+

Âi=2

kih2ik

4i , (18)

Soustrayant (17) de quatre fois (18) on obtientZ b

af (x) dx�

Rk+1,1 +

(Rk+1,1�Rk,1)

3

�=

Âi=2

ki

3

✓1

4i�1 �1◆

h2ik .

On pourrait maintenant utiliser de nouveau l’extrapolation de Richardson pourobtenir une formule de O(h6

k) etc. On définit

Rk,2 = Rk,1 +Rk,1�Rk�1,1

3,

pour chaque k = 2,3, . . . ,n et on applique l’extrapolation de Richardson à ces ré-sultats. Ainsi, on a, pour chaque k = 2,3, . . . ,n et j = 2, . . . ,k, une approximationde O(h2 j

k ) définie par

Rk, j = Rk, j�1 +Rk, j�1�Rk�1, j�1

4 j�1�1= Rk, j�1 +

Rk, j�1�Rk�1, j�1

22 j�2�1.

Les résultats qui sont engendrés avec ces formules peuvent être mis dans untableau:

exemples MATLAB.✓

I =Z 1

0sin

px2

dx. Valeur exacte =2p

◆.

50

Page 51: MAT2412. Analyse Numérique I

4.6.7 Méthode de Gauss

Pour les formules de quadrature de Newton-Coates (§4.6.5) basées sur les noeudsxi 2 [a,b] nous avons vu que

Z b

af (x) dx⇡

Z b

aPn(x) dx =

n

Âi=0

ai f (xi), (19)

avecai =

Z b

aLn,i(x) dx,

et Pn(x) le polynôme d’interpolation de degré au plus n qui interpole f (x) enx0,x1, . . . ,xn. Selon le théorème de §4.6.5 la stratégie (19) avec les abscisses xiéquidistantes a un degré de précision n (n impair) ou n+1 (n pair).

exemples

• (méthode des trapèzes) (x0 = a,x1 = b,h = b�a)Z b

af (x) dx =

h2[ f (x0)+ f (x1)]�

f 00(h)

12h3.

Le degré de précision est n = 1,

• (méthode de Simpson) (x0 = a,x1 = x0 +h,x2 = x0 +2h,h = b�a2 )

Z b

af (x) dx =

h3[ f (x0)+4 f (x1)+ f (x2)]�

f (4)(h)

90h5.

Le degré de précision est n+1 = 3.

Dans un souci d’améliorer encore le degré de précision d’une formule de quadra-ture on peut essayer de choisir les abscisses xi plus judicieusement. C’est lastratégie qui est utilisée pour obtenir les quadratures de Gauss. Le degré de préci-sion des quadratures de Gauss avec n+1 points est 2n+1. Pour illustrer commentobtenir la formule dans le cas n = 1, on cherche deux points d’intégration x0,x1(avec xi 2 (�1,1)) et deux poids d’intégration w0 et w1 tels que la formule dequadrature Q2 = w0 f (x0)+w1 f (x1) soit exacte pour tout polynôme de degré 3.Les quatre conditions qui doivent être satisfaites par les quatre inconnues sont,

51

Page 52: MAT2412. Analyse Numérique I

doncZ 1

�1dx = 2 = w0 +w1,

Z 1

�1x dx = 0 = w0x0 +w1x1,

Z 1

�1x2 dx =

23= w0x2

0 +w1x21,

Z 1

�1x3 dx = 0 = w0x3

0 +w1x31.

En supposant (comme est le cas) que x0 = �x1, nous sommes amenés aux équa-tions

w0 +w1 = 2,x0(w0�w1) = 0,

x20(w0 +w1) =

23,

x30(w0�w1) = 0,

un système qui a une solution (w0,w1,x0,x1) = (1,1,�1/p

3,1/p

3). On conclutque la formule de quadrature

Q2 = f (�1/p

3)+ f (1/p

3),

a un degré de précision 3 sur [�1,1].N.B. Pour évaluer une intégrale définie sur un intervalle [a,b], on peut utiliser

le changement de variables

x = as+b =2s� (a+b)

b�a,

où a =2

b�a, b =

a+ba�b

, ce qui donne

Z b

af (s) ds =

b�a2

Z 1

�1g(x) dx,

où g(x) = f (s) = f✓

x�ba

◆.

52

Page 53: MAT2412. Analyse Numérique I

4.6.7.1 Cas général

Préliminaires: Polynômes de Legendre

Les polynômes de Legendre Pi(x) (i = 0,1,2, . . .) ont les propriétés suivantes:

1. Pour chaque n, Pn(x) est un polynôme de degré n.

2. Les polynômes de Legendre sont mutuellement orthogonaux sur [�1,1]:Z 1

�1Pj(x)Pk(x) dx = 0 si j 6= k.

Par conséquent, puisqu’on peut toujours développer un polynôme P(x) dedegré n en terme des polynomes de Legendre de degré au plus n:

P(x) =n

Âi=0

aiPi(x), avec ai =

R 1�1 P(x)Pi(x) dxR 1�1 P2

i (x) dx,

il suit que, pour chaque polynôme P de degré n,Z 1

�1P(x)Pn+1(x) dx = 0.

Les premiers quelques polynômes de Legendre sont

P0(x) = 1,P1(x) = x,P2(x) =12(3x2�1),

P3(x) =12(5x3�3x), et P4(x) =

18(35x4�30x2 +3).

Les zéros (racines) de ces polynômes sont distincts, se trouvent dans l’intervalle(�1,1) et possèdent une symétrie par rapport à 0. Les polynômes satisfont à

Z 1

�1Pi(x)2 dx =

22i+1

.

Théorème (Théorème 4.7 BF)Soit x0, . . . ,xn les (n+1) racines de Pn+1(x), le polynôme de Legendre de degré

(n+1) et soit les poids wi (i = 0, . . . ,n) définis par

wi =Z 1

�1Pn

j=0, j 6=i

✓x� x j

xi� x j

◆dx.

53

Page 54: MAT2412. Analyse Numérique I

Alors, si P(x) est un polynôme de degré au plus (2n+1)Z 1

�1P(x) dx =

n

Âi=0

wiP(xi).

Démonstration

Considérons premièrement un polynôme P(x) de degré au plus n. On peut écrire

P(x) =n

Âi=0

Pnj=0, j 6=i

✓x� x j

xi� x j

◆P(xi), (20)

où le membre de droite de (20) est le polynôme d’interpolation et l’équation (20)est exacte. (L’erreur d’interpolation nécessite l’évaluation de la (n + 1)-ièmedérivée de P, qui est zéro). Intégrant (20) partout par rapport à x entre �1 et1 on obtient

Z 1

�1P(x) dx =

Z 1

�1

"n

Âi=0

Pnj=0, j 6=i

✓x� x j

xi� x j

◆P(xi)

#dx,

=n

Âi=0

Z 1

�1Pn

j=0, j 6=i

✓x� x j

xi� x j

◆dx�

P(xi) =n

Âi=0

wiP(xi).

Si le polynôme P(x) de degré au moins n+ 1 mais au plus 2n+ 1 est divisé parle (n+ 1)-ième polynôme de Legendre Pn+1 on obtient deux polynômes Q(x) etR(x), tous les deux de degré moins que n+1, tels que

P(x) = Q(x)Pn+1(x)+R(x).

Puisque xi (i = 0, . . . ,n) est un zéro de Pn+1(x) on a

P(xi) = R(xi).

Puisque le degré de Q(x) est inférieur à n+1,Z 1

�1Q(x)Pn+1(x) dx = 0.

De la première partie de la démonstration, puisque R(x) est un polynôme de degrémoins que n+1 Z 1

�1R(x) dx =

n

Âi=0

wiR(xi).

54

Page 55: MAT2412. Analyse Numérique I

En conclusion,Z 1

�1P(x) dx=

Z 1

�1[Q(x)Pn+1(x)+R(x)] dx=

Z 1

�1R(x) dx=

n

Âi=0

wiR(xi)=n

Âi=0

wiP(xi).

exemple 1. (n = 2)

Soit n = 2. Alors, Pn+1(x) = P3(x) =12(5x3�3x) et ses racines sont

x0 =�r

35,x1 = 0,x2 =

r35.

Les poids

w0 = w2 =Z 1

�1

✓x� x1

x0� x1

◆✓x� x2

x0� x2

◆dx,

=Z 1

�1

0

@ x�0

�q

35 �0

1

A

0

@x�q

35

�q

35 �q

35

1

A dx =59.

w1 =Z 1

�1

✓x� x0

x1� x0

◆✓x� x2

x1� x2

◆dx,

=Z 1

�1

0

@x+q

35

0+q

35

1

A

0

@x�q

35

0�q

35

1

A dx =89.

exemple 2. MATLAB

Z p2

� p2

cosy dy✓=

p2

Z 1

�1cos

px2

dx◆.

Solution exacte = 2.

55

Page 56: MAT2412. Analyse Numérique I

4.6.8 Intégrales multiples

Intégration sur un rectangle

Considérons l’intégrale double

I =Z Z

Wf (x,y) dxdy, (21)

avec W la région rectangulaire

W = {(x,y) : a x b,c y d},

et a,b,c,d des constantes. On peut évaluer l’intégrale (21) comme une successiond’intégrales à une variable. C’est à dire (21) peut s’écrire

I =Z b

aF(x)dx, (22)

avecF(x) =

Z d

cf (x,y) dy. (23)

Pour illustrer l’idée générale on employera la méthode des trapèzes composée. Oncommence avec la création d’un maillage uniforme (xi,y j) (i = 0,1, . . . ,n, j =0,1, . . . ,m) sur W avec xi = a+ iDx et y j = c+ jDy. Maintenant, on utilise laméthode des trapèzes successivement sur les intégrales (23) et (22). C’est à dire,prenant x comme une constante on approxime

F(x) =Z d

cf (x,y) dy⇡ Dy

2

m

Âj=1

( f (x,y j)+ f (x,y j�1)),

et donc

I ⇡ Dx2

n

Âi=1

(F(xi)+F(xi�1)),

⇡ DxDy4

n

Âi=1

m

Âj=1

[ f (xi,y j)+ f (xi,y j�1)+ f (xi�1,y j)+ f (xi�1,y j�1)],

avec un terme d’erreur

�(b�a)(d� c)12

(Dx)2 ∂ 2 f

∂x2 (ex , eh)+(Dy)2 ∂ 2 f

∂y2 (bx , bh)

�,

56

Page 57: MAT2412. Analyse Numérique I

pour quelques (ex , eh) et (bx , bh) dans W.

exemple (Quadrature de Gauss en deux dimensions) (Exemple 2 de BF, page 240)

On prend

I =Z 2

1,4

Z 1,5

y=1ln(x+2y) dx dy.

Il faut transformer la région d’intégration W en

bW = [�1,1]⇥ [�1,1],

et la transformation linéaire qui l’accomplit est

x = 0,3u+1,7, y = 0,25v+1,25.

Avec ce changement de variables

I = 0,075Z 1

�1

Z 1

�1ln(0,3u+0,5v+4,2)dudv.

La méthode de Gauss avec n+1 noeuds ui dans la direction u et m+1 noeuds v jdans la direction v devient

I ⇡ 0,075n

Âi=0

m

Âj=0

wiw j ln(0,3ui +0,5v j +4,2).

Avec n = m = 2 on utilise (voir l’exemple avant) les poids w0 = w2 = 5/9, w1 =8/9 et les noeuds u0 = v0 =�

p3/5, u1 = v1 = 0, u2 = v2 =

p3/5. Alors,

I ⇡ 0,4295545313,

qui a une erreur inférieure à 4,8⇥10�9.

Intégration sur un domaine non-rectangulaire

Supposons que nous voulions approximer

I =Z b

x=a

Z d(x)

c(x)f (x,y) dy dx,

57

Page 58: MAT2412. Analyse Numérique I

avec la méthode des trapèzes composées ayant, comme avant, n+1 noeuds dansla direction x et m+ 1 noeuds dans la direction y. Cette fois, bien que le pas Dxdans la variable x demeure Dx = (b� a)/n, le pas Dy varie en fonction de x. Enfait

Dy(x) =d(x)� c(x)

m,

tel que

I⇡ Dx4

n

Âi=1

m

Âj=1

Dy(xi)( f (xi,y j)+ f (xi,y j�1))+Dy(xi�1)( f (xi�1,y j)+ f (xi�1,y j�1)).

58

Page 59: MAT2412. Analyse Numérique I

5 Systèmes d’équations algébriques

Un système linéaire d’équations général s’écrit :

Ax= b,

où x est un vecteur à N inconnues, A une matrice N⇥N et b un vecteur à N élé-ments contenant des termes connus. Il existe deux grandes familles de techniquesde résolution pour les systèmes algébriques: les méthodes directes et les méthodesitératives.

Les méthodes directes sont basées sur un nombre fini et prédéterminé d’opérationsarithmétiques conduisant à la solution exacte.Les méthodes itératives sont, elles, basées sur une succession de solutions ap-proximatives conduisant à la solution exacte après un nombre théoriquement in-fini d’itérations.Les critères de comparaison de ces méthodes sont les suivants :

1. Le temps de calcul, mesuré par le nombre d’opérations nécessaires pourobtenir la solution du problème posé.

2. Les problèmes de stockage, mesurés par la taille mémoire nécessaire pourenregistrer les éléments des matrices des systèmes d’équations, en partic-ulier pour la matrice A ou pour toute autre matrice impliquée dans le pro-cessus de calcul.

5.1 Méthode d’élimination de Gauss

Le principe de base consiste à utiliser la première équation pour éliminer la pre-mière variable des N � 1 équations restantes, la nouvelle seconde équation estutilisée alors pour éliminer la seconde variable dans les N � 2 autres équationset ainsi de suite. Si donc, N� 1 éliminations successives de ce type sont effec-tuées, le résultat final est un système linéaire triangulaire supérieur, qui est facileà résoudre.

En général, soit :Ax= b,

59

Page 60: MAT2412. Analyse Numérique I

0

BBB@

a11 a12 . . . a1Na21 a22 . . . a2N

......

......

aN1 aN2 . . . aNN

1

CCCA

0

BBB@

x1x2...

xN

1

CCCA=

0

BBB@

b1b2...

bN

1

CCCA,

le système d’équations à résoudre. On supposera par la suite que la matriceest non-singulière et que tous les éléments diagonaux tout au long du processusd’élimination sont non nuls.

Éliminons tout d’abord x1 des N�1 autres équations en soustrayant des i�èmeséquations autre que la première équation la quantité

(ai1/a11)⇥ (la première équation), i = 2, . . . ,N.

Dans ces conditions le système d’équations devient :0

BBB@

a11 a12 . . . a1N0 a2

22 . . . a22N

......

......

0 a2N2 . . . a2

NN

1

CCCA

0

BBB@

x1x2...

xN

1

CCCA=

0

BBB@

b1b2

2...

b2N

1

CCCA,

où les a2i j et les b2

i sont les valeurs des ai j et des bi après le premier pas de laprocédure d’élimination. Les nouveaux coefficients sont alors donnés par :

a2i j = ai j�

ai1

a11a1 j = ai j�mi1a1 j, i = 2,3, . . . ,N, j = 2,3, . . . ,N,

avec

mik =

ak

ikak

kk

!et a1

i1 = ai1 8i,

b2i = bi�

✓ai1

a11

◆b1 = bi�mi1b1, i = 2,3, . . . ,N.

On obtient ainsi un système de N�1 équations à N�1 inconnues x2,x3, . . . ,xN .On répète alors le processus pour éliminer x2 des N�2 équations restantes. On

obtient ainsi un système de N� 2 équations à N� 2 inconnues x3,x4, . . . ,xN . Le

60

Page 61: MAT2412. Analyse Numérique I

nouveau système à résoudre aura une forme similaire au système précédent.

a333x3 +a3

34x4 + . . .= b33

a343x3 +a3

44x4 + . . .= b34

...

a3N3x3 +a3

N4x4 + . . .= b3N .

Au k�ième pas (k = 1, . . . ,N�1) on a

mik =

ak

ikak

kk

!(24)

ak+1i j = ak

i j�mikakk j, i = k+1, . . . ,N, j = k+1, . . . ,N, (25)

bk+1i = bk

i �mikbkk, i = k+1, . . . ,N. (26)

et après N�1 pas on est conduit à une seule équation

aNNNxN = bN

N ) xN = bNN/aN

NN . (27)

A ce stade, on a le système suivant :

a11x1 +a12x2 + . . .a1NxN = b1

a222x2 +a2

23x3 + . . .a22NxN = b2

2...

aNNNxN = bN

N .

Ainsi, on a réduit le système original à un système triangulaire supérieur. Il estalors aisé de résoudre ce nouveau système. On commence par la dernière ligne.On calcule immédiatement xN . Puis par un processus itératif, on résout l’équationprécédente pour trouver l’inconnue xN�1 et ainsi de suite jusqu’à la première équa-tion. C’est-à-dire, pour k = N�1, . . . ,1

xk =

"bk

k�N

Âj=k+1

akk jx j

#/ak

kk. (28)

exemple MATLAB A = spiral(4)

61

Page 62: MAT2412. Analyse Numérique I

5.1.1 Nombre d’opérations

Au k�ième pas de l’algorithme de Gauss, (24) requiert que (N � k) divisionssoient faites. Ensuite, (25)-(26) nécessitent que mik soit multiplié par ak

k j ou parbk

k qui résulte en un total de (N� k)(N� k+1) multiplications. (25)-(26) deman-dent aussi que (N� k)(N� k+1) soustractions soient faites. Donc, pour chaquek, le nombre d’opérations dans (24) et (25)-(26) est

Multiplications/divisions

(N� k)+(N� k)(N� k+1) = (N� k)(N� k+2)

Additions/soustractions(N� k)(N� k+1)

Le nombre total d’opérations requis par les deux étapes (24) et (25)-(26) estobtenu en sommant de k = 1 à N�1.

Rappel Âmj=1 1 = m, Âm

j=1 j = m(m+1)2 , et Âm

j=1 j2 = m(m+1)(2m+1)6 .

Il s’en suit que les nombres totaux d’opérations sont comme suit:

Multiplications/divisions

N�1

Âk=1

(N� k)(N� k+2) =N�1

Âk=1

(N2�2Nk+ k2)+(2N� k) = (N2 +2N)N�1

Âk=1

1�2(N +1)N�1

Âk=1

k+N�1

Âk=1

k2

= (N2 +2N)(N�1)�2(N +1)N(N�1)

2+

(N�1)N(2N�1)6

=2N3 +3N2�5N

6.

Additions/soustractions

N�1

Âk=1

(N� k)(N� k+1) =N�1

Âk=1

(N2�2Nk+ k2 +N� k) = (N2 +N)N�1

Âk=1

1� (2N +1)N�1

Âk=1

k+N�1

Âk=1

k2,

=N3�N

3.

Les autres étapes dans l’algorithme demandant des opérations arithmétiques sontdonnés par (27) et (28). Dans (27) il y a une division. L’étape (28) nécessite

62

Page 63: MAT2412. Analyse Numérique I

(N� k) multiplications et (N� k�1) additions pour chaque k et après une sous-traction et une division. Le nombre total d’opérations dans les étapes (27) et (28)est donc comme suit:

Multiplications/divisions

1+N�1

Âk=1

((N� k)+1) =N2 +N

2.

Additions/soustractionsN�1

Âk=1

((N� k�1)+1) =N2�N

2.

Le nombre total d’opérations dans l’algorithme d’élimination de Gauss est donc

Multiplications/divisions

2N3 +3N2�5N6

+N2 +N

2=

N3

3+N2� N

3.

Additions/soustractions

N3�N3

+N2�N

2=

N3

3+

N2

2� 5N

6.

Donc, pour N grand, le nombre de multiplications et de divisions est approxi-

mativement égal àN3

3, comme est aussi le cas pour le nombre d’additions et de

soustractions.

exemple MATLAB pour le nombre d’opérations.

5.2 Décomposition LU

Le principe de la méthode est le suivant : Supposons que l’on ait un moyen pourdécomposer ou factoriser la matrice A en un produit d’une matrice triangulaireinférieure L et une matrice triangulaire supérieure U telle que A = LU où

L =

0

BBB@

`11 0 . . . 0`21 `22 . . . 0...

......

...`N1 `N2 . . . `NN

1

CCCA

63

Page 64: MAT2412. Analyse Numérique I

et

U =

0

BBB@

u11 u12 . . . u1N0 u22 . . . u2N...

......

...0 0 . . . uNN

1

CCCA.

Le système Ax= b se met alors sous la forme

LUx= Ly = b,

avecy =Ux.

On peut alors résoudre le système Ax= b en deux étapes :

Étape 1 On résout le système triangulaire inférieur :

Ly = b (substitution avant)

Étape 2 On résout le système triangulaire supérieur :

Ux= y (substitution arrière)

L’intérêt de la décomposition est évident, puisque les matrices sont triangulairesles résolutions intermédiaires consistent en de simples substitutions (voir la méth-ode de Gauss). Des telles substitutions ne demandent que O(N2) opérations. Si lamatrice A est décomposée en la forme triangulaire A= LU le nombre d’opérationsrequis pour l’étape 1 est O(N2) et après l’étape 2 requiert un nombre O(N2)d’opérations supplémentaires. Donc, le nombre d’opérations dont on a besoinpour résoudre le système Ax= b est réduit de O(N3) à O(N2). Bien sûr, il y a unprix à payer : la détermination de L et U nécessite un nombre O(N3) d’opérationsarithmétiques, mais une fois que A soit décomposé le système Ax = b peut êtrerésolu avec l’algorithme LU pour n’importe quel nombre de vecteurs b différents.

Théorème (Théorème 6,17 de BF)

Si l’élimination de Gauss peut être utilisée pour résoudre le système linéaired’équations Ax = b sans effectuer un échange de lignes, alors la matrice A peut

64

Page 65: MAT2412. Analyse Numérique I

être exprimée comme le produit d’une matrice triangulaire inférieure L et unematrice triangulaire supérieure U avec

L =

0

BBBBB@

1 0 . . . 0a1

21/a111 1 . . . 0

a131/a1

11 a232/a2

22 . . . 0...

......

...a1

N1/a111 a2

N2/a222 . . . 1

1

CCCCCA=

0

BBBBB@

1 0 . . . 0m21 1 . . . 0m31 m32 . . . 0

......

......

mN1 mN2 . . . 1

1

CCCCCA(29)

et

U =

0

BBB@

a111 a1

12 . . . a11N

0 a222 . . . a2

2N...

......

...0 0 . . . aN

NN

1

CCCA. (30)

Dans les équations (29) et (30)

ak+1i j = ak

i j�mikakk j, i = k+1, . . . ,N, j = k+1, . . . ,N, (31)

mik =

ak

ikak

kk

!(32)

Démonstration

Nous avons vu déjà que par la méthode d’élimination de Gauss le système orig-inal Ax = b est réduit à un système triangulaire Ux = y avec une matrice decoefficients triangulaire supérieure U comme définie en (30). À partir de (31) et(32) on peut écrire

U = M(N�1) . . .M(1)A,

M(k) =

0

BBBBBBBBBBB@

1 0 . . . 0 . . . . . . 0

0 . . . . . . ......

... . . . 1 0...

... 0 1 . . . ...

... �mk+1,k. . . . . . ...

...... . . . 1 0

0 . . . . . . �mN,k . . . 0 1

1

CCCCCCCCCCCA

, k = 1, . . . ,N�1, (33)

65

Page 66: MAT2412. Analyse Numérique I

de sorte que Ux puisse s’écrire

Ux= M(N�1) . . .M(1)Ax= M(N�1) . . .M(1)b.

Notons N(k) l’inverse de M(k) . Alors

N(k) =

0

BBBBBBBBBBB@

1 0 . . . 0 . . . . . . 0

0 . . . . . . ......

... . . . 1 0...

... 0 1 . . . ...

... mk+1,k. . . . . . ...

...... . . . 1 0

0 . . . . . . mN,k . . . 0 1

1

CCCCCCCCCCCA

, k = 1, . . . ,N�1. (34)

La matrice L peut être exprimée sous la forme L = N(1) . . .N(N�1). Donc on voiten conclusion que

LU = A) LUx= Ax= b.

exemple MATLAB

5.3 Pivotage

En résolvant les systèmes linéaires Ax = b avec la méthode d’élimination deGauss dans la Section 5,1 nous avons supposé que les entrées diagonales ak

kkétaient non-nulles. Evidemment, ce n’est pas toujours le cas et même si ces piv-ots sont tous non-nuls c’est parfois nécessaire de changer l’ordre des lignes pourréduire les erreurs d’arrondi.

exemple

ex1 + x2 = 2, (35)x1 + x2 = 3. (36)

La méthode d’élimination de Gauss nous mène au système triangulaire supérieure:

ex1 + x2 = 2,✓

1� 1e

◆x2 = 3� 2

e,

66

Page 67: MAT2412. Analyse Numérique I

dont la solution exacte est

x1 =1

1� e, x2 =

2�3e1� e

.

Pour voir ce qui se passerait en arithmétique virgule flottante pour e suffisammentpetit on écrit

x2 = (2�3e)(1+ e + e2 + e3 + . . .)⇡ 2�3e +2e = 2� e.

Donc, pour 0 < e < eps/2 f l(x2)⇡ 2 et alors

f l(x1) = 2�2 = 0.

Géométriquement

Le remède au problème des erreurs d’arrondi ci-dessus est de changer l’ordredes équations (ce qui est équivalent à un échange des deux lignes de la matrice2⇥2 A des coefficients). Cette fois on aurait le système réduit

x1 + x2 = 3,(1� e)x2 = (2�3e),

qui implique, comme avant, que f l(x2) = 2 pour e suffisamment petit, mais quecette fois f l(x1) = 3� f l(x2) = 1.

5.3.1 Pivotage partiel avec changement d’échelle

L’exemple ci-dessus illustre ce qui peut se passer lorsque le pivot akkk est petit par

rapport aux éléments aki j (k i N, k j N) d’une matrice N⇥N A.

67

Page 68: MAT2412. Analyse Numérique I

La stratégie la plus simple (pivotage partiel) est de déterminer le plus petit p� ktel que

|akpk|= max

kiN|ak

ik|,

et de faire un échange des lignes k et p. Si akpk = 0 la matrice est singulière.

Cette stratégie marche pour la plupart de systèmes linéaires mais peut échouer.Considérons, par exemple (voir BF, page 375)

30x1 +591400x2 = 591700,5,291x1�6,130x2 = 46,78,

qui a la solution exacte x1 = 10,x2 = 1. La valeur maximale dans la premièrecolonne est 30 et travaillant en système décimale avec 4 chiffres après la virgulem21 = 5,291/30 = 0,1764 . Le système réduit devient

30x1 +591400x2 = 591700,�104300x2 =�104400,

qui a la solution x1 =�10,x2 = 1,001.La stratégie de pivotage partiel avec changement d’échelle met dans la position

du pivot l’élément qui est le plus grand rélatif aux autres éléments dans sa ligne.Commençons en définissant un facteur d’échelle si (calculé une fois pour chaqueligne) comme

si = max1 jN

|ai j|.

Si, pour quelque i, si = 0 la matrice est singulière. Autrement, pour obtenir unpivot qui sera utilisé pour faire apparaître des zéros dans la première colonne, onchoisit le p le plus petit tel que

|ap1|sp

= max1iN

|ai1|si

,

et on effectue un changement des lignes 1 et p de la matrice A. Pour le k-ièmepivot on choisit l’entier le plus petit p� k avec

|akpk|

sp= max

kiN

|akik|

si,

et on effectue le changement des k-ième et p-ième lignes.

68

Page 69: MAT2412. Analyse Numérique I

Pour l’exemple précédent la stratégie de pivotage partiel avec changement d’échellenous donne

s1 =max{|30,00|, |591400|}= 591400, et s2 =max{|5,291|, |�6,130|}= 6,130.

Par conséquent,

|a11|s1

=30,00

591400= 0,5073⇥10�4, et

|a21|s2

=5,2916,130

= 0,8631

et l’échange des deux lignes de la matrice des coefficients est fait. Si maintenanton utilise l’élimination de Gauss sur le nouveau système

5,291x1�6,130x2 = 46,78,30x1 +591400x2 = 591700,

le résultat (toujours travaillant avec seulement 4 chiffres après la virgule) est lasolution exacte x1 = 10,00, x2 = 1,000.

5.3.2 Pivotage complet

Pour résoudre les systèmes où la précision est essentielle et pour lesquels on peutjustifier le nombre d’opérations arithmétiques (voir ci-dessous) le pivotage com-plet est recommandé. Le pivotage complet au k-ième pas cherche tous les élé-ments ak

i j (k i, j N) de la matrice A pour trouver celui ayant le plus grandordre de grandeur. Après, les échanges des lignes et des colonnes sont éffectuéspour apporter cet élément à la (k,k)-ième position.

5.3.3 Nombre d’opérations

En plus des opérations d’élimination de Gauss le pivotage partiel avec changementd’échelle nécessite des opérations de comparaison et des opérations supplémen-taires de division.

Pour déterminer les facteurs d’échelle on aura besoin de (N�1) comparaisonspour chacune des N lignes, ce qui donne N(N�1) comparaisons.

Pour obtenir le premier pivot on a besoin de N divisions |ai1|/si, suivi par(N�1) comparaisons. Trouver le deuxième pivot nécessitera (N�1) divisions et(N� 2) comparaisons. On continue ainsi jusqu’au calcul du (N� 1)-ième pivot

69

Page 70: MAT2412. Analyse Numérique I

(qui réquiera 2 divisions et 1 comparaison). Le pivotage partiel avec changementd’échelle ajoute donc

N(N�1)+N�1

Âk=1

k = N(N�1)+(N�1)N

2=

32

N(N�1) comparaisons

etN

Âk=2

k =

N

Âk=1

k

!�1 =

N(N +1)2

�1 divisions

aux opérations d’élimination de Gauss.Pour le pivotage complet le nombre de comparaisons à la première étape vaut

N2�1, deuxième (N�1)2�1 etc. Puisqu’il n’y a pas de divisions à faire, le nom-bre d’opérations supplémentaires à ajouter au total pour l’élimination de Gauss est

N

Âk=2

(k2�1) =N(N�1)(2N +5)

6= O(N3)

5.3.4 Matrices de permutation

Une matrice de permutation P est obtenue en permutant les lignes de la matriced’identité N⇥N. Ensuite, le produit PA sera la matrice qui résulte de A en faisantles mêmes échanges de lignes. Par exemple, pour échanger les lignes i et j de Aon utiliserait la matrice de permutation Pi j:

Nous avons déjà vu que pour une matrice non-singulière A, le système Ax = bpeut être résolu par l’élimination de Gauss, avec la possibilité d’échanges de ligne.On peut toujours effectuer tous ces échanges avant, et après utiliser la méthode del’élimination de Gauss. C’est à dire, il existe une matrice de permutation P telleque

PAx= Pb= eb,

70

Page 71: MAT2412. Analyse Numérique I

peut être résolu sans échange de lignes. Une décomposition LU de PA nous amèneà

LUx= eb.exemples MATLAB

Lorsqu’on utilise le pivotage complet on aura une matrice de permutation delignes P et une matrice de permutation de colonnes Q avec

PAQ = LU ) LUQ�1x= Pb.

5.4 Rappel des propriétés de l’inverse et du déterminant d’une

matrice (voir MAT1600)

Définition

Une matrice A 2 RN⇥N est non-singulière (ou inversible) si une matrice A�1

existe avec AA�1 = A�1A = I. La matrice A�1 s’appelle l’inverse de A. Unematrice qui ne possède pas d’inverse s’appelle une matrice singulière (ou non-inversible).

Théorème (6,11 BF, page 374)

Pour n’importe quelle matrice N⇥N non-singulière A

(a) A�1 est unique,

(b) A�1 est non-singulière et (A�1)�1 = A,

(c) Soit B une matrice N⇥N non-singulière. Alors (AB)�1 = B�1A�1.

Pour obtenir l’inverse d’une matrice AN⇥N on pourrait utiliser la méthode d’éliminationde Gauss pour résoudre les N systèmes simultanément AX = I, où I est la ma-trice identité, auquel cas A�1 = X . L’élimination de Gauss avec les substitutionsarrières, sans tenir compte de la structure de I, nécessiterait 4N3/3�N/3 opéra-tions M/D et 4N3/3�3N2/2+N/6 opérations A/S pour résoudre les N systèmeslinéaires.

Définition (6,14 BF, page 383)

Notons le déterminant d’une matrice carrée A par detA

71

Page 72: MAT2412. Analyse Numérique I

(a) Si A = [a] est une matrice 1⇥1, alors detA = a,

(b) Si A est une matrice N ⇥N, le mineur Mi j est le déterminant de la sous-matrice (N� 1)⇥ (N� 1) de A, obtenue en supprimant la i�ième ligne etla j�ième colonne de la matrice A,

(c) Le cofacteur Ai j associé à Mi j est défini par Ai j = (�1)i+ jMi j,

(d) Le déterminant de la matrice AN⇥N , lorsque N > 1 est donné soit par

detA=N

Âj=1

ai jAi j =N

Âj=1

(�1)i+ jai jMi j, pour n’importe quel i= 1,2, . . . ,N,

soit par

detA=N

Âi=1

ai jAi j =N

Âi=1

(�1)i+ jai jMi j, pour n’importe quel j = 1,2, . . . ,N.

On peut démontrer que pour calculer le déterminant d’une matrice N⇥N selonles définitions ci-dessus nécessite

N!N�1

Âk=1

1k!

opérations M/D et N!�1 opérations A/S.

Théorème (Théorème 6,16 BF)

Soit A une matrice N⇥N et notons la i�ième ligne de A par Li.

(a) Si une ligne ou une colonne de la matrice A n’a que des zéros, alors detA =0,

(b) Si A a deux lignes ou deux colonnes identiques, alors detA=0,

(c) Si eA est obtenue de A par l’échange des lignes Li ! Lk avec i 6= k, alorsdeteA =�detA,

(d) Si eA est obtenue de A par l’opération lLi �! Li, alors deteA = ldetA,

(e) Si eA est obtenue de A par l’opération Li + lLk �! Li avec i 6= k, alorsdeteA = detA,

72

Page 73: MAT2412. Analyse Numérique I

(f) Si B est aussi une matrice N⇥N, alors detAB = detAdetB,

(g) detAT = detA,

(h) Si A�1 existe, alors detA�1 = (detA)�1,

(i) Si A est une matrice triangulaire supérieure ou triangulaire inférieure, alorsdetA = PN

i=1aii. Donc, avec la décomposition LU d’une matrice AN⇥N onpeut calculer facilement le déterminant de A:detA = detLdetU = PN

j=1l j jPNi=1uii = PN

i=1uii.

Théorème (Théorème 6,17 BF)

Les énoncés suivants sont équivalents pour n’importe quelle matrice A2RN⇥N :

(a) A est non-singulière; c’est à dire, A�1 existe,

(b) L’équation Ax= 0 a la solution unique x= 0,

(c) L’équation Ax= b a une solution unique

(d) detA 6= 0,

(e) L’élimination de Gauss avec échanges de lignes peut être utilisée sur le sys-tème Ax= b pour n’importe quel vecteur b 2 RN .

5.5 Matrices spéciales (§6,6 BF)

Définition La matrice N ⇥ N A est dite à diagonale dominante stricte (DDS)lorsque

|aii|>n

Âj=1, j 6=i

|ai j|,

tient pour chaque i = 1,2, . . . ,N.

exemple

Considérer les matrices

A =

0

@7 2 03 5 �10 5 6

1

A , B =

0

@6 4 �34 �2 0�3 0 1

1

A

73

Page 74: MAT2412. Analyse Numérique I

Théorème

Si une matrice A est DDS, alors

1. A est non-singulière,

2. on peut utiliser l’élimination de Gauss sans avoir besoin de pivoter: il n’ya aucune division par zéro et la méthode sera stable par rapport aux erreursd’arrondi.

Démonstration

1. Par l’absurde. Considérons le système linéaire Ax= 0 et supposons qu’unesolution non-nulle x = (xi) de ce système existe. Soit k un indice pourlequel

0 < |xk|= max1 jN

|x j|.

Puisque

(Ax)i =N

Âj=1

ai jx j = 0,

pour chaque i = 1,2, . . . ,N nous avons, lorsque i = k,

akkxk =�N

Âj=1, j 6=k

ak jx j.

Ceci implique que

|akk||xk|N

Âj=1, j 6=k

|ak j||x j| ou |akk|N

Âj=1, j 6=k

|ak j||x j||xk|

N

Âj=1, j 6=k

|ak j|,

ce qui est impossible parce que la matrice A est DDS.

2. Pour démontrer que l’élimination de Gauss peut être faite sans les échangesdes lignes, nous démontrerons que chacune des matrices A2 = (a2

i j),A3 =

(a3i j), . . . ,A

N = aNNN engendrées par le processus d’élimination de Gauss est

DDS.

74

Page 75: MAT2412. Analyse Numérique I

Puisque A est DDS, a11 6= 0 et on peut former A2. Donc, pour chaque i =2,3, . . . ,N,

a2i j = ai j�mi1a1 j = ai j�

ai1

a11a1 j, pour 2 j N.

Rappel: en général ak+1

i j = aki j�mikak

k j = aki j�

akik

akkk

akk j.

!

N

Âj=2, j 6=i

|a2i j|=

N

Âj=2, j 6=i

����ai j�ai1

a11a1 j

����N

Âj=2, j 6=i

|ai j|+N

Âj=2, j 6=i

����ai1a1 j

a11

���� ,

< |aii|� |ai1|+|ai1||a11|

N

Âj=2, j 6=i

|a1 j|< |aii|� |ai1|+|ai1||a11|

(|a11|� |a1i|),

= |aii|�|ai1||a1i||a11|

����aii�

ai1a1i

a11

����= |a2ii|.

Définition

Une matrice A est (symétrique) définie positive si elle est symétrique (A = AT )et si, pour chaque vecteur non-nul x 2RN , xT Ax> 0. En terme des composantes

xT Ax=N

Âi=1

N

Âj=1

xiai jx j.

exemple

A =

0

@2 �1 0�1 2 �10 �1 2

1

A ,

On voit que A est symétrique. De plus, pour un vecteur x= (x1,x2,x3)T , xT Ax=2x2

1�2x1x2 +2x22�2x2x3 +2x2

3. On peut écrire

xT Ax= x21 +(x1� x2)

2 +(x2� x3)2 + x2

3 (� 0),

et xT Ax= 0() x1 = x2 = x3 = 0.

Donc, A est définie positive.

75

Page 76: MAT2412. Analyse Numérique I

Théorème (6,23, 6,26 et corollaires 6,27 et 6,28 BF)

1. Si A est une matrice (symétrique) définie positive, alors

(a) A est non-singulière,(b) aii > 0, pour chaque i = 1,2, . . . ,N,

2. (a) La matrice symétrique A est une matrice définie positive si et seule-ment si on peut utiliser l’élimination de Gauss sans les échanges delignes pour résoudre Ax= b avec tous les pivots positifs.

(b) A est symétrique définie positive si et seulement sii. A peut être factorisée dans la forme LDLT , avec L une matrice

triangulaire inférieure ayant des “1” sur la diagonale et D est unematrice diagonale avec les entrées diagonales positives,()

ii. A peut être factorisée (factorisation de Cholesky) dans la formeLLT , avec L une matrice triangulaire inférieure ayant les entréesdiagonales non-nulles.

Démonstration

1. (a) Supposons que A soit singulière. Alors, il existe un vecteur N⇥1 x 6=0 tel que Ax= 0 qui implique que xT Ax= 0, ce qui est incompatibleavec A définie positive.

(b) Pour i donné, soit x le vecteur N ⇥ 1 tel que xi = 1, mais x j = 0 sij 6= i. Alors, 0 < xT Ax= aii.

2. (a) sans démonstration,(b) i. ()) si l’on peut utiliser l’élimination de Gauss sans les échanges

de lignes pour résoudre Ax = b alors il existe une décomposi-tion LU de A avec uii 6= 0 (autrement A serait singulière.) Ondéfinit D = diag(u11,u22, . . . ,uNN) et on constate que D est non-singulière et que MT =D�1U est une matrice triangulaire supérieureavec les 1 sur la diagonale. Donc, A=LU =LD(D�1U)=LDMT .

La matrice M�1AM�T =M�1AU�1D=M�1LD est à la fois symétriqueet triangulaire inférieure et donc diagonale. Puisque D est non-singulière, ceci implique que M�1L est aussi diagonale. Mais

76

Page 77: MAT2412. Analyse Numérique I

M�1L est aussi une matrice triangulaire inférieure avec les 1 surla diagonale. Donc M�1L = I et on peut écrire A = LDLT .

ii. ()) Puisque les entrées uii de la matrice U sont les pivots dansl’élimination de Gauss sans échange de lignes, selon 2(a) di =uii > 0. Donc, la matrice G := Ldiag(

pd1,p

d2, . . . ,p

dN) estréelle, triangulaire inférieure avec les entrées diagonales positiveset A = GGT . G s’appelle le triangle de Cholesky.

(() (LLT )T = LT T LT = LLT et donc LLT est symétrique. Enoutre, 8x 6= 0

xT LLTx=(LTx)T (LTx)=vTv=N

Âi=1

v2i > 0, avecv=LTx.

Remarque: Voir aussi le critère de Sylvester (Théorème 6,25). Il faut et suffitque les N sous-matrices Ap = {ai j} 1 i, j p (pour p = 1, . . . ,N) aient leursdéterminants strictement positifs.

5.5.1 Algorithme de Cholesky

Soit AN⇥N une matrice (symétrique) définie positive. Alors, l’algorithme suivantcalcule une matrice triangulaire inférieure LN⇥N telle que A = LLT .

A =

0

BBB@

`11 0 . . . 0`21 `22 . . . 0...

... . . . 0`N1 `N2 . . . `NN

1

CCCA

0

BBB@

`11 `21 . . . `N10 `22 . . . `N2... . . . ...0 0 0 `NN

1

CCCA,

La (i, j)-ième composante de A

ai j =N

Âk=1

`ik`Tk j =

N

Âk=1

`ik` jk =min(i, j)

Âk=1

`ik` jk.

Lorsque i = 1 (première ligne)

`211 = a11) `11 =

pa11.

77

Page 78: MAT2412. Analyse Numérique I

Pour les colonnes j = 2 : N

a1 j = `11` j1) ` j1 =a1 j

`11

Lorsque i = 2 : N

aii =i

Âk=1

`2ik) `ii =

vuutaii�i�1

Âk=1

`2ik

Pour les colonnes j = i+1 : N

ai j =i

Âk=1

`ik` jk) ` ji =

ai j�

i�1

Âk=1

`ik` jk

!/`ii.

La factorisation de Cholesky d’une matrice définie positive AN⇥N ne réquiertque N3/6+N2/2� 2N/3 opérations M/D et N3/6�N/6 opérations A/S. (c.f.le nombre d’opérations avec l’élimination de Gauss pour une matrice inversibleN⇥N: N3/3+N2�N/3 M/D et N3/3+N2/2� 5N/6 A/S.) À ce total il faut,bien sûr, ajouter le nombre d’opérations réquis pour calculer les N racines carrées⇠ O(N).

exemple. Jacques et Judd (Chapman & Hall, 1987, p25)

Considérons

A =

0

@4 2 �22 10 2�2 2 3

1

A=

0

@`11 0 0`21 `22 0`31 `32 `33

1

A

0

@`11 `21 `310 `22 `320 0 `33

1

A .

Première étape: égaliser les entrées dans la première ligne pour obtenir

4 = `211) `11 = 2,

2 = `21`11) `21 = 1,�2 = `31`11) `31 =�1.

Deuxième étape: égaliser les entrées dans la deuxième ligne pour obtenir

10 = `221 + `2

22 = 1+ `222) `22 = 3,

2 = `21`31 + `32`22 =�1+ `32`22) `32 = 1.

78

Page 79: MAT2412. Analyse Numérique I

Dernière étape: égaliser les entrées dans la troisième ligne pour obtenir

3 = `231 + `2

32 + `233 = 1+1+ `2

33) `33 = 1.

C’est à dire0

@4 2 �22 10 2�2 2 3

1

A=

0

@2 0 01 3 0�1 1 1

1

A

0

@2 1 �10 3 10 0 1

1

A .

La décomposition de Cholesky nous fournit d’une méthode pour décider si oui ounon une matrice A est définie positive. (La définition formelle, xT Ax> 0,8x 6= 0n’est pas du tout facile, en général, à vérifier dans la pratique.) La factorisationde Cholesky ne réussit en arithmétique réelle que si A est (symétrique) définiepositive.

5.5.2 Matrices bande

Matrices tridiagonales et la factorisation de Crout/ méthode de Thomas

Soit A la matrice tridiagonale

A =

0

BBBBBBBBBBB@

a1 c1 0 . . . . . . 0

b1 a2 c2. . . ...

0 b2 a3. . .

... . . . . . . . . . . . . .... . . . . . 0

... . . . . . . aN�1 cN�10 . . . . . . 0 bN�1 aN

1

CCCCCCCCCCCA

On cherche une factorisation (selon Crout) avec la forme

A=

0

BBBBBBBBBBB@

r1 0 0 . . . . . . 0

s1 r2 0 . . . ...

0 s2 r3. . .

... . . . . . . . . . . . . .... . . . . . 0

... . . . . . . rN�1 00 . . . . . . 0 sN�1 rN

1

CCCCCCCCCCCA

0

BBBBBBBBBBB@

1 u1 0 . . . . . . 0

0 1 u2. . . ...

0 . . . 1 . . .... . . . . . . . . . . . . ...

. . . . . . 0... . . . . . . 1 uN�10 . . . . . . 0 0 1

1

CCCCCCCCCCCA

79

Page 80: MAT2412. Analyse Numérique I

où {ri,s j,uk} (1 i N,1 j,k N�1), sont les 3N�2 inconnues à déter-miner. On utilisera l’algorithme suivant:

Ligne 1 de A

r1 = a11, r1u1 = a12) u1 =a12

a11Ligne 2 de A

s1 = a21,

s1u1 + r2 = a22) r2 = a22� s1u1,

r2u2 = a23) u2 =a23

r2.

Ligne i de A

si�1 = aii�1,

si�1ui�1 + ri = aii) ri = aii� si�1ui�1,

riui = aii+1) ui =aii+1

ri.

L’algorithme 6,7 de Burden et Faires (p 408-409), basé sur l’algorithme décrit ci-dessus et sur les substitutions arrière et avant, ne nécessite que 5N�4 opérationsM/D et 3N� 3 opérations A/S pour résoudre un système N⇥N Ax = b dont lamatrice A est tridiagonale. Donc, l’avantage dans ce cas sur une méthode qui netient pas compte de la structure de A est évident.

exemple MATLAB

Généralisation: matrices bande

Définition

Une matrice AN⇥N est une matrice bande s’il existe les entiers p et q avec1 < p,q < N tels que ai j = 0 lorsque i+ p j ou j+ q i. Le nombre p est lenombre de diagonales au dessus, et incluant, la diagonale principale, sur lesquellesdes entrées non-nulles peuvent apparaître. Le nombre q est égal au nombre dediagonales en dessous, et incluant la diagonale principale, sur lesquelles des élé-ments non-nuls peuvent apparaître. Par exemple, pour une matrice tridiagonale

80

Page 81: MAT2412. Analyse Numérique I

p = q = 2. La largeur de bande est définie par w = p+ q� 1 et est le nombremaximal d’éléments non-nuls sur une ligne de A.

81

Page 82: MAT2412. Analyse Numérique I

6 Méthodes itératives

6.1 Norme vectorielle

Il existe plusieurs manières de définir la norme pour un vecteur. La plus connuede toutes est certainement la norme euclidienne:

x 2 RN )kxk2 = k(x1,x2, ...,xN)k2 =

sN

Âi=1

x2i , xi 2 R.

Cette norme représente géométriquement la longueur du vecteur. La définitiond’une norme est toutefois plus générale.

Définition

Une application k · k : V �! [0,•) (ici, V est un espace vectoriel réel) est diteune norme vectorielle si elle respecte les propriétés suivantes:

1. kvk � 0, 8 v 2V et kvk= 0, v = 0.

2. kavk= |a|kvk, 8 a 2 R, v 2V.

3. kv+uk kvk+kuk, 8 v, u 2V .

On peut facilement vérifier que la définition de la norme euclidienne satisfaitles propriétés ci-haut. Comme nous l’avons mentionné, il existe plusieurs normespour un même espace vectoriel. Si on se limite aux normes définies sur RN , ontrouve les normes p (� 1), dites naturelles, d’un vecteur x. Celles-ci se calculentde la manière suivante:

kxkp =

N

Âi=1

|xi|p!1/p

.

Lorsque p = 2, on retrouve bien sûr la définition de la norme euclidienne. Il y aégalement la norme dite infinie qui se définit comme suit:

kxk• = max1iN

|xi|

Cette dernière norme est l’une des plus utilisée avec la norme 2 et la norme 1.

82

Page 83: MAT2412. Analyse Numérique I

exemple

Trouvons les normes 1, 2 et • du vecteur x= (1,0,�1,�4)T . On obtient

kxk1 =4

Âi=1

|xi|= 1+0+1+4 = 6;

kxk2 =

vuut4

Âi=1

xi =q

1+0+(�1)2 +(�4)2 =p

18;

kxk• = max1in

|xi|= 4.

Comme on peut le constater, les différentes normes ne donnent pas des réponsesidentiques.

6.2 Norme matricielle

Un peu comme pour les vecteurs de RN , les matrices possèdent une norme. Envoici la définition.

Définition

Soient A,B 2 RN⇥N , l’espace vectoriel des matrices réelles de format N⇥N.Alors, l’application k ·k : RN⇥N �! [0,•) est une norme matricielle si elle satis-fait les propriétés suivantes:

1. kAk � 0, 8A 2 RN⇥N et kAk= 0, A = 0.

2. kbAk= |b |kAk et ce, pour tout scalaire b et tout A dans RN⇥N .

3. kA+Bk kAk+kBk et ce, pour tout A et B dans RN⇥N .

4. kABk kAkkBk et ce, pour tout A et B dans RN⇥N .

Regardons maintenant quelques normes matricielles.

Celles qui sont les plus utilisées, encore une fois nommées naturelles (ou in-duites), découlent des normes vectorielles décrites plus haut. Ainsi à chaque

83

Page 84: MAT2412. Analyse Numérique I

norme vectorielle, on peut faire correspondre une norme matricielle de la façonsuivante:

kAk= maxkxk=1

kAxk= maxkzk6=0

kAz/kzkk= maxkzk6=0

kAzkkzk , avec x,z 2 RN . (37)

Cette relation signifie que la norme naturelle d’une matrice correspond au maxi-mum de la norme du vecteur résultant de la multiplication de la matrice A par tousles vecteurs de norme égale à 1.

On voit que pour n’importe quel vecteur z, matrice A et norme naturelle k · k,nous avons la condition de compatibilité satisfaite:

kAzk kAk ·kzk,

puisque

kAk= maxy 6=0

kAykkyk �

kAzkkzk 8z 6= 0.

Vérifions la propriété 4. pour une norme naturelle:

kABk= maxx:kxk=1

kABxk kAk maxx:kxk=1

kBxk

= kAkkBk.

Sous la forme (37), il est difficile de calculer la norme d’une matrice A. Nousallons donc énoncer quelques résultats qui vont rendre la tâche plus facile.

Théorème

Si A = {ai j} 2 RN⇥N , la norme infinie satisfait la formule

kAk• = max1iN

N

Âj=1

|ai j|.

Démonstration

Premièrement, nous considérons x2RN tel que kxk• = 1 et posons b=Ax. Lanorme infinie de Ax correspondra au maximum des |bi|. Nous avons également:

|bi|=

�����

N

Âj=1

ai jx j

�����N

Âj=1

|ai j||x j|.

84

Page 85: MAT2412. Analyse Numérique I

Puisque nous travaillons avec des vecteurs x tels que kxk• = 1, nous obtenons

|bi|N

Âj=1

|ai j|.

Ainsi,

kAxk• := max1iN

|bi| max1iN

N

Âj=1

|ai j|.

Cela nous amène à l’inégalité suivante:

kAk• = maxkxk•=1

kAxk• max1iN

N

Âj=1

|ai j|.

Montrons maintenant l’inégalité dans l’autre sens. Soit i⇤, l’indice qui correspondà l’égalité suivante:

N

Âj=1

|ai⇤ j|= max1iN

N

Âj=1

|ai j|

Créeons également le vecteur x⇤ dont la norme infinie est égale à 1.

x⇤j =⇢

1, si ai⇤ j � 0;�1, si ai⇤ j < 0.

Nous obtenons donc

kAx⇤k• = max

1iN

�����

N

Âj=1

ai jx⇤j

������

�����

N

Âj=1

ai⇤ jx⇤j

�����=

�����

N

Âj=1

|ai⇤ j|

�����= max1iN

N

Âj=1

|ai j|.

Cela implique

kAk• = maxkxk•=1

kAxk• � max1iN

N

Âj=1

|ai j|,

d’où

kAk• = max1iN

N

Âj=1

|ai j|.

85

Page 86: MAT2412. Analyse Numérique I

Nous avons ainsi obtenu une formule pour trouver la norme infinie d’une matrice.

On a un résultat similaire pour la norme 1:

Théorème

A = {ai j} 2 RN⇥N , la norme 1 satisfait la formule

kAk1 = max1 jN

N

Âi=1

|ai j|.

Notez la différence entre les normes infinie et 1.

Démonstration

La preuve se fait de manière similaire à celle de la norme infinie.

Définition

Le rayon spectral d’une matrice A carrée, noté r(A), est défini de la manièresuivante:

r(A) = max |li|

où les li sont les valeurs propres de A. Il est à noter que les valeurs proprespeuvent être complexes et |li| représente le module d’un nombre complexe, engénéral (qui est un nombre réel positif ou nul).

Théorème

La norme 2 d’une matrice A 2 RM⇥N peut se calculer de la manière suivante:

kAk2 =q

r(AT A)✓=q

r(AAT )

◆.

(Remarque. A est inversible ) AAT est SD+ ) toutes ses valeurs propres sontpositives.)

86

Page 87: MAT2412. Analyse Numérique I

Démonstration

Premièrement, on démontrera qu’il existe un vecteur unitaire z 2RN t.q. AT Az=µ2z avec µ = kAk2.

Supposons que z soit le vecteur unitaire t.q.

kAzk2 = kAk2 := maxx:kxk2 6=0

kAxk2

kxk2.

Puisque z maximise la fonction

g(x) :=12kAxk2

2kxk2

2✓=

12xT AT AxxTx

=12

Âk(Â j ak jx j)(Â` ak`x`)Âm x2

m

il s’en suit que — g(x)|z = 0. Or,

∂g∂xi

=12 Âm x2

m�Âk(aki Â` ak`x`)+Âk( j ak jx jaki)

�� 1

2 Âk(Â j ak jx j)(Â` ak`x`)⇥2xi

(Âm x2m)

2

) ∂g∂xi

����x=z

=�AT Az�kAzk2

2z�

i = 0,

Donc, µ2 est une valeur propre de AT A où µ = kAzk2 = kAk2 et doit être laplus grande (= r(AT A)) parce que sinon, supposons que v soit un vecteur propreunitaire de AT A associé à une valeur propre l 2 > µ2. Dans ce cas-là

kAvk2 :=pvT AT Av =

pl 2vTv = |l |> kAk2,

ce qui contredit la définition d’une norme induite, donnée en (37).

exemple

Trouvons les normes matricielles 1, 2 et • de la matrice

A =

0

@2 1 12 3 21 1 2

1

A .

87

Page 88: MAT2412. Analyse Numérique I

Commençons par les normes infinie et 1.

kAk• = max1iN

N

Âj=1

|ai j|= max{4,7,4}= 7.

kAk1 = max1 jN

N

Âi=1

|ai j|= max{5,5,5}= 5.

Pour ce qui est de la norme 2, nous devons tout d’abord calculer les valeurs propresde AT A. On a

0 = det(AT A�l I)

= det

0

@9�l 9 8

9 11�l 98 9 9�l

1

A

= 25�53l +29l 2�l 3.

En résolvant cette équation, on obtient les trois valeurs propres de AT A:n

1,14+3p

19,14�3p

19o.

Ainsi,

kAk2 =q

r(AT A) =r

maxn

1,14+3p

19,14�3p

19o=

q14+3

p19

⇡ 5.2035.

Tout comme pour les vecteurs, il existe plusieurs autres types de normes ma-tricielles, par exemple, la norme de Frobenius pour une matrice A 2 Rm⇥n:

kAkF :=

sm

Âi=1

n

Âj=1

|ai j|2.

6.3 Bornes d’erreur et conditionnement

La norme matricielle est utile en analyse numérique afin de quantifier les erreurscommises lors d’approximations. Elle sert également à voir si la résolution d’un

88

Page 89: MAT2412. Analyse Numérique I

système linéaire de manière itérative est efficace ou non.

Supposons que nous ayons un système d’équations linéaires que l’on écrit sousla forme Ax = b. Nous voulons résoudre numériquement ce système. Commeremarqué avant, il existe deux types de façons de faire: la méthode directe etla méthode itérative. La première nous donne la solution exacte (en supposantqu’il n’y ait pas d’erreurs d’arrondi), mais demande beaucoup de temps de calcullorsque le système est grand. La deuxième peut être plus rapide et nous donne uneapproximation de la réponse, avec une tolérance désirée.

Définition

Soit ex une solution approximative du système Ax = b. On définit le vecteurrésidu r de la manière suivante:

r = b�Aex.

Ainsi, il serait naturel de penser que si krk est petit, alors ex est près de x.Cela est généralement vrai, mais ne constitue pas un bon critère dans certains cas.Passons à un exemple pour illustrer cela.

exemple (Exemple 1, Section 7,5 BF)

Soit le système suivant à résoudre:✓

1 21.0001 2

◆✓x1x2

◆=

✓3

3.0001

◆.

La solution est assez simple à trouver analytiquement et elle vaut x= (1,1)T .Maintenant, supposons qu’une méthode numérique nous donne une solutionex= (3,0)T et calculons le résidu.

r = b�Aex=

✓0

�0.0002

◆.

À ce moment, krk• = 0.0002, ce qui est très petit, mais on peut remarquer que lasolution approximée est loin d’être la véritable solution. Les deux droites décritespar le système d’équations sont très proches l’une de l’autre et la zone acceptableselon notre critère (par exemple, que la norme du résidu soit inférieure à 10�3) est

89

Page 90: MAT2412. Analyse Numérique I

très grande.

exemple MATLAB

Théorème

Supposons que ex soit une approximation de la solution de Ax = b, avec Aune matrice non-singulière, et que r soit le vecteur résidu pour ex. Alors, pourn’importe quelle norme matricielle naturelle, on a

kx� exk krk ·kA�1k,

et, si x 6= 0 et b 6= 0,

kx� exkkxk kAk ·kA�1kkrkkbk .

Démonstration

Puisque r = b�Aex = Ax�Aex et A est non-singulière, alors x� ex = A�1r.Donc,

kx� exk= kA�1rk kA�1k ·krk.De plus, puisque b = Ax, on a kbk kAk · kxk et donc 1/kxk kAk/kbk. Enconséquence, l’erreur absolue relative

kx� exkkxk kAk ·kA

�1kkbk krk.

Définition

Le nombre de conditionnement d’une matrice non-singulière A relatif à unenorme k ·k est

k(A) = kAkkA�1k.

Soit k ·k une norme induite. Alors,

kIk := maxx:kxk6=0

kIxkkxk = 1.

90

Page 91: MAT2412. Analyse Numérique I

Donc,1 = kAA�1k kAkkA�1k) k(A)� 1.

Si le problème est bien conditionné, le nombre de conditionnement sera prochede 1. Plus k(A) est grand, moins le système est bien conditionné et on doit utiliserdes méthodes exactes au lieu de méthodes itératives qui peuvent être plus rapides.Le problème qui nous est arrivé dans l’exemple ci-dessus provient du fait que lesystème est mal conditionné: k(A) = 60002 en norme infinie. C’est pour cette rai-son qu’avant d’utiliser une méthode itérative, nous devons vérifier si le problèmeest bien conditionné.

exemple. Calculons k2(A) (= kAk2kA�1k2, le nombre de conditionnement spec-tral) pour une matrice symétrique quelconque A 2 RN⇥N . On notera les valeurspropres de A par li (i = 1,2, . . . ,N).

kAk2 =q

r(AT A) =q

r(A2) =q

r(A)2 = r(A),

où r(A) est le rayon spectral de A = max1iN |li|.Soit A une matrice inversible. Alors, si xi est un vecteur propre de A avec valeur

propre li correspondante

Axi = lixi, A�1xi = l�1i xi.

Donc, pour une matrice symétrique et inversible A

kA�1k2 = r(A�1) =1

min1iN |li|,

etk2(A) =

max1iN |li|min1iN |li|

.

91

Page 92: MAT2412. Analyse Numérique I

6.4 Méthodes itératives de base

Pour simplifier, et pour s’appuyer sur un cas simple concret, considérons les équa-tions suivantes:

a11x1 +a12x2 +a13x3 +a14x4 = b1,

a21x1 +a22x2 +a23x3 +a24x4 = b2,

a31x1 +a32x2 +a33x3 +a34x4 = b3,

a41x1 +a42x2 +a43x3 +a44x4 = b4,

où tous les termes diagonaux sont non nuls. (Plus généralement, ÂNj=1 ai jx j = bi,

i = 1,2, . . . ,N ) xi =⇣

bi�ÂNj=1, j 6=i ai jx j

⌘/aii)

Le système ci-dessus peut être réécrit sous la forme :

x1 =1

a11(b1�a12x2�a13x3�a14x4),

x2 =1

a22(b2�a21x1�a23x3�a24x4),

x3 =1

a33(b3�a31x1�a32x2�a34x4),

x4 =1

a44(b4�a41x1�a42x2�a43x3). (38)

Remarque Ici on a supposé que aii 6= 0 8i. Notez, que si A 2 RN⇥N est unematrice non-singulière alors il existe une matrice de permutation P telle que tousles éléments sur la diagonale de PA sont non-nuls.

6.4.1 Méthode de Jacobi

a) Principe de la méthode

Appelons la première approximation de xi par x(1)i , la seconde par x(2)i , etc.et supposons que k d’entre elles aient été calculées, alors x(k)i est connue pouri = 1, . . . ,4. Par la suite, la méthode itérative de Jacobi exprime la (k+ 1)-ièmevaleur itérée exclusivement en fonction de termes de l’itération k, soit:

x(k+1)1 =

1a11

(b1�a12x(k)2 �a13x(k)3 �a14x(k)4 ),

x(k+1)2 =

1a22

(b2�a21x(k)1 �a23x(k)3 �a24x(k)4 ),

92

Page 93: MAT2412. Analyse Numérique I

x(k+1)3 =

1a33

(b3�a31x(k)1 �a32x(k)2 �a34x(k)4 ),

x(k+1)4 =

1a44

(b4�a41x(k)1 �a42x(k)2 �a43x(k)3 ). (39)

Cette technique peut évidemment être généralisée pour des systèmes de N équa-tions et on obtiendra

x(k+1)i =

bi�

N

Âj=1, j 6=i

ai jx(k)j

!/aii, i = 1,2, . . . ,N.

b) Formulation matricielle

Il est intéressant d’exprimer la matrice A = (ai j) comme la somme de ses élé-ments diagonaux, de ses termes strictement triangulaires inférieurs et de ses ter-mes strictement triangulaires supérieurs et d’écrire :

A = D+L+U,

avec, dans le cas simple traité,

L =

0

BB@

0 0 0 0a21 0 0 0a31 a32 0 0a41 a42 a43 0

1

CCA , U =

0

BB@

0 a12 a13 a140 0 a23 a240 0 0 a340 0 0 0

1

CCA , D =

0

BB@

a11 0 0 00 a22 0 00 0 a33 00 0 0 a44

1

CCA .

L’équation (38) peut être écrite sous la forme suivante:

Dx=�(L+U)x+b,

et la principe de la méthode de Jacobi (39) peut s’exprimer sous la forme :

x(k+1) =�D�1(L+U)x(k) +D�1b.

Pour calculer la solution au système, il faut se donner un certain x(0). On arrêteles itérations après qu’une certaine tolérance soit respectée que l’on dit, critèred’arrêt. Un de ces critères pourrait être d’avoir un petit résidu.

93

Page 94: MAT2412. Analyse Numérique I

6.4.2 Méthode de Gauss-Seidel

a) Principe de la méthode

La méthode de Gauss-Seidel est très similaire à celle de Jacobi, à une différenceprès. Lorsqu’on se déplace dans la grille de calcul, certains points sont mis à jourdès que leurs nouvelles valeurs sont disponibles. Considérons le système (38). Ildevient maintenant

x(k+1)1 =

1a11

(b1�a12x(k)2 �a13x(k)3 �a14x(k)4 ),

x(k+1)2 =

1a22

(b2�a21x(k+1)1 �a23x(k)3 �a24x(k)4 ),

x(k+1)3 =

1a33

(b3�a31x(k+1)1 �a32x(k+1)

2 �a34x(k)4 ),

x(k+1)4 =

1a44

(b4�a41x(k+1)1 �a42x(k+1)

2 �a43x(k+1)3 ). (40)

Cette technique peut évidemment être généralisée pour des systèmes de N équa-tions:

aiix(k+1)i +

i�1

Âj=1

ai jx(k+1)j +

N

Âj=i+1

ai jx(k)j = bi, i = 1,2,3, . . . ,N.

b) Formulation matricielle

De la même manière que pour la méthode de Jacobi, il est possible de donnerune formulation matricielle à la méthode de Gauss-Seidel en écrivant

Dx(k+1) =�Lx(k+1)�Ux(k) +b,

soit(D+L)x(k+1) =�Ux(k) +b,

ce qui donnex(k+1) =�(D+L)�1Ux(k) + (D+L)�1b.

6.4.3 Convergence des méthodes itératives de base

Les deux méthodes itératives décrites ci-dessus sont du type

x(k+1) = Tx(k) +d, (41)

94

Page 95: MAT2412. Analyse Numérique I

avec

T =�D�1(L+U), d= D�1b, (méthode de Jacobi),

T =�(D+L)�1U, d= (D+L)�1b, (méthode de Gauss-Seidel)

Une méthode itérative de la forme (41) dont T et d sont indépendants de k est diteune méthode stationnaire.

Il faut que T soit choisi tel qu’il existe un x qui satisfait à x= Tx+d. Notez,que pour que la méthode itérative (41) soit utile il faut que x soit aussi la solutionde Ax= b. () (I�T )A�1b= d.)

Théorème (c.f. Théorème 7.18 de BF)

Si r(T )< 1 alors g(x) = Tx+d a un point fixe x unique.

Démonstration

Par la définition d’un point fixe x, celui satisfait à l’équation

x= Tx+d, (I�T )x= d.

Il y aura une solution unique de cette équation, (et, donc, de l’équation Ax= b) ssila matrice (I�T ) est non-singulière. Pour démontrer l’inversibilité de I�T il est(nécessaire et) suffisant de montrer que toutes ses valeurs propres sont non-nulles.(Rappelez-vous qu’une matrice carrée A est singulière, ssi’l existe un vecteur x 6=0 tel que Ax= 0 et donc que 0 est une valeur propre de A.)

Les valeurs propres µ de (I�T ) satisfont

det((I�T )�µI) = 0, det(T � (1�µ)I) = 0,

et, donc,r(T )< 1) |1�µ|< 1,

qui veut dire que µ doit être non-nul.

Théorème (Théorème 7.19 de BF)

r(T )< 1 est la condition nécessaire et suffisante pour que les itérations x(k+1) =Tx(k) +d convergent vers le point fixe unique x, 8x(0).

95

Page 96: MAT2412. Analyse Numérique I

Démonstration

(Au cas où il existe une base de vecteurs propres de T pour RN)

On soustrait (41) de l’équation x = Tx+d (satisfaite par une solution exactex de Ax= b) pour obtenir

e(k+1) = Te(k),

où e(k) désigne l’erreur x�x(k) à la k-ième itération. Maintenant, supposonsqu’il existe une base de vecteurs propres de T pour RN (c’est le cas lorsque T estréel et symétrique, par exemple). Dans ces conditions, on peut développer l’erreurinitiale sous la forme

e(0) =N

Âi=1

givi,

(pour quelques constantes {gi}) et par la suite

e(k) = T ke(0) =N

Âi=1

gil ki vi.

Donc, e(k) convergera vers 0 lorsque k ! • pour e(0) arbitraire (() x(0) ar-bitraire) ssi |li| < 1 8i (() r(T ) < 1). Autrement dit, l’itération x(k+1) =Tx(k) +d convergera vers la solution unique de x = Tx+d pour x(0) arbitrairessi r(T )< 1.

Corollaire

Si k ·k est une norme naturelle quelconque, kTk< 1 est une condition suffisantepour que les itérations x(k+1) = Tx(k) +d convergent.

Démonstration

Supposons que l soit une valeur propre de T et que x soit un vecteur propreassocié, avec kxk= 1. Alors, puisque Tx= lx

|l |= |l |kxk= klxk= kTxk kTkkxk= kTk.

Donc r(T ) kTk.

96

Page 97: MAT2412. Analyse Numérique I

exemple. (Smith, exercice 14, p.320)

Pour les équations

x1 +2x2 +4x3 = 1,18

x1 + x2 + x3 = 3,

�x1 +4x2 + x3 = 7,

démontrer que la méthode de Jacobi est convergente mais que la méthode deGauss-Seidel diverge.

Solution

A = D+L+U =

0

@1 2 418 1 1�1 4 1

1

A .

Les valeurs propres µ de T , la matrice d’itération de Jacobi, sont les racines del’équation

det(�D�1(L+U)�µI) = 0,

) det(µD+L+U) = 0 = det

0

@µ 2 418 µ 1�1 4 µ

1

A= µ(µ2�1/4),

d’où µ = 0,±1/2, et donc les itérés convergent.Les valeurs propres l de la matrice d’itération de Gauss-Seidel sont les racines

de

det(�(D+L)�1U�l I) = 0

) det(lD+lL+U) = 0 = det

0

@l 2 4

18l l 1�l 4l l

1

A= l (l 2 +(7/4)l �2),

d’où l = 0,0.788,�2.538, et en conséquence les itérés vont diverger.

97

Page 98: MAT2412. Analyse Numérique I

exemple. Examen final A2006.

Question: La méthode de Jacobi pour la résolution du système de N équations

Ax= b,

avec A 2 RN⇥N ,x 2 RN et b 2 RN , peut s’exprimer sous la forme :

x(k+1) = TJx(k) +d,

où TJ 2 RN⇥N est la matrice d’itération de Jacobi et d 2 RN .La méthode de Jacobi pondérée est obtenue en prenant une combinaison linéaire

x(k+1) = (1�w)x(k) +w(TJx(k) +d),

où w 2 R est un paramètre de relaxation.

1. La méthode de Jacobi convergerait-elle vers la solution du système0

@1 1

212

12 1 1

212

12 1

1

A

0

@x1x2x3

1

A=

0

@222

1

A? (42)

Justifier votre réponse. [9 points]

2. Obtenir une expression pour la matrice d’itération T wJ de la méthode de

Jacobi pondérée en termes de I,A et D, la matrice d’identité, la matrice A etsa sous-matrice diagonale, respectivement. [4 points]

3. Écrire une équation qui exprime les valeurs propres µ de T wJ en fonction

des valeurs propres l de TJ . Ainsi, ou autrement, déterminer les valeurs dew pour lesquelles la méthode de Jacobi pondérée est convergente pour lesystème (42). [4+3 points]

Solution

(a)

A =

0

@1 1

212

12 1 1

212

12 1

1

A) D = I,L =

0

@0 0 012 0 012

12 0

1

A et U =

0

@0 1

212

0 0 12

0 0 0

1

A .

98

Page 99: MAT2412. Analyse Numérique I

TJ =�D�1(L+U) et donc l une valeur propre de TJ

) det(�D�1(L+U)�l I) = 0) det(lD+L+U) = 0.

C’est-à-dire,������

l 12

12

12 l 1

212

12 l

������= 0)

������

�l � 1

2�

0�1

2 �l�

12 l 1

212

12 l

������= 0,

)✓

l � 12

◆✓l 2� 1

4

◆+

✓12�l

◆✓14� l

2

◆= 0.

)✓

l � 12

◆(2l �1)(l +1) = 0) l =�1,

12

et12.

Donc, la méthode ne convergera pas (* r(TJ) = 1).

(b)

T wJ = (1�w)I +wTJ,

= (1�w)I�wD�1(A�D),

= (1�w)I +wI�wD�1A,

= I�wD�1A = I�wA, puisque D = I.

(c) Soit µ une valeur propre de T wJ . Alors,

det((1�w)I +wTJ�µI) = 0,, det(wTJ� (µ +w�1)I) = 0,

, det✓

TJ�1w(µ +w�1)I

◆= 0.

Alors,1w(µ +w�1) = l ) µ = wl +(1�w).

Pour que la méthode de Jacobi pondérée soit convergente on veut que |µ|< 1.

l =12)���1�

w2

���< 1) w 2 (0,4),

l =�1) |�2w +1|< 1) w 2 (0,1).

99

Page 100: MAT2412. Analyse Numérique I

Donc, il faut choisir w 2 (0,1).

Théorème

Si la matrice A est DDS alors les méthodes de Jacobi et Gauss-Seidel convergentvers la solution exacte de Ax= b pour tout x(0).

Démonstration

(Méthode de Jacobi).Pour H 2 RN⇥N quelconque, x un vecteur propre de H, l la valeur propre

correspondante et k ·k une norme vectorielle et une norme matricielle induite,

kHxkkxk kHk) |l | kHk, r(H) kHk.

A DDS)kTJk• < 1) r(TJ)< 1 et la méthode de Jacobi converge.

(Méthode de Gauss-Seidel: preuve 1).Soit x un vecteur propre de TGS et l la valeur propre correspondante. Alors,

lx= TGSx=�(D+L)�1Ux,

)l (D+L)x=�Ux. (43)

Soit |xk|= max1iN |xi|. La kième composante de (43) est

l (akkxk + Âj<k

ak jx j) =�Âj>k

ak jx j. (44)

Introduisonsa := Â

j<k

ak jx j

akkxk, b := Â

j>k

ak jx j

akkxk.

(N.B. |a|< 1 et |b |< 1.)

100

Page 101: MAT2412. Analyse Numérique I

Alors, (44) devient

l (1+a) =�b ,

) |l |= |b ||1+a|

|b |1� |a| .

Or, |a|+ |b | Âj 6=k

|ak j||akk|

|x j||xk|

< 1,

) |b |< 1� |a|) |b |1� |a| < 1.

) r(TGS)< 1 et la méthode de Gauss-Seidel converge.

(Méthode de Gauss-Seidel: preuve 2).Pour la méthode de Gauss-Seidel la matrice d’itération TGS = �(D+L)�1U et

ses valeurs propres l satisfont à

det(TGS�l I) = det(�(D+L)�1U�l I) = 0) det(U +l (D+L)) = 0.

Or, si A := D+L+U est DDS, alors pour |l | � 1 U +l (D+L) est aussi DDSet donc non-singulière. det(U +l (D+L)) = 0 est, par conséquent, impossible.Conclusion: il faut que |l |< 1 () r(TGS)< 1) et que la méthode de Gauss-Seidelconverge.

Théorème

Si A est symétrique définie-positive, alors la méthode de Gauss-Seidel converge.

6.4.4 Ordre de convergence

Considérons la méthode itérative

x(k+1) = Tx(k) +d,

et supposons que T 2 RN⇥N ait N valeurs propres li telles que

|l1|> |l2|� |l3|� . . .� |lN |.

Supposons, de plus, qu’il existe une base de vecteurs propres {v1, . . . ,vN} de T .

101

Page 102: MAT2412. Analyse Numérique I

Donc, on peut développer l’erreur

e(k) = x�x(k) =N

Âi=1

gil ki vi

⇣= T ke(0)

⌘,

et, en supposant que g1 6= 0, nous l’écrivons

e(k) = l k1

(g1v1 +

N

Âi=2

gi

✓li

l1

◆kvi

).

D’une manière pareille,

e(k+1) = l k+11

(g1v1 +

N

Âi=2

gi

✓li

l1

◆k+1vi

),

et donc

limk!•

ke(k)kke(k+1)k

=1

|l1|=

1r(T )

.

L’ordre de convergence est 1 et la constante d’erreur asymptotique = r(T ).

exemple MATLAB

6.4.5 Méthode de sur-relaxation

A partir des méthodes de Jacobi et de Gauss-Seidel, on peut générer une famille denouvelles méthodes en faisant intervenir un paramètre additionnel dans le proces-sus de calcul, afin d’augmenter la vitesse de convergence. Ce type de techniqued’accélération est appelé méthode de sur-relaxation. Le principe général de laméthode est le suivant: si x(k+1)

⇤ est la valeur obtenue du schéma itératif de base,la valeur x(k+1) introduite au prochain pas sera définie par

x(k+1) = (1�w)x(k) +wx(k+1)⇤ ,

où w est le facteur de relaxation.La méthode de Gauss-Seidel avec accéleration est appelée SOR (de l’anglais

Successive Over-Relaxation). L’algorithme pour obtenir la i�ième composantex(k+1)

i du vecteur x(k+1) est comme suit:

x(k+1)i = (1�w)x(k)i +

waii

"bi�

i�1

Âj=1

ai jx(k+1)j �

N

Âj=i+1

ai jx(k)j

#. (45)

102

Page 103: MAT2412. Analyse Numérique I

Lorsque w = 1 on récupère la méthode de Gauss-Seidel. La formulation ma-tricielle de la méthode SOR suit immédiatement de (45):

x(k+1) = (1�w)x(k) +wD�1hb�Lx(k+1)�Ux(k)

i,

) Dx(k+1) = (1�w)Dx(k) +whb�Lx(k+1)�Ux(k)

i,

) (D+wL)x(k+1) = ((1�w)D�wU)x(k) +wb,

) x(k+1) = Tx(k) +d,

avecT = (D+wL)�1((1�w)D�wU), (46)

etd= w(D+wL)�1b.

L’objectif de la méthode SOR est de trouver w tel que r(T ) est le plus petit pos-sible.

Théorème

Si aii 6= 0 pour chaque i = 1,2, . . . ,N, alors le rayon spectral pour la méthodeSOR r(T ) � |w�1|. Ceci implique que la méthode SOR ne peut converger quesi 0 < w < 2.

Démonstration

Soit {li}Ni=1 les valeurs propres de T . Puisque la matrice D+wL est triangulaire

inférieure, det(D+wL) = detD. De plus

det((1�w)D�wU) = det((1�w)D) = (1�w)NdetD,

De (46) on voit que

det(T ) = PNi=1li = det(D+wL)�1det((1�w)D�wU),

= (det(D+wL))�1(1�w)NdetD,

=(1�w)N

detDdetD = (1�w)N .

Mais r(T )N �PNi=1|li| et donc r(T )� |1�w|.

103

Page 104: MAT2412. Analyse Numérique I

exemple MATLAB

Théorème(Ostrowski)

Soit A une matrice SD+. Alors, pour tout w 2 (0,2) et x(0) la méthode SORconverge vers la solution exacte de Ax= b.

Théorème

Notons par TJ , TGS et Tw les matrices T dans les méthodes itératives de Ja-cobi, Gauss-Seidel et SOR, respectivement. Si A est SD+ et tridiagonale, alorsr(TGS) = [r(TJ)]2 < 1 et le choix optimal de w est

w =2

1+p

1� [r(TJ)]2.

Avec ce choix, nous avonsr(Tw) = w�1.

exemple (Examen final A2017)

Soit A = D+L+U 2 RN⇥N une matrice non-singulière.

1. Écrivez la méthode SOR avec un facteur de relaxation w pour la résolutiondu système d’équations

Ax= b,

(avec x, b 2 RN) sous la forme

x(k+1) = Twx(k) +d,

où Tw 2 RN⇥N et d 2 RN . [6 points]

2. PosonsA =

✓2 �1�1 2

◆.

(a) Démontrez que les valeurs propres l1 et l2 de la matrice d’itérationcorrespondante Tw sont les racines de l’équation

l 2� (2�2w +w2/4)l +(w�1)2 = 0.

[6 points]

104

Page 105: MAT2412. Analyse Numérique I

(b) Expliquez pourquoi le rayon spectral r(Tw) est minimisé lorsque l1 =l2 = w�1 (Indice: les racines l1 et l2 satisfont à l1l2 = (w�1)2.)

[4 points]

(c) Pour que l1 = l2 = w�1 démontrez que w doit satisfaire à

w2�16w +16 = 0,

et que le rayon spectral minimal vaut 7�4p

3 (⇡ 0.072). [4 points]

solution

1. La méthode SOR

(D+wL)x(k+1) = ((1�w)D�wU)x(k) +wb,

) x(k+1) = (D+wL)�1((1�w)D�wU)x(k) +w(D+wL)�1b,

et donc on identifie Tw = (D+wL)�1((1�w)D�wU) et d= w(D+wL)�1b.

2 (a).

|(D+wL)�1((1�w)D�wU)�l I|= 0,, |((1�w)D�wU)�l (D+wL)|= 0,, |(1�w�l )D�wU�lwL)|= 0.

AvecA =

✓2 �1�1 2

◆,

nous avons l’équation quadratique suivante satisfaite par les valeurs propres l deTw : ����

2(1�w�l ) wlw 2(1�w�l )

����= 0.

) l 2�l (2�2w +w2/4)+(1�w)2 = 0.

(b). Si les valeurs propres sont notées l1 et l2, alors l’équation quadratique précé-dente peut aussi être écrite

(l �l1)(l �l2) = 0,

)l1 +l2 = 2�2w +w2/4 et l1l2 = (1�w)2.

105

Page 106: MAT2412. Analyse Numérique I

r(Tw) = max{|l1|, |l2|} et donc pour minimiser r(Tw) on demande que l1 =l2 = ±(w � 1) (ce qui donne un r minimal de |1�w|.) On exclut la possibilitél1 = l2 = 1�w parce que dans ce cas-là

l1 +l2 = 2�2w = 2�2w +w2/4) w = 0 et l1 = l2 = 1,

(divergence de SOR).

(c). Avec l1 = l2 = w�1 nous aurons

2(w�1) = 2�2w +w2/4,

)w2�16w +16 = 0) w = 8±4p

3.

Avec w = 8+ 4p

3, r(Tw) > 1. Cependant, w = 8� 4p

3) r(Tw) = w � 1 =7�4

p3.

exemple MATLAB

References

[1] Burden, R. L., Faires, J. D. Numerical Analysis, (Brooks/Cole, 2011): 9e

edition.

106