62
v v1v2v3................vn ouv v1,v2,v3, ................vn

TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

TPN�

1-4 avec solution

Responsable

A.SELLALI

Assistant

M.LICHOURI

27 Avril 2015

Dernière mise à jour : 2015/05/16 à 21:46:48

TP N�1 : Les vecteurs et les matrices(cours)

1 Les vecteurs :

Un vecteur est une liste d'éléments appelés composants.

1.1 vecteur ligne

Pour créer un vecteur ligne il su�t d'écrire la liste de ses composants entrecrochets [et] et de les séparer par des espaces ou des virgules comme suit :v � rv1v2v3. . . . . . . . . . . . . . . .vnsouv � rv1, v2, v3, . . . . . . . . . . . . . . . .vns

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

M.LICHOURI TPINFO4 :Page 1/62

2015/05/16

Page 2: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

1.2 vecteur colonne

Pour créer un vecteur colonne il est possible d'utiliser une des méthodessuivantes :

� écrire les composants du vecteur entre crochets [et] et de les séparer pardes points-virgules ( ;) comme suit :

1 >> U = [ 9 ; 4 ; �1 ] % Creation d’un vecteur colonne U

� écrire verticalement le vecteur :

1 >> U = [2 93 44 � 15 ]

� calculer le transposé d'un vecteur ligne :

1 >> U = [ 9 4 �1 ] ' % Creation d’un vecteur colonne U

Remarque 1

Si les composants d'un vecteur X sont ordonnés avec des valeurs consé-cutives, nous pouvons le noter avec la notation suivante :X = premier_élément : dernier_élément(Les crochets sont facultatifs dans ce cas)

M.LICHOURI TPINFO4 :Page 2/62

2015/05/16

Page 3: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Exemple :

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

On peut aussi écrire : X � r1 : 6sRemarque 2

Si les composants d'un vecteur X sont ordonnés avec des valeurs consé-cutives mais avec un pas (d'incrémentation/décrémentation) di�érent de1, nous pouvons spéci�er le pas avec la notation :X = [premier_élément : pas : dernier_élément](Les crochets sont facultatifs)

Exemple :

1 >> X = [8 : �2 : 0 ] % le vecteur X contient les nombres pairs < 102 X =3 0 2 4 6 84 >> X = [ �3 : 2 : 5 ] % on peut aussi ecrire colon(�3,2,5)5 X =6 �3 �1 1 3 57 >> 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

* On peut construire un vecteur en plusieurs parties :

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

Attention : la valeur 1 n'est pas atteinte* On peut construire un vecteur par concaténation de plusieurs vecteurs :

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

* On peut concaténer des vecteurs

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

M.LICHOURI TPINFO4 :Page 3/62

2015/05/16

Page 4: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

1.3 Référencement et accès aux éléments d'un vecteur

L'accès aux éléments d'un vecteur se fait en utilisant la syntaxe généralesuivante :

Figure 1 � accés au éléments d'un vecteur

Exemple :

1 >> V = [5 , �1, 13 , �6, 7 ] % creation du vecteur V quicontient 5 elements

2 V =3 5 �1 13 �6 74 >> V(2) % la 2eme position5 ans = �16 >> V(2 : 4 ) % de la deuxieme position jusqu’au quatrieme7 ans =8 �1 13 �69

10 >> V(4: �2 :1) % de la 4eme pos jusqu’a la 1ere avec le pas = �211 ans =12 �6 �113

14 >> V(3 :end) % de la 3eme position jusqu’a la derniere15 ans =16 13 �6 717

18 >> V( [ 1 , 3 , 4 ] ) % la 1ere, la 3eme et la 4eme positionuniquement

19 ans =20 5 13 �621

22 >> V(1) = 8 % donner la valeur 8 au premierelement

23 V =24 8 �1 13 �6 725

26 >> V(6) = �3 % ajouter un sixieme element avec la valeur �327 V =28 8 �1 13 �6 7 �329 >> V(9) = 5 % ajouter un neuvieme element avec la

valeur 530 V =31 8 �1 13 �6 7 �3 0 0 5

M.LICHOURI TPINFO4 :Page 4/62

2015/05/16

Page 5: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

32 >> V(2) = [ ] % Supprimer le deuxieme element33 V = 8 13 �6 7 �3 0 0 534 >> V(3 : 5 ) = [ ] % Supprimer du 3eme jusqu’au 5eme element35 V =36 8 13 0 0 5

1.4 Les opérations élément-par-élément pour les vecteurs

Avec deux vecteurs ÝÑu et ÝÑv , il est possible de réaliser des calcules élémentpar élément en utilisant les opérations suivantes :

Figure 2 � opérations élément-par-élément

L'écriture d'une expression tel que : uv génère une erreur car cette expressionréfère a une multiplication de matrices (u � v1 ou v1 � u pour être valide).

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

M.LICHOURI TPINFO4 :Page 5/62

2015/05/16

Page 6: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

4 ??? Error us ing ==> mtimes5 Inner matrix dimensions must agree .6 >> u∗v '7 ans =8 �8

L'écriture d'une expression tel que : u2 génère une erreur car cette expressionréfère a une multiplication de matrices ( u � u1 ou u1 � u pour être valide).

1.5 La fonction linspace

