0% ont trouvé ce document utile (0 vote)
20 vues39 pages

Cours Matlab

Ce document est un cours d'initiation au logiciel MATLAB, abordant les concepts de base tels que le démarrage, les commandes fondamentales, et l'utilisation des matrices et vecteurs. Il présente également des opérations arithmétiques, la gestion des fichiers, et les chaînes de caractères. Le cours est destiné aux étudiants du Département de mathématiques de l'Université de Thiès pour l'année académique 2014-2015.

Transféré par

Abdoul Sy
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues39 pages

Cours Matlab

Ce document est un cours d'initiation au logiciel MATLAB, abordant les concepts de base tels que le démarrage, les commandes fondamentales, et l'utilisation des matrices et vecteurs. Il présente également des opérations arithmétiques, la gestion des fichiers, et les chaînes de caractères. Le cours est destiné aux étudiants du Département de mathématiques de l'Université de Thiès pour l'année académique 2014-2015.

Transféré par

Abdoul Sy
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

COURS D'INITIATION AU LOGICIEL MATLAB

E. DIOP

Département de mathématiques, UFR Sciences et Technologies

Université de Thiès, Thiès, Sénégal

Année académique 2014-2015

1
Introduction à MATLAB
MAT LAB

MATrix LABoratory

Données numériques.

Matlab ne permet pas les calculs formels sauf exception.

Obligation d’affecter une valeur numérique à toutes les


variables. 1

Démarrage
Démarrage :: apparition
apparition de
dela
lafenêtre
fenêtrede
decommande
commande

Indication du Sélection du
répertoire répertoire
courant

Espace
mémoire

Fenêtre de commande
Historique
des
commandes 2

1
Commandes
Commandesde
debase
base

Intro : lance une introduction à MATLAB

Demo : programme de démonstration

helpwin : fenêtre d’aide en ligne donnant


une liste des fonctions par thème

helpdesk : aide HTML plus détaillée (nécessite netscape ou autre)

cd : indique le répertoire de travail courant

dir : indique ce que contient le répertoire de travail courant

who : indique la liste des variables dans le workspace

quit : quitter MATLAB


3

Aide
Aidedans
dansMATLAB
MATLAB::helpwin
helpwin

Fenêtre d’aide en ligne

Sélection
du thème

2
Aide
Aidedans
dansMATLAB
MATLAB::help
help

La commande HELP Fournit de l’aide sur une commande ou une fonction


(en particulier, cela donne la syntaxe de la fonction)

» help eye
EYE Identity matrix.
EYE(N) is the N-by-N identity matrix.
EYE(M,N) or EYE([M,N]) is an M-by-N matrix with 1's on the diagonal
and zeros elsewhere.
EYE(SIZE(A)) is the same size as A.
See also ONES, ZEROS, RAND, RANDN.
»

La commande LOOKFOR (lente !)


» lookfor identity
Fournit la liste des fonctions ou commandes EYE Identity matrix.
contenant le mot-clé spécifié dans la SPEYE Sparse identity matrix.
première ligne de leur texte d’aide » 5

Utilisation
Utilisationde
deMATLAB
MATLAB::deux
deuxpossibilités
possibilités

Fenêtre de commande

A utiliser pour des calculs nécessitant peu d’instructions


6

3
Fenêtre de l’éditeur de programme
Permet d’écrire un programme entier, de le sauvegarder
puis de le faire exécuter.
Création d’un fichier [Link]

Puis sauvegarder le fichier (ex: nom-fichier.m)


dans le REPERTOIRE DE TRAVAIL. 7

Impératif : Indiquez le répertoire de travail dans lequel les


programmes ont été sauvegardés.

Procédure : Sélectionnez le répertoire courant

4
Exécution d’un fichier [Link]

Il suffit de taper le nom


du fichier (sans l’extension.m)
sur la fenêtre de commande

Type
Type de
de données
données

Type Matrice Scalaire = Matrice carrée d’ordre 1


Vecteur = Matrice ligne ou colonne
Matrice = Matrice (n,m)

Remarque : Pas de déclaration de type


On peut modifier la dimension d’une variable
au cours d’un programme
Attention : MATLAB fait la distinction
entre minuscule et majuscule
10

5
Type
Type de
de données
données

Constantes pré-définies :

pi 3.14159265358979

Inf infini

eps (précision de 2.2204 10-16


calcul)
NaN (Not a Number)

i ou j Imaginaire pur
11

