Vous êtes sur la page 1sur 34

Universit de Blida

Facult des Sciences

2 anne ST
Semestre 4

TPN 1-4 avec solution


Responsable
A.SELLALI
Assistant
M.LICHOURI
22 Avril 2014

Dernire mise jour :

2014/05/26 18:04:17

TP N1 : introduction MATLAB


1

But :

Familiariser l'tudiant l'environnement MATLAB :







2

Dmarrage de MATLAB
Description des fentres (workspace)
Utilisation de la ligne de commandes ()
Les commandes usuelles (help, lookfor,who, whos ,clear,. . .)
Manipulations des variables, oprations lmentaires
Solution Exercice 1

1. Dans l'espace de travail, ralisez quelques oprations arithmtiques simples


entre scalaires l'aide des oprateurs addition (+), soustraction (-), division (/),
multiplication (*), lvation la puissance (^).
1

>> 5 6

2
3 ans
4
5

=
30

M.LICHOURI

TPINFO4 :
Page 1/34

2014/05/26

Universit de Blida
Facult des Sciences

6
7

>> 3+5 2^5

9 ans
10

163

11
12
13
14
15

>> y=(2+9)/3 %priorite au parenthese


y =

16

3.6667

17
18
19
20
21

>> z=2+9/3
z =

22

23
24
25
26
27

>> x=3+9^7
x =

28

4782972

29
30
31
32
33

>> p =(4 x^2 2 x +3)/( x^3+1)


p =

34

8 . 3 6 3 0 e 007

35
36
37

2 anne ST
Semestre 4

>>

2. Calculer sous MATLAB la valeur de t et u en fonction de x.


1
2
3

>> x=3
x =

5
6
7
8
9

>> t =(4 x^2 2 x +3)/( x^2+1)


t =

10

3.3000

11
12
13
14
15

>> x=2
x =

M.LICHOURI

TPINFO4 :
Page 2/34

2014/05/26

Universit de Blida
Facult des Sciences

16

17
18
19
20
21

>> u = ( x^2+3 x +8)/(3 x^3+5 x^2  6)


u =

22

0.4737

23
24
25

2 anne ST
Semestre 4

>>

3. La constante pi est prdnie dans MATLAB .Tapez pi ainsi calculer le


volume d'une sphre.
1
2
3

>> R=4
R =

5
6
7
8
9

>> V=4 pi R^3/3


V =

10

268.0826

11
12
13

>>

4. Si aucune valeur n'est aecte la variable i elle sera considre comme


tant l'imaginaire pur.
1
2
3
4
5
6
7
8
9

>> x=2+5 i
x =

 2.0000

>> a=r e a l ( x )
a =

10

2

11
12
13
14
15
16
17
18
19

+ 5.0000 i

>> b=imag ( x )
b =
5
>> X=abs ( x )

M.LICHOURI

TPINFO4 :
Page 3/34

2014/05/26

Universit de Blida
Facult des Sciences

20
21

X =

22

5.3852

23
24
25
26
27

>> i =2
i =

28

29
30
31

2 anne ST
Semestre 4

>> i ^2
=

% vaut 4

32 ans
33

34
35
36
37

>> c l e a r i % supprimer la variable i de la memoire


>> i ^2
% donc i est consideree comme nombre imaginaire

38
39 ans
40

1

41
42
43

>>

5. Si vous n'aectez pas le rsultat de vos calculs une variable, il est automatiquement aect (stock) dans la variable ans. Vous pouvez vous servir de
cette variable dans le calcul suivant.
1

>> 2+3/(4 5)

2
3 ans
4

2.1500

5
6
7
8
9

>> y=ans +20


y =

10

22.1500

11
12
13

>>

M.LICHOURI

TPINFO4 :
Page 4/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

6. Tapez la ligne d'instructions suivante. Que remarquez vous ?


1
2

>> (3+5 2^5)/5 ; % cacher le resultat avec le pointvirgule


>> ans % afficher la valeur de ans

3
4 ans
5

32.6000

6
7
8

>>

7. Qu'obtient t'on avec les lignes de commandes suivantes


1

>> 1/0

2
3 ans

%infini

Inf

5
6
7

1/0

>>