La création d'un vecteur dont les composants sont ordonnés par intervallerégulier et avec un nombre d'éléments bien déterminé peut se réaliser avec lafonction :linspace (début, �n, nombre d'éléments).Le pas d'incrémentation est calculé automatiquement par Matlab selon la for-mule :Le.pas � fin�debut

nombre.d1elements�1Par exemple :

1 >> X = linspace ( 1 , 10 , 4 ) % un vecteur de quatre element de 1 a10

2 X =3 1 4 7 104

5 >> Y = linspace (13 ,40 ,4 )% un vecteur de quatre element de 13 a40

6 Y =7 13 22 31 408 >> X = linspace ( 1 , 10 , 5 )9

10 X = 1.0000 3 .2500 5 .5000 7 .7500 10.000011

12 La t a i l l e d ' un vecteur ( l e nombre de s e s composants )13 peut e t r e obtenue avec l a f on c t i on length comme su i t :14 >> length (X) % la taille du vecteur X15 ans =16 4

1.6 Exercices résolus

Listing 1� lire les éléments d'un vecteur

1 clear a l l

2 n=input ( 'entrer le nombre d''elements' ) ;3 for i =1:1 :n4 v ( i )=input ( 'entrer une composante' ) ;5 end

M.LICHOURI TPINFO4 :Page 6/62

2015/05/16

Page 7: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

6 disp ( v )

Listing 2� a�ecter à tous les composants d'indice i paire la valeur 2*i+1

1 clear a l l

2 n=input ( 'entrer le nombre d''elements' ) ;3 for i =1:1 :n4 i f (mod( i , 2 )==0)5 v ( i )=2∗ i +1;6 end

7 end

8 disp ( v )9 %entrer le nombre d’elements 9

10 % 0 5 0 9 0 13 0 17

Attention

n'oubliez pas le clear all sinon aux composants non dé�nis explicitement,il a�ecte les anciennes valeurs contenues dans v

Listing 3� a�cher les conjugués des composants complexes d'un vec-teur v

1 clear a l l

2 v=[2+ i �5�3 i 9+7 i ] ;3 for i =1:1 :34 w( i )=conj ( v ( i ) ) ;5 end

6 disp (w)7

8 % 2.0000 � 1.0000i �5.0000 + 3.0000i 9.0000 � 7.0000i9 %Autre méthode:

10 clear a l l

11 v=[2+ i �5�3 i 9+7 i ] ; disp ( conj ( v ) )

Ex : On veut calculer les 10 premiers termes d'une suite géométrique deraison 0.5 et de premier terme up1q � 100. Les termes successifs de la suite sontenregistrés dans un vecteur : u � rup1qup2q. . . upnqs, n � 10

1 clear a l l

2 u (1) = 100 ;3 for k=[1 : 1 : 9 ] ,4 u(k+1) = 0 .5 ∗ u(k ) ;5 end

6 disp (u)7

8 %100.0000 50.0000 25.0000 12.5000 6.2500 3.12501.5625 0.7813 0.3906 0.1953

M.LICHOURI TPINFO4 :Page 7/62

2015/05/16

Page 8: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

1.7 Les fonctions vectorielles

Les fonctions vectorielles les plus utilisées sont :

� sum(v) : somme des éléments de v� prod(v) : produit des éléments de v� mean(v) : moyenne des éléments 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. Création d'une matrice, il fautrespecter les règles suivantes :

� Les éléments doivent être mises entre des crochets [ et ]� Les espaces ou les virgules sont utilisés pour séparer les éléments dans lamême ligne

� Un point virgule (ou la touche entrer) est utilisé pour séparer les lignesExemple : Soit la matrice suivante :�

� 1 2 3 45 6 7 89 10 11 12

Cette matrice peut être écrite en MATLAB avec une des syntaxes suivantes :

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

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

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

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

Remarques :

1. Le nombre d'éléments dans chaque ligne (nombre de colonnes) doit êtreidentique dans toutes les lignes de la matrice, sinon une erreur sera signa-lée par MATLAB. Par exemple :

M.LICHOURI TPINFO4 :Page 8/62

2015/05/16

Page 9: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

1 >> X = [1 2 ; 4 5 6 ]2 Error us ing ve r t c a t3 CAT arguments dimensions are not c on s i s t e n t .

2. Une matrice peut être générée par des vecteurs comme le montre lesexemples suivants :

1 >> x = 1:4 %creation d’un vecteur x

2 x =3 1 2 3 44 >> y = 5 : 5 : 2 0 %

creation d’un vecteur y5 y =6 5 10 15 207 >> z = 4 : 4 : 1 6 %

creation d’un vecteur z8 z =9 4 8 12 16

10

11 >> A = [ x ; y ; z ] % A estformee par les vecteurs lignes x, y et z

12 A =13 1 2 3 414 5 10 15 2015 4 8 12 1616

17 >> B = [ x ' y ' z ' ] % B est formeepar les vecteurs colonnes x, y et z

18 B =19 1 5 420 2 10 821 3 15 1222 4 20 1623

24 >> C = [ x ; x ] % C est formeepar le meme vecteur ligne x 2 fois

25 C =26 1 2 3 427 1 2 3 4

2.1 Référencement et accès aux éléments d'une matrice

L'accès aux éléments d'une matrice se fait en utilisant la syntaxe généralesuivante :

Il est utile de noter les possibilités suivantes :

M.LICHOURI TPINFO4 :Page 9/62

2015/05/16

Page 10: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Figure 3 � accés aux éléments d'une matrice

� L'accès à un élément de la ligne i et la colonne j se fait par : A(i,j)� L'accès à toute la ligne numéro i se fait par : A(i, :)� L'accès à toute la colonne numéro j se fait par : A( :,j)Exemple :

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

2 A =3 1 2 3 44 5 6 7 85 9 10 11 126

7 >> A(2 ,3 ) % l’element sur la 2eme ligne á la 3eme colonne

8 ans =9 7

10

11 >> A( 1 , : ) % tous les elements dela 1ere ligne

12 ans =13 1 2 3 414

15 >> A( : , 2 ) % tous les elements dela 2eme colonne

16 ans =17 218 619 1020

21 >> A( 2 : 3 , : ) % tous les elements dela 2eme et la 3eme ligne

22 ans =23 5 6 7 824 9 10 11 1225

26 >> A( 1 : 2 , 3 : 4 ) % La sous matrice superieuredroite

27 ans =28 3 429 7 8

M.LICHOURI TPINFO4 :Page 10/62

2015/05/16

Page 11: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

30

31 >> A( [ 1 , 3 ] , [ 2 , 4 ] ) % la sous matrice :lignes(1,3) et colonnes (2,4)

32 ans =33 2 434 10 1235

36 >> A( : , 3 ) = [ ] % Supprimer la troisiemecolonne

37 A =38 1 2 439 5 6 840 9 10 1241

42 >> A( 2 , : ) = [ ] % Supprimer la deuxieme ligne43 A =44 1 2 445 9 10 1246

47 >> A = [A , [ 0 ; 0 ] ] % Ajouter une nouvellecolonne {ou A(:,4)=[0;0]}

48 A =49 1 2 4 050 9 10 12 051

52 >> A = [A ; [ 1 , 1 , 1 , 1 ] ] % Ajouter une nouvelle ligne {ou A(3,:)=[1,1,1,1]}

53 A =54 1 2 4 055 9 10 12 056 1 1 1 1

Les dimensions d'une matrice peuvent être acquises en utilisant la fonctionsize. Cependant, avec une matrice A de dimension mxn le résultat de cettefonction est un vecteur de deux composants, une pour m et l'autre pour n.

1 >> d = s ize (A)2 d =3 3 44

5 %Ici, la variable d contient les dimensions de la matrice Asous forme d’un vecteur.

6 % Pour obtenir les dimensions separement on peut utiliser lasyntaxe :

7

8 >> d1 = s ize (A, 1) % d1 contient lenombre de ligne (m)

9 d1 =10 311

M.LICHOURI TPINFO4 :Page 11/62

2015/05/16

Page 12: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

12 >> d2 = s ize (A, 2) % d2 contient lenombre de colonne (n)

13 d2 =14

15 4

2.2 Génération automatique des matrices

En Matlab, il existe des fonctions qui permettent de générer automatique-ment des matrices particulières. Dans le tableau suivant nous présentons-les plusutilisées :

Figure 4 � Génération automatique des matrices

2.3 Les opérations de base sur les matrices

Figure 5 � Les opérations de base sur les matrices

Les opérations élément par éléments sur les matrices sont les mêmes queceux pour les vecteurs (la seule condition nécessaire pour faire une opérationélément par élément est que les deux matrices aient les mêmes dimensions). Parcontre la multiplication ou la division des matrices requiert quelques contraintes(consulter un cours sur l'algèbre matricielle pour plus de détail).

M.LICHOURI TPINFO4 :Page 12/62

2015/05/16

Page 13: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Exemple :

1 >> A=ones (2 , 3 )2 A =3 1 1 14 1 1 15 >> B=zeros ( 3 , 2 )6 B =7 0 08 0 09 0 0

10 >> B=B+311 B =12 3 313 3 314 3 315 >> A∗B16 ans =17 9 918 9 919 >> B=[B , [ 3 3 3 ] ' ] % ou bien B(:,3)=[3 3 3]’20 B =21 3 3 322 3 3 323 3 3 324 >> B=B( 1 : 2 , : ) % ou bien B(3,:)=[]25 B =26 3 3 327 3 3 328 >> A=A∗229 A =30 2 2 231 2 2 232 >> A.∗B33 ans =34 6 6 635 6 6 636 >> A∗eye (3 )37 ans =38 2 2 239 2 2 2

M.LICHOURI TPINFO4 :Page 13/62

2015/05/16

Page 14: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

2.4 Fonctions utiles pour le traitement des matrices

Voici quelques fonctions parmi les plus utilisées concernant les matrices :

14

La fonction L’utilité Exemple d’utilisation

det Calcule de déterminant d’une matrice

>> A = [1,2;3,4] ; >> det(A) ans = -2

inv Calcule l’inverse d’une matrice

>> inv(A) ans = -2.0000 1.0000 1.5000 -0.5000

rank Calcule le rang d’une matrice >> rank(A) ans = 2

trace Calcule la trace d’une matrice >> trace(A) ans = 5

eig Calcule les valeurs propres

>> eig(A) ans = -0.3723 5.3723

norm Calcule la norme matricielle >> norm(u) ans = 3

diag Renvoie la diagonale d’une matrice (vecteur colonne)

>> diag(A) ans = 1 4

diag(V) Crée une matrice ayant le vecteur V sur la diagonale et 0 ailleurs.

>> V = [-5,1,3] >> diag(V) ans = -5 0 0 0 1 0 0 0 3

diag(V,k) Retourne la kième diagonale

>> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> diag(A,1) ans = 2 6 >> diag(A,-1) ans = 4 8

Figure 6 � Fonctions utiles pour les matrices (part1)

M.LICHOURI TPINFO4 :Page 14/62

2015/05/16

Page 15: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

15

tril Renvoie la partie triangulaire inferieure >> 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

triu Renvoie la partie triangulaire supérieure >> 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

Cross

Produit vectoriel de deux vecteurs >> A = [4 -2 1]; >> B = [1 -1 3]; >> C = cross(A,B) C = -5 -11 -2

Dot Produit scalaire de deux vecteurs >> A = [4 -1 2]; >> B = [2 -2 -1]; >> C = dot(A,B) C = 8

Figure 7 � Fonctions utiles pour les matrices (part2)

M.LICHOURI TPINFO4 :Page 15/62

2015/05/16

Page 16: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

TP N�1 : Les vecteurs et les matrices (Exer-cices + Solutions)

3 But :

Savoir e�ectuer à l'aide de MATLAB des opérations matricielle de façoncompacte, sans programmer de boucles sur les indices.

4 Solution Exercice 1

Complétez les opérations suivantes en indiquant ce qu'elles réalisent :

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 x= [ 1 ; 2 ; 3 ] % création d’un vecteur colonne x3 y= [ 4 ; 5 ; 6 ] % idem pour y4 z1=x .∗ y % multiplication élément par élément de x∗y5 z2=x . \ y % dévision élément par élément de y sur x6 z3=x . / y % dévision élément par élément de x sur y7 z4=x .^y % puissance élément par élément de x en y8 length ( z1 ) % taille ou nombre d’élément de z19 norm( z1 ) % la norme du vecteur z1

10 %%%%%%%%BONUS%%%%%%%%%%%%%11 z1 ' % le transposé du vecteur z112 sum( z1 ) % la somme des éléments de z113 prod ( z1 ) % produit des éléments de z114 max( z1 ) % la valeur maximale dans z115 min( z1 ) % la valeur minimale dans z116 median( z1 ) % la valeur du milieu dans z117 sort ( z1 ) % trier z1 en ordre croissant18 mean( z1 ) % la moyenne arithmetique des valeurs de z119 ze=linspace ( 1 , 2 , 10 ) % nous génére un vecteur contenant 10

valeurs20 % equidistants compris entre 1 et 2.

M.LICHOURI TPINFO4 :Page 16/62

2015/05/16

Page 17: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

5 Solution Exercice 2

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

3. 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 .7321

M.LICHOURI TPINFO4 :Page 17/62

2015/05/16

Page 18: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

14

15 >>

6 Solution Exercice 3

Écrire un script MATLAB pour :� Créer un vecteur v1 contenant 20 valeurs équidistantes entre 0 et 2π� Créer 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 % question 13 v1=linspace (0 ,2∗pi , 2 0 )4 % question 25 v2=linspace (pi /12 ,3∗pi /2 ,15)6 % question 37 v3=[v1 v2 ] % concatener les vecteurs v1 et v28 sort ( v3 ) % trier v39 % question 4

10 norm( v3 )

7 Solution Exercice 4

Donner les commandes MATLAB pour :

� créer la matrice C=[A, zeros(3,2) ; zeros(2,3), eye(2)].� Répliquer le vecteur colonne [1 ; 3 ; 6] pour en faire une matrice 3 ligneset 19 colonnes : en utilisant ones et en e�ectuant une multiplication ma-tricielle.

� Pour créer la matrice M de la manière la plus courte possible.

M �

������

1 π 3 4 0 0 51 0 π 4 0 0 61 0 0 π 0 0 71 0 0 0 π 0 81 0 0 0 0 π 9

�����

� Donnez la ligne de commande permettant de créer la matrice suivanteen utilisant les opérations usuelles sur les matrices : ( utiliser ones,eye etmagic).

� Donnez la ligne de commande permettant de créer la matrice suivante enutilisant les opérations usuelles sur les matrices :

M.LICHOURI TPINFO4 :Page 18/62

2015/05/16

Page 19: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

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

2 % question 13 % á partir de M, on déduit que la taille de A doit étre 3x34 A=[1 2 3 ;4 5 6 ;7 8 9 ]5 M=[A, zeros ( 3 , 2 ) ; zeros ( 2 , 3 ) ,eye (2 ) ]6 % question 27 % repamt(A,m,n) remplique une matrice ou vecteur A m fois

ligne et n fois8 % colonne9 r = [ 1 ; 3 ; 6 ]

10 R1=r ∗ ones (1 , 19 )11 % ou12 R2=[1∗ ones (1 , 19 ) ; 3∗ ones (1 , 19 ) ; 6∗ ones (1 , 19 ) ]13 % ou14 R3=[ ones (1 , 19 ) ;2+ones (1 , 19 ) ;5+ones (1 , 19 ) ]15 % ou16 R4=repmat ( r , 1 , 1 9 )17 % question 318 M2=[ones (5 , 1 ) , pi∗eye (5 ) , [ 5 ; 6 ; 7 ; 8 ; 9 ] ]19 % question 4 (un seule ligne de commande)20 M3=31∗ones (3 ) ∗2∗eye (3 ) +5∗[8 1 6 ; 3 5 7 ;4 9 2 ]21 % question 4 (plusieurs lignes de commande)22 >> C=31∗ones (3 ) % matrice de 3x3 remplit de 123 % qu’on multiplie avec 31 donc:24 C =25

26 31 31 3127 31 31 3128 31 31 3129

30 >> D=2∗eye (3 ) % commande permettant de generer une matrice31 % 3x3 identite qu’on multiplie avec 232 D =33

34 2 0 035 0 2 036 0 0 237

38 >> E=[5 8 1 % on peut separer les lignes d’une matrice par39 0 6 9 % des sauts de lignes40 7 3 3 ]41

42 E =43

44 5 8 1

M.LICHOURI TPINFO4 :Page 19/62

2015/05/16

Page 20: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

45 0 6 946 7 3 347

48 >> F=C∗D+5∗E % calculer F49

50 F =51

52 87 102 6753 62 92 10754 97 77 7755

56 >>

8 Solution Exercice 5

Soit M , la matrice dé�nie par :

M ��� 12 24 36 58

2 6 8 107 9 11 13

La sous matrice M1 est :

M1 ��

6 89 11

Écrire un script MATLAB qui permet d'extraire :

� L'élément situé dans la troisième ligne et la quatrième colonne.� Le vecteur L3 contenant tous les éléments de la troisième ligne.� Le vecteur C4 contenant tous les éléments de la quatrième colonne.� La sous matrice M1 e la matrice M , constituée à partir de l'intersectionde la deuxième et la troisième colonne avec la deuxième et la troisièmeligne.

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 %%%%%%%%%%%%%%%Introduction%%%%%%%%%%%%%3 % Pour definir une matrice dans matlab on la declare ligne par

ligne4 % separee par des points�virgule ;5 % a=[1 2 3; 4 5 6; 7 8 9]6 % ou colonne par colonne separee par des virgules ,7 % a=[[1;4;7],[2;5;8],[3;6;9]]8 % ou autre...9 % question 1

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

M.LICHOURI TPINFO4 :Page 20/62

2015/05/16

Page 21: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

11 % question 212 M(3 ,4 ) % l’element situe dans l’intersection entre la 3eme

ligne et la 4eme colonne13 % question 314 L3=M( 3 , : ) % Nom_Matrice(i eme ligne,:)15 % question 416 C4=M( : , 4 ) % Nom_Matrice(:,j eme colonne)17 % question 518 M1=M(2 : 3 , 2 : 3 ) % Nom_Matrice(ligne i:ligne j,colonne m:colonne

n)

9 Solution Exercice 6

Soient les matrices :

B ��� 0 �1

�2 0�3 �4

��C �

�� 1 2

3 46 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

� Calculer la matrice D telle que : Dij � BCijij

� Véri�er que le produit matriciel B*C n'a pas de sens� Redimensionner la matrice C en utilisant la commande reshape ( voirhelp reshape) de manière à ce que le produit matriciel B � C deviennepossible.

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE6%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 % question 13 B=[0 �1;�2 0;�3 �4]4 C=[1 2 ;3 4 ; 6 7 ]5 S=B+C6 % question 27 D=B.∗C8 % question 39 D=B./C

10 % question 411 D=B.^C12 % question 513 % D=B(3x2)∗C(3x2) erreur NombreColonneB different NombreLigneA14 % fonction resahape remodele la matrice B de tel maniere á

garder les memes15 % valeurs mais pas la meme dimension (size)16 D=B∗reshape (C, 2 , 3 )

M.LICHOURI TPINFO4 :Page 21/62

2015/05/16

Page 22: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

10 Solution Exercice 7

Soit le Système d'équations linéaires suivant :

����x1 � 4x2 � x3 � x4 � 12x1 � 7x2 � x3 � 2x4 � 16x1 � 4x2 � x3 � 2x4 � 13x1 � 10x2 � 2x3 � 5x4 � �15

a) Écrire ce système sous forme matricielle (Ax=b)

b) Créer la matrice A à l'aide de MATLAB

c) Extraire les blocs suivants de la matrice A

b1 ��

7 14 �1

�b2 �

�� �4 �1 1

7 1 �24 �1 2

��

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 dé�nie par : D = Id � A.At où Iddésigne la matrice identité et At la matrice transposée de A

f) Dé�nir la matrice B = [ones(4,2)*0.5 � ones(4,2)/0.5] et donner le résultatobtenu Le produit de A et B est-il possible ? Justi�er votre réponse. Si ouiquelle est la commande MATLAB qui permet de faire ce produit ?