Actions
Actions élémentaires
élémentaires

>> x = 3
Affectation d’une valeur x=
3
>>

Si la ligne de commande est suivie d’un point >> y = 5;


virgule, la confirmation n’est pas affichée. >>

Liste des variables : WHO >> who


Your variables are:
x y
>>

12

6
Actions
Actions élémentaires
élémentaires

CLEAR >> clear x


>> who
Si on veut effacer une variable, on utilise la Your variables are:
commande clear suivie du nom de la variable. y
>>
Si on veut effacer toutes les variables

>> clear all


>> x
??? Undefined function or variable 'x'.
>>

Les commentaires
Une ligne précédée d’un symbole % sera considérée comme commentaire
13
et ne sera pas exécutée.

7
Chapitre 2 :
Scalaires, Vecteurs et Matrices

Opérations arithmétiques

Respect des priorités usuelles des opérations {+,-,*,/)


(associativité, commutativité ,…)

Existence d’une division à gauche : A\B.


B est divisé par A.

Elévation à une puissance : symbole ^


Exemple : » 3^4
Ans =
81
» 9^(1/2)
Ans =
3 2

1
VECTEURS

Saisie d’un vecteur


» y = [4; 5; 6;]
» x = [1 2 3] y=
Vecteur x= Vecteur 4
ligne 123 colonne 5
6

Construction d’un vecteur à partir d’un autre

»w = [x 4 5] »z = [3; y; 7;]
w= w=
12345 3
4
5
6
7 3

Construction d’un vecteur

On connaît la valeur initiale, la valeur finale et le pas

X = [ Vinitiale : Pas : Vfinale ]

»x = [0:2:8]
x=
02468

On peut omettre le pas. Il est égal à 1 par défaut.

On peut omettre les crochets.

2
Construction d’un vecteur

On connaît la valeur initiale, la valeur finale et le


nombre de points
X = linspace( Vinitiale, Vfinale, nbpoints)

»x = linspace (0,8,5)
x=
02468

On peut omettre le nombre de points.


Il est égal à 100 par défaut.

X = logspace( debut, fin, nbpoints)


-> Valeurs entre 10debut et 10fin
5

Taille d’un vecteur


»x = [0:2:8];
»size(x)
Ans =
Size(x) donne les dimensions de la variable x. 15
»length(x)
length(x) donne la longueur de la variable x. Ans =
5

Transposé d’un vecteur Récupération d’une composante


Soit le vecteur x = [8 0 5]
»x = [0:2:4];
»y = x’ x (1) = 8
Ans =
0 x ([1 3]) = 8 5
2
4
Les indices d’un tableau
commencent à 1 6

3
Opérations sur les vecteurs

Avec un scalaire : addition, soustraction,


multiplication, division.

L’addition et la soustraction de vecteurs de mêmes


dimensions se font élément par élément.

»x = [1 2 3]; »x + y
»y = [0 2 2]; Ans =
145

Le produit d’un vecteur colonne de taille n par un vecteur


Ligne de taille m donne une matrice (n,m).
» x'*y
»x = [1 2 3];
»y = [0 2 2]; ans =
0 2 2
0 4 4
0 6 6

En précédant d’un point les opérateurs, les calculs se


font élément par élément
» x.*y
»x = [1 2 3]; ans =
»y = [0 2 2];
0 4 6
8

4
Fonctions particulières

sum(x) : Somme des composantes du vecteur

prod(x) : Produit des composantes du vecteur

sqrt(x) : Racine carrée des composantes du vecteur

mean(x) : Moyenne des composantes du vecteur

log(x) : Logarithme népérien des composantes du vecteur

sin(x) : Sinus des composantes du vecteur

exp(x) : Exponentielle des composantes du vecteur 9

MATRICES

Saisie d’une matrice


»w = [0 1 2
»w = [0 1 2; 3 4 5] 3 4 5]
w= ou w=
012 012
345 345

Taille d’une matrice

»size(w) On peut aussi écrire :


Ans = [m,n] = Size(w)
23 m : nombre de ligne
n : nombre de colonne

10

5
Extraction d’un élément de matrice

»w = [0 1 2; 3 4 5] Élément de la 2éme ligne et


w= de la 1ère colonne
012
345 W(2,1) = 3

Extraction d’une partie de matrice (colonne ou ligne)

Première ligne : L1 = W(1,:)


Indique que l’on
prend toutes les
Seconde colonne : C2 = W(:,2) colonnes

11

