Vous êtes sur la page 1sur 62

Universit de Blida

Facult des Sciences

2 anne ST
Semestre 4

TPN 1-4 avec solution


Responsable
A.SELLALI
Assistant
M.LICHOURI
27 Avril 2015

Dernire mise jour : 2015/05/16 21:46:48

TP N1 : Les vecteurs et les matrices(cours)


1 Les vecteurs :
Un vecteur est une liste d'lments appels composants.

1.1 vecteur ligne


Pour crer un vecteur ligne il sut d'crire la liste de ses composants entre
crochets [et] et de les sparer par des espaces ou des virgules comme suit :
v

 rv1v2v3. . . . . . . . . . . . . . . .vnsouv  rv1, v2, v3, . . . . . . . . . . . . . . . .vns

>> U = [ 4 2 1 ]
U=
3
4
2
1
4 >> V = [ 2 , 12 , 1 , 6,3 ]
5 V =
6
2 12
1
6
3
7 >> [ 3 , 1 , 1 , 7 ]
8 ans =
9
3
1
1
7
1
2

M.LICHOURI

TPINFO4 :

Page 1/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

1.2 vecteur colonne


Pour crer un vecteur colonne il est possible d'utiliser une des mthodes
suivantes :
 crire les composants du vecteur entre crochets [et] et de les sparer par
des points-virgules ( ;) comme suit :
1

>> U = [ 9 ; 4 ; 1 ]

% Creation dun vecteur colonne U

 crire verticalement le vecteur :

>> U = [
9
3
4
4  1
5 ]
1
2

 calculer le transpos d'un vecteur ligne :


1

>> U = [ 9 4 1 ] '

% Creation dun vecteur colonne U

Remarque 1
Si les composants d'un vecteur X sont ordonns avec des valeurs conscutives, nous pouvons le noter avec la notation suivante :

X = premier_lment : dernier_lment
(Les crochets sont facultatifs dans ce cas)

M.LICHOURI

TPINFO4 :

Page 2/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Exemple :

>> X = 1:6
X=
3
1
2
4 >>colon (1 ,6)
5 ans =
6
1
2
1
2

On peut aussi crire : X

Remarque 2

 r1 : 6s

Si les composants d'un vecteur X sont ordonns avec des valeurs conscutives mais avec un pas (d'incrmentation/dcrmentation) dirent de
1, nous pouvons spcier le pas avec la notation :

X = [premier_lment : pas : dernier_lment]


(Les crochets sont facultatifs)
Exemple :

>> X = [8: 2:0] % le vecteur X contient les nombres pairs


X=
3
0
2
4
6
8
4 >> X = [ 3:2:5] % on peut aussi ecrire colon(3,2,5)
5 X =
6
3
1
1
3
5
7 >> X = 0 : 0 . 2 : 1
% on peut aussi ecrire colon(0,0.2,1)
8 X =
9
0
0.2000
0.4000
0.6000
0.8000
1.0000
1

< 10

* On peut construire un vecteur en plusieurs parties :

>> V = [ 1 : 2 : 5 , 2:2:1 ]
V=
3
1
3
5
2
1
2

Attention : la valeur 1 n'est pas atteinte


* On peut construire un vecteur par concatnation de plusieurs vecteurs :

>> A = [1 2 3]
A=
3
1
2
3
1
2

* On peut concatner des vecteurs

>> B = [A, 4 , 5 , 6]
B=
3
1
2
3
1
2

M.LICHOURI

TPINFO4 :

Page 3/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

1.3 Rfrencement et accs aux lments d'un vecteur


L'accs aux lments d'un vecteur se fait en utilisant la syntaxe gnrale
suivante :

Figure 1  accs au lments d'un vecteur


Exemple :
1
2

>> V = [5 , 1, 13 , 6, 7]


V=

5
1
>> V(2) % la
5 ans =
6 >> V( 2 : 4 )
7 ans =
3
4

13

10
11
12
13
14
15
16
17
18

>> V(4: 2:1)


ans =

6

2eme position

1

% de la deuxieme position jusquau quatrieme

1

8
9

% creation du vecteur V qui

contient 5 elements

13

6

% de la 4eme pos jusqua la 1ere avec le pas =

6

2

1

>> V( 3 : end )
ans =

% de la 3eme position jusqua la derniere

>> V( [ 1 , 3 , 4 ] )

% la 1ere, la 3eme et la 4eme position

13

6

uniquement

ans

19
20
21
22
23
24

V=

% donner la valeur 8 au premier

1

>> V(6) = 3
V=
28
8
1
29 >> V(9) = 5
27

V=

6

element

26

31

13

>> V(1) = 8

25

30

13

6

% ajouter un sixieme element avec la valeur

13

6

3

3

% ajouter un neuvieme element avec la

valeur 5

M.LICHOURI

1

13

6

TPINFO4 :

Page 4/62

3

5
2015/05/16

Universit de Blida
Facult des Sciences

>> V(2) = [ ]
V= 8
34 >> V( 3 : 5 ) = [ ]
35 V =
32

2 anne ST
Semestre 4

% Supprimer le deuxieme element

13

33

36

6

3

% Supprimer du 3eme jusquau 5eme element

13

1.4 Les oprations lment-par-lment pour les vecteurs


u et
v , il est possible de raliser des calcules lment
Avec deux vecteurs
par lment en utilisant les oprations suivantes :

Figure 2  oprations lment-par-lment


L'criture d'une expression tel que : uv gnre une erreur car cette expression
rfre a une multiplication de matrices (u  v 1 ou v 1  u pour tre valide).

>> u = [ 2 , 6 , 1] ;
>> v = [ 3 , 1, 4] ;
3 >> u v
1
2

M.LICHOURI

TPINFO4 :

Page 5/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

??? Error using ==> mtimes


Inner matrix dimensions must agree .
6 >> u v '
7 ans =
8
8
4
5

L'criture d'une expression tel que : u2 gnre une erreur car cette expression
rfre a une multiplication de matrices ( u  u1 ou u1  u pour tre valide).

1.5 La fonction linspace


La cration d'un vecteur dont les composants sont ordonns par intervalle
rgulier et avec un nombre d'lments bien dtermin peut se raliser avec la
fonction :

