Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
SY10 - TP No 1 (1 séance)
Initiation à Matlab®
Automne 2021
(Pour toute information : tpsy10@intellitech.fr)
Attention : se placer sur le disque z pour éviter toute sauvegarde à un mauvais endroit.
Utiliser l’icône du Path Browser.
tapez
» s = 10
Matlab va assigner à une variable qu’il appellera s, la valeur 10. D’ailleurs il retourne
le message suivant : s =
10
tapez maintenant
» t = 10;
Matlab va assigner là aussi la valeur 10 à la variable t, mais ne retournera aucun
message. Le fait de mettre un ‘;’ (point-virgule) à la fin de la commande supprime
l’affichage du résultat. Cette option est utile dans les programmes longs pour ne pas
subir les calculs intermédiaires d’une chaîne d’opération.
tapez
» 100/20
produit l’affichage suivant :
ans=
5
Cette variable ans est créée automatiquement et porte la dernière opération effectuée.
/ division à droite
\ division à gauche
* multiplication
+ addition
- soustraction
^ élévation à la puissance
exemple :
» 9-7
ans=
2
» ans*2.5
ans=
5
» ans^2
ans=
25
» ans/2
ans=
12.5
D’autres fonctions utiles :
exemple :
» y=sqrt(3)/2
y=
0.8860
» j=abs(-4)
j=
4
» sin(pi/4)
ans=
0.7071
Sur les variables, on peut en modifier l’affichage, le nombre de chiffres significatifs après la
virgule, sous forme d’exponentielle, ou bien en hexadécimal par exemple. Par défaut, le
format est short (5 digits)
» format long
»y
y=
0.866025403784439
» format short e
»y
y=
8.6603e-01
tapez
» format short
2. Vecteurs et matrices
Entrer une matrice :
Les éléments d’une même ligne doivent être séparés par des espaces ou des
virgules
La liste des éléments doit être entourée de crochets
Chaque ligne sauf la dernière doit se terminer par un ‘;’
tapez
» A=[1 2 3 ;4 5 6 ;7 8 9]
A=
1 2 3
4 5 6
7 8 9
Pour un vecteur, c’est pareil. Si c’est un vecteur ligne, les éléments seront séparés par des
espaces ou des virgules ; si c’est un vecteur colonne, ils seront séparés par des ‘;’
» x=[-1.3 sqrt(3) (1+2+3)*4/5]
x=
Les éléments d’une matrice peuvent être référencés par leur indice, précisés entre deux
parenthèses
» x(1)
ans=
-1.3000
» z(2)
ans=
1.7321
» A(2,1)
ans=
4
Les éléments d’une matrice sont référencés ainsi : (ligne,colonne)
Les informations sur l’espace de travail sont obtenues par la commande who :
» who
Your variables are :
A ans j s t
x y z
Ceci montre que les exemples ont générés 7 variables. Pour connaître la taille de ces
variables, il suffit d’utiliser la commande whos
» whos
Name Size Bytes Class Attributes
A 3x3 72 double
Ans 1x1 8 double
x 1x3 24 double
Une autre manière de récupérer des informations sur les variables (length donne la longueur
d’un vecteur ligne ou colonne, size renvoie les dimensions d’un vecteur ou d’une matrice)
» length(x)
ans=
3
» size (x)
ans=
1 3
» length(z)
ans=
3
» size(A)
ans=
3 3
Pour récupérer ces données
» [m,n]=size(A)
m=
3
n=
3
Sauvegarde des variables
» save
Cette commande sauvegarde toutes les variables dans votre répertoire dans un fichier
appelé Matlab.mat
Effacez celles contenues dans le workspace par la commande suivante :
» clear all
Toutes les données sont maintenant effacées. Pour le vérifier :
» who
»
Il n’y a plus aucune variable. Pour les récupérer :
» load
Loading from: matlab.mat
» who
Your variables are :
A ans j m n s
t x y z
Il est possible de sauvegarder les données avec d’autres noms de fichier, ou bien de
sauvegarder seulement certaines variables.
» save toto A
sauvegarde la variable A dans le fichier toto.mat
» load toto
pour récupérer la variable A
» save toto2
sauve le contenu de l’espace de travail (toutes les variables) dans la variable toto2
3. Manipulations de matrice
» clear all
» A= [1 2 3 ; 4 5 6 ; 7 8 9]
A=
1 2 3
4 5 6
7 8 9
» B=A’
B=
1 4 7
2 5 8
3 6 9
’ désigne l’opération de transposition
» x= [-1 0 2]’
x=
-1
0
2
» A+x
Ans =
0 1 2
4 5 6
9 10 11
» C=A+B
C=
2 6 10
6 10 14
10 14 18
» z=x-1
z=
-2
-1
1
» x*z
??? Error using ==> *
Incorrect dimensions for matrix multiplication.
L’opération n’est pas valide: 3*1 et 3*1
» x’*z
4
Pour multiplier des vecteurs terme à terme, il faut ajouter un ‘.’ (point) à la commande
» x = [1 2 3] ;
» y = [4 5 6] ;
» z = x.* y
z=
4 10 18
autres exemples avec la division et la mise en puissance
» z = x./y
z=
0.2500 0.4000 0.5000
» x.^y
ans =
1 32 729
» x.^2
ans =
1 4 9
» 2.^x
ans =
2 4 8
Génération de vecteurs :
Pour générer des vecteurs, on peut les rentrer directement
» x= [1 2 3 4 5] ;
mais aussi de manière plus simple :
»x=[1 : 5] ou x=1:5
x=
1 2 3 4 5
Matlab affecte à x, les entiers de 1 à 5 par l’opérateur ‘:’.
» x=[1:0.2 :2]
x=
1 1.200 1.400 1.600 1.800 2
Lorsque 3 valeurs sont indiquées comme dans l’exemple ci-dessus, la deuxième valeur
indique le pas d’incrémentation. Il est de 1 par défaut (lorsque seulement deux valeurs sont
indiquées dans l’exemple précédent).
Cela est aussi possible pour les matrices :
» Z=[1 :3 ; 4 :6 ; 7 :9]
Z=
1 2 3
4 5 6
7 8 9
Cette fonction est intéressante lorsque de grandes matrices ou vecteurs sont sollicitées.
On a vu précédemment que les éléments de chaque vecteur ou matrice pouvaient être
récupérés par leurs indices. Cette fonction : a dans ce cas de figure un autre intérêt : récupérer
une suite d’éléments consécutifs en ligne ou en colonne.
» Z(1 :2,1)
nous renvoie les deux premiers éléments de la colonne 1
ans=
1
4
On peut aussi obtenir toute une ligne ou une colonne de cette façon
» Z(1, :)
ans=
1 2 3
On obtient ici, tous les éléments de la première ligne.
4. Opérateurs relationnels
6 opérateurs relationnels sont disponibles pour comparer des variables de dimension égales :
< plus petit que
> plus grand que
>= plus grand ou égal
<= plus petit ou égal
== égal
~= différent de
Par exemple
» 2+2 ~=4
ans=
0
Ici, le résultat représente la valeur faux (puisque 2+2 est bien égal à 4). Une réponse de
1 correspondrait à vrai.
» A= [1 –1 2 ;-2 –4 1 ; 8 1 –1]
A=
1 -1 2
-2 -4 1
8 1 -1
» P=(A<0)
renvoie une matrice avec 1 pour les éléments de A inférieurs à zéro, et 0 pour les
autres
P=
0 1 0
1 1 0
0 0 1
Les opérateurs & et | (et et ou) permettent de combiner des comparaisons
Par exemple
» P=(A<0) & (A>-2)
P=
0 1 0
0 0 0
0 0 1
5. Graphiques
La commande plot
» t=0 :pi/4 :2*pi ;
t décrit l’espace compris entre 0 et 2 pi, à intervalle de pi/4.
» plot (t, sin(t))
plot(x,y) permet de tracer une courbe reliant les points dont les coordonnées sont x pour les
abscisses et y pour les ordonnées. Les points sont reliés par des segments de droite; le tracé
sera plus précis si le nombre de points est plus important.
» t=0 :pi/16 :2*pi ;
» plot(t,sin(t))
On trace donc une fonction : x=f(t) pour t [0, 2 pi].
Cela peut être une courbe paramétrique comme une courbe de Lissajous
» t=0 :pi/32 :2*pi
» plot(cos(t),sin(2*t))
Jusqu’à présent, on a vu que le fait d’appeler à nouveau la commande plot, effaçait les figures
tracées. Il y a plusieurs moyens de les conserver.
Sur une autre figure :
» figure, plot(t, sin(t))
une autre fenêtre a été créée pour tracer cette nouvelle fonction.
Les figures sont identifiées par des numéros. Pour appeler la figure courante il y a la
commande gcf, sinon, la nommer : figure(2) par exemple
» figure(2), plot (t,cos(t))
Sur la même fenêtre (la 2), la fonction cos(t) a effacé la précédente.
Si maintenant on souhaite tracer deux courbes sur une même figure, on peut utiliser la
fonctions hold on
Ainsi :
» figure(2), hold on, plot(t,sin(t))
ajoute au tracé de la figure 2, la fonction sinus
» clf
C’est la fonction « clear current figure », celle-ci est alors initialisée.
» plot(t,sin(t), ’ro’)
trace une fonction sinus en rouge, et les points de la courbe sont représentés par des
ronds, non reliés entre eux.
» plot(t,sin(t),’ro’, t,cos(t),’g—’)
trace deux fonctions de couleurs et de tracé différents