PYTHON 2. FEUILLE n°31 Matrices

                                        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]
>>>

-------------------------------------------------------------------------------------------