0% ont trouvé ce document utile (0 vote)
26 vues33 pages

Slides Matlab

Le document présente l'interface et les fonctionnalités de base du logiciel MATLAB. Il décrit comment créer et manipuler des vecteurs et matrices, ainsi que les opérations et fonctions élémentaires possibles. Des exemples de tracés de courbes et d'utilisation de boucles et conditions sont également fournis.

Transféré par

Messaoud Djamal Laidi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
26 vues33 pages

Slides Matlab

Le document présente l'interface et les fonctionnalités de base du logiciel MATLAB. Il décrit comment créer et manipuler des vecteurs et matrices, ainsi que les opérations et fonctions élémentaires possibles. Des exemples de tracés de courbes et d'utilisation de boucles et conditions sont également fournis.

Transféré par

Messaoud Djamal Laidi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Départements GEI & Mécanique

INITIATION À
MATLAB

Yassine ARIBA – Jérôme CADIEUX


version 0.0
Matlab, ses boîtes à outils et Simulink sont des produits développés
par la société The MathWorks, Inc. Matlab® et Simulink® sont des
marques déposés par cette même société.

La distribution utilisée en séance est sous licence classroom, c’est-à-


dire qu’elle est réservée à un usage académique éducatif. Toute
utilisation à but commercial ou recherche est interdite.

Icam - Toulouse Y. Ariba – J. Cadieux 2


Interface de MATLAB

Icam - Toulouse Y. Ariba – J. Cadieux


Deux façons de créer une matrice

Sans écho à l’écran

MATLAB fait la différence entre


minuscules et majuscules

Fenêtre de commandes : création de quelques variables

Icam - Toulouse Y. Ariba – J. Cadieux 4


Information sur les variables

1 >> who
2 Your variables are:
3 A t
4 >> clear t
5 >> who
6 Your variables are:
7 A

clear all réinitialise l’environnement

Icam - Toulouse Y. Ariba – J. Cadieux 5


Déclaration d’un vecteur

1 % Vecteur ligne m =
2 >> m = [0 1 2 3] 0 1 2 3

ou

1 >> m = [0:3]

La progression entre deux éléments peut être précisée :


>> x = [1:-0.25:-1]

Déclaration d’un vecteur colonne


1 >> n = [0;1;2;3] % Création d’un vecteur colonne

ou par transposition
1 >> n = m’

Icam - Toulouse Y. Ariba – J. Cadieux 6


Déclaration d’une matrice
ans =
1 >> A=[1 2 3;4 5 6;7 8 9] 1 2 3
4 5 6
7 8 9
Taille d’une matrice

1 >> size(A) ans =


3 3

Accès aux éléments


1 >> A(1,2)
2 >> A([1 3],:)

Matrices particulières
1 >> eye(n)
2 >> ones(n,m)
n, m sont des entiers
3 >> zeros(n,m)
4 >> rand(n,m)

Icam - Toulouse Y. Ariba – J. Cadieux 7


Opérations élémentaires
1 >> 3+5
2 >> ans-2 Dans toutes opérations, il faut faire attention
3 >> A + ones(3) aux dimensions des opérandes

4 >> m + x(1:4)

Multiplication Division
1 >> 3*4 1 >> 3/4
2 >> b=[1;0;5]
1 >> 3\4
3 >> A*b
4 >> b’*A 1 >> B=[1 4 3;2 -1 0;0 3 3]
5 >> [1,1,2]*b 2 >> y=B\b

Élévation à la puissance
1 >> 2^3
2 >> sqrt(16)
3 >> A^2
4 >> B^(-1) % idem fonction d’inversion inv(B)

Icam - Toulouse Y. Ariba – J. Cadieux 8


Opérations terme à terme

1 >> A .^ 2
2 >> diag([1,2,3]) .* A
3 >> c=[1:1:5],d=[0.5:0.5:2.5]
4 >> c./d
5 >> e=[1 -1 0 2 2]
6 >> e.*c

Icam - Toulouse Y. Ariba – J. Cadieux 9


Manipulation par blocs

1.0000 1.0000 1.0000 0.4565 0.4447


1 >> C = [ones(3), rand(3,2);
1.0000 1.0000 1.0000 0.0185 0.6154
2 rand(2,3), eye(2)] 1.0000 1.0000 1.0000 0.8214 0.7919
0.9218 0.1763 0.9355 1.0000 0
0.7382 0.4057 0.9169 0 1.0000

Extraction de sous matrices

1 >> C1 = C(:,[3 5])


