next up previous contents
Next: Examen de Septembre 2001-LMA Up: Exercices Previous: Examen de Janvier 2001-LMA   Contents

Examen de Janvier 2001-MM1

Exercice 1.

On désigne par T, Q, R des tableaux de rang un et U, V, W des tableaux de rang deux. Ecrire sous formes de boucles explicites les instructions suivantes :

T(1:11) = 2. * sin(Q(-1:9))+ R
U(0:20, -2:9) = U(0:20, -2:9) + V( 5:25, -1:10) *  W( 5:25, -1:10)
U(:,3) = V(:,4)/Q + 5.
R = (/  -1. , -4. , (3.*i+5., i = 1, size(R)-2)  /)


Exercice 2.

Soit $ A= (a_{ij})_{1\leq i,j \leq N}$ une matrice triangulaire inférieure (i.e $ a_{ij}= 0$ pour $ j >i$). On décide alors de stocker uniquement la partie inférieure de $ A$, pour cela on considère la structure suivante :

        TYPE ligne
           REAL, DIMENSION(:), ALLOCATABLE  :: coef
        END TYPE ligne

        TYPE(ligne), DIMENSION(:), ALLOCATABLE :: A

Dans la suite de l'exercice, toutes les matrices utilisées sont supposées triangulaires inférieures et elles sont stockées sous cette forme.

  1. Donnez la nature de ces objets :
             A,  A(i),  A(i)%coef,  A(i)%coef(j)
           
  2. On note $ N$ le nombre de ligne de la matrice A. Que font les instructions suivantes :
            N = 4
            ALLOCATE (A(N))
            DO I = 1, N
               ALLOCATE (A(I)%coef(1:I))
            ENDDO
    
  3. On désigne par $ A(I)\%coef(J)$ le coefficient $ a_{ij}$ de la matrice $ A$. A titre d'exemple, donner les coefficients de la structure A pour la matrice suivante :

    $\displaystyle \left (
\begin{array}{cccc}
-1. & 0 & 0 & 0\\
4. & 3. & 0 & 0 \\
1. & 0. & 5. & 0 \\
0. & -3. & 6. & 8.
\end{array}
\right )
$

  4. Ecrire une fonction nommée FUNCTION DET(B) permettant de calculer le déterminant d'une matrice B.
  5. Ecrire une fonction FUNCTION NORME(B) permettant de calculer la norme infinie d'une matrice B. On rappelle que $ \displaystyle \Vert B\Vert _\infty = \max_{j=1,N} (\sum_{i =1}^N \vert b_{ij}\vert )$.

  6. Ecrire une fonction : Function MMM(A, B) RESULT (C) ou Function MMM(A, B) permettant de faire la différence de deux matrices A et B.

    Ecrire (dans un module) une surdéfinition de l'opérateur ($ -$), afin que l'instruction suivante :

    $\displaystyle C = A - B
$

    soit valide, pour $ A$, $ B$ et $ C$ des matrices.

  7. On rappelle que le produit de deux matrices triangulaires inférieures est une matrice triangulaire inférieure, écrire comme précédemment une interface operator ($ \ast$) permettant de rendre l'opération $ C = A * B $ valide.
  8. Soit la suite des matrices $ (A_k)_k$ définie par :

    \begin{displaymath}
\left \{
\begin{array}{l}
A_0 \mbox { donn\'ee} \\
A_k = 2 A_{k-1} - A_{k-1} A A_{k-1}, ~~~~ k \ge 1
\end{array}
\right .
\end{displaymath}

    cette suite converge vers $ A^{-1}$ (l'inverse de A) pour un choix particulier de la matrice $ A_0$ ( on ne demande pas de faire la démonstration).

    Ecrire un programme permettant de calculer une approximation de l'inverse d'une matrice A. On considère comme test d'arrêt pour cette méthode itérative : $ \Vert A_k - A_{k-1}\Vert _\infty \leq \epsilon.
$ On peut eventuellement lire la matrice $ A$ à partir d'un fichier d'entrée et stocker l'inverse de $ A$ dans un autre.


next up previous contents
Next: Examen de Septembre 2001-LMA Up: Exercices Previous: Examen de Janvier 2001-LMA   Contents
Mazen Saad 2002-12-12