0% ont trouvé ce document utile (0 vote)
259 vues106 pages

Introduction à Matlab pour Ingénieurs

Ce document introduit le langage de programmation Matlab. Il présente les bases de la programmation, les opérations mathématiques, les variables, les matrices et les opérations matricielles en Matlab.

Transféré par

MOUMMOU
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)
259 vues106 pages

Introduction à Matlab pour Ingénieurs

Ce document introduit le langage de programmation Matlab. Il présente les bases de la programmation, les opérations mathématiques, les variables, les matrices et les opérations matricielles en Matlab.

Transféré par

MOUMMOU
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

Introduction à Matlab

Ecole Sup Galilée - Cursus Ingénieur - 1ère année


2016-2017

John Chaussard
LAGA – Université Paris 13
[email protected]
La programmation
La programmation

Qu’est ce que la programmation

3
La programmation

Différents langages de programmation

4
La programmation

Différents langages de programmation

5
La programmation

Différents langages de programmation

6
La programmation

Différents langages de programmation

7
La programmation

Différents langages de programmation

8
La programmation

Différents langages de programmation

9
La programmation

Quelques définitions supplémentaires

10
La programmation

Quelques définitions supplémentaires

11
La programmation

Quelques définitions supplémentaires

12
Présentation de Matlab
Présentation de Matlab

Qu’est-ce que Matlab ?

14
Présentation de Matlab

Présentation de l’interface

15
Présentation de Matlab

Présentation de l’interface

16
Présentation de Matlab

Présentation de l’interface

17
Présentation de Matlab

Matlab à la maison

18
Les commandes de base
en Matlab
Les commandes de base en Matlab

Les opérations de base

>> 3+6

ans =

20
Les commandes de base en Matlab

Les opérations de base

Symbole Description Exemple


+-*/ Les opérations de base en mathématiques (addition, 7+9
soustraction, multiplication et division) 3/4
pi La constante Pi pi/3
cos sin tan Les fonctions trigonométriques usuelles cos(3*pi/2)
log exp Le logarithme népérien et l’exponentielle exp(3)
sqrt La racine carrée sqrt(5)
^ La puissance 4^7

>> sqrt((3+4)*cos(5*pi/7))*exp(2^4)

21
Les commandes de base en Matlab

Les nombres réels

>> 2.7 * 3.9


ans =

10.5300

22
Les commandes de base en Matlab

Les variables (simples) en Matlab

>> x = 4

23
Les commandes de base en Matlab

Les variables (simples) en Matlab

>> y = x+2

24
Les commandes de base en Matlab

Les variables (simples) en Matlab

>> disp(y)
6

>> y
y =
6

25
Les commandes de base en Matlab

Les variables (simples) en Matlab

>> x = input('Entrez une valeur : ');


Entrez une valeur : 9

26
Les matrices dans Matlab
Les matrices dans Matlab

Matlab et les matrices

28
Les matrices dans Matlab

Déclarer des matrices dans Matlab

>> A = [1 2 3; 4 5 6; 7 8.5 9; 10 11.5 12]

29
Les matrices dans Matlab

Déclarer des matrices dans Matlab

>> B = [4.2 7.6 8.2; 4.1 0.5 0]

4.2 7.6 8.2


4.1 0.5 0

>> C = [5.7 0.2 6.2 5.1; 7.1 2.4 8.4; 1.2 0.4 8.4 6.4]

30
Les matrices dans Matlab

Déclarer des matrices dans Matlab

.
>> D = [4 2 9 4 2]

4 2 9 4 2

. 3,5
>> E = [3.5 ; 7; 9; 8; 0] 7
9
8
0 31
Les matrices dans Matlab

Déclarer des matrices dans Matlab

>> A = [1 2 3; 4 5 6; 7 8.5 9; 10 11.5 12]

>> A = [4.2 7.6 8.2; 4.1 0.5 0]

>> A = 3

32
Les matrices dans Matlab

Accéder aux éléments des matrices

>> A(3,2)

>> A = [5.7 0.2 6.2 5.1; 8.7 7.1 2.4 8.4; 1.2 0.4 8.2 6.4]

>> y = A(2,4)

33
Les matrices dans Matlab

Accéder aux éléments des matrices

>> A = [5.7 0.2 6.2 5.1; 8.7 7.1 2.4 8.4; 1.2 0.4 8.2 6.4]