8
9 ans
10
11
12
13

% moins infini

I n f
>> 0/0

14
15 ans

% non determine (NotANumber)

16

NaN

17
18
19

>>

M.LICHOURI

TPINFO4 :
Page 5/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N2 : CALCUL MATRICIEL


3

But :

Savoir eectuer l'aide de MATLAB des oprations matricielles de faon


compacte, sans programmer de boucles sur les indices.
4

Solution Exercice 1

1. Crer un vecteur ligne de coordonnes contenant les nombres de -5,-4,...,4,5


et dterminer sa taille.
1
2
3

>> vec =[  5:5] % debut:fin avec pas par defaut 1


vec =

4
5
6
7

9 ans
10

3

2

1

=
11

11
13

4

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

12

5

>>

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

>>
>>
>>
>>

6
7 ans
8

11

=
1001

9
10

c o l = [  5 0 0 : 5 0 0 ] ' ; % on utilise le prime () pour


% avoir un vecteur colonne
% on a utilise le pointvirgule car le vecteur est long
length ( c o l ) % sa taille est:1001

>>

M.LICHOURI

TPINFO4 :
Page 6/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

3. Que fait l'instruction suivante : V = [0 :0.2 :1]


1
2
3
4
5
6
7
8
9
10
11

>>
>> V = [ 0 : 0 . 2 : 1 ] % genere un vecteur V de 0 a 1 par pas de 0.2
V =
0
0.2000
0.4000
0.6000
0.8000
>> % on remarque la precision de Matlab par defaut
>> % pour les nombres reelles est de 4 chiffres
>> % apres la virgule
>>

1.0000

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


est la valeur de x(2)
1
2
3
4
5

>>
>> x = [  1.3 , sqrt ( 3 ) , (1+2+3) 4/5 ] % affiche le vecteur
>> % x en evaluant les expressions dont il contient
x =

 1.3000

7
8
9

11 ans
12

=
1.7321

13
15

4.8000

>> x ( 2 ) % represente le deuxieme element du vecteur x

10

14

1.7321

>>

5. Crer le vecteur suivant en prcisant l'incrment 10.0000


9.5000
9.0000
8.5000
8.0000
1
2
3
4
5
6
7
8
9
10

>>
>> Y= [ 1 0 :  0 . 5 : 8 ] ' % debut=10; fin=8; pas=0.5
Y =
10.0000
9.5000
9.0000
8.5000
8.0000

M.LICHOURI

TPINFO4 :
Page 7/34

2014/05/26

Universit de Blida
Facult des Sciences
5

2 anne ST
Semestre 4

Solution Exercice 2

Compltez les oprations suivantes en indiquant ce qu'elles ralisent :


1
2
3
4

>>
>> V = [ 8 ,

6
8

10 ans
11

16 ans
17

21
22

28 ans
29

33
34

>> V( 1 ) =

1

36
38
39
40

>> V( 7 ) =

1

42
44

13

4
1
1
3

V =

41
43

4

% remplace la premiere valeur par

1

V =

35
37

13

=
13

30
32

>> V( 3 : end ) % afficher tous les valeurs du 3 a la fin

27

31

24
26

4

>> V( 5 :  2 : 1 ) % commence laffichage depuis la 5 valeur


% avec un decrement de 2 vers la 1 valeur
ans =
% donc la 5,3 et 1 valeur

23
25

13

1

18
20

1

>> V( 2 : 4 ) % affiche les valeurs de V entre le 2 et 4 positions.

15

19

7 , 6 ] % affiche le vecteur ligne V

1

12
14

4,

>> V( 2 ) % affiche la deuxieme valeur de V

13

13 ,

V =

5
7

1,

1

13

4

% du fait que V contient 6 valeur


% on va donc ajouter une 7 valeur =3

13

4

3

>>

M.LICHOURI

TPINFO4 :
Page 8/34

2014/05/26

Universit de Blida
Facult des Sciences
6

2 anne ST
Semestre 4

Solution Exercice 3

Compltez les oprations suivantes en indiquant ce qu'elles ralisent :


1
2
3
4

>>
>> x=[1 ; 2 ; 3 ] % vecteur colonne x
x =

1
2
3

6
7
8
9
10
11
12

