Vous êtes sur la page 1sur 47

UNIVERSITÉ CHOUAIB DOUKKALI

École Nationale des Sciences Appliquées


EL JADIDA - ENSAJ

Introduction à MATLAB
Années Préparatoires au Cycle Ingénieur S2

Préparé et présenté par :


Pr : Mhamed SAYYOURI

Année universitaire 2016-2017


UNIVERSITÉ CHOUAIB DOUKKALI
Ecole Nationale des Sciences Appliquées d’El Jadida-ENSAJ

Cours : Introduction à MATLAB


Filière : Années Préparatoires au Cycle Ingénieur S2
Pr: Mhamed SAYYOURI

Année universitaire 2016-2017


1

PLAN
Introduction Evaluation:

Interface de Matlab Contrôle : 25%

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

graphiques 2D La fenêtre de commande (ou ligne de


Programmation sous commande):
Matlab c’est l’outil de base de Matlab. Elle permet entre
Applications de Matlab autre de faire n’importe quelle opération, de définir
et affecter les variables d’environnement, d’utiliser
les toolboxes via leurs fonctions, …

4
M.SAYYOURI

2
Interface de Matlab
Introduction

Interface de Matlab

Calculs élémentaires

Commandes de base

Variables et fonctions.

Matrice et tableaux

graphiques 2D La fenêtre d’historique de commande :


Programmation sous permet de répéter les commandes précédentes en
Matlab double-cliquant sur la commande concernée dans
Applications de Matlab cette fenêtre. On peut obtenir le même résultat en
ligne de commande par l’appui répétitif sur la
touche « flèche haut » du pavé numérique.

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

Variables et fonctions. variable temporaire choisie par Matlab


>> (3*2)/(5+3) « »
Matrice et tableaux
ans =
graphiques 2D 0.7500 4 décimales par omission
Programmation sous

Matlab >> r = (3*2)/(5+3) « »


Applications de Matlab r=
0.7500 variable choisie par l’utilisateur

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

Commandes de base >> y=(x+2*i)^2 « »


Variables et fonctions.
y=
7.8164 +13.7500i
Matrice et tableaux

graphiques 2D Un dernier point sur les variables :


Programmation sous
MATLAB fait la différence entre les minuscules et les majuscules.
Matlab
Les noms de variables peuvent avoir une longueur quelconque.
Applications de Matlab
Les noms de variables doivent commencer par une lettre.

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

Programmation sous >> b=3*j+2


Matlab Attention : Ces variables ne sont pas protégées, donc si vous b=
Applications de Matlab
les affectez, elles ne gardent pas leur valeur. C’est souvent le 2.0000 + 3.0000i
problème pour i et j que l’on utilise souvent spontanément >> x=1/0
comme indices de boucles, de telle sorte qu’on ne peut plus x=
ensuite définir de complexe ! ! Inf
>> y=x/x
y=
NaN 11
M.SAYYOURI

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

définir une variable M contenant la matrice , on écrira:


14
M.SAYYOURI

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

1 >> min(A) >> exp(A)


0 ans = ans =
1 1 0 0 2.7183 7.3891 20.0855
>> norm(A) >> length(A) 54.5982 1.0000 1.0000
ans = ans = 2.7183 1.0000 2.7183
4.5611 3 25
M.SAYYOURI

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

Programmation sous >> x = -2*pi : 0.01 : 2*pi ;


Matlab
>> y = sin(x);
>> plot(x, y)
Applications de Matlab
>> grid % afficher la grille
>> % afficher le titre et les étiquettes
>> title ('Graphe de Sinus')
>> xlabel('x')
>> ylabel('y=sinus(x)')

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

Programmation sous >> x = -2*pi : 0.01 : 2*pi ; y = sin(x); z=cos(x);


Matlab
>> plot(x, y, x, z)
>> legend('sin(x)','cos(x)')
Applications de Matlab
>> legend('hide')
>> legend('show')
>> title ('Graphe de Sinus et cosnus')
>> xlabel('x')
>> ylabel('y')

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

Programmation sous Matlab


