Vous êtes sur la page 1sur 9

Copyright  1993-2021 G.

GUEYDAN intellitech [intelligent technologies] 1

SY10 - TP No 1 (1 séance)
Initiation à Matlab®
Automne 2021
(Pour toute information : tpsy10@intellitech.fr)

Objectifs de ces TPs :

 Acquérir les connaissances nécessaires à une informatisation d’un problème : ces


outils techniques permettront de coder informatiquement le projet pris en compte dans
l’évaluation de SY10.
 Ces tps ne sont pas notés, ni obligatoires
 Pas de compte-rendus

Attention : se placer sur le disque z pour éviter toute sauvegarde à un mauvais endroit.
Utiliser l’icône du Path Browser.

Première séance : utilisation de Matlab


Après avoir lancé Matlab, la ligne de commande apparaît comme suit :
»
Matlab est maintenant en attente d’une commande.
Chaque commande sera toujours précédée de ce signe et validée par ENTRÉE

1. Utiliser des variables numériques

 tapez
» s = 10
Matlab va assigner à une variable qu’il appellera s, la valeur 10. D’ailleurs il retourne
le message suivant : s =
10

Attention : s et S, ce n’est pas pareil (distinction entre minuscule et majuscule)


 tapez
»S
et validez par la touche ENTRÉE
Matlab retournera le message d’erreur suivant :
??? Unrecognized function or variable S

Attention : ne jamais donner de nom de variable commençant par un chiffre,


toujours par une lettre (ex : s1, s2 mais pas 2v)

 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

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 2

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.

Les opérations possibles sont les suivantes


tapez ‘help’
De nombreuses catégories existent, pour des informations sur les opérateurs :
tapez ‘help Matlab\ops’

Rmq : Pour les autres catégories, se référer aux aides de Matlab.

/ 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 :

sqrt racine carrée


log logarithme
log10 logarithme décimal
sin sinus
cos cosinus
tan tangente
exp exponentielle
abs valeur absolue

exemple :
» y=sqrt(3)/2

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 3

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

pour revenir à un format classique

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=

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 4

-1.3000 1.7321 4.8000

» z=[-1.3 ; sqrt(3) ; (1+2+3)*4/5]


z=
-1.3000
1.7321
4.8000

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)

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 5

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 =

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 6

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 ‘:’.

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 7

» 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)

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 8

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

any et all sont deux autres opérateurs utiles,


any(x, ‘all’) renvoyant 1 si au moins un des éléments de x est non nul, 0 sinon
all(x, ‘all’) renvoie 1 si tous les éléments de x sont non nuls, et 0 sinon

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

SY10 – TP 1 (Initiation à Matlab)


Copyright  1993-2021 G. GUEYDAN intellitech [intelligent technologies] 9

» clf
C’est la fonction « clear current figure », celle-ci est alors initialisée.

Les couleurs et les tracés


Pour tracer des courbes de couleurs différentes, il suffit de rajouter des commentaires
entre ‘’ à la fin de la fonction à tracer. Même chose pour le type de tracé

» 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

Symbole Couleur Symbole Type de ligne


y Jaune (par défaut) . Point
m Magenta o Rond
c Cyan x Croix
r Rouge + Plus
g Vert * Etoile
b Bleu - Trait plein (par défaut)
w Blanc : Trait pointillé
k Noir -. Trait plein-pointillé
-- Trait pointillé

Les titres et légendes


Pour rajouter des commentaires sur les courbes plusieurs fonctions existent
» xlabel(’Abscisse’)
annote l’axe des abscisses
» ylabel(’Ordonnée’)
annote l’axe des ordonnées
» title(’Essai de Figure’)
affiche un titre à la figure courante
» legend (’sinus’,’cosinus’)
affiche une légende (dans le coin droit en haut par défaut)

Le contrôle des axes


» axis equal
permet de fixer l’axe des abscisses et des ordonnées (même échelle pour les deux
axes)
» axis auto
laisse Matlab fixer les abscisses et les ordonnées en mode automatique

Pour avoir de l’aide sur une fonction


» help plot
» help format
affichera tout ce qui concerne les fonctions plot et format.

SY10 – TP 1 (Initiation à Matlab)

Vous aimerez peut-être aussi