1 4 7 10
5.7 0.2 6.2 5.1
2 5 8 11
8.7 7.1 2.4 8.4
3 6 9 12
1.2 0.4 8.2 6.4

>> A(5)

ans =

7.1000 34
Les matrices dans Matlab

Accéder aux éléments des matrices

>> B = A(2:4,4:5)

5.7 0.2 6.2 5.1 3

8.7 7.1 2.4 8.4 6.1 8.4 6.1

1.2 0.4 8.2 6.4 2.7 6.4 2.7

2.3 6.7 6.5 5.2 10 5.2 10

2.1 1.8 0.6 7.2 8.2

35
Les matrices dans Matlab

Accéder aux éléments des matrices

>> B = A(2:4,:)

5.7 0.2 6.2 5.1 3

8.7 7.1 2.4 8.4 6.1 8.7 7.1 2.4 8.4 6.1
1.2 0.4 8.2 6.4 2.7 1.2 0.4 8.2 6.4 2.7
2.3 6.7 6.5 5.2 10 2.3 6.7 6.5 5.2 10
2.1 1.8 0.6 7.2 8.2

36
Les matrices dans Matlab

Taille d’une matrice

5.7 0.2 6.2 5.1

8.7 7.1 2.4 8.4

1.2 0.4 8.2 6.4

2.3 6.7 6.5 5.2

2.1 1.8 0.6 7.2

>> s = size(A)

5 4

37
Les matrices dans Matlab

Taille d’une matrice

5.7 0.2 6.2 5.1

8.7 7.1 2.4 8.4

1.2 0.4 8.2 6.4

2.3 6.7 6.5 5.2

2.1 1.8 0.6 7.2

>> numel(A)

ans =

20

38
Les matrices dans Matlab

Opérations de base sur les matrices

Symbole Description Exemple


+-* Les opérations de base (addition, soustraction, produit matriciel). A+B
Les tailles des matrices doivent être compatibles A*B
^ La puissance matricielle (itération du produit matriciel) A^3
’ Transposée d’une matrice A’
inv L’inversion d’une matrice (si son inverse existe) inv(A)

Symbole Description Exemple


+-*/ Réalise l’opération entre un scalaire et chaque élément de la matrice. 5.4*A
.* Réalise la multiplication terme à terme de deux matrices de même A.*B
taille.
.^ Met à une certaine puissance chaque élément de la matrice A.^3
39
Les matrices dans Matlab

Opérations de base sur les matrices

4 25 36

2 9 49

2 5 6

1.4 3 7

40
Les matrices dans Matlab

Opérations avancées sur les matrices

2.6 3.9 10

1.0 -3 3.2

16.5
3.6 0.9 13.2 1.2

41
Les matrices dans Matlab

Opérations avancées sur les matrices

>> b = sum(A,2) 3 2 1 8

4 1 3 6

2 2 0 5

14

14

42
Les matrices dans Matlab

Opérations avancées sur les matrices

>> b = sum(A,1) 3 2 1 8

3 2 1 8

43
Les matrices dans Matlab

Opérations avancées sur les matrices

>> b = sum(A,1)
>> c = sum(b,2)

>> c = sum(sum(A,2),1)

44
Les matrices dans Matlab

Opérations avancées sur les matrices

2.6 3.9 10

1.0 -3 3.2

10
2.6 3.9 10 3.2

45
Les matrices dans Matlab

Filtrage de matrices

8.7 7.1 2.4 8.4 6.1

1.2 0.4 8.2 6.4 2.7

2.3 6.7 6.5 5.2 10

1
8
10
15

46
Les matrices dans Matlab

Filtrage de matrices

8.7 7.1 2.4 8.4 6.1

1.2 0.4 8.2 6.4 2.7

2.3 6.7 6.5 5.2 10

>> l = find(A>8)
>> A(l) = 0

0 7.1 2.4 0 6.1

1.2 0.4 0 6.4 2.7

2.3 6.7 6.5 5.2 0

>> A(find(A>8))=0
47
Les matrices dans Matlab

Filtrage de matrices

>> k = find(A<1)
>> A(k) = A(k)+1

48
Les matrices dans Matlab

Filtrage de matrices

Symbole Description Exemple


> < Les comparaisons de base (supérieur, inférieur, supérieur ou égal, A >= 3
>= <= inférieur ou égal) A<5
== L’égalité A == 7.2
~= L’inégalité A ~= 8

Symbole Description Exemple