linspace (dbut, n, nombre d'lments).

Le pas d'incrmentation est calcul automatiquement par Matlab selon la formule :


Le.pas 

f in debut
nombre.d1 elements 1

Par exemple :

1
2
3
4
5
6
7
8
9
10
11

>> X =
X=

>> Y =
Y=

10

linspace (13 ,40 ,4) % un vecteur de quatre element de 13 a

40

13
>> X =
X=

linspace (1 ,10 ,4) % un vecteur de quatre element de 1 a

10

22

31

40

linspace (1 ,10 ,5)

1.0000

3.2500

5.5000

7.7500

10.0000

La t a i l l e d ' un vecteur ( l e nombre de ses composants )


peut etre obtenue avec la fonction length comme s u i t :
14 >> length (X) % la taille du vecteur X
15 ans =
16
4
12
13

1.6 Exercices rsolus


1
2
3
4
5

Listing 1 lire les lments d'un vecteur


clear a l l
n=input ( ' entrer le nombre d '' elements ' ) ;
for i =1:1:n
v( i )=input ( ' entrer une composante ' ) ;
end
M.LICHOURI

TPINFO4 :

Page 6/62

2015/05/16

Universit de Blida
Facult des Sciences

1
2
3
4
5
6
7
8
9
10

2 anne ST
Semestre 4

disp (v)

Listing 2 aecter tous les composants d'indice i paire la valeur 2*i+1


clear a l l
n=input ( ' entrer le nombre d '' elements ' ) ;
for i =1:1:n
i f (mod( i , 2 )==0)
end

v( i )=2 i +1;

end
disp (v)

%entrer le nombre delements 9


%
0
5
0
9
0

13

17

Attention
n'oubliez pas le clear all sinon aux composants non dnis explicitement,
il aecte les anciennes valeurs contenues dans v
Listing 3

teur v
1
2
3
4
5
6
7
8
9
10
11

acher les conjugus des composants complexes d'un vec-

clear a l l

v=[2+ i 53i 9+7 i ] ;


i =1:1:3
w( i )=conj (v( i ) ) ;

for

disp (w)

end

% 2.0000  1.0000i
%Autre mthode:

clear a l l

v=[2+ i 53i 9+7 i ] ;

5.0000

+ 3.0000i

9.0000

7.0000i

disp ( conj (v) )

Ex : On veut calculer les 10 premiers termes d'une suite gomtrique de


raison 0.5 et de premier terme up1q  100. Les termes successifs de la suite sont
enregistrs dans un vecteur : u  rup1qup2q. . . upnqs, n  10
1
2
3
4
5
6
7
8

clear a l l

u(1) = 100 ;
for k=[1 :1 : 9 ] ,
u(k+1) = 0.5 u(k) ;
end
disp (u)

%100.0000
50.0000
25.0000
12.5000
6.2500
1.5625
0.7813
0.3906
0.1953

3.1250

M.LICHOURI

2015/05/16

TPINFO4 :

Page 7/62

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

1.7 Les fonctions vectorielles


Les fonctions vectorielles les plus utilises sont :










sum(v) : somme des lments de v


prod(v) : produit des lments de v
mean(v) : moyenne des lments de v
std (v) : cart type de v
sort(v) : tri du vecteur v
max(v) : le maximum de v
min(v) : le minimum de v
norm(v) : la norme de v
dot(u,v) : produit scalaire de deux vecteurs

2 Les matrices :
Une matrice est un tableau bidimensionnel. Cration d'une matrice, il faut
respecter les rgles suivantes :
 Les lments doivent tre mises entre des crochets [ et ]
 Les espaces ou les virgules sont utiliss pour sparer les lments dans la
mme ligne
 Un point virgule (ou la touche entrer) est utilis pour sparer les lignes
Exemple : Soit la matrice suivante :




1
5
9

2
6
10

3
7
11

4
8
12

Cette matrice peut tre crite en MATLAB avec une des syntaxes suivantes :
1
2
3
4

>> A = [1 ,2 ,3 ,4 ; 5 ,6 ,7 ,8 ; 9 ,10 ,11 ,12] ;


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

>> A = [1 ,2 ,3 ,4
5 ,6 ,7 ,8
7
9 ,10 ,11 ,12] ;
5
6
8
9

>> A= [ [ 1 ; 5 ; 9 ] , [ 2 ; 6 ; 1 0 ] , [ 3 ; 7 ; 1 1 ] , [ 4 ; 8 ; 1 2 ] ] ;
Remarques :

1. Le nombre d'lments dans chaque ligne (nombre de colonnes) doit tre


identique dans toutes les lignes de la matrice, sinon une erreur sera signale par MATLAB. Par exemple :
M.LICHOURI

TPINFO4 :

Page 8/62

2015/05/16

Universit de Blida
Facult des Sciences

1
2
3

2 anne ST
Semestre 4

>> X = [1 2 ; 4 5 6]
Error using vertcat
CAT arguments dimensions are not consistent .

2. Une matrice peut tre gnre par des vecteurs comme le montre les
exemples suivants :
1
2
3
4
5
6
7
8
9
10

>> x = 1:4
x=

creation dun vecteur x

1
>> y = 5:5:20

y=

z=

creation dun vecteur z

5
10
>> z = 4:4:16
4

>> A = [ x ; y ; z ]

12

A=

14
15
16

1
5
4

2
10
8

>> B = [ x ' y ' z ' ]

18

B=

20
21
22
23

1
2
3
4

>> C = [ x ; x ]

25

C=

27

20
%

12

16

3
15
12

4
20
16

% B est formee
par les vecteurs colonnes x, y et z

24

26

15

% A est
formee par les vecteurs lignes x, y et z

17

19

4
%

creation dun vecteur y

11

13

5
10
15
20

4
8
12
16

% C est formee
par le meme vecteur ligne x 2 fois

1
1

2
2

3
3

4
4

2.1 Rfrencement et accs aux lments d'une matrice


L'accs aux lments d'une matrice se fait en utilisant la syntaxe gnrale
suivante :
Il est utile de noter les possibilits suivantes :
M.LICHOURI

TPINFO4 :

Page 9/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Figure 3  accs aux lments d'une matrice


 L'accs un lment de la ligne i et la colonne j se fait par : A(i,j)
 L'accs toute la ligne numro i se fait par : A(i, :)
 L'accs toute la colonne numro j se fait par : A( :,j)
Exemple :

1
2
3

>> A = [1 ,2 ,3 ,4 ; 5 ,6 ,7 ,8 ; 9 ,10 ,11 ,12]


A=

1
5
9

4
5
6
7
8
10
11
12

ans

15
16

ans

ans

27
28

4
% tous les elements de

la 2eme colonne

2
6
10

ans

% tous les elements de

la 2eme et la 3eme ligne

24
26

% tous les elements de

>> A( 2 : 3 , : )

23
25

la 1ere ligne

19

22

% lelement sur la 2

eme ligne la 3eme colonne

18

21

4
8
12

>> A( : , 2 )

17

20

3
7
11

>> A( 1 , : )

13
14

2
6
10

>> A(2 ,3)

5
9

6
10

>> A( 1 : 2 , 3 : 4 )
ans

% creation de la

matrice A

7
11

8
12
% La sous matrice superieure

droite

29

M.LICHOURI

3
7

4
8
TPINFO4 :

Page 10/62

2015/05/16

Universit de Blida
Facult des Sciences

30
31
32

>> A( [ 1 , 3 ] , [ 2 , 4 ] )
ans

33

36
37
38

2
10

A=

43
44

1
5
9

>> A( 2 , : ) = [ ]
A=

45
46
47
48
49

52
53
54

2
6
10

4
8
12
% Supprimer la deuxieme ligne

1
9

2
10

4
12

>> A = [A , [ 0 ; 0 ] ]

% Ajouter une nouvelle

colonne {ou A(:,4)=[0;0]}

A=

1
9

50
51

% Supprimer la troisieme

colonne

40
42

4
12

>> A( : , 3 ) = [ ]

39
41

% la sous matrice :

lignes(1,3) et colonnes (2,4)

34
35

2 anne ST
Semestre 4

2
10

4
12

>> A = [A ; [ 1 , 1 , 1 , 1 ] ]
A=

0
0
% Ajouter une nouvelle ligne {

ou A(3,:)=[1,1,1,1]}

1
9
1

55
56

2
10
1

4
12
1

0
0
1

Les dimensions d'une matrice peuvent tre acquises en utilisant la fonction


A de dimension mxn le rsultat de cette
fonction est un vecteur de deux composants, une pour m et l'autre pour n.

size. Cependant, avec une matrice


1
2
3

>> d =
d=

s i z e (A)

4
5
6
7
8

%Ici, la variable d contient les dimensions de la matrice A


sous forme dun vecteur.
% Pour obtenir les dimensions separement on peut utiliser la
syntaxe :

>> d1 =

size

(A, 1)

% d1 contient le

nombre de ligne (m)

9
10

d1 =

11

M.LICHOURI

3
TPINFO4 :

Page 11/62

2015/05/16

Universit de Blida
Facult des Sciences

12

>> d2 =

size

2 anne ST
Semestre 4

(A, 2)

% d2 contient le

nombre de colonne (n)

13
14

d2 =

15

2.2 Gnration automatique des matrices


En Matlab, il existe des fonctions qui permettent de gnrer automatiquement des matrices particulires. Dans le tableau suivant nous prsentons-les plus
utilises :

Figure 4  Gnration automatique des matrices

2.3 Les oprations de base sur les matrices

Figure 5  Les oprations de base sur les matrices


Les oprations lment par lments sur les matrices sont les mmes que
ceux pour les vecteurs (la seule condition ncessaire pour faire une opration
lment par lment est que les deux matrices aient les mmes dimensions). Par
contre la multiplication ou la division des matrices requiert quelques contraintes
(consulter un cours sur l'algbre matricielle pour plus de dtail).

M.LICHOURI

TPINFO4 :

Page 12/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Exemple :

1
2
3
4
5
6
7

>> A=ones (2 ,3)


A=
>> B=zeros (3 ,2)
B=

8
9

>> B=B+3
B=
12
3
13
3
14
3
15 >> AB
16 ans =
10
11

1
1

1
1

0
0
0

0
0
0

1
1

3
3
3

9
9
19 >> B=[B , [3 3 3 ] ' ]
20 B =
21
3
22
3
23
3
24 >> B=B( 1 : 2 , : )
25 B =
26
3
27
3
28 >> A=A 2
29 A =
30
2
31
2
32 >> A. B
33 ans =
34
6
35
6
36 >> A eye (3)
37 ans =
38
2
39
2
17
18

M.LICHOURI

9
9
% ou bien B(:,3)=[3 3 3]

3
3
3

3
3
3
% ou bien B(3,:)=[]

3
3

3
3

2
2

2
2

6
6

6
6

2
2

2
2

TPINFO4 :

Page 13/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

2.4 Fonctions utiles pour le traitement des matrices


Voici quelques fonctions parmi les plus utilises concernant les matrices :

La fonction

Lutilit

Exemple dutilisation

det

Calcule de dterminant dune matrice

inv

Calcule linverse dune matrice

rank

Calcule le rang dune matrice

trace

Calcule la trace dune matrice

eig

Calcule les valeurs propres

norm

Calcule la norme matricielle

diag

Renvoie la diagonale dune matrice


(vecteur colonne)

diag(V)

Cre une matrice ayant le vecteur V sur


la diagonale et 0 ailleurs.

>> A = [1,2;3,4] ;
>> det(A)
ans =
-2
>> inv(A)
ans =
-2.0000 1.0000
1.5000 -0.5000
>> rank(A)
ans =
2
>> trace(A)
ans =
5
>> eig(A)
ans =
-0.3723
5.3723
>> norm(u)
ans =
3
>> diag(A)
ans =
1
4
>> V = [-5,1,3]
>> diag(V)
ans =
-5 0 0
0 1 0
0 0 3
>> A=[1 2 3;4 5 6;7 8 9]
A=
1
4
7

2
5
8

3
6
9

>> diag(A,1)
ans =
diag(V,k)

Retourne la kime diagonale


2
6
>> diag(A,-1)
ans =
4
8
14

Figure 6  Fonctions utiles pour les matrices (part1)


M.LICHOURI

TPINFO4 :

Page 14/62

2015/05/16

Universit de Blida
Facult des Sciences

tril

2 anne ST
Semestre 4

Renvoie la partie triangulaire inferieure

triu

Cross

Dot

>> B=[1,2,3;4,5,6;7,8,9]
B=
1 2 3
4 5 6
7 8 9
> tril(B)
ans =
1 0 0
4 5 0
7 8 9
>> tril(B,-1)
ans =
0 0 0
4 0 0
7 8 0

>> tril(B,-2)
ans =
0 0 0
0 0 0
7 0 0
Renvoie la partie triangulaire suprieure >> triu(B)
ans =
1 2 3
0 5 6
0 0 9
>> triu(B,-1)
ans =
1 2 3
4 5 6
0 8 9
>> triu(B,1)
ans =
0 2 3
0 0 6
0 0 0
Produit vectoriel de deux vecteurs
>> A = [4 -2 1];
>> B = [1 -1 3];
>> C = cross(A,B)
C=

Produit scalaire de deux vecteurs

-5 -11 -2
>> A = [4 -1 2];
>> B = [2 -2 -1];
>> C = dot(A,B)
C=
8

15

Figure 7  Fonctions utiles pour les matrices (part2)

M.LICHOURI

TPINFO4 :

Page 15/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N1 : Les vecteurs et les matrices (Exercices + Solutions)


3 But :
Savoir eectuer l'aide de MATLAB des oprations matricielle de faon
compacte, sans programmer de boucles sur les indices.

4 Solution Exercice 1
Compltez les oprations suivantes en indiquant ce qu'elles ralisent :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x = [ 1 ; 2 ; 3 ] % cration dun vecteur colonne x
y = [ 4 ; 5 ; 6 ] % idem pour y
z1=x . y % multiplication lment par lment de xy
z2=x .\ y % dvision lment par lment de y sur x
z3=x ./ y % dvision lment par lment de x sur y
z4=x.^y % puissance lment par lment de x en y
length ( z1 ) % taille ou nombre dlment de z1
norm ( z1 ) % la norme du vecteur z1
%%%%%%%%BONUS%%%%%%%%%%%%%
z1 ' % le transpos du vecteur z1
sum ( z1 ) % la somme des lments de z1
prod ( z1 ) % produit des lments de z1
max( z1 ) % la valeur maximale dans z1
min ( z1 ) % la valeur minimale dans z1
median ( z1 ) % la valeur du milieu dans z1
sort ( z1 ) % trier z1 en ordre croissant
mean ( z1 ) % la moyenne arithmetique des valeurs de z1
ze=linspace (1 ,2 ,10) % nous gnre un vecteur contenant 10
valeurs
% equidistants compris entre 1 et 2.

M.LICHOURI

TPINFO4 :

Page 16/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

5 Solution Exercice 2
1. Crer un vecteur ligne de coordonnes contenant les nombres de -5,-4,...,4,5
et dterminer sa taille.
1
2
3
4

>> vec =[ 5:5]


vec =
5

5
6
7
8
9

>>
ans

3

2

1

=
11

11
13

4
5

length ( vec ) % la taille du vecteur est: 11

10
12

% debut:fin avec pas par defaut 1

>>
2. Crer un vecteur colonne de coordonnes contenant les nombres -500,499,-498...,499,500 et dterminer sa taille.

>> col =[ 500:500] '; % on utilise le prime


>> % avoir un vecteur colonne
4 >> % on a utilise le pointvirgule car le
5 >> length ( col ) % sa taille est:1001
2

() pour

6
7

ans

=
1001

9
10
11

vecteur est long

>>
3. Que fait l'instruction suivante : x = [ -1.3, sqrt(3), (1+2+3)*4/5 ] .quelle
est la valeur de x(2)

>>
>> x = [ 1.3 , sqrt (3) , (1+2+3) 4/5 ] %
3 >> % x en evaluant les expressions dont
1
2
4
5
6

x=
1.3000

7
8
9
10
11
12
13

affiche le vecteur
il contient

>> x (2)
ans

1.7321

4.8000

% represente le deuxieme element du vecteur x

=
1.7321

M.LICHOURI

TPINFO4 :

Page 17/62

2015/05/16

Universit de Blida
Facult des Sciences

14
15

2 anne ST
Semestre 4

>>

6 Solution Exercice 3
crire un script MATLAB pour :
 Crer un vecteur v1 contenant 20 valeurs quidistantes entre 0 et 2
 Crer un vecteur v2 contenant 15 valeurs quidistantes entre {12 et 3 {2
 Fusionner ces deux vecteurs en un vecteur v3 tri
 Calculer la norme de v3
1
2
3
4
5
6
7
8
9
10

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% question 1
v1=linspace (0 ,2 pi ,20)
% question 2
v2=linspace ( pi /12 ,3 pi /2 ,15)
% question 3
v3=[v1 v2 ] % concatener les vecteurs v1 et v2
sort ( v3 ) % trier v3
% question 4

norm ( v3 )

7 Solution Exercice 4
Donner les commandes MATLAB pour :
 crer la matrice C=[A, zeros(3,2) ; zeros(2,3), eye(2)].
 Rpliquer le vecteur colonne [1 ; 3 ; 6] pour en faire une matrice 3 lignes
et 19 colonnes : en utilisant ones et en eectuant une multiplication matricielle.
 Pour crer la matrice M de
 la manire la plus courte possible.



M 



1
1
1
1
1

0
0
0
0

0
0
0

4
4

0
0

0
0
0

0
0
0
0

5
6
7
8
9




 Donnez la ligne de commande permettant de crer la matrice suivante


en utilisant les oprations usuelles sur les matrices : ( utiliser ones,eye et
magic).
 Donnez la ligne de commande permettant de crer la matrice suivante en
utilisant les oprations usuelles sur les matrices :

M.LICHOURI

TPINFO4 :

Page 18/62

2015/05/16

Universit de Blida
Facult des Sciences



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

32
33

0
0
1


5

5
0
7

8
6
3

1
9
3

% ou

R3=[ones (1 ,19) ;2+ ones (1 ,19) ;5+ ones (1 ,19) ]


% ou

R4=repmat ( r ,1 ,19)
% question 3

M2=[ones (5 ,1) ,

pi eye (5) , [ 5 ; 6 ; 7 ; 8 ; 9 ] ]
% question 4 (un seule ligne de commande)
M3=31 ones (3) 2 eye (3) +5 [8 1 6; 3 5 7;4 9 2]
% question 4 (plusieurs lignes de commande)
>> C=31 ones (3) % matrice de 3x3 remplit de 1
% quon multiplie avec 31 donc:

C=

31
31
31

31
31
31

31
31
31

>> D=2eye (3)

% commande permettant de generer une matrice


% 3x3 identite quon multiplie avec 2

D=

2
0
0

37

0
2
0

>> E=[5 8 1 %
0 6 9 % des
40 7 3 3]
38
39

44

0
1
0

% ou

36

43

1
0
0

R2=[1 ones (1 ,19) ;3 ones (1 ,19) ;6 ones (1 ,19) ]

35

42


 2 

r =[1;3;6]
R1=r ones (1 ,19)

34

41

31
31
31

% question 2
% repamt(A,m,n) remplique une matrice ou vecteur A m fois
ligne et n fois
% colonne

28

31

31
31
31

A=[1 2 3;4 5 6;7 8 9]


M=[A, zeros (3 ,2) ; zeros (2 ,3) , eye (2) ]

27

30

31
31
31

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% question 1
% partir de M, on dduit que la taille de A doit tre 3x3

26

29

2 anne ST
Semestre 4

0
0
2
on peut separer les lignes dune matrice par
sauts de lignes

E=
5

M.LICHOURI

1
TPINFO4 :

Page 19/62

2015/05/16

Universit de Blida
Facult des Sciences

0
7

45
46
47
48
49
50
51

>> F=CD+5E
87
62
97

53
54
56

9
3
% calculer F

F=

52

55

6
3

2 anne ST
Semestre 4

102
92
77

67
107
77

>>

8 Solution Exercice 5
Soit M , la matrice dnie par :


M 

12
2
7

24
6
9

36 58
8 10
11 13

La sous matrice M 1 est :


M1 

6
9

8
11

crire un script MATLAB qui permet d'extraire :







1
2
3
4
5
6
7
8
9
10

L'lment situ dans la troisime ligne et la quatrime colonne.


Le vecteur L3 contenant tous les lments de la troisime ligne.
Le vecteur C4 contenant tous les lments de la quatrime colonne.
La sous matrice M 1 e la matrice M , constitue partir de l'intersection
de la deuxime et la troisime colonne avec la deuxime et la troisime
ligne.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%Introduction%%%%%%%%%%%%%
% Pour definir une matrice dans matlab on la declare ligne par
ligne
% separee par des pointsvirgule ;
% a=[1 2 3; 4 5 6; 7 8 9]
% ou colonne par colonne separee par des virgules ,
% a=[[1;4;7],[2;5;8],[3;6;9]]
% ou autre...
% question 1

M=[12 24 36 58; 2 6 8 10;7 9 11 13]


M.LICHOURI

TPINFO4 :

Page 20/62

2015/05/16

Universit de Blida
Facult des Sciences

11
12
13
14
15
16
17
18

2 anne ST
Semestre 4

% question 2
% lelement situe dans lintersection entre la 3eme
ligne et la 4eme colonne
% question 3
L3=M( 3 , : ) % Nom_Matrice(i eme ligne,:)
% question 4
C4=M( : , 4 ) % Nom_Matrice(:,j eme colonne)
% question 5
M1=M( 2 : 3 , 2 : 3 ) % Nom_Matrice(ligne i:ligne j,colonne m:colonne
n)

M(3 ,4)

9 Solution Exercice 6
Soient les matrices :




0 1
B   2 0  C  

3 4








1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

1
3
6

2
4
7




Calculer la matrice somme B C


Calculer la matrice D telle que : Dij  Bij  Cij ;
Calculer la matrice D telle que : Dij  Bij {Cij
Cij
Calculer la matrice D telle que : Dij  Bij
Vrier que le produit matriciel B*C n'a pas de sens
Redimensionner la matrice C en utilisant la commande reshape ( voir
help reshape) de manire ce que le produit matriciel B  C devienne
possible.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
6%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% question 1

B=[0 1;2 0;3 4]


C=[1 2;3 4;6 7]
S=B+C
% question 2

D=B. C

% question 3

D=B./C

% question 4

D=B.^C

% question 5
% D=B(3x2)C(3x2) erreur NombreColonneB different NombreLigneA
% fonction resahape remodele la matrice B de tel maniere
garder les memes
% valeurs mais pas la meme dimension (size)
D=B reshape (C,2 ,3)

M.LICHOURI

TPINFO4 :

Page 21/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

10 Solution Exercice 7
Soit le Systme d'quations linaires suivant :






x1  4x2  x3 x4  12
x1 7x2 x3  2x4  16
x1 4x2  x3 2x4  1
3x1  10x2  2x3 5x4  15

a) crire ce systme sous forme matricielle (Ax=b)


b) Crer la matrice A l'aide de MATLAB
c) Extraire les blocs suivants de la matrice A
b1 

7
4

1
1



4 1 1
1 2 
b2   7

1

d) Donner les valeurs de A(2,3) , A(1 :4,3) , A(1, :), diag(A), tril(A), triu(A)
e) crire la matrice D l'aide de MATLAB dnie par : D = Id  A.At o Id
dsigne la matrice identit et At la matrice transpose de A
f) Dnir la matrice B = [ones(4,2)*0.5  ones(4,2)/0.5] et donner le rsultat
obtenu Le produit de A et B est-il possible ? Justier votre rponse. Si oui
quelle est la commande MATLAB qui permet de faire ce produit ?
g) Donner les commandes MATLAB qui permettent de dterminer le dterminant de A et l'inverse de A
h) A quelle condition le systme admet-il une solution unique ?
i) Donner la commande MATLAB qui permet de trouver cette solution
crire ce systme sous forme matricielle (Ax=b)





