Académique Documents
Professionnel Documents
Culture Documents
Introduction à MATLAB
Années Préparatoires au Cycle Ingénieur S2
PLAN
Introduction Evaluation:
P Calculs élémentaires
Examen TP : 25%
Examen Ecrit : 50%
L Commandes de base
Variables et fonctions.
A Matrices et tableaux
N graphiques 2D
Programmation sous Matlab
Applications de Matlab
1
Introduction
Introduction
Matlab (MATrix LABoratory) est l’une des principales plateformes de développement.
Interface de Matlab
Matlab est un système interactif de calcul numérique et de visualisation graphique.
Calculs élémentaires
Il possède un langage de programmation simple et efficace, constitué de :
Commandes de base
Variables et fonctions.
de nombreux outils du calcul matriciel,
Matrice et tableaux
des principaux algorithmes de l’analyse numérique (schémas d’intégration, différentiation...),
graphiques 2D
des outils pour le traitement du signal,
Programmation sous
des outils de visualisation en 2D et 3D,
Matlab
l’outil Simulink, pour modéliser et simuler des systèmes en utilisant des schémas-blocs,
Applications de Matlab
des outils pour concevoir des interfaces utilisateur graphiques (GUI pour « Graphical User Interface »)
personnalisées,
la prise en charge d’échange de données et de signaux avec plusieurs type de matériels (oscilloscope,
carte d’acquisition, carte de contrôle, etc.),
l’intégration d’applications externes écrites en C, C++, Fortran, Java, Excel, etc.
la conversion d'applications MATLAB en C et C++ . 3
M.SAYYOURI
Interface de Matlab
Introduction
Interface de Matlab
Calculs élémentaires
Commandes de base
Variables et fonctions.
Matrice et tableaux
4
M.SAYYOURI
2
Interface de Matlab
Introduction
Interface de Matlab
Calculs élémentaires
Commandes de base
Variables et fonctions.
Matrice et tableaux
5
M.SAYYOURI
Interface de Matlab
Introduction
Interface de Matlab
Calculs élémentaires
Commandes de base
Variables et fonctions.
Matrice et tableaux
La fenêtre d’espace de travail :
graphiques 2D
Cette fenêtre permet de visualiser les différentes
Programmation sous
variables existantes, en affichant leur nom, leur
Matlab
contenu (ou leur dimension) ainsi que le min et le
Applications de Matlab
max des données qu’elle contient. On peut obtenir
la liste des variables ainsi que leurs dimensions en
ligne de commande en tapant la commande
« whos ».
6
M.SAYYOURI
3
Interface de Matlab
Introduction
Interface de Matlab
Calculs élémentaires
Commandes de base
Variables et fonctions.
Matrice et tableaux
graphiques 2D
La fenêtre de répertoire courant :
Programmation sous
Cette fenêtre permet de visualiser le répertoire
Matlab
de travail dans lequel vous êtes. C’est ici que
Applications de Matlab
sont chargés / enregistrés les scripts, les modèles
ou les données.
7
M.SAYYOURI
Calculs élémentaires
Introduction
Matlab comme Calculatrice
Interface de Matlab
Le symbole [>>] indique à l’utilisateur où il faut rentrer la commande
Commençons par les operateurs les plus courants : +, -, *, /, ^. Le dernier signifie
Calculs élémentaires
«puissance». Les parenthèses s’utilisent de manière classique.
Commandes de base
>> r « »
r=
0.7500 r conserve la dernière valeur calculée
8
M.SAYYOURI
4
Calculs élémentaires
Introduction >> x=3*r^2-r/3+2 « »
Interface de Matlab
x=
3.4375
Calculs élémentaires
>> 1z=5
??? 1z=5
Error: Unexpected MATLAB expression.
9
M.SAYYOURI
Commandes de base
Introduction Matlab comporte un très grand nombre d’opérateurs, de commandes et de fonctions. On peut
Interface de Matlab taper à titre d’exemple les commandes suivantes :
Calculs élémentaires • help permet d’obtenir l’aide de l’aide et donne une liste thématique ;
Commandes de base • help nom de fonction donne la définition de la fonction désignée et des exemples d’utilisation ;
Variables et fonctions. • lookfor sujet donne une liste des rubriques de l’aide en ligne en relation avec le sujet indiqué,
Matrice et tableaux • clear permet d’effacer une partie ou toutes les variables définies jusqu’à Présent,
graphiques 2D • who affiche les noms de toutes les variables en cours,
Programmation sous • whos affiche toutes les variables avec les détails..
Matlab >> who >> clear x
Applications de Matlab
Your variables are: >> who
ans r x y Your variables are:
>> whos ans r y
Name Size Bytes Class Attributes >> clear all
ans 1x1 8 double >> who
r 1x1 8 double >>
x 1x1 8 double
y 1x1 16 double complex 10
M.SAYYOURI
5
Variables prédéfinies
Introduction Dans Matlab, on trouve des variables prédéfinies : >> pi
Interface de Matlab • ans qui contient le dernier résultat de calcul ans =
• i et j qui représentent racine 1. 3.1416
>> eps
Calculs élémentaires
• Pi qui représente
Commandes de base
• eps qui est un nombre prédéfini. ans =
Variables et fonctions.
• inf qui représente plus infini 2.2204e-016
Matrice et tableaux • NaN : pas un nombre (not a number) >> a=3*i+2
a=
2.0000 + 3.0000i
graphiques 2D
Fonctions prédéfinies
Introduction Toutes les fonctions courantes et moins courantes existent dans Matlab. On retiendra que
Interface de Matlab pour appliquer une fonction à une valeur, il faut mettre cette dernière entre parenthèses.
Calculs élémentaires
>> a1=sin(pi/3), a2=cos(pi/3), a3=tan(pi/3) >> b1=sqrt(9) , b2=log(2), b3=log10(10), b4=exp(2)
Commandes de base
a1 = b1 =
Variables et fonctions. 0.8660 3
a2 = b2 =
Matrice et tableaux
0.5000 0.6931
graphiques 2D a3 = b3 =
1.7321 1
Programmation sous
b4 =
Matlab 7.3891
Applications de Matlab Voici une liste non exhaustive :
• Fonctions trigonométriques et inverses : sin, cos, tan, asin, acos, atan
• Fonctions hyperboliques (on rajoute «h») : sinh, cosh, tanh, asinh, acosh, atanh
• racine, logarithmes et exponentielles : sqrt, log, log10, exp
• Fonctions erreur : erf, erfc
• La notion de fonction est plus générale dans Matlab, et certaines fonctions peuvent avoir
M.SAYYOURI
plusieurs entrées (comme besselj par exemple) mais aussi plusieurs sorties.12
6
Exercices
Introduction Exercice 1
Interface de Matlab
Exécutez l'introduction de Matlab, chargez l'aide. Bref, faites un petit tour du propriétaire selon la liste
ci-dessous...
Calculs élémentaires
• intro lance une introduction a Matlab
Commandes de base
• help produit une liste de toutes les commandes par thèmes
Variables et fonctions.
• demo démonstration donnant une représentation des fonctionnalités de bases de Matlab
Matrice et tableaux • Info information sur la boite a outils disponibles
graphiques 2D Exercice 2
Programmation sous 1. Tapez la commande a=1:7; puis Tapez les commandes a, who et whos.
Matlab 2. Utilisez pour modifier a : a=1:2;
Applications de Matlab
3. Tapez la commande b=a+2;. ré-exécutez les commandes who et whos en utilisant .
4. Tapez clear a et b.
Exercice 3 3
2 1.25 2 2
1. Calculer sous Matlab 11 , e , 9 , ln(5) , log (5) , sin( ) , 1
10
, 1 2i (1 3i )
4 4 2
2. Trouver le volume d’une sphère de rayon r=2m v r 3
3
3. Afficher les résultats précédents sous format long , long e short e et rationnelle.
13
M.SAYYOURI
Matrices et tableaux
Introduction Dans Matlab, toutes les variables représentent des matrices. On peut considérer donc
Interface de Matlab
qu’il y a un seul type principal de données : le type matrice.
Calculs élémentaires
Les éléments d’une matrice peuvent être :
Commandes de base
des nombres (réels ou complexes),
Variables et fonctions.
ou des caractères.
Exemple:
Matrice et tableaux
graphiques 2D
Un scalaire est une matrice 1 × 1,
Programmation sous
1
Matlab un vecteur colonne de dimension n est une matrice n × 1: Exemple 2 ,
Applications de Matlab 3
un vecteur ligne de dimension n est une matrice 1 × n : Exemple 1 2 3
On utilise les crochets [ et ] pour définir le début et la fin de la matrice. Ainsi pour
7
Matrices et tableaux
Introduction >> % 3 écriture d'une matrice >> % écriture d'un vecteur ligne >> % la taille de la matrice M
>> M=[1 2 3 >> A=[1 2 3 4] >> size(M)
Interface de Matlab
456 A= ans =
Calculs élémentaires 7 8 9] 1 2 3 4 3 3
Commandes de base
M= >> A=[1 ,2 ,3 ,4] >> % la taille du vecteur A
1 2 3 A= >> size(A)
Variables et fonctions.
4 5 6 1 2 3 4 ans =
Matrice et tableaux 7 8 9 >> % écriture d'un vecteur colonne 1 4
graphiques 2D
>> M=[1 2 3; 4 5 6 ; 7 8 9] >> B=[1 ; 2 ; 3 ; 4] % la taille du vecteur B
M= B= >> size(B)
Programmation sous 1 2 3 1 ans =
Matlab 4 5 6 2 4 1
7 8 9 3 % la taille de la matrice C
>> M=[1, 2 ,3 ; 4, 5, 6 ; 7, 8, 9]
Applications de Matlab
4 >> size(C)
M= >> C=[1 2 3 4 ; 5 6 7 8] ans =
1 2 3 C= 2 4
4 5 6 1 2 3 4
7 8 9 5 6 7 8
15
M.SAYYOURI
Matrices et tableaux
Introduction Matlab propose des commandes pour créer certaines matrices particulières très simplement. Pour
Interface de Matlab plus d’information, lire le help de chaque fonction.
Calculs élémentaires Commande Description
Commandes de base
ones(n,m) Matrice de taille n × m ne contenant que des 1.
zeros(n,m) Matrice de taille n × m ne contenant que des 0.
Variables et fonctions.
eye(n,m) Matrice de taille n × m contenant des 1 sur la première diagonale et des 0 ailleurs.
Matrice et tableaux diag(v) Matrice diagonale où les éléments de la diagonale sont les composantes du vecteur v.
graphiques 2D rand(n,m) Matrice de taille n × m contenant des nombres aléatoires
Programmation sous
>> ones(3,2) >> zeros(2,3) >> eye(3,3) >> rand(3,3) >> diag([1 2 3])
Matlab
ans = ans = ans = ans = ans =
Applications de Matlab 1 1 0 0 0 1 0 0 0.7922 0.0357 0.6787 1 0 0
1 1 0 0 0 0 1 0 0.9595 0.8491 0.7577 0 2 0
1 1 0 0 1 0.6557 0.9340 0.7431 0 0 3
Matlab dispose également de moyens très simples pour créer des listes. La commande [a:p:b]
crée une liste dont les éléments sont: a, a + p, a + 2*p, . . . , a + n*p, où n N,
a+n*p b < a+(n+1)*p 16
M.SAYYOURI
8
Matrices et tableaux
Introduction Le cas particulier [a : b] est un raccourci pour [a:1:b]. Si les conditions initiales sont erronées,
Interface de Matlab Matlab renvoie un message d’erreur.
Calculs élémentaires >> x=[0:10:50]
Commandes de base
x=
0 10 20 30 40 50
Variables et fonctions.
>> format rational , x=[-1:0.5:1]
Matrice et tableaux x=
-1 -1/2 0 1/2 1
>> format short , x=[-1:0.5:1]
graphiques 2D
Programmation sous x=
Matlab
-1.0000 -0.5000 0 0.5000 1.0000
>> x=[1:5]
Applications de Matlab
x=
1 2 3 4 5
linspace : Un autre cas particulier de [a:p:b] est la fonction linspace(a,b,n). Celle-ci crée une
liste de n éléments uniformément répartis entre a et b. Autrement dit, linspace(a,b,n) est la
même chose que [a: (b a)/(n 1):b].
17
M.SAYYOURI
Matrices et tableaux
Introduction >> linspace(-1,1,9)
Interface de Matlab
ans =
-1.0000 -0.7500 -0.5000 -0.2500 0 0.2500 0.5000 0.7500 1.0000
Calculs élémentaires
Commandes de base
Une dernière méthode pour créer des tableaux est la concaténation. Si A et B sont deux
Variables et fonctions.
tableaux, alors [A B], ou [A,B] est le tableau obtenu en collant B à la droite de A, et [A ;B] est
le tableau obtenu en collant B au-dessous de A. Comme d’habitude, il faut faire attention aux
Matrice et tableaux
tailles de A et de B.
graphiques 2D
Programmation sous >> A=[1 2 3; 4 5 6] >> C=[A B] >> E=[C;D] >> F=[E; zeros(2,5)]
A= C= E= F=
1 2 3 1 0 1 2 3 1 0
Matlab
1 2 3 1 2 3 1 0
Applications de Matlab 4 5 6 4 5 6 0 1 4 5 6 0 1 4 5 6 0 1
>> B=eye(2,2) >> D=ones(1,5) 1 1 1 1 1 1 1 1 1 1
B= D= 0 0 0 0 0
1 0 1 1 1 1 1 0 0 0 0 0
0 1
18
M.SAYYOURI
9
Matrices et tableaux
Introduction La fonction logspace(i, j, k) génère un vecteur de k éléments allant de 10 à 10
Interface de Matlab >> a=logspace(0,2,5) % 10^0 10^0.5 10^1 10^1.5 10^2
a=
1.0000 3.1623 10.0000 31.6228 100.0000
Calculs élémentaires
Commandes de base
Variables et fonctions.
On peut créer des matrices à l’aide de commande : et des fonction linspace et logspace
Matrice et tableaux >> A=[1:3 ; -2:0 ; -2 5 6]
graphiques 2D
A=
1 2 3
Programmation sous -2 -1 0
Matlab -2 5 6
>> B=[linspace(1,2,4); linspace(2,8,4) ; logspace(1,4,4)]
B=
Applications de Matlab
1 4/3 5/3 2
2 4 6 8
10 100 1000 10000
19
M.SAYYOURI
Matrices et tableaux
Introduction Accès et modifications
Interface de Matlab On peut accéder et modifier les éléments d’une matrice. Dans ce qui suit, A désigne un tableau de
Calculs élémentaires
taille quelconque, k et l sont des nombres entiers.
Commandes de base
Commande Description
A(k , l) Renvoie l’élément se trouvant à la kème ligne et la lème colonne.
Variables et fonctions.
A(k) Renvoie le kème élément d’une matrice. En Matlab, les éléments d’une matrice de
Matrice et tableaux taille n × m sont indexés de 1 à n*m de haut en bas et de gauche à droite.
A(k , :) Renvoie la kème ligne de la matrice.
graphiques 2D
A(: , l) Renvoie la lème colonne de la matrice.
Programmation sous
>> A=[1 2 3 4; 5 6 7 8] >> A(:,4) >> A(:,:)
Matlab
A= ans = ans =
Applications de Matlab 1 2 3 4 4 1 2 3 4
5 6 7 8 8 5 6 7 8
>> A(2,4) >> A(8)
ans = ans =
8 8
>> A(2,:) >> A(10)
ans = ??? Index exceeds matrix dimensions.
20
M.SAYYOURI
5 6 7 8
10
Matrices et tableaux
Introduction Accès et modifications
Interface de Matlab Pour modifier les éléments d’une matrice, on utilise les mêmes commandes que ci-dessus. On ajoute à la
Calculs élémentaires commande le signe [=] et la nouvelle valeur.
Commandes de base A= >> A(3,3)=5
1 2 3 4 A=
Variables et fonctions.
5 6 7 8 0 -2 -3 -4
Matrice et tableaux
>> A(2,3)=0 0 6 0 8
graphiques 2D A= 0 0 5 0
1 2 3 4 >> A(4,4)=10
Programmation sous
5 6 0 8 A=
Matlab >> A(:,1)=zeros(2,1) 0 -2 -3 -4
Applications de Matlab
A= 0 6 0 8
0 2 3 4 0 0 5 0
0 6 0 8 0 0 0 10
>> A(1,:)=-A(1,:) >> A
A= A =A(2:3;2:5)
0 -2 -3 -4 6 0
0 6 0 8 0 5
21
M.SAYYOURI
Matrices et tableaux
Introduction Opérations avec les matrices
Interface de Matlab Matlab permet de faire certaines opérations avec des matrices. Dans ce qui suit, A et B sont des
Calculs élémentaires
tableaux et c est un scalaire.
Commandes de base
Commande Description
A+B Addition terme à terme ; A et B doivent avoir le même format.
Variables et fonctions.
A+c = c+A Addition de c aux éléments de A.
Matrice et tableaux A-B Soustraction terme à terme ; A et B doivent avoir le même format.
graphiques 2D A-c Soustraction de c aux éléments de A.
Programmation sous
c-A Tableau dont les éléments sont c .
A*B Produit matriciel standard ; nb. col. A doit être le même que nb de ligne de B
Matlab
A*c = c*A Multiplication de c aux éléments de A.
Applications de Matlab
A.*B Multiplication terme à terme ; A et B doivent avoir le même format.
Aˆn (n ) A * A * . . . * A (n fois) ; A doit être carrée.
Aˆn (n ) * *...* (|n| fois) ; A doit être inversible.
A.ˆB Tableau dont les éléments sont
A’ Transposition et conjugaison.
22
M.SAYYOURI
11
Matrices et tableaux
Introduction Opérations avec les matrices
Interface de Matlab A.’ Transposition ; A.’ = A’ dans le cas où A est réelle.
Calculs élémentaires
B/A Le résultat est un tableau X tel que XA = B. Si A est inversible, alors X = B ; nb. col. A doit
être le même que nb. col. B.
Commandes de base A\B Le résultat est un tableau X tel que AX = B. Si A est inversible, alors X = B ; nb. Ligne de
Variables et fonctions. A doit être le même que nb. Ligne de B.
A./B Division terme à terme des éléments de A par ceux de B ; A et B doivent avoir le même format.
Matrice et tableaux
A.\B Division terme à terme des éléments de B par ceux de A ; A et B doivent avoir le même format.
graphiques 2D A/c Division des éléments de A par c.
Programmation sous Exemple >> A*B >> A/B >> 2*A+B-3
Matlab >> B=[-1 4 -5; 2 1 0; 1 1 -1]; ans = ans = ans =
Applications de Matlab
>> A=[1 2 3; 4 0 0; 1 0 1]; 6 9 -8 1.5000 6.5000 -10.5000 -2 5 -2
>> B=[-1 4 -5; 2 1 0; 1 1 -1]; -4 16 -20 -1.0000 -1.0000 5.0000 7 -2 -3
>> A+B 0 5 -6 0 1.0000 -1.0000 0 -2 -2
ans = >> A^2 >> A.*B >> A'
0 6 -2 ans = ans = ans =
6 1 0 12 2 6 -1 8 -15 1 4 1
2 1 0 4 8 12 8 0 0 2 0 0
2 2 4 1 0 -1 23 3 0 1
M.SAYYOURI
Matrices et tableaux
Introduction Fonctions sur les matrices
Interface de Matlab Etant donnée une matrice A, il y a un certain nombre de choses que l’on peut calculer en rapport
Calculs élémentaires
avec A. Nous présentons ici quelques fonctions définies dans Matlab prenant comme paramètre
des tableaux.
Commandes de base
Commande Description
Variables et fonctions. det(A) Renvoie le déterminant de A ; celle-ci doit être carrée.
trace(A) Renvoie la trace de A.
Matrice et tableaux
rank(A) Renvoie le rang de A
graphiques 2D diag(A) Renvoie la première diagonale de A.
Programmation sous
norm(v) Renvoie la norme euclidienne de v ; v est un vecteur. Il est aussi possible de
calculer d’autres normes ;
Matlab
mean(A) Renvoie une liste contenant la moyenne des éléments de chaque colonne.
Applications de Matlab sum(A) Renvoie une liste contenant la somme des éléments de chaque colonne.
prod(A) Renvoie une liste contenant le produit des éléments de chaque colonne.
max(A) Renvoie une liste contenant la valeur maximale chaque colonne.
min(A) Renvoie une liste contenant la valeur minimale de chaque colonne.
length(A) Renvoie le maximum entre le nombre de lignes et de colonnes
Finalement, on précise que toutes les fonctions mathématiques classiques (cos, sin, log, exp, etc)
s’appliquent également aux tableaux. Le résultat est un tableau où l’on a appliqué terme
24 à terme la
M.SAYYOURI fonction en question.
12
Matrices et tableaux
Introduction Exemple
Interface de Matlab
>> A=[1 2 3; 4 0 0; 1 0 1]; >> mean(A) >> size(A)
Calculs élémentaires >> det(A) ans = ans =
Commandes de base
ans = 2.0000 0.6667 1.3333 3 3
-8 >> sum(A) >> sum(sum(A))
Variables et fonctions.
>> trace(A) ans = ans =
Matrice et tableaux ans = 6 2 4 12
graphiques 2D
2 >> prod(A) >> mean(mean(A))
>> rank(A) ans = ans =
Programmation sous ans = 4 0 0 1.3333
Matlab 3 >> max(A) >> max(max(A))
>> diag(A) ans = ans =
ans = 4 2 3 4
Applications de Matlab
Graphique 2D
Introduction Les possibilités graphiques de Matlab sont innombrables. Pour créer le graphe de la fonction sinus par
Interface de Matlab exemple, nous commençons par définir deux vecteurs: x = -2*pi : pi/4 : 2*Pi ; y = sin(x);
Calculs élémentaires ensuite nous construisons le graphe au moyen de la commande: plot(t , y)
Commandes de base On peut superposer un quadrillage (ou le faire disparaitre) par les commandes: grid (ou grid off)
Variables et fonctions. On peut aussi mettre un titre, mettre des étiquettes aux axes: title ('graphe de sinus'), xlabel('x'),
Matrice et tableaux
ylabel('sinus(x)')
graphiques 2D
26
M.SAYYOURI
13
Graphique 2D
Introduction Afin d'afficher deux ou plusieurs graphes en même temps, une série des coordonnées (x, y) est
Interface de Matlab
introduise a la fonction plot: plot(x1, y1, x2, y2, …) .
La legende (surtout en cas de plusieurs graphes) peut être affichée en utilisant la commande
Calculs élémentaires
legend(legend1, legend2, …).
Commandes de base La commande legend('show') permet de montrer la légende, par contre la commande
Variables et fonctions. legend('hide') permet de la cacher.
Matrice et tableaux
graphiques 2D
27
M.SAYYOURI
Graphique 2D
Introduction La commande plot(x, y, LineSpec) affiche un graphe avec la spécification donnée par LineSpec
Interface de Matlab
qui est formée au plus de trois valeurs: style de ligne, type de marquer, et la couleur.
Par exemple plot(x, y, '-+b') affiche un graphe bleu de la forme -+-+-+…
Calculs élémentaires
Noter bien que la spécification 'type de marqueur' est utilisée pour les points choisies (vecteurs
Commandes de base x et y), par contre la spécification 'style de ligne' couvre toute la courbe.
Variables et fonctions.
Symbole Style de ligne Symbole Type de Marqueur
Matrice et tableaux - Ligne solide (par défaut) o Cercle
graphiques 2D
-- La ligne non continue + Signe plus
: La ligne pointillée * Astérisque
Programmation sous
-. La ligne tiret-point . Point
Matlab Symbole Couleur x Croix
y Jaune s Carré
Applications de Matlab
m Magenta d Diamant
c Cyan ^ Triangle vers le haut
r Rouge V Triangle vers le bas
g Vert > Triangle pointant à droite
b Bleu < Triangle pointant à gauche
w Blanc p Pentagramme
k Noir h Hexagramme 28
M.SAYYOURI
14
Graphique 2D
Introduction
Exemple
Interface de Matlab
>> x = -2*pi : 0.1 : 2*pi ;
Calculs élémentaires
>> y = sin(x);
Commandes de base
>> z=cos(x);
Variables et fonctions.
>> legend('sin(x)','cos(x)')
Matrice et tableaux
>> plot(x, y, '-ob', x, z, '-.dr')
graphiques 2D
>> legend('sin(x)','cos(x)')
Programmation sous
>> title('Graphe de Sinus et cosnus')
Matlab >> xlabel('x')
Applications de Matlab >> ylabel('y')
29
M.SAYYOURI
15
Programmation sous Matlab
Introduction
Interface de Matlab
Calculs élémentaires
Commandes de base
Variables et fonctions.
Matrice et tableaux
graphiques 2D
Programmation sous
Matlab
Applications de Matlab
31
M.SAYYOURI
la ligne.
Calculs élémentaires
La commande disp(X) affiche une variable X (chaine de caractères, entier, …) sur la fenêtre des
Commandes de base
La commande fprintf() accepte tous genre de variable en utilisant leurs formats de types : %d pour les
Matrice et tableaux
entiers, %f pour les réels, %s pour les chaines de caractères, %c pour le caractères, … . On peut ajouter un
graphiques 2D
La commande sprintf() sauvegarde tous genre de variables de la même manière que fprintf, mais sans
Matlab
affichage sur la fenêtre des commandes. sprintf() retourne une chaine de caractères qui peut être affichée
Applications de Matlab
16
Programmation sous Matlab
clear all
Introduction
clc;
% lecture de deux valeurs
Interface de Matlab a = input ('Entrer la valeur de a : ');
b = input ('Entrer la valeur de b : ');
Calculs élémentaires % somme
c = a + b;
Commandes de base
% affichage
fprintf('%f + %f = %f \n', a, b, c);
Variables et fonctions.
% introduction d'un vecteur
Matrice et tableaux vec = input('entrer un vecteur de 5 éléments : ');
% introduction d'une matrice
graphiques 2D mat = input('entrer une matrice de 3x3 éléments : ');
vec
Programmation sous mat
Matlab Entrer la valeur de a : -2.5
Entrer la valeur de b : 3.18
Applications de Matlab
-2.500000 + 3.180000 = 0.680000
entrer un vecteur de 5 éléments : zeros(1,5)
entrer une matrice de 3x3 éléments : randi(3,3)
vec =
0 0 0 0 0
mat =
3 3 1
3 2 2 33
M.SAYYOURI 1 1 3
34
M.SAYYOURI
17
Programmation sous Matlab
%équation de second degré
Introduction a=input('entrer a: ');
b=input(' entrer b: ');
Interface de Matlab
c=input('entrer c : ');
Calculs élémentaires
delta=b^2-4*a*c;
if delta > 0
Commandes de base disp('l'‘équation admet deux solutions différentes');
x1=(-b+sqrt(delta))/2
Variables et fonctions.
x2=(-b-sqrt(delta))/2
Matrice et tableaux
elseif delta==0
disp('l'‘équation admet une seule solution');
graphiques 2D x2=-b/2
else
Programmation sous
disp('l'‘équation n''admet pas de solutions');
Matlab
end
18
Programmation sous Matlab
Les boucles:
Introduction
En Matlab, on utilise deux formes de boucle:
Interface de Matlab
L’instruction for pour les boucles à nombre d’itération connu :
Calculs élémentaires
for variable = valeur initiale : pas : valeur finale
Commandes de base
commandes
Variables et fonctions.
end ;
Matrice et tableaux
et l’instruction while pour les boucles a condition de continuation.
graphiques 2D
while condition de continuation
Programmation sous
commandes
Matlab
end ;
Applications de Matlab
19
Programmation sous Matlab
%le factoriel d’un nombre function seconeq(a,b,c); %équation de second degré
Introduction function fact(n) delta=b^2-4*a*c;
if delta > 0
Interface de Matlab
s=1;
disp('l''équation admet deux solutions différentes');
for i=1:n x1=(-b+sqrt(delta))/2
Calculs élémentaires s=s*i; x2=(-b-sqrt(delta))/2
end elseif delta==0
Commandes de base
S disp('l''équation admet une seule solution');
Variables et fonctions. >> fact(5) x1=-b/2
s = Else
Matrice et tableaux >> seconeq(1,-3,2)
120
l'équation admet deux solutions différentes
graphiques 2D x1 =
function [s p]=somprod(n); 2
Programmation sous
s=0; p=1; x2 =
Matlab
for i=1:n 1
s=s+i;
Applications de Matlab p=p*i; function [s p]=somprod(n);
s=0; p=1;
End
i=1;
>>[s p]=somprod(5) while i<=n
s = s=s+i;
15 p=p*i;
p = i=i+1;
120 end;
39
M.SAYYOURI
20
Programmation sous Matlab
>> a=(1<=5) >> A=[1 2 3 4]
Introduction
a= A=
1 2 3 4
Interface de Matlab 1
>> B=[4 2 5 4]
Calculs élémentaires >> b=(5==12/3) B=
Commandes de base
b= 4 2 5 4
0 >> A==b
Variables et fonctions.
>> c=(a | b) ans =
0 1 0 1
Matrice et tableaux c=
>> A<B
graphiques 2D 1 ans =
Programmation sous
>> d= (a & b) | c 1 0 1 0
d= >> A~=B
Matlab
1 ans =
1 0 1 0
Applications de Matlab >> f=(~a)&(~b)
>> ~(A<B)
f= ans =
0 0 1 0 1
x=(a~=b) >> ~A<B
x= ans =
1 1 1 1
1
M.SAYYOURI 41
x=-4*pi:pi/20:4*pi;
Matlab
21
?
Application de Matlab
Introduction
Les polynômes
Définition
Interface de Matlab n n 1 2
• Un polynôme de la forme p ( x) a x a x n
... a x a x a est représenté en Matlab par un
n 1 2 1 0
• Afin d’évaluer un polynôme pour une valeur fixe a, on utilise la commande polyval(P, a).
Commandes de base
Opérations arithmétiques
Variables et fonctions.
• Matlab fournie deux opérations arithmétiques de multiplication et de division à travers les commande conv
Matrice et tableaux
et deconv. Il reste au programmeur de programmer les deux autres opérations d’addition et de soustraction.
graphiques 2D
• C = conv(A, B) est la convolution des tableaux A et B, c'est à dire les coefficients du produit des deux
Programmation sous polynômes.
Matlab • [Q, R] = deconv(A, B) est la de-convolution des tableaux A et B ou Q est le quotient de la division et R est
Applications de Matlab
le reste (A = conv(B ,Q) + R).
Exemple
Soient p et q deux polynômes définis par :
P(x)=2x^3-x^2+3x-5 et q(x)=3x^2-5x+3
Calculer p(2) et q(1.5)
Calculer s(x)=p(x)+q(x) ; r(x)=2p(x)-3q(x) ; t(x)=p(x)q(x) ; u(x)=p(x)/q(x)
M.SAYYOURI 43
Application de Matlab
Introduction
Les polynômes
>> p=[2 -1 3 -5], q=[3 -5 3] >> t=conv(p,q)
Interface de Matlab
p= t=
Calculs élémentaires 2 -1 3 -5 6 -13 20 -33 34 -15
Commandes de base q= >> [u,v]=deconv(p,q)
3 -5 3
Variables et fonctions.
>> a=polyval(p,-2) u=
Matrice et tableaux a= 2/3 7/9
graphiques 2D
-31
>> b=polyval(q,1.5) v=
Programmation sous
b= 0 0 44/9 -22/3
Matlab 9/4
>> s=p+[0 q] >> conv(q,u)+v
s= ans =
Applications de Matlab
2 2 -2 -2 2 -1 3 -5
>> r=2*p-3*[0 q] >> p
r= p=
4 -11 21 -19 2 -1 3 -5
M.SAYYOURI 44
22
?
Application de Matlab
Racines et Interpolations
Introduction
• La commande roots(P) fait extraire les racines d’un polynôme P.
Interface de Matlab
• La commande poly(V) retourne un polynôme depuis ses racines stockées dans le vecteur V.
Calculs élémentaires • La commande Polyfit(X, Y, n) permet d’approximer un polynôme de dégrée n qui passent
Commandes de base approximativement par les points (X, Y). Cette approximation P(X(i))=Y(i) est au sens des moindres carrées :
p1=[1 -5 6]
Variables et fonctions.
>> x=[0 1 4]; y=[0 2 3];
Matrice et tableaux p1 = >> p11=polyfit(x,y,2)
graphiques 2D
1 -5 6 p11 =
>> a=roots(p1) -0.4167 2.4167 -0.0000
Programmation sous
a= >> p12=polyfit(x,y,1)
Matlab 3 p12 =
2 0.6538 0.5769
Applications de Matlab
>> poly(a) >> polyval(p11,4)
ans = ans =
1 -5 6 3
>> poly([1 1 1]) >> polyval(p12,4)
ans = ans =
1 -3 3 -1 3.1923
M.SAYYOURI 45
Application de Matlab
Dérivation et Intégration d’un polynôme
Introduction
• La commande polyder(P) retourne la dérivée d’un polynôme P.
Interface de Matlab • La commande polyint(P) retourne l’intégral d’un polynôme P. Si on veut calculer l’intégral entre deux
Calculs élémentaires point x1 et x2, on utilise la commande polyval pour évaluer l’intégral sur ces deux points puis on applique
Commandes de base la soustraction.
Variables et fonctions.
>> p=[1 1 1 1]; % p(x)=x^3+x^2+x+1
Matrice et tableaux >> der_p=polyder(p)
graphiques 2D
der_p =
3 2 1 %p’(x)=3x^2+2x+1
Programmation sous
>> der_p=polyder(polyder(p))
Matlab der_p =
6 2 %p’’(x)=6x+1
Applications de Matlab
>> int_p=polyint(p)
int_p =
1/4 1/3 1/2 1 0 %intégral de p(x)=1/4x^4+1/3x^3+1/2x^2+x+0
>> int_p12=polyval(int_p,2)-polyval(int_p,1)
int_p12 =
103/12
M.SAYYOURI 46
23
?
Application de Matlab
Introduction
Résolution des Systèmes Linéaires
Interface de Matlab
• Un système linéaire est un ensemble de n équations a p variables de la forme :
Calculs élémentaires
a x 11 1
a x
12 2
... a x 1p p
b 1
Commandes de base
Variables et fonctions.
a x 21 1
a x
22 2
... a x 2p p
b 2
Programmation sous
a x p1 1
a x
p2 2
... a x
pp p
b p
Matlab
Applications de Matlab Les aij sont appelés les coefficients du système ; les bk ont le second membre du système (ou la partie
gauche).
En calcul matriciel, un système linéaire s’écrit comme en deux formes : AX = B, ou
• A matrice des coefficients.
• X vecteur colonne des inconnues.
• B vecteur colonne comme second membre. 47
M.SAYYOURI
Application de Matlab
Résolution d’un système linéaire
Introduction
Matlab fournie plusieurs techniques afin de résoudre un système linéaire. Néanmoins, il reste a
Interface de Matlab
l’utilisateur de vérifier la compatibilité du système linéaire (s’il existe solution).
Calculs élémentaires Par exemple, si le déterminant de A est non-nul alors le système accepte une solution. Par contre, si le
Commandes de base déterminant est nul le système peut accepter un nombre infini de solution ou un ensemble vide des
Variables et fonctions.
solutions.
La commande X = A\B fait résoudre le système linéaire AX = B (noter l’antislash).
Matrice et tableaux
La commande X = B/A fait résoudre le système linéaire XA = B (noter le slash).
graphiques 2D
On peut calculer directement l’inverse de A en le multipliant par B. Il faut noter que la multiplication
Programmation sous
matricielle n’est pas commutative !
Matlab La commande X = inv(A)*B fait résoudre le système linéaire AX = B.
Applications de Matlab La commande X = B*inv(A) fait résoudre le système linéaire XA = B.
Exemple
Résoudre le système suivants:
x 2y z 1 1 2 1 x 1
x y z 0 1 1 1 y 0
2x 3 y z 1 2 3 1 z 1 48
M.SAYYOURI
24
?
Application de Matlab
Pour les commande A\B et B/A, si la matrice A n’est pas singulière, le
Introduction
>> A=[1 2 1;1 -1 1;2 3 1],B=[1 ;0; 1] résultat est (0/0) pour un nombre infini de solutions, et (k/0, k 0) pour
Interface de Matlab A= l’ensemble vide ().Pour les commande inv(A)*B et B*inv(A), si la
1 2 1 matrice A n’est pas singulière, le résultat est toujours (k/0, k 0).
Calculs élémentaires
1 -1 1
Commandes de base 2 3 1 >> A1=[1 2;2 4],B1=[2 ;3] >> A1=[1 2;2 4],B1=[2 ;4]
Variables et fonctions.
B= A1 = A1 =
1 1 2 1 2
Matrice et tableaux
0 2 4 2 4
graphiques 2D 1 B1 = B1 =
Programmation sous
>> X=A\B 2 2
X= 3 4
Matlab -1/3 >> X1=A1\B1 >> X1=inv(A1)*B1
Applications de Matlab 1/3 X1 = X1 =
2/3 1/0 1/0
>> X=inv(A)*B -1/0 1/0
X= >> X1=inv(A1)*B1 >> X1=A1\B1
-1/3 X1 = X1 =
1/3 1/0 0/0
2/3 1/0 0/0
M.SAYYOURI 49
Application de Matlab
Introduction
Résolutions des équations et des inéquations, linéaires et non-linéaires
Matlab utilise la commande solve afin de résoudre les équations et les inéquations, les systèmes linéaires et
Interface de Matlab
non linéaires.
Calculs élémentaires
Tout d’abord, il est nécessaire de déclarer des variables symboliques des équations (ou inéquations, …)
Commandes de base
en utilisant la commande syms.
Variables et fonctions. Il faut noter que solve retourne des solutions sous forme symbolique ou formelle au lieu de numérique
Matrice et tableaux (racine de 2 a la forme numérique de 1.4142 et la forme formelle 2^(1/2)).
graphiques 2D >> sqrt(sym(2)) >> syms x %équation de >> syms a b x inéquation de 2 degré
ans = 2 degré >> solve(a*x+b,x)
2^(1/2) ans =
Programmation sous
>> solve(x^2-3*x+2)
Matlab >> a=sym(1)/sym(3) ans =
Applications de Matlab
a= 1 -b/a
1/3 2 >> syms a b c x
>> b=sym(2)/sym(5) >> syms x, >> solve(a*x^2+b*x+c,x)
b= solve(x^2+x+1) ans =
2/5 ans =
>> c=a+b - 1/2 - (3^(1/2)*i)/2 -(b + (b^2 - 4*a*c)^(1/2))/(2*a)
c= - 1/2 + (3^(1/2)*i)/2 -(b - (b^2 - 4*a*c)^(1/2))/(2*a)
M.SAYYOURI 11/15 50
25
?
Application de Matlab
La commande solve permet aussi de résoudre une inéquation ou un système linéaire ou non linéaire des
Introduction
inéquations.
Interface de Matlab
>> syms x y % système à trois inconnues >> syms x % inéquation de 2 degré
Calculs élémentaires >> S = solve(x+y-5, x-y-1) >>solve('x^2-9 <=0')
S= ans =
Commandes de base
x: [1x1 sym]
Variables et fonctions.
y: [1x1 sym] Dom::Interval([-3], [3])
Matrice et tableaux >> [S.x S.y] >> syms x, solve('x^2-9 <0')
ans = ans =
graphiques 2D
[ 3, 2]
Programmation sous
>> syms x y z % système à trois inconnues Dom::Interval(-3, 3)
>>S=solve(x+y+z-5, x-y-z-1,2*x+y-2*z+1) >> syms x, solve('x^2-9 >=0')
Matlab
S= ans =
x: [1x1 sym]
Applications de Matlab
Application de Matlab
La boîte à outils de Calcul symbolique permet de calculer la dérivé , l’intégral et les limites d’une fonction.
Introduction
Calcul de la dérivée d’une fonction
Interface de Matlab
diff(f) calcule la dérivée de f par rapport à x :
Calculs élémentaires
Pour calculer la dérivée seconde : diff(f,2) ou bien diff(f,x,2)
Commandes de base
La fonction diff peut également agir sur une matrice. Dans ce cas la dérivation est effectuée sur chaque
Variables et fonctions.
élément de la matrice,
Matrice et tableaux
>> syms a b x >> A=[cos(3*x) sin(2*x); tan(x) 1]
graphiques 2D
>> f=a*cos(x)+b A=
Programmation sous
[ cos(3*x), sin(2*x)]
f=
[ tan(x), 1]
Matlab b + a*cos(x) >> diff(A)
Applications de Matlab >> diff(f) ans =
ans = [ -3*sin(3*x), 2*cos(2*x)]
-a*sin(x) [ tan(x)^2 + 1, 0]
>> diff(A,2)
>> diff(x^3+2*x^2+3*x+1,x)
ans =
ans = [ -9*cos(3*x), -4*sin(2*x)]
3*x^2 + 4*x + 3 [ 2*tan(x)*(tan(x)^2 + 1), 0]
M.SAYYOURI 52
26
?
Application de Matlab
Calcul de l’intégral d’une fonction
Introduction
Si f est une expression symbolique, alors int(f)tente de trouver une autre expression symbolique F telle que
Interface de Matlab
diff(F)=f , c’est-à-dire que int(f) donne l’intégrale indéfinie de f si elle existe.
Calculs élémentaires
Exercice
La vitesse d’une particule est exprimée par la fonction v(t)=tsin(t/2)
1. Trouver la position de la particule ( ) sachant que la position initiale est (0) = 0
2. Trouver l’accélération de la particule ( ) 53
M.SAYYOURI
Application de Matlab
Calcul des limites d’une fonction
Introduction
Les commandes syms a x, imit( f(x),x,a) permettent le calcul de la limite de f en a
>> syms x
Interface de Matlab
>> syms x >> syms n x >> syms x
Calculs élémentaires >> limit(sin(x)/x,x,0) >> limit((1+x/n)^n,n,inf) >> limit(log(x)/x,x,inf) >> limit(x*log(x),x,0)
Commandes de base ans ans = ans = ans =
1 exp(x) 0 0
Variables et fonctions.
Programmation sous
Exemple
2
Matlab 1
Ecrire la commande qui permet de calculer 2
k 0
k 6
Applications de Matlab
k 1
Ecrire la commande qui permet de calculer x pour |x| < 1
k 0
1 x
>> syms k n >> syms k x
>> symsum(1/k^2,1,inf) >> symsum(x^k,k,0,inf)
ans = ans =
pi^2/6 piecewise([1 <= x, Inf], [abs(x) < 1, -1/(x - 1)])
M.SAYYOURI 54
27
Résumé des commandes MATLAB
On a regroupé par sujet d'intérêt les différentes commandes et fonctions de MATLAB. Il en
existe d'autres que l'on pourra trouver dans les différentes boîtes à outils (toolbox) qui
viennent compléter le logiciel de base.
TP N : 1 MATLAB
APCI S2
Exercice1 : Calculs
1. Donner le résultat des calculs suivants :
1
52 2𝜋 |1+2𝑖| 10 0
3 ; 𝑒 −2ln(3𝜋) ; |1 − √3| ; 3√2 + cos ( 3 ) ; ; ;
2− 3 0 0
7
2. Afficher les résultats sous différents formats
Exercice 2 : nombres complexes
On note u et v les nombres complexes : u 11 7i et v 1 3i
Calculer les modules de u et de v , les produits uv et uv , les angles de u et de v et les parties
réelle et imaginaire de u 3 v 2 .
Exercice 4 : Matrices
On note A, B et C les matrices suivantes
1 3 2
5 3 1
A , B 1 2 5 , C 10 5
10 0 3 6 1 1 3 1
1 0 2
1. Calculer les matrices CB , BT C et ABT .
© Pr : M. SAYYOURI
Université Chouaib Doukkali
Ecole Nationale Des Sciences Appliquées D’el Jadida
TP N : 2 MATLAB
APCI S2
Exercice1 :
Soit un vecteur y contenant des valeurs comprises entre 6 et 6 avec un pas de 0.001. Soit
deux fonctions h et i définie par : h( x) sin( ) et i( x) cos( )
4x 4x
Ecrire un script Matlab représentant h et i en fonction de y sur le même graphe.
Exercice 2:
1. A l’aide d’une boucle for-end, calculer 7! .
2. A l’aide d’une boucle for-end, calculer la somme des carrés des 20 premiers entiers.
3. On considère la suite un définie par :
u0 0
n , un 1 2un 3
A l’aide d’une boucle for-end, calculer u8
4. On considère la suite un définie par :
u0 0
u1 1
n , u u u
n2 n 1 n
Exercice 5 :
Soient la matrice et les vecteurs colonnes suivants :
5 / 8 1/ 4 1/ 8 1 5
A 1/ 4 0 1/ 4 , b 1 u1 2
© Pr : M. SAYYOURI
Université Chouaib Doukkali
Ecole Nationale Des Sciences Appliquées D’el Jadida
1. Construire une fonction suite.m calculant les premiers termes de la suite un . Cette fonction aura
comme arguments d’entrée les données suivantes : la matrice A, le second membre b, le terme
initial u1 , et le nombre de termes voulus nbit .
2. Représenter graphiquement l’évolution de chacune des composantes. Qu’observe-t-on ?
3. Soient
5 6 3 2
Ab 1 5 1 , u1b 1
1 2 0 0
Observe-t-on le même comportement si on remplace u1 par u1b ? Que se passe-t-il si on remplace
A par Ab (quel que soit le terme initial) ?
Exercice 6
Ecrire un M-file pour la fonction g définie sur [2, 5] par
0 x 1
15( x 13/4) 1 x 1/ 2
e 1
g ( x) 1 1/ 2 x 3
3 x 4
e 15( x 7/2)
2
x4
0
2. Tester la fonction sur quelques valeurs, par exemple f (1) et f (3) .
3. Créer un tableau x d'abscisses de -2 à 5 par pas de 0.01
4. Représenter la fonction f aux points xi , avec la commande plot(x, f(x))
Exercice 7 :
On rappelle deux approximations de la dérivée d'une fonction par différences finies
f ( x h) f ( x ) f ( x h) f ( x h)
f ' ( x) , f ' ( x)
h 2h
1. Définir dans un M-file la variable h = 0.1 et un tableau d'abscisses x pour discrétiser finement
l'intervalle [0, ].
2. Calculer dans un tableau d la dérivée exacte de la fonction sin aux points x et dans un tableau
d1 les valeurs approchées par la première formule ci-dessus. Calculer l'erreur maximale commise
en faisant cette approximation sur l'intervalle [0, ]. . Diminuer h, que remarque-t-on ?
3. Mêmes questions avec la deuxième approximation. Les valeurs approchées seront calculées
dans un vecteur d 2
4. Représenter sur le même graphique la dérivée et ses deux approximations plot(x,d,x,d1,x,d2)
Que remarque-t-on, quelle est la meilleure approximation ?
Exercice 8 :
Tracer le graphe des fonctions suivantes :
f ( x) x 2 sin(nx) sur [-4 4 ] pour n=1,2,3,4,5
x
f ( x) e sin(nx) sur [-4 4 ] pour n=1,2,3,4,5
sin(nx)
f ( x) sin c( x) sur [-4 4 ] pour n=1,2,3,4,5
x
© Pr : M. SAYYOURI
Université Chouaib Doukkali
Ecole Nationale Des Sciences Appliquées D’el Jadida
TP N : 3 MATLAB
APCI S2
Exercice1: Calcul polynomial
1) Déterminer les racines de :
a. x2 4 x 4 0
b. x2 3x 8 0
c. x5 2 x4 2 x3 4 x2 3x 5 0
d. (1 i) x 2 (2 5i) x 3.5 0
2) Déterminer les coefficients de polynôme Q si les racines de Q sont : [2 2 3 -5 ]
3) Déterminer : x 2 2 x 3 x3 4 x 2 x x 5 ?
4) Soit f ( x) 2 x2 7 x 10 , calculer f 6
© Pr : M. SAYYOURI
Université Chouaib Doukkali
Ecole Nationale Des Sciences Appliquées D’el Jadida
12 3
a , cos( x) cos( y) sin( x)sin( y) , cos2 ( x ) sin 2 ( x ) cos 2 ( y ) s in2 ( y )
12 3 4 4 4 4
2. Factoriser les expressions suivantes
x3 1 , x( x 1)( x 2)( x 3) 1 , x 4 1
N.B : simplify, factor, collect, expand effectuent également les transformations et simplifications
de ces expressions, simple appelant une à une toutes ces fonctions et retenant finalement le
résultat le plus simple.
3. Calculer les limites suivantes
1 𝑛 𝑥+1 1
lim (1 + ) ; lim ln( ) ; lim
𝑛→∞ 𝑛 𝑥→0 𝑥 𝑛→0+ x
d 3x 2 4 x d d d
, arctan(5 x 4 8 x) et ln( x3 3x 2 y 8 y 2
dx 2 dx dy dx
cos( x)
sin( x) 3x
16 b d b
2 dx , x 2 cos( x) dx ,
2 2
2
xye x y dx , xye x y dxdy
4 a c a
Exercice 9:
En utilisant la commande solve, résoudre les équations et les systèmes des équations suivants :
1. 2 x3 13x2 10 x 21 0
2. 2(ln x)3 13(ln x)2 10ln x 21 0
2e e 15
x y
3. x
e 2e 40
y
4. mx m 1 avec m
© Pr : M. SAYYOURI