0% ont trouvé ce document utile (0 vote)
5 vues12 pages

Cours Mat Lab

Le document présente une initiation à MATLAB, un logiciel de calcul numérique et de visualisation de données, en détaillant ses fonctionnalités, commandes et applications dans divers domaines. Il couvre des sujets tels que la manipulation de matrices et de vecteurs, les opérations mathématiques, et la programmation avec des scripts et des fonctions. L'objectif est d'aider les étudiants à travailler de manière autonome avec MATLAB en utilisant des commandes essentielles.

Transféré par

unselbazigh
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)
5 vues12 pages

Cours Mat Lab

Le document présente une initiation à MATLAB, un logiciel de calcul numérique et de visualisation de données, en détaillant ses fonctionnalités, commandes et applications dans divers domaines. Il couvre des sujets tels que la manipulation de matrices et de vecteurs, les opérations mathématiques, et la programmation avec des scripts et des fonctions. L'objectif est d'aider les étudiants à travailler de manière autonome avec MATLAB en utilisant des commandes essentielles.

Transféré par

unselbazigh
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

Initiation à Matlab M.

SADIK

Introduction :
Le logiciel MATLAB est un programme interactif pour le calcul numérique et la visualisation
des données.
MATLAB est capable de faire des calculs matriciels et vectoriels de grande taille avec
précision importante, le langage MATLAB est facile à manipuler et permet de traiter les
problèmes et solutions mathématique et aussi visuelles.
On utilise Matlab dans plusieurs domaines :
 Le calcul numérique et développement des algorithmes
 le calcul symbolique
 La modélisation et simulation
 Analyse des données et le traitement de signal
 La visualisation scientifique
L'objectif de ce manuscrit est de donner un outil permettant aux étudiants de travailler de
manière autonome à l'aide de quelques commandes utile de Matlab pour gerer les variables,
les tableaux, matrices, graphisme, etec....

Une session MATLAB


Pour lancer MATLAB tapez la commande matlab.
Le prompt MATLAB (>>) indique que MATLAB attend des instructions.

Exemple : >> A = [ 1 3; 4 2 ]
>> A*A
>> quit

Chaque ligne d'instructions doit se terminer par un retour chariot. La commande pour quitter
MATLAB est quit. On veillera dans la mesure du possible à ne pas lancer simultanément
plusieurs sessions MATLAB.
La commande clear permet de nettoyer l'espace de travail.

Exemple : >> B = [ 1 3; 4 2 ]; B*B


>> x = 1 + 2 + 3 + 4 + 5 + 6 ...
+7 + 8 + 9 + 10
>>clear

Les variables : Les variables peuvent s'afficher sous différents formats :


Exemple :
>> a=sqrt(3)
>> format long , b=sqrt(3)
>> a-b
>> format short
>> who
>> clear
>> who

Erreurs d'arrondi :
1+eps apparait comme le plus petit nombre machine > 1.
>> 1-eps-1
>> 1+eps/2-1

1
Initiation à Matlab [Link]

Les vecteurs
« ' » est le symbole de transposé d'un vecteur.

On peut obtenir la longueur d'un vecteur donné grâce à la commande length.

Exemple : >> x1 = [1 2 3], x2 = [4,5,6,7], x3 =