>> y=[4 ; 5 ; 6 ] % vecteur colonne y


y =

13

4
5
6

14
15
16
17
18

>> x+3 % ajouter 3 aux vecteur x

19
20 ans
21

4
5
6

22
23
24
25
26
27

>> x5 % soustraire la valeur 5 du vecteur x

28 ans
29
31
32
34
35

>> xy % soustraire y de x

36 ans
37
39
40
42

>> x+y % somme de x et y

43
44 ans
45
46

3
3
3

38

41

4
3
2

30

33

=
5

M.LICHOURI

TPINFO4 :
Page 9/34

2014/05/26

Universit de Blida
Facult des Sciences
7
9

47
48
49
50
51
52

>> z1=x . y % multiplication element par element de x et y


z1 =

53

4
10
18

54
55
56
57
58
59
60

z2 =
4.0000
2.5000
2.0000

62
63
64
66
67
68

z3 =
0.2500
0.4000
0.5000

70
71
72
74
75
76

z4 =
1
32
729

78
79
80
82

84 ans
85

>> norm ( z1 ) % norme euclidienne de z1

89
90 ans
91
92
93
94
95
96

=
3

86
88

% 1^4
% 2^5
% 3^6

>> length ( z1 ) % taille de z1

83

87

% 1/4
% 2/5
% 3/6

>> z4 =x . ^ y % relever valeur par valeur, x au puissance de y

77

81

% 4/1
% 5/2
% 6/3

>> z3 =x . / y % division element par element de x sur y

69

73

% 14
% 25
% 36

>> z2 =x . \ y % division element par element de y sur x

61

65

2 anne ST
Semestre 4

=
20.9762

>> U = l i n s p a c e ( 1 , 2 0 , 5 ) % generer un vecteur contenant


% 5 valeur compris entre 1 et 20 avec un pas fixe
U =

M.LICHOURI

TPINFO4 :
Page 10/34

2014/05/26

Universit de Blida
Facult des Sciences

97

1.0000

98
99
100

2 anne ST
Semestre 4

5.7500

10.5000

15.2500

20.0000

>>

Solution Exercice 4

1. Crer la matrice A
1234
5678
6082
1
2
3
4
5
6
7
8
9

>> % on definit une matrice ligne par ligne


>> A=[1 2 3 4 ; 5 6 7 8 ; 6 0 8 2 ]
% on separe les colonnes avec ecpace ou virgule
% on separe les lignes avec pointvirgule
A =
1
5
6

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
5
6
7
8
9
10
11
12
13

>> B= [ 1 : 9 ; 2 : 2 : 8 0 : 4 ; 2 o n e s ( 1 , 9 ) ]
% 2:2:8 de 2 vers 8 avec pas de 2
B =
1
2
2

2
4
2

3
6
2

4
8
2

5
0
2

6
1
2

7
2
2

8
3
2

9
4
2

>> o n e s ( 1 , 9 ) % commande generant une matrice de 1 ligne et


% 9 colonne ne contenant que des 1
ans =
1

M.LICHOURI

TPINFO4 :
Page 11/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

3. Donnez la ligne de commande permettant de crer la matrice suivante en


utilisant les oprations usuelles sur les matrices :



1
2
3

31
31
31

5
6
7
9
10
11

2
0
0

13
14
15
17
18
19
20
21

5
0
7

24
25

28
29

0
0
1


5

5
0
7

8
6
3

1
9
3

31
31
31

31
31
31

0
2
0

0
0
2

8
6
3

1
9
3

F =
87
62
97

31
32
33
35

0
1
0

>> F=CD+5E % calculer F

30

34

1
0
0

E =

23

27


 2 

>> E=[5 8 1 % on peut separer les lignes dune matrice par


0 6 9
% des sauts de lignes
7 3 3]

22

26

31
31
31

>> D=2 eye ( 3 ) % commande permettant de generer une matrice


% 3x3 identite quon multiplie avec 2
D =

12

16

31
31
31

>> C=31 o n e s ( 3 ) % matrice de 3x3 remplit de 1


% quon multiplie avec 31 donc:
C =

31
31
31

102
92
77

67
107
77

>>

M.LICHOURI

TPINFO4 :
Page 12/34

