Rang, singularité et déterminants
Objectifs d'apprentissage
À la fin de cette leçon, vous serez en mesure de :
- Déterminer le rang d'une matrice par réduction en échelon
- Reconnaître une matrice singulière
- Calculer un déterminant par cofacteurs et par factorisation LU
- Comprendre le lien entre rang, déterminant et inversibilité
- Interpréter géométriquement le déterminant
Prérequis
- Élimination de Gauss
- Factorisation LU
Le rang d'une matrice
Définition
Le rang d'une matrice est le nombre de pivots non nuls obtenus après réduction en forme échelon.
Rang d'une matrice
Le rang = nombre de pivots non nuls après réduction en échelon
Matrice A
Forme échelon
Rang(A) = 3
✓ Plein rang : la matrice est inversible
Propriétés du rang
| Propriété | Formule |
|---|---|
| Rang maximal | |
| Rang ligne = Rang colonne | |
| Plein rang |
Calcul du rang
import numpy as np
def rang_matrice(A, tol=1e-10):
"""
Calcule le rang d'une matrice par réduction en échelon.
"""
U = A.astype(float).copy()
m, n = U.shape
rang = 0
pivot_col = 0
for pivot_row in range(m):
if pivot_col >= n:
break
# Chercher un pivot non nul dans la colonne
max_idx = pivot_row + np.argmax(np.abs(U[pivot_row:, pivot_col]))
if np.abs(U[max_idx, pivot_col]) < tol:
pivot_col += 1
continue
# Échanger les lignes
U[[pivot_row, max_idx]] = U[[max_idx, pivot_row]]
rang += 1
# Élimination
for i in range(pivot_row + 1, m):
factor = U[i, pivot_col] / U[pivot_row, pivot_col]
U[i, pivot_col:] -= factor * U[pivot_row, pivot_col:]
pivot_col += 1
return rang
# Exemples
A1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # rang 2
A2 = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) # rang 3
A3 = np.array([[1, 2], [2, 4]]) # rang 1
print(f"rang(A1) = {rang_matrice(A1)}")
print(f"rang(A2) = {rang_matrice(A2)}")
print(f"rang(A3) = {rang_matrice(A3)}")Matrices singulières
Définition
Une matrice carrée est singulière si elle n'est pas inversible.
Caractérisations équivalentes
Pour une matrice carrée de taille , les propriétés suivantes sont équivalentes :
- est singulière
- a au moins une valeur propre nulle
- Il existe tel que
- Les colonnes de sont linéairement dépendantes
Interprétation géométrique de la singularité
Les colonnes sont indépendantes → det ≠ 0 → Aire > 0
det(A) = 1·1 - 0·0 = 1
Détection lors de l'élimination de Gauss
Une matrice est singulière si, même après pivotage, on rencontre un pivot nul :
def est_singuliere(A, tol=1e-10):
"""
Détecte si une matrice carrée est singulière.
"""
n = len(A)
return rang_matrice(A, tol) < nLe déterminant
Définition récursive (cofacteurs)
Pour une matrice :
où est la sous-matrice obtenue en supprimant la ligne 1 et la colonne .
Cas particuliers
Matrice 2×2 :
Matrice 3×3 (règle de Sarrus) :
Matrice triangulaire :
Calcul du déterminant
det = 3·4 - 1·2
det = 12 - 2
det = 10
det(A) = 10
✓ Non singulière (inversible)
Propriétés du déterminant
| Propriété | Formule |
|---|---|
| Produit | |
| Transposée | |
| Inverse | |
| Scalaire |
Effet des opérations élémentaires
| Opération | Effet sur det(A) |
|---|---|
| Échanger deux lignes | Multiplie par |
| Multiplier une ligne par | Multiplie par |
| Ajouter un multiple d'une ligne à une autre | Ne change pas |
Calcul efficace par factorisation LU
Méthode
Après factorisation :
où est le nombre d'échanges de lignes.
Comparaison des complexités
| Méthode | Complexité |
|---|---|
| Cofacteurs (récursif) | |
| Factorisation LU |
import numpy as np
def determinant(A):
"""
Calcule le déterminant par factorisation LU avec pivotage.
"""
n = len(A)
U = A.astype(float).copy()
swaps = 0
for k in range(n - 1):
# Pivotage partiel
max_idx = k + np.argmax(np.abs(U[k:, k]))
if max_idx != k:
U[[k, max_idx]] = U[[max_idx, k]]
swaps += 1
if abs(U[k, k]) < 1e-12:
return 0.0 # Matrice singulière
# Élimination
for i in range(k + 1, n):
U[i, k:] -= (U[i, k] / U[k, k]) * U[k, k:]
# Produit de la diagonale avec signe
return ((-1) ** swaps) * np.prod(np.diag(U))
# Exemples
A1 = np.array([[2, 1], [1, 3]])
A2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # singulière
print(f"det(A1) = {determinant(A1)}")
print(f"det(A2) = {determinant(A2)}")Interprétation géométrique
En 2D : aire signée
Le déterminant de deux vecteurs colonnes représente l'aire signée du parallélogramme qu'ils forment :
- Positif : orientation directe
- Négatif : orientation inverse
- Nul : vecteurs colinéaires (aire nulle)
En 3D : volume signé
Le déterminant de trois vecteurs représente le volume signé du parallélépipède.
En général
Le déterminant mesure comment une transformation linéaire dilate ou contracte les volumes.
Résumé
| Concept | Définition | Calcul |
|---|---|---|
| Rang | Nombre de pivots non nuls | Réduction en échelon |
| Singularité | det = 0, rang < n | Pivot nul après pivotage |
| Déterminant | Facteur de dilatation | Produit diagonale de U |
8 propriétés équivalentes pour A inversible :
- existe
- a une solution unique pour tout
- implique
- Les colonnes de sont linéairement indépendantes
- Les lignes de sont linéairement indépendantes
- a pivots non nuls
Pour aller plus loin
La prochaine leçon expliquera comment inverser une matrice et quand cette opération est pertinente.