[8; 9; 10]
>> length(x2), length(x3)
>> whos
>> x3'
>> X = [x1 x2 x3']
>> X(5)
>> X(4:10)
>> X(2:2:10)
>> K = [1 3 4 6]; X(K)

Pour définir un vecteur x dont les composantes forment une suite arithmétique de raison h, de
premier terme a et de dernier terme b, on écrira x = a:h:b.
La commande linspace permet de définir un vecteur x de longueur N dont les composantes
forment une suite arithmétique de premier terme a et de dernier terme b (donc de raison (a-
b)/N). Les composantes du vecteur sont donc linéairement espacés. La syntaxe est x =
linspace(a,b,N).
>> x = 1.1:0.1:1.9
Exemple : >> x = 1.1:0.2:2
>> x = linspace(1.1,1.9,9)

Vecteurs spéciaux
Les commandes ones, zeros et rand permettent de définir des vecteurs dont les éléments ont
respectivement pour valeurs 0, 1 et des nombres générés de manière aléatoire.

ones(1,n) : vecteur ligne de longueur n dont tous les éléments valent 1


ones(m,1) : vecteur colonne de longueur m dont tous les éléments valent 1
zeros(1,n) : vecteur ligne de longueur n dont tous les éléments valent 0
zeros(m,1) : vecteur colonne de longueur m dont tous les éléments valent 0
rand(1,n) vecteur ligne de longueur n dont les éléments sont générés de manière
:
aléatoire entre 0 et 1
rand(m,1) vecteur colonne de longueur m dont les éléments sont générés de manière
:
aléatoire entre 0 et 1

Les matrices : On définit une matrice de plusieurs façons


Exemple :
>> A = [1,3;4,2]
>> A = [1 3
4 2]

2
Initiation à Matlab [Link]

>> A = [1,3
4,2]

Un élément d'une matrice est référencé par ses numéros de ligne et de colonne. A(i,j)
désigne le j-ième élément de la i-ième ligne de la matrice A.

Exemple :
>> A(2,1)

La commande size permet d'obtenir les dimensions d'une matrice A donnée

Exemple :
size(A,1) , size(A,2), [m,n] = size(A)) .

Matrices spéciales
eye(n) : la matrice identité de dimension n
ones(m,n) : la matrice à m lignes et n colonnes dont tous les éléments
valent 1
zeros(m,n) la matrice à m lignes et n colonnes dont tous les éléments
:
valent 0
rand(m,n) une matrice à m lignes et n colonnes dont les éléments sont
:
générés de manière aléatoire entre 0 et 1

Si m=n on peut utiliser la commande ones(n).


La commande magic(n) permet d'obtenir une matrice magique de dimension n.

Exemple :
>> eye(3)
>> ones(3,2)
>> zeros(2)
>> rand(2,3)
>> magic(6)

Manipuler des matrices


Le symbole deux-points (:) permet d'extraire simplement des lignes ou des colonnes d'une
matrice. Le j-ieme vecteur colonne de la matrice A est désigné par A(:,j). La i-ieme ligne
de la matrice A est désignée par A(i,:).

Exemple :
>> A = magic(5)
>> A(1,:)
>> A(:,2)
Si A est une matrice, v=diag(A) est le vecteur composé des éléments diagonaux de A.
Si v est un vecteur de dimension n, A=diag(v) est la matrice diagonale dont la diagonale est
v.
Exemple :
>> A=eye(3); diag(A)
>> v=[1:3]
>> diag(v)

3
Initiation à Matlab [Link]

La commande diag admet un second paramètre k pour désigner la k sur-diagonale (si k>0) ou
la k sous-diagonale (si k<0).

Exemple :
>> A = [4 5 6 7 ; 3 4 5 6
2 3 4 5; 1 2 3 4]
>> diag(A,1)
>> diag(A,-2)
La commande tril permet d'obtenir la partie triangulaire inférieure (l pour lower) d'une
matrice. La commande triu permet d'obtenir la partie triangulaire supérieure (u pour upper)
d'une matrice.

Exemple :
>> A = [ 2 1 1 ; -1 2 1 ; -1 -1 2]
>> triu(A)
>> tril(A)
Comme pour la commande diag, les commandes triu et tril admettent un second
paramètre k. On peut ainsi obtenir la partie triangulaire supérieure (ou inférieure) à partir de la
k diagonale.

Exemple :
>> tril(A,-1)
>> tril(A,1)

On obtient la transposée de la matrice A à coefficients réels en tapant A'. Si la matrice est à


coefficients complexes, A' retourne la matrice adjointe de A.

Exemple :
>> A = [0 1 2; -1 0 1; -2 -1 0]
>> A'
Calculer avec MATLAB

