Les_matrices
September 3, 2023
1 Les matrices
[ ]: # La matrice ci dessus est représenté sur python comme suit :
M = [[2, 5, 4, 8], [7, 12, 3, 6], [3, 9, 4, 5]]
[ ]: # Quelques propriétés
print("Le nombre de lignes de la matrice est :", len(M))
print("Le nombre de colonnes de la matrice est :", len(M[0]))
print("La première ligne de la matrice est :", M[0])
print("La deuxième ligne de la matrice est :", M[1])
print("La troisième ligne de la matrice est :", M[2])
Le nombre de lignes de la matrice est : 3
Le nombre de colonnes de la matrice est : 4
La première ligne de la matrice est : [2, 5, 4, 8]
La deuxième ligne de la matrice est : [7, 12, 3, 6]
La troisième ligne de la matrice est : [3, 9, 4, 5]
[ ]: # Si A est une matrice en math et M la liste qui la représente sur python
# L'élément A(i,j) est M[i-1][j-1] sur python
print("L'élément de la première ligne et la première colonne est :",M[0][0])
print("L'élément de la deuxième ligne et la première colonne est :",M[1][0])
print("L'élément de la première ligne et la troisième colonne est :",M[0][2])
print("L'élément de la dernière ligne et la première colonne est :",M[-1][0])
L'élément de la première ligne et la première colonne est : 2
L'élément de la deuxième ligne et la première colonne est : 7
L'élément de la première ligne et la troisième colonne est : 4
L'élément de la dernière ligne et la première colonne est : 3
[ ]: # Nous voulons déclarer une matrice de zéros de 4 lignes et 5 colonnes
Z = [[0,0,0,0,0]] * 4
print(Z)
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
1
[ ]: # Nous voulons déclarer une matrice de zéros de 4 lignes et 5 colonnes
Z = [[0]*5] * 4
print(Z)
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[ ]: # Cette méthode présente une anomalie quand on essaie de la modifier
Z[0][0] = 5
print(Z)
# On remarque que toutes les lignes ont été modifiées
[[5, 0, 0, 0, 0], [5, 0, 0, 0, 0], [5, 0, 0, 0, 0], [5, 0, 0, 0, 0]]
[ ]: # La meilleur méthode pour déclarer une matrice de zéros de 4 lignes et de 5␣
↪colonnes est
Y = []
for i in range(4):
[Link]([0]*5)
print(Y)
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[ ]: # On essaie de modifier la matrice Y
Y[0][0] = 12
print(Y)
[[12, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
1.1 Exercice 1
1. Ecrire une fonction qui prend en paramètre une matrice M et un entier i tel que i<len(M).
La fonction retourne la i ème ligne (ligne d’indice i) ;
2. Ecrire une fonction qui prend en paramètre une matrice M et un entier j tel que j<len(M[0]).
La fonction retourne la j ème colonne (colonne d’indice j) ;
3. Ecrire une fonction qui prend en paramètre une matrice carrée M. La fonction retourne la
diagonale de la matrice M sous forme de liste ;
4. Ecrire une fonction qui prend en paramètre une matrice carrée M. La fonction retourne la
deuxième diagonale de la matrice M sous forme de liste.
[ ]: # 1
def ligne(M,i):
return M[i]
[ ]: # 2
def colonne(M,j):
C = []
for l in M:
2
[Link](l[j])
return C
# ou
def colonne(M,j):
C = []
for i in range(len(M)):
[Link](M[i][j])
return C
[ ]: # 3
def diagonale(M):
D = []
for i in range(len(M)):
[Link](M[i][i])
return D
[ ]: # 4
def diagonale_2(M):
D = []
for i in range(len(M)):
[Link](M[i][len(M)-1-i])
return D
1.2 Exercice 2
Ecrire une fonction unitaire(n) qui prend en paramètre un entier n et qui retourne la matrice carrée
d’identité de dimension n.
[ ]: def unitaire(n):
M = []
for i in range(n):
[Link]([0]*n)
M[i][i] = 1
return M
1.3 Exercice 3
Ecrire une fonction transpose(M) qui prend en paramètre une matrice M et qui retourne sa trans-
posée.
[ ]: def transpose(M):
l = len(M)
c = len(M[0])
T = []
for i in range(c):
[Link]([0]*l)
for i in range(len(T)):
3
for j in range(len(T[0])):
T[i][j] = M[j][i]
return T
1.4 Exercice 4
Ecrire une fonction qui retourne la somme de deux matrices
[ ]: def somme(A,B):
if len(A)==len(B) and len(A[0])==len(B[0]):
S=[]
for i in range(len(A)):
[Link]([0]*len(A[0]))
for i in range(len(A)):
for j in range(len(A[0])):
S[i][j]=A[i][j]+B[i][j]
return S
else:
return "Math Error"
1.5 Exercice 5
Ecrire une fonction qui retourne la trace d’une matrice
[ ]: def trace(M):
if len(M)==len(M[0]):
s=0
for i in range(len(M)):
s=s+M[i][i]
return s
return "Math Error"
1.6 Exercice 6
Ecrire une fonction qui retourne le produit matriciel de deux matrices
[ ]: def produit(A,B):
if len(A[0])==len(B):
P=[]
for i in range(len(A)):
[Link]([0]*len(B[0]))
for i in range(len(P)):
for j in range(len(P[0])):
for k in range(len(B)):
P[i][j]=P[i][j]+A[i][k]*B[k][j]
return P
return "Math Error"
4
1.7 Exercice 7
Ecrire une fonction qui prend deux matrices A et B et qui retourne True si A est l’inverse de B et
False sinon.
[ ]: def inverse(A,B):
if len(A)==len(A[0])==len(B)==len(B[0]):
return produit(A,B)==produit(B,A)===unitaire(len(A))
return "Math Error"
1.8 Exercice 8
Ecrire une fonction pascal(n) qui retourne une matrice de pascal d’ordre n.
Exemple : Une matrice de pascal d’ordre 4
[ ]: def pascal(n):
P=[]
for i in range(n+1):
[Link]([0]*(n+1))
P[i][0]=1
for i in range(1,n+1):
for j in range(1,n+1):
P[i][j]=P[i-1][j]+P[i-1][j-1]
return P
pascal(4)
[ ]: [[1, 0, 0, 0, 0],
[1, 1, 0, 0, 0],
[1, 2, 1, 0, 0],
[1, 3, 3, 1, 0],
[1, 4, 6, 4, 1]]
1.9 Exercice 9
Écrire une fonction “zoro(n)” qui crée et renvoie une matrice carrée de taille n, comprenant des 1
sur la première ligne, sur la deuxième diagonale et sur la dernière ligne et des 0 partout ailleurs
[ ]: def zoro(n):
Z=[]
for i in range(n):
[Link]([0]*n)
for i in range(n):
Z[0][i]=1
Z[n-1][i]=1
Z[i][n-1-i]=1
5
return Z
zoro(6)
[ ]: [[1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 1, 0],
[0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1]]