N.F.I. 3ième année

Blocs   et   matrices

septembre 2004

1. Extraction de lignes ou colonnes

    Définir une matrice T de format 5,5.
  1. Déterminer le vecteur ligne u tel que:   u*T soit la 3ème ligne de T   ou   u*T soit la 5éme ligne de T
  2. Déterminer la matrice u telle que u*T soit égale à la 3e et 5e lignes de T (l'une sous l'autre).
  3. Déterminer le vecteur colonne v tel que:   T*v soit la 2ème colonne de T   ou   T*v soit la 3ème colonne de T
  4. Déterminer la matrice v telle que T*v soit égale aux colonnes 2 et 3 de T

2. Matrice et blocs

Définir une matrice T de format 5,5.
on considère les matrices: A = T(1:3,1:3); B=T(1:3,4:5); C=T(4:5,1:3); D=T(4:5,4:5);
  1. Trouver la matrice u telle que u*T soit égale à la matrice écrite en Matlab [ C D]
  2. Trouver la matrice v telle que T*v soit égale à la matrice écrite en Matlab [ B; D]
  3. Soit X une matrice 2,2; trouver J telle que X*J soit déduite de X par échange des colonnes.
  4. Trouver une matrice K telle que T*K soit la matrice [B A; D C] (échange de ‘blocs’ colonnes de T)

3. Pivot

A est la matrice ci-contre; on définit également: p=2, q=3.
         | -1  5  9  8 |
     A = | -2  8  3  5 |
         |  1 -4  6  8 |
On va effectuer un pivotage de A sur l’élément d’indices p,q, en construisant une matrice B par combinaisons linéaires des lignes de A. Plus précisément:
    • pour   i ≠ p, la ligne Bi,: est telle que:
           Bi,: = Ai,: + ci * Ap,: où ci est choisi pour obtenir Bi,q = 0
    • la ligne d'indice p est:   Bp,: = (1/Ap,q ) * Ap,:
On dit que B est obtenu à partir de A par un pivotage sur l’élément d’indices 2,3.
  1. Calculer B
  2. Trouver la matrice U, de format 3,3 vérifiant les deux conditions:
      •   pour j ≠ p, la colonne U:,j est la colonne d’indice j de la matrice identité d’ordre 3;
      •   B = U*A
  3. Ecrire le sous-programme matlab pivoter, tel que l’appel: [B,U]=pivoter(A,p,q) calcule
      •   B comme transformée de A, par un pivotage sur l’élément d’indices p,q;
      •   U comme la matrice définie comme ci-dessus, telle que B = U * A.
  4. Générer une matrice A, de format 3,3, à partir d’une distribution uniforme sur [0, 1]; calculer ensuite les matrices A1, A2, A3 obtenues par des pivots successifs sur les éléments d’indices 1,1 puis 2,2 et enfin 3,3; évaluer les matrices U1, U2, U3 réalisant ces pivotages (Ai=Ui*Ai-1) .
    Que valent A3 et le produit U3 * U2 * U1 ?

4. Sous-programmes

Cet exercice est lié à l’exercice 7 de la feuille précédente; on y compare des temps d’exécution de calcul de moyennes, par des programmations différentes.
On veut la fonction qui donne ces temps pour une matrice carrée de format n,n passé en paramètre. L'appel: [d1,d2,d3] = comparer(n)   doit calculer les temps respectifs d1,d2,d3 pour chaque méthode.
Placer dans le même fichier 3 fonctions internes, (une pour chaque méthode de calcul) appelée respectivement moy1, moy2, moy3 qui sont utilisées dans la fonction comparer.
La programmation de moy3 est présentée ci-contre.
  function  [moy, d] = moy3(M)
  t0 = clock;
  s = sum(sum(M));
  moy = s/(size(M,1)*size(M,2));
  t1 = clock;
  d = etime(t1,t2);

<\font>