Table des matières
Ceci est une ancienne révision du document !
Manipulations de matrices
Les matrices sont des tableaux de nombres à deux dimensions. On peut utiliser des listes de lignes, qui sont elles-mêmes des listes d'éléments de la ligne, pour représenter une matrice. On aura donc des listes de listes.
Produit matriciel à l'aide de listes
Le produit matriciel de deux matrices A et B nécessite que le nombre de colonnes de la matrice A soit égal au nombre de lignes de la matrice B. Pour obtenir le produit qui sera une matrice comportant le même nombre de lignes que A et le même nombre de colonnes que B, on effectue pour chaque élément de la ligne i et de la colonne j le produit scalaire de la ligne i de A et de la colonne j de B. On utilise un indice k qui prendra autant de valeur qu'il y a de colonnes de la matrice ou de lignes de la matrice B. Pour des matrices carrées de dimension n, le produit matriciel conduit à un algorithme de complexité égale à n³.
Exemple de programme Python :
<sxh python; title : matrices_multiplication-list.py> #! /usr/bin/env python # -*- coding: utf-8 -*- “”“ Calcul matriciel : multiplication Utilisation de listes de listes pour représenter les matrices ”“” mat1=7,9], [2,-5], [11,0], [6,-7 print mat1 # pour visualiser la matrice mat1 de 4 lignes de 2 colonnes mat2=1,3,5], [2,4,6 print mat2 # pour visualiser la matrice mat2 de 2 lignes de 3 colonnes
if len(mat1[0]) == len(mat2):
# Les matrices sont compatibles mprod=[] # initialisation de la matrice produit for i in range(len(mat1)): li = [] # initialisation d'une ligne for j in range(len(mat2[0])): elem=0 # initialisation d'un élément au sein de la ligne for k in range(len(mat1[0])): elem = elem + mat1[i][k] * mat2[k][j] li.append(elem) mprod.append(li)
print mprod # pour visualiser la matrice produit
</sxh>
Utiliser NumPy
La librairie Numpy permet d'effectuer efficacement de nombreux calculs matriciels. Voici la même multiplication que l'exemple précédent, en utilisant cette fois NumPy : <sxh python; title : matrices_multiplication-numpy.py> #! /usr/bin/env python # -*- coding: utf-8 -*- “”“ Calcul matriciel : multiplication Utilisation de numpy (array,…) pour représenter les matrices et effectuer les calculs d'algèbre linéaire ”“” import numpy as np
mat1=np.array(7,9],[2,-5],[11,0],[6,-7) print mat1 # pour visualiser la matrice mat1 de 4 lignes de 2 colonnes mat2=np.array(1,3,5],[2,4,6) print mat2 # pour visualiser la matrice mat2 de 2 lignes de 3 colonnes
print np.dot(mat1,mat2) # pour visualiser la matrice produit
</sxh>