g) Donner les commandes MATLAB qui permettent de déterminer le détermi-nant de A et l'inverse de A

h) A quelle condition le système admet-il une solution unique ?

i) Donner la commande MATLAB qui permet de trouver cette solution

Écrire ce système sous forme matricielle (Ax=b)

����

1 �4 �1 11 7 1 �21 4 �1 23 �10 �2 5

��� �

����

x1x2x3x4

��� �

����

12161

�15

���

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE7%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 % question 13 A=[1 �4 �1 1 ;1 7 1 �2;1 4 �1 2 ;3 �10 �2 5 ]4 b=[12 ;16 ;1 ; �15 ]5 % question 26 b1=M(2 : 3 , 2 : 3 )7 b2=M(1 : 3 , 2 : 4 )8 % question 39 A(2 ,3 )

10 A(1 : 4 , 3 )

M.LICHOURI TPINFO4 :Page 22/62

2015/05/16

Page 23: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

11 A( 1 , : )12 diag (A)13 t r i l (A)14 triu (A)15 % question 416 D=eye (4 )�A∗A'17 % question 518 B=[ones (4 , 2 ) ∗0.5� ones (4 , 2 ) / 0 . 5 ]19 [ nbrLigneA , nbrColonneA]= s ize (A)20 [ nbrLigneB , nbrColonneB]= s ize (B)21 i f nbrColonneA==nbrLigneB22 disp ( 'produit A*B possible' )23 A∗B24 else

