B1 Python
Manipulation des matrices
Array ou Matrix – Deux types Python pour représenter une matrice
#Création d'une matrice 3x3
# Ligne par ligne
A = np.matrix ( ((1,2,3), (3,4,-1),(2,-1,0)) )
ou
A = np.array( [[1,2,3], [3,4,-1],[2,-1,0]],float) # Tableau de réels
# Dimensions de la matrice
d = A.shape
# d[0] : nb de lignes, d[1] : nb de colonnes
# Créer une matrice nxn remplies de zéros
A = np.matrix( np.zeros([m,n]))
ou
A = np.zeros((m,n)) # np.zeros() renvoie un type array
#
Attention aux différences : :A*B effectue la multiplication matricielle avec le type matrix et la multiplication
terme à terme avec le type array.
On utilisera, pour ce TP, le type matrix
Travail à effectuer
1. Déclarations
Ouvrir un nouveau fichier Python et déclarer les matrices suivantes :
# Charger la bibliothèque qui va bien
import numpy as np
A = np.matrix ( ((1,2,3), (3,4,-1),(2,-1,0)) )
B = np.matrix ( ((1,2,0), (4,4,-1)) )
C = np.matrix ( ((1,3), (3,-1),(2,-1)) )
D =np.matrix ( ((0,-2,2), (1,0,-1),(-2,-1,2)) )
2. Trace
La trace d'une matrice diagonale A, notée Tr(A) est égale à la somme de ses termes diagonaux
Ecrire une fonction trace(A) qui prend en paramètre une matrice et retourne -1 si cette matrice
n'est pas carrée, ou sa Tr(A) si A est carrée. Tester avec A et B
3. Somme de deux matrices
Ecrire une fonction mat_plus(M,N) qui affiche un message d'erreur si les matrices ne sont pas de la
même taille, et qui retourne la matrice M+N sinon. Comparer avec l'opération M+N
4. Transposée de matrice
Ecrire une fonction mat_transpose(M) qui retourne la transposée de M.
5. Plus grand élément
Ecrire une fonction mat_norme(M) qui retourne le plus grand élément de M en valeur absolue.
6. Produit de deux matrices
Ecrire une fonction mat_dot(M,N) qui affiche un message d'erreur si le produit MN est impossible,
et qui retourne la matrice MN sinon. Comparer avec l'opération M*N