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