1
2
3
4
5
6
7
8

1
1
1
3

4 1

7
4
10

1
2

1
2
2
5


 
 


x1
x2
x3
x4


 
 


12
16
1
15




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
7%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% question 1

A=[1 4 1 1;1 7 1 2;1 4 1 2;3 10 2 5]


b=[12;16;1; 15]
% question 2

b1=M( 2 : 3 , 2 : 3 )
b2=M( 1 : 3 , 2 : 4 )

% question 3

A(2 ,3)
10 A(1:4 ,3)
9

M.LICHOURI

TPINFO4 :

Page 22/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

A( 1 , : )
diag (A)
13 t r i l (A)
14 triu (A)
11
12

15
16
17
18
19
20
21
22
23
24
25

% question 4

D=eye (4)AA'
% question 5

B=[ones (4 ,2) 0.5 ones (4 ,2) / 0 . 5 ]


[ nbrLigneA , nbrColonneA]= s i z e (A)
[ nbrLigneB , nbrColonneB]= s i z e (B)
i f nbrColonneA==nbrLigneB
disp ( ' produit A*B possible ' )
AB
else

disp ( ' impossible ' )

26

end

27

% question 6

28
29
30
31
32
33
34

det (A)
inv (A)

% question 7

i f det (A)~=0
disp ( 'le systeme admet une solution unique ' )