Les constantes
Les principales constantes sont:

3.1415926535897 : 3.1415926535897
i :i 2 = - 1
j :j 2 = - 1
eps : précision numérique relative
realmin : plus petit nombre à virgule flottante manipulable
realmax : plus grand nombre à virgule flottante manipulable
inf infini. Est obtenu quand on essaie d'évaluer une
:
expression dont le résultat excède realmax
NaN not-a-number. Est obtenu quand on essaie d'effectuer une
:
opération non-définie comme 0/0

Exemple :
>> pi = 0; cos(pi)
ans =
1

4
Initiation à Matlab [Link]

>> clear pi
>> cos(pi)
ans =
-1
Opérations et fonctions portant sur les scalaires
Quelques fonctions mathématiques :
log(x) : logarithme néperien de x,
log10(x) : logarithme en base 10 de x,
exp(x) : exponentielle de x,
sqrt(x) racine carrée de x (s'obtient aussi par
:
x.^0.5),
abs(x) : valeur absolue de x,
sign(x) fonction valant 1 si x est positif ou
:
nul et 0 sinon.
Les complexe.
conj(z) : le conjugué de z,
abs(z) : le module de z,
angle(z) : argument de z,
real(z) partie réelle de
:
z,
imag(z) partie imaginaire
:
de z.
Les fonctions d'arrondis sont:
round(x) : entier le plus proche de x,
floor(x) : arrondi par défaut,
ceil(x) : arrondi par excès,
fix(x) arrondi par défaut un réel positif et par excès
:
un réel négatif.

Les fonctions trigonométriques et hyperboliques sont:

cos : cosinus,
acos : cosinus inverse (arccos),
sin : sinus,
asin : sinus inverse (arcsin),
tan : tangente,
atan : tangente inverse (arctan),
cosh : cosinus hyperbolique (ch),
acosh cosinus hyperbolique inverse
:
(argch),
sinh : sinus hyperbolique (sh),
asinh sinus hyperbolique inverse
:
(argsh),
tanh : tangente hyperbolique (th),
atanh tangente hyperbolique inverse
:
(argth).

5
Initiation à Matlab [Link]

Il existe également quelques fonctions spécifiques aux vecteurs:

sum(x) : somme des éléments du vecteur x,


prod(x) : produit des éléments du vecteur x,
max(x) : plus grand élément du vecteur x,
min(x) : plus petit élément du vecteur x,
mean(x) : moyenne des éléments du vecteur x,
sort(x) ordonne les éléments du vecteur x par ordre
:
croissant,
fliplr(x) échange la position des éléments du vecteur
:
x.

Exemple :
>> x=[3 1 2];
>> sum(x)
>> prod(x)
>> max(x)
>> min(x)
>> sort(x)
>> fliplr(x)
Opérations et fonctions portant sur les matrices
Exemple1 :
>> A=[1 2 3; 4 5 6]
>> B = [1 1; 2 2; 3 3]
>> C = A*B
>> C^2
Exemple 2:
>> A=[1 2 3; 4 5 6]
>> B=[1 2 3; 1 2 3]
>> A.*B
>> A.^2

Les fonctions matricielles les plus courantes sont:

det(A) : renvoie le déterminant de la matrice carrée A.


eig(A) renvoie les valeurs propres (eigenvalues) de la matrice carrée
A. Si l'on souhaite également les vecteurs propres on exécutera
: [V,D] = eig(A) qui renvoie une matrice diagonale D formée des
valeurs propres de A et une matrice V dont les vecteurs colonnes
sont les vecteurs propres correspondant.
poly(A) renvoie les coefficients du polynôme caractéristique associé à
la matrice carrée A. On sera vigilant à l'ordre dans lequel sont
rangés les coefficients: le premier élément du vecteur est le
coefficient du monôme de plus haut degré. Ainsi dans l'exemple
:
suivant il faut lire p(x) = x3 - 6 x2 - 72 x -27 ,
>> A = [1 2 3 ; 4 5 6 ; 7 8 0]; p = poly(A)
p =
1 -6 -72 -27
inv(A) : renvoie l'inverse de la matrice carrée A.
rank(A) : renvoie le rang de la matrice carrée A.
trace(A) : renvoie la trace de la matrice A.
expm(A) : renvoie l'exponentielle matricielle de A.

