Vous êtes sur la page 1sur 3

Exercices : Algèbre Linéaire Algorithmique

1. Algorithme de Strassen pour le produit des matrices.


Cet algorithme concerne le produit deux matrices carrées de taille n, il
est dû à Volker Strassen en 1969. Remarque : Le meilleur résultat actuel est
donné par l’algorithme de Coppersmith-Winograd (en O(n2,376 ).
Soient A et B deux matrices carrées de taille n dont les entrées appar-
tiennent à un anneau R et soit C = AB leur produit. On suppose d’abord
que n est une puissance de 2. On peut toujours se ramener à ce cas en rajou-
tant éventuellement des colonnes et des lignes de zéros. Les trois matrices A,
B et C sont divisées en matrices par blocs de taille égale :
· ¸ · ¸ · ¸
A1,1 A1,2 B1,1 B1,2 C1,1 C1,2
A= ,B= ,C=
A2,1 A2,2 B2,1 B2,2 C2,1 C2,2


Ai,j , Bi,j , Ci,j ∈ Rn/2 × Rn/2 .
1) Vérifier les formules (multiplication par blocs) :

C1,1 = A1,1 B1,1 + A1,2 B2,1 , C1,2 = A1,1 B1,2 + A1,2 B2,2 ,

C2,1 = A2,1 B1,1 + A2,2 B2,1 , C2,2 = A2,1 B1,2 + A2,2 B2,2 .
Cette méthode nécessite huit multiplications de matrices pour calculer les
Ci,j , comme dans le produit classique.
2) On considère les sept matrices Mi ci-dessous qui vont servir à exprimer
les Ci,j avec seulement sept multiplications au lieu de huit :

M1 := (A1,1 + A2,2 )(B1,1 + B2,2 ), M2 := (A2,1 + A2,2 )B1,1 ,

M3 := A1,1 (B1,2 − B2,2 ), M4 := A2,2 (B2,1 − B1,1 ),


M5 := (A1,1 + A1,2 )B2,2 , M6 := (A2,1 − A1,1 )(B1,1 + B1,2 ),
et
M7 := (A1,2 − A2,2 )(B2,1 + B2,2 ).
Vérifier alors les formules (de Strassen) :

C1,1 = M1 + M4 − M5 + M7 , C1,2 = M3 + M5 ,

1
C2,1 = M2 + M4 , C2,2 = M1 − M2 + M3 + M6
Le procédé est répété récursivement jusqu’à ce que les matrices A et B soient
des scalaires.
3) Soit T (n) le temps de calcul du produit de matrices n×n par le procédé
de Strassen. Montrer que T vérifie, pour n pair, la récurrence

T (n) ≤ 7T (n/2) + 0(n2 ).

En déduire que si n est une puissance de 2 alors on a


log 7
T (n) = 0(n log 2 ).

Généraliser ce résultat au cas où n est quelconque. (Remarque : (log 3)/ log 2 =


2.80735 . . .)
4) On suppose que le produit de deux matrices 3 × 3 sur un anneau non
commutatif est possible en k multiplications d’éléments de cet anneau. Soit
T 0 (n) le temps de calcul du produit de matrices n×n par ce procédé. Montrer
que T 0 vérifie, pour n multiple de trois, la récurrence

T (n) ≤ kT (n/3) + 0(n2 ).

a) En déduire une majoration de T 0 (n) pour n quelconque.


b) Pour quelles valeurs de k pourrait-on obtenir une amélioration du coût
asymptotique du produit de matrices obtenu ci-dessus pour la méthode de
Strassen ?

2. Montrer que la méthode du pivot de Gauss permet de conduire à un


algorithme du calcul du déterminant d’une matrice n × n à coefficients dans
un corps dont le nombre d’opérations est O(n3 ). (Remarque : noter que la
formule du développement algébrique du déterminant comporte n! termes.)

3. Soit u une endomorphisme d’un espace vectoriel E de dimension finie. On


pose [ \
F = ker un , G = im un .
n≥0 n≥0

a) Montrer que E = F ⊕ G, que la restriction de u sur F est nilpotente


(c’est-à-dire qu’une puissance de cette application est nulle) et que la res-
triction de u sur G est une bijection de G sur lui-même. [Indication : Si on

2
pose In = im un et Kn = ker un , montrer que les deux suites (In ) et Kn sont
décroissantes. En utilisant la relation dim In + dim Kn = dim E, montrer que
les deux suites (In ) et Kn sont stationnaires. Conclure.)
b) Soient V et W deux sous-espaces vectoriels supplémentaires de E,
stables pas u et tels que la restriction de u sur V est nilpotente et que la
restriction de u sur W est une bijection de W sur lui-même. Prouver que l’on
a nécessairement V = F et W = G. [Indication : Soit r tel que ur (V ) = {0},
alors up (E) = up (W ) = W pour tout p ≥ r. . .]

4. Soit A = (ai,j ) une matrice n × n à coefficients complexes. On suppose


que, pour 1 ≤ i ≤ n, on a
X
|ai,j | < |ai,i |.
i6=j

a) Montrer que A est inversible.


b) On pose
X
bn = 0 et bi = |ai,j | si 1 ≤ i ≤ n − 1.
i>j

Montrer l’encadrement
n
Y n
Y
(|ai,i | − bi ) ≤ | det A| ≤ (|ai,i | + bi ).
i=1 i=1

[Indication : Voir, P. Tauvel, Exercices d’Algèbre Linéaire, Dunod, Paris,


2004, p. 39.]

5. Soient f et g deux endomrphismes d’un espace vectoriel de dimension n


finie. Montrer que

|rang (f ) − rang (g)| ≤ rang (f + g) ≤ rang (f ) + rang (g)

et que

rang (f ) + rang (g) − n ≤ rang (f ◦ g) ≤ min{rang (f ), rang (g)}.

Vous aimerez peut-être aussi