Un script Matlab est composé d'une suite d'instructions ou de commandes, toutes séparées par une virgule (,),
Introduction
un point-virgule (;) ou un retour a la ligne ( ).
Interface de Matlab
Matlab facilite l’édition d’un nouveau script en utilisant le bouton (New Script) qui fait appel a l’éditeur de
Calculs élémentaires Matlab.
Commandes de base L’éditeur de Matlab crée par défaut un nouveau script sous le nom ‘untitled.m’. Le programmeur peut spécifié
Variables et fonctions.
ultérieurement un nom de son choix en utilisant le bouton (Save).
Généralement, le script est sauvegardé dans un fichier avec l’extension ‘.m’ (ex : script1.m) sous le dossier
Matrice et tableaux
courant. On peut aussi charger un fichier déjà édite en utilisant le bouton (Open).
graphiques 2D
L’exécution du script se fait a travers l’invite de commande en spécifiant juste le nom du script.
Programmation sous
L’exécution peut être effectuée directement depuis l’éditeur en cliquant sur le bouton (Run). Néanmoins, les
Matlab sorties des scripts (affichage des résultats) se fait toujours sur la fenêtre des commandes.
Applications de Matlab % mon premier script
a = 1;
b = 2;
c = a + b;
disp('la valeur de c est :');
disp(c);
fprintf('la somme de %d et %d égale à %d \n', a, b, c);
str = sprintf('%d + %d = %d \n', a, b, c); 30
M.SAYYOURI disp(str);

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

Programmation sous Matlab


Introduction
Affichage
L’affichage des variables se fait simplement par la spécification de leurs noms sans point virgule a la fin de
Interface de Matlab

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

commandes. La commande disp n’accepte qu’un seul type de donnée a la fois.


Variables et fonctions.

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

retour a la ligne via ‘\n’ et une tabulation via ‘\t’.


Programmation sous

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

ultérieurement en utilisant la commande disp().

Introduction des données à partir du clavier :


La commande input(msg) fait introduire une valeur à partir du clavier en affichant d’abord un message msg.
32
M.SAYYOURI

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

Programmation sous Matlab


Les instructions d’alternative (IF et SWITCH):
Introduction
Comme dans la majorité des langages de programmation, Matlab permet d’utiliser l’instruction if selon
Interface de Matlab la syntaxe suivante :
if condition
Calculs élémentaires
Commandes
Commandes de base elseif condition
Variables et fonctions.
Commandes

Matrice et tableaux
else
graphiques 2D Commandes
end ;
Programmation sous
Les segments de elseif est else sont optionnels, par contre la parution de if et end est obligatoire
Matlab

Applications de Matlab Exercice


1. Écrire un script Matlab eq2degre.m qui permet de résoudre une équation de second degré à une seule
variable ,
2. Écrire un script Matlab qui permet de tester la parité d’un nombre entier naturel donné par l’utilisateur

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

Applications de Matlab entrer a: 1


entrer b: -3
entrer c : 2
l‘équation admet deux solutions différentes
x1 =
2
x2 =
35
1
M.SAYYOURI

Programmation sous Matlab


On a aussi la possibilité d'utiliser l’instruction switch-case comme pour le langage C :
Introduction

Interface de Matlab switch expression % variable (comme a) ou % lecture d'un entier


Calculs élémentaires
expression de variables (a+b, f(a), …) a = input('Entrer un entier entre 1 et 5:');
case cas1 % valeur 1 de l’expression switch a
case 1
Commandes de base
commandes
disp('UN');
Variables et fonctions. case cas2 % valeur 2 de l’expression case 2
commandes disp('DEUX');
Matrice et tableaux
… case 3
graphiques 2D otherwise % autre valeurs de l’expression disp('TROIS');
Programmation sous commandes case 4
end ; disp('QUATRE');
Matlab case 5
disp('CINQ');
Applications de Matlab Exemple otherwise
Écrire un script Matlab qui demande un disp('cet entier n''est pas entre 1 et 5');
nombre compris entre 1 et 5 à l’utilisateur et end;
le convertit en lettre .
Entrer un entier entre 1 et 5 : 3
TROIS
Entrer un entier entre 1 et 5 : 8
36
M.SAYYOURI cet entier n'est pas entre 1 et 5

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

% affichage des nombres naturels % avec la boucle while


%impairs et inférieurs à 10 i = 1;
% avec la boucle for while i <= 10
for i = 1:2:10 disp(i);
disp(i); i = i + 2;
end; end; 37
M.SAYYOURI

Programmation sous Matlab


Les fonctions
Introduction
Les fonctions peuvent être déclarées directement dans un fichier script qui doit obligatoirement porter le
Interface de Matlab
même nom de la fonction a déclarer:
Calculs élémentaires
Une fonction est déclarée comme suit :
Commandes de base
function nomdefonction(inpar1, inpar 2, …)
Variables et fonctions.
% une fonction sans paramètre de sortie.
Matrice et tableaux
function outpar = nomdefonction(inpar1, inpar 2, …)
graphiques 2D
% une fonction avec un seul paramètre de sortie.
Programmation sous
function [outpar1, outpar2, …] = nomdefonction(inpar1, inpar 2, …)
Matlab
% une fonction avec plusieurs paramètres de sortie.
Applications de Matlab
Il faut noter que :
La fonction ne se termine pas par end comme dans les autres langages évolues.
Le point-virgule n’est pas nécessaire a la fin des lignes, sauf si un affichage du résultat de la ligne en
question est requis.
38
M.SAYYOURI

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

