Académique Documents
Professionnel Documents
Culture Documents
MNE Cours
MNE Cours
Manfred GILLI
Dpartement dconomtrie
e
e
e
Universit de Gen`ve
e
e
Version : 25 mars 2006
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
2
4
5
6
8
8
9
dun probl`me
e
11
. . . . . . . . . . . . . . . . . . . . 11
. . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . 13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
17
19
20
20
23
5 Syst`mes triangulaires
e
27
5.1 Forward substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Back substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 Proprits des matrices triangulaires unitaires . . . . . . . . . . . . . 28
ee
6 Factorisation LU
6.1 Formalisation de llimination de Gauss
e
6.2 Matrices de permutation . . . . . . . .
6.3 Pivotage partiel . . . . . . . . . . . . .
6.4 Considrations pratiques . . . . . . . .
e
6.5 Elimination de Gauss-Jordan . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
38
41
43
45
7 Matrices particuli`res
e
7.1 Factorisation LDM . . . . . . . . . .
7.2 Factorisation LDL . . . . . . . . . . .
7.3 Matrices symtriques dnies positives
e
e
7.4 Factorisation de Cholesky . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8 Matrices creuses
8.1 Matrices par bande . . . . . . . . . . . . . . . . . . . .
8.2 Matrices creuses irrguli`res . . . . . . . . . . . . . . .
e
e
8.2.1 Reprsentation de matrices creuses . . . . . . .
e
8.2.2 Conversion entre reprsentation pleine et creuse
e
8.2.3 Initialisation de matrices creuses . . . . . . . . .
8.2.4 Principales fonctions pour matrices creuses . . .
8.3 Proprits structurelles des matrices creuses . . . . . .
ee
8.3.1 Exemples de matrices creuses . . . . . . . . . .
9 Mthodes itratives stationnaires
e
e
9.1 Mthodes de Jacobi et de Gauss-Seidel
e
9.2 Interprtation gomtrique . . . . . . .
e
e e
9.3 Convergence de Jacobi et Gauss-Seidel
9.4 Mthodes de relaxation (SOR) . . . . .
e
9.5 Structure des algorithmes itratifs . . .
e
9.6 Mthodes itratives par bloc . . . . . .
e
e
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
47
50
51
52
.
.
.
.
.
.
.
.
55
55
56
56
58
59
59
60
63
.
.
.
.
.
.
67
68
69
71
73
74
75
79
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
81
82
86
88
89
91
92
92
92
95
99
100
101
101
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Businger - Golub
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
105
105
106
106
108
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 108
.
.
.
.
.
109
109
109
110
111
.
.
.
.
.
.
.
.
113
114
114
117
118
119
120
122
123
Chapitre 1
Arithmtique en prcision nie
e
e
Sources dapproximation dans le calcul numrique
e
Les deux sources derreur qui interviennent systmatiquement dans le calcul numrique
e
e
sont :
e
Les erreurs de troncature ou de discrtisation qui proviennent de simplications
du mod`le mathmatique comme par exemple le remplacement dune drive par
e
e
e e
une dirence nie, le dveloppement en srie de Taylor limit, etc.
e
e
e
e
Les erreurs darrondi qui proviennent du fait quil nest pas possible de reprsenter
e
(tous) les rels exactement dans un ordinateur.
e
Dans ce chapitre on expliquera dabord quelle est lapproximation utilise pour
e
reprsenter les nombres rels dans un ordinateur et ensuite on discutera les consquences
e
e
e
de cette reprsentation inexacte.
e
Rappelons que dans un ordinateur le support pour toute information est un mot
constitu par une squence de bits (en gnral 32), un bit prenant la valeur 0 ou 1.
e
e
e e
231
230
23
22
21
20
0 0 0 0 1 0 1 0
Cette squence de bits est alors interprte comme la reprsentation en base 2 dun
e
ee
e
nombre entier.
Ainsi les nombres entiers peuvent tre reprsents exactement dans un ordinateur.
e
e
e
Si tous les calculs peuvent se faire en nombres entiers, on parle darithmtique en
e
nombres entiers. Ces calculs sont alors exacts.
1
e
e
e
Une division 3 ncessite un nombre inni de digits pour reprsenter le rsultat
exactement. Dans la pratique, on recourra ` larithmtique en virgule ottante pour
a
e
reprsenter une approximation du rsultat. Ainsi appara le probl`me des erreurs
e
e
t
e
darrondis.
Remarque : Il existe une catgorie de logiciels (e.g. Maple) qui permettent de faire
e
des calculs symboliques en traitant des expressions algbriques. Ces mmes logiciels
e
e
1
eectuent des calculs, impliquant des nombres rels, avec une prcision quelconque,
e
e
limite uniquement par la performance de lordinateur. Ceci ne permet videmment
e
e
pas de contourner les probl`mes dans la plupart des calculs numriques.
e
e
1.1
12.153 = .75956 24
ou en base 10 on a
.12153 102
Quelle que soit la taille du mot on ne disposera donc que dun nombre limit de bits
e
pour reprsenter les entiers n et e.
e
Soit t le nombre de bits disponibles pour coder la mantisse. En base 2, on peut alors
coder les entiers allant de 0 ` t1 2i = 2t 1.
a i=0
Exemple 1.2
1.1.1
t=3
0 0 0 =0
1 1 1 = 22 + 21 + 20 = 23 1 = 7
Normalisation
An de maximiser le nombre de digits signicatifs, on normalise la mantisse, cest`-dire on limine les digits nuls ` gauche.
a
e
a
Exemple 1.3
nombre comme
x = 0 0 1 2 3 105
ou
1 2 3 4 5 107
1 0 0
1 1 1
2t 1
2t1
n 2t < 1 .
Lensemble des nombres en virgule ottante F que lon peut ainsi reprsenter constie
tue un sous-ensemble de R. Si lon reprsente la mantisse avec un mot de t bits, les
e
lments f F sont dnis par
ee
e
f = 1 d2
dt 2t 2e = n 2et
m |f | M
Exemple 1.4
et M = 2U (1 2t ) .
2et
e = 1 e = 0 e = 1 e = 2
1/16
1/8
1/4
1/2
1/4
1/2
2
0
1 =2 +2 =5
5/16
5/8
5/4
5/2
2
1
0 =2 +2 =6
3/8
3/4
3/2
2
1
0
1 =2 +2 +2 =7
7/16
7/8
7/4
7/2
2
0 =2 =4
1
1
En reportant ces nombres sur une droite on observe que les nombres en virgule ottante
ne sont pas galement espacs.
e
e
....................................................................................................................
....................................................................................................................
Pour dcrire lensemble des nombres rels qui trouvent une reprsentation dans F
e
e
e
on dnit lensemble
e
G = {x R tel que m |x| M} {0}
1.1.2
Underow et Overow
ce qui correspond ` 0 1023 = 1023 et 2047 1023 = 1024 comme indiqu plus
a
e
haut.
Dans le standard IEEE1 les situations doverow et underow ne provoquent pas
larrt des calculs. Un overow produit le symbole Inf qui se propage dans la suite
e
des calculs et un underow peut produire le rsultat zro.
e
e
Ainsi une situation doverow est fatale pour la poursuite des calculs. Dans la pratique on peut cependant souvent transformer une situation doverow en une situation dunderow sans consquences pour la prcision des calculs.
e
e
Exemple 1.6
c=
avec a = 10200 et b = 1. Le rsultat attendu est c = 10200 mais avec Matlab a2 produit un
e
overow do` c = Inf. On peut viter ce probl`me en procdant a une normalisation
u
e
e
e
`
c=s
1
a
s
b
s
c = 10
12
b
10200
= 10200
car ( 101 )2 produit un underow avec la valeur zro. Ceci ne g`ne cependant pas la
e
e
200
prcision de calculs tant donne que la quantit 10400 est insigniante lorsque lon ade
e
e
e
ditionne a 1.
`
1.2
Exemple 1.7
x1 =
b2 4ac
2a
x2 =
b +
b2 4ac
.
2a
1: = b2 4ac
2: x1 = (b )/(2a)
3: x2 = (b + )/(2a)
erreur relative %
0.004
9.1
Catastrophe ! !
Ci-apr`s on propose un autre algorithme qui exploite le thor`me de Vi`te et qui vite le
e
e e
e
e
calcul de la dirence de deux nombres qui est a lorigine de la perte de prcision si ces
e
`
e
nombres sont tr`s proches.
e
= b2 4ac
if b < 0 then
x1 = (b + )/(2a)
else
x1 = (b )/(2a)
end if
x2 = c/(a x1 )
b
1212.3
oat ()
1212.3
oat (x1 )
1212.3
oat (x2 )
0.0016498
x2
0.001649757
Bien que ces nombres di`rent lg`rement entre eux et dpendent du schma dare
e e
e
e
rondi (chopping ou perfect rounding), tous donnent une mesure qui caractrise la
e
granularit du syst`me en virgule ottante.
e
e
1.2.1
Prcision machine
e
1 0 0 2
2t1
1
t
2 =1
1 0 1 2t 21 = 1 + 21t
2t1 +1
La distance qui spare le nombre 1 du plus proche nombre suivant est gale ` 21t .
e
e
a
Ainsi pour une mantisse comportant t bits on a
eps = 21t .
Vrions ce rsultat sur notre mantisse avec t = 3 introduite avant :
e
e
1
2
1 eps
2
.......................................................................................................................................................................
......................................................................................................................................................................
7
16
5
8
6
8
7
8
5
4
On voit aussi, que dans une situation o` on utilise perfect rounding, lon obtient
u
1
eps = 2 21t = 2t .
Avec Matlab, qui utilise t = 52 bits pour la mantisse et perfect rounding, la prcision
e
machine est alors eps = 252 2.22 1016 .
Exemple 1.8
k=1
1
= .
k
En calculant cette somme avec un ordinateur on obtient videmment un rsultat qui est
e
e
ni. Ce qui peut cependant surprendre est que cette somme sera certainement infrieure
e
a 100. Le probl`me ne vient pas dun underow de 1/k ou dun overow de la somme
`
e
e
partielle n 1/k mais du fait que pour n qui vrie
k=1
1/n
n1
k=1
< eps
1
k
n1 1
k=1 k
1
n
+ 1/n
n1
1
k=1 k
n1 1
k=1 k
1.
n1 1
On peut facilement exprimenter que k=1 k < 100 pour des valeurs de n qui peuvent
e
tre envisages pour le calcul pratique et comme eps 2 1016 on tablit que
e
e
e
1/n
= 2 1016
100
n=
1014
2
1.2.2
Digits signicatifs
La prcision machine dnit le nombre de digits signicatifs dun nombre rel dans sa
e
e
e
2
reprsentation en virgule ottante. Dans un mot de 32 bits , on rserve en gnral 23
e
e
e e
bits pour la mantisse ce qui donne eps = 222 2.38107 et 1+eps = 1.0000002 38
ce qui donne 8 digits signicatifs. Dans ce cas, il est inutile de lire ou imprimer des
rels de plus que 8 digits.
e
Pour les illustrations, on choisira souvent la base 10 pour la dnition de lensemble
e
F . On aura alors
f = d1 d2 . . . dt 10t 10e
avec d1 = 0 et 0 di 9, i = 2, . . . t. On utilise ensuite la reprsentation en point
e
xe dans laquelle seuls les premiers t digits sont signicatifs. Voici ` titre dexemple,
a
pour une base de 10 et t = 3, les digits signicatifs : 2.37 , 139 00, 0.00 293 7.
1.3
Mesures de lerreur
On peut envisager plusieurs faons pour mesurer lerreur e entre une valeur apc
proche x et une valeur exacte x.
e
Erreur absolue
Elle est dnie comme
e
| x|.
x
Dans une situation avec x = 3 et x = 2 lerreur absolue vaut un, ce qui dans ce
cas ne peut tre considr comme petit. Par contre la mme erreur absolue avec
e
ee
e
9
9
x = 10 + 1 et x = 10 peut certainement tre considre comme relativement
e
ee
petite par rapport ` x.
a
Erreur relative
La remarque prcdente nous conduit ` la dnition de lerreur relative
e e
a
e
| x|
x
|x|
qui est dni si x = 0 et pas dnie si x = 0 (dans ce cas lerreur absolue ferait
e
e
bien laaire). Pour les exemples prcdents lerreur relative est respectivement 0.5
e e
et 109 ce qui indique une petite erreur pour le deuxi`me cas.
e
2
Ceci correspond a une prcision simple, qui est en gnral le dfaut pour la longueur dun mot.
`
e
e e
e
1.3.1
oat (x) x =
1 1 1
2t
2k
t
k+1
1 0 0 2 2
2t 1
et
2t+k
2t1
| oat (x) x|
= 2t .
|x|
avec
|| u .
et
|2 | u
alors que 3 nest pas garanti dtre petit. Cest le cas notamment, lorsque laddition
e
de deux nombres tr`s proches en valeur absolue (dirence) donne un rsultat tr`s
e
e
e
e
petit. Ceci est connu sous le nom de catastrophic cancellation.
Soit lopration x = .123456 .123465 = .000009 = 9 106 . Si lon
e
choisit une reprsentation dcimale avec t = 5 et perfect rounding on a
e
e
Exemple 1.9
oat (x) =
3 =
105
105 =
105
| oat (x) x|
| 10 106 + 9 106 |
1
=
= = .1111
6 |
|x|
| 9 10
9
Un fait important est que larithmtique en virgule ottante nest pas toujours
e
associative.
Exemple 1.10 Pour le montrer, considrons une base de 10, t = 3 et lexpression
e
e
e
103 + 1 1. On vrie alors aisment que
oat ( oat (103 + 1) 1) = 0
et
En eet pour laddition les exposants des deux chires doivent tre identiques ce qui
e
implique labandon de la normalisation pour le chire le plus petit
oat (103 + 1) =
103 101 +
103 101 = 1 .
Exemple 1.11
Chapitre 2
Instabilit numrique et condition
e
e
dun probl`me
e
Dans la section prcdente, on a montr que lon peut seulement reprsenter un souse e
e
e
ensemble ni des rels dans un ordinateur, ce qui conduit ` des erreurs darrondi.
e
a
Comme on la vu, ces derniers peuvent, dans certains cas, provoquer linstabilit de
e
la solution ou mme la destruction totale des rsultats du calcul.
e
e
Si la prcision des rsultats nest pas acceptable, il est important de distinguer les
e
e
deux situations suivantes :
Les erreurs darrondi sont considrablement grossies par la mthode de calcul.
e
e
Dans ce cas, on parle dune mthode ou dun algorithme numriquement instable.
e
e
Une petite perturbation des donnes peut engendrer un grand changement de la
e
solution. Dans ce cas, on parle de probl`me mal conditionn .
e
e
Les exemples ` la n de la section prcdente illustrent des cas dalgorithmes numriquement
a
e e
e
instables et proposent galement les modications ` apporter an que les erreurs
e
a
darrondi ne jouent plus le mme rle destructeur pour la prcision des calculs.
e
o
e
2.1
Pour valuer la sensibilit dun probl`me ` une perturbation des donnes, on dnit
e
e
e
a
e
e
la condition du probl`me. Soit un probl`me qui consiste ` valuer f (x) et une pere
e
ae
turbation des donnes x + x. On consid`re alors le rapport
e
e
|f (x+x)f (x)|
|f (x)|
| x |
x
et pour x 0 on a
|f (x + x) f (x)|
|x|
|x|
|f (x)|
cond(f (x))
11
|x f (x)|
|f (x)|
1
1
2
1
2 + d 1
C=
2
4
1 2+e
1
1
b=
..
...
....
.. ....
.......
.......
.......
......
.
......
......
.
.
....
..
. ....
.....
.
..
.....
.
.
...
.
.....
.
....
.
....
....
...
.
.
.
....
....
.
.
....
....
.
.
.....
.
.....
.
....
....
.
....
.
......
.
......
......
.
......
.
......
.
. .........
..
. ........
.. .
. ...
. ....
.. ...
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. ...............................................
.
.
.
.................................................
.
.
|d| 1
2
1
..
..
..
..
..
..
..
..
..
..
.
..
..
.
.
..
..
..
....
....
..
.
.
..
....
..
....
.
.
.. .......
.. . ......
.
.
..
...
..
...
.
.
....
.
.....
.
.
.... ..
.... ....
.
...
...
.
....
....
.
..
..
.
...
...
. ..
....
.
..
.
..
....
..
...
.
....
.
..
..
.
..
....
.
.
....
.. . ....
.. ... ..
....
.
.
....
... .
. .......
..
. . .
. . ...
... ..
... ...
...
.
.
.
..
.
..
... ...
.... ....
.
. .
. .
..
.
..
.
.
.
..
..... ..
..... ..
..
.
.
.
..
.
..
.... .
.
.... .
..
.
..
.
... .
.
... .
....
.
....
.
..
.
. . ...
. .. ..
.................................................
..
..................................................
.
.
.
.
.
3
d= 2
|e| 1
2.2
Nous discuterons ici comment valuer la sensibilit dun probl`me ` une perturbation
e
e
e a
des donnes lorsquil sagit du probl`me de la rsolution dun syst`me linaire Ax =
e
e
e
e
e
b.
Exemple 2.1
.780 .563
.913 .659
b=
.217
.254
o` lon vrie facilement que la solution exacte est x = [1 1] . On rappelle que, dans la
u
e
pratique, on ne conna presque jamais la solution exacte. Avec Matlab, on obtient :
t
x = A\b =
.99999999991008
.99999999987542
.001
.001
.002 .001
5.0000
7.3085
E x
A
E
, on obtient
(A E)1 A
2.3
Remarques
La condition dune matrice constitue une borne suprieure pour la mesure des
e
probl`mes que lon peut rencontrer lors de la rsolution dun syst`me linaire. A
e
e
e
e
titre dexemple soit le syst`me linaire Ax = b avec
e
e
A=
1010 0
0
1010
.999
1.001
r=
.0013
.0016
et xc =
.341
.087
r=
106
0
On constate que le candidat nettement moins bon produit une erreur rsiduelle
e
nettement infrieure. Donc, pour un probl`me mal conditionn, lerreur rsiduelle
e
e
e
e
nest pas un indicateur utilisable.
Montrons avec deux exemples quune matrice peut tre bien conditionne pour la
e
e
rsolution du syst`me linaire associ et mal conditionne pour la recherche des
e
e
e
e
e
valeurs propres et vice versa.
Exemple 2.2 Soit A = triu(ones(20)). A est mal conditionne pour le calcul des
e
valeurs propres. Avec la fonction eig on obtient
1 , . . . , 20 = 1
et en posant A20,1 = .001 on obtient
1 = 2.77, . . . , 20 = .57 .08i
A est bien conditionne pour la rsolution du syst`me linaire, car cond(A) = 26.03.
e
e
e
e
Exemple 2.3
Soit la matrice
A=
1
1
1 1+
A est bien conditionne pour le calcul des valeurs propres. Pour = 0 on obtient les
e
valeurs propres
1 = 0 et 2 = 2 .
Pour = .001 on obtient les valeurs propres
1 = .0005 et 2 = 2.0005
A est mal conditionne pour la rsolution du syst`me linaire. Pour = 0 A est singuli`re,
e
e
e
e
e
avec cond(A) = . Pour = .001, on a cond(A) = 4002.
Pour conclure, on peut rappeler que si lon veut obtenir des rsultats numriquement
e
e
prcis avec un ordinateur, il faut :
e
Chapitre 3
Complexit des algorithmes
e
Ce chapitre aborde de mani`re succincte la problmatique de la comparaison des
e
e
algorithmes. Beaucoup de probl`mes sont de nature ` pouvoir tre rsolus par une
e
a
e
e
varit dalgorithmes dirents. Il se pose alors le probl`me du choix du meilleur
ee
e
e
algorithme. La notion de complexit dun algorithme est utilise pour comparer les
e
e
performances des algorithmes. Une comparaison approfondie est souvent une tche
a
ardue et nous nintroduirons que des notions tr`s gnrales.
e e e
3.1
Taille du probl`me
e
3.2
Crit`res de comparaison
e
Nombre moyen doprations Souvent des algorithmes qui sont tr`s mauvais
e
e
pour le pire des cas se comportent tr`s bien en moyenne1 . La dtermination du
e
e
nombre moyen doprations ncessite souvent un analyse mathmatique sophistique
e
e
e
e
et, la plupart du temps, on recourt simplement ` lexprimentation.
a
e
Autres crit`res Dautres crit`res sont la place mmoire ncessaire ` la rsolution
e
e
e
e
a
e
du probl`me (space complexity) et la simplicit de la mise en oeuvre dun algorithme.
e
e
Pour des ordinateurs ` architecture parall`le, la quantit et la frquence des coma
e
e
e
munications entre processeurs sont des facteurs extrmement importants. Le temps
e
ncessaire pour communiquer des donnes est souvent de plusieurs ordres de grane
e
deur plus lev que le temps ncessaire pour eectuer des oprations lmentaires
e e
e
e
ee
dans un processeur.
1
3.3
La fonction O()
..
...
.
..
.
...
.
.
..
A1.... ............
..
..
.
..
...
.
. ...
.
.
.
.. .....
.
........
.
.
A2
.
.
.
......
.....
.
.
....
...
......
......
.. .
.
.. ...
....
.
.
. ... .
.
.
.....
.
......
.
.......
.
..
...
.
.
... ..
... ..
.
.
... ...
.... ...
.
.
.... .....
.
... .....
.
...
...
.
.
... .. ...
. ...... .......
.
. ...... .....
...............
..
.. ..... ...............................................................
.
. . ..
.
........................................................................
.
10
Dnition 3.1 Une fonction g(n) est dite O(f (n)) sil existent des constantes co
e
et no telles que g(n) est infrieure ` co f (n) pour tout n > no .
e
a
Ainsi lalgorithme A1 est dordre O(n2 ) et lalgorithme A2 est dordre O(n).
La notion dordre est donc proportionnelle au temps dexcution sans tre encombr
e
e
e
de caractristiques particuli`res dune machine tout en restant indpendante dun
e
e
e
input particulier.
e
Exemple 3.4 Un algorithme qui ncessite
complexit dordre
e
O(n3 ).
n3
3
Exemple 3.5 Soit lalgorithme rcursif maxmin qui recherche llment maximum et
e
ee
llment minimum dun vecteur de 2n lments.
ee
ee
function [a,b]=maxmin(s)
if length(s)==2
if s(1) > s(2), a = s(1); b=s(2); else, a = s(2); b=s(1); end
else
k=length(s);
[a1,b1]=maxmin(s(1:k/2));
[a2,b2]=maxmin(s((k/2)+1:k));
if a1 > a2, a=a1; else, a=a2; end
if b1 < b2, b=b1; else, b=b2; end
end
1
pour n = 1
2 C2n1 + 2 pour n > 1
= 1
C22
= 2 C21 + 2 = 2 + 2
C23
= 2 C22 + 2 = 22 + 22 + 2
C24
= 2 C23 + 2 = 23 + 23 + 22 + 2
.
.
.
C2n
= 2n1 +
k=1
1
2k = 2n1 + 2n 2 = 2n (1 + ) 2
2
3 n
2 2 .
2
3.4
xx
2n
(n > 1)
xz
nm
AB
2 m r n (r > 1)
3.5
La notion de complexit est tr`s importante, car elle permet une classication des
e
e
algorithmes et des probl`mes. On distingue notamment deux classes, suivant que le
e
nombre doprations lmentaires est une fonction :
e
ee
polynmiale de la taille du probl`me,
o
e
non-polynmiale de la taille du probl`me.
o
e
Seuls les algorithmes appartenant ` la premi`re classe peuvent tre qualis defa
e
e
e
caces. Pour les probl`mes de la deuxi`me classe, on ne peut garantir dobtenir
e
e
2
la solution dans un intervalle de temps raisonnable. Ceci est illustr dans les tae
bleaux 3.1 et 3.2.
Dans le tableau 3.1 on donne le nombre doprations lmentaires pour rsoudre des
e
ee
e
probl`mes de taille variable en fonction de direntes complexits couramment rene
e
e
contres. On trouve aussi linformation sur la relation entre oprations lmentaires
e
e
ee
et temps de calcul qui correspondent ` une puissance de calcul de 106 oprations
a
e
lmentaires par seconde (1 Mops). On voit notamment laccroissement extraordiee
naire du nombre doprations lmentaires (et du temps de calcul) lorsque la come
ee
plexit du probl`me devient non-polynmiale.
e
e
o
Tab. 3.1 Flops en fonction de la complexit.
e
Complexit
e
log2 n
n
n log2 n
n2
n3
2
1
2
2
22
23
2n
n!
22
2
n (Taille du probl`me)
e
8
128
1024
3
7
10
23
27
210
3 23
7 27
10 210
6
14
2
2
220
9
21
2
2
230
28
5 213
2128
5 2714
21024
7 28766
Taille maximale
n
n2
2n
8n
N1
N2
N3
N4
Accroissement de vitesse
8
128
1024
8 N1
128 N1
1024 N1
2.8 N2 11.3 N2
32 N2
N3 + 3
N3 + 7
N3 + 10
N4 + 1
N4 + 2.3
N4 + 3.3
10
10
Machine
8086/87 a 8 MHz
`
Cray XMP
Pentium 133 MHz
Pentium II 233 MHz
Pentium III 500 MHz
Pentium IV 2.8 GHz
Earth Simulator
Mops
0.03
33
12
28
81
1000
30 TFlops
Anne
e
1985
1985
1995
1997
1999
2003
2003
10
10
10
10
10
Chapitre 4
Resolution numrique de syst`mes
e
e
linaires
e
Le probl`me consiste ` trouver la solution du syst`me dquations
e
a
e
e
a11 x1 + a12 x2 + + a1n xn = b1
a21 x1 + a22 x2 + + a2n xn = b2
.
.
.
. .
.
.
.
.
.
.
.
.
an1 x1 + an2 x2 + + ann xn = bn
En notation matricielle ce syst`me scrit
e
e
Ax = b
et on rappelle quil existe une solution unique si et seulement si det(A) = 0.
Rappel Soit Ax = b avec x Rn , r = rang(A) et B = [A b] avec r = rang(B).
Alors solution de
est possible si r = r
est unique si r = r = n
Ax = b
x = A1 b
ce qui sugg`re que lon a besoin de linverse de la matrice A pour calculer x.
e
Ceci constitue une mthode numrique tr`s inecace ( 3 fois plus de calculs que
e
e
e
ncessaires et 2 fois plus despace mmoire pour moins de prcision).
e
e
e
En gnral on na quasiment jamais besoin de linverse dans les probl`mes dalg`bre
e e
e
e
1
linaire. Il nest pas non plus indiqu de calculer A pour rsoudre des syst`mes
e
e
e
e
x(i) = A1 b(i)
23
i = 1, . . . , k
det(Ai )
det(A)
A=
.1
.1
..
.
.1
.1
1 1 1
1 1 1
.
..
..
.
B=
.
.
.
1 1
1
Dans les chapitres qui suivent on discutera des techniques qui consistent ` transfora
mer le probl`me original en un probl`me ayant une forme particuli`re, pour laquelle
e
e
e
la solution dvient triviale ou tr`s simple. Par exemple, on transforme le syst`me
e
e
e
Ax = b en Ux = c avec U triangulaire (ou diagonale) et ainsi x est facile ` calculer.
a
Dans dautres situations on peut manipuler Ax = b de la sorte ` obtenir le syst`me
a
e
Rx = c avec R orthogonale, ce qui se rsoud facilement par rapport ` x.
e
a
Avertissement
Les algorithmes prsents dans les chapitres qui suivent ne sont pas spciques `
e
e
e
a
un language ou une machine prcise. Ils sont crits dans un pseudo-language de
e
e
programmation que lon pourra traduire dans nimporte quel language de programmation formel. Ce pseudo-language est tr`s proche du language Matlab sans toutefois
e
respecter exactement la syntaxe de Matlab (p. ex. la produit AB est cod A*B dans
e
Matlab, ou encore A = B est cod A~=B).
e
Chapitre 5
Syst`mes triangulaires
e
Beaucoup de mthodes de rsolution transforment le syst`me original en un syst`me
e
e
e
e
triangulaire qui poss`de la mme solution. De ce fait on est souvent amen ` manie
e
ea
puler des syst`mes triangulaires dans les algorithmes. Ainsi on discutera dabord la
e
rsolution des syst`mes triangulaires.
e
e
Considrons le syst`me triangulaire infrieur suivant :
e
e
e
11 0
21 22
x1
x2
b1
b2
5.1
Forward substitution
xi =
bi
ij xj
ii
j=1
... . . . . . . . . . . . . . . . . . .
.
...
.
.
. . ..
. ...
.
.
. ..
.
. ...
.
.
..
.
..
.
.
.
..
..
.
.
.
.
.
. ............... ... ii
. .
................. ... . . . . . . . . .
.
. . .. . . .
. .. .... .
........ .. .. .
................. . . . . . . . . . . . .
.
.
.
..
.
. . ...... .. ..
. . . .. .. .. . ...
.
.
..
.
..
.
.
..
.
..
.
.
.
..
..
.
.
.
..
.
.
..
.
.
..
.
..
.
.
.. .
..
.
.
.. .
.
..
.
.
..
. ...................................
.
.
.....................................
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
.. .
.
.. ..
..
.....
...
..
...
...
.
xi
=
.
......
.....
..
.
.
....
..
..
bi
Algorithme 3 fsub
1: b1 = b1 /L1,1
2: for i = 2 : n do
3:
bi = (bi Li,1:i1 b1:i1 )/Lii
4: end for
5.2
Back substitution
xi =
bi
uij xj
j=i+1
uii
.....................................
.
....................................
.
....
.
.
.
.
. ....
.
.
. ...
.
..
.
.
.
..
..
.
.
.
..
.
..
.
.
.
..
. . . . . . .... .....................
. ........ii.........
. . .. ..............
.
... ... . . . . .
. .
.
. ....... . . .....
. ......................
. . . . . . . . ........... ... .. ...
.
.. . .. . . . .
..
.
.
..
.
.
..
.
.
..
.
..
.
.
..
.
.
..
.
.
..
.
.
..
.
..
.
.
.
..
.. .
.
.. .
.
.. .
.
.. .
.. .
.
.
..
. . . . . . . . . . . . . . . . . . ..
.
.
.....
....
.
.
...
.. .
.
..
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
xi
=
.
.....
.....
..
.
.
....
..
..
bi
5.3
Dnition 5.1 On appelle une matrice triangulaire avec une diagonale unitaire une
e
matrice triangulaire unitaire.
On rappelle ici quelques proprits du produit et de linverse des matrices trianguee
laires.
Linverse dune matrice triangulaire infrieure (suprieure) est triangulaire infrieur
e
e
e
(suprieur).
e
Chapitre 6
Factorisation LU
Cest la mthode de prdilection pour la rsolution de syst`mes linaires comportant
e
e
e
e
e
une matrice A dense, sans structure et sans quantication particuli`re.
e
On vient de voir quil est tr`s simple de rsoudre des syst`mes triangulaires. La
e
e
e
transformation du syst`me original en un syst`me triangulaire se fait en choisissant
e
e
des combinaisons linaires appropries des quations du syst`me.
e
e
e
e
Exemple 6.1 Soit le syst`me
e
3x1 + 5x2 = 9
6x1 + 7x2 = 4
si lon multiplie la premi`re quation par 2 et que lon la soustrait de la deuxi`me on
e e
e
obtient
9
3x1 + 5x2 =
.
3x2 = 14
3 5
6 7
A
1 0
2 1
3
5
0 3
31
6.1
Il sagit de formaliser une procdure qui transforme une matrice en une matrice
e
triangulaire suprieure en liminant, colonne apr`s colonne, les lments non nuls en
e
e
e
ee
dessous de la diagonale comme illustr dans lexemple 6.3.
e
Exemple 6.3 Soit la matrice
1 4 7
2 5 8
3 6 10
que lon veut transformer en une matrice triangulaire suprieure. On obtient cette forme en
e
deux tapes. Lors de la premi`re tape on soustrait 2 fois la premi`re ligne de la deuxi`me
e
e e
e
e
ligne et 3 fois la premi`re ligne de la troisi`me ligne pour obtenir la matrice
e
e
1
4
7
0 3 6 .
0 6 11
1
4
7
0 3 6 .
0
0
1
Matrice dlimination M
e
Formulons la transformation en matrice triangulaire comme une transformation nonsinguli`re dun syst`me linaire. Considrons dabord le vecteur ` deux lments
e
e
e
e
a
ee
x = [x1 x2 ], alors si x1 = 0, on peut dnir la transformation
e
1
0
x2 /x1 1
x1
x2
x1
0
1
. .
..
.
.
0
Mk x =
0
.
. ..
.
.
0
0
.
.
.
0
.
.
.
1
(k)
k+1
.
.
.
0
1
. ..
.
.
.
(k)
0
x1
. .
. .
.
.
0 xk
0 xk+1
. .
. .
.
.
xn
1
x1
.
.
.
xk
=
.
.
.
0
(k)
Mk = I
...
...
....
...
.
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
.. (k)
.
..
.
..
.
..
.
..
.
..
(k) ek
(k)
e
k
. .
. .
. .
..
..
.. . .
.. . .
.. . .
.. . .
.. . .
... .
. .
.
..........
..............
. .
. . ..
.......
. .
. .. ..
.... ...
. .
..
.. .
..
....
. .
..
..
. ..
....
..
. .
..
.. .
..
....
..
. .
. ..
..
....
..
. .
..
.. .
..
....
.
. .
.
. ..
....
. .
.. .
(k)
e
e
avec (k) = [0, . . . , 0, k+1, . . . , n ] et ek la k`me colonne de la matrice identit.
Proprit 6.3 Linverse de la matrice Mk scrit
e e
e
1
Mk = I + (k) ek
qui peut tre dduit directement de Mk en inversant simplement le signe des multiplie
e
cateurs de Gauss. On vrie (I (k) ek )(I+ (k) ek ) = I (k) ek + (k) ek (k) ek (k) ek =
e
I tant donn que ek (k) = 0.
e
e
Proprit 6.4 Soient deux matrices dlimination Mk et Mi avec i > k, alors
e e
e
Mk Mi = I (k) ek (i) ei + (k) ek (i) ei = I (k) ek (i) ei
tant donn que ek (i) = 0. Ainsi le produit peut tre considr comme lunion
e
e
e
ee
des deux matrices.
1..
.
..
..
..
..
..
..
..
..
..
..
.
1
....
. .
. .
.....1.
. . .
. ... ...
..... ....
. .. .
.. .. . ..
..... . ...
. .. .
. ... .
..
..... . ...
. .. .
..
.. .. .
..
..... .
..
. .. .
..
. ... .
..... .
..
..
. .. .
.. .. .
..
..... .
..
. .. .
. ... .
..
..
..... .
. .. .
..
.. .. .
..
..... .
. .. .
..... .
..... .
. .. .
1
. .. .
Mk
1..
.
..
..
..
..
..
..
..
..
..
..
.
.1.
. .
. .
. ..1.
. .. .
. .. . ..
. .. ......
. .. .
.
. .. .. . .
. .. ... ...
.
. .. .
. .. . . . ..
.
. .. ... ...
. .. .
.
..
. .. ..
..
. .. ...
.
. .. .
..
..
. .. . .
.
. .. ...
..
. .. .
..
.
. .. ..
..
. .. ...
.
..
. .. .
. .. . .
.
..
..
. .. ...
.
. .. .
..
. .. ..
..
. .. ...
.. .
. ..
.
. .. ..
. .. ...
.
. .. .
1
. .. .
Mk+1
1..
.
..
..
..
..
..
..
..
..
..
..
1
....
. .
. .
.....1.
. .. .
. ... . . .
..... ......
. .. .
.
.. .. .. . .
..... ... ...
.
. .. .
. ... . . . .
.
..... ... ...
..
. .. .
.
.. .. ..
..
..... ...
..
.
. .. .
..
. ... . .
.
..
..... ...
. .. .
..
.
..
.. .. ..
..... ...
.
..
. .. .
..
. ... . .
.
..
..... ...
..
.
. .. .
.. .. ..
..
..... ...
.
.. .
. ..
.
..... ..
..... ...
.
. .. .
1
. .. .
I+ (k) e + (k+1) e
k
k+1
1
La mme proprit est vrie pour le produit Mk Mi1 .
e
ee
e e
A(k1) =
.......................................................
..
.
....................................................
.. . . . . . . . . . . . . . . . . . . . . . . . . . ......
.
.. . . . . . . . ... .. . . . . . . . . . . . . . ..... ....
..
. .
............................................. .. ...
..
.. . . . . . . . . ... . . . . . . . . . . .....
... . . . . ... .. . . . . . . . .... . ....
.. . . . . . . . ... . . . . . . ........ . .
. .
... . . . ... .. . . . . ...... . . . . .
... . . . . . ... . . . .. ...... . . . . .
................................
......... . ....... . .
.
.. .
.............. .......................
.
.
.. . ... ... ... . . . . . . . . . . .
.. ..................................
.. . .. . .
.. .
.. ........... ..............
.. . ... . .... .............
. .
..............................................
... ... . .... . .. .. ..
....
..... .... ........... .. .
.
. ..
..............................................
.. .. ... .. . .. . .....
. ... .... .. .
. .
. .
......................
. ... . . . . . . . .
. .
. .
......................
. .
. .
......................
. .
.. . . . . . . . . . .
. .
.
. .
......................
. .
. .
. .
......................
. ... . . . . . . . .
.. . . . . . . . . . .
. .
. .
......................
. .
.
vecteur x
A(k) =
(k1)
A
k:n,k:n
.......................................................
..
.
....................................................
.. . . . . . . . . . . . . . . . . . . . . . . . . .
.
.. . . . . . . . ... .. . . . . . . . . . . . . .
..
. .
................................................
.. . . . . . . . . ... . . . . . . . . . . . . .
... . . . . ... .. . . . . . . . . . . . . .
.. . . . . . . . ... . . . . . . . . . . . . .
. .
... . . . ... .. . . . . . . . . . . . . .
... . . . . . ... . . . . . . . . . . . . .
.
.. .......................................
. .
.. . .
........... ...........................
.
.
.. . ... .. . . . . . . . . . . . . .
.. ..................................
.. . .
.. .
.. .......... ..............
.. ... ....... .............
...............................................
. .
... ... ... ..... ... ... ... ...
. .
.............................
. . . ..
............................................
. .......................
. . ..................
. . . . . ... . ... . . .
.
. .. . . ... . ... . . .
. .......................
. .......................
. . ... ... .
. .......................
. ...................
.. . . ... . ... . . .
. . .................
. . . . . ... . ... . . .
. .
.
.
. ...................
.. .
. .......................
. .......................
.
. .......................
.. . . ... . ... . . .
. . .................
. ...................
.
. . . . . ... . ... . . .
.. . . ... . ... . . .
. .......................
. .......................
.
. . . . . ... . ... . . .
. . .................
.. . . ... . ... . . .
. .......................
.
. .......................
. ...................
.. . . ... . ... . . .
. . .................
.
. ...................
. . ... . ... . . .
. .......................
. . .................
.
. .. .
de la transformation de Gauss est connu pour la colonne Ak+1:n,k (zros), seuls les
e
(k)
function C = tgm1(C)
m = size(C, 1)
if C11 = 0 then Pivot est nul, arrt
e
C2:m,1 = C2:m,1 /C11
C2:m,2:m = C2:m,2:m C2:m,1 C1,2:m
ce qui correspond `
a
.
.
.
.
.
.............................
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
......
.....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
...
....
.
.
.
.
1.
.
.
.
.
.
.
.
.............................
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
e
1
(1)
.
.
.
.
. .......................
.............................
.........................
........................
.......................
.........................
.........................
. .......................
.......................
.......................
.........................
........................
.......................
.........................
.........................
.......................
. .......................
.........................
.......................
........................
.......................
.........................
.........................
.......................
. .......................
.......................
.........................
.........................
.......................
.......................
.........................
........................
.......................
.........................
.........................
.......................
. .......................
.........................
.......................
........................
.......................
.........................
.........................
.......................
. .......................
.......................
.........................
.......................
.........................
C1,1:m
2 1 3
C = 4 5 6 ,
6 7 8
C2:3,1 =
2
3
alors
1 0 0
2 1 3
2 1
3
M1 C = 2 1 0 4 5 6 = 0 3
0
3 0 1
6 7 8
0 4 1
C2:3,2:3 =
5 6
7 8
2
3
1 3
3
0
4 1
1 2 3
A = 4 5 6 ,
7 8 10
1 0 0
M1 = 4 1 0 ,
7 0 1
1 0 0
M2 = 0 1 0 ,
0 2 1
1 2
3
M1 A = 0 3 6 ,
0 6 11
A(1)
M2 M1 A = M2 A(1)
A(2)
1 2 3
= 0 3 6 .
0 0 1
(k1)
Llment Ak,k
ee
(k1)
(k1)
Ai,k /Ak,k est
= 0.
(k)
L = (I +
(1) e1 ) (I
(n1) en1 )
(k) ek
=I+
k=1
1 3 2
1
0 0
u11 u12 u13
3 9 5 = 21 1 0 0 u22 u23
2 5 4
31 32 1
0
0 u33
a21 = 21 u11 = 3 21 = 3
Finalement pour une matrice A dordre n et vriant les conditions du thor`me 6.1
e
e e
la factorisation en une matrice triangulaire infrieure L et une matrice triangulaire
e
suprieure U est obtenu avec lalgorithme 6. Cet algorithme remplace A avec U et L
e
` lexception des lments de la diagonale de L (les lments diagonaux de L valent
a
ee
ee
1).
Algorithme 6 (eg) Elimination de Gauss.
1: function A = eg(A)
2: for k = 1 : n 1 do
3:
Ak:n,k:n = tgm1(Ak:n,k:n )
4: end for
n1
Lalgorithme 6 comporte k=1 2(n+1k)1 (nk) = 2 n3 1 n2 1 n+1 oprations
e
3
2
6
lmentaires. Il sagit de la formulation classique de llimination de Gauss.
ee
e
On va montrer par la suite que cet algorithme nest pas numriquement stable.
e
Choix du pivot
Lors de la prsentation de llimination de Gauss on a dni le pivot. Il sagit de
e
e
e
llment akk de la matrice A au dbut de ltape k. Pour pouvoir calculer les multiee
e
e
plicateurs de Gauss, le pivot doit tre dirent de zro. Etant donn que les calculs se
e
e
e
e
font avec une arithmtique en prcision nie, la grandeur relative du pivot inuence
e
e
la prcision des rsultats.
e
e
Exemple 6.7 Soit le syst`me
e
0.0001 x1 + 1 x2 = 1
1.0000 x1 + 1 x2 = 2
(1)
(2)
9998
(2)
eq. (1) (1 )
(2)
(1)
(1)
eq. (2) (1 )
0.9998
Les petits pivots sont ` lorigine de coecients relativement grands dans la matrice
a
triangularise. La factorisation de la matrice A de lexemple prcdent donne
e
e e
A=
.0001 1
1
1
1
0
10000 1
.0001
1
0
9999
= LU
1
1
.0001 1
1
0
.0001 1
1
1
0 .9999
= LU
6.2
Matrices de permutation
0
1
P =
0
0
0
0
0
1
1
0
.
0
0
0
0
1
0
0
0
E=
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1 0
0 0 0
1 0 1
0
0 0
0
1
0
0
0
0 0
0 0 1
0 1 0
1
0 0
1
0
0
0
0
x1
0 x2
0 x3
1
x4
0
1
=
0
0
0
0
0
1
1
0
0
0
0
x1
0 x2
1 x3
0
x4
x3
x1
=
x4
x2
x:
.
.
.
.
.
.
.
.
.
e(k)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
.
.
.
.
.
.
.
.
.
.. .
.
.
.. .
. .......
.. .
. ..........
.
.
.
......
....... 2: ...... .
.
.
... . 1:
...............
.
.
.........
.
.
.
.
.
..
.
..
.
..
..
.... 3:
....
........................ s
.......................
.
.
.
.
.
.
1: s = x(k)
2: x(k) = x(e(k))
3: x(e(k)) = s
k
1
2
3
e(k)
3
3
4
Etat du vecteur x
19
20
13
13
20
19
13
19
20
13
19
55
0
1
Px =
0
0
0
0
0
1
55
55
55
20
1
0
0
0
k
1
2
3
0
19
0 20
1 13
0
55
e(k)
3
3
4
Etat
1
3
3
3
du vecteur 1 : n
2
3
4
2
1
4
1
2
4
1
4
2
13
19
=
55 .
20
1
E1 Er . La procdure qui remplace x par le produit (Er E1 ) x sera :
e
for k = r : 1 : 1 do
x(k) x(e(k))
end for
On peut facilement vrier cette procdure avec lexemple introduit plus haut.
e
e
6.3
Pivotage partiel
3 17 10
A = 2 4 2 .
6 18 12
Pour obtenir les multiplicateurs les plus petits possibles a11 doit tre llment le plus
e
ee
grand de la premi`re colonne. Pour changer la premi`re ligne avec la troisi`me ligne on
e
e
e
e
utilise la la matrice dchange
e
0 0 1
6 18 12
E1 = 0 1 0 et on forme le produit E1 A = 2 4 2 .
1 0 0
3 17
10
On calcule alors M1 (tous les multiplicateurs sont infrieurs a 1 en valeur absolue)
e
`
1 0 0
6 18 12
M1 = 1 1 0 M1 E1 A = 0 2
2 .
3
1 0 1
0
8
16
2
Pour obtenir a
`
3. On a
1
E2 = 0
0
0 0
1
0 1 et M2 = 0
1 0
0
0 0
6 18 12
1 0 M2 E2 M1 E1 A = 0 8
16 .
1
0 0
6
4 1
La stratgie prsente dans cet exemple est appele pivotage partiel . A chaque tape
e
e
e
e
e
on recherche le maximum dans la colonne Ak:n,k . Une alternative est le pivotage
complet, ou lon recherche le maximum dans la matrice Ak:n,k:n.
.. . . . . . . .
..
.. . . . . . .
..
..
.. . . . . . .
..
..
.. . . . . .
..
.. . . . . .
..
..
.. . . . .
.. ....................
. . ....... ..........
.
.... . . . . . . . . .
. .
.. .
. . . . . .
. .
..
.... . . . . . .........
. .
......
. .
. .
. ..... .
.... . . .. .........
. .
. .
. . ....
.... . ......... . . .
. .. ... .......
..... ... . . . . .
.
. .. . .
. .
. .
.... . . . .
. .
. .
. .
.... . . . . . . . . .
. ..
. .
. .
Ak:n,k
.. . . . . . . .
..
.. . . . . . .
..
..
.. . . . . . .
..
..
.. . . . . .
..
.. . . . . .
..
.. . . . .
..
.. ....................
. . .................
.
.... ..............
.
. .
.. . . . . . . . .
. .
.
. .
.
.... ..............
....
. .. . . . . . . .
.
....
. .
.. . . . . . . . . ......
....
. .
.
. .
. .
......
.... ..................
.
. .
......
. .
.... ............ . ..
.
. .. . . . . . ...
.. . . . . . .. . .
. .
.
. .
. .
.... ..............
.
. .
. .
. .. . . . . . . .
Ak:n,k:n
on a
P A = LU
avec P = En1 E1 et L une matrice triangulaire infrieure unitaire avec |ij | 1.
e
e
e
La k`me colonne de L correspond au k`me vecteur de la transformation de Gauss
qui a t permut, cest-`-dire si Mk = I (k) ek alors Lk+1:n,k = gk+1:n avec
ee
e
a
g = En1 Ek+1 (k) .
6
18 12
1/2
8 16
1/3 1/4
6
et
e=
3
3
0 0 1
P =1 0 0
0 1 0
Avec Matlab la commande [L,U] = lu(A) retourne une matrice triangulaire infrieure L
e
permute. On a LU = A. La commande [L,U,P] = lu(A) retourne une matrice triangue
laire L mais LU = P A.
1
6 18 12
, U =
L = 1/2
1
8 16 et
1/3 1/4 1
6
0 0 1
3 17 10
6 18 12
P A = 1 0 0 2 4 2 = 3 17 10 .
0 1 0
6 18 12
2
4 2
6.4
Considrations pratiques
e
function B = rsl(A, B)
[n,q] = size(B)
[A,e] = egpp(A)
for k = 1 : q do
B1:n,k = fsub1(A,perm(e,B1:n,k))
B1:n,k = bsub(A,B1:n,k)
end for
A Ax
= b1
b2
Ax = b2
ce qui se formalise avec lalgorithme suivant :
Calculer P A = LU
for i = 1 : k do
Remplacer b avec la solution de Ly = P b
Remplacer b avec la solution de U x = b
end for
avant, puis on value s = q x. Cet exemple montre quil faut toujours raisonner en
e
termes dquations linaires ` rsoudre et non en termes dinverse dun matrice.
e
e
a e
Revenons ` la remarque faite ` la page 23 qui disait quil ne fallait jamais recourir
a
a
` linverse pour rsoudre un syst`me linaire.
a
e
e
e
En ne considrant que les termes dordre le plus lev dans le comptage du nombre
e
e e
doprations lmentaires, rappelons que la factorisation LU ncessite 2 n3 oprations
e
ee
e
e
3
2
lmentaires et la solution dun syst`me triangulaire n oprations lmentaires.
ee
e
e
ee
Ainsi le nombre doprations lmentaires pour la rsolution dun syst`me linaire
e
ee
e
e
e
2 3
avec LU est dordre 3 n .
2
Linverse A1 sobtient en rsolvant n syst`mes linaires do` elle ncessite 3 n3 +
e
e
e
u
e
8
n2n2 = 3 n3 oprations lmentaires et le produit A1 b ncessite n2 oprations
e
ee
e
e
supplmentaires. Donc cette approche est quelque trois fois plus co teuse quune
e
u
solution avec LU. On vrie aussi que la situation o` lon a Ax = B avec un grand
e
u
nombre de colonnes dans B ne modie pas les conclusions qui prc`dent.
e e
Illustrons encore que la factorisation produit des rsultats plus prcis. Considrons
e
e
e
12
le syst`me 3x = 12 compos dune seule quation et la solution x = 3 = 4 obtenue
e
e
e
par une transformation qui est quivalente ` ce que produit la factorisation. Si lon
e
a
proc`de ` une inversion explicite en utilisant une arithmtique ` trois digits on a
e a
e
a
1
x = 3 12 = .333 12 = 3.99. On voit que linversion explicite ncessite une
e
opration de plus pour aboutir ` un rsultat moins prcis.
e
a
e
e
6.5
Elimination de Gauss-Jordan
1
. .
..
.
.
. ..
.
.
.
0
(k)
o` i
u
(k)
0
.
.
.
(k)
0
0
1
. ..
.
.
.
(k)
0
.
.
.
1
.
.
.
1
0
0
.
.
.
k1
1
(k)
k+1
.
.
.
0
x1
. .
. .
.
.
0 xk1
0 xk
0 xk+1
. .
. .
.
.
xn
1
0
.
.
.
0
= xk
.
.
.
0
= xi /xk , i = 1, . . . , n.
Chapitre 7
Matrices particuli`res
e
Lorsquon eectue des calculs numriques il est tr`s important de tenir compte de la
e
e
structure du probl`me an de choisir lalgorithme le plus adapt pour sa resolution.
e
e
On va notamment montrer que dans le cas de matrices symtriques, dnies positives
e
e
ou matrices par bande, il existe des variantes de la factorisation LU qui, pour de
telles matrices, sont plus ecaces.
Dans ce chapitre on prsentera dabord une formalisation dirente de la factorisae
e
tion LU sous la forme dun produit de trois matrices LDM . Cette factorisation na
pas dintrt pratique mais elle sera utile pour obtenir la factorisation LDL dune
ee
matrice symtrique. Finalement on discutera la situation tr`s importante dune mae
e
trice dnie positive pour laquelle il existe une factorisation de la forme GG appele
e
e
factorisation de Cholesky.
7.1
Factorisation LDM
47
La factorisation LDM peut donc tre obtenu ` partir de la factorisation LU. Il existe
e
a
cependant un algorithme qui permet dobtenir L, D et M directement. Supposons
que lon connaisse les j 1 premi`res colonnes de la factorisation A = LDM :
e
1:j1
j+1:n
. .
.. .
. .
. .
. .
. .
.. .
. .
. .
. .
. .
. .
.. .
. .
.
. .
. .
....
. .
.
. . . . . . . .....
. ..
.
. . . . . . . .....
. .
. .
. .
.. .
. .
. .
. .
. .
. .
.
.. .
. .
. .
.. .
. .
. .
. .
. .
. .
.. .
. .
. .
. .
1:j1
=
j+1:n
... . . . . . ... . . . . . . . . . . .
.
.
.
. ..
.
. ...
..
. .
.
.
. ..
. . ...
. .
..
.
.
. ...
.
. . .... . . .
..
.
.
.
.. . . ..
. . . . . ... . . ... 1
.
.
.
..
.
.
. . . . ... . ....
.
.
. . . . .. . .
................... .
.
..
.
. . ....... ........
. .................
.
...................
.
. ...
.
. ..
.
.
. . .
.
. . . . . . . ..... ...
.. . .
.
.
. .
.
. . .
.
. . . . ..... ...
. ..
.
..
..
.
.
. .
. . . . . . . .....
.
..
.
..
.
.
. . . . ....
.. .
..
..
.
. .
.
.
.. .
.
.. .
. . . . .....
..
.
...
.
.. .
.
..
.. ..
. . . . . . . .......
.
.
. .............. .. ...................
.
..
.
......................................
.
.
.
..
..
j .......
Lj+1:n,j
.
.. Mj,1:j1
j ......
.....................................
....................................
. ..
.. .
.
..... . . ......
.... .
.
.
.
. .... . .. ...
.
.
. .
.
.
. .
. .... . .....
..
.
.
... .....
.
1:j1
.
.. . ..
.
. .
.
... ....
.
.. . .
.
.
.......
.
.
.. .. .
. .
.
.. .. . . . . . . . . . .
.
.. .
.
.
.
.
.
.
.
.. .
.. . . . . . . . . . . .
.
.
.
.. ...
.. . . .. .
.
.
.
..
.
.. . . ..
.
.
.
.
1.. . . .......
.
.
. .
.
..
.
.
. .
..
.
.
..
.
. .
..
.
.. .
.
. .
.. .
.
.
. .
.. .
.. .
.
. .
...
.
..
. . . . . . . ... . . . . . . . . . .
. .
. .
. .
. .
. .
. .
. .
. ...... dj
..
.......
.
...
..
..
..
..
.
..
..
e
Dveloppons la j `me colonne de A = LDM
e
avec v = DM ej .
A1:n,j = Lv
..
..
..
..
..
..
.. .
..
.
.
.
....
..
.
.
.
.. L1:j,1;j
.. v1:j1
..
..
..
..
..
..
..
..
..
.
... ...
.. ...
.
........ . . . . .
..
.
....
.
. ...
. . ...
. ..
.
. .
.
. . . ..
. ... ...
..
.
.
. . ..
..
.
. . ....
.
.
.
..
.
.. . ..
. . . . . . ... ... 1
.
.
. . ....... .... .
................ ...
. . . . . . ..
.
....
...
.
.
.
. ..............
....
..
...............
....
.
...
...
.
. .
...
...
.
. .
.. v
.. j
.
. .
.
. .
.
. .
.
. .
.
. .
.
. .
.
. .
. . . . . . . ... .
Etant donn que les di , pour i = 1, . . . , j 1 sont connus et mjj = 1 on peut calculer
e
mj,i = vi /di
dj = vj .
i = 1, . . . , j 1
qui permettent didentier le vecteur Lj+1:n,j . Ce vecteur est dni par le syst`me
e
e
Lj+1:n,1:j v1:j = Aj+1:n,j
10
n
3
L, D et M .
3 3
6
1 0 0
3 0 0
1 1 2
3 1 2
A = 9 15 42 = 3 1 0 0 6 0 0 1 4 A = 3 6 4
12 54 194
4 7 1
0 0 2
0 0 1
4 7 2
Cette version spare les tapes pour j = 1 et j = n de ltape gnrique. Voir les fonctions
e
e
e
e e
ldm1, ldm2, ldm3 et ldm4.
7.2
Factorisation LDL
triangulaire infrieure, donc diagonale. Comme D nest pas singuli`re M 1 L est aussi
e
e
1 L est aussi une matrice triangulaire unitaire et donc M 1 L = I.
diagonale. Mais M
d1 Lj,1
.
.
.
v=
.
dj1 Lj,j1
dj
Les premi`res j 1 composantes du vecteur v peuvent donc tre obtenues par des
e
e
simples produits terme ` terme et vj est obtenue ` partir de lquation L1:j,1:j v =
a
a
e
A1:j,j , cest-`-dire
a
vj = Ajj Lj,1:j1 v1:j1
ce qui donne lalgorithme :
for j = 1 : n do
for i = 1 : j 1 do
vi = Lj,i di
end for
vj = Ajj Lj,1:j1 v1:j1
dj = vj
Lj+1:n,j = (Aj+1:n,j Lj+1:n,1:j1 v1:j1 )/vj
end for
10
A = 20
30
7.3
L et D.
20 30
1 0 0
10 0 0
1 2 3
10 20 30
45 80 = 2 1 0 0 5 0 0 1 4 A = 2 5 80
80 171
3 4 1
0 0 1
0 0 1
3 4 1
Les syst`mes linaires Ax = b avec une matrice A dnie positive constituent une
e
e
e
classe, parmi les plus importantes, des syst`mes linaires particuliers. Rappelons
e
e
nn
quune matrice A R
est dnie positive si quelque soit x Rn , x = 0 on a
e
x Ax > 0.
a a
Considrons le cas symtrique avec A= 11 12 . Si A est dnie positive on a
e
e
e
a12 a22
x Ax = a11 x2 + 2a12 x1 x2 + a22 x2 > 0 ce qui implique pour
1
2
x = [1
x = [0
x = [1
x = [1
0]
1]
1]
-1]
a11 > 0
a22 > 0
a11 + 2a12 + a22 > 0
a11 2a12 + a22 > 0
Les deux derniers rsultats impliquent que |a12 | (a11 + a22 )/2 et que le plus
e
grand lment de A se trouve sur la diagonale et quil est positifs. Il en rsulte
ee
e
quune matrice symtrique et dnie positive a des lments diagonaux qui sont
e
e
ee
relativement grands ce qui rendra le pivotage inutile.
e
e
e
Proprit 7.1 Soit A Rnn et dnie positive, alors A est non-singuli`re. Dmonstration :
e e
Car sinon il existerait x = 0 tel que x Ax = 0 et donc Ax = 0 ce qui nest pas possible
pour A non-singuli`re.
e
7.4
Factorisation de Cholesky
Nous savons que pour des matrices symtriques il existe la factorisation A = LDL .
e
Montrons quil existe encore une autre factorisation.
Thor`me 7.3 (Factorisation de Cholesky) Si A Rnn est symtrique et dnie
e e
e
e
positive, alors il existe une matrice triangulaire infrieure unique G Rnn avec les
e
lments diagonaux positifs et telle que A = GG .
ee
e e
Dmonstration 6 A partir du thor`me 7.2 on sait que la factorisation A = LDL
e
existe. Comme les dk sont positifs, la matrice G = L diag( d1 , . . . , dn ) est une matrice
relle triangulaire infrieure avec diagonale positive. On a A = GG . Lunicit dcoule de
e
e
e e
lunicit de la factorisation LDL .
e
1:j1
j+1:n
.. .
. .
. .
. .
. .
. .
.. .
. .
. .
.. .
. .
.
. .
.. .
. .
. .
.. .
..
. . . . . . . .....
. .
..
. ..
..
. . . . . . . .....
. .
. .
. .
.. .
. .
. .
. .
.. .
. .
. .
.. .
. .
. .
.. .
. .
. .
. .
. .
. .
.. .
. .
. .
. .
1:j1
=
j+1:n
... . . . . . . . . . . . . . . . . . .
.
..
.
. ..
.....
.
. .
. ..
. . . ...
.
.
.
..
.
. . . . ....
..
.
.
.
. . . ...
.
. . . .. . .
..
.
................... .... Gjj .
.
.
.
.
.
. . . . . ...... ..
..
.
. ....... ............
.
.
.
.. . . . ....
. ....... ..........
....................
... .
. .. .
.
.
.
... . .
. . . . . . . . . ... . ...
.
. ..
.
. .. .
.
.
. . . . . ... . ...
... .
.
..
.
.
.
....
..
. . . . . . . . . ... .
... .
..
.
. ..
.
.
..
.
..
... .
. . . . . . . . . ... .
.
. ..
.
.. .
....
.. .
.
. . . . . ....
...
.. .
.
..
.
.... .
.
.. .
. . . . . . . . . ... ...
...
.
.
. .............. . . ..................
. .. .
.
.....................................
.
. .. .
..
.
.
j .......
Gj:n,j
..
.. Gj,1:j1
j ......
.
..
. . . ..
......................................
.......... ....... ..................
.
.
. ..
.... . . . . . . . ...
.
..
.
.
. .
. .. . . . . ...
.
.
.
. ... . . . ..
..
.
. .
.
.
... . . . .
1:j1
.
.. . . .
.
.
.. . . . .
.
.
.. . .
.
.
.
.. . .
.
.. . .
.
.
.... . . . . . . . . . . .
.
.. . .
.
.
..
.
.
..
.
.
.
.
.. ... . . . . . . . . .
..
.
.
..
.
..
.
.
..
.
..
.
.
.
..
..
.
.
.
..
.
..
.
.
.
..
..
.
.
.. .
.. .
.
.. .
.
.. .
.
.. .
.. .
.
..
.
...................
e
La j`me colonne du produit sexprime alors sous la forme dune combinaison des j
colonnes de la matrice G1:n,1:j , soit :
j
A1:n,j =
Gjk G1:n,k
k=1
k=1
Gjk G1:n,k v
e
infrieure. La j`me composante scrit Gjj Gjj = vj dou lon tire Gjj = vj . La
e
e
solution du vecteur Gj:n,j scrit alors :
e
Gj:n,j = vj:n / vj
ce qui conduit ` formuler lalgorithme :
a
for j = 1 : n do
vj:n = Aj:n,j
for k = 1 : j 1 do
vj:n = vj:n Gjk Gj:n,k
end for
Gj:n,j = vj:n / vj
end for
Opration
e
5:
3:
3:
3:
3:
5:
3+5 :
Produit
Addition
Indices
Total
Nombre doprations
e
j=1
n+1
j>1
2(n j + 1)(j 1)
nj +1
2
2(n j + 1)(j 1) + n j + 1 + 2 = (n j + 1) 2(j 1) + 1 + 2
(n j + 1) + 1
(n j + 1) 2(j 1) + 2 + 3
Remarques
Avec Matlab on obtient la factorisation de Cholesky avec la commande R=chol(A)
ou R est une matrice triangulaire suprieure dou R R = A.
e
La factorisation de Cholesky sutilise ecacement pour vrier numriquement si
e
e
une matrice est dnie positive. Pour ce faire il sut de vrier qua chaque tape
e
e
e
de lalgorithme ajj est positif. Dans le cas contraire la matrice nest pas dnie
e
positive.
Avec Matlab on peut appeler la factorisation de Cholesky avec un deuxi`me are
gument [R,p] = chol(A) qui indique llment diagonal qui est nul. Si p est nul
ee
la matrice est dnie positive sinon seul la sous-matrice form des p 1 premieres
e
e
lignes et colonnes est dnie positive.
e
La dcomposition de Cholesky est aussi utilise pour la gnration de variables
e
e
e e
alatoires multidimensionelles x vriant une variance et covariance V donne. On
e
e
e
proc`de comme :
e
x = Ge
o` G est la factorisation de Cholesky de la matrice V et e N(0, I). La matrice de
u
variance et covariance de x vrie alors
e
E(xx ) = E(G ee G ) = GG = V .
I
Chapitre 8
Matrices creuses
8.1
Une matrice dont tout lment aij pour |i j| > b est nul est appele une matrice
ee
e
par bande avec b la largeur de bande. Pour de telles matrices les techniques de
factorisation vues avant peuvent tre modis de faon a ne pas faire intervenir les
e
e
c `
lments nuls.
ee
Un cas particulier est constitu par une matrice tridiagonale pour laquelle on a
e
b = 1. Dans la situation o` il nest pas ncessaire de pivoter pour assurer la stabilit
u
e
e
numrique, la factorisation LU = A scrit :
e
e
1
l1 1
l2 1
l3 1
l4 1
u1 r1
d1 q1
p1 d2 q2
u2 r2
u3 r3
p2 d3 q3
u4 r4
p3 d4 q4
u5
p4 d5
(8.1)
8.2
Dnition dune matrice creuse (J. H. Wilkinson) : Toute matrice avec susamment
e
de zros pour quil y ait un gain ` les considrer. Le gain consiste ici ` viter
e
a
e
a e
des oprations redondantes avec des lments nuls et surtout dviter ` devoir les
e
ee
e
a
conserver en mmoire.
e
Dans la pratique on rencontre souvent des syst`mes creux de grande taille. Sans
e
traitement particulier ces probl`mes resteraient impraticables.
e
Exemple 8.1 La discrtisation du Laplacien a 5 points avec une grille de 64 64 noeuds
e
`
conduit a une matrice dordre 4096 4096 avec 20224 lments non nuls. Le tableau qui
`
ee
suit indique la mmoire requise pour conserver la matrice et le temps ncessaire pour
e
e
eectuer un produit et la solution dun syst`me linaire lorsquon recourt a la technique
e
e
`
traditionnelle et lorsquon exploite la structure creuse.
Mmoire
e
Dx
Dx = b
Plein
128 Mbytes
30 sec
> 12 h
Creux
0.25 Mbytes
0.2 sec
10.0 sec
8.2.1
Dans la suite nous mettrons laccent sur lapproche ralise dans Matlab pour le traie e
tement de structures creuses. Pour lutilisateur de Matlab le maniement de structures
creuses est presque transparent.
On peut envisager de nombreuses faons pour reprsenter une matrice creuse et il
c
e
nexiste pas de schma qui soit le meilleur dans labsolu. Le choix optimal dpend
e
e
du type doprations eectues sur les lments de la matrice.
e
e
ee
Matlab stocke les matrices quelles soient pleines ou creuses colonne par colonne.
Une matrice creuse est reprsente par la concatenation des lments non nuls des
e
e
ee
vecteurs colonnes. Soit la matrice
0 1 0
A= 2 0 3
4 0 0
La commande nnz renseigne sur la nombre dlments non nuls et nonzeros empile
ee
les lments non-nuls colonne apr`s colonne.
ee
e
>> nnz ( A )
ans =
4
>> nonzeros ( A )
ans =
2
4
1
3
Avec la commande find on obtient le vecteur dindices des lments non nuls dans
ee
le vecteur des colonnes empiles.
e
>> find ( A )
ans =
2
3
4
8
Pour obtenir lindice de la ligne et de la colonne des lments non nuls et leur valeur
ee
on excute la commande
e
>> [i ,j , e ] = find ( A )
i =
2
3
1
2
j =
1
1
2
3
e =
2
4
1
3
Dans Matlab une matrice creuse est reprsente par la liste des lments non nuls
e
e
ee
dans chaque colonne. Cette reprsentation ncessite un vecteur de pointeurs avec
e
e
autant dlments que la matrice a de colonnes, une liste qui contient les indices de
ee
lignes correspondant aux nnz lments non nuls et un vecteur de mme longueur
ee
e
pour conserver la valeur des lments.
ee
Ci-apr`s cette reprsentation pour la matrice creuse A de lexemple prcdent o`
e
e
e e
u
n = 3 et nnz = 4.
Colonnes
1
Pointeurs :
1
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
e
Elments :
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
n(+1)
.
.
.
.
.
.
.
.
.
.
..
.
.
.. . ... . ... .
... ... ........ ..... ...
... ... .. ... ... ..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
.
..
.
.
..
.
.
.
.
.
.
.
nnz
nnz
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cette reprsentation ncessite n(+1) mots entiers pour le vecteur de pointeurs, nnz mots
e
e
entiers pour les listes des indices de lignes et nnz mots rels pour les lments. Comme
e
ee
un entier ncessite 4 bytes et un rel 8 bytes, le total des bytes ncessaires a cette
e
e
e
`
reprsentation est 12 nnz + 4 n bytes.
e
8.2.2
>> C = full ( B )
C =
0
1
0
2
0
3
4
0
0
>> whos
Name
Size
A
B
C
8.2.3
Bytes
3 x3
3 x3
3 x3
72
64
72
Class
double array
double array ( sparse )
double array
Il est possible et indiqu de crer directement une matrice creuse (sans recourir `
e
e
a
la conversion dune matrice pleine) en donnant une liste dlments et les indices
ee
correspondants. La commande
S = sparse (i ,j ,s ,m ,n , nzmax );
cre une matrice creuse avec Si(k),j(k) = s(k). Les lments dans les vecteurs dine
ee
dices i et j peuvent tre donnes dans un ordre quelconque. Remarque importante :
e
e
Si une mme paire dindices existe plus dune fois les lments correspondants sont
e
ee
additionns. Si s ou lun des arguments i, j est un scalaire ils sajustent automatie
quement.
S
S
S
S
8.2.4
=
=
=
=
sparse (i ,j ,s ,m , n );
% nzmax = length ( s )
sparse (i ,j , s );
% m = max ( i ) n = max ( j )
sparse (m , n );
% S = sparse ([] ,[] ,[] ,n , m )
sparse ([2 3 1 2] ,[1 1 2 3] ,[2 4 1 3]) % matrice A
help sparfun
speye (n , m )
sprandn (n ,m , d )
spdiags
spalloc (n ,m , nzmax )
issparse ( S )
spfun
% C = spfun ( exp , B )
spy ( S )
[p ,q ,r , s ] = dmperm ( S )
condest ( S )
eigs
sprank
8.3
Pour des matrices creuses on peut mettre en vidence des proprits intressantes
e
ee
e
qui dpendent uniquement de la structure qualitative de la matrice, cest-`-dire
e
a
de linformation indiquant quels sont les lments non nuls. Lors de la rsolution de
ee
e
syst`mes linaires ou non-linaires les proprits structurelles des matrices dnissant
e
e
e
ee
e
ces syst`mes sont tr`s importantes.
e
e
Pour tudier de telles proprits il convient alors dassocier ` une matrice sa matrice
e
ee
a
dincidence. La matrice dincidence M dune matrice A est dnie comme
e
mij =
1 si aij = 0
.
0 sinon
Dans la suite les proprits structurelles dune matrice seront tudis en analysant
ee
e
e
sa matrice dincidence1 .
(8.2)
1
1
.
1
1
1
1
.
.
.
.
1
1
.
1
1
1
.
1
.
1
.
1
.
.
y1 y2 y3 y4 y5
H
Y
h1 c................................................................................................................................................................................. c y1
.....
.
. ...
.....
.
.. .
.....
.. .
. . ....... ....... .....
. ...... ....... .. ..
........
. .. ...
.......
. . ..
. ..
.
... ...
.......
h2 c............................................................................................................................................................................................................ c y2
.... .. ...... ..
.
.... .. ....... .
.. . ... .......
.. . ... ... ...
. .
...... ... ......
...... ... ......
..
.
.
.. .
.
h3 c..................................................................................................................................................................................................... c y3
. ..
.. .. ... ..
... ......
.
...
..
.. .... ...
.. ........
... . ... ..
.
.. .. .
.
.....
.
.....
.. ....
...
.
.. ....
...
.... ..
...
.... ..
h4 c....................................................................................................................................................... c y4
. ...
.
.. ....
.. ...
......
......
h5 c..
.... ..
.... ..
.... ..
.... .
....
...
.
y5
On vrie facilement que les lments de lensemble {m51 , m22 , m33 , m44 , m15 } dnissent
e
ee
e
une normalisation et que de ce fait, la matrice M ci-dessus vrie la condition
e
ncessaire pour la non-singularit.
e
e
Dans le graphe biparti associ ` la matrice une normalisation correspond ` un enea
a
semble dartes non adjacentes qui relient tous les sommets de lensemble H avec
e
tous les sommets de lensemble Y . Un ensemble dartes est appel un couplage et
e
e
on le note W . Si le couplage couvre tous les sommets du graphe on parle de de
couplage parfait.
La fonction dmperm2 de Matlab permet la recherche dun couplage W de cardinalit
e
maximale. La commande
p = dmperm ( M )
j si mji W
.
0 sinon
: f1 (y1 , y2 , y3 , y4, y5 ) = 0
: y6 = f2 (y3)
: y3 = f3 (y7)
: f4 (y1 , y2 , y4 , y6, y7 , y8 ) = 0
: f5 (y5 , y6 ) = 0
: y6 = f6 (y7)
: y7 = f7 (y3)
: f8 (y3 , y5 ) = 0
h1
h2
h3
h4
h5
h6
h7
h8
M=
1
.
.
1
.
.
.
.
1
.
.
1
.
.
.
.
1
1
1
.
.
.
1
1
1
.
.
1
.
.
.
.
1
.
.
.
1
.
.
1
.
1
.
1
1
1
.
.
.
.
1
1
.
1
1
.
h
y
.
.
.
1
.
.
.
.
y1 y2 y3 y4 y5 y6 y7 y8
1
.
.
.
.
.
.
.
1
1
.
.
.
.
.
.
1
1
.
.
.
.
.
.
1
1
.
.
.
.
.
.
.
1
.
1
1
.
.
.
1
.
.
.
1
1
.
1
1
.
1
.
.
1
1
.
.
1
1
1
.
.
1
1
y8 y4 y2 y1 y5 y6 y7 y3
.
.
.
.
.
.
.
.
.
.
1
.
.
.
1
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
.
.
.
.
.
.
.
.
.
1
.
.
1
.
.
1
1
.
.
.
1
.
.
1
.
.
.
.
1
.
.
.
1
.
1
.
.
.
.
.
.
.
.
.
1
1
.
.
.
1
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
1
.
.
1
1
.
.
.
.
.
.
.
.
.
1
.
.
.
1
.
.
.
.
.
1
.
.
.
.
.
.
.
.
1
.
1
.
1
.
.
.
1
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
11
9
2
5
1
10
13
12
7
6
3
8
1 2 3 4 5 6 7 8 9 10 11 12 13
1
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
. .
.
1
1
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
1
1
1
.
.
.
.
.
.
.
.
.
.
1
1
.
1
.
.
.
.
.
.
.
.
.
1
1
.
.
.
.
.
.
.
.
.
.
.
1
1
.
.
.
.
.
1
.
.
.
.
.
.
1
.
1
.
1
.
.
.
.
.
.
.
1
1
.
.
.
.
.
.
.
.
.
.
1
1
1
.
. .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
1
1
.
.
.
.
.
.
.
.
.
1
1
1 1
1 13 2 8 12 11 4 3 6 7 9 10
La commande Matlab
[p ,q ,r , s ] = dmperm ( M )
8.3.1
Les exemples qui suivent illustrent les gains decacit considrables obtenus en
e
e
considrant la structure creuse de matrices.
e
100
100
200
200
300
300
400
100
200
300
nz = 1087
400
400
0 50 100
nz = 86
AF = full ( A );
BF = full ( B );
whos
Name
A
AF
B
BF
d
n
Size
400 x400
400 x400
400 x100
400 x100
1 x1
1 x1
Bytes
14660
1280000
1436
320000
8
8
Class
sparse
double
sparse
double
double
double
array
array
array
array
array
array
fprintf ( \ n \ n \\
*
Full :
* Sparse :
0.38 sec
0.00 sec
32000018 flops
496 flops
\
Full :
\ Sparse :
0.83 sec
0.11 sec
9100260 flops
231664 flops
100
200
300
400
100
200
300
nz = 1087
400
function mgspypar ( A )
% Display the b l o c k t r i a n g u l a r pattern of a matrix
n = size (A ,1);
[p ,q ,r , s ] = dmperm ( A ); % A (p , q ) block - order bottom up
spy ( A ( p ( n : -1:1) , q ( n : -1:1))); hold on
ncfc = length ( r ) - 1;
if ncfc > 1
for k = ncfc : -1:1
nf = r ( k +1) -1;
nd = r ( k );
if nf > nd
i = n - nd + 1.5;
j = n - nf + 0.5;
plot ([ i j ] ,[ j j ] , b - , L i n e W i d t h ,.05);
plot ([ i j ] ,[ i i ] , b - );
plot ([ i i ] ,[ j i ] , b - );
plot ([ j j ] ,[ j i ] , b - );
end
end
end
Chapitre 9
Mthodes itratives stationnaires
e
e
Les mthodes de rsolution directes proc`dent dabord a une transformation du
e
e
e
`
syst`me original, puis ` la rsolution du syst`me transform. La transformation
e
a
e
e
e
consiste ` factoriser la matrice, puis la rsolution sapplique ` des syst`mes tria
e
a
e
angulaires. De ce fait, une mthode directe conduit, abstraction faite des erreurs
e
darrondi, ` la solution exacte, apr`s un nombre doprations lmentaires connu et
a
e
e
ee
ni.
Les mthodes itratives gn`rent une squence dapproximations {xk }, k = 0, 1, . . .
e
e
e e
e
de la solution et de ce fait fournissent une rponse approximative en un nombre inni
e
doprations. Cependant dans la pratique lapproximation est souvent satisfaisante
e
au bout dun nombre ditrations relativement petit.
e
Etant donn que la complexit des mthodes directes est O(n3 ), la taille des probl`mes
e
e
e
e
que lon peut rsoudre avec la technologie actuelle est de lordre de quelques mile
liers. Souvent les grands syst`mes dequations sont creux, cest-`-dire le nombre
e
a
2
dlments non nuls ne constitue quune tr`s petite fraction de n . Dans une telle
ee
e
situation une mthode directe eectue un grand nombre doprations redondantes
e
e
du fait quelles impliquent des coecients dont la valeur est nulle. En adaptant les
algorithmes ` la structure creuse dun probl`me on peut rduire la complexit en
a
e
e
e
vitant notamment ces oprations redondantes. Ainsi il existe des mthodes directes
e
e
e
dites creuses qui adaptant les mthodes de factorisation ` la structure creuse de la
e
a
matrice A. La mise en oeuvre de telles mthodes nest cependant pas triviale.
e
Les mthodes itratives proc`dent simplement ` des produits matrice-vecteur et
e
e
e
a
il devient alors facile de programmer ce produit de sorte ` viter des oprations
a e
e
redondantes impliquant des lments nuls de la matrice. Les mthodes itratives
ee
e
e
peuvent dans certaines circonstances constituer une alternative aux mthodes die
rectes creuses.
Le fait quelles soient aussi simples ` mettre en oeuvre, tout en exploitant la struca
ture creuse du probl`me, a beaucoup contribu ` leur popularit (surtout parmi les
e
ea
e
conomistes). Leur ecacit depend cependant de la vitesse avec laquelle la squence
e
e
e
67
9.1
(k)
(k)
x1
= (b1 a12 x2 a13 x3 )/a11
(k+1)
(k)
(k)
x2
= (b2 a21 x1 a23 x3 )/a22
(k+1)
(k)
(k)
x3
= (b3 a31 x1 a32 x2 )/a33
Ceci dnit litration de Jacobi qui est formalise avec lalgorithme 14.
e
e
e
Litration de Jacobi est particuli`re dans le sens quon nutilise pas les rsultats les
e
e
e
plus rcents et on proc`de ` n rsolutions unidimensionnelles indpendantes. Ainsi
e
e a
e
e
(k+1)
(k)
(k+1)
lorsquon calcule, par exemple, x2
, on utilise x1 et non x1
qui est dj` connu.
ea
Si lon modie litration de Jacobi de sorte ` tenir compte des rsultats les plus
e
a
e
rcents on obtient litration de Gauss-Seidel :
e
e
for j = 1 : n do
1
En 1823 Gauss crivait : Fast jeden Abend mache ich eine neue Auage des Tableau, wo
e
immer leicht nachzuhelfen ist. Bei der Einfrmigkeit des Messungsgeschftes gibt dies immer eine
o
a
angenehme Unterhaltung ; man sieht daran auch immer gleich, ob etwas Zweifelhaftes eingeschlichen ist, was noch w nschenswert bleibt usw. Ich empfehle Ihnen diesen Modus zur Nachahmung.
u
Schwerlich werden Sie je wieder direct elimieren, wenigstens nicht, wenn Sie mehr als zwei Unbekannte haben. Das indirecte Verfahren lt sich halb im Schlafe ausf hren oder man kann whrend
a
u
a
desselben an andere Dinge denken.
2
Ceci a t formalis avec la relation (8.2).
ee
e
xi
= bi
end for
(k+1)
j<i
aij xj
(k)
j>i
aij xj
/aii
Remarquons quil est dans ce cas possible de remplacer au fur et ` mesure llment
a
ee
(k)
(k+1)
xi par llment xi
ee
dans le vecteur x.
x:
1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x(k+1)
i1 i i+1
.
.
.
.
.
.
.
.
.
.
.
.
.........
.. . . ..
. . . ..
.
.. . . ..
. . . ..
.
.
.
.
.. . . ..
(k+1)
xi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x(k)
9.2
Interprtation gomtrique
e
e
e
quation 2, soit dans lordre inverse. Ci-apr`s les quatre syst`mes quivalents qui en
e
e
e
e
rsultent :
e
N1 O1 :
x1
x2
N1 O2 :
x2
x1
5
9
1
2
1
2
5
9
x1
x2
N2 O1 :
N2 O2 :
x2
x1
x2
x1
x1
x2
0 2
9
0
5
x2
x1
0 9
5
2 0
x1
x2
(2)
x1
(2)
x2
(3)
x1
(3)
x2
=
=
5
2
10
3
=
=
1 (1)
x
2 2
5 (1)
x
9 1
=
=
1 (2)
x
2 2
5 (2)
x
9 1
=
=
(0)
(1)
N2 O1 : x2 = 2x1 = 12
(1)
9 (0)
x1 = 5 x2 = 9
5
3
25
18
=
=
(1)
(2)
=
=
(1)
N1 O1 : x1
(1)
x2
25
36
25
27
x2 = 2x1 = 18
(2)
(1)
x1 = 9 x2 = 108
5
5
eq1 :
2x1 x2 =0
N O
N O
eq2 :
x1
sont calcules indpendamment il appara clairement que lordre des quations est
e
e
t
e
sans incidence sur le fonctionnement de lalgorithme de Jacobi.
Lors de litration de Gauss-Seidel la rsolution unidimensionnelle ne se fait pas de
e
e
mani`re indpendante mais on tient successivement compte de la mise ` jour des
e
e
a
composantes du vecteur de solution. Lalgorithme de Gauss-Seidel est donc sensible
` la normalisation et ` lordre des quations comme le montre son application aux
a
a
e
quatre syst`mes spcis plus haut :
e
e e
N1 O1 : x1
(1)
x2
(1)
=
=
1 (0)
x
2 2
5 (1)
x
9 1
= 2.5
= 1.38
5
N1 O2 : x2 = 9 x1 = 3.33
(1)
(1)
x1 = 1 x2 = 1.66
2
(2)
=
=
1 (1)
x
2 2
5 (2)
x
9 1
= 0.69
= 0.38
x2 = 5 x1 = 0.92
9
(2)
(2)
x1 = 1 x2 = 0.40
2
x1
(2)
x2
(1)
N2 O1 : x2
(1)
x1
(1)
(2)
(0)
(0)
(1)
(0)
(1)
N2 O2 : x1 = 9 x2 = 9
5
(1)
(1)
x2 = 2x1 = 18
= 2x1 = 12
9 (1)
= 5 x2 = 21.6
eq1 :
2x1 x2 =0
N O
N O
N O
eq2 :
x1
9.3
a11
0 a12 a1n
0 0
. . .
.
.
. .. ..
.
.
a22
a21 . . .
.
.
.
+
+.
. .
..
.
.
..
..
.
.
. ..
. .
. an1,n
.
.
.
an1 an,n1 0
0
0
ann
(9.1)
M (x(k+1) x) = N e(k)
e(k+1)
(k+1)
M x(k+1)
= M 1 N e(k) = (M 1 N )k e(o)
|aii | >
j=1
|aij | i = 1, . . . , n.
j=i
(M 1 N)
D 1 (L + U)
= max
1in
j=1
aij
< 1.
aii
j=i
9.4
xi
(k+1)
(k)
= xGS,i + (1 )xi
(k+1)
(k+1)
= det (1 )D / det(D)
= (1 )n < 1
1
1
et comme dautre part det(M N ) = n i on voit que la condition (M N ) <
i=1
1 implique 0 < < 2.
9.5
Les mthodes itratives ncessitent un nombre inni ditrations pour converger vers
e
e
e
e
la solution. Ainsi, pour rendre ces mthodes oprationnelles, il convient dintroduire
e
e
un crit`re darrt pour le procd itratif. On arrtera les itrations lorsque les
e
e
e e e
e
e
changements dans le vecteur de solution, cest-`-dire lerreur devient susamment
a
petite.
Comme il a t suggr ` la section 1.3 on choisira une combinaison entre erreur
ee
ee a
absolue et erreur relative ce qui conduira ` stopper les itrations lorsque la condition
a
e
suivante est satisfaite
(k+1)
|xi
(k)
(k)
xi |
|xi | + 1
<
i = 1, 2, . . . , n
Evaluer x
Test sur le nombre ditrations
e
end while
2knp <
2
3
n3
k<
n2
3p
9.6
eq. pays 1
eq. pays 2
.
.
. . . . . . . . . . . ..
.
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .. .
.
.
.
.
.
. . . . . . . . . . . ..
.
.
. . . . . . . . . . . .
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . ..
.
.
.
. . . . . . . . . . . .. .
.
.
.
.
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . ..
.
.
.
.
.
. . . . . . . . . . . ..
.
. . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . .. .
.
.
.
.
.
.
.
. . . . . . . . . . . ..
. . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . ..
.
.
.
.
.
. . . . . . . . . . . ..
.
.
. . . . . . . . . . . . .
.
.
.
. . . . . . . . . . . ..
.............................................................................
........................................................... ............... .
.
. . .
. . .
.
.
..
.
.
.
. . . .. . . . .. . . . .. . .
.
.
.. . . . . . . . . . . .
.
.
. . . .. . . .. . . .. . . .. . . .. . . .
.
.
.
.
.
. . . .. . . .. . . .. . . .. . . .. . . .
.
.
.
.
.
.. . . . . . . . . . . .
.
.
. . . .. . . .. . . .. . . .. . . .. . . .
.
.
. . . .. . . .. . . .. . . .. . . .. . . .
.
.
.
.
.
.. . . . . . . . . . . .
.
.
.
. . . . .. . . .. . . .. . . .. . . .. . . .
.
.
.
.
. . . . . . . . . . . .
.
.
. . . .. . . .. . . .. . . .. . . .. . . .
.
.
.
.
.
.. . . . . . . . . . . .
.
.
.
.
.
. . . . .. . . .. . . .. . . .. . . .. . . .
.
.
. . . .. . . .. . . .. . . .. . . .. . . .
.
.
.
Une mthode par bloc est alors une technique ou lon it`re sur les blocs. La technique
e
e
utilise pour rsoudre le bloc peut tre quelconque et nest pas importante pour la
e
e
e
dnition de la mthode.
e
e
Les mthodes itratives par bloc peuvent tre appliques indiremment aux syst`mes
e
e
e
e
e
e
linaires et aux syst`mes dquations non-linaires. Pour simplier la prsentation
e
e
e
e
e
on consid`re dans la suite la solution dun syst`me linaire Ay = b. Dans le cas none
e
e
linaire la matrice A constitue la matrice Jacobienne et du fait de la non-linarit la
e
e
e
valeur des lments de la matrice A et du vecteur b changent ditration en itration.
ee
e
e
Supposons la partition suivante de notre matrice A
A= .
.
.
.
.
.
.
.
.
AN 1 AN 2 AN N
y1
b1
A11 A1N
.
. . = .
.
. . .
.
.
.
.
.
.
.
AN 1 AN N
yN
bN
Aij yj = bi
i = 1, . . . , N.
j=1
4:
(k+1)
solve Aii yi
= bi
(k)
Aij yj
j=1
j=i
5:
end for
6: end for
A11
..
.
..
.
. . .
.
...
.
.
.
.. . . .
.
. .. .
.
.
.
........
.. .
. ... .
.
..........
.
..
. . .
............
.
..
.
.. . . .
...... .
.
.
.
...............
.. .
.. .
.......
.......
.
.
....... ..................
....... ............. ....
.
. . .
.
....... . . . . . ...
........ . . . . . . .
. . ..
..
.
.. . . .
..
.
.
..
.
.
.......................
.. .
.......... .
.
..........................
.
.
.. .
. . .
............ .
.
.
.. .
.
.............................
.. .
.
.. .
................................ . . . . .
.............
.
.. .
.................................. . . .
. . ..... ....... ....... ... ... . .
...............................................
.... ..... ....... ....... ..... ...... .......
. . . . . . . . . . . . . ... . . . .
.
.. .
.
.
. . . . . . . . . . .................
. . ...
.
. . ....
. . . . . . . . . ................
.
.
. . . . . . . . . . .......
. .
.
.
A22
Une autre alternative consiste ` rsoudre les blocs de mani`re approximative (ina e
e
complete inner loops).
La convergence des mthodes itratives par bloc dpend comme pour les mthodes
e
e
e
e
1
itratives stationnaires des valeurs propres de M N.
e
Chapitre 10
Mthodes itratives non
e
e
stationnaires
79
Chapitre 11
Equations non-linaires
e
Contrairement ` ce qui a t le cas pour les syst`mes dquations linaires, la
a
ee
e
e
e
rsolution des syst`mes non-linaires sav`re beaucoup plus dlicate. En gnral il
e
e
e
e
e
e e
nest pas possible de garantir la convergence vers la solution correcte et la complexit
e
des calculs cro tr`s vite en fonction de la dimension du syst`me. Ci apr`s, ` titre
t e
e
e a
dexemple un syst`me de deux quations :
e
e
3
1
y1 y2 2 = 0
2
4 y1 y2 + c = 0
(11.1)
(11.2)
Dans la Figure 11.1 on montre quen fonction de la valeur que prend le param`tre c
e
ce syst`me admet entre zro et quatre solutions.
e
e
1
1
c=0
c~0.7
0.5
0.5
0.5
1
0.5
1
1
c=1
c=1.5
0.5
0.5
0
y
0.5
1
0.5
1
1
y
81
F (y) = 0
la matrice Jacobienne h/y peut souvent tre permute de sorte ` faire appara
e
e
a
tre
une structure rcursive par blocs comme indique dans la gure ci-apr`s1 :
e
e
e
..
..
..
..
..
. ....
.
. ....
.
. . ...
.
..
. . ...
. . . . ... . ... . . ... . ... . ... . ... .
. . . ...............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . . ... . ... . . ... . ... . ... . ... .
. . . .............................................
.....................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
....................................
. . . .............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
.....................................
. . . ... . ... . . ... . ... . ... . ... .
. . . ... . ... . . ... . ... . ... . ... .
. . . .............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . . .............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . . .............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . . .............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . . .............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . . .............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
.............................................
....................................
. . . ..............................................
. . . ... . ... . . ... . ... . ... . ... .
. . ...................................... ...
. . . . . . . . . ..
..
. . . . . . . . . . . . . ...
. ... . ...
. . . . . . . . . . . . . . ...........
... . ...
. . . . . . . . . . . . . . ...........
...........
... . ...
... . ...
. . . . . . . . . . . . . ...........
...........
... . ...
... . ...
. . . . . . . . . . . . . . ...........
...........
... . ...
... . ...
. . . . . . . . . . . . . ...........
.........
... . ...
. . . . . . . . . . . . . . .............
. . .
..
. . . . . . . . . . . . . . . . ...
..
. . . . . . . . . . . . . . . . . ...
..
. . . . . . . . . . . . . . . . . ...
..
. . . . . . . . . . . . . . . . . . ...
..
.
11.1
Toute valeur de x qui satisfait f (x) = 0 est appele zro de la fonction. Souvent
e e
dans la pratique, soit il nexiste pas de solution analytique ` ce probl`me, soit son
a
e
obtention est tr`s laborieuse. Remarquons que toute galit peut tre mise sous cette
e
e
e
e
forme.
Le probl`me de la recherche des zros dune fonction est frquemment rencontr.
e
e
e
e
Mentionnons ici, par exemple, le calcul de la volatilit implicite des options (donner
e
1
f (x) = 0 .
1
0.8
0.5
0.6
0
0.4
0.2
0.5
0
1
1
0.2
1
Le cas ` droite de la gure 11.2 reste relativement ais, mais est toutefois moins
a
e
favorable que le prcdent car la fonction varie doucement, sannule mais ne change
e e
pas de signe.
Les cas de la gure 11.3 sont similaires au cas ` la droite de la gure 11.2, sauf que
a
les erreurs numriques peuvent conduire ` deux situations direntes. Notamment
e
a
e
la fonction sannule presque mais reste numriquement strictement positive. Dans
e
ce cas, doit-on considrer que x = 1/2 est la solution dune fonction mal value, ou
e
e
e
nest pas la solution car la fonction ne sannule eectivement pas ?
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.2
1
0.2
1
100
0.5
50
0.5
50
1
0.2
0.4
0.6
0.8
100
0
0.5
Une telle discontinuit ne peut pas tre prise en compte numriquement, elle ncessiterait
e
e
e
e
une prcision innie ; dans lexemple illustr ici, la valeur x = 0 serait considre
e
e
ee
comme solution de lquation f (x) = 0.
e
f(x) = 2*H(x)1
1.5
1.5
0.5
0.5
0.5
0.5
1.5
1
1.5
1
qui sera amliore dans des itrations successives, et dans des conditions normales,
e e
e
sapproche de la solution. Quelques remarques :
Le choix du point de dpart determine vers quelle solution on se dirigera.
e
Il faut dnir un crit`re darrt pour les itrations.
e
e
e
e
Il convient de substituer la solution dans la fonction et de vrier que lon a
e
f (xsol ) 0.
La gure ?? illustre quune fonction qui, pour un intervalle donn, vrie des
e e
signes opposs peut soit contenir un zro, soit une singularit.
e
e
e
11.1.1
Algorithme 18 Etant donn f (x), xmin , xmax et n on identie les intervalles suscepe
tibles de contenir des zros.
e
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Code
/Teaching/MNE/Ex/bracketing.m:
fb = 1e -180;
11.1.2
Itrations de point xe
e
Le fait que la solution xsol vrie xsol = g(xsol ) fait quon appelle xsol un point xe.
e
Le choix de la fonction g(x) est dterminant pour la convergence de la mthode.
e
e
Code /Teaching/MNE/Ex/FPI.m:
function x1 = FPI (f , x1 , tol )
% FPI (f , x0 ) I t e r a t i o n s du point fixe
%
if nargin == 2 , tol = 1e -8; end
it = 0; itmax = 100; x0 = realmax ;
while ~ converged1 ( x0 , x1 , tol )
x0 = x1 ;
x1 = feval (f , x0 );
it = it + 1;
if it > itmax
error ( Maxit in FPI );
end
end
g2 (x) = (x 2)5/4
FPI(f,8)
ans =
6.4338
f = inline((x-2).^(5/4));
FPI(f,8)
??? Error using ==> fpi
Maxit in FPI
g2 (x) =
x+2
2
5/4
bracketing(f,0,50,30)
ans =
3.4483
5.1724
18.9655
20.6897
f = inline(2*x.^(4/5)-2);
FPI(f,1)
??? Error using ==> fpi
Maxit in FPI
FPI(f,9)
??? Error using ==> fpi
Maxit in FPI
f = inline(((x+2)/2).^(5/4));
FPI(f,1)
ans =
3.7161
FPI(f,20)
??? Error using ==> fpi
Maxit in FPI
Si 1 < g (x) < 0 les itrations oscillent autour de la solution et si 0 < g (x) < 1
e
les itrations convergent de faon monotone. Voir les gures qui suivent.
e
c
11.1.3
Bisection
intervalle contenant le zro. A chaque itration lintervalle est divis par deux. Les
e
e
e
centres
a+b
c=
2
des intervalles successifs convergent vers le zro. En valuant le centre comme
e
e
c=a+
ba
2
..
..
..
..
..
..
..
..
.
.
. ..
....
.
. ..
. ....
.
. ....
...
.
.
...
...
.
.
...
...
.
.
...
...
.
.
...
.
...
.
...
...
.
.
...
.
...
.
....
...
....
....
....
....
....
....
....
....
....
.
.
....
.
.
.
.
....
.....
.
.
.
.
.....
.....
.
.
.
.
.....
.
.....
.
..... .
.
.
..... .
.
.
......
.
......
.
.
......
......
.
.
......
.......
.
.
.......
.
.......
.
........
.
........
.
........
.
.........
.
.
.........
.........
.
..........
.
.......... .
.
...........
. .
........
f (a)
f (c)
f (b)
Exemple 3
f = inline(x-2*x.^(4/5)+2);
bisection(f,0,5,1e-8)
ans =
3.7161
bisection(f,5,20,1e-8)
ans =
19.7603
Convergence
Soit 0 = b a lintervalle initial, alors lintervalle ` litration n se dduit comme
a
e
e
1
0
2
1
1
2 = 1 = 0
2
4
.
.
.
1 n
n =
0
2
1 =
11.1.4
Mthode de Newton
e
n
.
0
11.2
Syst`mes dquations
e
e
11.2.1
Mthodes itratives
e
e
Gauss-Seidel et Jacobi
Les mthodes de Gauss-Seidel et Jacobi vus dans la section 9.1 pour la solution de
e
syst`mes linaires peuvent tre tendus pour la rsolution de syst`mes non-linaires.
e
e
e e
e
e
e
En gnral on normalise les quations, cest-`-dire on les rcrit sous la forme
e e
e
a
ee
yi = gi (y1, . . . , yi1 , yi+1 , . . . , yn , z)
i = 1, . . . , n.
yi
(k)
(k)
(k)
(k)
= gi (y1 , . . . , yi1, yi+1 , . . . , yn , z)
i = 1, . . . , n.
yi
(k+1)
= gi (y1
(k+1)
(k)
(k)
, . . . , yi1 , yi+1, . . . , yn , z)
i = 1, . . . , n.
On utilise le mme crit`re darrt que pour le cas linaire, cest-`-dire on stoppera
e
e
e
e
a
les iterations lorsque la condition suivante
(k+1)
|yi
(k)
(k)
yi |
|yi | + 1
<
i = 1, 2, . . . , n
11.2.2
k = 0, 1, 2, . . .
sol
y1 =y1
gn
y1 y =y sol
1
1
y1
g(y sol ) = .
.
.
g1
yn
.
.
.
sol
yn =yn
gn
y1 y =y sol
1
1
f1 (y1 , y2 ) : y1 + y2 3 = 0
2
2
f2 (y1 , y2 ) : y1 + y2 9 = 0
0 3
et y =
quadmet ce
2
0
3
y
0.76
0.17
y1
2
2.2 2.8
Solution
(k)
y2
1.0000 5.0000
2.0000 2.8284
0.1716 2.2361
0.7639 2.9951
0.0049 2.9011
0.0989 3.0000
0.0000 2.9984
0.0016 3.0000
0.0000 3.0000
(k)
y1
5
y
Erreur
(k)
sol
y1
y2 y2
1.0000
2.0000
2.0000
0.1716
0.1716
0.7639
0.7639
0.0049
0.0049
0.0989
0.0989
0.0000
0.0000
0.0016
0.0016
0.0000
0.0000
0.0000
(k)
y1
sol
et y = 3 3
sans converger. Ceci est montr dans la Figure 11.9.
e
0 0
2
y1
3
y2
11.2.3
Mthode de Newton
e
La mthode de Newton pour la rsolution dun syst`me dquations est une gnralisation
e
e
e
e
e e
de lalgorithme de Newton pour la recherche du zro dune fonction unidimensione
nelle. Le fait quun algorithme pour un probl`me unidimensionnel puisse tre ee
e
cacement gnralis au cas multidimensionnel est une situation exceptionnelle. La
e e
e
mthode de Newton est souvent aussi appele mthode de Newton-Raphson.
e
e
e
Dans la formulation classique on crit le syst`me dquations comme :
e
e
e
f1 (y) = 0
.
.
F (y) = 0
f (y) = 0
n
f1
f1
yn
(k)
(k)
yn =yn
y1 y1 =y1
.
.
(k)
.
F (y ) = .
.
.
fn
fn
yn
(k)
(k)
y1
y1 =y1
yn =yn
F (y (k)).
3:
Evaluer b = F (y (k) ) et J = F (y (k) )
4:
Vrier la condition de J
e
5:
solve J s = b
6:
y (k+1) = y (k) + s
7: end for
f1 (y1 , y2 ) : y1 + y2 3 = 0
2
2
f2 (y1 , y2 ) : y1 + y2 9 = 0
f1
f1
y1 y =y (k) y2 y =y (k)
1
2
1
2
F (y (k) ) =
f
f2
2
y1 y =y (k) y2 y =y (k)
1
2
1
2
F (y (0) ) =
1
1
=
.
(k)
(k)
2y1 2y2
alors
3
17
et
F (y (0) ) =
1 1
2 10
En rsolvant le syst`me
e
e
1
2
1
10
s(0) =
3
17
do`
u
.625
,
3.625
F (y (1) ) =
0
145
32
s(1) =
0
145
32
do`
u
.092
.
3.092
F (y (1) ) =
1 1
.
5 29
4 4
Iter
k
0
1
2
3
4
y1
0.09
0.62
3.09 3.62
Solution
(k)
(k)
y1
y2
1.0000 5.0000
0.6250 3.6250
0.0919 3.0919
0.0027 3.0027
0.0000 3.0000
Erreur
(k)
(k)
sol
sol
y1 y1
y2 y2
1.0000
2.0000
0.6250
0.6250
0.0919
0.0919
0.0027
0.0027
0.0000
0.0000
5
y2
Convergence
Le taux de convergence r dune mthode itrative est dni comme
e
e
e
lim
e(k+1)
=c
e(k) r
ou e(k) est lerreur ` litration k et c une constante nie. On distingue alors les cas
a
e
particuliers suivants :
r = 1 et c < 1, convergence linaire
e
r > 1, convergence super-linaire
e
r = 2, convergence quadratique
3.25
3
0.25 0
y2
Dans la pratique ceci correspond ` un gain de prcision par itration dun nombre
a
e
e
de digits constant pour une convergence linaire ; laccroissement de la prcision par
e
e
itration va en augmentant pour une convergence super-linaire, et dans le cas dune
e
e
convergence quadratique la prcision double ` chaque itration.
e
a
e
La mthode de Newton converge quadratiquement sous certaines conditions. On
e
vrie
e
y (k+1) y
y (k) y 2 k = 0, 1, 2, . . .
(11.3)
o` mesure la non-linarit relative
u
e
e
Lipschitz.
|yi
(k)
sol
sol
yi | < |yi yi |2 .
11.2.4
Quasi-Newton
Mthode de Broyden
e
Dans ce cas la mise ` jour de la matrice Jacobienne se fait avec des matrices de rang
a
(k+1)
=B
(k)
ou dF (k) = F (y (k+1)) F (y (k) ) et s(k) est la solution de B (k) s(k) = F (y (k) ). Lalgorithme de Broyden est formalis ci-apr`s.
e
e
Algorithme 22 Algorithme de Broyden.
1: Donner y (0) et B (0) (approximation de F (y (0) ))
2: for k = 0, 1, 2, . . . until convergence do
3:
solve B (k) s(k) = F (y (k) )
4:
y (k+1) = y (k) + s(k)
5:
= F (y (k+1) ) F (y (k) )
6:
B (k+1) = B (k) + B (k) s(k) s(k) / (s(k) s(k) )
7: end for
Lvaluation de la fonction F (y) a t dans ce cas transfre dans une fonction Mate
ee
ee
lab ExSNL ce qui rend le code indpendant de la rsolution dun syst`me dquations
e
e
e
e
particulier.
function F = ExSNL(y)
F = repmat(NaN,2,1);
F(1) = y(1) + y(2) - 3;
F(2) = y(1)^2 + y(2)^2 - 9;
La Figure 11.12 donne les rsultats de mthode de Broyden en partant avec B (0) = I
e
e
(0)
et pour une valeur initiale y = [ 2 0 ].
4.45
3
y
1.49
3
y
Iter
k
0
1
2
3
4
5
6
7
8
9
10
Solution
(k)
y2
2.0000
0
3.0000
5.0000
2.1667
0.8333
1.6585
1.4634
4.4582 1.4984
2.3304
0.6762
2.7384
0.2614
3.0847 0.0852
2.9921
0.0079
2.9998
0.0002
3.0000
0.0000
(k)
y1
Erreur
(k)
sol
y1
y2 y2
1.0000
0
0
5.0000
0.8333
0.8333
1.3415
1.4634
1.4582
1.4984
0.6696
0.6762
0.2616
0.2614
0.0847
0.0852
0.0079
0.0079
0.0002
0.0002
0.0000
0.0000
(k)
y1
sol
11.2.5
Iter
k
0
1
2
3
4
5
6
2
y1
Solution
(k)
(k)
y1
y2
2.0000
0
2.6250
0.3750
2.4044
0.5956
3.1100 0.1100
2.9739
0.0261
2.9991
0.0009
3.0000
0.0000
Erreur
(k)
(k)
sol
sol
y1 y1
y2 y2
1.0000
0
0.3750
0.3750
0.5956
0.5956
0.1100
0.1100
0.0261
0.0261
0.0009
0.0009
0.0000
0.0000
3
y2
11.2.6
o` p est une norme quelconque dans Rn . Une raison qui motive cette alternative est
u
quelle introduit un crit`re pour dcider si y (k+1) est une approximation meilleure
e
e
pour y que y (k). Comme ` la solution F (y ) = 0 on peut tre tent de comparer les
a
e
e
(k+1)
(k)
vecteurs F (y
) et F (y ) en calculant leur norme respective. Ce que lon dsire
e
est que
F (y (k+1)) p < F (y (k)) p
ce qui conduit ` minimiser la fonction objectif
a
1
min g(y) = F (y)F (y)
y
2
si lon choisit p = 2 pour la norme. On utilisera lalgorithme de Gauss-Newton ou
Levenberg-Marquardt.
11.3
La gure 11.15 rsume les combinaisons possibles des mthodes pour la resolution
e
e
des syst`mes dquations linaires et non-linaires.
e
e
e
e
F (y)
pleine
LU
Cholesky
QR
creuse
LU
...
......
.......
.. ....
.......
.......
.......
.......
.......
.........................................................
... .
...
..........................................................
..... .
..
.......
..
.......
.
.......
.......
..
...
.......
.......
..
.....
....
...
..
...
..
..
.
..
..
.
...................................
.
....................................
..
..
..
..
..
..
..
..
..
..
..
.
..
..
..
..
.......
.......
..
..
..
..
. .....
.......
..
..
..
.......
..
.......
..
.....................................
..
.......
...............................
..
.......
.......
..
.......
..
.......
.......
..
..
.......
.......
.....
..
....
..
..
..
..
..
..
..
.
.
....................................
.
.....................................
..
.
..
.
..
... ...
..
... ...
.
..
. . ..
..
.
.
..
....
.
..
..
.......
.
..
.......
.
.......
..
..
.......
..
.......
.
.......
..
..
. .....
..
.......
.
................................
..................................
..
..
. .....
..
.......
..
.
..
.......
..
..
.......
..
..
.......
..
..
.......
..
..
..
..
.......
..
....
.
..
..
..
..
..
.
..
..
..
..
..
.
.
.
..
..
..
..
..
.
....................................
..
..
..................................
..
.
..
..
..
..
..
.
..
..
..
.
..
..
..
..
....
.
..
..
..
.......
.......
..
..
.......
..
.......
..
..
.......
..
.......
.
..
...................................
....
.............................. ...
.
.......
..
.......
.......
.......
.
..
.......
.......
.
.......
..
.......
..
.
..
..
..
.
..
.
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
.
..
..
..
.
..
..
..
..
..
...................................
.
..
....................................
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
.
..
..
..
..
..
..
..
..
..
..........................................................................................
..........................................................................................
..
. ..
.
..
.. .
.
... ...
..
... ...
. . ..
..
.
.
..
.
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
.................................
.................................
directe
linaire
e
stationaire
itrative
e
non-stat
Newton
Jacobi
Gauss-Seidel
SOR
Block L
BiCGStab
GMRES
QMR
Jacobi
Gauss-Seidel
SOR
Block N
1er ordre
non-lin
QR
Minimisation
Chapitre 12
Dcompositions orthogonales
e
12.1
La factorisation QR
................
..
..............
.. . . . . .
.. . . . .
.. . . . .
.. . . .
.. . . .
.. . .
.. . .
.. .
..
.. .
..
..
..
.
1 2
A = 0 1
1 4
Q=
2
2
3
3
0 3
3
2
2 33
6
6
26
6
6
6
2 3 3
R= 0 3
0
0
12.1.1
Matrices de Givens
Une rotation du vecteur x de (radians) dans le sens contraire aux aiguilles dune
montre est obtenu avec la transformation Gx avec
G=
cos() sin()
sin() cos()
cos() sin()
sin() cos()
Exemple 12.2 Soit le vecteur x = [ 3 1] et son angle (avec MATLAB = atan2(x(2), x(1))).
Alors la rotation r = Gx avec = /2 donne r = [0 2] et une rotation avec =
donne s = [2 0] . Une reexion z = F x donne z = [2 0] .
2
.
.
.
.
.
.
.
.
.
.
.. . . . . . .
.
..
...
.
..
..
...
.
..
.
.
..
r
.
.
.
..
.
.
..
.
.
..
.
.
.
.
..
.
3
.
.
..
.
.
.
..
.
.
1
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . ..
.
.
.....
.
..... .
.
.. . .
.
..... . ..
.
.
.. .
....
.
. .
.
...
...
.
. .
cos(/2)
.
. .......
....
..........
....
.
.
..
.
..
..
....
.
...
. . ........ ..
.
....
. ...... .
....
...
.
...
.
.
sin(/2)
....
....
.
. .
.. ....
..... .
...... .
.
.. .....
.
.
... . .
.
... . . .
...........
..
.
.
.
. ...
. ....
.
.
. 2
.
. .
.. ...
.......
.
.
.
.
.... ...... ..
.... ....... .
.
.
.
.
.
.z .
. .......
. ....... .
.
.
.
..
... .................................................................................
.
.....................................................................................
. ..
.
..
...
s
3 2
12.1.2
Rexion de Householder
e
2vv
2v x
)x = x v
vv
vv
Si lon veut que Hx engendre lespace dni par e1 il faut que v soit une combinaison
e
lineaire de x et e1 . Posons donc v = x + e1 , alors on obtient
v x = (x + e1 )x = x x + x1
et
v v = (x + e1 )(x + e1 ) = x x + 2x1 + 2
et donc
x x + x1
2v x
Hx = (1 2
)x e1
x x + 2x1 + 2
vv
vv
)x =
v v
e1
e1
Exemple 12.3 Soit le vecteur x = [2 .5] et v = [.7 1]. A gauche est represent la
e
reexion de x a travers lhyperplan perpendiculaire a v. Ensuite on rdenit v = x
`
`
e
x 2 e1 = [.0616 .5] et on peut verier que la reexion de x a travers lhyperplan
`
perpendiculaire a v se confond avec e1 .
`
12.1.3
2v1 v1
v1 v1
telle que
1
0
H1 A = .
.
.
.
.
.
.
.
.
2v2 v2
v2 v2
telle que
1
0
H2 H1 A = 0
0
0
puis on cherche H2 = I
.
.
.
0
2
0
.
.
.
.
.
.
.
.
.
Hn H2 H1 A = R .
Q
12.2
et V = [v1 , . . . , vn ] Rnn
telles que
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
avec = diag(1 , . . . , p ) Rmn et p = min(m, n). Les i sont appells les valeurs
e
singuli`res et elles vrient 1 2 . . . p 0. Les vecteurs ui et vi sont
e
e
appells les vecteurs singuliers de gauche respectivement de droite.
e
Exemple 12.4 Avec MATLAB on obtient la dcomposition singuli`re avec la commande
e
e
[U,S,V]=svd(A).
12.2.1
A = UV = 1 u1 v1 + . . . + p up vp
i uivi
Ak =
i=1
verie
A Ak
2=
k+1
12.2.2
12.2.3
..
.
..
.
..
..
..
.
......
..
.. . .
..
.........
.
.
..
..
..
..
..
..
..
12.2.4
max (A)
min (A)
Complexit
e
La dcomposition singuli`re necessite 4m2 n+8mn2 +9n3 > 21n3 oprations lmentaires.
e
e
e
ee
Il existe des versions plus conomiques de lalgorithme lorsque on ne sinteresse que
e
soit ` S, soit ` S et U ou soit ` S et V . On remarque que cette dcomposition est
a
a
a
e
tr`s couteuse. Son intrt est nanmoins de grande importance.
e
ee
e
12.2.5
Calcul du pseudoinverse
avec + = diag(
1
1
, , , 0, . . . , 0)
1
r
A+ AA+ = A+
(AA+ ) = AA+
(A+ A) = A+ A .
e
e
Exemple 12.5 Soit une matrice A et sa dcomposition siguli`re obtenu avec la commande [U,S,V]=svd(A)
2 1 6 1
0.863 0.505 0.002
A = 1 1 1 2 U = 0.286 0.485 0.827
0 1 2 3
0.416 0.714 0.563
7.304
0
0
S=
0 2.967
0
0
0 0.918
V =
0.862 0.376 0.339 0.000
0.367 0.879 0.041 0.302
0
0
0
A+ =
0 0.337
0 0.505 0.485 0.714
0.862 0.376 0.339
0
0 1.089
0.002 0.827 0.563
0.367 0.879 0.041
=
0.167 0.333 0.167
0.106 0.121 0.258
Le pseudoinverse peut tre obtenu aussi plus simplement avec la commande pinv(A).
e
Chapitre 13
Moindres carrs
e
Un probl`me fondamental en sciences consiste ` adapter un mod`le ` des obe
a
e a
servations qui sont entaches derreurs. Nous nous intresserons ici au cas o` le
e
e
u
nombre dobservations est suprieur au nombre de param`tres. Ceci nous conduira
e
e
` rsoudre, suivant le choix du mod`le, des syst`mes linaires ou non-linaires
a e
e
e
e
e
surdtermins.
e
e
La meilleure solution dun syst`me surdtermin peut tre dnie de plusieurs
e
e
e
e
e
f (X, ) y
2
2
(13.1)
ri (x)2
(13.2)
i=1
i = 1, . . . , m.
Ce choix particulier de minimiser la norm Euclidienne des rsidus est motiv par
e
e
deux raisons. La premi`re raison est de nature statistique car la solution correspond
e
113
au BLUE (best linear unbiased estimator) dans le cas du mod`le linaire classique
e
e
(rsidus i.i.d. et N(0, )). La deuxi`me raison est de nature numrique car la solution
e
e
e
peut sobtenir avec des procdures numriques relativement simples.
e
e
Il semble que ce soit Gauss qui en 1795 (` lage de 18 ans) a dcouvert la mthode
a
e
e
des moindres carrs. Le dveloppement des mthodes numriques modernes pour la
e
e
e
e
rsolution des moindres carrs sest fait dans les annes soixante (QR, SVD) et plus
e
e
e
rcemment on a dvelopp les mthodes pour des syst`mes qui sont grands et creux.
e
e
e
e
e
On prsentera dabord les mthodes pour rsoudre les moindres carrs linaires
e
e
e
e
e
puis on prsentera le cas non-linaire. La solution des moindres carrs non-linaires
e
e
e
e
sobtient par des mthodes itratives qui ncessitent la solution dun probl`me de
e
e
e
e
moindres carrs linaires ` chaque tape.
e
e
a
e
13.1
Souvent, et cest le cas plus particuli`rement pour des probl`mes qui apparaissent
e
e
en conomtrie et statistique, on nest pas seulement intress dobtenir la solution
e
e
e
e
x du probl`me des moindres carrs Ax b, mais on dsire aussi calculer la matrice
e
e
e
des variances et covariances 2 (A A)1 .
Ainsi on aura besoin dvaluer dune part b Ax 2 ` la solution, tant donn
e
e
e
2 a
2
2
que cette valeur intervient dans le calcul de = b Ax 2 /(m n), et dautre
part dune mthode ecace et numriquement stable pour calculer (A A)1 ou un
e
e
sous-ensemble dlments de cette matrice.
ee
Dans la prsentation qui suit on donnera des indications comment obtenir ces
e
lments numriquement suivant lapproche choisi.
ee
e
13.1.1
La solution de (13.2) peut tre obtenue de plusieurs mani`res. Une faon consiste
e
e
c
` driver (13.2) par rapport ` x et dcrire les conditions du premier ordre pour le
a e
a
e
minimum, soit :
2A Ax 2A b = 0
do` on tire le syst`me des quations normales
u
e
e
A Ax = A b .
(13.3)
..
..
... .
... .
.... ..
.
... .
b................ ........... r = b Ax
.
...
.
...
.
.
.
...
.
...
.
.
..
............. ................................................. ..
....
.
.
. ..
.
....................................................................
..
.
..
..
..
.
..
..
..
.
...
...
..
.
..
...
..
...
..
..
..
.
.
.
.
..
..
...
.
..
..
...
.
..
..
.
...
..
..
.
..
...
..
...
.. ....
..
..
.........
..
..
..
..
.............. .
..
...
.............. ..
..
...................
..
.................
.
.
..
..
...
..
..
..
..
.
.
.
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
.
.
..
...................................................................
. ................................................................
.
Ax
De ce fait
A r = A (b Ax) = 0
do`
u
A Ax = A b .
c = A b
et
2
2
C
c
c
b b
= GG
avec
G=
G 0
z
et
Ax b
= .
GG
C c
G 0
G z
GG
Gz
=
=
c bb
z
0
z G z z + 2
b b = z z + 2 .
et
2
2
= (r + Ax) Ax = b Ax = b AG1 z = z z
z
do`
u
Ax b
2
2
= x A Ax 2 b Ax +b b = b b z z = 2 .
zz
zz
Calcul de (A A)1
La matrice S = (A A)1 peut tre obtenu de la faon suivante :
e
c
S = (A A)1
= (GG )1
= G1 G1
ce qui ne ncessite que le calcul de T = G1 et de former le triangle infrieur du
e
e
produit T T . Linverse T dune matrice triangulaire infrieure G est dni par
e
e
tij =
1/gii
i=j
i1
k=j
gik tkj
/gii
i=j
5
e
ee
et ncessite n + 3 n2 6 n oprations lmentaires. Il est aussi possible de calculer
e
3
2
la matrice S sans devoir inverser la matrice G (cf. Bjrck (1996, p. 119) et Lawson
o
and Hanson (1974, p. 6773)).
t2
ij
sii =
i = 1, 2, . . . , n.
j=i
Calculer G =
solve G x = z
G
z
(syst`me triangulaire)
e
2 = 2 /(m n)
Calculer T = G1
S = 2T T
1 1
2
4 10 5
2.0
0
0
1 2
1
G = 5.0 2.236
A=
0
1 3 b = 1 C = 10 30 11
5 11 7
2.5 .670 0.547
1 4
1
solve : G x = z
T = G1 =
13.1.2
x=
0.500
0
1.118 0.447
2.0
0.3
2 = .5472 /2 = 0.15
S = 2 T T =
0.225 .075
.075 0.030
2
2
On a alors
R1
Q1
x
b
0
Q2
2
2
2
2
Q2 b
2
2
.500 .670
.500 .223
Q1 =
.500 .223
.500 .670
Q b = c =
1
.023 .547
.439 .712
Q2 =
.807 .217
.392 .382
2.500
.670
Q b = d =
2
13.1.3
0.023
.547
2.000 5.000
0 2.236
R1 =
solve : R1 x = c x =
et
2.0
.3
2 = d d/2 = 0.15
1 0
r
U b
0 0
o` bien
u
x=
i=1
uib
vi
i
(13.4)
A+
Notons
z1
z2
z = V x =
c = U b =
et
c1
c2
=
=
=
U (b AV V x)
c1
r 0
c2
0 0
c1 r z1
c2
z1
z2
Le vecteur x tel que dni par (13.4) minimise la norme Euclidienne des rsidus
e
e
tant donn que c1 r z1 = 0. Donc SSR = m (uib)2 . Remarquons que (13.4)
e
e
i=r+1
fournit aussi la solution lorsque A nest pas de rang plein.
A partir de la dcomposition ` valeurs singuli`res de la matrice A on dduit que
e
a
e
e
1
2
(A A) = V r V o` r est la sous-matrice carr de . Il est alors possible dexu
e
pliciter un lment particulier de la matrice S = (A A)1 comme
ee
n
sij =
k=1
vik vjk
.
2
k
0 .773
=
V = .322 .946
U =
0.547 .024 .807 .217
0
0
.946 .322
0.711 .441 .392 0.382
0
0
2.080
1.539
c
0.360
z1 = 1 c1 =
c = U b = 1 =
r
0.023
c2
1.990
0.547
x = V z1 =
13.1.4
2.0
.3
2 = c c2 /(m n) = 0.15.
2
!!!
Dans une situation avec m n lapproche des quations normales ncessite a peu
e
e
pr`s la moiti moins doprations lmentaires et de place mmoire.
e
e
e
ee
e
Bien quil ne soit pas possible de dsigner un algorithme qui soit prfrable dans
e
ee
toutes les situation, la factorisation QR est a considrer comme la mthode standard
e
e
pour ce type de probl`me (avec Matlab on obtient cette solution avec la commande
e
x = A \ b).
SVD produit les rsultats qui sont les plus stables numriquement. La mthode a
e
e
e
cependant un co t qui est plus lev.
u
e e
13.2
1
1
g(x) = r(x) r(x) =
2
2
ri (x)2
(13.5)
i=1
avec
ri (x) = yi f (ti , x)
i = 1, . . . , m
o` f (ti , x) est une fonction non-linaire (le mod`le) avec ti les variables indpenu
e
e
e
n
dantes et x R le vecteur de param`tres ` estimer.
e
a
An dcrire le mod`le quadratique pour la minimisation de (13.5) nous avons besoin
e
e
des drives premi`res et secondes de g(x). La drive premi`re scrit
e e
e
e e
e
e
m
g(x) =
i=1
avec
r(x) =
r1 (x)
x1
.
.
.
rm (x)
x1
r1 (x)
xn
rm (x)
xn
.
.
.
(13.6)
ri (x)
x1
ri (x) =
.
.
.
ri (x)
xn
g(x) =
i=1
avec S(x) =
m
2
i=1 ri (x) ri (x).
(13.7)
Exemple 13.4 Soit le mod`le non-linaire f (t, x) = x1 ex2 t et les donnes suivantes :
e
e
e
t
y
r(x) =
2.0
0.3
3.0
.
0.1
y1 x1 ex2 t1
y x1 ex2 t2
r(x) = 2
y3 x1 ex2 t3
y4 x1 ex2 t4
r1 (x)
x1
r2 (x)
x1
r3 (x)
x1
r4 (x)
x1
g(x) =
1.0
0.7
et la matrice Jacobienne
0.0
2.0
g(x)
x1
g(x)
x2
r1 (x)
x2
r2 (x)
x2
r3 (x)
x2
r4 (x)
x2
ex2 t1
x1 t1 ex2 t1
ex2 t2
=
ex2 t3
ex2 t4
= r(x) r(x) =
ri (x) ri (x)
x1 x2
x2
1
2 ri (x) 2 ri (x)
x1 x2
x2
2
x1 t2 ex2 t2
.
x2 t3
x1 t3 e
x2 t4
x1 t4 e
4
x2 ti
i=1 ri (x)e
4
x2 ti
i=1 ri (x)x1 ti e
0
ti
ex2 ti
ti
ex2 ti
x1 t2 ex2 ti
i
(ex2 ti )2
i=1
2 g(x) = 4
x1 (ti ex2 ti )2
i=1
x1 ti (ex2 ti )2
i=1
(x1 ti ex2 ti )2
i=1
4
i=1
ri (x)
ti ex2 ti
ti ex2 ti x1 t2 ex2 ti
i
(k)
2 g(x(k) ) sN = g(x(k) )
(k)
x(k+1) = x(k) + sN
13.2.1
Mthode de Gauss-Newton
e
Cette mthode utilise une approximation de la matrice des drives secondes (13.7)
e
e e
en omettant le terme S(x). Comme S(x) est compos dune somme de termes
e
2
ri (x) ri (x) cette simplication se justie dans une situation ou les rsidus ri (x)
e
sont petits. Cest une situation ou le mod`le pouse bien les donnes. La mthode
e e
e
e
de Gauss-Newton se rsume dans lalgorithme qui suit.
e
Algorithme 23 Mthode de Gauss-Newton pour les moindres carrs non-linaires
e
e
e
1: Choisir x(0)
2: for k = 0, 1, 2, . . . until convergence do
3:
Calculer r(x(k) )
4:
Solve
5:
Update
6: end for
(k)
(k)
On remarque que le syst`me linaire qui dnit le pas de Gauss-Newton sGN est un
e
e
e
syst`me dquations normales et que le pas est aussi la solution dun probl`me des
e
e
e
moindres carrs. En accord ` ce qui a t dit prcdemment au sujet des moindres
e
a
ee
e e
carrs linaires on prfra la solution du syst`me surdtermin
e
e
ee
e
e
e
(k)
13.2.2
Mthode de Levenberg-Marquardt
e
4:
Solve
5:
Update
6: end for
(k)
(k)
Dans ce cas la solution du pas sLM est dnie ` partir du probl`me des moindres
e
a
e
carrs linaires
e
e
(k)
(k)
r(x ) (k)
r(x )
sLM
1/2
k I
0
que lon rsoudra en utilisant la factorisation QR. Ainsi on vite le calcul du produit
e
e
r(x(k) ) r(x(k) ) qui peut introduire des instabilits numriques.
e
e
k est choisi ` partir des considrations sur la trust region. Dans la pratique on
a
e
2
choisit la valeur 10 .
Suivant le choix de k , 0 k < le pas de Levenberg-Marquardt se situe entre
le pas de Gauss-Newton pour k = 0 et un pas steepest descent.
Si k est choisi judicieusement la mthode de Levenberg-Marquardt sav`re tr`s
e
e
e
robuste en pratique. Elle constitue lalgorithme de base dans un grand nombre de
logiciels spcialiss.
e
e
Lalgorithme peut ne pas converger si le point de dpart est choisi trop loin de la
e
solution.
Lorsque les rsidus sont grands au point de la solution, lapproximation de la matrice
e
des drives secondes peut savrer insusante, avec comme consquence soit une
e e
e
e
convergence tr`s lente ou pas de convergence du tout.
e
Bibliographie
Bjrck, A. (1996). Numerical Methods for Least Squares Problems. SIAM. Philadelo
phia, PA.
Dulmage, A.L. and N.S. Mendelsohn (1963). Two algorithms for bipartite graphs.
SIAM 7, 183194.
Gilli, M. (1995). Graph-Theory Based Tools in the Practice of Macroeconometric
Modeling. In : Methods and Applications of Economic Dynamics (S. K. Kuipers,
L. Schoonbeek and E. Sterken, Ed.). Contributions to Economic Analysis.
North Holland. Amsterdam.
Gilli, M. and M. Garbely (1996). Matching, Covers, and Jacobian Matrices. Journal
of Economic Dynamics and Control 20, 15411556.
Golub, G. H. and C. F. Van Loan (1989). Matrix Computations. Johns Hopkins.
Baltimore.
Lawson, C. L. and R. J. Hanson (1974). Solving Least Squares Problems. PrenticeHall. Englewood Clis, NJ.
Press, W.H., B.P. Flannery, S.A. Teukolsky and W.T. Vetterling (1986). Numerical
Recipes. Cambridge University Press. Cambridge.
125
Index
limination
e
de Gauss, 31, 32, 35
de Gauss-Jordan, 45
algorithme
Broyden, 99
Gauss-Newton, 122
Gauss-Seidel, 69
Jacobi, 69
Levenberg-Marquardt, 123
Newton, 96
SOR, 74
bsub, 28
cholesky, 53
egpp, 42
eg, 37
fsub, 28
ldl, 51
ldm, 49
lu3diag, 55
perm, 40
rsl, 43
tgm1, 34
fsub1, 43
back substitution, 28
base, 2
catastophic cancellation, 10
chopping, 4
classication
des algorithmes, 20
complexit
e
dun algorithme, 18
non-polynmiale, 20
o
polynomiale, 20
condition
dun probl`me, 11
e
dune matrice, 12, 13
convergence
linaire, 97
e
quadratique, 97
super-linaire, 97
e
taux de, 97
digits signicatifs, 8
eps, 6
erreur
absolue, 10
darrondi, 5
de troncature, 1
rsiduelle, 14
e
relative, 9
exposant, 2
factorisation
de Cholesky, 52
LDL, 50
LDM, 47, 48
LU, 31
ops, 20
forward substitution, 27
Gauss
limination de, 32
e
matrice dlimination de, 33
e
multiplicateur de, 33
Gauss-Jordan, limination de, 45
e
Gauss-Seidel
non-linaire, 92
e
Inf, 4
instabilit numrique, 11
e
e
itration
e
de Gauss-Seidel, 68
de Jacobi, 68
Jacobi
126
non-linaire, 92
e
mantisse, 2
normalisation, 2, 3
Matlab code
FPI, 88
bracketing, 87
converged, 75
matrice
dchange, 39
e
dlimination de Gauss, 33
e
dnie positive, 51
e
de Hessenberg, 24
de permutation, 38
de Tplitz, 24
o
par bande, 55
transformation de Gauss, 33
triangulaire unitaire, 28
tridiagonale, 55
multiplicateur de Gauss, 33
Newton, 95
amorti, 100
convergence, 98
Newton-Raphson, 95
oset, 4
oprations lmentaires, 20
e
ee
ordre dune fonction, 19
overow, 4
perfect rounding, 4
pivot, 33, 35
pivotage
complet, 41
partiel, 41, 42
point xe, 93
prcision machine, 5, 6
e
probl`me mal conditionn, 11, 12
e
e
Quasi-Newton, 99
rang structurel, 61
rayon spectral, 72
roundo error, 9
SOR, 73
param`tre de relaxation, 73
e
sur-relaxation successive, 73
syst`me
e
triangulaire infrieur, 27
e
triangulaire suprieur, 28
e
underow, 4
virgule ottante, 13, 8
ensemble des nombres en, 3
oprateur, 4
e