Vous êtes sur la page 1sur 2

IPEI-El Manar A.

U : 2020/2021

PROBLEME
En algèbre linéaire, une matrice diagonale est une matrice carrée dont les coefficients en
dehors de la diagonale principale sont nuls. Les coefficients de la diagonale peuvent être ou
ne pas être nuls.
La matrice identité I n carrée d’ordre n est diagonale.
 Définition
Une matrice carrée D  di , j  1 i , j  n
est dite diagonale si :
  i , j   1, n 2 , i  j  di , j  0.

Exemples :
Les matrices suivantes sont diagonales :
1 0 0 0 
  1 0 0 
0 i 0 0  , 0 0 0 
 0 0 1 0   
   0 0 3 
 0 0 0 i 
En revanche, les matrices suivantes ne sont pas diagonales :
0 0 0 1
  1 0 0 
 0 0 1 0 
, 0 2 1 

0 i 0 0 
   0 0 3 
1 0 0 0

 Notation
Comme une matrice diagonale est entièrement déterminée par la liste de ses éléments
diagonaux, la notation suivante plus concise et souvent adoptée :
 a1 0 0
 
0 a2
diag  (a1 , a2 , , an )    
 0
 
0 0 an 

 Propriétés
Addition :
diag  (a1 , a2 , , an )   diag  (b1 , b2 , , bn )   diag  (a1  b1 , a2  b2 , , an  bn ) 
Multiplication :
diag  (a1 , a2 , , an )   diag  (b1 , b2 , , bn )   diag  (a1  b1 , a2  b2 , , an  bn ) 
donc
 k   diag  (a1 , a2 , , an )   diag  (a1k , a2k , , ank ) 
k

2ème Année MP/PC/PT Page 1


IPEI-El Manar A.U : 2020/2021

Déterminant :
n
det(diag  (a1 , a2 , , an ) )   ak
k 1
Inversibilité :
Une matrice diagonale est inversible si et seulement si tous les ai sont inversibles
(c’est-à-dire non nuls) et dans ce cas,
 1 1 1 
diag  (a1 , a2 , , an )   diag  ( , , , ) 
1

 a1 a2 an 
Dans la suite on propose de construire la classe Diag qui définit et manipule des objets
représentants des matrices diagonales et dont la documentation est la suivante :

ʺ ʺ ʺ
Une classe qui définit les matrices diagonales
Sommaire :
>>> d1=Diag([1,2,3])
>>> d2=Diag([4,5,6])
>>> print(d1)
diag(1.0 , 2.0 , 3.0)
>>> print(d2)
diag(4.0 , 5.0 , 6.0)
>>> print(d1+d2)
diag(5.0 , 7.0 , 9.0)
>>> print(d1*d2)
diag(4.0 , 10.0 , 18.0)
>>> print(d2**3)
diag(64.0 , 125.0 , 216.0)
>>> d1.det()
6
>>> d=Diag([1,-1,0,1])
>>> d.estInversible()
False
>>> print(d2.inv())
diag(0.25 , 0.2 , 0.166666666667)
ʺ ʺ ʺ
Travail demandé :
En se basant sur la documentation on se propose de construire la class Diag et de définir
es méthodes suivantes (en faisant les exceptions nécessaires) :
__str__, __add__, __mul__, __pow__, det, estInversible et inv

2ème Année MP/PC/PT Page 2

Vous aimerez peut-être aussi