TP 4 : Les matrices en Scilab
Pré-requis : avant d’entamer ce TP, il faut avoir lu / compris / effectué les manipulations présentes dans le cours «Chapitre 5 : Manipulation de matrices dansScilab».
I Dans le dossierInfo_1a, créez le dossier TP_4.
I. Écrire des matrices en Scilab
I.1. Création explicite
I Évaluer dans la consoleA=[1,4,5;0,3,2;9,3,4]etB=[1,4,5;9,3,8]etC=[7,4;2,1;1,0;9,8;1,2]. Écrire ci-dessous le résultat obtenu.
I À quoi servent les délimiteurs «;» et «,» lors de la création de matrices ?
I Évaluer dans la console D=[A;B]puis E=[D,C]. Écrire ci-dessous le résultat.
I Évaluer dans la console [A,B]. Écrire ci-dessous le message d’erreur obtenu.
I Évaluer dans la console [B;C]. Écrire ci-dessous le message d’erreur obtenu.
I Commenter cette utilisation des délimiteurs «;» et «,». À quoi doit-on faire attention ?
I Évaluer[[A;B],C]. Quelle est la matrice créée ? À quoi servent les crochets[]?
I Quel est le résultat des appels [A],[[A]] et[[[A]]]? Préciser l’utilisation des crochets[].
I Évaluersize(A) puis size(B)etsize(C). Noter ci-dessous le résultat obtenu.
À quoi sert la fonctionsizeen Scilab?
I Évaluer de mêmelength(A) puislength(B) etlength(C).
Noter ci-dessous le résultat obtenu. À quoi sert la fonctionlengthen Scilab?
I.2. Création par opérateurs
I Évalueru = 3:12,v = 3:2:12,v = 3:4:12,z = 12:-1:3 ett = 3:-1:12.
I Conclure quant à l’utilité de l’opérateur «:».
La commandea:pas:b permet de créer
La matrice ligne créée contient points La commandea:b correspond à la commande
I Évaluerzeros(1,2),zeros(1,4),zeros(1,7)et enfin zeros(3,5). Conclure quant à l’utilité de la fonctionzeros.
I Évaluerones(1,2),ones(1,4),ones(1,7)et enfin ones(3,5). Conclure quant à l’utilité de la fonctionones.
I Évaluerrand(1,2),rand(1,4),rand(1,7)et enfin rand(3,5). Conclure quant à l’utilité de la fonctionrand.
I Évaluerlinspace(3,12,5),linspace(3,12,10),linspace(3,12,100). Conclure quant à l’utilité de la fonctionlinspace.
La commandelinspace(a,b,n) permet de créer
Elle peut être simulée par l’appela: :b
I Évaluer linspace(3,12). Conclure quant à la valeur de n utilisée par défaut dans la commande linspace. Que vaut le pas dans ce cas ?
La commandelinspace(a,b) permet de créer
Elle peut être simulée par l’appela: :b
II. Accéder aux éléments d’une matrice
II.1. Accéder à un élément
I ÉvaluerA(1,1),A(1,2),A(1,3)etA(3,2). À quelles valeurs accède-t-on grâce à ces appels ?
I ÉvaluerA(1),A(4),A(7)etA(6). À quelles valeurs accède-t-on grâce à ces appels ? En conclure sur l’ordre que l’on peut utiliser pour accéder aux éléments d’une matrice.
I ÉvaluerA(1,5) puisA(11). Expliquer le message d’erreur obtenu.
II.2. Accéder à plusieurs éléments
I ÉvaluerA(1,:),A(2,:),A(3,:). À quelles valeurs deAaccède-t-on grâce à ces appels ?
A(:,1) A(:,2) A(:,3) A
I ÉvaluerA(2:3,1),A(2:3,:),A(2:3,2:3).
À quelles valeurs deA accède-t-on grâce à ces appels ?
I Conclure quant à l’utilité de la commandeA(i:j,k:l).
A(i:j,k:l)sélectionne les cœfficients de la ligne à la ligne et de la colonne à la colonne .
I Évaluerx = 2:3:9 puisA(x). À quelles valeurs deA accède-t-on grâce à cet appel ?
I ÉvaluerA([1,3],1). À quelles valeurs deA accède-t-on grâce à cet appel ?
III. Un exercice d’application
I Écrire un programme qui demande à l’utilisateur d’entrer au clavier :
× la valeur d’un entier m,
× la valeur d’un entier n,
× la valeur d’un réel a,
× la valeur d’un réel b,
et qui crée d’abord la matrice de taille (m+1,n) qui contient :
× des 1 sur la sous-matrice contenant les lignes de 1 àm et les colonnes de 1 à n,
× contientn valeurs régulièrement espacées entrea etb sur la dernière ligne (lignem+1).
et ajoute comme dernière colonne (colonne n+1) :
× le vecteur colonne contenant toutes les valeurs entières entre1 etm+1.
On affichera la matrice obtenue.
IV. Opérations entre matrices
IV.1. Somme, produit, élévation à une puissance entière
I ÉvaluerA=[1,4,5;0,3,2;9,3,4],B=[1,4,5;9,3,8],C=[7,4;2,1;1,0;9,8;1,2],d=[4;5;1]. Écrire ci-dessous le résultat obtenu.
I ÉvaluerE=[[A;B],C] puisE([2,5],3:5) et expliquer le résultat obtenu.
I ÉvaluerB+E etE-B. Expliquer le résultat obtenu.
I ÉvaluerA+B etB+C. Noter le message d’erreur obtenu et expliquer.
I Évaluer2?A puis3?B. Expliquer le résultat obtenu.
I ÉvaluerB?A puisC?B. Expliquer le résultat obtenu.
I ÉvaluerA?B puisB?C. Noter le message d’erreur obtenu et expliquer.
I ÉvaluerA∧∧∧3 puis A?A?A. Noter le résultat obtenu et expliquer.
IV.2. Autres opérations
I ÉvaluerA',B',C' etd'. Écrire ci-dessous le résultat obtenu.
I À quoi sert l’opérateur '?
I Évaluerd?d'etd'?d. Expliquer la taille des matrices obtenues.
I Évaluer[1:3]'?[1:3]. Comment peut-on obtenir, par un produit de matrices, une matrice repré- sentant les tables de multiplications classiques ?
I Évaluerinv(A),A∧∧∧(-1),inv(A)?A etA?inv(A). Commenter le résultat obtenu.
I Évaluerx=A\d puisA?x. Noter le résultat obtenu et expliquer l’utilité de l’opérateur \.
x=A\d est la solution de l’équation matricielle :A? =
I ÉvaluerA∧∧∧(-1)?d. Expliquer le résultat obtenu.
V. Opérations termes à termes
I Évaluersum(d),prod(d) puissum(A),prod(A). À quoi servent ces opérateurs ?
I Évaluercumsum(d),cumprod(d)puiscumsum(A),cumprod(A). À quoi servent ces opérateurs ?
I ÉvaluerA.?A,B.?B,d.?d. À quoi sert l’opérateur .??
I ÉvaluerA.?B. Expliquer le message d’erreur obtenu.
I ÉvaluerB./B etd./d. À quoi sert l’opérateur./?
I ÉvaluerA./A etC./C. Noter le message d’erreur obtenu et expliquer.
I Évaluer2./B. Un message d’alerte apparaît.
Évaluer alors2 ./B et expliquer le résultat obtenu.
I ÉvaluerB.∧∧∧(3) etB.?B.?B. Expliquer l’utilité de l’opérateur .∧∧∧
VI. Fonctions prédéfinies et matrices
I Évaluersqrt(A) puis exp(A). Commenter le résultat obtenu.
I Évaluerlog(B) puislog(A). Expliquer le message d’erreur obtenu.
I Évaluer8+A.
I Commenter la pertinence des calculs précédents. À votre avis, pourquoi peut-on se servir enScilab d’opérateurs non définis dans le cours de mathématiques ?
I Évaluert = [1,5,2,3,8,14,7,3,1,6,12] puis find(t<5)etfind(t==5). À quoi sert l’opérateur find?
VII. En Scilab, tout est matrice !
I Évaluersize(3.8) puissize(%t) etsize("bonjour").
I Évaluertypeof(A).
I Que peut-en en conclure sur les typesconstant,boolean etstring? Le type constantregroupe
Le type booleanregroupe
Le type stringregroupe