25 disp ( 'impossible' )26 end

27 % question 628 det (A)29 inv (A)30 % question 731 i f det (A)~=032 disp ( 'le systeme admet une solution unique' )33 x=A\b34 else

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

de solution' )36 end

11 Solution Exercice Supplémentaire 1

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 �21

M.LICHOURI TPINFO4 :Page 23/62

2015/05/16

Page 24: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

15 �4 �12 �20 �2816

17 >> % on a declarer une matrice en utilisant un variable quiest

18 >> % 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 �1435 �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 A

M.LICHOURI TPINFO4 :Page 24/62

2015/05/16

Page 25: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

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

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

M.LICHOURI TPINFO4 :Page 25/62

2015/05/16

Page 26: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

37 5 .0000 5 .000038 5 .0000 5 .000039 5 .0000 5 .000040 5 .0000 5 .000041 5 .0000 5 .000042

43 >>

12 Solution Exercice Supplémentaire 2

1. Écrire 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 0

M.LICHOURI TPINFO4 :Page 26/62

2015/05/16

Page 27: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

22 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

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

M.LICHOURI TPINFO4 :Page 27/62

2015/05/16

Page 28: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 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

13 Solution Exercice Supplémentaire 3

Soit le système dé�nit par :

�� 3x� 2y � z � 1

2y � 4z � 2 � 0x� 2z � �5

1. Représenter ce système sous 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 1

M.LICHOURI TPINFO4 :Page 28/62

2015/05/16

Page 29: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

23 224 �525

26 >>

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

14 Solution Exercice supplémentaire 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�virgule

M.LICHOURI TPINFO4 :Page 29/62

2015/05/16

Page 30: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

5 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 30/62

2015/05/16

Page 31: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

TP N�2 : Les fonctions

15 But :

En plus des fonctions prédé�nies, Il est aussi possible de créer ses propresfonctions MATLAB. Il y'a deux manières de dé�nir une fonction :

16 Fonctions inline

La fonction inline permet de dé�nir directement une fonction sans avoir àcréer un �chier portant le nom de cette fonction :

