Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Dernière révisionLes deux révisions suivantes | ||
teaching:progappchim:matrices [2015/03/02 16:51] – villersd | teaching:progappchim:matrices [2017/02/24 12:12] – villersd | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
===== Produit matriciel à l'aide de listes ===== | ===== Produit matriciel à l'aide de listes ===== | ||
- | Le [[http://fr.wikipedia.org/ | + | 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> |
#! / | #! / | ||
# -*- 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, | mat2=[[1, | ||
- | [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): |
- | | + | mprod=[] |
- | mprod=[] | + | |
for i in range(len(mat1)): | for i in range(len(mat1)): | ||
- | li = [] # initialisation d'une ligne | + | li = [] |
for j in range(len(mat2[0])): | for j in range(len(mat2[0])): | ||
- | elem=0 | + | 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) |
- | </sxh> | + | </code> |
===== Utiliser NumPy ===== | ===== Utiliser NumPy ===== | ||
La librairie [[[[numpy_simple|Numpy]] permet d' | La librairie [[[[numpy_simple|Numpy]] permet d' | ||
- | <sxh python; title : matrices_multiplication-numpy.py> | + | <code python matrices_multiplication-numpy.py> |
#! / | #! / | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
Ligne 52: | Ligne 53: | ||
import numpy as np | import numpy as np | ||
- | mat1=np.array([[7, | + | mat1 = np.array([[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, | mat2=np.array([[1, | ||
- | 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, | + | print(np.dot(mat1, |
- | + | </code> | |
- | </sxh> | + | |