2014/05/26

Universit de Blida
Facult des Sciences
8

2 anne ST
Semestre 4

Solution Exercice 5

Compltez les oprations suivantes en indiquant ce qu'elles ralisent :


1
2
3
4

>>
>> A=[1 2 3 ; 4 5 6 ] % creation dune matrice 2 ligne,
% 3 colonne A(2x3)
A =

1
4

6
7
8
9
10
11

13
15
16
17

>> A( 2 , 3)=5 % remplacer la valeur par 5


A =

18

1
4

19
20
21
22
23
24
25
26

1
4
7

28
29
30
32

34 ans
35

40 ans
41

=
2
5
0

42
43
44
46

3
5
0

>> A( : , 2 ) % afficher la deuxieme colonne

39

45

2
5
0

=
1

36
38

3
5

>> A( 1 , : ) % afficher la premiere ligne de A

33

37

2
5

>> A( 3 , 1)=7 % puisque la matrice A contient 2 lignes,


% donc on va ajouter une troisieme ligne avec seulement
% la premiere valeur definit=7 alors les autres
% seront misazeros
A =

27

31

3
6

>> A( 2 , 3 ) % afficher la valeur qui se trouve dans la


% deuxieme ligne, troixieme colonne
ans =

12
14

2
5

>>

M.LICHOURI

TPINFO4 :
Page 13/34

2014/05/26

Universit de Blida
Facult des Sciences
9

2 anne ST
Semestre 4

Solution Exercice 6

Oprations sur les matrices :


Soit la matrice A=[1 2 3 ; 4 5 6 ;7 8 9]
1. Dnir la matrice B transpose de A
1
2
3
4

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

1
4
7

6
7
8
9
10
11
12

1
2
3

14
15
16
18

3
6
9

>> B=A' % le prime () sert a creer une matrice


% transposee, les lignes deviendront les colonnes
B =

13

17

2
5
8

4
5
6

7
8
9

>>

2. Dnir la matrice C comme produit de A par B


1
2
3

>> C=AB % produit matricielle ligne par colonne


C =

14
32
50

5
6
7
8
9

32
77
122

50
122
194

>>

3. Dnir la matrice D par : D= A.* B ; Comparer C et D


1
2
3
4
5
6
7
8

>>
>> D= A. B
D =
1
8
21

8
25
48

M.LICHOURI

21
48
81

TPINFO4 :
Page 14/34

2014/05/26

Universit de Blida
Facult des Sciences

9
10
11
12
13
14
15

>>
>>
>>
>>
>>
>>

%
%
%
%
%
%

2 anne ST
Semestre 4

C negale pas D car:


La matrice C est le resultat dune multiplication
matricielle alors que D dune multiplication element
par element et cela en utilisant le point (.)
avant loperation souhaite multiplication (),
division (/) ou puissance(^) seulement

10

Solution Exercice 7

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

>>
>> v=[1
v =

1

6
7
8
9
10

1
2
3
4

13
14
15

18
19

21 ans
22
24
25
26

29
30

32 ans
34

5
10
15
20

7
14
21
28

>> % diagonale dune matrice est extraite par la commande diag


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

31
33

3
6
9
12

1
6
15
28

23

28

7

>> % on a declarer une matrice en utilisant un variable qui est


>> % le vecteur v
>> diag (A)

20

27

5

A =

12

17

3

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

11

16

3 5  7]

6

10

M.LICHOURI

14
TPINFO4 :
Page 15/34

2014/05/26

Universit de Blida
Facult des Sciences

9

35
36
37
38
39

41 ans
42
44
45
46

50 ans
51

0
0
0

53
54
55

59 ans
60

64

3
6
0
0

5
10
15
0

7
14
21
28

=
0

61
63

0
0
0
28

>> det (A) % calcule le determinant de A

58

62

0
0
15
20

1

52

57

6
9
12

>> t r i u (A) % affiche la partie superieur a la diagonale

49

56

1
2
3
4

43

48

21

>> % 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

40

47

15

2 anne ST
Semestre 4

>> inv (A) %calcule la matrice inverse de A


Warning : Matrix i s s i n g u l a r t o working p r e c i s i o n .

65
66 ans