6
Initiation à Matlab [Link]

norm(A) : renvoie la norme 2 de la matrice A.


norm(A,2) : même chose que norm(A).
norm(A,1) : norme 1 de la matrice A, .
norm(A,inf) : norme infini de la matrice A, .
norm(A,'fro') : norme de Frobenius de la matrice A, .

Programmer sous MATLAB

Scripts et fonctions
Un programme ou suite d’instructions MATLAB peut être sauvegardé dans un fichier script
(M-FILE) ayant une extension .m
Fichier program.m
a=0 ; fa=-Inf ;
b=3 ; fb=-fa ;
while (b-a)>eps*b
x=(a+b)/2; fx=x^3-2*x-5;
if (sign(fx)==sign(fa))
a=x;fa=fx;
else b=x; fb=fx; end end
x

On définit la fonction fonc de la manière suivante:

function [vars1, ..., varsm] = fonc(vare_1, ..., varen)


séquence d'instructions

 vars1, ..., varsm sont les variables de sortie de la fonction;
 vare1, ..., varen sont les variables d'entrée de la fonction;
 séquence d'instructions est le corps de la fonction.

Exemple :
Les lignes qui suivent doivent être enregistrées dans un fichier de nom modulo.m.
function [r,q] = modulo(a,n)

% Calcule la valeur de a modulo n en prenant pour systeme de residus


% 1, ... , n au lieu de 0, ... , n-1.
%
% appel : [r,q] = modulo(a,n)
%
% Arguments de sortie :
% r : le residu
% q : le quotient

q = floor(a./n);
r = a - n*q;

% si le reste de la division entiere vaut 0, le residu vaut par convention


n
if r == 0, r = n; end

>>

7
Initiation à Matlab [Link]

Opérateurs de comparaison et opérateurs logiques


Les opérateurs de comparaison sont:

== : égal à (x == y)
> strictement plus grand que
:
(x > y)
< strictement plus petit que
:
(x < y)
>= plus grand ou égal à (x >=
:
y)
<= plus petit ou égal à (x <=
:
y)
~ = : différent de (x ~ = y)

Les opérateurs logiques sont:

& et (x &
:
y)
| : ou (x | )
~ : non (~ x)

Les opérateurs de comparaison et les opérateurs logiques sont utilisés essentiellement dans les
instructions de contrôle.
Instructions de contrôle
Les instructions de contrôle sous MATLAB sont très proches de celles existant dans d'autres
langages de programmation.
Boucle FOR : parcours d'un intervalle
Syntaxe :
for indice=borne_inf:borne_sup
séquence d'instructions
end

Exemple
>> for r=1.1:-0.1:0.75
disp(['r = ', num2str(r)]);
end

Voici un exemple d'utilisation d'une boucle pour calculer n! (le lecteur attentif sait calculer n!
plus simplement ... par exemple en exécutant prod([1:n])).
>> n = 4;
>> nfac = 1;
>> for k = 1:n
nfac = nfac*k;
end
>> nfac

8
Initiation à Matlab [Link]

Boucle WHILE : tant que . . . faire

Une seconde possibilité pour exécuter une séquence d'instructions de manière répétée consiste
à effectuer une boucle tant qu'une condition reste vérifiée. On arrête de boucler dès que cette
condition n'est plus satisfaite. Ce processus est mis en oeuvre par la boucle while.
Syntaxe :
while expression logique
séquence d'instructions
end

Exemple
>> n = 4;
>> k = 1; nfac = 1;
>> while k <= n
nfac = nfac*k;
k = k+1;
end
>> nfac

L'instruction conditionnée IF