1 >> h = i n l i n e ( ' expression ' ) ;2 >> h = i n l i n e ( 'expression ' , 'args' ) ;

L'expression de la fonction doit être assez simple et le nombre d'argumentspas trop élevé.Exemples :

1 >> f1= i n l i n e ( 'log(x) - 1' , 'x' ) ;2

3 >> f2= i n l i n e ( 'log(x) - p' , 'x' , 'p' ) ;4

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

Remarque1

Une fonction est activée lorsque son nom apparait avec les paramètrese�ectifs à la place des paramètres formels.Exemple :� f3(pi/2)

M.LICHOURI TPINFO4 :Page 31/62

2015/05/16

Page 32: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Remarque2

Lorsque l'on dé�nit une fonction, il est préférable d'utiliser systématique-ment les opérateurs terme à terme .� .{ et .^ au lieu de � { et ^ si l'onveut que cette fonction puisse s'appliquer à des tableaux.

Exemple :

1 >>x=1:pi /2 :2∗ pi2 >>s in c o s= i n l i n e ( 'sin(x)-x.*cos(x)' )

17 M-�les functions

Dès que la fonction nécessite plusieurs instructions, il vaut mieux la dé�nirdans un �chier à part à l'aide de l'éditeur de texte.

Une fonction Matlab est une suite de commandes qui nécessite un input pourêtre exécutée et qui renvoie un output. La déclaration des fonctions en Matlabsuit les règles suivantes.

� Une fonction est contenue dans un �chier ".m" avec le même nom que lafonction.

� Syntaxe de dé�nition d'une fonction externe : function ry1, ..., yms �nomfonctionpx1, ...., xnq où x1, ..., xn, les n arguments d'entrée et y1, y2, ..., ynles m arguments de sortie.

� Si la fonction ne possède qu'une seule variable de sortie, les crochets sontinutiles.

Remarque3

Le passage des arguments d'entrée dans les fonctions se fait par valeur.Aussi, même si elles sont modi�ées dans la fonction les valeurs des para-mètres ne sont pas modi�ées dans le programme appelant.

Exemple :

Listing 4� polaire.m

1 function [ r , theta ]= po l a i r e (x , y )2 r=sqrt ( x^2+y^2) ;3 theta=atan ( y/x ) ;

On appellera la fonction polaire à partir de l'invite de commande.

1 >> [ r , t ]= po l a i r e (2 , 3 ) % si on veut récupérer á la fois lerayon et l’angle

M.LICHOURI TPINFO4 :Page 32/62

2015/05/16

Page 33: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Remarque4

Une fonction peut être appelée en mode interactif ou dans un script.Exemple : écrire un script qui utilise une fonction comp pour compter lenombre d'éléments divisible par 3 dans un vecteur

Exemple :

Listing 5� comp.m

1 % on définit la fonction dans un m file comp.m2 function [ cp ]= comp (v , n)3 cp=0;4 for i =1:n5 i f ( mod(v ( i ) , 3 )==0)6 cp=cp+1;7 end

8 end

On appellera la fonction comp à partir d'un �chier .m

Listing 6� exo.m

1 % on écrit un script qui appelle la fonction comp2 n=input ( 'nombre d''elements' ) ;3 for i =1:n4 v ( i )=input ( 'entrer 1 nombre' ) ;5 end

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

M.LICHOURI TPINFO4 :Page 33/62

2015/05/16

Page 34: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

TP N�2 : Les fonctions (Exercices + So-lutions)

18 Solution Exercice 1 :

A l'aide d'une fonction f calculez la distance Euclidienne entre deux pointsA et B.

1 clear a l l ;2 clc ;3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE

1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4 % lecure des coordonnees des point A (xa, ya) et B(xb,yb)5 xa=input ( 'donner la valeur de xa' )6 ya=input ( 'donner la valeur de xa' )7 xb=input ( 'donner la valeur de xa' )8 yb=input ( 'donner la valeur de xa' )9 % declaration de la fonction f qui permet de calculer

10 % la distance euclidienne11 f=i n l i n e ( 'sqrt((xb-xa).^2+(yb-ya).^2)' )12 % calcul de la distance entre A et B.13 d i s t=f ( xa , ya , xb , yb ) ;14 %affichage15 fpr intf ( '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 a�che une table de valeurs f(x) tq :fpxq � sinpxq � lnpxq � ?

x.et x compris entre 1 et 10.

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

et 105 for x=1:106 fpr intf ( 'f(%f)=%f\n' , x , f ( x ) )

M.LICHOURI TPINFO4 :Page 34/62

2015/05/16

Page 35: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

7 end

20 Solution Exercice 3 :

En utilisant une fonction f calculer l'integrale de fpxq � 11�x5 sur l'intervalle

[a,b] en en utilisant la méthode des trapezes.I � h

2 � rfpaq � fpbq � 2�°ni�1 fpxiqs

h � b�an

xi � a� i� h

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 % les inconnus spnt les bornes a, b [a,b] et le nombre d’iteration n

3 % etape 1, on lit les variable a,b et n4 a=input ( 'donner la valeur de a' )5 b=input ( 'donner la valeur de b' )6 n=input ( 'donner la valeur de n' )7 % etape 2,on declare la fonction f avec inline8 f=i n l i n e ( '1./(1+x.^5)' )9 % etape 3, on calcul la variable h et la somme S

10 h=(b�a ) /n ;11 S=0;12 for i =1:n13 x i=a+i ∗h ;14 S=S+f ( x i ) ;15 end

16

17 I=h∗( f ( a )+f (b)+2∗S) /2 ;18 fpr intf ( 'l"integrale de f dans [a,b] est %f\n' , I )

21 Solution Exercice 4 :

En utilisant une fonction f calculer l'integrale de fpxq � 11�x6 sur l'intervalle

[a,b] en en utilisant la méthode de SIMPSON.

I � h2 �

�fpaq � fpbq � 2�°n

i�1 fpa� i� hq � 4�°n�1i�0 fpa� i� hq

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 % les inconnus spnt les bornes a, b [a,b] et le nombre d’iteration n

3 % etape 1, on lit les variable a,b et n4 a=input ( 'donner la valeur de a' )5 b=input ( 'donner la valeur de b' )

M.LICHOURI TPINFO4 :Page 35/62

2015/05/16

Page 36: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

6 n=input ( 'donner la valeur de n' )7 % etape 2,on declare la fonction f avec inline8 f=i n l i n e ( '1./(1+x.^6)' )9 % etape 3, on calcul la variable h et les sommes S1 et S2

10 h=(b�a ) /n ;11 S1=0;12 for i =1:n�113 x1=a+2∗ i ∗h ;14 S1=S1+f ( x1 ) ;15 end

16

17 S2=0;18 for i =0:n19 x2=a+(2∗ i +1)∗h ;20 S2=S2+f ( x2 ) ;21 end

22

23 I=h∗( f ( a )+f (b)+2∗S1+4∗S2 ) /2 ;24 fpr intf ( 'l"integrale de f dans [a,b] est %f\n' , I )

22 Solution Exercice 5 :

En utilisant une fonctionPAIR, trouver les termes de la suite Un dé�nie par :

Un�1 �"

Un

2 siUnpair3 � Un � 1sinon

La suite se termine si un terme vaut 1.

Listing 7� pair.m

1 function [ t ]= pa i r (nb)2 i f mod(nb , 2 )==03 t=1;4 else

5 t=0;6 end

7 end

Listing 8� exo5.m

1 u0=input ( 'donner la premiere valeur de U0>1' ) ;2 i =0;3 fpr intf ( 'u[%d]=%d\n' , i , u0 )4 while ( u0>1)5 i=i +1;6 i f pa i r ( u0 )==17 u0=u0 /2 ;

M.LICHOURI TPINFO4 :Page 36/62

2015/05/16

Page 37: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

8 else

9 u0=3∗u0+1;10 end

11 fpr intf ( 'u[%d]=%d\n' , i , u0 )12 end

M.LICHOURI TPINFO4 :Page 37/62

2015/05/16

Page 38: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

TP N�3 : Graphisme sous � Matlab �

23 Importance de la représentation graphique

MATLAB est un logiciel conçu pour les calculs scienti�ques. Ceci signi�e queMATLAB va aider l'utilisateur (ingénieur, étudiant, comptable,. . . ) à résoudreun problème lié à un phénomène naturel ou bien physique. Autrement dit, lesobservations (données) d'un expert ou bien d'un utilisateur sont enregistréessouvent sous forme des chi�res. Représenter ses observations sous forme d'untableau ne permet pas à l'utilisateur de mieux voir la variation de ces données. Tandis que, si ces données sont représentées graphiquement, l'utilisateur peutnon seulement voir la variation mais il peut aussi sélectionner les régions d'inté-rêt et les régions ou les événements pertinents se produisent. (séparation desracines pour le choix de l'intervalle)

24 Représentation 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 vecteurcontenant les valeurs yi en ordonnée. Bien entendu les vecteurs x et y doiventêtre de même dimension mais il peut s'agir de vecteurs lignes ou colonnes. Pardéfaut, les points pxi, yiq sont reliés entre eux par des segments de droites.

Exemple1 :

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

Exemple2 :Tracer le graphe de la fonction hpxq � x � sinpxq entre �2π et 2π.

1

2 >> x=[�2∗pi : 0 . 0 1 : 2 ∗ pi ] ; y = x .∗ sin ( x ) ;3 >> plot (x , y )

Exemple 3 :La commande plot s'applique aussi aux matrices

M.LICHOURI TPINFO4 :Page 38/62

2015/05/16

Page 39: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

1 >> M = [0 �2 1 ;2 0 3;�3 3 �2;1 1 4 ]2 M =3 0 �2 14 2 0 35 �3 3 �26 1 1 47 >> plot (M)

Si elle contient une seule matrice comme argument : elle considèreles valeurs de chaque colonne comme les éléments de l'axe Y, et leurs positionsrelatives (le numéro de ligne) comme les valeurs de l'axe X. Donc, elle donneraplusieurs courbes (une pour chaque colonne).

Figure 8 � Tracé d'une matrice M

Exemple4 :

1 f=i n l i n e ( '1/(1+x^5)' )2 fplot ( f , [�2 2 ] )

25 Améliorer la lisibilité d'une �gure

25.1 Légender une �gure

La commande grid permet d'obtenir un quadrillage de la �gure, voir parexemple la �gure ci dessus Il est recommandé de mettre une légende à une�gure. La commande xlabel permet de mettre un texte en légende sous l'axedes abscisses. La syntaxe est xlabel(' légende '). La commande ylabel fait demême pour l'axe des ordonnées.

M.LICHOURI TPINFO4 :Page 39/62

2015/05/16

Page 40: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

La commande title permet de donner un titre à la �gure. La syntaxe esttitle(' le titre') pour obtenir comme titre le titre.

On peut aussi écrire un texte donné à une position précise sur la �gure grâceà la commande text. La syntaxe est text(posx,posy,' un texte ') où posxet posy sont les coordonnées du point (dans le système associé au dessin) oùdoit débuter l'écriture du texte un texte.

Exemple5 :

1 clear a l l

2 f igure (1 )3 P = 5 ;4 t = [ 0 : . 0 1 : 2 ] ;5 c = 12∗exp(�2∗ t ) � 8∗exp(�6∗ t ) ;6 plot ( t , c ) ; grid

7 xlabel ( 'temps en minutes' )8 ylabel ( 'concentation en gramme par litre' )9 t i t l e ( [ 'evolution de la concentration du produit ' , num2str(P

) , . . .10 ' au cours du temps ' ] )

On peut spéci�er à MATLAB quelle doit être la couleur d'une courbe, queldoit être le style de trait et/ou quel doit être le symbole à chaque point pxi, yiq.Pour cela on donne un troisième paramètre d'entrée à la commande plot qui estune chaîne de 3 caractères de la forme 'cst' avec c désignant la couleur du trait,s le symbole du point et t le type de trait. Les possibilités sont les suivantes :

Figure 9 � Options de la commande plot

Exemple6 :

1 plot (x , y , 'black -.^' )2 plot (x , y , 'r:*' )3 plot (x , y , 'bp-' )

M.LICHOURI TPINFO4 :Page 40/62

2015/05/16

Page 41: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

25.2 A�cher plusieurs courbes dans une même fenêtre

il est possible d'a�cher plusieurs courbes dans une même fenêtre graphiquegrâce à la commande hold on. Les résultats de toutes les instructions graphiquesexécutées après appel à la commande hold on seront superposés sur la fenêtregraphique active. Pour rétablir la situation antérieure (le résultat d'une nouvelleinstruction graphique remplace dans la fenêtre graphique le dessin précédent)on tapera hold o�. Voici un exemple d'utilisation de la commande hold on. Lerésultat est présenté à la �gure.

Exemple7 :

1 clear ;2 clc ;3 x = �4 : 0 . 5 : 4 ;4 y = �2∗x.^3+x.^2�2∗x+4;5 plot (x , y , 'rd:' )6 t i t l e ( 'graphe de f(x)' )7 hold on ;8 dy = �6∗x.^2+2∗x�2;9 plot (x , dy , 'gp-' )

10 t i t l e ( 'graphe de fd(x)' )11 hold o f f ;

La deuxième méthode pour tracer plusieurs graphes dans une même fenêtreconsiste à utiliser la fonction �subplot �. Cette fonction permet de subdiviserla fenêtre graphique utilisée en plusieurs sous -fenêtres. Chacune de ces sous-fenêtres se comporte comme une fenêtre à 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 clear a l l ;2 clc

3 t= [ 0 : pi /100 : 2∗pi ] ;4 y=sin ( 0 . 3∗ pi∗ t ) ;5 y1=cos ( 0 . 3∗ pi∗ t ) ;6 y2=sin ( 0 . 3∗ pi∗ t )+cos ( 0 . 3∗ pi∗ t ) ;7 y3=sin ( 0 . 3∗ pi∗ t )�cos ( 0 . 3∗ pi∗ t ) ;8 subplot ( 2 , 2 , 1 ) ; plot ( t , y )9 grid

10 subplot ( 2 , 2 , 2 ) ; plot ( t , y1 )11 grid

12 subplot ( 2 , 2 , 3 ) ; plot ( t , y2 )

M.LICHOURI TPINFO4 :Page 41/62

2015/05/16

Page 42: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

13 grid

14 subplot ( 2 , 2 , 4 ) ; plot ( t , y3 )15 grid

M.LICHOURI TPINFO4 :Page 42/62

2015/05/16

Page 43: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

TP N�3 : Graphisme sous � Matlab � (Exer-cices + Solutions)

26 Solution Exercice d'introduction

Écrire un script MATLAB, qui permet de reproduire (générer) le graphesuivant :

Figure 10 � Graphe de la vitesse

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE Introduction%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 % Tracer le premier segment situee dans [0 1]3 t1 =0 : 0 . 1 : 1 ; %definir l’intervalle [0 1]4 v1=2∗t1 ; % exprimer la vitesse v1 en fonction de t15 plot ( t1 , v1 , 'r' ) % tracer v1 en fonction de t1 en rouge6 hold on % ajouter d’autre segment sur la meme figure7 % Tracer le premier segment situee dans [1 3]8 t2 =1 : 0 . 1 : 3 ; %definir l’intervalle [1 3]9 v2=2∗ones (1 , length ( t2 ) ) ; % v2 est constante pour tous le

valeurs de t2

M.LICHOURI TPINFO4 :Page 43/62

2015/05/16

Page 44: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

10 plot ( t2 , v2 , 'g' ) % tracer v2 en fonction de t2 en vert11 % Tracer le premier segment situee dans [3 5]12 t3 =3 : 0 . 1 : 5 ; %definir l’intervalle [3 5]13 v3=�t3+5; % exprimer la vitesse v3 en fonction de t314 plot ( t3 , v3 ) % tracer v3 en fonction de t3 en bleu(par defaut)15 t i t l e ( 'Variations de la vitesse en fonctions du temps' ) %

ajouter un titre au graphe16 xlabel ( 'Temps(s)' ) % ajouter une etiquette a l’axe des x17 ylabel ( 'Vitesse(m/s)' ) % ajouter une etiquette a l’axe des y18 legend ( 'V=f(t)' ) % ajouter une legend au trace19 grid on % afficher la grille20 hold o f f % fin d’ajout de trace

Figure 11 � Variation de la vitesse en fonction du temps

27 Solution Exercice 1 :

1. Donnez les commandes MATLAB nécessaires pour dessiner les courbes dechacune des fonctions suivantes :1) fpxq � 2ex � 3x pour x P r�2.5...2.5s, pas � 0.2 ;2) gpxq �apx2 � 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 nécessaires pour dessiner les courbes des fonctionsfpxq et gpxq et hpxq dans la même �gure avec les légendes nécessaires et desstyles di�érents.