Opérations arithmétiques

L’addition et la soustraction de matrices de mêmes


dimensions se font élément par élément.

La multiplication

A*B = a1 a2 * b1 b2 = a1b1+a2b3 a1b2+a2b4


a3 a4 b3 b4 a3b1+a4b3 a3b2+a4b4

A.*B = a1b1 a2b2


a3b3 a4b4

La division
A/B correspond au calcul A*B-1
12

6
Passage d’une matrice à un vecteur

»w = [0 1 2; 3 4 5] Vecteur colonne
w=
012 v = W(:) ;
345

Matrices particulières

»M = 100
Matrice identité M = eye (3) ; 010
001

Matrice nulle M = zeros (2,3) ; »M = 000


000

13

Matrices particulières

»M = 111
Matrice unité M = ones (2,3) ; 111

Matrice aléatoire M = rand (2,2) ; »M = 0.45 0.82


0.01 0.44

Fonctions particulières

sum(M) ou sum(M,1) : Somme des éléments des colonnes de la matrice

sum(M,2) : Somme des éléments des lignes de la matrice

Idem pour les fonctions prod(M) et mean (M), produit et moyenne.

14

7
Fonctions particulières

Sqrt(M) : racine carrée des éléments de la matrice

det(M) : déterminant de la matrice

inv(M) : inverse de la matrice

15

NOMBRES COMPLEXES

L’imaginaire pur est noté i ou j.

» z = 4+3j
Ecriture d’un nombre complexe z=
4.0000 + 3.0000i

Conjugué d’un nombre complexe » x = conj(z)


x=
4.0000 - 3.0000i

Parties réelle et imaginaire » a = real(z) » b = imag(z)


d’un nombre complexe a= b=
4 3
16

8
Module d’un nombre complexe » r = abs(z)
r=
5
r = abs (z) ;

Argument d’un nombre complexe » theta = angle(z)


theta =
theta = angle (z) ; 0.6435

L’argument est donné en radians.


17

9
Chapitre 3 :
Chaînes de caractère

Saisie d’une chaîne de caractère

>> s= ‘ bonjour '


S = ‘ expression ’ ; s=
bonjour

Les caractères sont mémorisés dans des vecteurs par


des codes allant de 0 à 255. Parmi eux, on peut
distinguer :
•Les caractères de contrôles (de 0 à 31 et 127)
•Les numériques
•Les alphabétiques (a, b, .. et A, B, ..)
•Les spéciaux (&, $, %, ..)

1
Conversion de chaîne à code ASCII
>> r = double('ABC')
r = double( ‘ A ’ ) ; r=
65 66 67

Conversion de code ASCII à chaîne

r = char ( [65 66 67] ) ; >> r=char([65 66 67])


r=
ABC

r = char(65) est équivalent à r = ‘ A ’ ;

Conversion de nombre en chaîne


>> r = num2str(2)
r = num2str( 2 ) ; r=2
>> isstr(r)
ans =1

Conversion d’une chaîne en nombre

>> r = str2num('2')
r = str2num( ‘2’ ) ; r=2
>> isstr(r)
ans =0

2
Comparaison entre chaînes

ind = strcmp ( s1,s2 ) ; Égal à 0 si différent

Affichage de chaînes sur la table de commande

disp(‘message’); ou disp([‘phrase1’,’phrase2’]);

>> disp(['la valeur de z est :',num2str(z),' mètres'])

la valeur de z est :3 mètres


5

3
Chapitre 4
Sauvegarde de données
Ouverture de fichiers

Sauvegarde de fichiers de données ou fichiers MAT

save
Exemple
» t = [1 2 3]
On définit une variable t t=
123

On veut la sauvegarder dans un fichier [Link]

Save nom-fichier variable » save vart t

On peut effacer toutes les variables de la mémoire

Clear all »t
??? Undefined function or variable t

1
Chargement de fichiers de données ou fichiers MAT

load

Si on désire rappeler la variable t » load vart

load nom-fichier

Conséquence : la variable est, de nouveau, connue.


»t
t=
123
S’il existe plusieurs variables

Clear variable » t = [1 2 3]; x = 1; y = 2*x;


» clear t x

Ouverture ou création de fichiers

f=fopen('[Link]','w') Création d’un fichier

Ouverture en écriture

