La matrice inverse dans Octave
Aujourd'hui, je vais vous montrer une chose intéressante. Nous allons découvrir comment calculer la matrice inverse d'une matrice carrée ou rectangulaire dans Octave.
Alors, qu'est-ce que la matrice inverse ? Imaginez une matrice M. Elle est dite inversible si elle a une petite sœur, la matrice inverse M-1, qui, une fois multipliée par M, donne naissance à une matrice identité. Vous voyez, la matrice identité est un genre spécial de matrice, avec des 1 en vedettes sur la diagonale principale et des 0 qui font de la figuration sur tous les autres éléments. Par exemple, ça donne $$ M \cdot M^{-1} = I $$
Laissez-moi vous illustrer ceci avec un exemple pratique.
Prenons une matrice carrée de 2x2, que nous appellerons M.
>> M=[1 2;3 4]
M =
1 2
3 4
Pour révéler la matrice inverse de M, utilisez la fonction inv().
>> inv(M)
ans =
-2.00000 1.00000
1.50000 -0.50000
A présent, il est temps de vérifier notre travail. Multiplions la matrice M par son inverse inv(M).
Et voilà, le résultat est une matrice identité.
>> M*inv(M)
ans =
1.00000 0.00000
0.00000 1.00000
Petite précision : la fonction inv() ne fonctionne qu'avec les matrices carrées, celles qui ont le même nombre de lignes et de colonnes.
Remarque. Toutes les matrices carrées ne sont pas inversibles. Par exemple, il n'y a pas de matrice inverse des matrices carrées dont le déterminant est nul (appelées matrices singulières). Lorsqu'il n'y a pas de matrice inverse, Octave affiche un message d'avertissement "Matrix is singular to working precision". Pour éviter toute erreur, je recommande toujours de vérifier que le produit M * inv (M) est une matrice identité.
Et pour les matrices rectangulaires? Je vous entends déjà demander. Pas de panique, Octave a aussi un tour dans son sac pour elles.
Vous pouvez bien sûr calculer la matrice inverse d'une matrice rectangulaire.
Pour cela, nous devons utiliser une fonction un peu différente, la pseudo inverse pinv().
Regardez cet exemple avec une matrice rectangulaire de 2x3, que nous appellerons M2.
>> M2=[1 2 3 ; 4 5 6]
M2 =
1 2 3
4 5 6
Pour obtenir la matrice inverse de cette matrice rectangulaire, invoquons la fonction pinv().
>> pinv(M2)
ans =
-0.94444 0.44444
-0.11111 0.11111
0.72222 -0.22222
Et voilà, maintenant multiplions notre matrice rectangulaire M2 par son inverse. Et devinez quoi ? Le résultat est encore une matrice identité.
>> M2*pinv(M2)
ans =
1.00000 -0.00000
0.00000 1.00000
Comme ça, on peut trouver des matrices inverses même pour des matrices rectangulaires. Pratique, n'est-ce pas ?
Et une dernière chose. Vous pouvez aussi utiliser la fonction pinv() pour calculer la matrice inverse d'une matrice carrée à la place de la fonction inv(). C'est comme vous préférez. Le résultat sera toujours le même. Par contre, n'essayez pas d'utiliser la fonction inv() sur des matrices rectangulaires, elle n'aime pas ça du tout !