& Combine deux critères avec un et logique. (A > 3) & (A<8)
| Combine deux critères avec un ou logique. (A > 6) | (A < 3)
~ Inverse un critère ~((A > 3) & (A < 4))
49
Les matrices dans Matlab

Filtrage de matrices

>> k = find(A<0)
>> A(k) = -A(k)

50
Les matrices dans Matlab

Filtrage de matrices

8.7 7.1 2.4 8.4 6.1

1.2 0.4 8.2 6.4 2.7

2.3 6.7 6.5 5.2 10

>> B = (A < 3)

0 0 1 0 0

1 1 0 0 1

1 0 0 0 0

51
Les matrices dans Matlab

Filtrage de matrices

>> k = (A<0)
>> k = -2*k + 1
>> A = A.*k

52
Les matrices dans Matlab

Générer de nouvelles matrices

Fonction Description Exemple


rand(n,m) Génère une matrice remplie de nombre aléatoires entre 0 et A = rand(3,5)
1, de n lignes et m colonnes.
ones(n,m) Génère une matrice remplie de 1, de n lignes et m colonnes A = ones(4,4)
zeros(n,m) Génère une matrice remplie de 0, de n lignes et m colonnes A = zeros(1,3)

53
Les matrices dans Matlab

Concaténation de matrices

4 5 6 4 3

7 1 1 1 2

2 8 7 5 8 5 4 4

>> D = [A B]
>> E = [A ; C]

4 5 6 4 3 4 5 6
7 1 1
7 1 1 1 2
2 8 7
2 8 7 5 8
5 4 4
54
Le mot clef if – exécuter
du code sous condition
Le mot clef if

Le mot clef if

56
Le mot clef if

Un premier programme avec if

x=input(‘Entrez une valeur svp’);


y=2;

if x<4
y=0;
end

.
.

57
Le mot clef if

Syntaxe du if

//Bloc de code 0

if <condition 1>
//Bloc de Code 1
end

//Bloc de Code 2

58
Le mot clef if

Un exemple

x = input(‘Entrez une valeur : ‘);

if x<0
x = -x;
end

disp(x)

59
Le mot clef if

L’écriture de conditions

Symbole Description Exemple


&& Combine deux conditions avec un et logique. (A > 3) & (A<8)
|| Combine deux conditions avec un ou logique. (A > 6) | (A < 3)
~ Inverse une condition ~((A > 3) & (A < 4))

x = input(‘Entrez une valeur : ‘);


y = input(‘Entrez une autre valeur : ‘);

if x>0 && y>0


disp(‘Les deux valeur entrées sont positives’)
end

60
Le mot clef if

Le mot clef elseif

61
Le mot clef if

Un premier programme avec elseif

x=input(‘Entrez une valeur svp’);


y=2;

if x<4
y=0;
elseif x>9
y=1;
end

.
.
.

62
Le mot clef if

Un second programme avec elseif

a=input(‘Entrez votre age’);

if a>=100
disp(‘Vous êtes assez âgé’);
elseif a>=18
disp(‘Vous êtes majeur’);
elseif a>=16
disp(‘Vous pouvez conduire (accompagné)’);
end

.
.
.
63
Le mot clef if

Un second programme avec elseif

a=input(‘Entrez votre age’); a=input(‘Entrez votre age’);

if a>=100 if a>=100
disp(‘Vous êtes assez âgé’); disp(‘Vous êtes assez âgé’);
elseif a>=18 endif
disp(‘Vous êtes majeur’);
elseif a>=16 if a>=18
disp(‘Vous pouvez conduire’); disp(‘Vous êtes majeur’);
end endif

if a>=16
disp(‘Vous pouvez conduire’);
end

64
Le mot clef if

Syntaxe du if/elseif

//Bloc de code 0

if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
end

//Bloc de Code n

65
Le mot clef if

Syntaxe du if/elseif

//Bloc de code 0

if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
end

//Bloc de Code n

66
Le mot clef if

Syntaxe du if/elseif

a=input(‘Entrez votre note de contrôle


Matlab’);

if a<14
disp(‘Vous n’êtes pas très bon’);
elseif a>=15
disp(‘Pas mal’);
elseif a>18
disp(‘Vous pourrez passer en
deuxième année’);
elseif a<4
disp(‘Il y a des places de libres
en MACS...’);

67
Le mot clef if

Se passer du elseif

a = input(‘Entrez votre age : ‘);

a = input(‘Entrez votre age : ‘); if a>=100