Programmation sous Matlab


Opérateurs relationnels et logiques
Introduction
Des expressions relationnelles et logiques peuvent être utilisées dans MATLAB exactement comme dans les
Interface de Matlab
autres langages de programmation tels que le Fortran ou le C.
Calculs élémentaires
Opérateurs relationnels
Commandes de base
Les opérateurs relationnels sont : <, <=, >, >=, ==, ~=
Variables et fonctions.
La comparaison d’égalité se fait à l’aide de [==] et l’inégalité à l’aide de [~=]. Ces opérateurs peuvent être
Matrice et tableaux
utilisés avec des scalaires ou des matrices. Le résultat d'évaluation d'une expression relationnelle est 1 (vrai)
graphiques 2D
ou 0 (faux).
Programmation sous
Opérateurs logiques
Matlab
Les expressions relationnelles peuvent être combinées en utilisant les opérateurs logiques suivants : &, | , ~
Applications de Matlab
qui signifient respectivement "et" (AND), "ou" (OR) et "non" (NOT). Ces opérateurs sont appliqués sur les
matrices élément par élément. Les opérateurs logiques ont une priorité plus faible que les opérateurs
relationnels, qui à leur tour ont une priorité plus faible que les opérateurs arithmétiques.

!! Il est conseillé d'utiliser les parenthèses afin d'éviter toute ambiguïté.


M.SAYYOURI 40

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

Programmation sous Matlab


Exemples = sin >0
Introduction
Imaginons que l'on veuille définir la fonction suivante :
Interface de Matlab
= sin 2 <0
C'est une fonction définie par morceaux puisque sa valeur dépend d'un test logique définissant, dans cet
Calculs élémentaires
exemple, deux domaines de définition.
Commandes de base Voilà comment définir y en fonction de x:
Variables et fonctions. >> x=-4*pi : pi/20 : 4*pi;
>> y=sin(x).*(x>0)+sin(2*x).*not(x>0);
Matrice et tableaux
>> plot(x,y,'-b*')
graphiques 2D >> xlabel('x')
>> ylabel('y')
Programmation sous >> title ('sin(x) et sin(2x)')

x=-4*pi:pi/20:4*pi;
Matlab

Applications de Matlab inds1=find(x>0);


x1=x(inds1);
inds2=find(x<=0);
x2=x(inds2);
y1=sin(x1);
y2=sin(2*x2);
y=[y2, y1];
plot(x,y,'-b*') 42
M.SAYYOURI

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

Calculs élémentaires vecteur ligne [a , a ,..., a , a , a ] (ou vecteur colonne) .


n 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

Matrice et tableaux ...


graphiques 2D a p 11
x 1
a p 12
x 2
... a p 1p
x p
b p

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

y: [1x1 sym] Dom::Interval([3], Inf)


z: [1x1 sym] Dom::Interval(-Inf, [-3])
>> [S.x S.y S.y]
ans =
[ 3, -1, -1]
M.SAYYOURI 51

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

>> syms x >> syms a b w t


