Vous êtes sur la page 1sur 2

mercredi 14 janvier 2009

TP 3 d’analyse numérique

Le but de ce TP est de manipuler des tableaux à une dimension pour représenter des
matrices ou des vecteurs réels (double précision), les multiplier, calculer des déterminants,
calculer l’inverse d’une matrice, . . .

Le fichier “http://10.27.3.235/TP/matrices.txt” contient les définitions des matrices


A , B et C , de dimensions 3 × 3 , 4 × 4 et 8 × 8 . Il contient aussi les définitions des
vecteurs ~a , ~b et ~c , de dimensions 3, 4 et 8. Vous pouvez copier ce fichier dans votre
compte et l’inclure dans votre programme principal.

1. Ecrire en C, une fonction qui affiche sur l’écran une matrice carrée ( n × n ), ligne
par ligne. Vous appellerez cette fonction “afficher matrice”, et elle devra avoir 2
arguments : le premier argument sera la matrice (tableau) et le deuxième argument la
dimension n . Dans le programme principal, cette fonction sera par exemple utilisée
comme ceci :
afficher matrice(A,n);
Vérifier, en écrivant un petit programme, que cette fonction affiche correctement les
matrices A , B et C citées plus haut.
2. Ecrire en C, une fonction qui affiche sur l’écran un vecteur (de dimension n ). Vous
appellerez cette fonction “afficher vecteur”, et elle devra avoir 2 arguments : le
premier argument sera le vecteur (tableau) et le deuxième argument la dimension n .
Vérifier, en écrivant un petit programme, que cette fonction affiche correctement les
vecteurs ~a , ~b et ~c citées plus haut.
3. Ecrire en C, une fonction qui calcule le produit ~y = M~x (M est une matrice n ×
n , et les vecteurs ~x et ~y ont n composantes). Vous appellerez cette fonction
“produit matrice vecteur”, et elle devra avoir 4 arguments. Cette fonction sera
utilisée dans un programme comme ceci :
produit matrice vecteur(M,x,y,n);
Ecrire ensuite un petit programme qui calcule et affiche correctement les produits A~a ,
B~b et C~c (ce sont les matrices et vecteurs du fichier cité plus haut).
4. Ecrire en C, une fonction qui calcule le produit matriciel R = M N ( M , N et R sont
des matrices n × n ) Vous appellerez cette fonction “produit matrice matrice”, et
elle devra avoir 4 arguments. Cette fonction sera utilisée dans un programme comme
ceci :
produit matrice matrice(M,N,R,n);
Ecrire ensuite un petit programme qui calcule et affiche correctement les produits
AAt , At A , BB t , B t B , CC t et C t C ( At est la transposée de A ). Vérifier que
les résultats que vous obtenez sont bien des matrices symétriques (en effet AAt est
égale à sa transposée (AAt )t ).
5. Ecrire en C, une fonction appelée “determinant” qui calcule, en utilisant la méthode
de Gauss, le déterminant d’une matrice carrée M , de dimension n × n . Elle devra
avoir 2 arguments et retourner un argument qui est le déterminant. Cette fonction
sera utilisée dans un programme comme ceci :
z = determinant(M,n); /* z est un double déclaré auparavant*/
Ecrire ensuite un petit programme qui calcule et affiche les déterminants des matrices
A , B et C .
6. Ecrire en C, une fonction appelée “resoudre avec gauss” qui résoud le système
d’équations linéaires A~x = ~b (la matrice A de dimension n × n , et le vecteur ~b
sont supposés donnés). Cette fonction devra avoir 4 arguments et sera utilisée dans
un programme comme ceci :
z = resoudre avec gauss(A,b,x,n); /* solution dans "x" */
Ecrire ensuite un petit programme qui résoud les systèmes A~x = ~a , B~x = ~b et
C~x = ~c .
Vérifier ensuite que les solutions obtenues sont correctes en affichant sur l’écran les
produits A~x , B~x et C~x , et en les comparant aux vecteurs ~a , ~b et ~c .
7. Ecrire en C, une fonction appelée “matrice inverse” qui calcule, en utilisant la
méthode de Gauss, l’inverse M −1 d’une matrice carrée M de dimension n × n .
Cette fonction devra avoir 4 arguments et sera utilisée dans un programme comme
ceci :
z = matrice inverse(M,M inverse,n); /* solution dans "M inverse" */
Ecrire ensuite un petit programme qui calcule les inverses A−1 , B −1 et C −1 .
Vérifier ensuite que les solutions obtenues sont correctes en calculant et en affichant sur
l’écran les produits AA−1 , BB −1 et CC −1 (vous devez obtenir la matrice identité).

Vous aimerez peut-être aussi