Les matrices - Page personnelle de Maxime Bailleul

Transcription

Les matrices - Page personnelle de Maxime Bailleul
ECE 1
TP 3 : Les matrices
I
Définition d’une matrice
Pour définir une matrice, on écrit ses coefficients entre crochets en séparant les coefficients d’une même ligne par
des virgules (ou des espaces) et on change de ligne en utilisant un point-virgule.
Exemples.
. L’instruction A = [1, 2, 3] crée une variable A qui a pour valeur une matrice ligne (ou vecteur ligne) de
taille 1 × 3.
. L’instruction B = [1; 2; 3] crée une variable B qui a pour valeur une matrice colonne (ou vecteur colonne)
de taille 3 × 1.
. L’instruction C = [1, -2, 3; -4, -5, 6] crée une variable C qui a pour valeur une matrice de taille 2 × 3.
2
Exercice 1. Créer la matrice A définie par A =
5
1
4
On accède aux éléments de la matrice par les instructions suivantes : si M est une variable qui contient une matrice,
alors :
• L’instruction M(i,j) renvoie le coefficient de la ième ligne et la j ème colonne de la matrice.
• L’instruction M(i,:) renvoie la ième ligne de la matrice. On dit que l’on extrait la ième ligne de M .
• L’instruction M(:,j) renvoie la j ème colonne de la matrice. On dit que l’on extrait la j ème colonne de M .
Remarque. Si u est une variable qui contient une matrice ligne ou colonne alors l’instruction u(k) renvoie le
k ème coefficient du vecteur (pas besoin de spécifier la colonne ou la ligne).
Exercice 2.

1
1. Définir la matrice suivante dans Scilab : A = 4
7
2
5
8

3
6
9
2. Créer une variable x et lui affecter la valeur du coefficient (2, 2) de la matrice A.
3. Créer une variable Col et lui affecter la valeur de la dernière colonne de la matrice A.
4. Créer une variable Lig et lui affecter la valeur de la première ligne de la matrice A.
Certaines commandes prédéfinies permettent de définir certaines matrices particulières :
• L’instruction eye(n,n) renvoie la matrice identité de taille n (attention à bien mettre deux paramètres).
• L’instruction zeros(n,p) renvoie la matrice nulle de taille n × p.
• L’instruction linspace(a,b,n) renvoie un vecteur ligne de longueur n dont les coefficients sont également
espacés et vont de a à b.
Lycée Jean Calvin, Noyon
2016/2017
Les matrices
1/6
• L’instruction a:b:c renvoie un vecteur ligne dont le premier coefficient est a avec une progression arithmétique
de raison b jusqu’à atteindre c. Si b n’est pas précisé, la progression des coefficients est de 1 en 1 (l’instruction
est alors a:c). b peut aussi être négatif.
Exercice 3. Donner les commandes permettant de créer la matrice identité I3 et la matrice nulle 03,2 .
Exercice 4.
1. Créer un vecteur ligne contenant les entiers de 1 à 20 en utilisant une instruction de type a:b:c.
2. Même question en utilisant linspace.
3. Créer un vecteur ligne contenant les entier pairs de 4 à 28.
II
Modifier une matrice ou un vecteur
Soient M une variable qui contient une matrice de Mn,p (R) et u une variable qui contient un matrice ligne ou
colonne (un vecteur). On peut modifier ces matrices par les commandes suivantes :
• L’instruction u(k) = x remplace le k ème coefficient de u par x (x doit donc avoir pour valeur un réel).
• L’instruction M(i,j) = x remplace le coefficient de la ième ligne et j ème colonne de M par x (x doit donc avoir
pour valeur un réel).
• L’instruction M(i,:) = L remplace la ième ligne de M par la ligne L (L doit donc avoir pour valeur une matrice
ligne de taille p).
• L’instruction M(:,j) = C remplace la j ème colonne de M par la colonne C (C doit donc avoir pour valeur une
matrice colonne de taille n).
Exercice 5.
1. Affecter à une variable I la matrice identité de taille 3.
2. Modifier la valeur de la variable I pour que son coefficient (1, 2) soit égal à 2.
 