Commandes de base
>> int(x^3+x+1) >> f=a*cos(w*t+b)
Variables et fonctions. ans = f=
Matrice et tableaux (x*(x^3 + 2*x + 4))/4 a*cos(b + t*w)
>> int(x^3+x+1,0,1) >> int(f,t)
graphiques 2D
ans = ans =
Programmation sous 7/4 (a*sin(b + t*w))/w
Matlab
>> int(log(x)) >> int(f,t,0,pi)
ans = ans =
Applications de Matlab x*(log(x) – 1 (a*(sin(b + pi*w) - sin(b)))/w

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.

Matrice et tableaux Calcul des sommes


On peut calculer des sommes symboliques quand elles existent en utilisant la commande symsum
graphiques 2D

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.

Gestions des commandes et des fonctions


help aide
what listing du nom des M_files présents
type impression d'un M_file
lookfor recherche d'une entrée dans le help
which localise les fonctions et fichiers
demo lance la démonstration
path défini les chemins d'accès aux fichiers et fonctions
cedit paramètres d'édition d'une ligne de commande
version affiche le numéro de version de MATLAB
whatsnew affiche les fichiers README de la toolbox
info information sur MATLAB et The MathWorks
why renvoie une réponse aléatoire non 'neutre'
Gestion des variables et de l'espace de travail
who affiche les variables courantes
whos affiche les variables courantes, format long
save sauve l'espace de travail sur disque
load restaure l'espace de travail à partir du disque
clear efface les variables et fonctions de la mémoire
pack réorganise la mémoire
size renvoie la taille d'une matrice
length renvoie la longueur d'un vcteur
disp affiche une matrice de texte
Commandes système
cd change le directory courant
pwd affihe le directory courant
dir, ls liste les fichiers
delete suppression de fichiers
getenv renvoie la variable d'environnement
! appelle et exécute une commande système
unix appelle et exécute une commande système, renvoie le résultat
diary sauvegarde le texte d'une session MATLAB
Fenêtre de commande MATLAB
clc efface la fenêtre de commande
home curseur en haut de l'écran
format définit le format d'affichage
echo affiche les instructions exécutées par un script
more contrôle de l'affichage paginé
Démarrer et quitter MATLAB
quit, exit quitter MATLAB
startup M_file de démarrage de MATLAB
matlabrc M_file principal de démarrage
Opérateurs sur les Matrices Opérateurs sur les Tableaux
+ addition + addition
- soustraction - soustraction
* multiplication .* multiplication
^ puissance .^ puissance
/ division à droite ./ division à droite
\ division à gauche .\ division à gauche
' transpose conjugué
.' transpose
kron produit de Kronecker
Opérateurs Relationnels Opérateurs Logiques
< inférieur à & et
> supérieur à | ou
<= inférieur ou égal à ~ non
>= supérieur ou égal à xor ou exclusif
== égal à
~= différent de
Caractère spéciaux
= assignation
[ ] définition de matrices ou vecteurs;
ensère les arguments de sortie des fonctions
( ) gère la priorité des opérations arithmétique
ensère les arguments d'entrée des fonctions
. point décimal
.. directory parent
... indique une ligne suite
, séparateur d'arguments ou d'instructions
; fin de lignes (matrices) ou suppression de l'affichage
% commentaires
: manipulation de sous matrices ou génèration de vecteurs
! appel au système
Variables prédéfinies
ans réponse à une expression sans assignation
eps précision de la virgule flottante
realmax plus grand nombre flottant
realmin plus petit nombre flottant positif
pi π
i, j [√(-1)]
inf ∞
NaN Not a Number
flops nombre d'opérations flottantes par seconde
nargin nombre d'arguments d'entrée d'une fonction
nargout nombre d'arguments de sortie d'une fonction
computer type du calculateur
Durées et Date
date date courante
clock horloge
etime durée d'exécution
tic, toc affiche le début et la fin d'exécution
cputime temps CPU écoulé
Matrices prédéfinies
zeros matice de 0
ones matrice de 1
eye matrice identité
diag matrice diagonale
toeplitz matrice de Toeplitz
magic carré magique
compan matrice compagnon
linspace vecteurs linéairement espacés
logspace vecteurs logarithmiquement espacés
meshgrid grille pour les graphiques 3D
rand nombres aléatoires à répartition uniforme
randn nombres aléatoires à répartition normale
hilb Hilbert
invhilb inverse de Hilbert (exact)
vander Vandermonde
pascal Pascal
hadamard Hadamard
hankel Hankel
rosser matrice test pour le calcul des valeurs propres
wilkinson matrice test pour le calcul des valeurs propres
gallery deux matrices test spéciales
Manipulation de Matrices
diag création ou extraction de la diagonale
rot90 rotation de 90°
fliplr retournement gauche-droit
flipud retournement haut-bas
reshape redimensionnement
tril partie triangulaire inférieure
triu partie triangulaire supérieure
.' transposition
: conversion matrice → vecteur
Fonctions logiques
exist teste l'existence d'une variable ou d'une fonction
any vrai si un élément est vrai
all vrai si tous les éléments sont vrais
find cherche l'indice des éléments non nuls
isnan vrai si l'élément n'est pas un nombre
isinf vrai pour tout élément infini
finite vrai pour tout élément fini
isieee vrai si la représentation est au format IEEE
isempty vrai pour une matrice vide
issparse vrai pour une matrice creuse
isstr vrai pour une chaîne de caractères
strcmp comparaison de deux chaînes
Instruction de contrôle
if test conditionnel
else complète if
elseif complète if
end terminaison de if, for et while
for instruction de répétition avec compteur
while instruction de répétition avec test
break interrompt une boucle for ou while
return retour
error affiche un message et interrompt l'exécution
Instructions spécifiques
input indicateur d'attente d'entrée
keyboard considère le clavier comme un fichier script
menu génère un menu de choix pour l'utilisateur
pause attente
function définition de fonction
eval exécute un chaîne de caractère
feval exécute une fonction définie dans une chaîne
global définit les variables comme globales
nargchk valide le nombre d'arguments d'entrée
Textes et chaînes
string à propos des chaînes dans MATLAB
abs convertit une chaîne en valeur numérique
blanks une chaîne d'espaces
eval évalue une chaîne contenant du code MATLAB
num2str convertit un nombre en chaîne
int2str convertit un nombre entier en chaîne
str2num convertit une chaîne en nombre
isstr vrai si l'élément est une chaîne
strcmp comparaison de chaînes
upper conversion en majuscule
lower conversion en minuscule
hex2num convertit une chaîne héxadécimale en flottant
hex2dec convertit une chaîne héxadécimale en entier
dec2hex convertit un entier en une chaîne héxadécimale
Mise au point (debug)
dbstop met un point d'arrêt
dbclear supprime un point d'arrêt
dbcont reprend l'exécution
dbdown change le contexte local
dbstack affiche qui appelle qui
dbstatus liste des points d'arrêt
dbstep exécute une ou plusieurs lignes
dbtype affiche un M_files avec lignes numérotées
dbup inverse de dbdown
dbquit sortie du mode debug
Traitement du son
saxis modification de l'échelle d'amplitude
sound convertit un vecteur en son
auread lit un fichier audio au format SUN
auwrite écritit un fichier audio au format SUN
lin2mu conversion loi linéaire vers loi µ
mu2lin conversion loi µ vers loi linéaire
Fonctions mathématiques élémentaires
abs valeur absolu ou module
angle argument d'un complexe
sqrt racine carrée
real partie réelle
imag partie imaginaire
conj complexe conjugué
gcd PGCD
lcm PPCM
round arrondi à l'entier le plus proche
fix troncature
floor arrondi vers -∞
ceil arrondi vers +∞
sign signe de
rem reste de la division
exp exponentiel
log log népérien
log10 log décimal
Fonctions trigonométriques
sin, asin, sinh, asinh
cos, acos, cosh, acosh
tan, atan, tanh, atanh
cot, acot, coth, acoth
sec, asec, sech, asech 1./cos(z), acos(1./z), 1./cosh(z), acosh(1./z)
csc, acsc, csch, acsch 1./sin(z), asin(1./z), 1./sinh(z), asinh(1./z)
Fonctions prédéfinies
bessel fonction de Bessel
beta fonction beta
gamma fonction gamma
rat approximation par un rationnel
rats format de sortie pour rat
erf fonction erreur erf
erfinv inverse de erf
ellipke intégrale elliptique complète
ellipj fonction elliptique de Jacobi
expint fonction intégrale exponentielle pour n=1
log2 logarithme base 2 ou décomposition mantisse, exposant
pow2 calcule 2 puissance y
Décompositions et factorisations de Matrices
inv inversion
lu décomposition LU
rref réduction de lignes
chol factorisation de Cholesky
qr décomposition QR
nnls moindres carrés non-négatif
lscov moindres carrés avec covariance connue
null noyau
orth orthogonalisation
eig valeurs et vecteurs propres
hess forme de Hessenberg
schur décomposition de Schur
cdf2rdf forme complexe diagonale vers forme réelle diagonale par blocs
rsf2csf forme réelle diagonale par blocs vers forme complexe diagonale
balance mise à l'échelle pour le calcul des valeurs propres
qz valeurs propres généralisées
polyeig polynôme aux valeurs propres
svd décomposition en valeurs singulières
pinv pseudo-inverse
Conditionnement
cond suivant norme L2 ( [(λmax)/( λmin)])
rcond ≅ 1 bon , ≅ 0. mauvais
condest suivant norme L1
norm normes L1,L2,Lp et L∞
normest estimateur de la norme L2
rank rang
Fonctions de Matrices
expm exponentiation (fonction interne)
expm1 M_file correspondant à expm
expm2 exponentiation par série de taylor
expm3 exponentiation via les valeurs et vecteurs propres
logm logarithme
sqrtm racine carrée
funm évaluation (ex: funm(A,'sin') donne sin(A))
poly polynôme caractéristique
det déterminant
trace trace
Polynômes
poly construit un polynôme à partir des racines
roots calcul des racines
roots1 calcul des racines
polyval évaluation en un point
polyvalm évaluation en une matrice de points
conv multiplication
deconv division
residue décomposition en éléments simples et residus
polyfit polynôme d'approximation
polyder différentiation
Analyse de données par colonne
max valeur max
min valeur min
mean valeur moyenne
median valeur médiane
std écart type
sort tri en ordre croissant
sum somme des éléments
prod produit des éléments
cumsum vecteur des sommes partielles cumulées
cumprod vecteur des produits partiels cumulés
hist histogramme
Traitement de signal
corrcoef coefficients decorrélation
cov matrice de covariance
filter fitrage monodimensionnel
filter2 filtrage bidimensionnel
cplxpair tri en paires complexes
unwrap suppression des sauts de phase
nextpow2 puissance de 2 immédiatement supérieure
fft FFT monodimensionnel (fréquences de 0 à 1)
fft2 FFT bidimensionnel
ifft FFT inverse
ifft2 FFT inverse
fftshift FFT (fréquences de -1/2 à 1/2)
Différences finies et Interpolation
diff approximation de la dérivée
gradient approximation du gradient
del2 Laplacien sur 5-points
subspace angle entre deux sous-espaces
spline interpolation spline cubique
interp1 interpolation monodimensionnel
interp2 interpolation bidimensionnel
interpft interpolation 1D par FFT
griddata maillage de données
Intégration numérique
quad intégrale de Simpson
quad8 intégrale de Newton-Cotes
trapz méthode des trapèzes
Equations non linéaires et Optimisation
fmin minimisation d'une fonction d'une variable
fmins minimisation d'une fonction de plusieurs variables
fsolve résolution d'un système d'équations non-linéaires
fzero zéro d'une fonction d'une variable
Graphiques 2D
plot graphe linéaire
loglog graphe en échelle log-log
semilogx graphe en échelle semi-log (abscisse)
semilogy graphe en échelle semi-log (ordonnée)
fill graphe de polynômes 2D remplis
polar graphe en coordonnées polaires
bar histogramme bâtons
stairs fonction en marches d'escalier
errorbar graphe avec barres d'erreur
hist histogramme
rose histogramme en pseudo camembert
compass représentation (module,argument) polaire
feather représentation (module,argument) linéaire
fplot graphe d'une fonction
Annotation de graphiques
title titre du graphique
xlabel légende abscisse
ylabel légende ordonnée
zlabel légende cote
grid dessin d'une grille
text texte
gtext placement de texte avec la souris
ginput entrée graphique par la souris
Contrôle des fenêtres graphiques
figure ouvre une fenêtre graphique
gcf retourne le numéro de la figure courante
clf efface la figure courante
close ferme la figure courante
hold gère la surimpression
ishold état de la surimpression
subplot sous fenêtres graphique
axes axes en position arbitraire
gca retourne le numéro des axes courants
axis contrôle l'apparence et l'échelle des axes
caxis contrôle l'échelle des axes et de la pseudocouleur
whitebg dessine sur fond blanc
cinvert video inverse
Sauvegarde et copie graphique
print imprime ou sauve dans un fichier
printopt configuration de l'imprimante
orient orientation paysage ou portait
Apparence des graphiques
view spécifie l'angle de vue
viewmtx matrice de transformation
hidden gère les lignes cachées
shading mode de remplissage
specular reflectance d'une surface
diffuse reflectance d'une surface
surfnorm calcule la surface normale
colormap table de correspondances couleurs
brighten surbrillance ou sous brillance pour colormap
spinmap change colormap de manière cyclique
rgbplot dessine la colormap
hsv2rgb conversion hsv vers rgb
rgb2hsv conversion rgb vers hsv
Graphiques tridimensionnels
mesh surface maillée
meshc combinaison mesh + dessin des équi-niveaux
meshz surface maillée avec plan de référence
surf surface 3D à facettes
surfc combinaison surf + dessin des équi-niveaux
surfl surface 3D à facettes avec éclairage
plot3 dessin de lignes et points en 3D
fill3 graphe de polynômes 3D remplis
contour dessin 2D des équi-niveaux
contour3 dessin 3D des équi-niveaux
contourc utilisé par contour
clabel étiquettes des équi-niveaux
pcolor dessine en pseudocouleur
quiver affichage du gradient sous forme de flèches
image affiche une image
waterfall représentation chute d'eau
slice visualisation en volume
Objets 3D
sphere génération de sphères
cylinder génération de cylindres
peaks démonstration
Animations
moviein initialise l'espace mémoire pour l'animation
getframe enregistre une image pour l'animation
movie joue l'animation
Opérations sur les objets graphiques
uicontrol création d'un interface de contrôle utilisateur
uimenu création d'un interface menu utilisateur
set définit les propriétés d'un objet
get lit les propriétés d'un objet
reset réinitialise les propriétés d'un objet
delete supprime un objet
drawnow force les évènements graphiques en attente
Université Chouaib Doukkali
Ecole Nationale Des Sciences Appliquées D’el Jadida

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 3: Vecteurs et Matrices


Soient les vecteurs colonnes et la matrice suivants
1   5  1  2 3 4
u1   2  , u2   2  , u3   3 , A   5 1 2 
     
3  1  7  1 7 6 
A. Structures Matlab
1. Entrer ces données sous Matlab.
u
2. Calculer u1  3u2  3
3
3. Calculer le produit scalaire entre les vecteurs u1 et u2
4. Calculer la norme de u1 et u2
5. Déterminer l'angle formé par les vecteurs u1 et u2 .
6. Calculer le produit Au1 .
B. Commandes Matlab
Trouver les commandes Matlab permettant de :
1. Calculer u1 ; u2 et u3
1 2 
2. Déterminer les dimensions de la matrice A, en extraire le nombre de colonnes ;
3. Calculer le déterminant et l’inverse de A.
C. Résolution de systèmes linéaires
1. Proposer deux méthodes permettant de résoudre le problème Ax  u1 , et déterminer les
commandes Matlab associées.

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

2. Calculer la matrice D  I 2  BBT .


3. Calculer les déterminants des matrices C, D et E  AAT .
4. Calculer les inverses des matrices C, D et E  AAT .
5. Calculer les valeurs propres de la matrice E. Quel est le rayon spectral de E ?
6. Déterminer les vecteurs propres de la matrice A.

Exercice 5: Vecteurs et courbes



1. Définir la variable x  et calculer : y1  sin( x) et y2  cos( x) , puis y3  tan( x) à partir
4
de y1 et y2 .
   
2. Définir le vecteur x   et calculer y1  sin( x) et y2  cos( x) . Calculer alors
 6 4 3 
y3  tan( x) en utilisant seulement les vecteurs y1 et y2 précédents.
3. Définir le vecteur x   2 : 0.1: 2  . Combien y a-t-il de valeurs dans ce vecteur ?
Afficher en bleu la courbe du sinus sur x   2 2  .
4. Afficher sur ce même graphe la courbe du cosinus en rouge. Adapter l’épaisseur des
courbes, visualiser les points. Insérer un titre et donner une légende aux axes.
5. Enregistrer l’image.
Exercice 6 : Vecteurs
1. Créer un vecteur de 11 coordonnées contenant les nombres 5, 4,..., 4,5
2. Créer un vecteur de 1001 coordonnées contenant les nombres 500, 499, 498,..., 499,500.
3. Créer un vecteur u contenant 10 valeurs entre 0 et  séparées par un incrément constant.
4. Créer un vecteur v tel que v2i  cos u2i et v2i 1  sin u2i 1
5. Créer deux vecteurs de dimensions quelconques. Créer un vecteur en insérant le second
vecteur entre les 2-ème et 3-ème éléments du premier vecteur et Afficher la longueur de
chaque vecteur.

Exercice 7 : Manipulation de matrices


1. Définir la matrice :
1 4 6 
A  1 3 0 
0 1 8 
2. Calculer la matrice B  A1 . Vérifier en effectuant le produit AB.
3. Extraire dans le vecteur X la première ligne de A et dans Y la deuxième colonne de B.
4. Calculer le rang de la matrice C  YX .
5. Définir une matrice R aléatoire à 3 lignes et 7 colonnes. Combien de nombres sont plus grands
que 0.5 ? Que 0.8 ? Où sont-ils situés ?
6. Construire alors une matrice P obtenue à partir de la matrice R en remplaçant tous les nombres
inférieurs à 0.4 par 0, et tous les nombres supérieurs ou égaux à 0.4 par 1.
7. Calculer alors le nombre d’éléments de la matrice P supérieurs ou égaux à 0.4.
Exercice 8
1. Soit A une matrice carrée. En une ligne, construire une matrice diagonale B ayant la même
diagonale que A.
2. Construire une matrice B comportant quatre lignes et trois colonnes remplies par colonnes
successives avec les éléments du vecteur 1:12
© 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
 n2 n 1 n

A l’aide d’une boucle for-end, calculer u72 .


Exercice 3:
1. Ecrire un script MATLAB qui permet de calculer les éléments de la matrice C, la somme de
deux matrices A et B de dimensions 1*3 chacune.
2. Ecrire un script qui permet de lire une matrice saisie par l’utilisateur et l’informe si elle est
carrée.
3. Ecrire un programme MATLAB qui permet de retourner la transposée AT d’une matrice A
(2*3) saisie par l’utilisateur. En calculant ses éléments.
Exercice 4
x5  3
1. Ecrire un M-file pour la fonction f ( x) 
x2  1
2. Tester la fonction sur quelques valeurs, par exemple f (1) et f (0) .
3. Créer un tableau x d'abscisses de -5 à 5 par pas de 0.1
4. Représenter la fonction f aux points xi , avec la commande plot(x,y)

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 
  

1/ 8 1/ 4 5 / 8 1   4 


On définit, pour n  1 , la suite de vecteurs un1  Aun  b

© 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

 x4
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 

Exercice 2: Calcul polynomial


1. Écrire le polynôme : P  x   x3  8x 2  32 x  13
2. Calculer de P  2  et P   .
3. Calculer les racines du polynôme P .
4. On pose : Q  x   4 x 2  3
5. Calculer P  x  Q  x  et P  x   Q  x  .
6. Calculer P  x  / Q  x  .
7. Calculer la dérivée de P  x  et Q  x 
8. Calculer la primitive de P  x  et Q  x 
5 2
9. Calculer 0
P( x)dx et 
2
Q( x)dx
10. Obtenir le graphe de P  x  sur l’intervalle [-5, 12] avec un pas de 0,01. x = -5 : 0.01 : 12
plot(x, polyval(p,x)
Exercice 3: Arithmétique
1) Calculer :
a. Le reste de la division de 20 sur 33 en utilisant la commande rem
b. La décomposition en facteurs premiers de 60 en utilisant la commande factor
c. Le pgcd et le ppcm de (325, 243) et (5, 60) en utilisant les commandes lcm et gcd
2) Afficher les nombres premiers inférieur à 100 en utilisant la commande isprime
3) Est-ce que 751 est premier ? utiliser la commande primes
Exercice 4 Résolution des systèmes linéaires
Résoudre matriciellement les systèmes suivants. Si Matlab affiche un message d’erreur, dire
pourquoi.
6 x  y  5 z  10 6 x  y  5 z  10
 
