• Aucun résultat trouvé

1 Exercice : Travail sur les matrices

N/A
N/A
Protected

Academic year: 2022

Partager "1 Exercice : Travail sur les matrices"

Copied!
2
0
0

Texte intégral

(1)

Lycée Marceau MPSI 2015/2016 Pour le Vendredi 29 avril 2016

Devoir en temps libre d'informatique n

o

4

Vous numéroterez vos copies et ferez apparaître clairement sur la première page le nombre de copies. Vous prêterez une attention particulière au soin de vos copies.

Si vous avez accès à un ordinateur muni de Python (environnement de base ou plus évolué), n'hésitez pas à tester vos fonctions.

1 Exercice : Travail sur les matrices

Dans cet exercice, on considère que les matrices seront représentées par des tableaux bidimensionnels (listes de listes). Par exemple le tableau LM valant [[1,2,3],[0,1,5]] représente la matriceA =

1 2 3 0 1 5

Attention : le terme LM[i][j] représente le coecient a(i+1),(j+1) de la matrice A.

Par exemple le coecient 5 de la matrice précédente est obtenu par la syntaxe LM[1][2]

1. Dimensions d'une matrice

Ecrire une suite d'instructions qui, étant donnée une liste LM représentant une matrice M, aecte à la variable haut la hauteur de M et à la variable larg la largeur de M.

2. Copie d'une matrice

Ecrire une suite d'instructions qui, étant donnée une liste LM représentant une matrice M (de taille inconnue), aecte à la variable LMbis une copie de la matrice M. Attention : On ne veut pas qu'après cette copie, un changement des coecients de la liste LM aecte ceux de la variable LMbis et réciproquement.

3. Produit et transposée de matrices

(a) Ecrire une fonction de nom transpose qui reçoit comme argument une liste LM représentant une matrice M (de taille inconnue) et qui retourne la liste représentant la transposée de la matrice M.

(b) Ecrire une fonction de nom produitpossible qui reçoit comme arguments deux listes LM et LN représentant les matrices M et N (de tailles inconnues) et qui retourne le booléen True si les dimensions sont compatibles avec le calcul du produit MN et False sinon.

(c) Ecrire une fonction de nom produit qui reçoit comme arguments deux listes LM et LN représentant les matrices M et N (de tailles inconnues) et qui retourne la liste représentant le produit MN si les dimensions sont compatibles avec le calcul du produit MN, et qui retourne un message d'erreur sinon. Calculer le nombre d'additions, de multiplications et d'afectations eectuées en fonction des tailles des deux matrices M et N.

4. Opérations élémentaires

(a) Ecrire une fonction de nom dilatation_ligne qui reçoit comme arguments une liste LM représentant une matrice M (de taille inconnue), un entier naturel p et un nombre mu, et qui retourne le tableau correspondant à la matrice obtenue à partir de M après dilatation de la ligne Lp de rapport mu. Vous préterez attention au fait que la ligne Lp de la matrice est constituée des coecients de la liste LM[p-1].

Vous ècrirez trois versions de cette fonction :

i. une version, notée provisoirement dilatation_ligne_prod, en utilisant la fonction pro- duit et en introduisant une matrice de dilatation

1

(2)

Lycée Marceau MPSI 2015/2016 Pour le Vendredi 29 avril 2016

ii. une version, notée provisoirement dilatation_ligne_cop, en créant une copie de la liste représentant la matrice et en n'eectuant que les changements correspondant à la ligneLp de la matrice

iii. une version, notée provisoirement dilatation_ligne_bord, qui n'a pas de retour mais qui transforme la liste LM directement en n'eectuant que les changements correspondant à la ligne Lp de la matrice.

iv. Comparer les complexités de ces trois fonctions en nombre d'additions, de multiplications, d'aectations ou de copies de nombres entiers ou ottants, en fonction de la taille de la matrice entrée en argument.

(b) Ecrire une fonction de nom transvection_ligne qui reçoit comme arguments une liste LM représentant une matrice M (de taille inconnue), deux entiers naturels k et j(supposés distincts et compatibles avec la taille de la matrice) et un nombre mu, et qui retourne le tableau corre- spondant à la matrice obtenue à partir de M après la transvection : Lk ←−Lk+mu Lj. On n'écrira qu'une version de cette fonction mais on en donnera la complexité.

(c) Ecrire une fonction de nom transposition_ligne qui reçoit comme arguments une liste LM représentant une matrice M (de taille inconnue) et deux entiers naturels k et j(supposés distincts et compatibles avec la taille de la matrice), et qui retourne le tableau correspondant à la matrice obtenue à partir de M après la transposition : Lk ←→Lj. On n'écrira qu'une version de cette fonction mais on en donnera la complexité.

2

Références

Documents relatifs

[r]

BCPST R´ esolution de syst` emes et inversions de matrice 2016-2017 Le but de ce TP est de finir le dernier TP en ´ ecrivant l’ensemble des algorithmes sur les matrices vus dans

[r]

Ecrire l'algorithme d'une fonction qui convertit un nombre binaire, figurant dans un tableau de caractères sous forme ASCII, en un nombre entier qui sera retourné.

// on suppose que le tableau Note contient

Ecrire une fonction qui prend pour argument un tableau Note[ ] (qui contient les notes d’une classe) et n la taille du tableau (le nombre des notes) et elle retourne la moyenne de

Soit a et n deux entiers naturels non nuls et différents de 1.. Montrer que n

– on considère que le risque 1 est proportionnel à la vitesse de votre véhicule (cette modélisation traduit le fait que plus on roule vite, plus le risque de collision est grand)..