67
68
69
70
71
72
73
74

Inf
Inf
Inf
Inf

Inf
Inf
Inf
Inf

Inf
Inf
Inf
Inf

Inf
Inf
Inf
Inf

>> % infinie car determinant nulle


>>

M.LICHOURI

TPINFO4 :
Page 16/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

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


1
2

>>
>> o n e s ( 5 , 1 )

3
4 ans
5

1
1
1
1
1

6
7
8
9
10
11
12
13

>> % vecteur colonne de 5 ligne remplit de 1


>> eye ( 5 , 5 ) % matrice identite 5x5

14
15 ans
16
18
19
20
21
23
24
25
26
27

1.0000
1.0000
1.0000
1.0000
1.0000

31
32
33

0
0
0
0
1

3 . 4 eye ( 5 , 5 )

5 o n e s ( 5 , 2 ) ]

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

36

5.0000
5.0000
5.0000
5.0000
5.0000

37
38
39
40
41
43

0
0
0
1
0

Columns 1 through 6

30

42

0
0
1
0
0

M=

29

35

0
1
0
0
0

>> M=[ o n e s ( 5 , 1 )

28

34

=
1
0
0
0
0

17

22

5.0000
5.0000
5.0000
5.0000
5.0000

>>

M.LICHOURI

TPINFO4 :
Page 17/34

2014/05/26

Universit de Blida
Facult des Sciences
11

2 anne ST
Semestre 4

Solution Exercice Supplmentaire 1

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

1
A 0
7
1
2
3
4

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

>> v=diag (A) % affiche la diagonale de la matrice A


v =

1
5
9

5
6
7
8
9
10
11

>> b=diag ( v ) % cree une matrice dont la diagonale est v


% et le reste zero
b =

12

1
0
0

13
14
15
16
17
18
19

c =
1
0
0

21
22
23
25

27 ans
29
30

0
5
0

0
0
9

>> A ( 1 : 2 , : ) % sous matrice allant de la 1 ligne vers la 2.

26
28

0
0
9

>> c=diag ( diag (A) ) % equivalent a v suivie par v

20

24

0
5
0

=
1
0

2
5

3
4

31

M.LICHOURI

TPINFO4 :
Page 18/34

2014/05/26

Universit de Blida
Facult des Sciences

32

>> A ( : , 2 : 3 ) % sous matrice allant de la 2 colonne vers la 3.

33
34 ans

35

2
5
0

36
37
38
39
40
41
42

2
5

44
45

A.


5
0

4
9

5
6

2
3

5 ans

1
0

3
4

4
9

6
7

5
0

>> % on doit extraire lintersection des lignes


>> % 1 et 2 avec les colonnes 1 et 3 (la 2 colonne est omis)
>> A( 1 : 2 , 1 : 2 : 3 ) % on fait un saut de 2 pour les colonnes

>> % on doit extraire lintersection des lignes 2 et 3


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

4 ans

3
4

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

3
4
9

>> A( 1 : 2 , 2 : 3 ) % sous matrice contenant lintersection des


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

43

2 anne ST
Semestre 4

1
0

1
7

3
9

3
4

>> A ( 1 : 2 : 3 , 1 : 2 : 3 ) % on fait un saut de 2 pour les colonnes


= % et les colonnes

2 ans
3
4
5

1
7

3
9

M.LICHOURI

TPINFO4 :
Page 19/34

2014/05/26

Universit de Blida
Facult des Sciences
12

2 anne ST
Semestre 4

Solution Exercice Supplmentaire 2

Soit le systme dnit par :




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

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


de Matlab la matrice A et le vecteur b.



1
2
3
4

>>
>> A=[3 2

3
0
1

6
7
8
9
11
12

16

20

>> b=[1 2

1
2
5

2
0

1
4
2

5]

 5] '

1
2
5

22
23
24
26


 

b =

21

25

x
y
z

1
2
5

15

19

4
2


 

b =

14

18

1

4; 1 0 2]