M.LICHOURI TPINFO4 :Page 44/62

2015/05/16

Page 45: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%Reponse1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 %%%%%%%% Deviser la figure en trois sous figures3 f igure (1 ) % creer une figure 14 subplot ( 1 , 3 , 1 ) % considerer un alignement de trois figures5 % dans une seul ligne et trois colonnes6 % On trace f(x) dans la position 17 %%%fonction f(x) %%%%%%%Methode1%%%%%%%8 x1= �2 . 5 : 0 . 2 : 2 . 5 ;9 f=i n l i n e ( '-2*exp(x)+3*x' )

10 fplot ( f , [�2.5 2 . 5 ] )11 %%%fonction g(x) %%%%%%%Methode2%%%%%%%12 subplot ( 1 , 3 , 2 ) % On trace g(x) dans la position 213 x2 =2 : 0 . 5 : 1 0 ;14 g=i n l i n e ( 'sqrt(x.^2-3)' )15 y=g ( x2 ) ;16 plot ( x2 , y , 'r' )17 %%%fonction h(x) %%%%%%%Methode3%%%%%%%18 subplot ( 1 , 3 , 3 ) % On trace h(x) dans la position 319 x3 =1 : 0 . 1 : 4 ;20 h=log ( x3 )+4;21 plot ( x3 , h , 'g' )

