Vous êtes sur la page 1sur 76

Calcul des valeurs propres

Stphane Canu
stephane.canu@litislab.eu
ASI 3 - Calcul numrique pour lingnieur
December 10, 2011
Plan
1
Calcul des valeurs propres
Le vecteur propre 25.000.000.000 $
La notion de valeur propre
La mthode de la puissance itre
Algorithmes pour calculer m n valeurs propres dune matrice
symtrique
La mthode des itrations orthogonales
Lalgorithme QR pour valeurs propres
Lalgorithme QR sur une forme tridiagonale
Algorithmes pour calculer la dcomposition en valeurs singulires
rappel sur la dcomposition en valeurs singulires
Calcul de la dcomposition en valeurs singulires
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 2 / 62
the www : les pages qui parlent de ASI
page
1
page
2
page
3
page
5
page
6
page
4
L =
_
_
_
_
_
_
_
_
0 0 1 0 0 0
1 0 1 0 0 0
1 0 0 0 0 0
0 0 0 0 1 1
0 0 1 1 0 0
0 0 0 1 1 0
_
_
_
_
_
_
_
_
La matrice des connexions...
Le vecteur propre 25.000.000.000 $
Google, Exalead, Yahoo, et les autres...
Chaque page est associe un ensemble de termes (index) et une
mesure dimportance : m
i
Il sut de prsenter les pages associes des termes classs en
fonction de leur m
i
. Problme : m = [m
1
m
n
]

est inconnu
PageRank
Chaque page a n
i
liens sortants
Soit L
i
lensemble des pages pointant vers la page i
Dnissons le score : m
i
=

j /
i
m
j
n
j
m = Am avec A
ij
=
_
1
n
j
si j L
i
(Page
j
Page
i
)
0 sinon
En pratique on rsoud : Pm = m avec P = (1 )A
c
+
1
n
11

et
A
c
= A +
1
n
1d

. Llment d
i
du vecteur d vaut 1 si la colonne i de
A est nulle et 0 sinon.
Exemple
page
1
page
2
page
3
page
5
page
6
page
4
L =
_
_
_
_
_
_
_
_
0 0 1 0 0 0
1 0 1 0 0 0
1 0 0 0 0 0
0 0 0 0 1 1
0 0 1 1 0 0
0 0 0 1 1 0
_
_
_
_
_
_
_
_
, A =
_
_
_
_
_
_
_
_
0 0 1/3 0 0 0
1/2 0 1/3 0 0 0
1/2 0 0 0 0 0
0 0 0 0 1/2 1
0 0 1/3 1/2 0 0
0 0 0 1/2 1/2 0
_
_
_
_
_
_
_
_
Exemple (suite)
A
c
=A +
1
6
_
_
_
_
_
_
_
_
1
1
1
1
1
1
_
_
_
_
_
_
_
_
. .
1
_
0 1 0 0 0 0
_
=
_
_
_
_
_
_
_
_
0 1/6 1/3 0 0 0
1/2 1/6 1/3 0 0 0
1/2 1/6 0 0 0 0
0 1/6 0 0 1/2 1
0 1/6 1/3 1/2 0 0
0 1/6 0 1/2 1/2 0
_
_
_
_
_
_
_
_
= 1/10
P = (1 )A
c
+

n
11

Matrice P que lon ne calcule pas ... Mais on cherche m tel que Pm = m
Remarque :
Pm = (1 )A
c
m +

n
_
1

m
_
1
= (1 )Am +
_
1
n
d

1 +

n
1

m
_
1
Rsonances et valeurs propres
(in T. Von Karman, the wind and beyond, 1963)
1831, prs de Manchester, des militaires passent un pont au pas
les avions qui vibrent et scrasent
immeubles et tremblements de terre
Ariane : moteur et structure
pont de Tacoma

1,6 km, pointe de la technologie

7 novembre 1940 : vents de 67 km/h, il se dsagrge


Illustration en 2d : dcouplage dans un systme dynamique
Soit u(t) IR
2
, b(t) IR
2
u(t) = Ku(t) + b(t) v(t) = Dv(t) + Pb(t)
avec : K = PDP

, v(t) = Pu(t) et D =
_

1
0
0
2
_
P : matrice orthogonale de changement de base
Plan
1
Calcul des valeurs propres
Le vecteur propre 25.000.000.000 $
La notion de valeur propre
La mthode de la puissance itre
Algorithmes pour calculer m n valeurs propres dune matrice
symtrique
La mthode des itrations orthogonales
Lalgorithme QR pour valeurs propres
Lalgorithme QR sur une forme tridiagonale
Algorithmes pour calculer la dcomposition en valeurs singulires
rappel sur la dcomposition en valeurs singulires
Calcul de la dcomposition en valeurs singulires
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 8 / 62
Valeurs propres et vecteurs propres
Denition (valeur et vecteur propres)
soit A une matrice carre n n, v est un vecteur
propre de la matrice A sil existe un scalaire
(appel valeur propre) tel que
Av = v
A v
v
Theorem (une matrice carre n n admet n vecteurs propres)
Av
i
=
i
v
i
cas gnral (
i
, v
i
) C C
n
A symtrique (
i
, v
i
) IR IR
n
dmonstration :
Av = v v

Av = v

v =
et v

Av est un nombre complexe qui


se trouve tre gal son conjugu
Ecriture matricielle :
AV = VD
avec D = diag(
1
, . . . ,
n
), V =
_
v
1
v
2
. . . v
n
_
et les v
i
des vecteurs
de dimension n
Proprits des vecteurs propres
par convention v est choisi unitaire : v = 1
Av = v
si v est connu, =
v

Av
v