L'instruction conditionnée la plus simple a la forme suivante:


Syntaxe :
if expression logique
séquence d'instructions
end

Il existe une séquence conditionnée sous forme d'alternatives:


Syntaxe :
if expression logique
séquence d'instructions 1
else
séquence d'instructions 2
end

Syntaxe :
if expression logique 1
séquence d'instructions 1
elseif expression logique 2
séquence d'instructions 2
...
elseif expression logique N
séquence d'instructions N
else
séquence d'instructions par défaut
end

9
Initiation à Matlab [Link]

Exemple
if numex == 1
A = ones(n);
elseif numex == 2
A = magic(n);
elseif numex == 3 | numex == 4
A = rand(n);
else
error('numero d''exemple non prevu ...');
end

l'instruction switch

Une alternative à l'utilisation d'une séquence d'instructions conditionnées pour effectuer un


choix en cascade existe. Il s'agit de l'instruction switch.

Syntaxe :
switch var
casecst1,
séquence d'instructions 1
casecst2,
séquence d'instructions 2
...
casecstN,
séquence d'instructions N
otherwise
séquence d'instructions par défaut
end

 var est une variable numérique ou une variable chaîne de caractères;
 cst1, ..., cstN, sont des constantes numérique ou des constantes chaîne de caractères;
 séquence d'instructions i est la séquence d'instructions à exécuter si le contenu de la
variable var est égal à la constante csti (var==csti).

Exemple
function A = initA(n,numex)

switch numex
case 1,
A = ones(n)
case 2,
A = magic(n);
case {3,4},
A = rand(n);
otherwise
error('numero d''exemple non prevu ...');
end

10
Initiation à Matlab [Link]

Graphisme
Graphisme 2D
La commande fplot permet de tracer le graphe d'une fonction sur un intervalle donné. La
syntaxe est:
fplot('nomf', [xmin , xmax])

 nomf est soit le nom d'une fonction MATLAB incorporée, soit une expression
définissant une fonction de la variable x, soit le nom d'une fonction utilisateur.
 [xmin , xmax] est l'intervalle pour lequel est tracé le graphe de la fonction.

Exemple
1/ fplot('cos',[0 2*pi])
2/ fplot('sin',[-2*pi 2*pi])
3/ function y=h(x)

y=x.*sin(x);

Il est possible de tracer plusieurs fonctions sur la même figure. Il faut pour cela utiliser la
commande fplot de la manière suivante:
fplot('[nomf_1 , nomf_2 , nomf_3]', [xmin , xmax])
où nomf_1, nomf_2, nomf_3 est soit le nom d'une fonction MATLAB incorporée, soit
une expression définissant une fonction de la variable x, soit le nom d'une fonction utilisateur.

Exemple
>> fplot('[sin(x)/x , cos(x)/x]', [-5, 5, -1, 1])

La commande plot
La commande plot permet de tracer un ensemble de points de coordonnées (xi , yi), i=1, ...,
N.
Exemple
>> x=[-2*pi:0.01:2*pi]; y = x.*sin(x);
>> plot(x,y)
>>
Essayez aussi
>> x=[-2*pi:1:2*pi]; y = x.*sin(x);
>> plot(x,y)
>>
>> x = [-5:0.01:5];
>> y = x.^2.*cos(x); z = x.*cos(x);
>> plot(x,y,'b-',x,z,'r:');
>>

Exemple : Fonction de deux variables réelles


>> [x,y]=meshgrid([0 :1 :3], [1:0.5:2]) ;
>> [x,y]=meshgrid([-3 :0.1 :3], [-4:0.2:5]) ;

11
Initiation à Matlab [Link]

>>z=x.^2+y.^2 ;
>> x=[-2*pi:1:2*pi]; y = x.*sin(x);
>> mesh(x,y,z) ;
>> surf(x,y,z) ;
>> xlabel(‘x’) ;
>> contour(x,y,z);
>> voir help

12

Vous aimerez peut-être aussi