teaching:progappchim:matrices

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.

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>

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>

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/progappchim/matrices.1425311474.txt.gz
  • Dernière modification : 2015/03/02 16:51
  • de villersd