v
si est connu, il sut de rsoudre le systme linaire
Av = v (A I )v = 0
(attention : la matrice A I est singulire !)
les valeurs propres sont solution (en maths, pas en informatique !) de
lquation :
det(A I ) = 0
Cette quation admet toujours n racines complexes. A quelles
conditions sur A sont elles relles ? dicile ! mais si A est symtrique
elles sont relles.
Proprits des vecteurs propres
par convention v est choisi unitaire : v = 1
Av = v
si v est connu, =
v

Av
v

v
si est connu, il sut de rsoudre le systme linaire
Av = v (A I )v = 0
(attention : la matrice A I est singulire !)
les valeurs propres sont solution (en maths, pas en informatique !) de
lquation :
det(A I ) = 0
Cette quation admet toujours n racines complexes. A quelles
conditions sur A sont elles relles ? dicile ! mais si A est symtrique
elles sont relles.
Valeur propres et valeurs singulires
valeur propres
i
de matrices carres n n
Av
i
=
i
v
i
, i = 1, n
(
i
, v
i
) C C
n
valeurs singulires
i
de matrice quelconque de
dimension n p
Bv
i
=
i
u
i
B

u
i
=
i
v
i

i
IR, u
i
IR
n
et v
i
IR
p
Liens entre valeur propre et valeur singulire
B

B
. .
A
v
i
=
i
B

u
i
=
2
i
v
i

i
=
2
i
v
i
vecteur propre de A = B

B
et u
i
vecteur propre de BB

A
B
v
u
v
Valeur propres et valeurs singulires
valeur propres
i
de matrices carres n n
Av
i
=
i
v
i
, i = 1, n
(
i
, v
i
) C C
n
valeurs singulires
i
de matrice quelconque de
dimension n p
Bv
i
=
i
u
i
B

u
i
=
i
v
i

i
IR, u
i
IR
n
et v
i
IR
p
Liens entre valeur propre et valeur singulire
B

B
. .
A
v
i
=
i
B

u
i
=
2
i
v
i

i
=
2
i
v
i
vecteur propre de A = B

B
et u
i
vecteur propre de BB

A
B
v
u
v
Dcomposition en valeurs singulires
i ,= j ,
Bv
i
=
i
u
i
B

u
j
=
j
v
j
u

j
Bv
i
=
i
u

j
u
i
v

i
B

u
j
=
j
v

i
v
j
u

j
Bv
i
v

i
B

u
j

=0
=
i
u

j
u
i

j
v

i
v
j
On considre les systmes orthonormaux :
i = j , u

j
u
i
= 0 et v

i
v
j
= 0
u

i
u
i
= 1 et v

i
v
i
= 1
Theorem (Dcomposition en valeurs singulires : factorisation dune
matrice relle)
B IR
np
, U IR
nn
et V IR
pp
deux matrices orthogonales
coecients rels telles que
U

BV = D
o D est la matrice diagonale des valeurs singulires relles.
On obtient la factorisation de B : Bv
i
=
i
u
i
; i = 1, p BV = UD
B VV

. .
I
= UDV

Thorme de factorisation
Theorem (Dcomposition de Schur symtrique (diagonalisation))
le cas des matrices A symtriques : A une matrice symtrique
coecients rels, U une matrice orthogonale coecients rels telle que
U

AU = D = diag(
1
, . . . ,
n
)
o D est la matrice diagonale des valeurs propres relles.
dans le cas dune matrice non symtrique, elle peut tre diagonalisable si
toutes ses valeurs propres sont relles et distinctes. Si ce nest pas le cas,
deux types de factorisations existent dans le cas gnral
C U complexes et D une matrice triangulaire suprieure complexe avec
les valeurs propres sur la diagonale.
IR U relle et D une matrice triangulaire suprieure par blocs de deux
pour chaque paire de valeurs propres complexes conjugues
Rappel sur la dcomposition en valeur singulires (SVD)
Dcomposition :

SVD
B = UDV

=
min(n,p)

i =1

i
u
i
v

Valeurs propres dune matrice symtrique


A(= B

B) = UDU

=
p

i =1

i
u
i
u

i

i
=
2
i
Approximation de la matrice B :
min
u,v
B uv

2
F
= min
u,v
n

i =1
p

j =1
_
B
ij
u
i
v
j
_
2
A
1
=

1 3 0
1 0 1
0 3 1
1 1 0

A
2
=

3 1 1
1 2 0
0 1 2

A3 =

2 1 1
0 1 2
1 1 0

1
A
1
= A
4
=

3 4 1
4 19 3
1 3 2

[u,l]=eig(A1)
[U,D,V]=svd(A1)
[u,l]=eig(A2)
[U,D,V]=svd(A2)
[U,T]=schur(A2)
[u,l]=eig(A3)
[U,D,V]=svd(A3)
[u,l]=eig(A4)
[U,D,V]=svd(A4)
erreur !

1
= 4.5;
2
= 1.86;
3
= 0.41

1
= 2.5 + i ;
2
= 2.5 i ;
3
= 2

1
= 3.4;
2
= 2.5;
3
= 1.7

1
= 2.8;
2
= 2.3;
3
= 0.16

1
= 2.4;
2
= 1.0;
3
= 0.41

1
= 20.3;
2
= 3.5;
3
= 0.17

1
= 20.3;
2
= 3.5;
3
= 0.17
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 15 / 62
Proprits des vecteurs propres rels
si A IR
nn
est symtrique, ils sont orthogonaux entre eux
Av
1
=
1
v
1
Av
2
=
2
v
2
. . .
Av
n
=
n
v
n
v

i
Av
j
=
j
v

i
v
j
v

j
Av
i
=
i
v

i
v
j
A symtrique : v

i
Av
j
= v

j
Av
i
(
i

j
)v

i
v
j
= 0

i
=
j
v

i
v
j
= 0
ils sont souvent choisis unitaires
v
i