a. 2 x  2 y  3z  11 b. 2 x  2 y  3z  2
4 x  9 y  7 z  12 4 x  9 y  7 z  12
 

© Pr : M. SAYYOURI
Université Chouaib Doukkali
Ecole Nationale Des Sciences Appliquées D’el Jadida

Exercice 5 : Résolution d’un circuit électrique


Soit le circuit de la figure 1. On souhaite calculer les valeurs efficaces et phases des courants
lorsque : Ug = 220 [V] ; fg = 50 [Hz] ; R1 = 10[  ] ; R2 = 3 [  ] ; C = 10 [μF] ; L = 100 [mH] :

Figure1 : Circuit électrique


A. Description du circuit :
Pour résoudre ce circuit, il faut bien entendu commencer par écrire les équations qui le décrivent.
Considérant les courants I1, I2, I3 circulant dans les 3 branches du circuit, celui-ci est
complètement décrit par les équations suivantes :
 1
u g  R1 I1  jwC I 2

 1
0   I 2  ( R2  jwL1 )
 jwC
0  I1  I 2  I 3


Equations que l’on peut écrire sous forme matricielle :
 1 
 R1 jwC
0 
   I1   u g 
 1    
 0  jwC R2  jwL   I 2    0 
   I 3   0 
1 1 1 
 
 
La solution s'obtient en multipliant à gauche les deux membres de l'équation par l'inverse de la
matrice décrivant le circuit :
,
1
 1 
 R1 jwC
0 
 I1     ug 
   1   
 I2    0 
jwC
R2  jwL  0
I    0
 3  1 1 1   
 
 

B. Calcul avec Matlab


Ecrire un script Matlab (circuit.m) pour calculer les courants.
© Pr : M. SAYYOURI
Université Chouaib Doukkali
Ecole Nationale Des Sciences Appliquées D’el Jadida

Exercice 6: Calcul symbolique


1. En utilisant la boîte à outils de Calcul symbolique, simplifier les expressions suivantes :

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

Exercice 7: Calcul de la dérivée et de l’intégral


1. Calculer les dérivées suivantes :

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 

2. Calculer les intégrales suivantes :

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

3. Résoudre l’équation suivante par rapport à Xa1


0.21 1  0.75 X k2
  a1
dX a1 avec  3.23
0 k2 k
1  (1  ) X a1 1
k1
Exercice 8:
On donne les points
A (3, 6) ; B (5, 6) ; C (7 , 2) ; D (1 , 2)Dessiner dans un repère
orthonormé le quadrilatère ABCD et ses diagonales [AC]et [BD].

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

Vous aimerez peut-être aussi