1 2012-2013 Université de Jijel Département :TCST (2eme Année) Module: informat
1 2012-2013 Université de Jijel Département :TCST (2eme Année) Module: informatique TRAVAUX PRATIQUES -MATLAB Préparé par: LAHLOU NADJIB Groupe: 01 Section: A 2 Introduction Matlab est un langage simple et très efficace, optimisé pour le traitement des matrices, d’où son nom. Pour le calcul numérique, Matlab est beaucoup plus concis que les “vieux” langages (C,Pascal, Fortran, Basic). Un exemple: plus besoin de programmer des boucles modifier pour un à un les éléments d’une matrice. On peut traiter la matrice comme une simple variable. Matlab contient également une interface graphique puissante, ainsi qu’une grande variété d’algorithmes Scientifiques. 3 Les Différentes fenêtres de Matlab 1. En utilisant la fenêtre d'espace de travail (Workspace), j'ai obtenu ces résultats : >> a=2+3i a = 2.0000 + 3.0000i >> b=[1 2;3 4] b = 1 2 3 4 >> c='abcd' c = abcd >> d={'Paul' 2;'Claire' 1} d = 'Paul' [2] 'Claire' [1] Donc les classes des objets a,b,c,d sont : a et b: Double array c: char array d: cell array 2. Who / Whos >> lookfor who who - List current variables. whos - List current variables, long form. >> who Your variables are: a ans b c d >> whos Name Size Bytes Class Attributes a 1x1 16 double complex ans 0x0 0 char 4 b 2x2 32 double c 1x4 8 char d 2x2 276 cell Donc: l'instruction who nous donne les objets qui se trouvent dans l'espace de travaille; quant à whos elle vous donne les détails des objets qui sont : name, size, byte, classe …. 3. Après avoir terminé l'exercice on utilise clear pour vider les fenêtres de commandes, d'historique et de travail. Utilisation de l'aide en ligne. 1. On veut trouver comment calculer les différentes normes de vecteurs (norme euclidienne, norme1, norme infini), le produit scalaire de 2 vecteurs, et le produit vectoriel de deux vecteurs. Pour cela il est recommandé de taper lookfor vector dans la fenêtre de commande ; et on obtiendra : >> lookfor vector TargetsComms_VectorApplicationChannel - class representing information about vector application chanels idnlfunVector - Create array of multiple nonlinearity estimator objects. xregvectorinput - function obj = xregvectorinput(FigureHandle , 'Name' , vector , 'Callback') mbctransform - vectorized transform object all - True if all elements of a vector are nonzero. any - True if any element of a vector is a nonzero number or is isvector - True if array is a vector. length - Length of vector. linspace - Linearly spaced vector. logspace - Logarithmically spaced vector. cross - Vector cross product. dot - Vector dot product. eig - Eigenvalues and eigenvectors. norm - Matrix or vector norm. 5 detrend - Remove a linear trend from a vector, usually for FFT processing. On peut aussi faire différentes recherches sur les commandes et fonctions (norm, cross, dot …) e.i : >> help dot DOT Vector dot product. C = DOT(A,B) returns the scalar product of the vectors A and B. A and B must be vectors of the same length. When A and B are both column vectors, DOT(A,B) is the same as A'*B. DOT(A,B), for N-D arrays A and B, returns the scalar product along the first non-singleton dimension of A and B. A and B must have the same size. DOT(A,B,DIM) returns the scalar product of A and B in the dimension DIM. Class support for inputs A,B: float: double, single Soit : >> a=[1 3 5 1]' a =1 1 3 5 b=[1 1 2 2]' b =1 1 2 6 2 >> dot(a,b) ans = 16 >> norm(a) ans = 6 >> norm(a,2) ans = 6 >> norm(a,inf) ans = 5 2. Par défaut, Matlab utilise une précision de 4 chiffres après la virgule pour l'affichage de résultats. L'utilisateur peut changer la précision des nombres en choisissant parmi les formats ci- dessous: (tester sur le nombre PI) >> format short : 4 chiffres après la virgule (par défaut) >> pi ans = 3.1416 >> format long: 14 chiffres après la virgule >> pi ans = 3.141592653589793 >> format short e : 4 chiffres après la virgule+ l'exposant. >> pi ans = 3.1416e+000 >> format short g: 5 chiffres en tout avec ou sans exposant. >> pi ans = 3.1416 >> format long e : 15 chiffres après la virgule + l'exposant. >> pi ans = 3.141592653589793e+000 >> format long g: 15 chiffres au total avec ou sans exposant. 7 >> pi ans = 3.14159265358979 >> format bank: "dollars et sous" format. >> pi ans = 3.14 >> format hex : affiche les bits en format hexadécimal. >> pi ans = 400921fb54442d18 >> format + : seulement les signes sont affichés >> pi ans = + >> 21/5 ans =4.2000 >> 1/2+1/3 ans = 0.8333 construction de vecteurs. La prévision de l'effet des commandes sans utiliser le logiciel: 1. >> a=[1 2 3] a =1 2 3 >> b=[1 2 3] b = 1 2 3 >> c=[1:2:3] c =1 3 >> d=[1 2 3]' d = 1 2 3 8 >> e=[0;i] e =0 0 + 1.0000i >> e' ans = 0 0 - 1.0000i >> e.' ans = 0 0 + 1.0000i 2. >> a=0:10 a =0 1 2 3 4 5 6 7 8 9 10 >> b=0.10 b = 0.1000 >> c=[0:10] c =0 1 2 3 4 5 6 7 8 9 10 >> d=[0;10] d =0 10 >> e=[0,10] e = 0 10 >> f=0.7:3.4 f = 0.7000 1.7000 2.7000 3. >> a=[0:0.1:1] 9 a = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 >> b=[0:0.15:1] b = 0 0.1500 0.3000 0.4500 0.6000 0.7500 0.9000 >> c=[1:-0.15:0] c = 1.0000 0.8500 0.7000 0.5500 0.4000 0.2500 0.1000 >> d=linspace(0,1,10) d = 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 4. Explication de la différence entre les commandes: - [Début: fin] : Dans Matlab , le pas est par défaut égal à 1. - [Début: pas: fin]: Le pas est manuel; Càd on a tout à fait le choix de donner n'importe quelle valeur logique au pas. - linspace(a,b,n): C'est Matlab qui se charge de trouver le pas dans se cas; on n'a qu'à préciser le début, la fin et les nombres entres les éléments de ce vecteur. - Pour partager un intervalle borné en 50 intervalles de même longueur il suffit d'écrire la combinaison suivante: linspace(a,b,50). - linspace(0,1,k) nous donne un vecteur espacé linéairement ayant K espace. - Si le début et supérieur à la fin, il faudra préciser le pas négatif sinon on aura comme réponse empty matrix. Construction de matrices et matrices particulières. Soit: A = 1 2 3 4 5 6 1. B=[A, zeros(2,3); diag([1,2]),eye(2,4)] est ce qu'on appelle une concaténation. >> zeros(2,3) ans = 0 0 0 10 0 0 0 >> c=[A,zeros(2,3)] c = 1 2 3 0 0 0 4 5 6 0 0 0 >> diag([1,2]) ans = 1 0 0 2 >> eye(2,4) ans =1 0 0 0 0 1 0 0 >> B=[A,zeros(2,3);diag([1,2]),eye(2,4)] B = 1 2 3 0 0 0 4 5 6 0 0 0 1 0 1 0 0 0 0 2 0 1 0 0 _La taille de B est: >> size(B) ans = 4 6 2.Le remplacement de la 6ème colonne de B par le vecteur (7,8,9,10): >> B(:,6)=[7 8 9 10] B = 1 2 3 0 0 7 4 5 6 0 0 8 1 0 1 0 0 9 0 2 0 1 0 10 11 L'extraction de la matrice correspondante aux ligne 2 et 4, et aux colonnes 2 et 6: >> B([2,4],[2,6]) ans = 5 8 2 10 3. les réponses aux instructions données : >> A' ans =1 4 2 5 3 6 >> diag(A) ans = 1 5 >> diag(diag(A)) ans = 1 0 0 5 >> triu(A) ans =1 2 3 0 5 6 Triu : veut dire la matrice triangulaire superieur. >> tril(A) ans = 1 0 0 4 5 0 Tril : nous donne la matrice triangulaire inférieur. >> rand(size(A)) ans = 0.8147 0.1270 0.6324 12 0.9058 0.9134 0.0975 Rand: nous donne des nombres aléatoires limités entre 0 et 1. >> eye(size(A)) ans = 1 0 0 0 1 0 4. >> A(1,2)=0 A = 1 0 3 4 5 6 Cette commande fait remplacer le chiffre 2 de la 1ère ligne et la 2ème colonne par le chiffre 0 . >> A(4,2)=5 A = 1 2 3 4 5 6 0 0 0 0 5 0 Cette commande a ajouter deux nouvelles lignes à la matrice A, et a fait remplacer le chiffre 0 de la 4ème ligne de la 2ème colonne par le chiffre 5. >> A(10) ans = 6 Opération sur les matrices. Soient: A =1 2 3 et u = 2 4 5 6 4 6 1. >> B=A+2 13 B =3 4 5 6 7 8 L'addition d'un scalaire à une matrice revient à l'ajout de ce dérnier à tous ces élèments. >> C=A*3 C =3 6 9 12 15 18 uploads/Industriel/ tp-informatique-matlab.pdf
Documents similaires
-
10
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 28, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.4566MB