Telechargé par sam Nael

1-Initiation à MATLAB

publicité
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
Initiation à MATLAB
MKHANNAT Mohamed
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
1/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
Partie 1:
1.
2.
3.
4.
Introduction
Notions de base de MATLAB
Vecteurs
Matrices
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
2/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
1-Introduction
Matlab est une abreviation de MATrix LABoratory) Développé par la société The MathWorks.
MATLAB permet de manipuler des matrices, d'afficher des courbes et des données, de mettre en œuvre
des algorithmes, de créer des interfaces utilisateurs…,
MATLAB est conforté par des boîtes à outils (Toolboxes) spécifiques à des domaines variés
Programmation graphique offertes par SIMULINK.
Matlab possede l’outil GUIDE avec laquel on peut concevoir des interfaces graphiques
MATLAB utilise son propre langage de programmation.
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
3/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
2-Notions de base de MATLAB
2.1.Lancement de MATLAB
Historique des
commandes
Liste des
fichiers
Fenêtre de commandes de MATLAB
Variables
utilisées
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
4/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
2.2.Commandes utilles
Il existe deux techniques pour afficher les variables en mémoire : soit dans l’onglet
Workspace, soit par les commandes who et whos.
>>who
%permet d’afficher toutes les variables
>>whos
% permet d’afficher toutes les variables avec leurs taille
>>clear var
%pour effacer la variable var.
>>clear (ou >> clear all)
%pour effacer toutes les variables.
>>clc
% pour effacer la fenêtre de commande
Matlab offre une aide en ligne très complète. Tapez:
>> help commande
%pour une explication de l’utilisation de la commande
Matlab commande
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
5/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
2.3.Quelques fonctions trigonométriques :
En MATLAB
fonction
En MATLAB
sin
Sinus
sec
sinh
Sinus hyperbolique
sech
Sécante hyperbolique
asin
Arcsinus
asec
Arcsécante
asinh
Arcsinus hyperbolique
asech
Arcsécante hyperbolique
cos
Cosinus
csc
Cosécante
cosh
Cosinus hyperbolique
csch
Cosécante hyperbolique
acos
Arcosinus
acsc
Arcosécante
tan
Tangente
acsch
Inverse hyperbolic
cosecant.
tanh
Tangent hyperbolique
cot
Cotangente
atan
Arctangente
coth
Cotangente hyperbolique
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
fonction
Sécante
6/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
2.4.Arrondi et reste
Commandes en MATLAB
Signification
fix
Arrondit vers zéro
floor
Arrondit vers moins l'infini
ceil
Arrondit vers plus l'infini
round
Arrondit à l'entier le plus près
rem
Reste de la division.
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
7/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
Exemple:
»fix(5.76)
ans =
5
»fix(-5.76)
%Arrondit vers zéro
%Arrondit vers zéro
ans =
-5
»floor(5.76)
ans =
5
»floor(-5.76)
ans =
-6
»ceil(5.76)
ans =
6
»ceil(-5.76)
ans =
-5
%Arrondit vers moins l'infini
%Arrondit vers moins l'infini
%Arrondit vers plus l'infini
»round(5.76)
ans =
6
»round(-5.76)
ans =
ans =
-6
»rem(9,2)
ans =
1
»rem(-7,2)
%Arrondit à l'entier le plus près
%Arrondit à l'entier le plus près
%Reste de la division.
%Reste de la division.
ans =
-1
%Arrondit vers plus l'infini
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
8/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
2.5.Nombres complexes
Commande sous MATLAB
signification
abs
Valeur absolue ou module
angle
Angle de phase
conj
Conjugué d’un complexe
imag
Partie imaginaire
real
Partie réelle
>> z=3+sqrt(-12)
z=
3 + 3.4641i
>> abs(z)
ans =
4.5826
>> angle(z)
ans =
0.85707
>> real(z)
ans =
3
>> imag(z)
ans =
3.4641
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
9/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
2.6.Opérations arithmétiques de base dans MATLAB
Symboles
opérations
Formes en MATLAB
^
*
a^b
Multiplication : ab
a*b
/
a/b
\
a\b
+
Addition : a+b
a+b
-
Soustraction : a-b
a-b
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
10/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
2.7.Quelques fonctions usuelles
exp
log
log10
log2
sqrt
>> exp(5)
ans =
148.41
>> log(3)
ans =
1.0986
MKHANNAT Mohamed
Exponentielle
Logarithme népérien (base e)
Logarithme à base 10
Logarithme à base 2
Racine carrée
>> log10(2)
ans =
0.30103
Leçon #01 Introduction à MATLAB
>> sqrt(44)
ans =
6.6332
11/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3-Vecteurs
3.1.Introduction
Un vecteur est un tableau à une dimension dont les entrées sont séparées soit par une
virgule soit par un espace.
On a deux sortes de vecteurs : vecteur ligne et et vecteur colonne.
3.2.Création de vecteurs
>> V=[21 1 0 3] % vecteur ligne
V=
21 1 0 3
V=[21 , 1 ,0 ,3] % vecteur ligne
V=
21
1
0
>> Vcol=[21 ; 1 ;0 ;3]
Vcol =
21
1
0
3
% vecteur colonne
3
Pour transformer une vecteur ligne en vecteur colonne ou vice versa
,on utilise la transposée du vecteur en utilisant le vecteur suivi de
l’apostrophe (‘)
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
>> V'
ans =
21
1
0
3
12/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.2.Création de vecteurs - (suite)
Remarque : si l’on omet n , le pas sera égale à 1
Exemple
>> A=linspace(3,12,5)
A=
3
5.25
MKHANNAT Mohamed
7.5
9.75
12
Leçon #01 Introduction à MATLAB
13/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.2.Création de vecteurs - (suite)
L’operateur(:) permet de créer un vecteur dont les données sont régulièrement espacées.
>>x=a:p:b % crée un vecteur de données espace d’un pas p ; dont le premier
élément est a et le dernier élément inferieure ou égal à b
Si l’on omet le pas p ,dans ce cas le pas sera égal à 1
Exemple
>> B=0:5:20
B=
0 5 10
>> C=0:5:19
C=
0 5 10
15
15
MKHANNAT Mohamed
20
>> K=4:-2:0
K=
4 2 0
>> D=14:18
D=
14 15 16
Leçon #01 Introduction à MATLAB
17
18
14/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.2.Création de vecteurs - (suite)
Les fonctions suivantes Matlab génerent des vecteurs contenant des zeros et des uns
>>zeros(m,1) retourne un vecteur colonne de m zéros
>>zeros(1,n) retourne un vecteur ligne de n zéros
>>ones(m,1) retourne un vecteur colonne de m uns
>>ones(1,n) retourne un vecteur ligne de n uns
Exemple
>> x=zeros(1,4)
x=
0 0 0 0
MKHANNAT Mohamed
>> y=ones(3,1)
y=
1
1
1
Leçon #01 Introduction à MATLAB
15/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.2.Création de vecteurs - (suite)
Concaténation de vecteurs
>> M=[2 4 3] , K=[8 0 1]
M=
2 4 3
K=
8 0 1
>> V=[M K]
V=
2 4 3
8
0
1
>> W=[M;K]
W=
2 4 3
8 0 1
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
16/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.3.Quelques fonctions utiles
length (v) % taille du vecteur v
>> A=[1 2 4 ] , B=[4 7 9]
A=
1 2 4
B=
4 7 9
>> K=4:-2:0
K=
4 2 0
>> length(K)
ans =
3
>> cross(A,B)
ans =
-10 7 -1
norm(v) % norme du vecteur v
>> norm(K)
ans =
4.4721
sum(V) : somme les composantes d’un vecteur V
>> sum(K)
ans =
6
MKHANNAT Mohamed
>> dot(A,B)
ans =
% product vectoriel
%produit scalaire
54
Leçon #01 Introduction à MATLAB
17/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.4.Indexation
Le premier indice d’un vecteur est égal 1
On peut afficher et modifier un e valeur d’un vecteur en utlisant l’indexation.
V(i)
%permet d’afficher le i éme élment du vecteur V
V(i)=3 %permet de modifier le i éme élment du vecteur V et le remplacer par la valeur 3
>> M=2:4:18
M=
2 6 10
14
>> M(3)=122
M=
2
6 122
>> M(4)
18
% Modifier une valeur la troisième entrée
14
18
% Afficher la valeur de la quatrième entrée
ans =
14
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
18/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.5.Opérations sur les vecteurs
>> M=[2 4 3] , K=[8 0 1]
M=
2 4 3
K=
8 0 1
>> S=M+K
S=
10 4 4
% Somme de deux vecteurs se fait élément par élément
>> L=M-K
L=
-6 4 2
% la soustraction de deux vecteurs se fait élément par élément
>> 5+K
ans =
13
% l'addition d'un scalaire à un vecteur revient à ajouter ce scalaire à tous les
entrées de ce vecteur
5
6
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
19/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.5.Opérations sur les vecteurs – (suite)
>> K-4
% la soustraction d'un scalaire à un vecteur revient à soustraire ce scalaire à
tous les entrées de ce vecteur
ans =
4 -4
>> 4*K
ans =
32
-3
% la multiplication ou division dun vecteur par un scalire est réalisée sur
tous les entrées de ce vecteur
0
>> K/7
ans =
1.1429
4
0
MKHANNAT Mohamed
0.14286
Leçon #01 Introduction à MATLAB
20/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
3.5.Opérations sur les vecteurs – (suite)
En précédant d’un point les operateurs *, / , \ ,et ^ en effectue dans ce
cas ces opérations élément par élément
>> K.*L % produit élément par élément
ans =
-48 0 2
>> K./L
% division élément par élément
ans =
-1.3333
0
0.5
>> L.\K
ans =
-1.3333
>> K
K=
8
0
0
0.5
1
>> K.^2 % élever chaque composante de vecteur K au carré
ans =
64 0 1
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
21/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.6.Elimination des entrées d’un vecteur
Pur supprimer un ou plusieurs éléments d’un vecteur , il faut utiliser la
formule suivante:
>>M(i)=[] %on indique l’indexe , i dans notre cas,de l’élément
puis on met des crochets au deuxieme membre de l’affectation
>>M([i,j,k,….]=[] % on elimine une serie d’éléments
Exemple:
>> M=[1 3 2 5 7 9 21]
M=
1 3 2 5 7
9
21
>> M(2)=[] % supprime le deuxième élément
M=
1 2 5 7 9 21
>> M([1,2,5])=[] % supprime une suite d’éléments ;le premier,le deuxieme et
le troisième élément
M=
2 5 9 21
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
22/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4 - MATRICES
4.1.Introduction
Une matrice est un tabeau à 2 dimensions.et un vecteur est une matrice
à une ligne ou à une colonne
4.2.Saisie d’une matrice
Les ligne sont separé par un point virgule ;
>> M=[1 3 4;6 5 9;0 1 5]
M=
1 3 4
6 5 9
0 1 5
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
23/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.3.Fonctions de manipulation des matrices
Soit M une matrice
>>size(M)
>>diag(M)
>>det(M)
>>inv(M)
% donne la dimension de M
% si M est une matrice carrée ,il retourne un vecteur à
partir de la diagonale de M
% si M est carrée , retourne le déterminant de M
% retourne l’inverse de M
>> M=[1 3 2 ;9 7 6;2 1 9;1 2 8]
M=
1
9
2
1
3
7
1
2
2
6
9
8
MKHANNAT Mohamed
>> inv(M) %on aura un message d’erreur car M n’est pas
carrée
??? Error using ==> inv
Matrix must be square.
Leçon #01 Introduction à MATLAB
24/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.4.Opérations sur les matrices
4.4.1.Addition et soustraction de deux matrice:
Il faut que les deux matrices aient la même dimension
>> A=[1 3 2 ;9 7 6;2 1 9] ,B=[2 1 4;2 9 1;4 9 8]
A=
1 3 2
9 7 6
2 1 9
B=
2 1 4
2 9 1
4 9 8
>> size(A) , size(B)
ans =
3 3
ans =
3 3
>> A+B
ans =
3 4 6
11 16 7
6 10 17
4.4.2.Addition ou soustraction d’un matrice avec un scalaire :
ceci ajoute resp.retranche le scalaire à chaque élément du matriceeffectue l’operation
telle que chaque élément .
>> A+3 %ajoute 3 à chaque élement de A
ans =
4 6 5
12 10 9
5 4 12
MKHANNAT Mohamed
>> A*2 %multiplie chaque élement par 2
ans =
2 6 4
18 14 12
4 2 18
Leçon #01 Introduction à MATLAB
25/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.4.Opérations sur les matrices – (suite)
4.4.3.Produit de matrices :
Si deux matrices A et B sont compatibles ,c’est-à-dire le nombre
de colonnes de A est égale au nombre de lignes de Alors dans ce
cas on peut faire le produit de de A par B ,noté A*B
>> A=[1 3 2 ;9 7 6;2 1 9] , B=[2 1; 4 2 ;9 1]
A=
1 3 2
>> A*B
9 7 6
ans =
2 1 9
32 9
100 29
B=
89 13
2 1
4
9
2
1
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
26/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.4.Opérations sur les matrices – (suite)
En précedant d’un point les operateurs *, / , \ ,et ^ en effectue dans ce cas ces
operations élement par élement des matrices à conditions qu’elles aient même taille
>> K=[1 3 2 ;9 7 6;2 1 9] ,L=[2 3 1;1 4 2 ;9 2 1]
K=
1 3 2
9 7 6
2 1 9
L=
2
1
9
3
4
2
>> K.*L
ans =
2 9
9 28
18 2
>> K./L
ans =
0.5
9
0.22222
1
2
1
1
1.75
0.5
2
3
9
2
12
9
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
27/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.5.Matrices particulieres
>>eye(m,n)
%matrice identité de dimension m x n
>>ones(m,n) % matrice constituée de 1 de dimension m x n
>>zeros(m,n) %matrice nulle de dimension m x n
>>rand(m,n) %matrice à éléments aléatoires de dimension m x n
exemple
Si m=n on note simplement eye(m) , ones(m) ,zeros(m) et
rend(m)
>> I=eye(3,3)
I=
1 0 0
0 1 0
0 0 1
MKHANNAT Mohamed
>> M=ones(2,3)
M
=
1 1 1
1 1 1
>> Z=zeros(2)
Z=
0 0
0 0
Leçon #01 Introduction à MATLAB
>> R=rand(2,2)
R=
0.95751
0.15761
0.96489
0.97059
28/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.6.Indexation
Soit M une matrice de dimension m x n
M((i,j) est l’élément qui se trouve dans la i éme ligne et la j éme colonne
>>M=[1 2 3;4 5 6;7 8 9]
M=
1 2 3
4 5 6
7 8 9
>> M(4)
ans =
>> M(1)
2
ans =
>> M(2,2)
1
ans =
>> M(2)
5
ans =
4
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
29/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.6.Indexation plus générale
On peut extraire plusieurs élément en utilisant des vecteur au lieu des index i et j
M(v1,v2)
avec v1 et v2 deux vecteurs
>> M=[1 2 3 ; 4 5 6 ; 7 8 9]
M=
1 2 3
4 5 6
7 8 9
>> v1=[1,2]; v2=[2,3];
>> M(v1,v2)
ans =
2 3
5 6
>> M(1:2,2:3)
ans =
2 3
5 6
: indique qu’il s’agit d’abreviation d’une ligne ou d’une colonne
>> M(1,:)
ans =
1 2
3
MKHANNAT Mohamed
>> M(:,3)
ans =
3
6
9
>> M(1:2,2:3)=eye(2)
M=
1 1 0
4 0 1
7 8 9
Leçon #01 Introduction à MATLAB
30/34
IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR
4.7.Suppression des entrées d’une matrice
Pour supprimer des éléments d’une matrices on utilise les crochets []
>> M=[1 2 3 ; 4 5 6 ; 7 8 9]
M=
1 2 3
4 5 6
7 8 9
>> M(:,2)=[]
M=
1 3
4 6
7 9
% suppression de la 2ieme colonne
MKHANNAT Mohamed
Leçon #01 Introduction à MATLAB
31/34
Téléchargement