f=fopen('[Link]',‘r+') Ouverture d’un fichier


existant
Ouverture en lecture et écriture

Lecture et écriture dans des fichiers

n=fwrite(f,a,’type’)
Type = char, int8,
n=fread(f,a,’type’) double, …

2
Fermeture de fichiers

v=fclose(f);

Exemple : création d’un fichier contenant un vecteur


>> b
>> a=1:10; b =1
>> f=fopen('[Link]','w'); 2
>> nb=fwrite(f,a) 3
4
nb =10 5
>> v=fclose(f); 6
>> f=fopen('[Link]','r'); 7
>> b=fread(f) 8
>> v=fclose(f); 9
10

Lecture de variables dans un fichier

s = fscanf(f,’format’, taille);
Cette commande permet de lire la ligne courante du fichier f, dans
un format pré-défini (chaine de caractère, entier, …).

Si une taille est indiquée, cela donne le nombre d’éléments qui


seront lus.
%f nombre décimal (float)
Exemples
de format : %d entier

%s chaîne de caractère

%10.5f nombre pouvant avoir 10 chiffres avant la virgule


et 5 chiffres après

Remarque : la commande fgetl permet de passer une ligne dans la lecture


du fichier.

3
Chapitre 5 :
Graphes 2D et 3D

Graphes à deux dimensions

La fonction plot
Elle permet de tracer des graphiques xy.
Plot(x,y) trace y en fonction de x,
x et y étant de mêmes dimensions.

Création automatique de figure.


Si une figure existe déjà, elle trace le graphe
sur cette figure.

Pour créer une autre figure, utiliser la fonction


Figure.

1
Exemple de programmation

X = -pi : 0.1 : pi ; Création de la fonction à calculer


Y = sin(X);

plot(X,Y) Tracé de la fonction

grid Mise en place d’un quadrillage

xlabel (‘ angle’) Légende de l’axe x

ylabel (‘ sin(x) ‘) Légende de l’axe y

title (‘ y = f(x) ’) Titre de la figure


3

Résultat de la programmation

y=f(x)
1

0.8

0.6

0.4

0.2
sin(x)

-0.2

-0.4

-0.6

-0.8

-1
-4 -3 -2 -1 0 1 2 3 4
angle

2
Pour tracer deux courbes sur la même figure

Utilisation de la fonction hold on Plot(x,y,’style1’)


Hold on
Plot(x,-y,’style2’)
Style de représentation : chaîne de trois caractères
couleurs symboles Tracés continus
y jaune . Point - trait continu
m magenta ° cercle : pointillés
c cyan x croix -. trait-point
r rouge + plus -- trait-trait
g vert * étoiles
b bleu d diamants
w blanc p pentagramme
k noir < triangle 5

Exemple

y=f(x) et z=-f(x)
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-4 -3 -2 -1 0 1 2 3 4
angle

3
Pour tracer deux courbes dans la même fenêtre

y=f(x)
1
Utilisation de la fonction subplot
0.5

-0.5 Subplot(m,n,p)
-1
-4 -2 0 2 4
z = - f(x)
1

0.5 Découpe la fenêtre graphique en


0
m lignes et n colonnes et trace la
-0.5
courbe dans la case n°p.
-1
-4 -2 0 2 4

Pour fermer les fenêtres graphiques Close all7

Graphes à trois
dimensions

Courbes 3D Plot3(x,y,z)
Hélice circulaire

t = -3*pi:pi/10:3*pi ; 20

x = 4*sin(t) ; 10

y =4*cos(t) ; 0
z

z =2*t ; -10

plot3(x,y,z) -20
4
2 4
0 2
0
-2
-2
y -4 -4
x

4
Surfaces mesh(X,Y,Z) ou surf(X,Y,Z)

Exemple d’une parabole de type : z = x2 + y2.

x = -10:0.8:10; Création des vecteurs x et y.


y = x;
Création de deux matrices X
[X,Y]=meshgrid(x,y); et Y qui définissent le
domaine de calcul de Z.

Z = X.^2 + Y.^2; Calcul de Z.

mesh(X,Y,Z) Représentation en « fil de


fer » de la surface
9

10

5
Autres fonctions : meshc, meshz, surf, surfc et surfl.
contour3(X,Y,Z) ou contour(X,Y,Z)

11

Volumes [x,y,z]=cylinder(R,n)

R : variation du rayon
N : nombre de points sur la
circonférence pour un rayon donné.
Exemple
t = -2*pi:pi/10:2*pi ; Courbe génératrice de
r = sin(t).*exp(-0.1*t)+2 ; la surface de révolution.

[x,y,z]=cylinder(r,20); Calcul des coordonnées des


points de la surface

surf(x,y,z)
Tracé du
volume
12

6
13

Fonctions particulières
zoom

colorbar : apparition de la palette de couleurs.

On peut changer le style de la palette de couleur.


Il existe : hsv, gray, hot, cool, copper, pink.
La commande est : colormap(cool).

14

7
rotation

15

8
Chapitre 6
Instructions : For, While et IF

La boucle FOR
Syntaxe

For compteur = début : pas : fin


Instructions
end

Exemple
% tableau des carrés des n premiers entiers
naturels
N=10 ;
X=[];
for i = 1:N
X=[X i^2]; »x =
end 1 4 9 16 25 36 49 64 41
100

1
La boucle WHILE
Syntaxe

while conditions
Instructions
end

Exemple
% valeur de n, le plus petit entier tel que
n^2<x
n=0 ;
X=15;
while n^2 < X
n = n+1 ;
»n =
end
4

Opérateurs relationnels et logiques

< Inférieur à
> Supérieur à
<= Inférieur ou égal
à
Opérateurs relationnels
>= Supérieur ou
égal à
== Égal à
~= Différent de

& et
Opérateurs logiques | ou
~ non

2
L’instruction IF
Syntaxe

if conditions if conditions
Instructions Instructions
else elseif conditions
Instructions Instructions
end Else
Instructions
end

Exemple

n = input(‘entrer un nombre entier :’)

if rem(n,2) = = 0
disp(‘nombre pair’)
else
disp(‘nombre impair’)
end

Fonctions particulières
input
Variable = input(‘message’) Valeur numérique
Chaîne = input(‘message’,‘s’) Chaîne de
caractère

3
Fonctions particulières

disp
disp(‘message’) Affiche sur la fenêtre de
commande le message

disp([‘phrase1’,’phrase2’])

pause Fait une pause dans un


programme.
Pour poursuivre le calcul, il faut
appuyer sur une touche du clavier.

num2str Fonction qui convertit une donnée


numérique en chaîne de caractère

Exemple Soit x = 2, le résultat d’un calcul que l’on


désire afficher.

» x=2;
» disp([ 'la valeur de x est :‘ , x ])
la valeur de x est :
» disp(['la valeur de x est :‘ , num2str(x) ])
la valeur de x est :2
»

str2num Fonction qui convertit une chaîne de


caractère en donnée numérique

4
L’instruction switch

Syntaxe Avec une valeur numérique

switch variable
case valeur 1
Instructions
case valeur 2
Instructions
case {valeur 3, valeur 4}
Instructions
otherwise
Instructions
end

L’instruction switch

Syntaxe Avec une chaîne de caractère

switch chaine
case ‘expression 1’
Instructions
case ‘expression 2’
Instructions
case {‘expression 3’, ‘expression 4’}
Instructions
otherwise
Instructions
end

5
Chapitre 7
Scripts et fonctions

Script (syntaxe : fichier.m)


Contient des suites d’instructions qui seront exécutées
une à une
exemple

% ceci est un exemple de Mfile


X= 0 : 10;
Y=randn(1,10); Le programme est
Z=2*Y; exécuté et les deux
Plot(X,Y) courbes sont tracées
Figure
Plot(X,Z)

1
fonction Sous-programme contenant des variables locales

La première ligne commence toujours par :

Function [s1,s2] = nomfonction(e1,e2,e3)

Paramètres de sortie Paramètres d’entrée

Si un calcul est répété souvent au cours d’un


programme, on crée une fonction qui a, pour
paramètre de sortie, le résultat escompté.

Les fichiers de fonctions sont stockés sous un


nom identique à celui de la fonction. 3

Exemple :

Function y = eff (x)


% pour un vecteur, eff(x) donne la valeur efficace
% pour un matrice, eff(x) donne un vecteur contenant
% la valeur efficace de chaque colonne

[m,n]=size(x)
if m = =1
m=n;
end
y=sqrt(sum(x.*x)/m) ;

2
Si on appelle cette fonction dans un autre programme :

Vecteur1 = 5*randn(1,10);
Vecteur2= 2*randn(1,10);

% calcul de la valeur efficace


valeff1= eff (vecteur1) ;
valeff2 = eff( vecteur2) ;

Si des variables intermédiaires sont utilisées dans


la fonction, elles seront inconnues dans la table de
commande.

Ce sont des variables locales.

Vous aimerez peut-être aussi