Le rang de trois matrices
Exercice supplémentaire · niveau 1 (application) · mathématiques approfondies (ECG 1re année), chapitre 11 — Informatique et algorithmique · Tableaux numpy
É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.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.