Figure 12 � Tracé des trois fonctions avec subplot

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%Reponse2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 f igure (2 ) % creer une figure 23 x1= �2 . 5 : 0 . 2 : 2 . 5 ;

M.LICHOURI TPINFO4 :Page 45/62

2015/05/16

Page 46: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

4 f=i n l i n e ( '-2*exp(x)+3*x' )5 x2 =2 : 0 . 5 : 1 0 ;6 g=i n l i n e ( 'sqrt(x.^2-3)' )7 x3 =1 : 0 . 1 : 4 ;8 h=i n l i n e ( 'log(x3)+4' ) ;9 plot ( x1 , f ( x1 ) , 'r*' )

10 hold on11 plot ( x2 , g ( x2 ) , 'g-' )12 plot ( x3 , h ( x3 ) , 'm+' )13 t i t l e ( 'Trois fonctions f(x), g(x) et h(x)' )14 xlabel ( 'axes des x' )15 ylabel ( 'axes des y' )16 legend ( 'f(x)' , 'g(x)' , 'h(x)' )17 grid on18 hold o f f

Figure 13 � Tracé des trois fonctions avec hold on

28 Solution Exercice 2 :

1. Écrire un script MATLAB qui étant donnée une valeur réelle x, crée lafonction f dé�nie par :

fpxq ��� �2� x10 x  � �1

3x�1 �1   x   1apx4 � 10q sinon

2. Dessine sa courbe sur r�44s

M.LICHOURI TPINFO4 :Page 46/62

2015/05/16

Page 47: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Listing 9� fonct.m

1 function y=fonc t ( x )2 i f (x<=�1)3 y=�2+x .^10 ;4 else i f (x>1)5 y=3./(x+1) ;6 else

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

9 end

10 end

On appellera la fonction fonct pour la tracer.

1 x=�4:0 .1 :4 ;2 y=fonc t ( x ) ;3 plot (x , y , 'r*' )4 t i t l e ( 'Fonctions fonct(x)' )5 grid on6 xlabel ( 'axes des x' )7 ylabel ( 'axes des y' )8 legend ( 'fonct(x)' )

Figure 14

M.LICHOURI TPINFO4 :Page 47/62

2015/05/16

Page 48: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

29 Solution Exercice 3 :

Soit la fonction : ypxq �apxq � xsinp2πxq.Écrire un script(programme) MATLAB, qui permet de :

1. Tracer le graphe de la fonction ypxq dans l'intervalle r010s avec un pas de0.1 dans une �gure, avec le titre "Fonctions Trigonométriques".

2. Tracer sur la même �gure le graphe de la fonction gpxq � x2 � xcosp2πxqsur le même intervalle en changeant la couleur.

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 x=0 : 0 . 0 1 : 1 0 ;3 y=sqrt ( x )+x .∗ sin (2∗pi∗x ) ;4 f igure (1 )5 plot (x , y , 'r' )6 hold on7 g=x.^2�x .∗ cos (2∗pi∗x ) ;8 plot (x , g , 'g' )9 t i t l e ( 'Fonctions Trigonométriques' )

10 grid on11 xlabel ( 'axes des x' )12 ylabel ( 'axes des y' )13 legend ( 'y(x)' , 'g(x)' )14 hold o f f

Figure 15 � Fonctions Trigonométriques

M.LICHOURI TPINFO4 :Page 48/62

2015/05/16

Page 49: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

30 Solution Exercice 4 :

Soit la matrice M=[ones(5,1) 3.4*eye(5,5) 5*ones(5,2)]. Tracer le graphe dela matrice M et de sa transposée.

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2 M=[ones (5 , 1 ) 3 .4∗eye ( 5 , 5 ) 5∗ ones (5 , 2 ) ]3 M1=M' % transposé de M4 f igure (1 )5 plot (M)6 t i t l e ( 'Matrice M' )7 f igure (2 )8 plot (M1)9 t i t l e ( 'Matrice M1' )