2 >> C2 = C(:,[1:3])
3 >> C3 = C([1 2],[4 5]) C(arg1, arg2): le premier argument permet
4 >> D = diag(C) de sélectionner un ensemble de lignes,
5 >> D1 = diag(C,1) le second un ensemble de colonnes.
6 >> D2 = diag(C,-2)
7 >> T1 = tril(C)
8 >> T2 = triu(C)

Icam - Toulouse Y. Ariba – J. Cadieux 10


Boucles

1 for compteur = expression 1 n = 20;

2 instructions 2 for k = 1:n


3 end 3 y(k) = k^2;
4 end

1 while expression 1 x = 16;

2 instructions 2 while x > 1


3 end 3 x = x / 2;
4 end

Icam - Toulouse Y. Ariba – J. Cadieux 11


Conditions

1 if expression 1 1 switch expression 1


2 instructions 1 2 instructions 1
3 elseif expression 2 3 case expression 2
4 instructions 2 4 instructions 2
5 else 5 case {expression 3, expression 4, …}
6 instructions 3 6 instructions
7 end 7 otherwise
8 instructions 4
9 end

Icam - Toulouse Y. Ariba – J. Cadieux 12


opération Symbole opération Symbole

supérieur supérieur
> >=
à ou égal à
inférieur inférieur
< <=
à ou égal à

égal à == non ~

et &, && ou |,||

Il existe aussi xor, any, all.

Icam - Toulouse Y. Ariba – J. Cadieux


1 >> help polyval
2 >> doc polyval

Icam - Toulouse Y. Ariba – J. Cadieux 14


Fonctions scalaires
Fonctions usuelles

1 sin exp abs round


2 cos log sqrt tanh 1 >> help elfun
3 tan rem sign acosh …

Fonctions matricielles
Fonctions usuelles

1 max sum mean sort


2 min prod …

Fonctions matricielles
1 eig size norm 1 >> help matfun
2 inv …

Icam - Toulouse Y. Ariba – J. Cadieux 15


Commande de base
1 >> x = [0 : 0.01 : 2*pi];
2 >> y = cos(3*x);
3 >> plot(x,y)

Quelques options
1 plot(x,y,s) % s:chaîne de caractères
2 pour la couleur et le tracé

Couleurs Marqueurs Tracés

y : jaune + : plus - : trait continu


m : magenta o : cercles : : pointillés
c : cyan * : étoiles -. : trait point
r : rouge x : croix - : tirets
g : vert s : carré
b : bleu d : diamant 1 >> plot(x,y,’r*’)
k : noir v^<> : triangles
w : blanc h : hexagramme

Icam - Toulouse Y. Ariba – J. Cadieux


Superposition de tracés
1 >> x = [0 : 0.01 : 2*pi]; 1 >> hold on

2 >> y = cos(3*x); 2 >> plot(x,y);


ou
3 >> z = exp(-0.5*x).*sin(5*x), 3 >> plot(x,z)
4 >> plot(x,y,x,z)

Pour compléter le tracé

1 >> legend(‘cos(3x)’,’sin(2x)’)
2 >> title(‘Voici un titre’)
3 >> axis([0 7 -1.2 1.2])
4 >> xlabel(‘x: axe des abscisses’)
5 >> ylabel(‘y: axe des ordonnées’)
6 >> grid on

Icam - Toulouse Y. Ariba – J. Cadieux


Figure avec plusieurs graphiques
1 >> x=[-20:0.05:20];
2 >> subplot(2,3,1) ; plot(x,sin(0.3*x)); title(‘sinus’);
3 >> subplot(2,3,2) ; plot(x,cos(0.3*x)); title(‘cosinus’);
4 >> subplot(2,3,3) ; plot(x,atan(x)); title(‘arctangente’);
5 >> subplot(2,3,4) ; plot(x,x.^2); title(‘parabole’);
6 >> subplot(2,3,5) ; plot(x,sin(x)./x); title(‘sinus cardinal’);
7 >> subplot(2,3,6) ; plot(x,abs(x)); title(‘valeur absolue’);

Icam - Toulouse Y. Ariba – J. Cadieux 18


Scripts

• Liste d’instructions.
• Accès à toutes les variables de l’environnement.
• Pas de paramètres d’entrée.
• Ne retourne aucune valeurs.
• Appels d’autres scripts ou fonctions.

Fonctions

• N’a pas accès aux variables de l’environnement.


• Possède des variables d’appel en arguments.
• Variables locales inaccessibles depuis l’extérieur.
• Retourne une ou plusieurs valeurs.

Icam - Toulouse Y. Ariba – J. Cadieux 19


Workspace Script

Fonction

