PYTHON 2 FEUILLE n° 31 MATRICES mars 2013
COURS:
Thème:
• Obtenir le carré d'une matrice A de type ( 3 ; 3 ).
La matrice A est en mettant les indices:
/ | A[0][0] | A[0][1) | A[0][2] | \ |
A = | | A[1][0] | A[1][1] | A[1][2] | | |
\ | A[2][0] | A[2][1] | A[2][2] | / |
• Penser à la disposition pour déceler A² :
A
/ | A[0][0] | A[0][1) | A[0][2] | \ | |||||
| | A[1][0] | A[1][1] | A[1][2] | | | |||||
\ | A[2][0] | A[2][1] | A[2][2] | / | |||||
/ | A[0][0] | A[0][1) | A[0][2] | \ | / | ..... | ...... | ....... | \ |
| | A[1][0] | A[1][1] | A[1][2] | | | | | ...... | ..... | ....... | | |
\ | A[2][0] | A[2][1] | A[2][2] | / | \ | ...... | ....... | ...... | / |
A A²
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
EXERCICE 1
Des étudiants et étudiantes, Estier, Jacques, André, Jymmy, Maude, et Léon
se sont présentés à un examen comportant trois matières:
Anglais , Français, Histoire géographie.
Voici dans un tableau les notes obtenues:
Anglais | Français | H G | |
Estier | 15 | 9 | 13 |
Jacques | 16 | 10 | 14 |
André | 17 | 8 | 11 |
Jymmy | 15 | 11 | 12 |
Maude | 18 | 7 | 13 |
Léon | 17 | 9 | 10 |
Dans cet examen les cofficients sont:
4 en Anglais, 3 en français, 2 en HG.
Soit C la matrice colonne des coefficients.
/ | 4 | \ | ||
C | = | | | 3 | | |
\ | 2 | / |
Soit M la matice colonne des notes:
/ | 15 | 9 | 13 | \ | |
/ | 16 | 10 | 14 | \ | |
M = | | | 17 | 8 | 11 | | |
| | 15 | 11 | 12 | | | |
\ | 18 | 7 | 13 | / | |
\ | 17 | 9 | 10 | / |
1. Donner la matrice colonne N des notes finales attribuées à chaque candidat .
2. Donner un algorithme qui donne ces notes.
--------------------------------------------------------------------------------------------------------------------------------
REPONSE:
1. Donnons la matrice N des notes.
La somme des coefficients est 4 + 3 + 2 = 9
Ainsi :
Conclusion: N = (1/9 ) M × C
/ | 15 | 9 | 13 | \ | / | 113 | \ | ||||||
/ | 16 | 10 | 14 | \ | / | 4 | \ | / | 122 | \ | |||
M x C = | | | 17 | 8 | 11 | | | x | | | 3 | | | = | | | 114 | | |
| | 15 | 11 | 12 | | | \ | 2 | / | | | 117 | | | |||
\ | 18 | 7 | 13 | / | \ | 119 | / | ||||||
\ | 17 | 9 | 7 | / | \ | 115 | / |
Donc :
/ | 113 / 9 | \ | |||
/ | 122 / 9 | \ | |||
( 1/9) M x C = | | | 114 / 9 | | | ||
| | 117 / 9 | | | |||
\ | 119 / 9 | / | |||
\ | 115/ 9 | / |
c-à-d
en arrondissant:
/ | 12,5 | \ | |||||||||||
/ | 13,5 | \ | |||||||||||
N = | | | 12,6 | | | ||||||||||
| | 13 | | | |||||||||||
\ | 13,2 | / | |||||||||||
\ | 12,7 | / |
2. Donnons un algorithme:
from random import*
def notes():
n1=input("Donner les notes d'Estier: ")
n2=input("Donner les notes de Jacques: ")
n3=input("Donner les notes d'André: ")
n4=input("Donner les notes de Jimmy: ")
n5=input("Donner les notes de Maude: ")
n6=input("Donner les notes de Léon: ")
M=[]
M=M+[n1]+[n2]+[n3]+[n4]+[n5]+[n6]
print " La matrice des notes est"
for line in M:
print line
C=[4,3,2] # peut être remplacée par C=[[4],[3],[2]] pour avoir une matrice colonne mais alors...
print "La matrice des cefficients est: "
for line in C:
print line
L=[]
for i in range(0,6):
L=L+[M[i][0]*C[0] +M[i][1] *C[1]+M[i][2]*C[2]] # ... il faut mettre C[0][0] , C[1)[0] , C[2][0] au lieu
# de C[0], C[1] ,C[2]
print " La matrices des points attribués est: "
print L
N=[]
N=[element*10/9/10.0 for element in L]+N
print " La matrice colonne des notes finales est:"
for line in N:
print line
On obtient:
>>> notes()
Donner les notes d'Estier: [15, 9, 13]
Donner les notes de Jacques: [16, 10, 14]
Donner les notes d'André: [17, 8, 11]
Donner les notes de Jimmy: [15, 11, 12]
Donner les notes de Maude: [18, 7, 13]
Donner les notes de Léon: [17, 9, 10]
La matrice des notes est
[15, 9, 13]
[16, 10, 14]
[17, 8, 11]
[15, 11, 12]
[18, 7, 13]
[17, 9, 10]
La matrice des cefficients est:
4
3
2
La matrices des points attribués est:
[113, 122,114,117,119, 115]
La matrice colonne des notes finales est:
12.5
13.5
12.6
13.0
13.2
12.7
>>>
Autre situation:
Les personnes sont:
Camille ; Benjamin; Hervé; Robert; Alex; Léa.
from random import*
def notes():
n1=input("Donner les notes de Camille: ")
n2=input("Donner les notes de Benjamin: ")
n3=input("Donner les notes de Hervé: ")
n4=input("Donner les notes de Robert: ")
n5=input("Donner les notes de Alex: ")
n6=input("Donner les notes de Léa: ")
M=[]
M=M+[n1]+[n2]+[n3]+[n4]+[n5]+[n6]
print " La matrice des notes est"
for line in M:
print line
C=[4,3,2]
print "La matrice des cefficients est: "
for line in C:
print line
L=[]
for i in range(0,6):
L=L+[M[i][0]*C[0] +M[i][1] *C[1]+M[i][2]*C[2]]
print " La matrices des points attribués est: "
print L
N=[]
N=[element*10/9/10.0 for element in L]+N
print " La matrice colonne des notes finales est:"
for line in N:
print line
Par exemple on a:
>>> notes()
Donner les notes de Camille: [12,9,13]
Donner les notes de Benjamin: [13,10,11]
Donner les notes de Hervé: [15,8,11]
Donner les notes de Robert: [14,11,12]
Donner les notes de Alex: [16,7,13]
Donner les notes de Léa: [11,9,10]
La matrice des notes est
[12, 9, 13]
[13, 10, 11]
[15, 8, 11]
[14, 11, 12]
[16, 7, 13]
[11, 9, 10]
La matrice des cefficients est:
4
3
2
La matrices des points attribués est:
[101, 104, 106, 113, 111, 91]
La matrice colonne des notes finales est:
11.2
11.5
11.7
12.5
12.3
10.1
>>>
-----------------------------------------------------------------------------------------------------------------------------------------
EXERCICE 2
Donner un script qui donne le carré de la matrice A suivante:
/ | 1 | 2 | 3 | \ | |
A = | | | 4 | 5 | 6 | | |
\ | 7 | 8 | 9 | / | |
-----------------------------------------------------------------------------------------------------------------------------------
REPONSE:
from random import*
def carrematrice():
print "La matrice A est : "
A=[[1,2,3],[4,5,6],[7,8,9]]
for line in A:
print line
B=[[0,0,0],[0,0,0],[0,0,0]]
for j in range(0,3):
B[0][0]=B[0][0]+A[0][j]*A[j][0]
B[0][1]=B[0][1]+A[0][j]*A[j][1]
B[0][2]=B[0][2]+A[0][j]*A[j][2]
B[1][0]=B[1][0]+A[1][j]*A[j][0]
B[1][1]=B[1][1]+A[1][j]*A[j][1]
B[1][2]=B[1][2]+A[1][j]*A[j][2]
B[2][0]=B[2][0]+A[2][j]*A[j][0]
B[2][1]=B[2][1]+A[2][j]*A[j][1]
B[2][2]=B[2][2]+A[2][j]*A[j][2]
print "La matrice A² est : "
for line in B:
print line
On obtient:
>>> carrematrice()
La matrice A est :
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
La matrice A² est :
[30, 36, 42]
[66, 81, 96]
[102, 126, 150]
>>>
----------------------------------------------------------------------------------------------------------------------------
EXERCICE 3
Reprendre l'exercice précédent, en utilisant une double boucle
pour avoir script qui donne le carré de la matrice A suivante:
/ | 1 | 2 | 3 | \ | |
A = | | | 4 | 5 | 6 | | |
\ | 7 | 8 | 9 | / | |
|
---------------------------------------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from random import*
def carremat():
print "La matrice A est : "
A=[[1,2,3],[4,5,6],[7,8,9]]
for line in A:
print line
B=[[0,0,0],[0,0,0],[0,0,0]]
for i in range(0,3):
for j in range(0,3):
B[i][j]= B[i][j]+A[i][0]*A[0][j]+A[i][1]*A[1][j]+A[i][2]*A[2][j]
print "La matrice A² est : "
for line in B:
print line
On obtient :
>>> carremat()
La matrice A est :
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
La matrice A² est :
[30, 36, 42]
[66, 81, 96]
[102, 126, 150]
>>>
-----------------------------------------------------------------------------------------
EXERCICE 4
Modifier l'algorithme précédent de façon à saisir la matrice A
----------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from random import*
def carremat():
L1=input(" Donner le trois termes de la première ligne de A ")
L2=input(" Donner le trois termes de la seconde ligne de A ")
L3=input(" Donner le trois termes de la troisième ligne de A ")
A=[L1,L2,L3]
print "Vous avez pris comme matrice A : "
for line in A:
print line
B=[[0,0,0],[0,0,0],[0,0,0]]
print "La matrice A² est: "
for i in range(0,3):
for j in range(0,3):
B[i][j]= B[i][j]+A[i][0]*A[0][j]+A[i][1]*A[1][j]+A[i][2]*A[2][j]
print "La matrice A² est : "
for line in B:
print line
On obtient par exemple:
>>> matcarre()
Donner le trois termes de la première ligne de A [1,2,3]
Donner le trois termes de la seconde ligne de A [4,5,6]
Donner le trois termes de la troisième ligne de A [7,8,9]
Vous avez pris comme matrice A :
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
La matrice A² est:
[30, 36, 42]
[66, 81, 96]
[102, 126, 150]
>>>
-------------------------------------------------------------------------------------------