0% ont trouvé ce document utile (0 vote)
3 vues89 pages

Racine carrée et matrices en Matlab

Cours

Transféré par

sokpoekpemahutin
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)
3 vues89 pages

Racine carrée et matrices en Matlab

Cours

Transféré par

sokpoekpemahutin
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

Présentation de Matlab
Présentation de Matlab

Qu’est-ce que Matlab ?


Présentation de Matlab
Présentation de l’interface

4
Présentation de Matlab
Présentation de l’interface

.
Les Préférences pour changer le formatage classique et autre

5
Présentation de Matlab
Présentation de l’interface

Il faudra prendre en compte le fait que les fichiers doivent être enregistrer dans un dossier de travail afin que
la compilation puisse réussir. Il ne faut les enregistrer dans un dossier contenant les fichiers système

6
Les commandes de base
en Matlab
Les commandes de base en Matlab
Les opérations de base

>> 3+6

ans =

8
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
abs La valeur absolue d’un nombre réel ou le module des abs(2+1i)
nombres complexes
angle L’argument d’un nombre complexe angle(2+1i)

>> sqrt((3+4)*cos(5*pi/7))*exp(2^4)
9
Les commandes de base en Matlab
Les nombres réels

>> 2.7 * 3.9


ans =

10.5300

10
Les commandes de base en Matlab
Les variables (simples) en Matlab

>> x = 4

11
Les commandes de base en Matlab
Les variables (simples) en Matlab

>> y = x+2

12
Les commandes de base en Matlab
Les variables (simples) en Matlab

>> disp(y)
6

>> y
y =
6

13
Les commandes de base en Matlab
Les variables (simples) en Matlab

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


Entrez une valeur : 9

14
Les matrices dans Matlab
Les matrices dans Matlab

Matlab et les matrices


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]

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

18
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
19
0
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

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

21
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 107
5.7 0.2 5.1 6.2
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 =

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

23
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

24
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

25
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

Vous pouvez utiliser length pour déterminer le nombre d’élément lorsqu’il s’agit
d’un vecteur et non une matrice
26
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 (pour les nombres complexes, il faut A’
mettre un point (.) avant ‘)
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

28
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

29
Les matrices dans Matlab
Opérations avancées sur les matrices

3 2 1 8

4 1 3 6

2 2 0 5
>> b = sum(A,2)

14

14

30
Les matrices dans Matlab
Opérations avancées sur les matrices

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

3 2 1 8

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

32
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

33
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

34
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
35
Les matrices dans Matlab
Filtrage de matrices

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

36
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))
37
Les matrices dans Matlab
Filtrage de matrices

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

Ces deux lignes remplacent ce que fait la fonction abs

38
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

39
Les matrices dans Matlab
Filtrage de matrices

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

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

41
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 42
5 4 4
Le mot clef if – exécuter
du code sous condition
Le mot clef i

Le mot clef if
Le mot clef if
Un premier programme avec if

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


y=2;

if x<4
y=0;
end

.
.

45
Le mot clef if
Syntaxe du if

//Bloc de code 0

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

//Bloc de Code 2

Notez la présence du mot clé end pour fermer le bloc if


46
Le mot clef if
Un exemple

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

if x<0
x = -x;
end

disp(x)

47
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

48
Le mot clef i

Le mot clef elseif


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

.
.
.

50
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

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

52
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

53
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

54
Le mot clef if
Syntaxe du if/elseif

literature
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 literature...’);

55
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

56
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

57
Le mot clef i

Le mot clef else


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

59
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

60
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

62
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

63
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

décrite après

64
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

65
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

66
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

67
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

68
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

69
Le mot clef if
La fonction modulo

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

70
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)
{ ... }
71
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

72
Le bloc

Conclusion
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

77
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
78
Les boucles
Syntaxe du for

//Bloc de code 0

for <variable> = <matrice>


//Bloc de Code 1
end

//Bloc de Code 2

79
Les boucles
Un exemple

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

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

s = sum(v);
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
81
Les boucles
Syntaxe du while

//Bloc de code 0

while <condition 1>


//Bloc de Code 1
end

//Bloc de Code 2

82
Les boucles
Syntaxe du while

//Bloc de code 0

while <condition 1>


//Bloc de Code 1
end

//Bloc de Code 2

83
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);

84
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);

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

86
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.
87
Les boucles
Factorielle avec for

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

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

Améliorer le
a = input('Entrez une valeur : ');
s = prod(1:a);
disp(s);

88
Les boucles

Conclusion

Vous aimerez peut-être aussi