Matrices
Informatique – ECG 822
TP 5
TP 5 – Matrices
1 / 14
▲
Créer un vecteur
Toutes les commandes de ce cours utilisent la bibliothèque
numpy. On supposera qu’on l’aura importée via import numpy
as np.
Le mot ≪ vecteur ≫ est le nom informatique donné aux matrices
lignes. On les crée à l’aide de la commande [Link]. Les
coefficients sont indiqués entre crochets et séparés par des
virgules.
>>> M = [Link]([1, 2, 3])
>>> M
array([1, 2, 3])
>>> type(M)
<class ‘[Link]’>
TP 5 – Matrices
2 / 14
▲
Créer un vecteur
Il existe des commandes qui créent des vecteurs particuliers.
• La commande [Link](n) crée un vecteur de taille n ne
contenant que des 0.
>>> M = [Link](5)
>>> M
array([0., 0., 0., 0., 0.])
• La commande [Link](n) crée un vecteur de taille n ne
contenant que des 1.
>>> M = [Link](4)
>>> M
array([1., 1., 1., 1.])
TP 5 – Matrices
3 / 14
▲
Créer un vecteur
• La commande [Link](i,f,p) crée un vecteur suivant
une progression arithmétique de i à f − p avec un pas de p
(ces nombres pouvant être flottants).
>>> M = [Link](1,2,0.25)
>>> M
array([1. , 1.25, 1.5 , 1.75])
• La commande [Link](i,f,n) a un fonctionnement
similaire excepté que n représente le nombre de termes de la
liste qui seront répartis équitablement entre i et f .
>>> M = [Link](1,2,6)
>>> M
array([1. , 1.2, 1.4, 1.6, 1.8, 2. ])
TP 5 – Matrices
4 / 14
▲
Éléments d’un vecteur
Comme pour les listes, les éléments d’un vecteur sont indexés à
partir de 0. L’extraction d’un élément se fait exactement comme
pour les listes (entre crochets, le slicing et les indices négatifs étant
aussi possibles).
>>> M = [Link]([1.1, 2.2, 3.3])
>>> M[1]
2.2
>>> M[0:2]
array([1.1, 2.2])
ATTENTION ! Contrairement aux listes qui peuvent changer de
taille (par l’ajout d’un élément par exemple), les vecteurs sont
immuables. Pour ajouter un élément, on transformera un vecteur
en liste à l’aide de la commande list.
TP 5 – Matrices
5 / 14
▲
Créer une matrice
La syntaxe de création d’une matrice est très similaire à celle pour
les vecteurs. On écrit les différentes lignes entre crochets qu’on
sépare par des virgules.
>>> M = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> M
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Notez bien la double paire de crochets !
TP 5 – Matrices
6 / 14
▲
Créer une matrice
Il existe aussi des commandes qui créent des matrices particulières.
• [Link]((m,n)) crée une matrice nulle de taille m × n.
• [Link]((m,n)) crée une matrice de taille m × n remplie
avec des 1.
• [Link](n) crée une matrice identité d’ordre n.
TP 5 – Matrices
7 / 14
▲
Éléments d’une matrice
Les éléments d’une matrice sont indexés à partir de 0, en ligne
puis en colonne. On peut extraire un élément, ou toute une ligne,
ou toute une colonne (à l’aide du slicing).
>>> M = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> M[0][2] ligne 0 colonne 1 = première ligne deuxième colonne
3
>>> M[1]
array([4, 5, 6])
>>> M[2,:]
array([7, 8, 9])
>>> M[:,0]
array([1, 4, 7])
TP 5 – Matrices
8 / 14
▲
Opérations sur les matrices
Toutes les opérations arithmétiques usuelles se font coefficient à
coefficient : +, -, *, /, **.
>>> M = [Link]([1, 2, 3])
>>> N = [Link]([4, 5, 6])
>>> M + N
array([5, 7, 9])
>>> M * N
array([ 4, 10, 18])
>>> M / N
array([0.25, 0.4 , 0.5])
>>> M**N
array([ 1, 32, 729])
TP 5 – Matrices
9 / 14
▲
Opérations sur les matrices
Ces opérations arithmétiques peuvent aussi se faire avec des
nombres, toujours coefficient à coefficient.
>>> M = [Link]([1, 2, 3])
>>> M + 8
array([ 9, 10, 11])
>>> M * 8
array([ 8, 16, 24])
>>> M / 4
array([0.25, 0.5 , 0.75])
>>> M**2
array([1, 4, 9])
TP 5 – Matrices
10 / 14
▲
Fonctions spécifiques aux matrices
• [Link](M) renvoie la taille de la matrice M.
>>> M = [Link]([[1, 2, 3], [4, 5, 6]])
>>> [Link](M)
(2, 3)
Notez que len(M) renvoie le nombre de lignes d’une matrice.
La commande len sera donc très utile lorsqu’on manipulera des
matrices carrées.
TP 5 – Matrices
11 / 14
▲
Fonctions spécifiques aux matrices
• [Link](M) renvoie la transposée de la matrice M.
>>> M = [Link]([[1, 2, 3], [4, 5, 6]])
>>> [Link](M)
array([[1, 4],
[2, 5],
[3, 6]])
TP 5 – Matrices
12 / 14
▲
Fonctions spécifiques aux matrices
• [Link](M,N) renvoie le produit matriciel MN, sous réserve
que les tailles soient compatibles.
>>> M = [Link]([[1, 2, 3], [4, 5, 6]])
>>> N = [Link](M)
>>> [Link](M,N)
array([[14, 32],
[32, 77]])
TP 5 – Matrices
13 / 14
▲
Le module linalg
Le module linalg est une sous-bibliothèque de numpy qui
possède des fonctions très utiles. On l’importe via la commande
import [Link] as al
• [Link](M) inverse la matrice M (si elle est inversible).
• [Link] power(M,n) calcule M n .
• [Link](A,B) résout le système AX = B d’inconnue X .
TP 5 – Matrices
14 / 14
▲