teaching:progappchim:matrices

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
teaching:progappchim:matrices [2015/03/02 16:51] villersdteaching:progappchim:matrices [2018/03/06 14:49] (Version actuelle) villersd
Ligne 5: Ligne 5:
 ===== Produit matriciel à l'aide de listes ===== ===== Produit matriciel à l'aide de listes =====
  
-Le [[http://fr.wikipedia.org/wiki/Produit_matriciel|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³.+Le [[wp>fr:Produit_matriciel|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 : Exemple de programme Python :
  
-<sxh python; title : matrices_multiplication-list.py>+<code python matrices_multiplication-list.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 19: Ligne 19:
       [2,-5],       [2,-5],
       [11,0],       [11,0],
-      [6,-7]] +      [6,-7]
-print mat1  # pour visualiser la matrice mat1 de 4 lignes de 2 colonnes+      
 +print(mat1 # pour visualiser la matrice mat1 de 4 lignes de 2 colonnes
 mat2=[[1,3,5], mat2=[[1,3,5],
-      [2,4,6]] +      [2,4,6]
-print mat2  # pour visualiser la matrice mat2 de 2 lignes de 3 colonnes+      
 +print(mat2 # pour visualiser la matrice mat2 de 2 lignes de 3 colonnes
  
-if len(mat1[0]) == len(mat2): +if len(mat1[0]) == len(mat2):     # Les matrices sont compatibles 
-    # Les matrices sont compatibles +    mprod=[]                      # initialisation de la matrice produit
-    mprod=[]  # initialisation de la matrice produit+
     for i in range(len(mat1)):      for i in range(len(mat1)): 
-        li = [] # initialisation d'une ligne +        li = []                   # initialisation d'une ligne 
         for j in range(len(mat2[0])):         for j in range(len(mat2[0])):
-            elem=0  # initialisation d'un élément au sein de la ligne+            elem = 0              # initialisation d'un élément au sein de la ligne
             for k in range(len(mat1[0])):             for k in range(len(mat1[0])):
                 elem = elem + mat1[i][k] * mat2[k][j]                  elem = elem + mat1[i][k] * mat2[k][j] 
Ligne 37: Ligne 38:
         mprod.append(li)          mprod.append(li) 
  
-    print mprod  # pour visualiser la matrice produit +    print(mprod)                  # pour visualiser la matrice produit 
-</sxh>+</code>
  
 ===== Utiliser NumPy ===== ===== Utiliser NumPy =====
 La librairie [[[[numpy_simple|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 : La librairie [[[[numpy_simple|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>+<code python matrices_multiplication-numpy.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 52: Ligne 53:
 import numpy as np import numpy as np
  
-mat1=np.array([[7,9],[2,-5],[11,0],[6,-7]]) +mat1 = np.array([[7,9],[2,-5],[11,0],[6,-7]]) 
-print mat1  # pour visualiser la matrice mat1 de 4 lignes de 2 colonnes+print(mat1)                 # pour visualiser la matrice mat1 de 4 lignes de 2 colonnes
 mat2=np.array([[1,3,5],[2,4,6]]) mat2=np.array([[1,3,5],[2,4,6]])
-print mat2  # pour visualiser la matrice mat2 de 2 lignes de 3 colonnes+print(mat2)                 # pour visualiser la matrice mat2 de 2 lignes de 3 colonnes
  
-print np.dot(mat1,mat2)  # pour visualiser la matrice produit +print(np.dot(mat1,mat2))    # pour visualiser la matrice produit 
- +</code>
-</sxh>+
  
  • teaching/progappchim/matrices.1425311474.txt.gz
  • Dernière modification : 2015/03/02 16:51
  • de villersd