disp(‘Vous êtes assez âgé’);
if a>=100 end
disp(‘Vous êtes assez âgé’);
elseif a>=18 if a>=18
disp(‘Vous êtes majeur’); disp(‘Vous êtes majeur’);
elseif a>=16 end
disp(‘Vous pouvez conduire’);
end if a>=16
disp(‘Vous pouvez conduire’);
end

68
Le mot clef if

Se passer du elseif

a = input(‘Entrez votre age : ‘);

a = input(‘Entrez votre age : ‘); if a>=100


disp(‘Vous êtes assez âgé’);
if a>=100 end
disp(‘Vous êtes assez âgé’);
elseif a>=18 if ~(a>=100) && a>=18
disp(‘Vous êtes majeur’); disp(‘Vous êtes majeur’);
elseif a>=16 end
disp(‘Vous pouvez conduire’);
end if ~(a>=100) && ~(a>=18) && a>=16
disp(‘Vous pouvez conduire’);
end

69
Le mot clef if

Le mot clef else

70
Le mot clef if

Un exemple

x = input('Entrez une valeur : ');


y = input('Entrez une valeur : ');
z = input('Entrez votre choix d operation : ');

if z==1
disp(x+y);
elseif z==2
disp(x*y);
elseif z==3
disp(x-y);
elseif z==4
disp(x/y);
end

71
Le mot clef if

Un exemple

x = input('Entrez une valeur : ');


y = input('Entrez une valeur : ');
z = input('Entrez votre choix d operation : ');

if z==1
disp(x+y);
elseif z==2
disp(x*y);
elseif z==3
disp(x-y);
elseif z==4
disp(x/y);
else
disp(‘Mauvais choix’);
end

72
Le mot clef if

Un second exemple avec else

a=input(‘Entrez votre age’);

if a>=100
disp(‘Vous êtes assez âgé’);
elseif a>=18
disp(‘Vous êtes majeur’);
elseif a>=16
disp(‘Vous pouvez conduire (accompagné)’);
else
disp(‘Vous êtes jeune’);
end

.
.
.
. 73
Le mot clef if

Syntaxe du if/elseif/else

//Bloc de code 0

if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
else ...
//Bloc de code n

end

//Bloc de Code n+1

74
Le mot clef if

Syntaxe du if/elseif/else

//Bloc de code 0

if <condition 1>
//Bloc de Code 1
elseif <condition 2>
//Bloc de Code 2
elseif <condition 3>
//Bloc de Code 3
elseif ...
//...
else ...
//Bloc de code n

end

//Bloc de Code n+1

75
Le mot clef if

Exercice

x = input(‘Entrez une valeur ‘);

if x==0
disp(‘x est nul’);
elseif x>0
disp(‘x est positif’);
else x<0
disp(‘x est négatif’);
end

76
Le mot clef if

Exercice

x = input(‘Entrez une valeur ‘);

if x==0
disp(‘x est nul’);
else
disp(‘x est négatif’);
elseif x>0
disp(‘x est positif’);
end

77
Le mot clef if

Exercice

x = input(‘Entrez une valeur ‘);

if x==0
disp(‘x est nul’);
else
disp(‘x est négatif’);
else
disp(‘x est positif’);
end

78
Le mot clef if

Exercice

x = input(‘Entrez une valeur ‘);

if x==0
disp(‘x est nul’);
elseif x<0
disp(‘x est négatif’);
elseif
disp(‘x est positif’);
end

79
Le mot clef if

Exercice

x = input(‘Entrez une valeur ‘);

if x==0
disp(‘x est nul’);
if x<0
disp(‘x est négatif’);
if x>0
disp(‘x est positif’);
end

80
Le mot clef if

Exercice

x = input(‘Entrez une valeur ‘);


y = input(‘Entrez une valeur ‘);

if x>=0
if y >=0
disp(‘x et y sont positifs’);
else
disp(‘x est positif et y est négatif’);
end
else
if y >=0
disp(‘x est négatif et y est positif’);
else
disp(‘x et y sont négatifs’);
end
end

81
Le mot clef if

Diagramme d’évaluation d’un bloc if

Y a-t-il un elseif Y a-t-il un


ensuite ? else ensuite ?

La condition La condition
du if est du elseif est
vraie ? vraie ?

Exécuter le bloc de Sauter au mot clef


code situé à la suite end
82
Le mot clef if

La fonction modulo