Figure 16 � Matrice M

M.LICHOURI TPINFO4 :Page 49/62

2015/05/16

Page 50: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Figure 17 � Matrice M1

31 Solution Exercice supplémentaire 1 (devoir demaison) :

1. Reprenez l'exercice de l'introduction. Ensuite, calculer et tracez l'accélé-ration et le déplacement dans la même �gure.

1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EXERCICE Supplementaire%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2

3 % Tracer le premier segment situee dans [0 1]4 t1 =0 : 0 . 1 : 1 ; %definir l’intervalle [0 1]5 v1=2∗t1 ; % exprimer la vitesse v1 en fonction de t16 a1=2∗ones (1 , length ( t1 ) ) ; % exprimer l’acceleration a17 x1=t1 .^2 ; % exprimer le deplacement x18

9 % Tracer le premier segment situee dans [1 3]10 t2 =1 : 0 . 1 : 3 ; %definir l’intervalle [1 3]11 v2=2∗ones (1 , length ( t2 ) ) ; % v2 est constante pour tous le

valeurs de t212 a2=0∗ones (1 , length ( t2 ) ) ; % exprimer l’acceleration a213 x2=2∗t2 ; % exprimer le deplacement x214

15 % Tracer le premier segment situee dans [3 5]16 t3 =3 : 0 . 1 : 5 ; %definir l’intervalle [3 5]17 v3=�t3+5; % exprimer la vitesse v3 en fonction de t318 a3=�1∗ones (1 , length ( t3 ) ) ; % exprimer l’acceleration a319 x3=�0.5∗ t3 .^2+5∗ t3 ; % exprimer le deplacement x320

M.LICHOURI TPINFO4 :Page 50/62

2015/05/16

Page 51: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22 f igure (1 ) % le trace de la vitesse23 plot ( t1 , v1 , 'r' ) % tracer v1 en fonction de t1 en rouge24 hold on % ajouter d’autre segment sur la meme figure25 plot ( t2 , v2 , 'r' ) % tracer v2 en fonction de t2 en rouge26 plot ( t3 , v3 , 'r' ) % tracer v3 en fonction de t3 en rouge27 t i t l e ( 'Variations de la vitesse en fonctions du temps' ) %

ajouter un titre au graphe28 xlabel ( 'Temps(s)' ) % ajouter une etiquette a l’axe des x29 ylabel ( 'V(m/s)' ) % ajouter une etiquette a l’axe des y30 legend ( 'V=f(t)' ) % ajouter une legend au trace31 grid on % afficher la grille32 hold o f f % fin d’ajout de trace33 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%34 f igure (2 ) % le trace de l’acceleration35 plot ( t1 , a1 , 'g' ) % tracer a1 en fonction de t1 en vert36 hold on37 plot ( t2 , a2 , 'g' ) % tracer a2 en fonction de t2 en vert38 plot ( t3 , a3 , 'g' ) % tracer a3 en fonction de t3 en vert39 t i t l e ( 'Variations de l"acceleration en fonctions du temps' ) %

ajouter un titre au graphe40 xlabel ( 'Temps(s)' ) % ajouter une etiquette a l’axe des x41 ylabel ( 'A(m/s2)' ) % ajouter une etiquette a l’axe des y42 legend ( 'A=f(t)' ) % ajouter une legend au trace43 grid on % afficher la grille44 hold o f f % fin d’ajout de trace45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%46 f igure (3 ) % le trace du deplacement47 plot ( t1 , x1 , 'm' ) % tracer x1 en fonction de t1 en magenta48 hold on49 plot ( t2 , x2 , 'm' ) % tracer x2 en fonction de t2 en magenta50 plot ( t3 , x3 , 'm' ) % tracer x3 en fonction de t3 en magenta51 t i t l e ( 'Variations du deplacement en fonctions du temps' ) %

ajouter un titre au graphe52 xlabel ( 'Temps(s)' ) % ajouter une etiquette a l’axe des x53 ylabel ( 'X(m)' ) % ajouter une etiquette a l’axe des y54 legend ( 'X=f(t)' ) % ajouter une legend au trace55 grid on % afficher la grille56 hold o f f % fin d’ajout de trace

M.LICHOURI TPINFO4 :Page 51/62

2015/05/16

Page 52: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Figure 18 � Variations de l'accélération en fonction du temps

Figure 19 � Variations du déplacement en fonction du temps

M.LICHOURI TPINFO4 :Page 52/62

2015/05/16

Page 53: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

32 Solution Exercice supplémentaire 2 (devoir demaison) :

Écrire un script MATLAB, qui permet de reproduire (générer) le graphesuivant :

Figure 20 � impulsion électrique

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

2 t1 =0 : 0 . 0 1 : 1 ;3 V1=1∗ones (1 , length ( t1 ) ) ;4 plot ( t1 ,V1 , 'r' )5 hold on6 t2 =1 : 0 . 0 1 : 3 ;7 V2=1+0.5∗ sin (pi∗ t2+pi ) ;8 plot ( t2 ,V2 , 'm' )9 t i t l e ( 'impulsion electrique' )

10 xlabel ( 'axes des temps T(s)' )11 ylabel ( 'Tension electrique V' )12 grid on13 hold o f f

M.LICHOURI TPINFO4 :Page 53/62

2015/05/16

Page 54: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Figure 21 � Tracé d"une impulsion électrique

M.LICHOURI TPINFO4 :Page 54/62

2015/05/16

Page 55: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

TP N�4 : Méthodes Numériques(Exercices+ Solutions)

33 But :

1. Tracé des courbes

2. Manipulation des de polynômes

3. Calcul de la valeur approchée d'une racine d'une fonction réelle d'unevariable réelle par les méthodes de Dichotomie de Newton et de la sécante,v

34 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 ] ;

M.LICHOURI TPINFO4 :Page 55/62

2015/05/16

Page 56: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

5 % Evaluation du polynome P aux valeurs de V6 polyval (P,V) ;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 polynomes

M.LICHOURI TPINFO4 :Page 56/62

2015/05/16

Page 57: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

55 % S et P doivent avoir la meme taille56 % c’est pourquoi on ajouter un zero57 % 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

35 Solution Exerice 2

Soit la fonction fpxq � p5� xqex � 3 dé�nie sur R .1. Écrire 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. Écrire 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 .

M.LICHOURI TPINFO4 :Page 57/62

2015/05/16

Page 58: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

1 % Methode de DICHOTOMIE2 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

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

M.LICHOURI TPINFO4 :Page 58/62

2015/05/16

Page 59: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

10 fplot ( f , [�pi pi ] )11 t i t l e ( 'methode graphique' )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 22 � Resolution graphique

M.LICHOURI TPINFO4 :Page 59/62

2015/05/16

Page 60: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

Université de BlidaFaculté des Sciences

2 année STSemestre 4

Figure 23 � 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 60/62

2015/05/16

Page 61: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

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

37 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 61/62

2015/05/16

Page 62: TP Info 42 année ST Semestre 4 1.2 vecteur colonne Pour créer un vecteur colonne il est possible d'utiliser une des méthodes suivantes : écrire les composants du vecteur entre

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 62/62

2015/05/16