Effectuer des calculs matriciels et d’algèbre linéaire en Python

Vous devez effectuer des opérations d’algèbre matricielle et linéaire, telles que la multiplication matricielle, la recherche de déterminants, la résolution d’équations linéaires, etc.

La bibliothèque NumPy possède un objet matrix qui peut être utilisé à cette fin. Les matrices sont quelque peu similaires aux objets de tableau décrits dans l’article “Calculer avec de grands tableaux NumPy en Python“, mais suivent les règles de calcul de l’algèbre linéaire. Voici un exemple qui illustre quelques caractéristiques essentielles:

>>> import numpy as np
>>> m = np.matrix([[1,-2,3],[0,4,5],[7,8,-9]])
>>> m
matrix([[ 1, -2,  3],
        [ 0,  4,  5],
        [ 7,  8, -9]])

>>> # Retourne la transposée
>>> m.T
matrix([[ 1,  0,  7],
        [-2,  4,  8],
        [ 3,  5, -9]])

>>> # Retourne l'inverse
>>> m.I
matrix([[ 0.33043478, -0.02608696,  0.09565217],
        [-0.15217391,  0.13043478,  0.02173913],
        [ 0.12173913,  0.09565217, -0.0173913 ]])

>>> # Créer un vecteur et multiplier
>>> v = np.matrix([[2],[3],[4]])
>>> v
matrix([[2],
        [3],
        [4]])
>>> m * v
matrix([[ 8],
        [32],
        [ 2]])
>>>

Plus d’opérations peuvent être trouvées dans le sous-module numpy.linalg. Par exemple:

>>> import numpy.linalg

>>> # Déterminant
>>> numpy.linalg.det(m)
-229.99999999999983

>>> # Valeurs propres
>>> numpy.linalg.eigvals(m)
array([-13.11474312,   2.75956154,   6.35518158])

>>> # Résoudre mx = v
>>> x = numpy.linalg.solve(m, v)
>>> x
matrix([[ 0.96521739],
        [ 0.17391304],
        [ 0.46086957]])
>>> m * x
matrix([[ 2.],
        [ 3.],
        [ 4.]])
>>> v
matrix([[2],
        [3],
        [4]])
>>>

L’algèbre linéaire est évidemment un sujet énorme qui est bien au-delà de la portée de ce site web. Cependant, si vous avez besoin de manipuler des matrices et des vecteurs, NumPy est un bon point de départ.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here