else

35
36

x=A\b

disp ( 'le systeme n" admet pas de solution ou une infinit


de solution ' )

end

11 Solution Exercice Supplmentaire 1


1. Soit le vecteur v=[-1 -3 -5 -7],gnrer la matrice A=[v ;2*v ;3*v ;4*v] Compltez :
1
2
3
4
5

>>
>> v=[1 3 5 7]
v=
1

6
7
8
9
10
11
12
13
14

3

5

7

>> A=[v ;2 v ;3 v ;4 v ]
A=
1
2
3

3
6
9

M.LICHOURI

5
10
15

7
14
21
TPINFO4 :

Page 23/62

2015/05/16

Universit de Blida
Facult des Sciences

4

15
16
17

>>

18

>>
>>

19
20
21

ans

22

12

20

2 anne ST
Semestre 4

28

% on a declarer une matrice en utilisant un variable qui


est
% le vecteur v

diag (A)

=
1
6
15
28

23
24
25
26
27

>> % diagonale dune matrice est extraite par la commande


>> % le resultat sera affiche comme vecteur colonne
30 >> A(2 :3 ,2 : 4 )
28

diag

29
31
32

ans

33

6
9

34
35
36

>>
>>
39 >>
37
38
40
41

ans

42
44
45
46
48
49
50

>>
ans

51
53
54
55
56
57
58
59

>>
ans

60

63

0
6
9
12

0
0
15
20

0
0
0
28

triu (A) % affiche la partie superieur a la diagonale

=
3
6
0
0

5
10
15
0

7
14
21
28

det (A) % calcule le determinant de A

=
0

61
62

14
21

1
0
0
0

52

10
15

% extraire une sous matrice de la 2 ver la 3 ligne


% et de la 2 vers 3 colonne aussi
t r i l (A) % affiche la partie inferieur a la diagonale

1
2
3
4

43

47

>>

inv (A) %calcule la matrice inverse de A

M.LICHOURI

TPINFO4 :

Page 24/62

2015/05/16

Universit de Blida
Facult des Sciences

64
65
66

Warning : Matrix i s singular to working p r e c i s i o n .


=

ans

67

Inf
Inf
Inf
Inf

68
69
70
71
72
73
74

2 anne ST
Semestre 4

>>
>>

Inf
Inf
Inf
Inf

Inf
Inf
Inf
Inf

Inf
Inf
Inf
Inf

% infinie car determinant nulle

2. Gnrer la matrice M=[ones(5,1) 3.4*eye(5,5) 5*ones(5,2)]


1
2
3
4

>>
>> ones (5 ,1)
=

ans

1
1
1
1
1

6
7
8
9
10
11
12
13
14
15

>>
>>

% vecteur colonne de 5 ligne remplit de 1


eye (5 ,5) % matrice identite 5x5

ans

16

1
0
0
0
0

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

=
0
1
0
0
0

0
0
1
0
0

0
0
0
1
0

0
0
0
0
1

>> M=[ones (5 ,1) 3.4 eye (5 ,5) 5 ones (5 ,2) ]


M=
Columns 1 through 6
1.0000
1.0000
1.0000
1.0000
1.0000

3.4000
0
0
0
0

0
3.4000
0
0
0

0
0
3.4000
0
0

0
0
0
3.4000
0

0
0
0
0
3.4000

Column 7 through 8
M.LICHOURI

TPINFO4 :

Page 25/62

2015/05/16

Universit de Blida
Facult des Sciences

5.0000
5.0000
5.0000
5.0000
5.0000

37
38
39
40
41
42
43

2 anne ST
Semestre 4

5.0000
5.0000
5.0000
5.0000
5.0000

>>

12 Solution Exercice Supplmentaire 2


1.crire la commande
qui ache la matrice A suivante :

1
A 0
7
1
2
3
4
5

2
5
2

3
4
9

>>
>> A=[1 2 3; 0 5 4; 7 0 9]
A=
1
0
7

6
7
8

2
5
0

3
4
9

2. Compltez et commentez :
1
2
3
4

>> v=diag (A)


v=
1
5
9

5
6
7
8
9
10
11
12

>> b=diag (v)


%

% cree une matrice dont la diagonale est v


et le reste zero

b=

1
0
0

13
14
15
16
17
18
19
20
21

% affiche la diagonale de la matrice A

0
5
0

0
0
9

>> c=diag ( diag (A) )

% equivalent a v suivie par v

c=
1

M.LICHOURI

0
TPINFO4 :

Page 26/62

2015/05/16

Universit de Blida
Facult des Sciences

0
0

22
23
24
25
26
27

>> A( 1 : 2 , : )
ans

28

1
0

30
32
33
34

ans

2
5
0

37
38
40
41
42

ans

A.


% sous matrice contenant lintersection des


% lignes 1 et 2 avec les colonnes 2 et 3.

3
4

3. Donnez la commande qui extrait les sous matrices suivantes de la matrice


5
0

4
9

>> % on doit extraire lintersection des


>> A( 2 : 3 , 2 : 3 ) % avec les colonnes 2 et 3
ans

5
0
1
0

3
4

4
9

>> % on doit extraire lintersection


>> % 1 et 2 avec les colonnes 1 et 3
3 >> A( 1 : 2 , 1 : 2 : 3 ) % on fait un saut de
1
2
4
5
6
7
8

ans

lignes 2 et 3

6
7

3
4
9

2
5

45

% sous matrice allant de la 2 colonne vers la 3.

44

3
4

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

43

2
5

36

39

% sous matrice allant de la 1 ligne vers la 2.

>> A( : , 2 : 3 )

35

0
9

29
31

5
0

2 anne ST
Semestre 4

des lignes
(la 2 colonne est omis)
2 pour les colonnes

=
1
0

3
4

M.LICHOURI

TPINFO4 :

Page 27/62

2015/05/16

Universit de Blida
Facult des Sciences


1
2
3

1
7

3
9

2 anne ST
Semestre 4

>> A( 1 : 2 : 3 , 1 : 2 : 3 ) % on fait
ans = % et les colonnes
1
7

4
5

un saut de 2 pour les colonnes

3
9

13 Solution Exercice Supplmentaire 3


Soit le systme dnit par :




3x 2y  z  1
2y 4z  2  0
x 2z  5

1. Reprsenter ce systme sous forme matricielle (Ax=b), et dnit l'aide


de Matlab la matrice A et le vecteur b.



1
2
3
4
5

3
0
1

11
12
13

20
21
22

x
y
z


 

1
2
5

1
4
2
% ou b=[1 2

5]

1
2
5

16

19

4
2


 

b=

15

18

2
2
0

>> b=[1;2; 5]

14

17

1

A=

7
9

2
2
0

>>
>> A=[3 2 1;0 2 4; 1 0 2]

10

3
0
1

>> b=[1 2 5] '


b=
1
M.LICHOURI

TPINFO4 :

Page 28/62

2015/05/16

Universit de Blida
Facult des Sciences

2
5

23
24
25
26

2 anne ST
Semestre 4

>>
2. Quelle est la condition pour que ce systme admet une solution unique ?

detpAq 0
1
2
3
4
5
6
7
8

>>
>>

i f ( det (A)~=0) % different de zero


f p r i n t f ( 'A admet une solution unique \n ' )
else
f p r i n t f ( 'A n" admet pas une solution unique \n ' )
end
% A admet une solution unique

>>

3. Rsoudre ce systme l'aide de Matlab.


1
2
3

>>

det (A)

ans

6.0000

5
6
7
8
9
10

>> X=A\b
X=

7.0000
13.0000
6.0000

11
12
13
14
15

% X contient les valeurs de x,y,z

>>

14 Solution Exercice supplmentaire 4


1. Crer la matrice A
1234
5678
6082
1
2
3
4

>> % on definit une matrice ligne


>> A=[1 2 3 4; 5 6 7 8 ; 6 0 8 2]

par ligne

% on separe les colonnes avec ecpace ou virgule


% on separe les lignes avec pointvirgule

M.LICHOURI

TPINFO4 :

Page 29/62

2015/05/16

Universit de Blida
Facult des Sciences

5
6

2 anne ST
Semestre 4

A=
1
5
6

7
8
9

2
6
0

3
7
8

4
8
2

2. Crer avec la ligne de commande la plus courte possible la matrice B valant :


123456789
246801234
222222222
1
2
3
4

>> B=[1:9; 2 : 2 : 8 0 : 4 ; 2 ones (1 ,9) ]


% 2:2:8 de 2 vers 8 avec pas de 2

B=

1
2
2

5
6
7
8
9
10
11
12
13

2
4
2

3
6
2

4
8
2

5
0
2

6
1
2

7
2
2

8
3
2

9
4
2

>> ones (1 ,9) %

commande generant une matrice de 1 ligne et


% 9 colonne ne contenant que des 1

ans

M.LICHOURI

TPINFO4 :

Page 30/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N2 : Les fonctions


15 But :
En plus des fonctions prdnies, Il est aussi possible de crer ses propres
fonctions MATLAB. Il y'a deux manires de dnir une fonction :

16 Fonctions inline
La fonction inline permet de dnir directement une fonction sans avoir
crer un chier portant le nom de cette fonction :
1
2

>> h = i n l i n e ( ' expression ' ) ;


>> h = i n l i n e ( ' expression ' , 'args ' ) ;
L'expression de la fonction doit tre assez simple et le nombre d'arguments
pas trop lev.
Exemples :

1
2
3
4
5

>> f1= i n l i n e ( 'log (x)

- 1 ' , 'x ' ) ;

>> f2= i n l i n e ( 'log (x)

- p ' , 'x ' , 'p ' ) ;

>> f3 = i n l i n e ( '3* sin (2* x .^2) ' )


Remarque1
Une fonction est active lorsque son nom apparait avec les paramtres
eectifs la place des paramtres formels.
Exemple :

 f3(pi/2)

M.LICHOURI

TPINFO4 :

Page 31/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Remarque2
Lorsque l'on dnit une fonction, il est prfrable d'utiliser systmatiquement les oprateurs terme terme . .{ et .^ au lieu de  { et ^ si l'on
veut que cette fonction puisse s'appliquer des tableaux.
Exemple :

1
2

>>x=1: pi /2:2 pi
>>sincos= i n l i n e ( 'sin (x) -x .* cos (x) ' )

17 M-les functions
Ds que la fonction ncessite plusieurs instructions, il vaut mieux la dnir
dans un chier part l'aide de l'diteur de texte.
Une fonction Matlab est une suite de commandes qui ncessite un input pour
tre excute et qui renvoie un output. La dclaration des fonctions en Matlab
suit les rgles suivantes.
 Une fonction est contenue dans un chier ".m" avec le mme nom que la
fonction.
 Syntaxe de dnition d'une fonction externe : function ry1, ..., yms 
nomf onctionpx1, ...., xnq o x1, ..., xn, les n arguments d'entre et y1, y2, ..., yn
les m arguments de sortie.
 Si la fonction ne possde qu'une seule variable de sortie, les crochets sont
inutiles.

Remarque3

Le passage des arguments d'entre dans les fonctions se fait par valeur.
Aussi, mme si elles sont modies dans la fonction les valeurs des paramtres ne sont pas modies dans le programme appelant.
Exemple :

1
2
3

Listing 4 polaire.m
function [ r , theta ]= p o l a i r e (x , y)
r=sqrt (x^2+y^2) ;
theta=atan (y/x) ;
On appellera la fonction

polaire partir de l'invite de commande.

>> [ r , t]= p o l a i r e (2 ,3)

% si on veut rcuprer la fois le

rayon et langle

M.LICHOURI

TPINFO4 :

Page 32/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Remarque4
Une fonction peut tre appele en mode interactif ou dans un script.
Exemple : crire un script qui utilise une fonction comp pour compter le
nombre d'lments divisible par 3 dans un vecteur
Exemple :

Listing 5 comp.m
1
2
3
4
5
6
7
8

% on dfinit la fonction dans un m file comp.m

function [ cp]= comp (v , n)


cp=0;
for i =1:n
i f ( mod(v( i ) ,3)==0)
cp=cp+1;

end

end

On appellera la fonction

comp partir d'un chier .m

Listing 6 exo.m
1
2
3
4
5
6
7

% on crit un script qui appelle la fonction comp


n=input ( ' nombre d '' elements ' ) ;

for

i =1:n
v( i )=input ( ' entrer

end
disp (v)

1 nombre ' ) ;

s=comp(v , n) ; disp ( s ) ;

M.LICHOURI

TPINFO4 :

Page 33/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N2 : Les fonctions (Exercices + Solutions)


18 Solution Exercice 1 :
A l'aide d'une fonction f calculez la distance Euclidienne entre deux points
A et B.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

clear a l l ;
clc ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% lecure des coordonnees des point A (xa, ya) et B(xb,yb)
xa=input ( ' donner la valeur de xa ' )
ya=input ( ' donner la valeur de xa ' )
xb=input ( ' donner la valeur de xa ' )
yb=input ( ' donner la valeur de xa ' )
% declaration de la fonction f qui permet de calculer
% la distance euclidienne
f=i n l i n e ( 'sqrt (( xb - xa ) .^2+( yb - ya ) .^2) ' )
% calcul de la distance entre A et B.

d i s t=f (xa , ya , xb , yb) ;

%affichage
f p r i n t f ( 'la distance entre A (%f ,% f) et B (%f ,% f) est %f\n ' ,xa ,

ya , xb , yb , d i s t )

19 Solution Exercise 2 :
crire une fonction f ?
qui ache une table de valeurs f(x) tq :

f pxq  sinpxq

lnpxq 

et x compris entre 1 et 10.


1
2
3
4
5
6

x.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% declaration de la fonction f avec inline
f=i n l i n e ( 'sin (x) -log (x) -sqrt (x) ' )
% evaluation de la fonction f avec des valeurs compris entre 1
et 10

for

x=1:10

f p r i n t f ( 'f (% f) =% f\n ' ,x , f (x) )

M.LICHOURI

TPINFO4 :

Page 34/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

end

20 Solution Exercice 3 :
En utilisant une fonction f calculer l'integrale de f pxq 
[a,b] en en utilisant la mthode
des trapezes.

I  h2  rf paq
a
h  b
n
xi  a i  h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

f pbq

2

1
1 x5

sur l'intervalle

 f pxi qs

n
i 1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% les inconnus spnt les bornes a, b [a,b] et le nombre d
iteration n
% etape 1, on lit les variable a,b et n
a=input ( ' donner la valeur de a ' )
b=input ( ' donner la valeur de b ' )
n=input ( ' donner la valeur de n ' )
% etape 2,on declare la fonction f avec inline
f=i n l i n e ( ' 1./(1+ x .^5) ' )
% etape 3, on calcul la variable h et la somme S

h=(ba ) /n ;
S=0;
for i =1:n
xi=a+i h ;
S=S+f ( xi ) ;

end

I=h ( f (a )+f (b)+2S) /2;


f p r i n t f ( 'l" integrale de

f dans [a ,b] est %f\n ' , I )

21 Solution Exercice 4 :
En utilisant une fonction f calculer l'integrale de f pxq 
[a,b] en en
 utilisant la mthode de SIMPSON.
I
1
2
3
4
5

 h2  f paq

f pbq

2

i 1 f p a

i  hq

4

n1


i 0

1
1 x6

f pa

sur l'intervalle

i  hq

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% les inconnus spnt les bornes a, b [a,b] et le nombre d
iteration n
% etape 1, on lit les variable a,b et n
a=input ( ' donner la valeur de a ' )
b=input ( ' donner la valeur de b ' )

M.LICHOURI

TPINFO4 :

Page 35/62

2015/05/16

Universit de Blida
Facult des Sciences

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

2 anne ST
Semestre 4

n=input ( ' donner la valeur de n ' )


% etape 2,on declare la fonction f avec inline
f=i n l i n e ( ' 1./(1+ x .^6) ' )
% etape 3, on calcul la variable h et les sommes S1 et S2
h=(ba ) /n ;
S1=0;
for i =1:n1
x1=a+2 i h ;
S1=S1+f ( x1 ) ;

end

S2=0;
for i =0:n
x2=a+(2 i +1) h ;
S2=S2+f ( x2 ) ;

end

I=h ( f (a )+f (b)+2 S1+4 S2) /2;


f p r i n t f ( 'l" integrale de f dans

[a ,b] est %f\n ' , I )

22 Solution Exercice 5 :
En utilisant une fonction PAIR, trouver les termes de la suite Un dnie par :
Un

"

Un
2 siUn pair
Un 1sinon

3

La suite se termine si un terme vaut 1.


1
2
3

Listing 7 pair.m
function [ t]= pair (nb)
i f mod(nb , 2 )==0

t =1;
else

4
5
6

end

t =0;

end

Listing 8 exo5.m
u0=input ( ' donner la premiere valeur de U0 >1 ' ) ;

2
3
4
5
6
7

i =0;

f p r i n t f ( 'u [% d ]=% d\n ' , i


while (u0>1)

, u0)

i=i +1;
i f pair (u0)==1
u0=u0 /2;

M.LICHOURI

TPINFO4 :

Page 36/62

2015/05/16

Universit de Blida
Facult des Sciences

8
9
10
11
12

2 anne ST
Semestre 4

else

u0=3 u0+1;

end
f p r i n t f ( 'u [% d ]=% d\n ' , i
end

M.LICHOURI

, u0)

TPINFO4 :

Page 37/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N3 : Graphisme sous  Matlab 


23 Importance de la reprsentation graphique
MATLAB est un logiciel conu pour les calculs scientiques. Ceci signie que
MATLAB va aider l'utilisateur (ingnieur, tudiant, comptable,. . . ) rsoudre
un problme li un phnomne naturel ou bien physique. Autrement dit, les
observations (donnes) d'un expert ou bien d'un utilisateur sont enregistres
souvent sous forme des chires. Reprsenter ses observations sous forme d'un
tableau ne permet pas l'utilisateur de mieux voir la variation de ces donnes
. Tandis que, si ces donnes sont reprsentes graphiquement, l'utilisateur peut
non seulement voir la variation mais il peut aussi slectionner les rgions d'intrt et les rgions ou les vnements pertinents se produisent. (sparation des
racines pour le choix de l'intervalle)

24 Reprsentation graphique 2D
24.1 La commande plot :
Syntaxe :

plot(x,y) o x est le vecteur contenant les valeurs xi en abscisse et y est le vecteur


contenant les valeurs yi en ordonne. Bien entendu les vecteurs x et y doivent
tre de mme dimension mais il peut s'agir de vecteurs lignes ou colonnes. Par
dfaut, les points pxi, yiq sont relis entre eux par des segments de droites.

Exemple1 :

x= 1:0.1:5
>> y=x.^5+1;
3 >> plot (x , y)
1
2

Exemple2 :

Tracer le graphe de la fonction hpxq  x  sinpxq entre


1
2
3

2 et 2.

>> x=[2 pi : 0 . 0 1 : 2 pi ] ; y = x . sin (x) ;


>> plot (x , y)
Exemple 3 :

La commande plot s'applique aussi aux matrices

M.LICHOURI

TPINFO4 :

Page 38/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

>> M = [0 2 1;2 0 3;3


M=
3
0
2
4
2
0
5
3
3
6
1
1
7 >> plot (M)
1
2

3 2;1 1 4]
1
3
2
4

Si elle contient une seule matrice comme argument : elle considre


les valeurs de chaque colonne comme les lments de l'axe Y, et leurs positions
relatives (le numro de ligne) comme les valeurs de l'axe X. Donc, elle donnera
plusieurs courbes (une pour chaque colonne).

Figure 8  Trac d'une matrice M


Exemple4 :
1
2

f=i n l i n e ( ' 1/(1+ x ^5) ' )


2])

fplot ( f ,[ 2

25 Amliorer la lisibilit d'une gure


25.1 Lgender une gure
La commande grid permet d'obtenir un quadrillage de la gure, voir par
exemple la gure ci dessus Il est recommand de mettre une lgende une
gure. La commande xlabel permet de mettre un texte en lgende sous l'axe
des abscisses. La syntaxe est xlabel(' lgende '). La commande ylabel fait de
mme pour l'axe des ordonnes.
M.LICHOURI

TPINFO4 :

Page 39/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

La commande title permet de donner un titre la gure. La syntaxe est


title(' le titre') pour obtenir comme titre le titre.

On peut aussi crire un texte donn une position prcise sur la gure grce
la commande text. La syntaxe est text(posx,posy,' un texte ') o posx
et posy sont les coordonnes du point (dans le systme associ au dessin) o
doit dbuter l'criture du texte un texte.

Exemple5 :

1
2
3
4
5
6
7
8
9
10

clear a l l
figure (1)

P = 5;
t = [0:.01:2];
c = 12 exp(2 t )  8 exp(6 t ) ;
plot ( t , c ) ; grid
xlabel ( ' temps en minutes ' )
ylabel ( ' concentation en gramme par litre ' )
t i t l e ( [ ' evolution de la concentration du produit ' ,
) , ...
' au cours du temps ' ] )

num2str (P

On peut spcier MATLAB quelle doit tre la couleur d'une courbe, quel
doit tre le style de trait et/ou quel doit tre le symbole chaque point pxi, yiq.
Pour cela on donne un troisime paramtre d'entre la commande plot qui est
une chane de 3 caractres de la forme 'cst' avec c dsignant la couleur du trait,
s le symbole du point et t le type de trait. Les possibilits sont les suivantes :

Figure 9  Options de la commande plot


Exemple6 :
1
2
3

plot (x ,
plot (x ,
plot (x ,

y , 'black -.^ ' )


y , 'r :* ' )
y , 'bp - ' )

M.LICHOURI

TPINFO4 :

Page 40/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

25.2 Acher plusieurs courbes dans une mme fentre


il est possible d'acher plusieurs courbes dans une mme fentre graphique
grce la commande hold on. Les rsultats de toutes les instructions graphiques
excutes aprs appel la commande hold on seront superposs sur la fentre
graphique active. Pour rtablir la situation antrieure (le rsultat d'une nouvelle
instruction graphique remplace dans la fentre graphique le dessin prcdent)
on tapera hold o. Voici un exemple d'utilisation de la commande hold on. Le
rsultat est prsent la gure.

Exemple7 :

1
2
3
4
5
6
7
8
9
10
11

clear ;
clc ;

x = 4:0.5:4;
y = 2x.^3+x.^22 x+4;
plot (x , y , 'rd : ' )
t i t l e ( ' graphe de f(x) ' )
hold on ;
dy = 6x.^2+2 x2;
plot (x , dy , 'gp - ' )
t i t l e ( ' graphe de fd (x) ' )
hold o f f ;

La deuxime mthode pour tracer plusieurs graphes dans une mme fentre
consiste utiliser la fonction subplot . Cette fonction permet de subdiviser
la fentre graphique utilise en plusieurs sous -fentres. Chacune de ces sousfentres se comporte comme une fentre part.
La syntaxe de cette commande est la suivante :
Subplot(n,m,k) avec :
n : nombre de lignes.
m : nombre de colonnes.
k : la position du graphe.

Exemple8 :
1
2
3
4
5
6
7
8
9
10
11
12

clear a l l ;
clc
t= [ 0 : pi /100: 2 pi ] ;
y=sin (0.3 pi t ) ;
y1=cos (0.3 pi t ) ;
y2=sin (0.3 pi t )+cos (0.3 pi t ) ;
y3=sin (0.3 pi t )cos (0.3 pi t ) ;
subplot (2 ,2 ,1) ; plot ( t , y)
grid
subplot (2 ,2 ,2) ; plot ( t , y1 )
grid
subplot (2 ,2 ,3) ; plot ( t , y2 )

M.LICHOURI

TPINFO4 :

Page 41/62

2015/05/16

Universit de Blida
Facult des Sciences

13
14
15

grid
subplot (2 ,2 ,4) ; plot ( t ,
grid

M.LICHOURI

2 anne ST
Semestre 4

y3 )

TPINFO4 :

Page 42/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N3 : Graphisme sous  Matlab  (Exercices + Solutions)


26 Solution Exercice d'introduction
crire un script MATLAB, qui permet de reproduire (gnrer) le graphe
suivant :

Figure 10  Graphe de la vitesse


1
2
3
4
5
6
7
8
9

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE Introduction
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Tracer le premier segment situee dans [0 1]
t1 =0:0.1:1; %definir lintervalle [0 1]
v1=2 t1 ; % exprimer la vitesse v1 en fonction de t1
plot ( t1 , v1 , 'r ' ) % tracer v1 en fonction de t1 en rouge
hold on % ajouter dautre segment sur la meme figure
% Tracer le premier segment situee dans [1 3]
t2 =1:0.1:3; %definir lintervalle [1 3]
v2=2 ones (1 , length ( t2 ) ) ; % v2 est constante pour tous le
valeurs de t2

M.LICHOURI

TPINFO4 :

Page 43/62

2015/05/16

Universit de Blida
Facult des Sciences

10
11
12
13
14
15
16
17
18
19
20

2 anne ST
Semestre 4

plot ( t2 , v2 , 'g ' ) % tracer v2 en fonction de t2 en vert


% Tracer le premier segment situee dans [3 5]
t3 =3:0.1:5; %definir lintervalle [3 5]
v3=t3 +5; % exprimer la vitesse v3 en fonction de t3
plot ( t3 , v3 ) % tracer v3 en fonction de t3 en bleu(par defaut)
t i t l e ( ' Variations de la vitesse en fonctions du temps ' ) %
ajouter un titre au graphe
xlabel ( ' Temps (s) ' ) % ajouter une etiquette a laxe des x
ylabel ( ' Vitesse (m/s) ' ) % ajouter une etiquette a laxe des y
legend ( 'V=f(t) ' ) % ajouter une legend au trace
grid on % afficher la grille
hold o f f % fin dajout de trace

Figure 11  Variation de la vitesse en fonction du temps

27 Solution Exercice 1 :
1. Donnez les commandes MATLAB ncessaires pour dessiner les courbes de
chacune des fonctions suivantes :
1) f pxq  a
2ex 3x pour x P r2.5...2.5s, pas  0.2 ;
2) g pxq  px2  3q pour x P r2...10s, pas  0.5 ;
3) hpxq  lnpxq 4 pour x P r1...4s, pas  0.1 ;
2. Donnez les commandes ncessaires pour dessiner les courbes des fonctions
f pxq et g pxq et hpxq dans la mme gure avec les lgendes ncessaires et des
styles dirents.

M.LICHOURI

TPINFO4 :

Page 44/62

2015/05/16

Universit de Blida
Facult des Sciences

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

2 anne ST
Semestre 4

%%%%%%%%%%%%%%%%%%%%%%%%%%%Reponse
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% Deviser la figure en trois sous figures
figure (1) % creer une figure 1
subplot (1 ,3 ,1) % considerer un alignement de trois figures
% dans une seul ligne et trois colonnes
% On trace f(x) dans la position 1
%%%fonction f(x) %%%%%%%Methode1%%%%%%%

x1 = 2.5:0.2:2.5;
f=i n l i n e ( ' -2* exp (x) +3* x ' )
fplot ( f , [ 2.5 2 . 5 ] )

%%%fonction g(x) %%%%%%%Methode2%%%%%%%


subplot (1 ,3 ,2) % On trace g(x) dans la position 2

x2 =2:0.5:10;
g=i n l i n e ( 'sqrt (x .^2 -3) ' )
y=g ( x2 ) ;
plot (x2 , y , 'r ' )

%%%fonction h(x) %%%%%%%Methode3%%%%%%%


subplot (1 ,3 ,3) % On trace h(x) dans la position 3

x3 =1:0.1:4;
h=log ( x3 ) +4;
plot (x3 , h , 'g ' )

Figure 12  Trac des trois fonctions avec subplot


1
2
3

%%%%%%%%%%%%%%%%%%%%%%%%%%%Reponse
2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure (2) % creer une figure 2

x1 = 2.5:0.2:2.5;

M.LICHOURI

TPINFO4 :

Page 45/62

2015/05/16

Universit de Blida
Facult des Sciences

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

2 anne ST
Semestre 4

f=i n l i n e ( ' -2* exp (x) +3* x ' )


x2 =2:0.5:10;
g=i n l i n e ( 'sqrt (x .^2 -3) ' )
x3 =1:0.1:4;
h=i n l i n e ( 'log ( x3 ) +4 ' ) ;
plot (x1 , f ( x1 ) , 'r* ' )
hold on
plot (x2 , g ( x2 ) , 'g - ' )
plot (x3 , h( x3 ) , 'm+ ' )
t i t l e ( ' Trois fonctions f(x) ,
xlabel ( 'axes des x ' )
ylabel ( 'axes des y ' )
legend ( 'f(x) ' , 'g(x) ' , 'h(x) ' )
grid on
hold o f f

g(x) et h(x) ' )

Figure 13  Trac des trois fonctions avec hold on

28 Solution Exercice 2 :
1. crire un script MATLAB qui tant donne une valeur relle x, cre la
fonction f dnie par :


2 x10
3
f p xq   a
x 1
4

px
2. Dessine sa courbe sur r44s
M.LICHOURI

10q

x  1
1 x 1
sinon

TPINFO4 :

Page 46/62

2015/05/16

Universit de Blida
Facult des Sciences

1
2
3
4

Listing 9 fonct.m
function y=fonct (x)
i f (x<=1)

y=2+x .^10;
(x>1)
y=3./(x+1) ;

else i f

else

6
7
8
9
10

end
end

end

y=sqrt (x.^4+10) ;

On appellera la fonction
1
2
3
4
5
6
7
8

2 anne ST
Semestre 4

fonct

pour la tracer.

x= 4:0.1:4;
y=fonct (x) ;
plot (x , y , 'r* ' )
t i t l e ( ' Fonctions fonct (x) ' )
grid on
xlabel ( 'axes des x ' )
ylabel ( 'axes des y ' )
legend ( ' fonct (x) ' )

Figure 14

M.LICHOURI

TPINFO4 :

Page 47/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

29 Solution Exercice 3 :
a

Soit la fonction : y pxq  pxq xsinp2xq.


crire un script(programme) MATLAB, qui permet de :
1. Tracer le graphe de la fonction y pxq dans l'intervalle r010s avec un pas de
0.1 dans une gure, avec le titre "Fonctions Trigonomtriques".
2. Tracer sur la mme gure le graphe de la fonction g pxq  x2  xcosp2xq
sur le mme intervalle en changeant la couleur.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

x =0:0.01:10;
y=sqrt (x)+x . sin (2 pi x) ;
figure (1)
plot (x , y , 'r ' )
hold on
g=x.^2x . cos (2 pi x) ;
plot (x , g , 'g ' )
t i t l e ( ' Fonctions Trigonom triques ' )
grid on
xlabel ( 'axes des x ' )
ylabel ( 'axes des y ' )
legend ( 'y(x) ' , 'g(x) ' )
hold o f f

Figure 15  Fonctions Trigonomtriques

M.LICHOURI

TPINFO4 :

Page 48/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

30 Solution Exercice 4 :
Soit la matrice M=[ones(5,1) 3.4*eye(5,5) 5*ones(5,2)]. Tracer le graphe de
la matrice M et de sa transpose.
1
2
3
4
5
6
7
8
9

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE
4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M=[ones (5 ,1) 3.4 eye (5 ,5) 5 ones (5 ,2) ]
M1=M' % transpos de M

figure (1)
plot (M)
t i t l e ( ' Matrice M ' )
figure (2)
plot (M1)
t i t l e ( ' Matrice M1 ' )

Figure 16  Matrice M

M.LICHOURI

TPINFO4 :

Page 49/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Figure 17  Matrice M1

31 Solution Exercice supplmentaire 1 (devoir de


maison) :
1. Reprenez l'exercice de l'introduction. Ensuite, calculer et tracez l'acclration et le dplacement dans la mme gure.
1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE Supplementaire
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

% Tracer le premier segment situee dans [0 1]


t1 =0:0.1:1; %definir lintervalle [0 1]
v1=2 t1 ; % exprimer la vitesse v1 en fonction de t1
a1=2 ones (1 , length ( t1 ) ) ; % exprimer lacceleration a1
x1=t1 .^2; % exprimer le deplacement x1
% Tracer le premier segment situee dans [1 3]
t2 =1:0.1:3; %definir lintervalle [1 3]
v2=2 ones (1 , length ( t2 ) ) ; % v2 est constante pour tous le
valeurs de t2
a2=0 ones (1 , length ( t2 ) ) ; % exprimer lacceleration a2
x2=2 t2 ; % exprimer le deplacement x2
% Tracer le premier segment situee dans [3 5]
t3 =3:0.1:5; %definir lintervalle [3 5]
v3=t3 +5; % exprimer la vitesse v3 en fonction de t3
a3=1 ones (1 , length ( t3 ) ) ; % exprimer lacceleration a3
x3=0.5 t3 .^2+5 t3 ; % exprimer le deplacement x3

M.LICHOURI

TPINFO4 :

Page 50/62

2015/05/16

Universit de Blida
Facult des Sciences

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

2 anne ST
Semestre 4

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure (1) % le trace de la vitesse
plot ( t1 , v1 , 'r ' ) % tracer v1 en fonction de t1 en rouge
hold on % ajouter dautre segment sur la meme figure
plot ( t2 , v2 , 'r ' ) % tracer v2 en fonction de t2 en rouge
plot ( t3 , v3 , 'r ' ) % tracer v3 en fonction de t3 en rouge
t i t l e ( ' Variations de la vitesse en fonctions du temps ' ) %
ajouter un titre au graphe
xlabel ( ' Temps (s) ' ) % ajouter une etiquette a laxe des x
ylabel ( 'V(m/s) ' ) % ajouter une etiquette a laxe des y
legend ( 'V=f(t) ' ) % ajouter une legend au trace
grid on % afficher la grille
hold o f f % fin dajout de trace
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure (2) % le trace de lacceleration
plot ( t1 , a1 , 'g ' ) % tracer a1 en fonction de t1 en vert

hold on
plot ( t2 , a2 , 'g ' ) % tracer a2 en fonction de t2 en vert
plot ( t3 , a3 , 'g ' ) % tracer a3 en fonction de t3 en vert
t i t l e ( ' Variations de l" acceleration en fonctions du temps ' ) %
ajouter un titre au graphe

40
41
42
43
44
45
46
47
48
49
50
51

xlabel ( ' Temps (s) ' ) % ajouter une etiquette a laxe des x
ylabel ( 'A(m/ s2 ) ' ) % ajouter une etiquette a laxe des y
legend ( 'A=f(t) ' ) % ajouter une legend au trace
grid on % afficher la grille
hold o f f % fin dajout de trace
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure (3) % le trace du deplacement
plot ( t1 , x1 , 'm ' ) % tracer x1 en fonction de t1 en magenta

hold on
plot ( t2 , x2 , 'm ' ) % tracer x2 en fonction de t2 en magenta
plot ( t3 , x3 , 'm ' ) % tracer x3 en fonction de t3 en magenta
t i t l e ( ' Variations du deplacement en fonctions du temps ' ) %
ajouter un titre au graphe

52
53
54
55
56

xlabel ( ' Temps (s) ' ) % ajouter une etiquette a laxe des x
ylabel ( 'X(m) ' ) % ajouter une etiquette a laxe des y
legend ( 'X=f(t) ' ) % ajouter une legend au trace
grid on % afficher la grille
hold o f f % fin dajout de trace

M.LICHOURI

TPINFO4 :

Page 51/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Figure 18  Variations de l'acclration en fonction du temps

Figure 19  Variations du dplacement en fonction du temps

M.LICHOURI

TPINFO4 :

Page 52/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

32 Solution Exercice supplmentaire 2 (devoir de


maison) :
crire un script MATLAB, qui permet de reproduire (gnrer) le graphe
suivant :

Figure 20  impulsion lectrique


1
2
3
4
5
6
7
8
9
10
11
12
13

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE Supplementaire 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

t1 =0:0.01:1;
V1=1 ones (1 , length ( t1 ) ) ;
plot ( t1 ,V1, 'r ' )
hold on
t2 =1:0.01:3;
V2=1+0.5 sin ( pi t2+pi ) ;
plot ( t2 ,V2, 'm ' )
t i t l e ( ' impulsion electrique ' )
xlabel ( 'axes des temps T(s) ' )
ylabel ( ' Tension electrique V ' )
grid on
hold o f f

M.LICHOURI

TPINFO4 :

Page 53/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Figure 21  Trac d"une impulsion lectrique

M.LICHOURI

TPINFO4 :

Page 54/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N4 : Mthodes Numriques(Exercices


+ Solutions)
33 But :
1. Trac des courbes
2. Manipulation des de polynmes
3. Calcul de la valeur approche d'une racine d'une fonction relle d'une
variable relle par les mthodes de Dichotomie de Newton et de la scante,v

34 Solution Exercice 1
Il existe direntes manires d'valuer un polynme et on souhaite programmer l'algorithme d'HORNER qui permet de calculer rapidement la valeur d'un
polynme P en un point x.
Dans un script intitul  polynome.m  :
1. Crer un polynme P pxq  2x5 3x4 4x3 8x2 2x 1
2. Crer un vecteur V dont les composantes sont les valeurs de -10 10 par pas
de 0.5
3. Calculer les valeurs de P(x) aux points contenus dans le vecteur V
4. Calculer la drive dP du polynome P(x) avec la commande polyder
5. Crer une fentre graphique pouvant contenir deux sous fentres
6. Tracer la courbe de P(x)sur la premire sous fentre et celle de dP dans la
seconde sous fentre sur l'intervalle [-10 , 10] en ajoutant le titre et les lgendes
des axes.
7. Trouver les racines de P(x) avec la commande roots et acher les.
8. A l'aide de l'algorithme d'HORNER valuer P(x) pour x=3 ( la valeur de x
doit tre donne en entre)
9. Vrier la valeur obtenue l'aide de la commande de MATLAB polyval
10. Soit le polynme S pxq  7x4  2x3 x2  5x 3,
11. Calculer la somme de S(x) et P(x) et l'aide des commandes conv et deconv,
calculer respectivement le produit de S(x) et P(x) et la division de S(x) et P(x)
1
2
3
4

% declaration du polynome P

P=[2 3 4 8 2 1 ] ;

% Declaration du vecteur V

V=[ 10:0.5:10];
M.LICHOURI

TPINFO4 :

Page 55/62

2015/05/16

Universit de Blida
Facult des Sciences

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

2 anne ST
Semestre 4

% Evaluation du polynome P aux valeurs de V

polyval (P,V) ;

% Calculer la derivee du polynome P

dP=polyder (P) ;

% Creer une figure numerotee 1

figure (1)

% La subdiviser en deux sousfenetre horizontale


subplot (1 ,2 ,1) % 1 ligne, 2 colonne , 1 sousfenetre
% Tracer P(v) en fonction de V

plot ( polyval (P,V) ,V)

% ajouter un titre a P
t i t l e ( ' graphe de la fonction P ' )
% ajouter une etiquete a laxe des x
xlabel ( 'axes des x ' )
% ajouter une etiquete a laxe des y
ylabel ( ' fonction polynome p(x) ' )
% selectionner la deuxieme sousfenetre

subplot (1 ,2 ,2)

% Tracer la derivee dP(v) en fonction de v

plot ( polyval (dP,V) ,V)

% ajouter un titre a dP
t i t l e ( ' graphe de la fonction derivee P ' )
% ajouter une etiquete a laxe des x
xlabel ( 'axes des x ' )
% ajouter une etiquete a laxe des y
ylabel ( ' fonction polynome dp (x) ' )
% Calculer les racines du polynome P

roots (P)

%
%
%
%

Representation de HORNER dun polynome


y =2x^5+3x^4+4x^3+8x^2+2x+1
y =
x(x(x(x(x(x0+2) + 3) + 4) + 8) + 2) + 1

%
%
%
%

implementation de lalgorithme de horner


son but est de minimiser le nombre de
multiplication en evaluant un polynome P
avec une valeur x

37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

x=3;
res =0;
for i = 1: length (P)
res = res x + P( i ) ;

end

res
% en utilisant polyval

z=polyval (P, x)

% declaration du polynome S

S=[0 7 2 1 5 3]

% Calculer la somme de deux polynomes

M.LICHOURI

TPINFO4 :

Page 56/62

2015/05/16

Universit de Blida
Facult des Sciences

55
56
57
58
59
60
61
62
63
64
65
66
67

2 anne ST
Semestre 4

% S et P doivent avoir la meme taille


% cest pourquoi on ajouter un zero
% au debut du polynome S

som=S+P

% multiplier deux polynomes


% leur taille puisse etre different

multi=conv (S ,P)

% diviser deux polynomes


% le polynome en denominateur ne doit pas
% commencer par la valeur zero
[Q,R]= deconv (S ,P) % lordre est important
% Q represente le quotiant
% R represente le reste

35 Solution Exerice 2
Soit la fonction f pxq  p5  xqex  3 dnie sur R .
1. crire une fonction sous matlab, qui reoit comme argument l'abscisse x et
qui retourne la valeur f pxq. (inline)
2. Utilisez la commande fplot de Matlab pour tracer le graphe de la fonction
f pxq dans l'intervalle [-2, 6]. Donner, l'aide de ce graphe, une premire approximation des racines.
3. Utiliser la commande matlab fzero pour trouver la racine positive de cette
fonction.
1
2
3
4
5
6
7
8
9
10
11

%
% declaration de la fonction f avec inline
f=i n l i n e ( '(5 -x)* exp (x) -3 ' )
% appelation dune figure

figure (2)

% tracer la fonction f dans lintervalle [2 6]


% avec la commande fplot

fplot ( f ,[ 2 ,6])

% calculer la racine positive de f a laide de fzero


% fzero a besoin dune fonction f et un point initial x0
X = fzero (@(x) ((5x) exp (x) 3) ,3) %fzero(f,3)

4. crire un programme script Matlab permettant de calculer la racine positive approche de f pxq  0 en utilisant la mthode de dichotomie. On donne :
l'intervalle initial [a0,b0] = [4, 6].

Indications :

Utiliser les deux tests d'arrt suivants :


a) Imposer le nombre d'itrations maximum nitermax =50.
b) En dnissant la valeur de l'erreur absolue ek  |xk  xp k  1q| o xk est la
solution approche l'itration k , arrtez les calculs lorsque ek   10  6 .
M.LICHOURI

TPINFO4 :

Page 57/62

2015/05/16

Universit de Blida
Facult des Sciences

1
2
3
4
5
6
7
8
9
10
11

% Methode de DICHOTOMIE
f=i n l i n e ( '(5 -x)* exp (x) -3 ' ) % declaration de la fonction f avec
a0=4;
% inline

b0=6;
err =1; % une
xt =4; % pour

condition necessaire pour que f admet une


racine dans [a,b]
initialiser la valeur du nombre
diteration a zero.
while ( nitermax<=50 & err >10^6) % deux condition darret
% si nombre maximum diteration est atteint ou l
erreur
% est inferieur a epsilon 0.000001
x=(a0+b0) /2; % dviviser lintervalle [a0 b0] sur 2
err=abs ( xtx) ; % calculer lerreur entre deux valeurs
% successives
xt=x ; % recursivite du calcul
nitermax=nitermax +1; % incrementer le nombre diteration
% par un
i f f ( a0 ) f (x)<0 % test si lintervalle [a0 x] contient
% la racine
b0=x ; % si oui la valeur de b0 est change par x

13
14
15
16
17
18
19
20
21
22
23

else

24
25
27
28

31
32

a0=x ;

% si non la valeur de a0 est change par x

end
end
f p r i n t f ( 'la racine approchee est %f\n ' ,x) % afficher

26

30

faux valeur pour declencher la boucle


calculer lerreur on suppose que la racine

% est a0=4
i f f ( a0 ) f (b0)<0 %
%
nitermax =0; %
%

12

29

2 anne ST
Semestre 4

% la racine

else % changer lintervalle


f p r i n t f ( 'pas de racine trouve dans l" intervalle \n ' )
end

36 Solution Exerice 3
En utilisant les fonctionnalits graphiques de MATLAB, localiser la racine
positive de l'quation f pxq  2sinpxq  x.
1
2
3
4
5
6
7
8
9

%
%
%
%
%
%
%

Solution Exercice 3 TP3


Partie 1: Resolution graphique de f(x)=0
Pour cela on recherche soit la solution
en reperant le point % dintersection avec
y=0 ou bien utiliser la methode de separation
de racine.
Methode 1:
f=i n l i n e ( '2* sin (x) -x ' )

figure (1)

M.LICHOURI

TPINFO4 :

Page 58/62

2015/05/16

Universit de Blida
Facult des Sciences

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

2 anne ST
Semestre 4

fplot ( f ,[  pi pi ] )
t i t l e ( ' methode graphique ' )
grid on
% Methode 2:

x=linspace ( pi , pi ,50) ; % ou x=pi:0.01pi;


y1=2 sin (x) ;
y2=x ;
figure (2)
plot (x , y1 )
hold on
plot (x , y2 , 'r ' )
t i t l e ( ' separation graphique ' )
grid on
legend ( 'y1 ' , 'y2 ' )
hold o f f

Figure 22  Resolution graphique

M.LICHOURI

TPINFO4 :

Page 59/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Figure 23  Methode de separation de racine


Appliquer la mthode de Newton, pour trouver la valeur approche de la
racine de f pxq dnie dans l'exercice 1.
Indications : On prendra un test d'arrt de la forme |xn 1  xn |   106
et on prendra soin de prvoir un compteur d'itrations
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

% Solution Exercice 3 TP3


% Partie 2: Resolution numerique de f(x)=0
% Methode Newton
f=i n l i n e ( '(5 -x) .* exp (x) -3 ' ) % declarer la fonction f
df=i n l i n e ( '(4 -x) .* exp (x) ' ) % declarer la fonction derivee df

a=4;
b=6;
eps =10^6; % la valeur toleree de lerreur
x0=(a+b) /2; % point initial
err =1; % pour lancer la boucle
nb=0; % initialiser le nombre diteration
i f f ( a) f (b)<0
f p r i n t f ( 'nb
x
f(x)\n ' )
f p r i n t f ( ' ---------------------------------------\n ' )
while ( err>eps )
nb=nb+1; % incrementer la compteur nb par 1
xt=x0f ( x0 ) / df ( x0 ) ; % equation de la tangeante
err=abs (x0xt ) ; % calcule de lerreur
x0=xt ; % car une methode resursive
f p r i n t f ( '%3 d
%3.8 f
%3.8 f\n ' ,nb , xt , f ( xt ) )
end
else
f p r i n t f ( ' changer d '' intervalle ' )

M.LICHOURI

TPINFO4 :

Page 60/62

2015/05/16

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

end

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

resultat execution:
f =
Inline function:
f(x) = (5x).exp(x)3
df =
Inline function:
df(x) = (4x).exp(x)
nb

f(x)


1
4.97978616
0.06003273
2
4.97936489
0.00002555
3
4.97936471
0.00000000

37 Solution Exerice 4
Soit la fonction f pxq  ex  x4 {2  x2  1 crire un script ( programme) Matlab permettant de trouver la racine approche de cette quation par la mthode
de la scante si elle existe dans l'intervalle[-1 1], en utilisant l'algorithme suivant :
% algorithme de la scante
a=-1;
b= 1;
eps=0.00001 ;
ecart =|a-b| ;
iter=0;
si f(a).f(b)<0
alors tant que iter<=50 et ecart>eps
faire
iter=iter+1 ;
xb=b-(b-a).f(b)/(f(b)-f(a));
ecart=|a-xb|
si f(a).f(xb)<0
alors b=xb ;f(b)=f(xb) ;
sinon a=xb ;f(a)=f(xb) ;
fsi ;
fait ;
ecrire (`la racine approchee est',xb,'le nombre d'iterations est=',iter) ;
sinon
ecrire ('pas de racine dans cet intervalle')
fsi;

M.LICHOURI

TPINFO4 :

Page 61/62

2015/05/16

Universit de Blida
Facult des Sciences

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

2 anne ST
Semestre 4

% Solution Exerice 4 TP3


% Resolution Numerique de f(x)=0
% Methode de la secante

clear a l l
clc

f=i n l i n e ( 'exp (x) -x ^4/2 - x ^2 -1 ' )


a=1;
b= 1;
eps =0.00001 ;
ecart =abs (ab) ;
i t e r =0;
i f f ( a) . f (b)<0
while ( iter <=50 & ecart>eps )
i t e r=i t e r+1 ;
xb=b(ba ) f (b) /( f (b)f ( a) ) ;
ecart=abs (axb) ;
i f f ( a) f (xb)<0
b=xb ;
else a=xb ;

end
end
f p r i n t f ( 'la racine approchee est %f , le nombre d ' i t e r a t i o n s
else
end

est=%d\n,xb,iter)

f p r i n t f ( 'pas de racine dans cet intervalle ' )

26
27
28
29
30
31
32

% resultat dexecution:
%
%
Inline function:
%
f(x) = exp(x)x^4/2x^21
%
% la racine approchee est 0.000000,le nombre diterations est
=51

M.LICHOURI

TPINFO4 :

Page 62/62

2015/05/16