>> a = mod(23,7);
>> disp(a)
2

83
Le mot clef if

La fonction modulo

a = input('Entrez une valeur : ');

if mod(a,7) == 0
disp('a est divisible par 7');
else
disp('a n est pas divisible par 7');
end

if (a%7 == 0)
{ ... }
84
Le mot clef if

La fonction modulo

a = input('Entrez une valeur : ');

if mod(a,2) == 0
disp('a est un nombre pair’);
else
disp('a est un nombre impair’);
end

85
Le bloc if

Conclusion

86
Les boucles
Les boucles

Les boucles

88
Les boucles

Première utilisation de la boucle for

>> v = rand(1,5);
>> disp(v);

0.8003 0.1419 0.4218 0.9157 0.7922

>> for k = v
>> disp('La valeur de k est ‘)
>> disp(k)
>> end

La valeur de k est 0.8003

La valeur de k est 0.1419

La valeur de k est 0.4218

La valeur de k est 0.9157

La valeur de k est 0.7922 89


Les boucles

Un autre exemple de boucle for

>> for i = 1:8


>> disp(i);
>> end

1
2
3
4
5
6
7
8

90
Les boucles

Un autre exemple avec une matrice

>> A = rand(3,2);
>> disp(A);
0.8147 0.9134
0.9058 0.6324
0.1270 0.0975

>> for i = A
>> disp(‘La valeur de i est ‘)
>> disp(i);
>> end

La valeur de i est
0.8147
0.9058
0.1270

La valeur de i est
0.9134
0.6324
0.0975
91
Les boucles

Un autre exemple avec un vecteur colonne

>> v = rand(4,1);
>> disp(v);
0.9572
0.4854
0.8003
0.1419

>> for i = v
>> disp(‘La valeur de i est ‘)
>> disp(i);
>> end

La valeur de i est
0.9572
0.4854
0.8003
0.1419

92
Les boucles

Syntaxe du for

//Bloc de code 0

for <variable> = <matrice>


//Bloc de Code 1
end

//Bloc de Code 2

93
Les boucles

Un exemple

v = rand(1,100000);
s = 0;

for i = v
s = s+i;
end
disp(s);

s = sum(v);

94
Les boucles

Temps d’exécution

Taille du vecteur Temps d’exécution avec for Temps d’exécution sans for
1*106 0,92s 1,1ms
2*106 1,65s 1,6ms
3*106 2,48s 3,6ms
4*106 3,20s 3,0ms
5*106 3,96s 3,7ms
6*106 4,90s 6,7ms
7*106 5,63s 5,0ms
8*106 6,46s 5,8ms
9*106 7,33s 6,7ms
95
Les boucles

Temps d’exécution

96
Les boucles

Temps d’exécution

97
Les boucles

Syntaxe du while

//Bloc de code 0

while <condition 1>


//Bloc de Code 1
end

//Bloc de Code 2

98
Les boucles

Syntaxe du while

//Bloc de code 0

while <condition 1>


//Bloc de Code 1
end

//Bloc de Code 2

99
Les boucles

Première utilisation de la boucle while

a = input('Entrez une valeur entiere : ');

s=1;
while a>1
s = s*a;
a = a-1;
end
disp(s);

100
Les boucles

Seconde utilisation de la boucle while

a = input('Entrez une valeur positive : ');

while a<0
a = input('Entrez une valeur positive : ');
end

disp(a);

101
Les boucles

Troisième utilisation de la boucle while

a = input('Entrez une valeur : ');


b = input('Entrez une valeur : ');

n = min(a,b);
while ~(mod(a,n)==0 && mod(b,n)==0)
n=n-1;
end

disp(n)

102
Les boucles

Quelle boucle utiliser ?

Programme for ou while ? Explications


factorielle(a) for/vectorisé La boucle se répétera (a-1) fois
nombre positif while On ne sait pas combien de fois l’utilisateur va saisir
un nombre négatif
pgcd(a,b) Les deux Soit on teste tous les entiers entre 1 et min(a,b), soit
on teste ceux entre a et 1 jusqu’à en trouver un qui
divise.
103
Les boucles

Factorielle avec for

a = input('Entrez une valeur entiere : ');

s=1;
for i = 1:a
s = s*i;
end
disp(s);

a = input('Entrez une valeur : ');


s = prod(1:a);
disp(s);

104
Les boucles

Le mot clef break

105
Les boucles

Conclusion

106

Vous aimerez peut-être aussi