2
3. Créer une variable Colonne qui contient le vecteur colonne 5 ·
3
4. Copier la matrice I dans une variable J puis remplacer la troisième colonne de J par la colonne Colonne.
5. Afficher I et J.
Lycée Jean Calvin, Noyon
2016/2017
Les matrices
2/6
III
III. 1
Opérations sur les matrices
Opérations usuelles
Scilab permet d’effectuer les opérations usuelles sur les matrices :
? [addition] : +
? [soustraction] : ? [multiplication] (d’une matrice par un réel ou de deux matrices) : *
ainsi que les principales fonctions matricielles : si A est une matrice et k un entier naturel, on a les commandes
suivantes :
? [transposée de A] : A’
? [A puissance k] : Aˆ k
? [inverse de A] : inv(A) (renvoie une erreur si A n’est pas inversible)
Exercice 6. Soient E, F les matrices définies par
2 0
−1
E=
et F =
4 −2
0
3
−2
Calculer E + F , EF ,la transposée de E et l’inverse de E si celle-ci existe.
Exercice 7. Créer un vecteur colonne x des entiers de 1 à 30.
Exercice 8. Soit A la matrice définie par

−2
A= 6
−4
1
−2
1

1
−4
3
Montrer que A3 = 6A − A2 (on pourra utiliser le test ==). Montrer par l’absurde que A n’est pas inversible.
Lycée Jean Calvin, Noyon
2016/2017
Les matrices
3/6


1 1 1
Exercice 9. Soit A la matrice définie par A = 1 1 1 · Conjecturer l’expression des premières puissances de
1 1 1
A, en déduire une conjecture des puissances de A puis montrer cette conjecture.
5 2
·
2 3
Affecter à une variable D l’inverse de C. Calculer ensuite CD. Que peut-on dire ?
Exercice 10. Soit C la matrice définie par C =
III. 2
Opérations et fonctions coefficient par coefficient
Soient A = (ai,j ) et B = (bi,j ) deux matrices de même taille et k un entier naturel.
? L’instruction A.*B, renvoie la matrice (ai,j bi,j ).
? L’instruction A./B, renvoie la matrice (ai,j /bi,j ).
? L’instruction A.ˆ k, renvoie la matrice (ai,j )k .
Attention à ne pas confondre les opérations * et .* ou ˆ et .ˆ
De même si f est une fonction usuelle (connue de Scilab) et A est une matrice, l’instruction f(A) renvoie la matrice
dont tous les coefficients sont les images par f des coefficients de A.
Exercice 11. Soient E, F les matrices définies par
1 2
−1
E=
et F =
0 1
1
5
2
Calculer E.*F et donner la matrice dont les coefficients sont égaux aux valeurs absolues des coefficients de F.
Lycée Jean Calvin, Noyon
2016/2017
Les matrices
4/6
IV
Quelques exercices supplémentaires
• La commande rand(n,m) permet de créer une matrice de taille n × m dont les coefficients sont des nombres
« aléatoires » compris entre 0 et 1.
• La commande find permet de trouver dans un vecteur (ou dans une matrice), les coefficients vérifiant une
condition donnée.
• l’instruction size(A) renvoie un vecteur ligne à deux coefficients dont le premier est le nombre de lignes et
le second le nombre de colonnes de A.
1 2 3
Exercice 12. Appliquer la fonction size à la matrice A définie par A =
·
−1 0 5
Utiliser l’aide de Scilab et donner les instructions donnant uniquement le nombre de lignes et le nombre de colonnes
de la matrice A.
Exercice 13. A quoi sert la série d’instruction suivante ?
x=rand(1,10000);
y=find(x<0.5);
n=size(y,’c’);
p=n/10000
Le résultat vous semble t-il cohérent ?
6, 25
Exercice 14. Soient A =
4, 5
−9
3
et P =
−6, 5
2
4
3
1. A l’aide de Scilab, déterminer l’inverse de P .
2. Calculer la matrice D définie par D = P −1 AP .
3. Déterminer mathématiquement l’expression des puissances de D.
4. En déduire l’expression des puissances de A.
Lycée Jean Calvin, Noyon
2016/2017
Les matrices
5/6
Lycée Jean Calvin, Noyon
2016/2017
Les matrices
6/6