TP 02 : matrices

publicité
TP 2 : calcul matriciel sous Scilab
1. Construction d’une matrice
1
En se reportant, si besoin, au premier TP, construire les matrices suivantes (qui seront affectées aux variables dont
les noms sont donnés ci-dessous).

1
A = 4
7
2

2 3
5 6
8 9
B=
1
2
2 5
6 1
Quelques constructions particulières bien pratiques :
(a) La matrice nulle se fait à l’aide de la commande zeros(n,p), où n et p sont deux entiers désignant respectivement le nombre de lignes et de colonnes.
Construire C = 04 .
(b) De même, la matrice composée uniquement de 1 se fait à l’aide de la commande ones(n,p), où n et p sont
deux entiers désignant respectivement le nombre de lignes et de colonnes.
Construire une matrice D à 4 lignes et 3 colonnes composée uniquement de 3.
(c) La matrice identité se fait à l’aide de la commande eye(n,n), où n désigne le nombre de lignes. On peut
également construire des matrices non carrée à l’aide de cette commande.
Essayer les commandes suivantes : eye(3,3), eye(2,3), eye(3,2).
(d) La commande diag(v), où v est une matrice (ligne ou colonne) permet de construire une matrice diagonale dont
la diagonale est v. Inversement, la commande diag(A), où A est une matrice (pas nécessairement diagonale)
permet de construire une matrice colonne dont les composantes sont celles de la diagonale de la matrice.
Enfin, en tapant diag(v,1), on construire une matrice diagonale de taille adaptée en conséquence dont la
première sur-diagonale est v (on aussi peut taper diag(v,2) pour la deuxième sur-diagonale, diag(v,-1) pour
la première sous-diagonale, etc...
Construire une matrice E carrée de taille 10 dont tous les coefficients sont nuls à l’exception ceux de la diagonale,
qui valent -2, et de ceux de la première sur-diagonale et de la première sous-diagonale, qui valent 1.
Indication : on additionnera 3 matrices obtenues à l’aide de la commande diag.
2. Opérations sur les matrices
1
L’addition, la multiplication par un réel et la multiplication matricielle et la puissance nième d’une matrice
carrée se font respectivement à l’aide de +, *, * et ^n. Les précautions d’usage quant aux dimensions des matrices
concernées sont à prendre, sinon un message d’erreur s’affiche.
Effectuer B+A, A*B, B*A, A^10 et B ^10 en anticipant les messages d’erreur.
2
On peut également faire des opérations coefficients par coefficients (qui ne sont pas des « vraies »opérations sur les
matrices). Par exemple :
(a) A + 2 ajoute 2 à chaque coefficients de A.
(b) A.*B multiplie deux à deux les coefficients de deux matrices A et B de même dimension (l’opération ./ existe
aussi).
(c) A.^n élève chaque coefficient de A à la puissance n
Comparer A.*A,A*A, A^2 et A.^2 et anticiper les résultats.
(d) On peut appliquer n’importe qu’elle fonction prédéfinie de Scilab à une matrice, le calcul d’image s’effectue
coefficient par coefficient
Effectuer sqrt(A).
3
L’inverse d’une matrice M se calcule via la commande inv(M) qui laisse un message d’erreur lorsque la matrice n’est
pas inversible. Attention toutefois, il faut se rappeler que Scilab ne fait que des calculs approchés, ce qui donne parfois
des erreurs de la part du logiciel.
www.franck-madigou.fr
ECE 1 2015-2016, TP 2 : calcul matriciel sous Scilab
1/2

3
Donner l’inverse de F = 2
1
Effectuer inv(B), inv(A) et
4

1 4
5 7, puis calculer le produit F −1 F et commenter.
0 0
commenter.
La transposée d’une matrice M est obtenue à partir de M’
Vérifier l’instruction en effectuant A’.
A partir de la matrice ligne t contenant les entiers de 1 à 10, créer une matrice de taille 10 qui contient les résultats
des tables de multplication.
Indication : penser à la transposée de t
3. Accès aux coefficients des matrices et modifications de ceux-ci
1
M(2,4) donne le coefficient correspondant de la matrice. M(2,4)=8 affecte la valeur 8 à ce coefficient à la place de la
valeur précédente.
2
M(2,:) donne la matrice ligne constitué de la deuxième ligne de la matrice M, M(:,2) donne la matrice colonne
constitué de la deuxième colonne de la matrice M. On peut également le modifier par affectation comme pour les
coefficients.
Remplacer la deuxième ligne de la matrice A par une ligne de 1, puis remplacer la deuxième colonne de la matrice A
par la première colonne de la matrice A.
Echanger les colonnes 1 et 2 de la matrice B.
4. Matrices aléatoires
1
rand(n,p) permet de générer une matrice contenant des nombres aléatoires, chacun étant tiré au hasard indépendamment des autres selon une loi uniforme dans l’intervalle [0; 1[.
Construire une matrice G carrée de taille 100 du type précédent (sans l’afficher) et calculer la moyenne des coefficients.
Interpréter le résultat.
2
grand(n,p,'uin', 1, 6) permet de créer une matrice de taille n*p donc les coefficients sont des nombres entiers
compris entre 1 et 6, chacun étant tiré indépendamment des autres selon une loi uniforme dans l’ensemble J1 ; 6K. C’est
l’instruction 'uin' qui permet de coder le fait que la loi est uniforme et elle peut être remplacée par de nombreuses
autres options (voir l’aide de grand) comme par exemple la loi binomiale, normale, exponentielle, etc...
Simuler à l’aide d’une seule matrice H une série de 20 expériences aléatoires similaires, chacune de ces expériences
consistant à lancer 100 fois un dé (équilibré), le résultat d’une expérience correspondant à une colonne de H.
A l’aide de l’instruction mean(H,'r'), qui calcule la moyenne de chaque colonne de H et sort le résultat sous la forme
d’une matrice ligne la moyenne du score obtenu.
Refaire plusieurs fois l’expérience et commenter le résultat en terme de fluctuation d’échantillonnage (si votre mémoire
le permet).
www.franck-madigou.fr
ECE 1 2015-2016, TP 2 : calcul matriciel sous Scilab
2/2
Téléchargement