• Aucun résultat trouvé

5 – Calcul matriciel

N/A
N/A
Protected

Academic year: 2022

Partager "5 – Calcul matriciel"

Copied!
2
0
0

Texte intégral

(1)

TD Systèmes à Microprocesseurs – Electronique 3

- 1 -

5 – Calcul matriciel

Objectifs

• Développement d’algorithmes, structuration et mise au point de programmes complets.

• Manipulation de tableaux bidimensionnels.

1.1 Description

On considère une matrice carrée de dimension MxM dont les éléments sont rangés dans un tableau MAT contenant des valeurs entières 32-bit signées.

L’objectif est de réaliser trois fonctions permettant de lire/écrire la valeur d’un élément à une position (i,j) donnée, et de calculer la transposée de la matrice. Il faudra également réaliser un programme principal qui permette de tester les fonctions.

Dans un premier temps, nous travaillerons avec une matrice de dimension 3x3 pour la mise au point :

1 2 3 1 4 7

MAT = 4 5 6 tMAT = 2 5 8

7 8 9 3 6 9

Remarque : En pratique, les valeurs de la matrice sont placées en mémoires à des adresses consécutives.

@MAT 01 00 00 00

@MAT + 4 02 00 00 00

@MAT + 8 03 00 00 00

@MAT + C 04 00 00 00

@MAT + 10 05 00 00 00

@MAT + 14 06 00 00 00

@MAT + 18 07 00 00 00

@MAT + 1C 08 00 00 00

@MAT + 20 09 00 00 00

L’accès à un élément MAT(i,j) de la matrice se fera en calculant l’adresse par rapport aux indices i et j de la façon suivante : @MAT+((j*M+i)*4). Par exemple :

MAT(2,0) = 3 qui est à l’adresse @MAT+((0*M+2)*4)= @MAT+8 MAT(1,2) = 8 qui est à l’adresse @MAT+((2*M+1)*4)= @MAT+1C

Les deux premières fonctions que nous allons écrire correspondent à deux sous- programmes get et set, qui permettront de lire ou d’écrire un élément de la matrice à la position (i, j). Elles seront appelées avec les paramètres suivants : adresse de la matrice, dimension de la matrice (M), position horizontale (i), position verticale (j) et valeur à lire/écrire. La troisième fonction transpose prend en paramètres l’adresse de la matrice MAT, l’adresse de la matrice transposée MAT_T, la dimension de la matrice et calcule la transposée.

(2)

TD Systèmes à Microprocesseurs – Electronique 3

- 2 -

1.2 Lecture/écriture d’une valeur dans une matrice

Ecrire les fonctions get et set de lecture et d’affectation de valeur à la position (i, j). Tester ces deux fonctions sur quelques exemples. Les paramètres des deux fonctions get et

set sont passés par la pile. Le résultat de la fonction get est renvoyé dans R0.

1.3 Transposée

L’algorithme de transposée consiste à parcourir chaque élément de la matrice et à effectuer une permutation de valeur entre MAT(i,j) et MAT(j,i). Cette permutation consiste à écrire l’élément à l’adresse @MAT+((j*M+i)*4) du tableau MAT à l’adresse @MAT_T+((i*M+j)*4) du tableau MAT_T.

Ecrire une fonction transpose qui permet de transposer la matrice en utilisant les fonctions get/set. Les paramètres de la fonction transpose sont passés par la pile.

Références

Documents relatifs

Ce tableau ´etant public, on ne peut pas envoyer la matrice M , d´ecodable par tout le monde.. Calculer la

Montrer que g est inversible et calculer la matrice de g −1 dans la base

Montrer que u est diagonalisable si et seulement si la somme des dimensions de ses sous- espaces propres est égale à la dimension de

On applique ce résultat avec =1 pour le (ii) et B égale à la matrice nulle pour le (iii). Les propriétés précédentes traduisent le fait que la transposition est une

Pour tout

Dans cette fiche, nous allons utiliser la TI 83 Premium CE afin de réaliser des calculs matriciels...

Printemps 2010.. Les nombres a ij sont appelés coecients de la matrice. Les lignes horizontales sont appelées rangées ou vecteurs rangées, et les lignes verticales sont

En conclure qu’il existe une base. Université de Cergy