mathématiques approfondies (ECG 1re année) · Chapitre 11 · Application directe du cours
Le rang de trois matrices
Informatique et algorithmique · Tableaux numpy · niveau 1 (application)
Énoncé
Calculer avec al.rank le rang de , de et de , puis retrouver chaque résultat à la main. Laquelle de ces matrices est inversible ?
Corrigé
Ce qu'on montre. Que le rang se lit sur les dépendances entre lignes (ou colonnes), et qu'il décide de l'inversibilité pour une matrice carrée.
Le programme.
import numpy as np
import numpy.linalg as al
A = np.array([[1., 2.], [2., 4.]])
B = np.eye(2)
C = np.array([[1., 2., 3.],
[0., 1., 1.],
[1., 3., 4.]])
print(al.rank(A), al.rank(B), al.rank(C)) # 1 2 2
À la main.
- : la deuxième ligne est le double de la première, . Les deux lignes engendrent donc une seule direction : .
- : ses deux colonnes sont et , famille libre : .
- : notons , , . On observe . Les deux premières ne sont pas proportionnelles (la deuxième a un en tête, pas la première), donc .
Les trois valeurs affichées confirment ces lectures.
L'inversibilité. Une matrice carrée de taille est inversible si et seulement si son rang vaut . Donc :
- n'est pas inversible () ;
- est inversible () — c'est l'identité, d'inverse elle-même ;
- n'est pas inversible ().
Contrôle. Appeler al.inv(A) ou al.inv(C) produit une erreur, ou un résultat aux coefficients énormes et dénués de sens : c'est le signe qu'on a demandé l'inverse d'une matrice qui n'en a pas.