1 : introduction à MATLAB - … · Université de Blida acultéF des Sciences 2 année ST Semestre...
Transcript of 1 : introduction à MATLAB - … · Université de Blida acultéF des Sciences 2 année ST Semestre...
Université de BlidaFaculté des Sciences
2 année STSemestre 4
TPN�
1-4 avec solution
Responsable
A.SELLALI
Assistant
M.LICHOURI
22 Avril 2014
Dernière mise à jour : 2014/05/26 à 18:04:17
TP N�1 : introduction à MATLAB
1 But :
Familiariser l'étudiant à l'environnement MATLAB :
� Démarrage de MATLAB� Description des fenêtres (workspace)� Utilisation de la ligne de commandes (�)� Les commandes usuelles (help, lookfor,who, whos ,clear,. . .)� Manipulations des variables, opérations élémentaires
2 Solution Exercice 1
1. Dans l'espace de travail, réalisez quelques opérations arithmétiques simplesentre scalaires à l'aide des opérateurs addition (+), soustraction (-), division (/),multiplication (*), élévation à la puissance (^).
1 >> 5∗62
3 ans =4
5 30
M.LICHOURI TPINFO4 :Page 1/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
6
7 >> 3+5∗2^58
9 ans =10
11 16312
13 >> y=(2+9)/3 %priorite au parenthese14
15 y =16
17 3 .666718
19 >> z=2+9/320
21 z =22
23 524
25 >> x=3+9^726
27 x =28
29 478297230
31 >> p =(4∗x^2�2∗x+3)/(x^3+1)32
33 p =34
35 8 .3630 e�00736
37 >>
2. Calculer sous MATLAB la valeur de t et u en fonction de x.
1 >> x=32
3 x =4
5 36
7 >> t=(4∗x^2�2∗x+3)/(x^2+1)8
9 t =10
11 3 .300012
13 >> x=214
15 x =
M.LICHOURI TPINFO4 :Page 2/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
16
17 218
19 >> u = (x^2+3∗x+8)/(3∗x^3+5∗x^2�6)20
21 u =22
23 0 .473724
25 >>
3. La constante pi est prédé�nie dans MATLAB .Tapez pi ainsi calculer levolume d'une sphère.
1 >> R=42
3 R =4
5 46
7 >> V=4∗pi∗R^3/38
9 V =10
11 268.082612
13 >>
4. Si aucune valeur n'est a�ectée à la variable i elle sera considérée commeétant l'imaginaire pur.
1 >> x=�2+5i2
3 x =4
5 �2.0000 + 5.0000 i6
7 >> a=real ( x )8
9 a =10
11 �212
13 >> b=imag( x )14
15 b =16
17 518
19 >> X=abs ( x )
M.LICHOURI TPINFO4 :Page 3/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
20
21 X =22
23 5 .385224
25 >> i=226
27 i =28
29 230
31 >> i ^2 % vaut 432 ans =33
34 435
36 >> clear i % supprimer la variable i de la memoire37 >> i ^2 % donc i est consideree comme nombre imaginaire38
39 ans =40
41 �142
43 >>
5. Si vous n'a�ectez pas le résultat de vos calculs à une variable, il est auto-matiquement a�ecté (stocké) dans la variable ans. Vous pouvez vous servir decette variable dans le calcul suivant.
1 >> 2+3/(4∗5)2
3 ans =4
5 2 .15006
7 >> y=ans+208
9 y =10
11 22.150012
13 >>
M.LICHOURI TPINFO4 :Page 4/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
6. Tapez la ligne d'instructions suivante. Que remarquez vous ?
1 >> (3+5∗2^5)/5 ; % cacher le resultat avec le point�virgule2 >> ans % afficher la valeur de ans3
4 ans =5
6 32.60007
8 >>
7. Qu'obtient t'on avec les lignes de commandes suivantes
1 >> 1/0 %infini2
3 ans =4
5 Inf
6
7 >> �1/0 % moins infini8
9 ans =10
11 �Inf
12
13 >> 0/0 % non determine (Not�A�Number)14
15 ans =16
17 NaN
18
19 >>
M.LICHOURI TPINFO4 :Page 5/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
TP N�2 : CALCUL MATRICIEL
3 But :
Savoir e�ectuer à l'aide de MATLAB des opérations matricielles de façoncompacte, sans programmer de boucles sur les indices.
4 Solution Exercice 1
1. Créer un vecteur ligne de coordonnées contenant les nombres de -5,-4,...,4,5et déterminer sa taille.
1 >> vec=[�5:5] % debut:fin avec pas par defaut 12
3 vec =4
5 �5 �4 �3 �2 �1 0 1 2 3 45
6
7 >> length ( vec ) % la taille du vecteur est: 118
9 ans =10
11 1112
13 >>
2. Créer un vecteur colonne de coordonnées contenant les nombres -500,-499,-498...,499,500 et déterminer sa taille.
1
2 >> co l =[�500:500 ] ' ; % on utilise le prime (’) pour3 >> % avoir un vecteur colonne4 >> % on a utilise le point�virgule car le vecteur est long5 >> length ( c o l ) % sa taille est:10016
7 ans =8
9 100110
11 >>
M.LICHOURI TPINFO4 :Page 6/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
3. Que fait l'instruction suivante : V = [0 :0.2 :1]
1
2 >>3 >> V = [ 0 : 0 . 2 : 1 ] % genere un vecteur V de 0 a 1 par pas de 0.24
5 V =6
7 0 0 .2000 0 .4000 0 .6000 0 .8000 1 .00008 >> % on remarque la precision de Matlab par defaut9 >> % pour les nombres reelles est de 4 chiffres
10 >> % apres la virgule11 >>
4. Que fait l'instruction suivante : x = [ -1.3, sqrt(3), (1+2+3)*4/5 ] .quelleest la valeur de x(2)
1 >>2 >> x = [ �1.3 , sqrt ( 3 ) , (1+2+3)∗4/5 ] % affiche le vecteur3 >> % x en evaluant les expressions dont il contient4
5 x =6
7 �1.3000 1 .7321 4 .80008
9 >> x (2) % represente le deuxieme element du vecteur x10
11 ans =12
13 1 .732114
15 >>
5. Créer le vecteur suivant en précisant l'incrément 10.00009.50009.00008.50008.0000
1 >>2 >> Y=[10 : �0 .5 : 8 ] ' % debut=10; fin=8; pas=�0.53
4 Y =5
6 10.00007 9 .50008 9 .00009 8 .5000
10 8 .0000
M.LICHOURI TPINFO4 :Page 7/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
5 Solution Exercice 2
Complétez les opérations suivantes en indiquant ce qu'elles réalisent :
1 >>2 >> V = [8 , �1, 13 , �4, 7 , 6 ] % affiche le vecteur ligne V3
4 V =5
6 8 �1 13 �4 7 67
8 >> V(2) % affiche la deuxieme valeur de V9
10 ans =11
12 �113
14 >> V(2 : 4 ) % affiche les valeurs de V entre le 2 et 4 positions.15
16 ans =17
18 �1 13 �419
20 >> V(5: �2 :1) % commence l’affichage depuis la 5 valeur21 % avec un decrement de �2 vers la 1 valeur22 ans = % donc la 5,3 et 1 valeur23
24 7 13 825
26 >> V(3 :end) % afficher tous les valeurs du 3 a la fin27
28 ans =29
30 13 �4 7 631
32 >> V(1) = �1 % remplace la premiere valeur par �133
34 V =35
36 �1 �1 13 �4 7 637
38 >> V(7) = �3 % du fait que V contient 6 valeur39 % on va donc ajouter une 7 valeur =�340 V =41
42 �1 �1 13 �4 7 6 �343
44 >>
M.LICHOURI TPINFO4 :Page 8/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
6 Solution Exercice 3
Complétez les opérations suivantes en indiquant ce qu'elles réalisent :
1 >>2 >> x=[1 ; 2 ; 3 ] % vecteur colonne x3
4 x =5
6 17 28 39
10 >> y=[4 ; 5 ; 6 ] % vecteur colonne y11
12 y =13
14 415 516 617
18 >> x+3 % ajouter 3 aux vecteur x19
20 ans =21
22 423 524 625
26 >> x�5 % soustraire la valeur 5 du vecteur x27
28 ans =29
30 �431 �332 �233
34 >> x�y % soustraire y de x35
36 ans =37
38 �339 �340 �341
42 >> x+y % somme de x et y43
44 ans =45
46 5
M.LICHOURI TPINFO4 :Page 9/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
47 748 949
50 >> z1=x .∗ y % multiplication element par element de x et y51
52 z1 =53
54 4 % 1∗455 10 % 2∗556 18 % 3∗657
58 >> z2 =x .\ y % division element par element de y sur x59
60 z2 =61
62 4 .0000 % 4/163 2 .5000 % 5/264 2 .0000 % 6/365
66 >> z3 =x ./ y % division element par element de x sur y67
68 z3 =69
70 0 .2500 % 1/471 0 .4000 % 2/572 0 .5000 % 3/673
74 >> z4 =x .^y % relever valeur par valeur, x au puissance de y75
76 z4 =77
78 1 % 1^479 32 % 2^580 729 % 3^681
82 >> length ( z1 ) % taille de z183
84 ans =85
86 387
88 >> norm( z1 ) % norme euclidienne de z189
90 ans =91
92 20.976293
94 >> U = linspace ( 1 , 20 , 5 ) % generer un vecteur contenant95 % 5 valeur compris entre 1 et 20 avec un pas fixe96 U =
M.LICHOURI TPINFO4 :Page 10/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
97
98 1 .0000 5 .7500 10.5000 15.2500 20.000099
100 >>
7 Solution Exercice 4
1. Créer la matrice A1 2 3 45 6 7 86 0 8 2
1 >> % on definit une matrice ligne par ligne2 >> A=[1 2 3 4 ; 5 6 7 8 ; 6 0 8 2 ]3 % on separe les colonnes avec ecpace ou virgule4 % on separe les lignes avec point�virgule5 A =6
7 1 2 3 48 5 6 7 89 6 0 8 2
2. Créer avec la ligne de commande la plus courte possible la matrice B va-lant :1 2 3 4 5 6 7 8 92 4 6 8 0 1 2 3 42 2 2 2 2 2 2 2 2
1 >> B=[1 : 9 ; 2 : 2 : 8 0 : 4 ; 2∗ ones ( 1 , 9 ) ]2 % 2:2:8 de 2 vers 8 avec pas de 23 B =4
5 1 2 3 4 5 6 7 8 96 2 4 6 8 0 1 2 3 47 2 2 2 2 2 2 2 2 28
9 >> ones (1 , 9 )% commande generant une matrice de 1 ligne et10 % 9 colonne ne contenant que des 111 ans =12
13 1 1 1 1 1 1 1 1 1
M.LICHOURI TPINFO4 :Page 11/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
3. Donnez la ligne de commande permettant de créer la matrice suivante enutilisant les opérations usuelles sur les matrices :
�� 31 31 31
31 31 3131 31 31
� � 2
�� 1 0 0
0 1 00 0 1
� � 5
�� 5 8 1
0 6 97 3 3
�
1 >> C=31∗ones (3 ) % matrice de 3x3 remplit de 12 % qu’on multiplie avec 31 donc:3 C =4
5 31 31 316 31 31 317 31 31 318
9 >> D=2∗eye (3 ) % commande permettant de generer une matrice10 % 3x3 identite qu’on multiplie avec 211 D =12
13 2 0 014 0 2 015 0 0 216
17 >> E=[5 8 1 % on peut separer les lignes d’une matrice par18 0 6 9 % des sauts de lignes19 7 3 3 ]20
21 E =22
23 5 8 124 0 6 925 7 3 326
27 >> F=C∗D+5∗E % calculer F28
29 F =30
31 87 102 6732 62 92 10733 97 77 7734
35 >>
M.LICHOURI TPINFO4 :Page 12/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
8 Solution Exercice 5
Complétez les opérations suivantes en indiquant ce qu'elles réalisent :
1 >>2 >> A=[1 2 3 ; 4 5 6 ] % creation d’une matrice 2 ligne,3 % 3 colonne A(2x3)4 A =5
6 1 2 37 4 5 68
9 >> A(2 , 3) % afficher la valeur qui se trouve dans la10 % deuxieme ligne, troixieme colonne11 ans =12
13 614
15 >> A(2 , 3)=5 % remplacer la valeur par 516
17 A =18
19 1 2 320 4 5 521
22 >> A(3 , 1)=7 % puisque la matrice A contient 2 lignes,23 % donc on va ajouter une troisieme ligne avec seulement24 % la premiere valeur definit=7 alors les autres25 % seront mis�a�zeros26 A =27
28 1 2 329 4 5 530 7 0 031
32 >> A(1 , : ) % afficher la premiere ligne de A33
34 ans =35
36 1 2 337
38 >> A( : , 2) % afficher la deuxieme colonne39
40 ans =41
42 243 544 045
46 >>
M.LICHOURI TPINFO4 :Page 13/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
9 Solution Exercice 6
Opérations sur les matrices :Soit la matrice A=[1 2 3 ; 4 5 6 ;7 8 9]1. Dé�nir la matrice B transposée de A
1 >>2 >> A=[1 2 3 ; 4 5 6 ; 7 8 9 ]3
4 A =5
6 1 2 37 4 5 68 7 8 99
10 >> B=A' % le prime (’) sert a creer une matrice11 % transposee, les lignes deviendront les colonnes12 B =13
14 1 4 715 2 5 816 3 6 917
18 >>
2. Dé�nir la matrice C comme produit de A par B
1 >> C=A∗B % produit matricielle ligne par colonne2
3 C =4
5 14 32 506 32 77 1227 50 122 1948
9 >>
3. Dé�nir la matrice D par : D= A.* B ; Comparer C et D
1 >>2 >> D= A.∗ B3
4 D =5
6 1 8 217 8 25 488 21 48 81
M.LICHOURI TPINFO4 :Page 14/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
9
10 >> % C n’egale pas D car:11 >> % La matrice C est le resultat d’une multiplication12 >> % matricielle alors que D d’une multiplication element13 >> % par element et cela en utilisant le point (.)14 >> % avant l’operation souhaite multiplication (∗),15 >> % division (/) ou puissance(^) seulement
10 Solution Exercice 7
1. Soit le vecteur v=[-1 -3 -5 -7],générer la matrice A=[v ;2*v ;3*v ;4*v] Com-plétez :
1 >>2 >> v=[�1 �3 �5 �7]3
4 v =5
6 �1 �3 �5 �77
8 >> A=[v ;2∗ v ;3∗ v ;4∗ v ]9
10 A =11
12 �1 �3 �5 �713 �2 �6 �10 �1414 �3 �9 �15 �2115 �4 �12 �20 �2816
17 >> % on a declarer une matrice en utilisant un variable qui est18 >> % le vecteur v19 >> diag (A)20
21 ans =22
23 �124 �625 �1526 �2827
28 >> % diagonale d’une matrice est extraite par la commande diag29 >> % le resultat sera affiche comme vecteur colonne30 >> A(2 : 3 , 2 : 4 )31
32 ans =33
34 �6 �10 �14
M.LICHOURI TPINFO4 :Page 15/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
35 �9 �15 �2136
37 >> % extraire une sous matrice de la 2 ver la 3 ligne38 >> % et de la 2 vers 3 colonne aussi39 >> t r i l (A) % affiche la partie inferieur a la diagonale40
41 ans =42
43 �1 0 0 044 �2 �6 0 045 �3 �9 �15 046 �4 �12 �20 �2847
48 >> triu (A) % affiche la partie superieur a la diagonale49
50 ans =51
52 �1 �3 �5 �753 0 �6 �10 �1454 0 0 �15 �2155 0 0 0 �2856
57 >> det (A) % calcule le determinant de A58
59 ans =60
61 062
63 >> inv (A) %calcule la matrice inverse de A64 Warning : Matrix i s s i n gu l a r to working p r e c i s i o n .65
66 ans =67
68 Inf Inf Inf Inf
69 Inf Inf Inf Inf
70 Inf Inf Inf Inf
71 Inf Inf Inf Inf
72
73 >> % infinie car determinant nulle74 >>
M.LICHOURI TPINFO4 :Page 16/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
2. Générer la matrice M=[ones(5,1) 3.4*eye(5,5) 5*ones(5,2)]
1 >>2 >> ones (5 , 1 )3
4 ans =5
6 17 18 19 1
10 111
12 >> % vecteur colonne de 5 ligne remplit de 113 >> eye ( 5 , 5 ) % matrice identite 5x514
15 ans =16
17 1 0 0 0 018 0 1 0 0 019 0 0 1 0 020 0 0 0 1 021 0 0 0 0 122
23 >> M=[ones (5 , 1 ) 3 .4∗eye ( 5 , 5 ) 5∗ ones ( 5 , 2 ) ]24
25 M =26
27 Columns 1 through 628
29 1 .0000 3 .4000 0 0 0 030 1 .0000 0 3 .4000 0 0 031 1 .0000 0 0 3 .4000 0 032 1 .0000 0 0 0 3 .4000 033 1 .0000 0 0 0 0 3 .400034
35 Column 7 through 836
37 5 .0000 5 .000038 5 .0000 5 .000039 5 .0000 5 .000040 5 .0000 5 .000041 5 .0000 5 .000042
43 >>
M.LICHOURI TPINFO4 :Page 17/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
11 Solution Exercice Supplémentaire 1
1. Ecrire la commande qui a�che la matrice A suivante :
A �
�� 1 2 3
0 5 47 2 9
�
1 >>2 >> A=[1 2 3 ; 0 5 4 ; 7 0 9 ]3
4 A =5
6 1 2 37 0 5 48 7 0 9
2. Complétez et commentez :
1 >> v=diag (A) % affiche la diagonale de la matrice A2
3 v =4
5 16 57 98
9 >> b=diag ( v ) % cree une matrice dont la diagonale est v10 % et le reste zero11 b =12
13 1 0 014 0 5 015 0 0 916
17 >> c=diag (diag (A) ) % equivalent a v suivie par v18
19 c =20
21 1 0 022 0 5 023 0 0 924
25 >> A( 1 : 2 , : ) % sous matrice allant de la 1 ligne vers la 2.26
27 ans =28
29 1 2 330 0 5 431
M.LICHOURI TPINFO4 :Page 18/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
32 >> A( : , 2 : 3 ) % sous matrice allant de la 2 colonne vers la 3.33
34 ans =35
36 2 337 5 438 0 939
40 >> A( 1 : 2 , 2 : 3 ) % sous matrice contenant l’intersection des41 % lignes 1 et 2 avec les colonnes 2 et 3.42 ans =43
44 2 345 5 4
3. Donnez la commande qui extrait les sous matrices suivantes de la matriceA.�
5 40 9
1 >> % on doit extraire l’intersection des lignes 2 et 32 >> A( 2 : 3 , 2 : 3 ) % avec les colonnes 2 et 33
4 ans =5
6 5 47 0 9
�1 30 4
1 >> % on doit extraire l’intersection des lignes2 >> % 1 et 2 avec les colonnes 1 et 3 (la 2 colonne est omis)3 >> A( 1 : 2 , 1 : 2 : 3 ) % on fait un saut de 2 pour les colonnes4
5 ans =6
7 1 38 0 4
�1 37 9
1 >> A( 1 : 2 : 3 , 1 : 2 : 3 ) % on fait un saut de 2 pour les colonnes2 ans = % et les colonnes3
4 1 35 7 9
M.LICHOURI TPINFO4 :Page 19/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
12 Solution Exercice Supplémentaire 2
Soit le systéme dé�nit par :
�� 3x� 2y � z � 1
2y � 4z � 2 � 0x� 2z � �5
1. Représenter ce systéme sou forme matricielle (Ax=b), et dé�nit à l'aidede Matlab la matrice A et le vecteur b.
�� 3 2 �1
0 �2 41 0 2
� �
�� x
yz
� �
�� 1
2�5
�
1 >>2 >> A=[3 2 �1;0 �2 4 ; 1 0 2 ]3
4 A =5
6 3 2 �17 0 �2 48 1 0 29
10 >> b=[1;2 ;�5] % ou b=[1 2 �5]’11
12 b =13
14 115 216 �517
18 >> b=[1 2 �5] '19
20 b =21
22 123 224 �525
26 >>
M.LICHOURI TPINFO4 :Page 20/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
2. Quelle est la condition pour que ce systéme admet une solution unique ?detpAq ¡ 0
1 >>2 >> i f (det (A)~=0) % different de zero3 fpr intf ( 'A admet une solution unique\n' )4 else
5 fpr intf ( 'A n"admet pas une solution unique\n' )6 end
7 % A admet une solution unique8 >>
3. Résoudre ce systéme à l'aide de Matlab.
1 >> det (A)2
3 ans =4
5 �6.00006
7 >> X=A\b % X contient les valeurs de x,y,z8
9 X =10
11 7 .000012 �13.000013 �6.000014
15 >>
M.LICHOURI TPINFO4 :Page 21/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
TP N�3 : Lecture et A�chage de données
13 But :
A�n de mieux interpréter les résultats, une certain présentation est néces-saire. Pour cela on va considérer l'utilisation des commandes d'a�chage de Mat-lab comme disp, error, fprintf,...
14 Exemple d'introduction
1. A�n de lire une variable dans Matlab, on utilise la commande inputcomme suit :
1
2 >> n=input ( 'donner un nombre entier: ' )3 donner un nombre e n t i e r : 24 % on va stoquer la valeur entree dans n5 n =6
7 28
9 >>
2. A�n d'a�cher une valeur, vecteur, chaine de caractére, on utilise la com-mande disp comme suit :
1 >> x=2;2 >> disp ( x ) % afficher la valeur de x3 24
5 >> v=[x 2∗x 4 ] ;6 >> disp ( v ) % afficher le vecteur v7 2 4 48
9 >> message='C"est bientot fini' ;10 >> disp ( message ) % afficher un certain message11 C" e s t b i en to t f i n i12 >>
3. On peut a�cher un message d'erreur à l'utilisateur en utilisant la com-mande error comme suit :
M.LICHOURI TPINFO4 :Page 22/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
1 >> n=input ( 'entrer un nombre positive: ' )2 en t r e r un nombre p o s i t i v e : �23
4 n =5
6 �27
8 >> i f (n<0) error ( 'n doit etre positive' )9 end
10 ??? n do i t e t r e p o s i t i v e11
12 >> % on a affiche un message d’erreur13 >>
4. On peut a�cher un message suivie par une valeur avec la commandefprintf comme suit :
1 >> Nom=input ( 'entrer votre nom: ' , 's' ) ; % pour entrer un message2 en t r e r vot re nom: M.LICHOURI % on ajoute ’s’ a input3 >> Tel=input ( 'entrer votre telephone: ' ) ;4 en t r e r vot re te l ephone : 123455 >> fpr intf ( 'votre nom est %s, votre numero est %d\n' ,Nom, Tel )6 votre nom e s t M.LICHOURI, vot re numero e s t 123457 >>
15 Solution Exercice 1 : paramètres d'un cercle
Ecrire un script MATLAB qui a�ecte à une variable R la valeur 20 puisa�ecte à 3 variables D, P et S respectivement les valeurs du diamètre, du péri-mètre et de la surface d'un cercle dont le rayon est R. On a�chera à l'écran lecontenu de ces di�érentes variables selon le format suivant :Un cercle de rayon WW a pour diamètre XX, pour circonférence YYet pour surface ZZ.
1 % Solution Exercice 1 TP3 :Parametre d’un cercle2 R=input ( 'donner la valeur du rayon R: ' ) ; % lecture de R3 D=2∗R; % diametre =2∗rayon4 P=2∗pi∗R; % perimetre d’un cercle5 S=pi∗R^2; % surface d’un cercle6 fpr intf ( 'Un cercle de rayon %f a pour diametre %f,
7 pour circonference %f et pour surface %f.\n' ,R,D,P, S)8 % apres execution9 % donner la valeur du rayon R: 20
10 % Un cercle de rayon 20.000000 a pour diametre 40.000000,...11 % pour circonference 125.663706 et pour surface 1256.637061.
M.LICHOURI TPINFO4 :Page 23/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
16 Solution Exercice 2
Ecrire un script MATLAB qui étant donnée une valeur réelle x, Calcule lavaleur de Y dé�nie par :
�� 3� x10 x � �1
3x�1 �1 x 1apx3 � 10q x ¡� 1
1 % Solution Exercie 2 TP32 x=input ( 'donner la valeur de x: ' ) ; % lire x3 i f x<=�14 y=3+x^10;5 e l s e i f x<16 y=3/(x+1);7 else
8 y=sqrt ( x^3+10);9 end
10 disp ( y )11 % execution 3 cas possible12 % donner la valeur de x: �113 % 414 %15 % donner la valeur de x: 016 % 317 %18 % donner la valeur de x: 119 % 3.3166
17 Solution Exercice 3 : échelle de température
La formule de conversion des températures exprimées en degré Celsius endegré Fahrenheit est : C � 5{9F � 32 Ecrire un script MATLAB permettant decalculer une liste d'équivalence pour des températures comprises entre 0�F et300�F avec un incrément de 10�F (sous la forme d'un tableau à 2 colonnes , lapremière colonne donnera les degrés Celsius, la seconde les degrés Fahrenheit).
1 % solution ex3 TP32 fpr intf ( 'degre celcius degre Fahreinheit\n' )3 fpr intf ( '--------------------------------------------\n' )4 for f =0:10:3005 c=5∗ f /9�32;6 fpr intf ( '%f || %f\n' , c , f )7 end
8 % execution9 % degre celcius degre Fahreinheit
10 % ��������������������������������������������
M.LICHOURI TPINFO4 :Page 24/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
11 % �32.000000 || 0.00000012 % �26.444444 || 10.00000013 % �20.888889 || 20.00000014 % �15.333333 || 30.00000015 % �9.777778 || 40.00000016 % ......... || ........
18 Solution Exercice 4 : à faire en devoir
Soit M, la matrice dé�nie par :�� 12 24 36 58
2 6 8 107 9 11 13
�
Ecrire un script MATLAB qui permet d'extraire :1. L'élément situé dans la troisième ligne et la quatrième colonne.2. Le vecteur L3 contenant tous les éléments de la troisième ligne.3. Le vecteur C4 contenant tous les éléments de la quatrième colonne.4. La sous matrice M1du matrice M, constitué à partir de l'intersection de ladeuxième et la troisième colonne avec la deuxième et la troisième ligne.5. La matrice M2 dont les lignes sont celles de la matrice M mais a�chées ensens inverse.
�� 7 9 11 13
2 6 8 1012 24 36 58
�
1 >> M=[12 24 36 58 ; 2 6 8 10 ; 7 : 2 : 1 3 ]2
3 M =4
5 12 24 36 586 2 6 8 107 7 9 11 138
9 >> M(3 ,4 )10
11 ans =12
13 1314
15 >> L3=M( 3 , : ) % 3 eme ligne16
17 L3 =18
19 7 9 11 13
M.LICHOURI TPINFO4 :Page 25/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
20
21 >> C4=M( : , 4 ) % 4 eme colonne22
23 C4 =24
25 5826 1027 1328
29 >> M1=M(2 : 3 , 2 : 3 )30
31 M1 =32
33 6 834 9 1135
36 >> M2=M(end :�1:1 , : )37
38 M2 =39
40 7 9 11 1341 2 6 8 1042 12 24 36 5843
44 >> M2=[M( 3 , : ) ; M( 2 , : ) ; M( 1 , : ) ]45
46 M2 =47
48 7 9 11 1349 2 6 8 1050 12 24 36 5851
52 >>
M.LICHOURI TPINFO4 :Page 26/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
TP N�4 : Méthodes Numériques
19 But :
1. Tracé des courbes2. Manipulation des de polynômes3. Calcul de la valeur approchée d'une racine d'une fonction réelle d'une variableréelle par les méthodes de Dichotomie de Newton et de la sécante,
20 Solution Exercice 1
Il existe di�érentes manières d'évaluer un polynôme et on souhaite program-mer l'algorithme d'HORNER qui permet de calculer rapidement la valeur d'unpolynôme P en un point x.Dans un script intitulé � polynome.m � :1. Créer un polynôme P pxq � 2x5 � 3x4 � 4x3 � 8x2 � 2x� 12. Créer un vecteur V dont les composantes sont les valeurs de -10 à 10 par pasde 0.53. Calculer les valeurs de P(x) aux points contenus dans le vecteur V4. Calculer la dérivée dP du polynome P(x) avec la commande polyder5. Créer une fenêtre graphique pouvant contenir deux sous fenêtres6. Tracer la courbe de P(x)sur la première sous fenêtre et celle de dP dans laseconde sous fenêtre sur l'intervalle [-10 , 10] en ajoutant le titre et les légendesdes axes.7. Trouver les racines de P(x) avec la commande roots et a�cher les.8. A l'aide de l'algorithme d'HORNER évaluer P(x) pour x=3 ( la valeur de xdoit être donnée en entrée)9. Véri�er la valeur obtenue à l'aide de la commande de MATLAB polyval10. Soit le polynôme Spxq � 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 % declaration du polynome P2 P=[2 3 4 8 2 1 ] ;3 % Declaration du vecteur V4 V=[ �10 : 0 . 5 : 10 ] ;5 % Evaluation du polynome P aux valeurs de V6 polyval (P,V) ;
M.LICHOURI TPINFO4 :Page 27/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
7 % Calculer la derivee du polynome P8 dP=polyder (P) ;9 % Creer une figure numerotee 1
10 f igure (1 )11 % La subdiviser en deux sous�fenetre horizontale12 subplot ( 1 , 2 , 1 ) % 1 ligne, 2 colonne , 1 sous�fenetre13 % Tracer P(v) en fonction de V14 plot (polyval (P,V) ,V)15 % ajouter un titre a P16 t i t l e ( 'graphe de la fonction P' )17 % ajouter une etiquete a l’axe des x18 xlabel ( 'axes des x' )19 % ajouter une etiquete a l’axe des y20 ylabel ( 'fonction polynome p(x)' )21 % selectionner la deuxieme sous�fenetre22 subplot ( 1 , 2 , 2 )23 % Tracer la derivee dP(v) en fonction de v24 plot (polyval (dP ,V) ,V)25 % ajouter un titre a dP26 t i t l e ( 'graphe de la fonction derivee P' )27 % ajouter une etiquete a l’axe des x28 xlabel ( 'axes des x' )29 % ajouter une etiquete a l’axe des y30 ylabel ( 'fonction polynome dp(x)' )31 % Calculer les racines du polynome P32 roots (P)33 % Representation de HORNER d’un polynome34 % y =2∗x^5+3∗x^4+4∗x^3+8∗x^2+2∗x+135 % y =36 % x∗(x∗(x∗(x∗(x∗(x∗0+2) + 3) + 4) + 8) + 2) + 137
38 % implementation de l’algorithme de horner39 % son but est de minimiser le nombre de40 % multiplication en evaluant un polynome P41 % avec une valeur x42 x=3;43 r e s =0;44 for i = 1 : length (P)45 r e s = r e s ∗x + P( i ) ;46 end
47
48 r e s49
50 % en utilisant polyval51 z=polyval (P, x )52 % declaration du polynome S53 S=[0 7 �2 1 �5 3 ]54 % Calculer la somme de deux polynomes55 % S et P doivent avoir la meme taille56 % c’est pourquoi on ajouter un zero
M.LICHOURI TPINFO4 :Page 28/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
57 % au debut du polynome S58 som=S+P59 % multiplier deux polynomes60 % leur taille puisse etre different61 mult i=conv (S ,P)62 % diviser deux polynomes63 % le polynome en denominateur ne doit pas64 % commencer par la valeur zero65 [Q,R]=deconv (S ,P) % l’ordre est important66 % Q represente le quotiant67 % R represente le reste
21 Solution Exerice 2
Soit la fonction fpxq � p5� xqex � 3 dé�nie sur R .1. Ecrire une fonction sous matlab, qui reçoit comme argument l'abscisse x etqui retourne la valeur fpxq. (inline)2. Utilisez la commande fplot de Matlab pour tracer le graphe de la fonctionfpxq dans l'intervalle [-2, 6]. Donner, à l'aide de ce graphe, une première ap-proximation des racines.3. Utiliser la commande matlab fzero pour trouver la racine positive de cettefonction.
1 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗2 % declaration de la fonction f avec inline3 f=i n l i n e ( '(5-x)* exp(x)-3' )4 % appelation d’une figure5 f igure (2 )6 % tracer la fonction f dans l’intervalle [�2 6]7 % avec la commande fplot8 fplot ( f , [ �2 , 6 ] )9 % calculer la racine positive de f a l’aide de fzero
10 % fzero a besoin d’une fonction f et un point initial x011 X = fzero (@(x)((5�x )∗ exp( x )�3) ,3) %fzero(f,3)
4. Ecrire un programme script Matlab permettant de calculer la racine po-sitive approchée de fpxq � 0 en utilisant la méthode de dichotomie. On donne :
l'intervalle initial [a0,b0] = [4, 6].Indications :Utiliser les deux tests d'arrêt suivants :a) Imposer le nombre d'itérations maximum nitermax =50.b) En dé�nissant la valeur de l'erreur absolue ek � |xk � xpk � 1q| où xk est lasolution approchée à l'itération k , arrêtez les calculs lorsque ek ε � 10� 6 .
1 % Methode de DICHOTOMIE
M.LICHOURI TPINFO4 :Page 29/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
2 f=i n l i n e ( '(5-x)*exp(x)-3' ) % declaration de la fonction f avec3 a0=4; % inline4 b0=6;5 e r r =1; % une faux valeur pour declencher la boucle6 xt=4; % pour calculer l’erreur on suppose que la racine7 % est a0=48 i f f ( a0 )∗ f ( b0)<0 % condition necessaire pour que f admet une9 % racine dans [a,b]
10 nitermax=0; % initialiser la valeur du nombre11 % d’iteration a zero.12 while ( nitermax<=50 & err >10^�6) % deux condition d’arret13 % si nombre maximum d’iteration est atteint ou l’erreur14 % est inferieur a epsilon 0.00000115 x=(a0+b0 ) /2 ; % dviviser l’intervalle [a0 b0] sur 216 e r r=abs ( xt�x ) ; % calculer l’erreur entre deux valeurs17 % successives18 xt=x ; % recursivite du calcul19 nitermax=nitermax+1; % incrementer le nombre d’iteration20 % par un21 i f f ( a0 )∗ f ( x)<0 % test si l’intervalle [a0 x] contient22 % la racine23 b0=x ; % si oui la valeur de b0 est change par x24 else
25 a0=x ; % si non la valeur de a0 est change par x26 end
27 end
28 fpr intf ( 'la racine approchee est %f\n' , x ) % afficher29 % la racine30 else % changer l’intervalle31 fpr intf ( 'pas de racine trouve dans l"intervalle\n' )32 end
22 Solution Exerice 3
En utilisant les fonctionnalités graphiques de MATLAB, localiser la racinepositive de l'équation fpxq � 2sinpxq � x.
1 % Solution Exercice 3 TP32 % Partie 1: Resolution graphique de f(x)=03 % Pour cela on recherche soit la solution4 % en reperant le point % d’intersection avec5 % y=0 ou bien utiliser la methode de separation6 % de racine.7 % Methode 1:8 f=i n l i n e ( '2*sin(x)-x' )9 f igure (1 )
10 fplot ( f , [�pi pi ] )11 t i t l e ( 'methode graphique' )
M.LICHOURI TPINFO4 :Page 30/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
12 grid on13
14 % Methode 2:15 x=linspace(�pi , pi , 5 0 ) ; % ou x=�pi:0.01pi;16 y1=2∗sin ( x ) ;17 y2=x ;18 f igure (2 )19 plot (x , y1 )20 hold on21 plot (x , y2 , 'r' )22 t i t l e ( 'separation graphique' )23 grid on24 legend ( 'y1' , 'y2' )25 hold o f f
Figure 1 � Resolution graphique
M.LICHOURI TPINFO4 :Page 31/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
Figure 2 � Methode de separation de racine
Appliquer la méthode de Newton, pour trouver la valeur approchée de laracine de fpxq dé�nie dans l'exercice 1.Indications : On prendra un test d'arrêt de la forme |xn�1 � xn| ε � 10�6
et on prendra soin de prévoir un compteur d'itérations
1 % Solution Exercice 3 TP32 % Partie 2: Resolution numerique de f(x)=03 % Methode Newton4 f=i n l i n e ( '(5-x).*exp(x)-3' ) % declarer la fonction f5 df=i n l i n e ( '(4-x).*exp(x)' ) % declarer la fonction derivee df6 a=4;7 b=6;8 eps=10^�6; % la valeur toleree de l’erreur9 x0=(a+b )/2 ; % point initial
10 e r r =1; % pour lancer la boucle11 nb=0; % initialiser le nombre d’iteration12 i f f ( a )∗ f (b)<013 fpr intf ( 'nb x f(x)\n' )14 fpr intf ( '---------------------------------------\n' )15 while ( err>eps )16 nb=nb+1; % incrementer la compteur nb par 117 xt=x0�f ( x0 )/ df ( x0 ) ; % equation de la tangeante18 e r r=abs ( x0�xt ) ; % calcule de l’erreur19 x0=xt ; % car une methode resursive20 fpr intf ( '%3d %3.8f %3.8f\n' , nb , xt , f ( xt ) )21 end
22 else
23 fpr intf ( 'changer d''intervalle' )
M.LICHOURI TPINFO4 :Page 32/34
2014/05/26
Université de BlidaFaculté des Sciences
2 année STSemestre 4
24 end
25
26 % resultat execution:27 % f =28 %29 % Inline function:30 % f(x) = (5�x).∗exp(x)�331 %32 %33 % df =34 %35 % Inline function:36 % df(x) = (4�x).∗exp(x)37 %38 % nb x f(x)39 % ���������������������������������������40 % 1 4.97978616 �0.0600327341 % 2 4.97936489 �0.0000255542 % 3 4.97936471 �0.00000000
23 Solution Exerice 4
Soit la fonction fpxq � ex�x4{2�x2�1 écrire un script ( programme) Mat-lab permettant de trouver la racine approchée de cette équation par la méthodede la sécante si elle existe dans l'intervalle[-1 1], en utilisant l'algorithme suivant :
% algorithme de la sécante
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 BlidaFaculté des Sciences
2 année STSemestre 4
1 % Solution Exerice 4 TP32 % Resolution Numerique de f(x)=03 % Methode de la secante4 clear a l l
5 clc
6 f=i n l i n e ( 'exp(x)-x^4/2-x^2-1' )7 a=�1;8 b= 1 ;9 eps=0.00001 ;
10 e ca r t =abs ( a�b ) ;11 i t e r =0;12 i f f ( a ) . f (b)<013 while ( i t e r <=50 & ecart>eps )14 i t e r=i t e r+1 ;15 xb=b�(b�a )∗ f (b )/ ( f (b)� f ( a ) ) ;16 e ca r t=abs ( a�xb ) ;17 i f f ( a )∗ f ( xb)<018 b=xb ;19 else a=xb ;20 end
21 end
22 fpr intf ( 'la racine approchee est %f,le nombre d' i t e r a t i o n s23 e s t=%d\n’,xb,iter) ;24 else fprintf ( 'pas de racine dans cet intervalle' )25 end
26
27 % resultat d’execution:28 %29 % Inline function:30 % f(x) = exp(x)�x^4/2�x^2�131 %32 % la racine approchee est 0.000000,le nombre d’iterations est=51
M.LICHOURI TPINFO4 :Page 34/34
2014/05/26