2
2
= v

i
v
i
= 1
sils sont rels, ils forment une base orthonorme de IR
n
dans ce cas, la matrice des vecteurs propres V est orthogonale
V

V = I V
1
= V

si A est symtrique dnie positive, ses valeurs propres sont positives


v

Av
. .
>0
=
Les cercles de Gershgorin
Theorem (des cercles de Gershgorin)
Soit A une matrice carre et R
i
le cercle du plan complexe
R
i
= {z C | |z a
ii
|
n

j ,=i
|a
ij
|}
Alors toutes les valeurs propres de A appartiennent un des cercles R
i
exemple :
A =

4 1 1
0 2 1
2 0 9

[z 4[ 2
[z 2[ 1
[z 9[ 2
dmonstration :

n
j =1
a
ij
v
j
= v
i


n
j =i
a
ij
v
j
= ( a
ii
)v
i
i = 1, n
et donc
| a
ii
||v
i
|
n

j =i
|a
ij
| |v
j
| | a
ii
|
n

j =i
|a
ij
|
|v
j
|
|v
i
|
Plan
1
Calcul des valeurs propres
Le vecteur propre 25.000.000.000 $
La notion de valeur propre
La mthode de la puissance itre
Algorithmes pour calculer m n valeurs propres dune matrice
symtrique
La mthode des itrations orthogonales
Lalgorithme QR pour valeurs propres
Lalgorithme QR sur une forme tridiagonale
Algorithmes pour calculer la dcomposition en valeurs singulires
rappel sur la dcomposition en valeurs singulires
Calcul de la dcomposition en valeurs singulires
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 18 / 62
Illustration de la puissance itre
x, Ax, A
2
x, A
3
x, . . . , A
k
x, . . .
A =
_
3/2 1
1/2 1
_
La base des vecteurs propres
Supposons que la matrice A admette n vecteurs propres indpendants : les
v
i
forment une base des vecteurs propres.
x IR
n
,
i
, i = 1, n x =
1
v
1
+
2
v
2
+ +
n
v
n
Ax =
1
Av
1
+
2
Av
2
+ +
n
Av
n
=
1

1
v
1
+
2

2
v
2
+ +
n

n
v
n
A
k
x =
1

k
1
v
1
+
2

k
2
v
2
+ +
n

k
n
v
n
=
k
1
_

1
v
1
+
2

k
2

k
1
v
2
+ +
n

k
n

k
1
v
n
_
=
k
1
_

1
v
1
+
2
_

1
_
k
v
2
+ +
n
_

1
_
k
v
n
_
si i = 2, n ; |
1
| > |
i
|
A
k
x

k
1

1
v
1
pour k
La mthode de la puissance itre
on considre la suite z
(k+1)
=
Az
(k)
[[Az
(k)
[[
avec z
(0)
quelconque...
Fonction x, Puissance_Iteree(A, x)
Tant que (on a pas converg) faire
z = Ax
x = z/z
Fait
= x

Ax
illustration numrique
a marche A =
_
1 1
1 2
_
z = A z/norm(A z); = z
t
A z; [z
t
]
k z
1
z
2

0 1 1 1
1 0.8944 -0.4472 -0.4000
2 0.2425 0.9701 -1.3529
3 0.5812 -0.8137 -1.9324
4 -0.1047 0.9945 -2.1753
5 0.3911 -0.9203 -2.2610
6 -0.2307 0.9730 -2.2893
a ne marche pas

cause de linitialisation : exemple z


(0)
= 0

cause de A =
_
2 1
1 1
_
les valeurs propres sont complexes !
Thorme de convergence de la puissance itre
on considre la suite z
(k+1)
=
Az
(k)
[[Az
(k)
[[
avec z
(0)
quelconque...
Theorem (puissance itre)
Si z
(0)
nappartient pas au sous espace vectoriel engendr par les vecteurs
propres v
2
, v
3
, . . . , v
n
de A
Alors la suite z
(k)
vrie :
lim
k
Az
(k)
= |
1
|
lim
k
_
signe(
1
)
_
k
z
(k)
v
1
dmonstration : GVL p 406 th 8.2.1
Variations : la puissance inverse
comment calculer la plus petite valeur propre ?
La plus petite valeur propre de A (en valeur absolue) est aussi la plus
grande de A
1
(en valeur absolue)
Av = v
1

v = A
1
v
on considre la suite z
(k+1)
I
=
A
1
z
(k)
I
||A
1
z
(k)
I
||
avec z
(0)
I
quelconque...
La valeur propre la plus proche dune valeur IR quon sest donne
(A I )v = ( )v
on considre la suite z
(k+1)

=
(A I )
1
z
(k)

||(A I )
1
z
(k)

||
avec z
(0)

quelconque...
Variations : la puissance inverse
comment calculer la plus petite valeur propre ?
La plus petite valeur propre de A (en valeur absolue) est aussi la plus
grande de A
1
(en valeur absolue)
Av = v
1

v = A
1
v
on considre la suite z
(k+1)
I
=
A
1
z
(k)
I
||A
1
z
(k)
I
||
avec z
(0)
I
quelconque...
La valeur propre la plus proche dune valeur IR quon sest donne
(A I )v = ( )v
on considre la suite z
(k+1)

=
(A I )
1
z
(k)

||(A I )
1
z
(k)

||
avec z
(0)

quelconque...
Variations : la puissance inverse
comment calculer la plus petite valeur propre ?
La plus petite valeur propre de A (en valeur absolue) est aussi la plus
grande de A
1
(en valeur absolue)
Av = v
1

v = A
1
v
on considre la suite z
(k+1)
I
=
A
1
z
(k)
I
||A
1
z
(k)
I
||
avec z
(0)
I
quelconque...
La valeur propre la plus proche dune valeur IR quon sest donne
(A I )v = ( )v
on considre la suite z
(k+1)

=
(A I )
1
z
(k)

||(A I )
1
z
(k)

||
avec z
(0)

quelconque...
Calculs de toutes les valeurs propres : la dation
Dans le cas des matrices symtriques :
A
(2)
= A
1
v
1
v

1
Av
2
=
2
v
2
A
(2)
v
2
= (A
1
v
1
v

1
)v
2
= Av
2

1
v
1
v

1
v
2
. .
=0
=
2
v
2
si A nest pas symtrique, on peut utiliser dautres mthodes
Plan
1
Calcul des valeurs propres
Le vecteur propre 25.000.000.000 $
La notion de valeur propre
La mthode de la puissance itre
Algorithmes pour calculer m n valeurs propres dune matrice
symtrique
La mthode des itrations orthogonales
Lalgorithme QR pour valeurs propres
Lalgorithme QR sur une forme tridiagonale
Algorithmes pour calculer la dcomposition en valeurs singulires
rappel sur la dcomposition en valeurs singulires
Calcul de la dcomposition en valeurs singulires
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 26 / 62
La mthode de la puissance itre sur deux vecteurs
on considre les suites z
(k+1)
1
=
Az
(k)
1
[[Az
(k)
1
[[
et z
(k+1)
2
=
Az
(k)
2
[[Az
(k)
2
[[
avec z
(0)
1
et z
(0)
2
quelconques mais orthogonaux
Pour obtenir 2 vecteurs propres il faut orthogonaliser z
(k+1)
1
et z
(k+1)
2
Gram-Schmidt : z
2
= z
2

_
z

2
z
1
_
z
1
QR
Fonction Z, D Puissance_Itre_multiple(A, Z)
Tant que (on a pas converg) faire
Z = AZ
Z = orthogonalise(Z)
Fait
D = Z

AZ
La mthode de la puissance itre sur deux vecteurs
on considre les suites z
(k+1)
1
=
Az
(k)
1
[[Az
(k)
1
[[
et z
(k+1)
2
=
Az
(k)
2
[[Az
(k)
2
[[
avec z
(0)
1
et z
(0)
2
quelconques mais orthogonaux
Pour obtenir 2 vecteurs propres il faut orthogonaliser z
(k+1)
1
et z
(k+1)
2
Gram-Schmidt : z
2
= z
2

_
z

2
z
1
_
z
1
QR
Fonction Z, D Puissance_Itre_multiple(A, Z)
Tant que (on a pas converg) faire
Z = AZ
Z = orthogonalise(Z)
Fait
D = Z

AZ
La mthode de la puissance itre sur deux vecteurs
on considre les suites z
(k+1)
1
=
Az
(k)
1
[[Az
(k)
1
[[
et z
(k+1)
2
=
Az
(k)
2
[[Az
(k)
2
[[
avec z
(0)
1
et z
(0)
2
quelconques mais orthogonaux
Pour obtenir 2 vecteurs propres il faut orthogonaliser z
(k+1)
1
et z
(k+1)
2
Gram-Schmidt : z
2
= z
2

_
z

2
z
1
_
z
1
QR
Fonction Z, D Puissance_Itre_multiple(A, Z)
Tant que (on a pas converg) faire
Z = AZ
Z = orthogonalise(Z)
Fait
D = Z

AZ
La factorisation QR (rappel)
Soit B une matrice de n lignes et p colonnes
il existe :

une matrice orthogonale Q de n lignes et n colonnes

une matrice triangulaire suprieure R de n lignes et p colonnes


telles que : B = QR
si n > p, : B = QR =

Q

R avec

Q IR
np
Q =

Q
R =

R
0
La mthode des itrations orthogonales
Supposons A est une matrice symtrique Les valeurs propres de A sont
relles. on considre les suites Z
(k)
et Q
(k)
:
Z
(k)
= AQ
(k)
(Q
(k+1)
, R
(k+1)
) = qr(Z
(k)
)
Q
(k)

k
v
1
, v
2
, . . . , v
m
: les vecteurs propres
Q
(k)
AQ
(k)

k
diag
_

1
,
2
, . . . ,
m
_
: les valeurs propres
Fonction Q, D ite_orth(A)
Tant que (on a pas converg) faire
Z = AQ
[Q, R] = qr(Z)
Fait
D = Q

AQ
Rcriture (1)
on considre les suites Z
k
et Q
k
:
_
Z
k
= AQ
k
(Q
k+1
, R
k+1
) = qr(Z
k
)
A la convergence, on souhaite la proprit suivante
T
k
= Q

k
AQ
k

k
diag
_

1
,
2
, . . . ,
m
_
Explictons la matrice T
k
T
k
= Q

k
AQ
k
= Q

k
(AQ
k
)
= Q

k
(Z
k
)
= Q

k
(Q
k+1
R
k+1
)
= Q

k
Q
k+1
. .
Q
R
k+1
T
k+1
= Q

k+1
AQ
k+1
= Q

k+1
AQ
k
Q

k
Q
k+1
= Q

k+1
Z
k
Q

k
Q
k+1
= Q

k+1
(Q
k+1
R
k+1
)Q

k
Q
k+1
= R
k+1
Q

k
Q
k+1
. .
Q
Remarque : Q est une matrice orthogonale car tant le produit de deux
matrices orthogonales.
Par convention posons :
T
k+1
= R
k+1
Q
k+1
avec Q
k+1
R
k+1
= qr(T
k
)
Rcriture (2)
On a donc tabli
T
k+1
= R
k+1
Q
k+1
avec Q
k+1
R
k+1
= qr(T
k
)
Autre expression de T
k+1
T
k+1
= I R
k+1
Q
k+1
= Q

k+1
Q
k+1
R
k+1
Q
k+1
= Q

k+1
T
k
Q
k+1
Lalgorithme QR pour les valeurs propres
Fonction T QR_VP(A)
T = A
Tant que (on a pas converg) faire
[Q, R] = qr(T)
T = RQ
Fait
A la convergence, les lments diagonaux de la matrice carre T
correspondent aux valeurs propres de A
Matrices quivalentes
Av =
i
v
i
, i = 1, n
AV = VD
V est orthogonale : V

V = VV

= I
V

AV = D
A = VDV

si Q est une matrice orthogonale A et QAQ

ont les mmes valeurs


propres
AV = VD
AQ

QV = Q

QVD
QAQ

QV = QVD
QAQ

W = WD
avec W = QV la matrice des vecteurs propres de QAQ

Plan
1
Calcul des valeurs propres
Le vecteur propre 25.000.000.000 $
La notion de valeur propre
La mthode de la puissance itre
Algorithmes pour calculer m n valeurs propres dune matrice
symtrique
La mthode des itrations orthogonales
Lalgorithme QR pour valeurs propres
Lalgorithme QR sur une forme tridiagonale
Algorithmes pour calculer la dcomposition en valeurs singulires
rappel sur la dcomposition en valeurs singulires
Calcul de la dcomposition en valeurs singulires
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 34 / 62
Remarques
T
k+1
= R
k+1
Q
k+1
avec Q
k+1
R
k+1
= qr(T
k
)
T
k
= Q

k
T
k1
Q
k
= Q

k
Q

k1
T
k2
Q
k1
Q
k
= Q

k
Q

k1
. . . Q

1
Q

0
. .
Q

A Q
0
Q
1
. . . Q
k1
Q
k
. .
Q
Initialisons lalgorithme avec T = Q
0
AQ

0
au lieu de A
Fonction T QR_VP(A)
T = Q

0
AQ
0
Tant que (on a pas converg) faire
[Q, R] = qr(T)
T = RQ
Fait
Casser la complexit
O(n
3
) [Q, R] = qr(T)
O(n
3
) T = RQ
La forme tridiagonale : si T est tridiagonale...
T =
_
_
_
_
_
_
_
_
_
_
_
0 0 . . . 0 0
0 . . . 0 0
0 . . . 0 0
. . . . . .
.
.
.
.
.
.
.
.
.
. . . . . .
0 0 . . . 0
0 0 . . . 0
0 0 0 . . . 0
_
_
_
_
_
_
_
_
_
_
_
O(n) [Q, R] = qr(T)
O(n) T = RQ
Casser la complexit
O(n
3
) [Q, R] = qr(T)
O(n
3
) T = RQ
La forme tridiagonale : si T est tridiagonale...
T =
_
_
_
_
_
_
_
_
_
_
_
0 0 . . . 0 0
0 . . . 0 0
0 . . . 0 0
. . . . . .
.
.
.
.
.
.
.
.
.
. . . . . .
0 0 . . . 0
0 0 . . . 0
0 0 0 . . . 0
_
_
_
_
_
_
_
_
_
_
_
O(n) [Q, R] = qr(T)
O(n) T = RQ
Le principe de lalgorithme QR sur une forme tridiagonale
La forme gnrale de lalgorithme dpend de trois tapes :
1
rduction tridiagonale T = Q

AQ
2
[Q, R] = qr_tri(T)
3
T = RQ
Fonction T QR_VP(A)
[H, T] = tri_diag(A)
Tant que (on a pas converg) faire
[Q, R] = qr_tri(T)
T = RQ
Fait
Etape 1 : la rduction une forme tridiagonale
soit A une matrice symtrique
trouver une transformation telle que T = (A).
Trouver une matrice H telle que T = H

AH :

T soit quivalente A
H orthogonale

Tv = H

AHv = v AHv = Hv

T soit tri diagonale


H doit mettre des zros l o il faut

T soit symtrique
par construction
Utiliser les transformations de Householder
Trouver une matrice orthogonale H telle que T = H

AH
Etape 1 : la rduction une forme tridiagonale
soit A une matrice symtrique
trouver une transformation telle que T = (A).
Trouver une matrice H telle que T = H

AH :

T soit quivalente A H orthogonale

Tv = H

AHv = v AHv = Hv

T soit tri diagonale H doit mettre des zros l o il faut

T soit symtrique par construction


Utiliser les transformations de Householder
Trouver une matrice orthogonale H telle que T = H

AH
Lalgorithme de rduction une forme tridiagonale
A
_
_
_
_
_
_
_
_
_
_
_
a
11
. . .
. . .
. . .
. . . . . .
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
_
_
_
_
_
_
_
_
_
_
_

1
A

H
1
=
_
_
_
_
_
_
_
_
_
_
_
a
11
0 . . . 0
. . .
0 . . .
. . . . . .
.
.
.
.
.
.
.
.
.
0 . . .
0 . . .
0 . . .
_
_
_
_
_
_
_
_
_
_
_

H
1
=
_
_
_
_
_
_
_
_
_
_
1 0 0 0 0 0 0
0
0
0
0
0
0
_
_
_
_
_
_
_
_
_
_
H
1
= I vv

Exemple de rduction une forme tridiagonale


A =
_
_
1 3 4
3 2 8
4 8 3
_
_
v =
_
3
4
_

_
1
0
_
avec =

9 + 16 = 5
v =
_
2
4
_
H
1
= I
2
20
vv
t
=
_
_
1 0 0
0 .6 .8
0 .8 .6
_
_
H

1
A H
1
= H

1
AH
1
_
_
1 0 0
0 .6 .8
0 .8 .6
_
_
_
_
1 3 4
3 2 8
4 8 3
_
_
_
_
1 0 0
0 .6 .8
0 .8 .6
_
_
=
_
_
1 5 0
5 10, 32 1, 76
0 1, 76 5, 323
_
_
Lalgorithme de rduction une forme tridiagonale
Soit la matrice de Householder H
k
= I vv

, v = A(k + 1 : n, k)

H
k
=
I 0 k
0 H
k
n k
k n k
On veut prserver la symtrie A
k
= H

k
A
k1
H
k
A
k1
=
A
11
A
1k
0 k 1
A
k1
a
kk
A
kn
1
0 A
nk
A
nn
n k
k 1 1 n k
A
k
= H

k
A
k1
H
k
=
A
11
A
1k
0 k 1
A
k1
a
kk
A
kn
H
k
1
0 H
k
A
nk
H

k
A
nn
H
k
n k
k 1 1 n k
Lalgorithme de rduction une forme tridiagonale
H

k
A
nn
H
k
= (I vv

)A
nn
(I vv

)
= A
nn
vv

A
nn
A
nn
vv

+
2
vv

A
nn
vv

p = A
nn
v
= A
nn
vp

pv

+

2
vv

pv

+

2
vp

vv

= A
nn
v(p


2
p

vv

) (p

2
vv

p)v

w = p
v

p
2
v
= A
nn
vw

wv

Fonction A house_Tri(A)
Pour k = 1, n 2 faire
[v, ] = house(A(k + 1 : n, k))
p = A(k + 1 : n, k + 1 : n) v
w = p
v

p
2
v
A(k + 1, k) = A(k + 1 : n, k); A(k + 1, k) = A(k, k + 1)
A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) vw

wv

Fin Pour
Lalgorithme de rduction une forme tridiagonale
H

k
A
nn
H
k
= (I vv

)A
nn
(I vv

)
= A
nn
vv

A
nn
A
nn
vv

+
2
vv

A
nn
vv

p = A
nn
v
= A
nn
vp

pv

+

2
vv

pv

+

2
vp

vv

= A
nn
v(p


2
p

vv

) (p

2
vv

p)v

w = p
v

p
2
v
= A
nn
vw

wv

Fonction A house_Tri(A)
Pour k = 1, n 2 faire
[v, ] = house(A(k + 1 : n, k))
p = A(k + 1 : n, k + 1 : n) v
w = p
v

p
2
v
A(k + 1, k) = A(k + 1 : n, k); A(k + 1, k) = A(k, k + 1)
A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) vw

wv

Fin Pour
Lalgorithme de rduction une forme tridiagonale
H

k
A
nn
H
k
= (I vv

)A
nn
(I vv

)
= A
nn
vv

A
nn
A
nn
vv

+
2
vv

A
nn
vv

p = A
nn
v
= A
nn
vp

pv

+

2
vv

pv

+

2
vp

vv

= A
nn
v(p


2
p

vv

) (p

2
vv

p)v

w = p
v

p
2
v
= A
nn
vw

wv

Fonction A house_Tri(A)
Pour k = 1, n 2 faire
[v, ] = house(A(k + 1 : n, k))
p = A(k + 1 : n, k + 1 : n) v
w = p
v

p
2
v
A(k + 1, k) = A(k + 1 : n, k); A(k + 1, k) = A(k, k + 1)
A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) vw

wv

Fin Pour
Lalgorithme de rduction une forme tridiagonale
H

k
A
nn
H
k
= (I vv

)A
nn
(I vv

)
= A
nn
vv

A
nn
A
nn
vv

+
2
vv

A
nn
vv

p = A
nn
v
= A
nn
vp

pv

+

2
vv

pv

+

2
vp

vv

= A
nn
v(p


2
p

vv

) (p

2
vv

p)v

w = p
v

p
2
v
= A
nn
vw

wv

Fonction A house_Tri(A)
Pour k = 1, n 2 faire
[v, ] = house(A(k + 1 : n, k))
p = A(k + 1 : n, k + 1 : n) v
w = p
v

p
2
v
A(k + 1, k) = A(k + 1 : n, k); A(k + 1, k) = A(k, k + 1)
A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) vw

wv

Fin Pour
Lalgorithme de rduction une forme tridiagonale
H

k
A
nn
H
k
= (I vv

)A
nn
(I vv

)
= A
nn
vv

A
nn
A
nn
vv

+
2
vv

A
nn
vv

p = A
nn
v
= A
nn
vp

pv

+

2
vv

pv

+

2
vp

vv

= A
nn
v(p


2
p

vv

) (p

2
vv

p)v

w = p
v

p
2
v
= A
nn
vw

wv

Fonction A house_Tri(A)
Pour k = 1, n 2 faire
[v, ] = house(A(k + 1 : n, k))
p = A(k + 1 : n, k + 1 : n) v
w = p
v

p
2
v
A(k + 1, k) = A(k + 1 : n, k); A(k + 1, k) = A(k, k + 1)
A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) vw

wv

Fin Pour
Lalgorithme de rduction une forme tridiagonale
H

k
A
nn
H
k
= (I vv

)A
nn
(I vv

)
= A
nn
vv

A
nn
A
nn
vv

+
2
vv

A
nn
vv

p = A
nn
v
= A
nn
vp

pv

+

2
vv

pv

+

2
vp

vv

= A
nn
v(p


2
p

vv

) (p

2
vv

p)v

w = p
v

p
2
v
= A
nn
vw

wv

Fonction A house_Tri(A)
Pour k = 1, n 2 faire
[v, ] = house(A(k + 1 : n, k))
p = A(k + 1 : n, k + 1 : n) v
w = p
v

p
2
v
A(k + 1, k) = A(k + 1 : n, k); A(k + 1, k) = A(k, k + 1)
A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) vw

wv

Fin Pour
Trois faits propos de lalgorithme qr_tri
[Q, R] = qr_tri(T)
1
il peut tre calcul en appliquant n 1 rotations de Givens
2
Q est une matrice de Heisenberg (quasi triangulaire suprieure)
3
R est une matrice triangulaire suprieure tridiagonale
Conservation de la forme tridiagonale
T = RQ
les matrices T
k
sont Hessenberg car :
T
k+1
= RQ =
_
_
_
_
_
_
r
11
r
12
r
13
0 0
0 r
22
r
23
r 0
0 0 r
33
r r
0 0 0 r r
0 0 0 0 r
_
_
_
_
_
_
_
_
_
_
_
_
q
11
q
12
q
13
q q
q q
22
q
23
q q
0 q q
33
q q
0 0 q q q
0 0 0 q q
_
_
_
_
_
_
les matrices T
k
sont aussi symtriques car :
T
k+1
= RQ
= Q

QRQ
= Q

T
k
Q
Comme elles sont aussi de forme de Heisenberg, elles sont dont
tridiagonales.
Exemple
T =

1 2 0 0
2 3 4 0
0 4 5 6
0 0 6 7

Q =

0.44 0.09 0.32 0.82


0.89 0.04 0.16 0.41
0 0.99 0.04 0.10
0 0 0.93 0.36

R =

2.23 3.57 3.57 0


0 4.02 4.77 5.96
0 0 6.43 6.76
0 0 0 1.91

T =

4.2 3.6 0 0
3.6 4.54 6.39 0
0 6.39 6.56 1.78
0 0 1.78 0.69

1 7.902 8.028 0.611 0.68 4.22 4.02 0.33


2 11.444 5.976 2.122 0.70 3.05 1.67 0.08
3 12.604 5.088 2.397 0.70 1.35 0.80 0.02
4 12.807 4.950 2.462 0.70 0.53 0.40 0.01
5 12.838 4.936 2.479 0.70 0.20 0.20 0.00
6 12.842 4.935 2.483 0.70 0.07 0.10 0.00
7 12.843 4.936 2.484 0.70 0.03 0.05 0.00
8 12.843 4.936 2.484 0.70 0.01 0.02 0.00
T = [1 2 0 0
2 3 4 0
0 4 5 6
0 0 6 7]
[Q,R] = qr(T)
T = R*Q
for i = 1:8
[Q,R] = qr(T);
T = R*Q;
disp([i diag(T) diag(T,1)]);
end
Dtails pratiques
dcalage [Q, R] = qr_tri(T sI ) T = RQ + sI
acclration mthode de Ritz
astuces ...
Conclusion
pour les matrices symtriques
UNE valeur propre : puissance itre : z = Az : par itrations
m valeurs propres

puissance itre multiple : orthogonalisation : QR [QR] = qr(Z)


Z = AQ
[Q, R] = qr(Z)

transformation de AZ en RQ
T = RQ
[Q, R] = qr(T)

casser la complexit : utilisation de la forme tridiagonale

dans la boucle : O(n)

prix payer : une initialisation O(n


3
) : T = HAH

... et des astuces


Plan
1
Calcul des valeurs propres
Le vecteur propre 25.000.000.000 $
La notion de valeur propre
La mthode de la puissance itre
Algorithmes pour calculer m n valeurs propres dune matrice
symtrique
La mthode des itrations orthogonales
Lalgorithme QR pour valeurs propres
Lalgorithme QR sur une forme tridiagonale
Algorithmes pour calculer la dcomposition en valeurs singulires
rappel sur la dcomposition en valeurs singulires
Calcul de la dcomposition en valeurs singulires
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 48 / 62
Rappel sur la dcomposition en valeurs singulires (SVD)
Soit B une matrice de n lignes et p colonnes (n p)
Bv
i
=
i
u
i
B

u
i
=
i
v
i
i = 1, p
min
u,v
Buv

2
F
= min
u,v
n

i =1
p

j =1
_
B
ij
u
i
v
j
_
2
B = UDV

=
min(n,p)

i =1

i
u
i
v

i
B
u
v
B
v
u
Si B est une matrice carre symtrique : valeur propre = valeur singulire
Les trois dcompositions en valeurs singulires
B = UDV

=
min(n,p)

i =1

i
u
i
v

i
complte
B =

U

DV

U et V deux matrices orthogonales


tronque : k < p
B = U
k
D
k
V

k
=
k

i =1

i
u
i
v

i
B U
D
DV

Exemple
B =
_
_
_
_
1 1.72
0.61 0.35
0 0
0.61 0.35
_
_
_
_
U =
_
_
_
_
_
1 0
0

2
2
0

2
2
0 0
_
_
_
_
_
D =
_
2 0
0 1
_
V =
_

1
2

3
2

3
2
1
2
_

U =
_
_
_
_
_
1 0 0 0
0

2
2

2
2
0
0

2
2

2
2
0
0 0 0 1
_
_
_
_
_

D =
_
_
_
_
2 0
0 1
0 0
0 0
_
_
_
_
V =
_

1
2

3
2

3
2
1
2
_
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 51 / 62
SVD et estimation des valeurs manquante dune matrice
Theorem (approximation dune matrice par une matrice de rang k)
La meilleure approximation dune matrice B par une matrice R de rang k
min
rang(R)=k
B R
2
F
= min
u,v
n

i =1
p

j =1
_
B
ij
R
ij
_
2
=
2
k+1
est donn par la SVD associe aux k plus grandes valeurs singulire (en
valeur absolue)
R = U
k
D
k
V

k
Application : pour estimer B
ij
on choisit k
on calcul la k lordre k : U
k
, D
k
, V
k
on estime B
ij
=
k

=1
U
i
D

V
j
nettoyage dune matrice image
Xb =
[u,d,v]=svd(Xb);
for k=1:4
subplot(2,2,k);
I=u(:,1:k)*d(1:k,1:k)*v(:,1:k));
imagesc(I);
end
Lapproximation en moyenne gomme les contours. Sur des images de
visages normalises on retrouve des visages singuliers
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 53 / 62
Plan
1
Calcul des valeurs propres
Le vecteur propre 25.000.000.000 $
La notion de valeur propre
La mthode de la puissance itre
Algorithmes pour calculer m n valeurs propres dune matrice
symtrique
La mthode des itrations orthogonales
Lalgorithme QR pour valeurs propres
Lalgorithme QR sur une forme tridiagonale
Algorithmes pour calculer la dcomposition en valeurs singulires
rappel sur la dcomposition en valeurs singulires
Calcul de la dcomposition en valeurs singulires
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 54 / 62
...en passant pas les valeurs propres
_
Bv
i
=
i
u
i
B

u
i
=
i
v
i
B(B

u
i
) =
i
Bv
i
=
2
i
u
i
B

(Bv
i
) =
i
B

v
i
=
2
i
v
i
_
B = UDV

= V

_
BV = UD
B

U = V

D
_
B

BV = B

UD = VD
2
BB

U = BV

D = U

D
2
premire tentative
eig(B

B) ou eig(BB

)
bon quand p << n
problme pour les petites valeurs
singulires quand B est mal
conditionn
e = 10^-12;
B = [1 0 0
0 1 0
0 0 1
e e e]
A = B*B
svd(B)-1
1.0e-015 * 0.2220
eig(A)-1
0
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 55 / 62
...en passant pas les valeurs propres
deuxime tentative
Bv = u
B

u = v
0u + Bv = u
B

u + 0v = v
eig(C = [0 B; B

0])
QCQ

=
diag(
1
, . . . ,
p
,
1
, . . . ,
p
, 0, . . . , 0
. .
np
)
Q =
1

V V 0
U
1
U
1

2U
2

avec U = (U
1
; U
2
)
n + p valeurs et vecteurs propres
deux fois trop de mmoire, et
deux fois trop de travail
[n,p] = size(B);
l = eig([zeros(n) B
B zeros(p)])
l =
-1.0000
-1.0000
-1.0000
0.0000
1.0000
1.0000
1.0000
Stphane Canu (INSA Rouen - ASI) Valeurs propres December 10, 2011 56 / 62
Calcul direct
les deux tapes

bidiagonalisation (par exemple en utilisant Householder)


B = U
b
FV

diagonalisation de la matrice bidiagonale


F = U
d
DV

d
le rsultat nal :
B = U
b
U
d
. .
U
D V

d
V

b
. .
V

bidiagonalisation
B = U
b
FV

b
Matrices de Householder (Golub et Kahan, 1965)

U
1


0
0
0
0

V
1

0 0
0
0
0
0

U
2

0 0
0
0 0
0 0
0 0

V
2

0 0
0 0
0 0
0 0
0 0

U
3

0 0
0 0
0 0
0 0 0
0 0 0

U
4
U
4
U
3
U
2
U
1
. .
U
b
B V

1
V

2
. .
V

b
= F =
_
_
_
_
_
_

1

1
0 0
0
2

2
0
0 0
3

3
0 0 0
4
0 0 0 0
_
_
_
_
_
_
bidiagonalisation
B = U
b
FV

b
Matrices de Householder (Golub et Kahan, 1965)

U
1


0
0
0
0

V
1

0 0
0
0
0
0

U
2

0 0
0
0 0
0 0
0 0

V
2

0 0
0 0
0 0
0 0
0 0

U
3

0 0
0 0
0 0
0 0 0
0 0 0

U
4
U
4
U
3
U
2
U
1
. .
U
b
B V

1
V

2
. .
V

b
= F =
_
_
_
_
_
_

1

1
0 0
0
2

2
0
0 0
3

3
0 0 0
4
0 0 0 0
_
_
_
_
_
_
bidiagonalisation par itrations
B = U
b

FV

b
BV
b
= U
b

F
U

b
B =

FV

b
B

U
b
= V
b

F =

1

1
. . . 0
0
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 0
.
.
.

p1

p1
0 . . . 0
p

BV
b
= U
b
F
Bv
1
=
1
u
1
Bv
2
=
1
u
1
+
2
u
2
. . . . . .
Bv
k
=
k1
u
k1
+
k
u
k
. . . . . .
Bv
p
=
p1
u
p1
+
p
u
p
B

U
b
= V
b

u
1
=
2
v
2
+
1
v
1
B

u
2
=
3
v
3
+
2
v
2
. . . . . .
B

u
k
=
k+1
v
k+1
+
k
v
k
. . . . . .
B

u
p
=
p
v
p
v
k
u
k1
Bv
k
=
k1
u
k1
+
k
u
k
B

u
k
=
k+1
v
k+1
+
k
v
k
v
k+1
u
k
Lalgorithme de bidiagonalisation
Bv
k
=
k1
u
k1
+
k
u
k
B

u
k
=
k+1
v
k+1
+
k
v
k
p = v;
0
= 1; u = 0
Pour k = 1, p faire
v = p/
k1
r = Bv
k1
u

k
= |r|
u = r/
k
p = B

u
k
v

k
= |p|
Fin Pour
Problmes dinstabilit : il faut rorthogonaliser les u et les v...
diagonalisation de la matrice bidiagonale
F = U
d
DV

d
Cest facile sur une matrice bidiagonale...
eig(F

F)
rotations de Givens sur B directement
attention au rle des 0 sur la super diagonale
Conclusion
SVD = valeurs propres
algorithmes O(n
3
) : cest le plus dicile (cest encore un problme
ouvert : paralllisation, grandes matrices...)
si p << n valeurs propres
si B creuse SVD