Cours matlab gpe
-
Upload
mustapha-rhila -
Category
Documents
-
view
1.828 -
download
5
Transcript of Cours matlab gpe
![Page 1: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/1.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 1
Introduction à MATLAB
![Page 2: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/2.jpg)
MATrix LABoratory
C’est un système interactif de programmation scientifique, pour le calcul numérique et la visualisation graphique.
Il est basé sur la représentation matricielle des données.
Le nom est dérivée de cette représentation MATLAB =
MATLAB
![Page 3: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/3.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 3
Plan du coursIntroduction et notions de base du MATLAB
Les fichiers et la programmation avec MATLAB
Instructions de contrôles sous MATLAB
Graphisme sur MATLAB
Fonctions d’entrée/sortie sous MATLAB
![Page 4: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/4.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 4
Comment programmer ?x=[2 3 7;
9 5 2;2 1 2];
X=inv(x); X= -0.2424 -0.0303 0.87880.4242 0.3030 -1.78790.0303 -0.1212 0.5152;
Y=sin(X); Y=0.9093 0.1411 0.65700.4121 -0.9589 0.90930.9093 0.8415 0.9093
![Page 5: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/5.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 5
Quelle version ?
Copyright (c) 1984-2011by
The MathWorks, Inc.
![Page 6: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/6.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 6
Qu’est-ce que MATLAB© ? Sur le plan de la programmation, le langage MATLAB© est basé sur une
structure de donnée où l’élément de base est le tableau avec un jeu d’opérations adapté à cette entité.
La syntaxe pour le traitement de variables qui se représentent sous la forme de vecteurs ou matrices, dont la dimension n’a pas à être fixée, se trouve simplifiée.
En plus une programmathèque permet des opérations variées et riches en fonctionnalités. MATLAB© est un outil puissant qui permet la résolution de nombreux problèmes en beaucoup moins de temps qu’il n’en faudrait pour les formuler en C ou en Pascal.
![Page 7: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/7.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 7
Qu’est-ce que MATLAB© ? Il consiste en un langage interprété qui s’exécute dans une fenêtre dite
d’exécution.
L’intérêt de MATLAB© tient, d’une part, à sa simplicité d’utilisation :
1) Pas de compilation, 2) Déclaration implicite des variables utilisées et, d’autre part, 3) A sa richesse fonctionnelle : arithmétique matricielle et nombreuses
fonctions de haut niveau dans divers domaines (analyse numérique, statistique, commande optimale, représentation graphique, ...).
![Page 8: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/8.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 8
Qu’est-ce que MATLAB© ?Logiciel interactif de calcul scientifique :Langage de programmation de haut niveauCalcul numériqueCalcul symboliqueCalcul matricielFonctions mathématiques usuelles (sin, exp, log10, …)Racines d’un polynôme Intégration numériqueBoites à Outils; e.g. Traitement Numérique du SignalGraphiques 1D, 2D & 3DEtc.
![Page 9: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/9.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 9
Domaines couverts par MATLAB©
![Page 10: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/10.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 10
Autres atouts de MATLAB© Ordinateur = super calculatrice Apprentissage facile, commandes intuitives Moins de C, Pascal, Fortran, Basic, etc. Inclusion des graphiques dans les documents Interaction avec des programmes externes Boites à outils couvrants une multitude de disciplines Une aide en ligne Sauvegarde de l’environnement du travail Etc. …
![Page 11: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/11.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 11
Set path
Fenêtre de commandes MATLAB©
Fenêtre de Commandes
Rappel ligne de commande
Matlab doit être installé, pour lancer l’exécution il faut effectuer un double clic sur l’icône de matlab.
![Page 12: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/12.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 12
Aide
Il est à noter que toutes les commandes sont en anglais et l’aide en ligne également !
![Page 13: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/13.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 13
Aide
Les commandes Matlab© doivent toujours être tapées en minuscules même si dans l'aide en ligne elles apparaissent en majuscules.
![Page 14: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/14.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 14
Types de données Dans Matlab il y a un seul type de données: le type de matrice
(matrix).
Tout est matrice → un nombre est une matrice carrée d’ordre 1.
Pas de déclaration de type.
L’utilisation ne s’occupe pas de l’allocation mémoire.
Les matrices et vecteurs peuvent être redimensionnées.
![Page 15: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/15.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 15
Variables MATLABVariable :
- Matrice m x n, m, n >1,- Vecteur 1 x n, n >1, - Scalaire 1 x 1
Nombres ou chaînes de caractères :- Nom_de_variable : aBz23k...
- 1er caractère = lettre - 19 premiers caractères reconnus - A a
![Page 16: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/16.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 16
Variables MATLAB Les noms des variables et de fonctions sont composés de
lettres et chiffres.
Matlab fait la distinction entre les majuscules et minuscules, ainsi mavar, MAVAR et MAvar sont des variables différentes.
Si la variable existe déjà, le contenu est écrasé par une nouvelle valeur affectée à cette variable.
![Page 17: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/17.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 17
Caractères et variables réservésCaractères spéciaux
= assignment statement[ used to form vectors and matrices] see [( arithmetic expression precedence) see (. decimal point... continue statement to the next line, separate subscripts and function arguments; end rows, suppress printing% comments: subscripting, vector generation! execute operating system command
![Page 18: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/18.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 18
Fonctions d’usage généralhelp help facilitydemo demowho list variables in memorywhat list M-files on disksize row and column dimensionslength vector lengthclear clear workspacecomputer type of computerquit quitexit exit
![Page 19: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/19.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 19
Caractères et variables réservésValeurs spéciales
ans answer when expression is not assignedeps floating point precisionpi i,j -1Inf NaN not-a-Numberclock wall clockdate dateflops floating point operation countnargin number of function input argumentsnargout number of function output arguments
![Page 20: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/20.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 20
Modes de Programmation
Interactif
![Page 21: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/21.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 21
Mode interactif
![Page 22: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/22.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 22
![Page 23: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/23.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 23
Vecteurs ou tableaux à 1 dimension Le moyen le plus simple de saisir un vecteur est d’entrer ses
éléments en les séparant par des blancs ou par des virgules
» x=[ 6 4 7]x=
6 4 7
Autre façon de saisir un vecteur ligne
» x=[6, 4, 7]x=
6 4 7
![Page 24: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/24.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 24
Vecteurs ou tableaux à 1 dimension Ce vecteur est considéré comme une matrice à une ligne et
trois colonnes
» size(x) Ou bien » [m n]=size(x)ans = m=1
1 3 n=3
La longueur d’un tableau, ou bien sa dimension
» longeur=length(x)longeur= 3
![Page 25: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/25.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 25
+ addition- subtraction* multiplication/ right division\ left division^ power‘ conjugate transpose
Opérateurs arithmétiques “Matrix” et “Array”
Opérateurs “Matrix” Opérateurs “Array”
Arithmétique élément-par-élément
+ addition- subtraction.* multiplication./ right division.\ left division.^ power.‘ transpose
![Page 26: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/26.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 26
Vecteurs ou tableaux à 1 dimension Si on veut créer le vecteur v=[6 4 7 1 2 8], on peut utiliser le
vecteur x précédent
» v=[x 1 2 8] %Concaténationv=
6 4 7 1 2 8
Dans Matlab, les indices d’un tableau commencent à 1. Pour récupérer une composante d’un vecteur, il faut spécifier son indice entre parenthèses:
» v(2)ans=
4
![Page 27: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/27.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 27
Vecteurs ou tableaux à 1 dimension L’addition et la soustraction de vecteur de mêmes dimensions se font
élément par élément
» x=[4 3]; y=[5 7]; x-yans=
-1 -4» x+yans=
9 10
Transposé conjugué < ’> et transposé d’un vecteur < .’>
» tx = x ’tx=
43
![Page 28: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/28.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 28
Vecteurs ou tableaux à 1 dimension Combinaison linéaire de deux vecteurs de mêmes dimensions se font
élément par élément
» x=[4 3]; y=[5 7]; 2*x - 4*yans=
-12 -22» 4*x + 3*y.^2ans=
91 159
Division de deux vecteurs
» x/ytx=
43
![Page 29: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/29.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 29
Vecteurs ou tableaux à 1 dimension» q = 4 : 10
q=4 5 6 7 8 9 10
» q(end)ans =
10
» q(end-4 : end)ans =
6 7 8 9 10
» q(endq(end-2 : end)ans =
8 9 10
![Page 30: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/30.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 30
sum : somme des composants d’un vecteur
» sum(x) % x=[4 3]; ans=
7
prod : produit des composants d’un vecteur
» prod(y)=ans=
70
Fonctions opérant sur des vecteurs
![Page 31: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/31.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 31
sqrt : racines carrées des composants d’un vecteur
» sqrt(x)ans=
2.000 1.7321
mean : moyenne des composantes d’un vecteur
» mean(x)ans=
2.3333
Fonctions opérant sur des vecteurs
![Page 32: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/32.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 32
find : recherche les indices et les valeurs des éléments non nuls
» X = [1 0 4 -3 0 0 0 8 6]; indices = find(X)indices =
1 3 4 8 9
» find(X > 2)ans=
3 8 9
Fonctions opérant sur des vecteurs
![Page 33: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/33.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 33
sort : ordonne les éléments du vecteur x par ordre croissant
» sort(x) % x=[3 5 1 9 2 -2 51 -8]ans=
-8 -2 1 2 3 5 9 51 linspace : génère un vecteur de N points équiespacés
entre deux points donnés
» y = linspace(0,1,6)y =
Columns 1 through 60 0.2000 0.4000 0.6000 0.8000 1.0000
Fonctions opérant sur des vecteurs
![Page 34: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/34.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 34
fliplr : fait tourner le vecteur de droite à gauche
» fliplr(x) % x=[3 5 1 9 2 -2 51 -8]ans=
-8 51 -2 2 9 1 5 3
flipud : fait tourner le vecteur du bas vers le haut
» y = flipud([1; 2; 9])y =
921
Fonctions opérant sur des vecteurs
![Page 35: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/35.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 35
![Page 36: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/36.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 36
Pour saisir une matrice, les lignes sont séparées par un point virgule
» x= [0 1 2; 3 4 5]x=
0 1 23 4 5
Ou bien en séparant les lignes par des retours à la ligne
» x= [0 1 2; 3 4 5 ]
Matrices ou tableaux à 2 dimensions
![Page 37: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/37.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 37
Dimensions d’une matrice x:
» [ m n ]=size(x)m=
2n=
3 Accès à un élément d’une matrice
» x(2,1) ans=
3
Matrices ou tableaux à 2 dimensions
![Page 38: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/38.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 38
Matrice identité (matrice carrée) :» I=eye(3)
I=1 0 00 1 00 0 1
Matrice unité
» U=ones(2,3) U=
1 1 11 1 1
Matrices particulières
![Page 39: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/39.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 39
Matrice nulle :
» Z=zeros(3)Z=
0 0 00 0 00 0 0
Matrice aléatoire (les éléments sont générés aléatoirement entre 0 et 1)
» A=rand(1,4) A=
0.6597 0.1458 0.2564 0.2131
Matrices particulières
![Page 40: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/40.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 40
» a= 1:5a=
1 2 3 4 5
» x= 0: pi/4: pi x=
0 0.7854 1.5708 2.3562 3.1416
» Em= 15: -3: 1 Em=
15 12 9 6 3
Formes particulières d’initialisation
![Page 41: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/41.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 41
Formes particulières d’accès» G=[2 1 6 -5; 3 9 11 4; 6 8 1 36; -1 5 -7 9; 9 5 3 1 ];
» G(2:3,4)’ ans=
4 36
» G([1 3 5],[2 3 4])ans=
1 6 -58 1 365 3 1
![Page 42: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/42.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 42
![Page 43: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/43.jpg)
Exemple 1
Prof. Abdellah ADIB 43FI-GPE 2011-2012
Donner les valeurs de la fonction suivante
y = (x+2)2(x3+1)
pour des valeurs de x entre -1 et 3 avec un pas de 0.1
Solution :
» x=[-1:0.1:3];
» y = .*((x+2) ).^ 2 ((x.^3)+1);
![Page 44: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/44.jpg)
Exemple 2
Prof. Abdellah ADIB 44FI-GPE 2011-2012
Construire la fonction
z = s2/(s3 + 1)
pour 200 valeurs de x entre -3 et 40.
Solution :
» s=linspace(-3,40,200);
» y = s.^2./(s.^3 + 1);
![Page 45: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/45.jpg)
Exemple 3
Prof. Abdellah ADIB 45FI-GPE 2011-2012
Donner 50 valeurs du polynôme
y = x4 + x2 - 3
Entre x = -2 et x = 2.
Solution :
» x=linspace(-2,2,50);
» c = [1 0 1 0 -3];
» y = polyval(c,x);
![Page 46: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/46.jpg)
Exemple 4
Prof. Abdellah ADIB 46FI-GPE 2011-2012
Soit la matrice F=[1 2 3; 4 5 6; 7 8 9], éliminer la deuxième colonne puis la première ligne
Solution :
» F(:,2) = []
F=1 2 34 5 67 8 9
» F(1,:) = []
F=4 5 67 8 9
![Page 47: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/47.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 47
Nombres complexes» i^2ans=
-1» j^2ans=
-1» a=3+2ia =
3.0000 + 2.0000i» w=r+exp(2*j*teta);» w=[1 2 8.3 sqrt(6)]+0,3*i*ones(1,4);
![Page 48: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/48.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 48
Fonctions d'arrondisround(x) : entier le plus proche de x,
» round(1.8356) » round(3.4356)
ans= ans=
2 3
floor(x) : arrondi par défaut,
» floor(3.9)
ans=
3
![Page 49: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/49.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 49
Fonctions d'arrondisceil(x) : arrondi par excès,
» ceil(1.8356) » ceil(3.4356) ans= ans=
2 4
fix(x) : arrondi par défaut un réel positif et par excès un réel négatif.
» fix(3.9) » fix(-2,1) ans= ans=
3 -2
![Page 50: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/50.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 50
Format : La manière d’apparition des nombres » s = [1/2 1/3 pi];» format short; ss =
0.5000 0.3333 3.1416» format long; ss =
0.50000000000000 0.33333333333333 3.14159265358979» format rat; ss =
1/2 1/3 355/113 » format bank; ss =
0.50 0.33 3.14
![Page 51: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/51.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 51
![Page 52: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/52.jpg)
Exemple
Prof. Abdellah ADIB 52FI-GPE 2011-2012
Créer une matrice 4x2 tous zéros et la stocker dans une variable. Puis, remplacer la deuxième rangée dans la matrice par un vecteur se composant des 3 et des 6.
Trouver une manière efficace de reproduire la matrice suivante :
mat =7 8 9 1012 10 8 6
Puis, donner les expressions qui, pour la matrice mat de,
1. se rapporter à la deuxième rangée entière2. se rapporter aux deux premières colonnes
![Page 53: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/53.jpg)
Exemple
Prof. Abdellah ADIB 53FI-GPE 2011-2012
Créer un vecteur de variable vect ; il peut avoir n'importe quelle
longueur. Puis, écrire les instructions qui permettent de stocker
la première moitié du vecteur dans une variable et la deuxième
moitié dans une autre variable. S'assurer que vos instructions
d'affectation sont générales, et opèrent correctement même si
le vect a un nombre pair ou impair d'éléments. (Conseil :
Employer une fonction d'arrondis telle que la difficulté.).
![Page 54: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/54.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 54
![Page 55: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/55.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 55
L'éditeur de scripts MATLAB
![Page 56: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/56.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 56
%*****************************%%* pivot_x.m *%%*****************************%echo offx=[1 2 3 4]x=fliplr(x)» pivot_xx =
1 2 3 4x =
4 3 2 1
Fonctions “usager” de type “script”Fonction sans argument
Variables globales
![Page 57: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/57.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 57
Fonctions “usager” de type “function”Les fonctions m-files sont des vrais sous programmes; puisque elles utilisent des arguments I et/ou O.
Variables autres que les I/O sont locales à la fonction
Syntaxe générale :
function [arguments de sortie] (arguments d’entrée)Nom_fonction=
![Page 58: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/58.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 58
function y = plptnb(n1,n2)% Retourne le plus petit de n1 ou n2%Notes : Un exemple de fonctiony = n2;if n1 < n2
y=n1;end;Return;
Exemple de “function”
» a=-2; b=3;» plptnb(a,b) » ans =
-2
Un seul argument desortie, pas de [ ]
Arguments d’entrée
Nom dela fonction
1er ligne, doit contenir la définition de la
fonction
1- Commentaire, qui apparaîtra en utilisant help2- Les informations dans Notes n’apparaîtrons jamais
Le corps de la fonction
» plptnb(-2, 3) » ans =
-2
Utilisation de la fonction
![Page 59: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/59.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 59
Organisation d'un programmeToute bonne programmation repose sur l'écriture d'un script principal qui fait appel à des fonctions autonomes. Cela permet :
• d'améliorer la lisibilité
• de tester indépendamment des parties de programmation
• d'augmenter le degré de généralité (utilisation d'une même fonction à divers endroits du programme, voire réutilisation des fonctions dans d'autres applications)
![Page 60: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/60.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 60
Comme dans l'exemple ci-dessus, le nom du script attaché à une fonction doit obligatoirement porter le nom de la fonction avec l'extension.m.
Structure d’un Bon programme
![Page 61: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/61.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 61
![Page 62: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/62.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 62
ExemplesÉcrire une fonction qui calculera le volume d'une sphère creuse, on adoptera la formule suivante : 43où est le rayon intérieur et est le rayon extérieur.
Écrire une fonction qui permet de construire la matrice suivante :
2 2 2 2 2 2 2 3 3 3 3 3 3 3 7 7 7 7 7 7 7 9 9 9 9 9 9 9 4 4 4 4 4 4 4
![Page 63: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/63.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 63
![Page 64: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/64.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 64
Les opérateurs logiques combinent des expressions booléennes :
En terme numérique, tout nombre non nul est considéré comme vrai
Opérateurs logiques
![Page 65: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/65.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 65
& : ET logique élément par élément
| : OU logique élément par élément
~ : NON (négation logique de l’opérande)
Liste des opérateurs
![Page 66: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/66.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 66
ET logique Cas de deux expressions logiques
x = 1; y = 3;w = -1; z = 10;(x>y) & (w>z) (x>y) & (w<z) (x<y) & (w<z) x & y est équivalent à (x ~ =0)&(y ~= 0)
Cas de deux vecteurs
u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7];u & v 1 0 1 0 0 1
(VRAI FAUX VRAI FAUX FAUX VRAI)
0 (FAUX)0 (FAUX)1 (VRAI)
1 (VRAI)
![Page 67: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/67.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 67
Opérateur OU Cas de deux expressions logiques
x = 1; y = 3;w = -1; z = 10;(x>y) | (w>z) (x>y) | (w<z) (x<y) | (w<z) x | y (est équivalent à (x ~ =0) | (y ~= 0))
Cas de deux vecteurs
u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7];u | v 1 1 1 1 0 1
(VRAI VRAI VRAI VRAI FAUX VRAI)
0 (FAUX)1 (VRAI)1 (VRAI)
1 (VRAI)
![Page 68: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/68.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 68
Opérateur NON (négation) Négation d’une expression logique
x = 1; y = 3;~(x>y)~(x<y)~(x==y)
Négation d’un vecteur
~u (u = [1 0 2 3 0 5])équivalent a u == 00 1 0 0 1 0
(FAUX VRAI FAUX FAUX VRAI FAUX)
1 (VRAI)0 (FAUX)1 (VRAI)
1 (VRAI)
Négation d’un scalaire
~y équivalent a y == 0
![Page 69: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/69.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 69
![Page 70: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/70.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 70
Les instructions de contrôle Les principales instructions de contrôle sous Matlab sont :
Instructions IF … ELSEIF … ELSE …Instructions sélectives
Instructions SWITCH … CASE … OTHERWISE…Chois ventilés
Instructions WHILE … FOR … (Boucles)Instructions répétitives
Instructions CONTINUE … Passage à l’itération suivante dans une boucle
Instructions BREAK … Arrêt de l’exécution d’une boucle
![Page 71: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/71.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 71
![Page 72: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/72.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 72
Instruction sélective IF La sélection if
Syntaxe :
if condition
séquence d’instructions Corps de la sélection
end
Mots clé
Fin de la sélection
Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux),
![Page 73: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/73.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 73
Instruction sélective IF … ELSE La sélection if … else … end
Syntaxe :
if condition
séquence d’instructions 1 Action
else
séquence d’instructions 2 Alternativeend
Mots clé
Fin de la sélection
Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux),
![Page 74: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/74.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 74
Instruction sélective IF … ELSEIF … ELSE La sélection if … elseif … else … end
Syntaxe :
if condition
séquence d’instructions 1 Action
elseif
séquence d’instructions 2 Alternative 1Else
séquence d’instructions 3 Alternative 2end
![Page 75: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/75.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 75
ExempleEcrire une fonction qui cherche la mention en fonction de la moyenne obtenue
function m = mention(moy)% Mention en fonction de la moyenne
if moy>=16m=’très bien’;
elseIf moy>=14m=’bien’;
elseIf moy>=12m=’assez bien’;
elseIf moy>=10m=’passable’;
elsem=’Ajourné’;
end
![Page 76: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/76.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 76
![Page 77: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/77.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 77
Instruction répétitive FOR La sélection for … end
Syntaxe :
for i = ind_debut : ind_fin
séquence d’instructions Corps de la boucle
end
Mots clé
Fin de la boucle
i variable appelée indice de la boucle
![Page 78: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/78.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 78
Instruction répétitive SWITCH La sélection switch … case c1 … case cn … otherwise … end Syntaxe :
switch varcase c1
séquence d’instructions 1. . . n choix ventiléscase cn
séquence d’instructions notherwise
séquence d’instructions par défaut end
var expression ou variable à évaluer, c1 … cn constantes représentant les possibilités d’évaluation de var.
![Page 79: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/79.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 79
![Page 80: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/80.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 80
Graphiques» x=0:0.05:(2*pi); » y=exp(-x).*sin(x);» plot(x,y);
![Page 81: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/81.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 81
Graphe plus lisible» axis([0 (2*pi) -0.1 0.4]);» title ('Exemple de graphique');» xlabel(‘Abscisse');» ylabel(‘Ordonnee');» grid;
Exemple de graphique
Ord
onne
e
Abscisse
![Page 82: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/82.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 82
Graphe avec plusieurs courbes superposées » y1=exp(-2*x).*sin(x);» y2=exp(-3*x).*sin(x);» y3=exp(-4*x).*sin(x);» plot(x,y,'-',x,y1,'-.',x,y2,'*',x,y3,'o‘ );
![Page 83: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/83.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 83
Graphe avec plusieurs courbes séparées » subplot(2,2,1), plot(x,y), title('y');» subplot(2,2,2), plot(x,y1), title('y1');» subplot(2,2,3), plot(x,y2), title('y2');» subplot(2,2,4), plot(x,y3), title('y3');
![Page 84: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/84.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 84
Graphe 3-D Supposons, par exemple que l'on veuille représenter la surface définie par la fonction z=sin(xy) sur le carré suivant [-p/2,p/2]x[-p/2,p/2] à l'aide d'une grille de points 31x31.
[xi,yi]=meshgrid(-pi/2:pi/30:pi/2); %(génération d'une grille régulière)
zi=sin(xi.*yi);surf(xi,yi,zi,zi); %(affichage de la surface)
On utilise la séquence de commandes :
![Page 85: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/85.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 85
>> Variable MATLAB matrice>> Opérateurs “matrix” et “array”>> Fichiers exécutables “.m” type “script” et “function”; >> Fichiers binaires “.mat” pour échange de données>> Extensions (toolboxes)
À retenir
![Page 86: Cours matlab gpe](https://reader036.fdocuments.fr/reader036/viewer/2022081717/55628cf0d8b42ad1688b580b/html5/thumbnails/86.jpg)
Prof. Abdellah ADIB FI-GPE 2011-2012 86
RESTE MAINTENANT A APPRENDRE
LA VRAI PROGRAMMATION
SOUS MATLAB
!!!!!!!!!