>> b = [ 1 ; 2 ;  5 ] % ou b=[1 2

13

17

2
2
0

A =

10

 1;0 2

3
0
1

>>

M.LICHOURI

TPINFO4 :
Page 20/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

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

detpAq 0
1
2
3

>>
>> i f ( det (A)~=0) % different de zero
f p r i n t f ( 'A admet une solution unique \n ' )

4 else

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

6 end
7
8

% A admet une solution unique

>>

3. Rsoudre ce systme l'aide de Matlab.


1

>>

det (A)

2
3 ans
4

 6.0000

5
6
7
8
9

>> X=A\b % X contient les valeurs de x,y,z


X =

10

7.0000

11

 13.0000
 6.0000

12
13
14
15

>>

M.LICHOURI

TPINFO4 :
Page 21/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N3 : Lecture et Achage de donnes


13

But :

An de mieux interprter les rsultats, une certain prsentation est ncessaire. Pour cela on va considrer l'utilisation des commandes d'achage de Matlab comme disp, error, fprintf,...
14

Exemple d'introduction

1. An de lire une variable dans Matlab, on utilise la commande


comme suit :
1
2
3
4
5

>> n=input ( ' donner un nombre entier : ' )


donner un nombre e n t i e r : 2
% on va stoquer la valeur entree dans n
n =

7
8
9

input

>>

2. An d'acher une valeur, vecteur, chaine de caractre, on utilise la commande disp comme suit :
1
2
3
4
5
6
7
8
9
10
11
12

>> x=2;
>> disp ( x ) % afficher la valeur de x
2
>> v=[x 2 x 4 ] ;
>> disp ( v ) % afficher le vecteur v
2
4
4
>> message='C" est bientot fini ' ;
>> disp ( message ) % afficher un certain message
C" e s t b i e n t o t f i n i
>>

3. On peut acher un message d'erreur l'utilisateur en utilisant la commande error comme suit :

M.LICHOURI

TPINFO4 :
Page 22/34

2014/05/26

Universit de Blida
Facult des Sciences

1
2
3
4

>> n=input ( ' entrer un nombre positive : ' )


e n t r e r un nombre p o s i t i v e : 2
n =

2

6
7
8

2 anne ST
Semestre 4

>> i f ( n<0) error ( 'n doit etre positive ' )

9 end
10
11
12
13

??? n d o i t e t r e p o s i t i v e

>> % on a affiche un message derreur


>>

4. On peut acher un message suivie par une valeur avec la commande


comme suit :

fprintf

1
2
3
4
5
6
7

>> Nom=input ( ' entrer votre nom : ' , 's ' ) ; % pour entrer un message
e n t r e r v o t r e nom : M. LICHOURI
% on ajoute s a input
>> Tel=input ( ' entrer votre telephone : ' ) ;
e n t r e r v o t r e t e l e p h o n e : 12345
>> f p r i n t f ( ' votre nom est %s , votre numero est %d\n ' ,Nom, Tel )
v o t r e nom e s t M. LICHOURI , v o t r e numero e s t 12345
>>

15

Solution Exercice 1 : paramtres d'un cercle

Ecrire un script MATLAB qui aecte une variable R la valeur 20 puis


aecte 3 variables D, P et S respectivement les valeurs du diamtre, du primtre et de la surface d'un cercle dont le rayon est R. On achera l'cran le
contenu de ces direntes variables selon le format suivant :
Un cercle de rayon WW a pour diamtre XX, pour circonfrence YY
et pour surface ZZ.

1
2
3
4
5
6
7
8
9
10
11

% Solution Exercice 1 TP3 :Parametre dun cercle


R=input ( ' donner la valeur du rayon R: ' ) ; % lecture de R
D=2R; % diametre =2rayon
P=2 pi R; % perimetre dun cercle
S=pi R^ 2 ; % surface dun cercle
f p r i n t f ( 'Un cercle de rayon %f a pour diametre %f ,
pour circonference %f et pour surface %f .\ n ' ,R, D, P , S )
% apres execution
% donner la valeur du rayon R: 20
% Un cercle de rayon 20.000000 a pour diametre 40.000000,...
% pour circonference 125.663706 et pour surface 1256.637061.

M.LICHOURI

TPINFO4 :
Page 23/34

2014/05/26

Universit de Blida
Facult des Sciences
16

2 anne ST
Semestre 4

Solution Exercice 2

Ecrire un script MATLAB qui tant donne une valeur relle x, Calcule la
valeur de Y dnie par :


3 x10
3
a
x 1
3

px

1
2
3
4
5
6

10q

x  1
1 x 1
x  1

% Solution Exercie 2 TP3


x=input ( ' donner la valeur de x: ' ) ; % lire x
i f x<=1
y=3+x ^ 1 0 ;
e l s e i f x<1
y=3/(x +1);

7 else
8

y=sqrt ( x ^3+10);

9 end

10 disp ( y )
11
12
13
14
15
16
17
18
19

%
%
%
%
%
%
%
%
%

execution 3 cas possible


donner la valeur de x: 1
4
donner la valeur de x: 0
3
donner la valeur de x: 1
3.3166

17

Solution Exercice 3 : chelle de temprature

La formule de conversion des tempratures exprimes en degr Celsius en


degr Fahrenheit est : C  5{9F  32 Ecrire un script MATLAB permettant de
calculer une liste d'quivalence pour des tempratures comprises entre 0 F et
300 F avec un incrment de 10 F (sous la forme d'un tableau 2 colonnes , la
premire colonne donnera les degrs Celsius, la seconde les degrs Fahrenheit).
1

% solution ex3 TP3


( ' degre celcius
degre Fahreinheit \n ' )
f p r i n t f ( ' --------------------------------------------\n ' )
for f =0:10:300
c=5 f /9  32;
f p r i n t f ( '%f
||
%f\n ' , c , f )

2 fprintf
3
4
5
6

7 end
8
9
10

% execution
% degre celcius
degre Fahreinheit
% 

M.LICHOURI

TPINFO4 :
Page 24/34

2014/05/26

Universit de Blida
Facult des Sciences

11
12
13
14
15
16

2 anne ST
Semestre 4

% 32.000000
% 26.444444
% 20.888889
% 15.333333
% 9.777778
% .........

18

||
||
||
||
||
||

0.000000
10.000000
20.000000
30.000000
40.000000
........

Solution Exercice 4 : faire en devoir

Soit M, la matrice dnie par :




12
2
7

24 36 58
6 8 10
9 11 13

Ecrire un script MATLAB qui permet d'extraire :


1. L'lment situ dans la troisime ligne et la quatrime colonne.
2. Le vecteur L3 contenant tous les lments de la troisime ligne.
3. Le vecteur C4 contenant tous les lments de la quatrime colonne.
4. La sous matrice M1du matrice M, constitu partir de l'intersection de la
deuxime et la troisime colonne avec la deuxime et la troisime ligne.
5. La matrice M2 dont les lignes sont celles de la matrice M mais aches en
sens inverse.



1
2
3

12
2
7

6
7

11 ans
13
14
15
16
17
18
19

24
6
9

36
8
11

58
10
13

>> M( 3 , 4 )

10
12

M=

9 11 13
6 8 10
24 36 58

>> M=[12 24 36 58 ; 2 6 8 1 0 ; 7 : 2 : 1 3 ]

7
2
12

=
13

>> L3=M( 3 , : ) % 3 eme ligne


L3 =
7

M.LICHOURI

11

13

TPINFO4 :
Page 25/34

2014/05/26

Universit de Blida
Facult des Sciences

20
21
22
23

>> C4=M( : , 4 ) % 4 eme colonne


C4 =

24

58
10
13

25
26
27
28
29
30
31

>> M1=M( 2 : 3 , 2 : 3 )
M1 =

32

6
9

33
34
35
36
37
38

M2 =
7
2
12

40
41
42
44
45
46

11
8
36

13
10
58

M2 =
7
2
12

48
49
50
52

9
6
24

>> M2=[M( 3 , : ) ; M( 2 , : ) ; M( 1 , : ) ]

47

51

8
11

>> M2=M( end :  1 : 1 , : )

39

43

2 anne ST
Semestre 4

9
6
24

11
8
36

13
10
58

>>

M.LICHOURI

TPINFO4 :
Page 26/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

TP N4 : Mthodes Numriques


19

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,

20

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
5
6

% declaration du polynome P
P=[2 3 4 8 2 1 ] ;
% Declaration du vecteur V
V= [  1 0 : 0 . 5 : 1 0 ] ;
% Evaluation du polynome P aux valeurs de V
polyval (P ,V ) ;

M.LICHOURI

TPINFO4 :
Page 27/34

2014/05/26

Universit de Blida
Facult des Sciences

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

% 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
x l a b e l ( 'axes des x ' )
% ajouter une etiquete a laxe des y
y l a b e l ( ' 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
x l a b e l ( 'axes des x ' )
% ajouter une etiquete a laxe des y
y l a b e l ( ' 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

37
38
39
40
41
42
43
44
45

% implementation de lalgorithme de horner


% son but est de minimiser le nombre de
% multiplication en evaluant un polynome P
% avec une valeur x
x=3;
r e s =0;
f o r i = 1 : length (P)
r e s = r e s x + P( i ) ;

46 end
47
48

res

49
50
51
52
53
54
55
56

% en utilisant polyval
z=polyval (P , x )
% declaration du polynome S
S=[0 7 2 1 5 3 ]
% Calculer la somme de deux polynomes
% S et P doivent avoir la meme taille
% cest pourquoi on ajouter un zero

M.LICHOURI

TPINFO4 :
Page 28/34

2014/05/26

Universit de Blida
Facult des Sciences

57
58
59
60
61
62
63
64
65
66
67

2 anne ST
Semestre 4

% au debut du polynome S
som=S+P
% multiplier deux polynomes
% leur taille puisse etre different
m u l t i=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

21

Solution Exerice 2

Soit la fonction f pxq  p5  xqex  3 dnie sur R .


1. Ecrire 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 = f z e r o (@( x )((5  x ) exp ( x )  3) ,3) %fzero(f,3)

4. Ecrire 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 .
1

% Methode de DICHOTOMIE

M.LICHOURI

TPINFO4 :
Page 29/34

2014/05/26

Universit de Blida
Facult des Sciences

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

2 anne ST
Semestre 4

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


a0 =4;
% inline
b0 =6;
e r r =1; % une faux valeur pour declencher la boucle
xt =4; % pour calculer lerreur on suppose que la racine
% est a0=4
i f f ( a0 ) f ( b0)<0 % condition necessaire pour que f admet une
% racine dans [a,b]
nitermax =0; % initialiser la valeur du nombre
% diteration a zero.
while ( nitermax <=50 & e r r >10^ 6) % deux condition darret
% si nombre maximum diteration est atteint ou lerreur
% est inferieur a epsilon 0.000001
x=(a0+b0 ) / 2 ; % dviviser lintervalle [a0 b0] sur 2
e r r=abs ( xt x ) ; % 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
else

24
25

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
27
28
29
30 e l s e
31

% la racine
% changer lintervalle
f p r i n t f ( 'pas de racine trouve dans l" intervalle \n ' )

32 end

22

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
10
11

% 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)
f p l o t ( f ,[  pi pi ] )
t i t l e ( ' methode graphique ' )

M.LICHOURI

TPINFO4 :
Page 30/34

2014/05/26

Universit de Blida
Facult des Sciences
12 grid

2 anne ST
Semestre 4

on

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

% Methode 2:
x=l i n s p a c e ( pi , pi , 5 0 ) ; % ou x=pi:0.01pi;
y1=2 s i n ( 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 1  Resolution graphique

M.LICHOURI

TPINFO4 :
Page 31/34

2014/05/26

Universit de Blida
Facult des Sciences

2 anne ST
Semestre 4

Figure 2  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.
6
Indications : On prendra un test d'arrt de la forme |xn 1  xn |   10
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
d f=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
e r r =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 ( e r r >eps )
nb=nb+1; % incrementer la compteur nb par 1
xt=x0 f ( x0 ) / d f ( x0 ) ; % equation de la tangeante
e r r=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 32/34

2014/05/26

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

23

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 33/34

2014/05/26

Universit de Blida
Facult des Sciences

1
2
3

2 anne ST
Semestre 4

% Solution Exerice 4 TP3


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

4 clear

all

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

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


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

20
21 end

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


e s t=%d\n,xb,iter) ;
f p r i n t f ( 'pas de racine dans cet intervalle ' )

22 f p r i n t f
23
24 e l s e
25 end
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 34/34

2014/05/26