Blogue

Calculer l'inverse d'une matrice rectangulaire

30 juillet 2012 | Catégories: math | View Comments

Existe-t-il des méthodes pour calculer l'inverse d'une matrice rectangulaire non carrée. Je me souviens qu'Ernest Monga nous avait fait travailler sur ce sujet dans un cours qu'il donnait à l'Université de Sherbrooke. Il a notamment donné une présentation Inverse généralisé d’une matrice quelconque – application à deux problèmes statistiques au camp 2011 de l'AMQ.

À l'aide de quelques conditions, il est possible de définir l'inverse d'une matrice rectangulaire de façon unique. Plus d'informations sont disponibles dans le livre Probabilités, analyse des données et statistique sur books.google.ca, sur Wikipédia Pseudo-inverse. Sur la page de wikipédia en anglais Moore-Penrose pseudoinverse, on trouve aussi une section Software libraries mentionnant que les librairies NumPy et SciPy peuvent calculer cette matrice pseudo-inverse.

sage: m = matrix(2, range(6))
sage: m
[0 1 2]
[3 4 5]
sage: mm = numpy.matrix(m)
sage: mm
matrix([[0, 1, 2],
        [3, 4, 5]])
sage: mm.I
matrix([[-0.77777778,  0.27777778],
        [-0.11111111,  0.11111111],
        [ 0.55555556, -0.05555556]])
sage: mm * mm.I
matrix([[  1.00000000e+00,  -1.38777878e-16],
        [  3.10862447e-15,   1.00000000e+00]])
sage: mm.I * mm
matrix([[ 0.83333333,  0.33333333, -0.16666667],
        [ 0.33333333,  0.33333333,  0.33333333],
        [-0.16666667,  0.33333333,  0.83333333]])

Alors que la fonction Moore-Penrose Matrix Inverse est présente dans Mathematica, je crois qu'elle n'est pas encore présente dans Sage sans passer par NumPy. Peut-être qu'une implémentation basée sur l'article Fast Computation of Moore-Penrose Inverse Matrices de Pierre Courrieu (2008) pourrait être effectuée.

Read and Post Comments

« Previous Page