Workspace

Icam - Toulouse Y. Ariba – J. Cadieux 20


Script1.m Fonc1.m
1 x1=-1 ; x2=1; 1 function [moy,ecarttype] = Fonc1(x)
2 n=50; 2 % Commentaire affiché par le help Fonc1
3 x = linspace(x1,x2,n); 3 n = length(x);
4 y = exp(-2*x).*(x.^2-3*x+4); 4 moy = sum(x) / n;
5 plot(x,y); 5 ecarttype = sqrt(sum((x - moy).^2)/n);
6 disp('voir tracé sur figure') 6

>> n=0; >> Fonc1;


>> script1; ??? Input argument »x » is undefined
??? Undefined function or Error in ==> Fonc1 at 3
variable ‘script1’. >>[a,b] = Fonc1([1 2 3 4]);
>> Script1; a =
voir tracé sur figure 2.5000
b =
>> n 1.1180
n = >> n
50 ??? Undefined function or variable ‘n’.

Icam - Toulouse Y. Ariba – J. Cadieux 21


Énoncé 1

Les équations paramétriques d’une ellipse centrée à l’origine sont:

x = A cos t
avec 0 ≤ t ≤ 2π
y = B sin t

1. Tracer cette ellipse pour A=2 et B=1.

2. Ajouter un titre et des labels abscisses/ordonnées

3. Tracer la courbe pour différentes valeurs de A et B. A quoi correspondent ces 2 paramètres?

Icam - Toulouse Y. Ariba – J. Cadieux 22


Solution 1

Icam - Toulouse Y. Ariba – J. Cadieux 23


Énoncé 2

Calculer la somme des carrés des 1000 premiers entiers de 3 façons différentes:

• Avec l’instruction for

• Avec l’instruction while

• Avec l’instruction sum

Icam - Toulouse Y. Ariba – J. Cadieux 24


Solution 2

Icam - Toulouse Y. Ariba – J. Cadieux 25


Énoncé 3

Représenter graphiquement la fonction suivant:

avec

a, b et ε sont des paramètres constants.


La fenêtre de représentation porte sur -2 ≤ x ≤3 et -1 ≤ y ≤ 1

consigne: utiliser une fonction (m-file) pour calculer Φ(x).

A.N. : On prendra a=-1, b=2 et ε=0.5.

Icam - Toulouse Y. Ariba – J. Cadieux 26


Solution 3

Icam - Toulouse Y. Ariba – J. Cadieux 27


Énoncé 4

Recherche d’une racine par dichotomie.

Soit f(x) une fonction continue strictement croissante sur [a,b] telle que:

f(a) < 0 et f(b) > 0

L’objectif est de trouver x0 tel que f(x0) = 0.

• évaluer la fonction en c=(a+b)/2;


• si f(c) < 0, l’intervalle de recherche devient [c,b];
• si f(c) > 0, l’intervalle de recherche devient [a,c].
• Ce processus est ensuite réitéré…

A.N. : Déterminer la racine des fonctions:


• f(x) = 2x4 + 2.3x3 - 16x2 - 8x - 17.5 sur l’intervalle [0,100].
• g(x) = tan(x2) - x sur l’intervalle [0.5,π/3].

Icam - Toulouse Y. Ariba – J. Cadieux 28


Solution 4

Icam - Toulouse Y. Ariba – J. Cadieux 29


Énoncé 5

Soit un signal créneau f(t) d’amplitude A, de période T et de valeur moyenne nulle.


Sa décomposition en série de Fourier est donnée par:

avec

Représenter le signal f(t) à partir de sa décomposition en série de Fourier jusqu’à


l’ordre n=7. Tester ensuite pour des valeurs de n supérieures.

A.N. : On prendra A=2 et T=0.5s. Echelle temporelle: 0 ≤ t ≤ 2 avec un pas de 0.001.

Icam - Toulouse Y. Ariba – J. Cadieux 30


Solution 5

Icam - Toulouse Y. Ariba – J. Cadieux 31


Énoncé 6

Manipulation de polynômes. Créer deux fonctions qui permettent:


• d’additionner deux polynômes,
• de multiplier deux polynômes.

Nous définirons un polynôme de la forme (par ex.)

par un vecteur ligne contenant ses coefficients: P=[1 2 3 4 5]

Notons la fonction poly2str(P,’x’)

qui permet d’afficher un polynôme par rapport à la variable x.

Icam - Toulouse Y. Ariba – J. Cadieux 32


Solution 6

Icam - Toulouse Y. Ariba – J. Cadieux 33

Vous aimerez peut-être aussi