You are on page 1of 10
Feole Supérieure de Technologie ‘Programmation sous MATLAB 2025-2024 DAWM, Semestre 3 Chapitre 1 Introduction au langage MATLAB 1.1. RAPPEL SUR LES LANGAGES DE CALCULS SCIENTIFIQUE Un langage de calcul scientifique est un langage de programmation destiné & étre utilisé par la commuité scienti- fique dans des ealeuls selontifiques complexes. Bt A cette finalit, il est riche en terme fonctions et de bibliothiques faciitant Ia tache d'un programmeur dans un domaine de recherche, qui n'a pas névessairement des eompétences do programmation anvancées. On peut classer les langages de calculs scientifiques on angages compilé ct an- ‘gages interprité, Dans un Inngage de programmation interprété wn programme supplémentaire (Finterpréteur) est aéeessnire, colu-ei va générer Texseutable des instructions et les exécuter au fur et & mesure de Fexééeution du nitable complet, et & chaque fois on a besoin du code source vva traduire (compilé) le programme en son nt sans avoir besoin du code source initiale programme, done on na pas dans ce cas un code e Initiale pour reéxécuter le programme, Par contre un langage con intégralité vors un code exéeutable qui peut tre utilisé ultérieem 1.1.1. Langages compilés On pout citer A titre dexplieation quelques langages comiplés 1, Fortran (FORmula TRANsIntor) est 1 langage compilé developpé par IBM vers 1954, est le phus ancien lan- age de programmation de haut niveau, Cost un langage de programmation desting principalement pour le ealeul seientilique. 2, Langage © 3, Langage C++ dete 1.1.2. Langages interprétés Ly @ aussi une varité de langages interprétés dont 1, Matlab C'est le langage qu'on va étudier le long de ce cours. 2, Le langage R est un langage interprété trés adaptée au calcul scientifique ot & la fouille de données. Il posstde une large collection d’outils statistiques et. graphiques, relayée par une communantée trdg active. R est ala fois un logiciel de statistique et un langage de programmation, R est un logiciel de traitement statistique des données, 3, Scilab (Scientific Laboratory) est un logiciel libre de calcul numérique multi-plateforme fournissant un environne- ment de calcul pour des applications scientifiques. I possile un langage de programmation orienté caleul numérique utilisé pour le traitement du signal, Vanalyse statistique, le traitement d'images, ln ‘cilab est disponible pour Windows, Mae OS X, GNU/Linux, de haut niveau. 1 peut modélisation et la simulation, 1.1.3. Le langage Matlab MATLAB est un environnement de calcul numérique matriciel, il est basé sur le principe de matrice, ‘Tous les types ‘dans Matlab sont a la base des matrices, un scalaire est une matrice de dimension 1x 1, un voetenr est une matrice de 1 xn own x 1. Ce principe est primordial & comprendre pour pouvoir travailler avee Matlab. Matlab erée une {Ecole Supérieure de Technologie Programmation sous MATLAB 2023-2024 DAWM, Semestre 3 om affectation, de eo fait on n'a pas besoin de déelarer les variables avant leur utilisation. MATLAB. nterprété qui s’exécute dans une fenétre dite d'exéeution. Lintérat de Matlab tient sa simplicité d'utilisation : pas de compilation, pas besoin de déclaration des variables utilisées, ot d’autre part, A sa richesso fonctionnelle : arithmétique matricielle et nombreuses fonctions de haut niveau dans divers domaines (analyse numérique, statistique, représentation graphique, ...). On peut utiliser Matlab en deux modes : variable lors de est un langage Mode ligne de commande ‘Lo mode ligne do commande permet d’obtenir des résultats rapides qui ne sont pas sauvogardés, c'ost-a-dire saisir deg commandes dans la fendtre ot los exéeutés au fur et A mesure Mode seript En écrivant dans des fichiers sépanés (*.m) Fenchainement des commandes, ces fichiers s’appellent des scripts et on les construit: & Paide de n’importe quel éditeur de texte. Le mode seript ou le mode programmation, quant A lui permet de développer des applications plus complexes, ainsi que les programmes sont sauvegarder pour faciliter ‘une utilisation ultérienr 4.1.4. Les commandes Matlab Matlab est trés riche en nombre et qualité des commandes qu'il offre, on peut donner & titre dllustration les commuandes suivantes ~ help : permet d’obtenir 'aide de Taide ot donne te liste thématique. = help nom : help de fonction donne In définition de la fonction désignée et des exemples d'utilisation, = lookfor : sujet donne une liste des rubriques de T'aide en ligne en relation avec Te sujet indi = clock : affiche année, le mois, le jour, Mheure, les uninutes et les secondes. ~ Date : Affiche la date. ~ input : permet de lire une valeur partir du clavier (Vinstruction habituelle lire), par exemple Xeinput(‘taper un nombre: *) = disp : permet d’aificher un tableau de valeurs numériques ou de caraetéres, L’autre fagon d'afficher un tableau est de taper son nom. La commande disp se contente d'aflicher le tableau sans érire le nom de la variable, ce qui peut améliorer certaines présentations. On utilise fréquemment la commande disp avec un tablean qui est une chaine de caractéres pour afficher un message. ume liste den éléments uniformément répartis entre a et b: Linspace(a, b, n) ~La fonction Linspace(a, b, n) ¢ est équivalent & ~ clear : permet de détruire tne variable de espace de travail (si aucune 1’est spécifige, tontes les variables seront effacées). ~ who + donne la liste des variables définies dans "espace de travail actuel (essayer whos). ~ elass : rotoume le nom de la classo & laquelle appartiont Ia variable donnée comme argument. ~ ele: offacer le contenu de In fendtre des commandes et affiche uniquement linvi nit, il suffit de tern Note G) wer Vinstruetion par un point-virgule ‘on ne souhaite pas que le résultat soit 6e Feole Supérieure de Technologie Programmation sous MATLAB 2029-2024 DAWM, Semestre 3 L135, Affectation Le symbole (affectation de valeur i une variable est le caractire =. Exemple a= 234) a-1234 >> a = Pabe? a= abe exemple ci-dessus montre bien que dans MATLAB les variables no sont ni déclarées ni typées! 1.1.6, Carnetéres et chaines de caractéres On écrit les caractires et les chaines de caractéres, entre apostrophes : ‘a’, ‘salut’ Il considare les caractires comme des chaines de caractéres de longuenr un et identifie chaines de caractéres et liste de caractres, Exemple Le tableau de caract‘eres ['a’ 7b? *c? 14? *e*] est identique A la chaine de caractéres abcde?) : >> [ar "b? 'e? *d? 7’), Dabede’]; abcde Mieux ‘abcde’; [Yabe? 'de*] est identique & "abode? : >> (abe? *de’) abcde (Cot exemple donne un idée dn role des erochets [ ]. Les erochets sont le symbole de Vopérateur de coneaténation ~ concaténation ‘en ligne’ lorsque le séparateur est un espace ou une virgule ~ coneaténation ‘en colonne" lorseme le séparatenr est 1m point-virgule comme dans les tableanx de nor alors nécessaire que les listes de nombres ou de earnetéres ainsi coneaténées possédent Ie méme nombre Exemple Le tableau do earnctires (?a" *b? 'e? *4? *9°] ost identique A la chainos do caractéres [/abede"] >> Vabe? ; Pabed*] Error using vertcat Dimensions of matrices being concatenated are not consistent Remarque : L’exemple précédent montre que l'on peut écrire sur la méme ligne plusieurs expressions 4 la condition de les séparee par une virgule on un point-vingule. La différence entre ces deux siparatours est que le rsultat de Vévaluation d'une expression suivie d'un point-virgule nest pas affiché On peut également définie sans difficulté des matrices de caractiéres, Il est possible de convertir un réel en une chaine de caractires qui représente son éeriture en base 10. Ainsi = ~ nun2str (1.32) renvoie la chaine de caractines 11.32 ~ str2num est opération inverse de la commande num2str (1-32) cole Supérieure de Technologie Programmation sous MATLAB 2023-2024 DAWM, Semestre 5, (_Gommande—] ‘Aifichage I Exemple ] format short ‘eeimal & 6 chillres S159 Format short @ Scientifique & 5 chiffres 3.160401 format long decimal 8 16 chiffes BALS9265358079 Format long e ‘Scientifique & 16 chiffres B.141502653580700+01 format hex hexadecimal 103607561607 format bank virgule fixe & deux décimales 31.42 format rat fmetionnaire 3550/118 format + | uiilise lew ymboles + pour les nombres posits + et - pour les nombres négatifs et_nuls 1.1.8, Quelques commandes a matriee vide ‘ans | domitre évaluntion effectnée par Matlab eputine | temps CPU depuis le lancoment de Matlab eps Dréeision des flottants Ton j nombre imaginaire complexe 1 Tat nombre infini posit +50 Nail ‘pas un nombre (not a muiaber {) Bi valeur dew Fealmax | — plus grand nombre rel lottant posit realmin | plus petit nombre réel fottant positif BE valeur dew 1.1.9, Quelques fonetions On a plus des commandes, Matlab comme tout langage de calcul scientifique et riche avec son bibliothéques de fonction mathématiques, ees fonctions sont offertes pour implémenté des ealenls puissant avec wn minhmn de code alors il n’est pas demandé A un tout utilisateur de Matlab de maitraiser l'implémentaion algorithméque de toutes les fonction mathématique (4 savoir, sinus, cosinus, expenentalle, ..) 1. exp(x) : exponentielle de x, par exemple >> exp(x) ans = 148.4132 2. Log(«) : logarithme néperien de x, par exemple : >> Log(1) ans = 0 3, 1og10(x) : logarithme en base 10 de x, par exemple >> 1ogio¢2) ane = 0.3010 4. x7: x A Ta puissance n. 5, sqrt (x) : racine carrée de a. Ecole Supérieure de Technologie DAWM, Semestre 3 6, abs(x) : valour absolue de a. <0, ct Osa 7. signs) : 1 sie >0 et - 8. sin(x) : sinus de x 9, cos(x) ; cosinus de 2 10. tanGo : tangente dex 11. round (x) : Affiche Parrondi d'un nombre 2, 12, floor (x) : Arrondissement vers -1, par exemple : >> floor(5.2) ans = 5 >> floor(5.7) ans = 5 >> fleor(-5.7) ans = -6 13. coil (x) : fait exnctemont Vinverse de floor(x), par exemple >> coil(-5.7) ans = -5 >> ceil (-5.2) ans = -B >> ceil .2) ans = 6 1. factor(n) = décomp ition en facteurs premiers de n, M(1,3) ul 2 18 19 28.29 38 39 M= 68 69 78 79 88 89 98 99 Programmation sous MATLAB 2023-2024 40° | $— M3, :) Ecole Supérieure de Technologie DAWM, Semestre 3 Programmation sous MATLAB 2023-2024 Fonction Résultat Fonction Résultat ‘abs | valeur absolue ou module (nb. complexes) | sign Signe (nb. nels) angle ‘argument (nb. complexes) sqrt racine carrée Teal partic réelle (nb. complexes) Tog Togarithme népérien imag partie imaginaire (nb. complexes) Togio Togarithme base 10 con} ‘complexe eonjugué ged(a,b) | plus grand commun divisenr dea et b cos ‘oninus (angle en radian) ‘ound | arrondit un réel vers Fentier le plus proche sin_| sinus (angle en radian) fix arzondit um nombre réel vers 0 ‘tan ‘fangente (angle en radian) Floor _| arrondir par défaut, ic., floor G)= Ete) ‘acos are eosinns (résultat on radian) ceil ‘arrondir par exes atan ‘re tangente (résultat en radian) Tea(a,b) | phis petit commun multiple de a et b ganan | fonction gomma T(z) = ft e-tetdt | moda,b) a modulo ext fonction erreur erf(z) = 25 ferfdt | rena,b) reste de la division de @ par b 1.1.10. Opérateurs logiques == [Topérateur different | & [| opérateur et” [3= [__ supérieur ow égal = | Vopératenr NON’ [\\ | L’opératenr “ow | <= | infrieur on &gal = [_Topérateur égal” [> | supérieur strictement & | < | inlérieur strictement & 14.11. Opérations matricielles et vectorielles aU 1 ‘Supprimer lignes a & i de A zee colonnes j1& 72 de A AG1:52,2) =O ‘Supprimer colonnes 71 A j2 de A AG) indexation Tingaire de A, (concatGnation des veoteurs colonnes de AY aG) Opération Relat ] aoe nombres dev & m par pas de T | Lipa nombres dew & ma par pas de p ] Tength Gx) Tongueur du vecteur ] x@) Fone coordonnée de x | (i142) ‘coordonnées 11 A #2 de & | x41:42)=0) ‘Supprimer les coordonnées de fA de # | Coy] ‘cocaténer les vectours # et y | xy? ‘produit scalaire des vecteurs lignes @ et y | xy produit sealaire des vecteurs colonnes « €t | size(A) nombre de lignes et de colounes de A | 4G) coefficient d'ordee i,j de A ] HG1:42, 2) Tignes if A 2 de A | | | | | J cofficiont ordre 7 dans l'indéxation linéaire Ecole Supérieure de Technologie Programmation sous MATLAB 2029-2024 DAWM, Semestre 3 (Opérateur RBuliat Conditions| A+B Tableau dont les Gliments sont définis par ay; +54; | Act Bmbme format A¥c= +A] tableau dont les déments sont définis par aij +e a-8 Tableau dont les déments sont défnis par aj; —bij | A et Bantme Tormat aoe ‘tableau dont les éléments sont définis par aij —c cA tableau dont Tes léments sont. définis par ¢~ a, ae Tableau résultant du produit matriciel de A par B_| nb col. A= nb lign. B Lave produit matriciel de A par B élément par élément | Act B méme format Ke =e#A | tableau dont los éléments sont définis par ay, +6 A maizice carrée, Wanez puissance nit de A inversible sin <0 Acane® puissance n™"™ de A élément par élément AB Tableau dont les Kéments ont pour valeur (a,,)°7 | Aet Bméme format wv transposeonjuguée du tablean A, aij = @i rg transposeonjuguée du fablean A, ai; = aj si tous los éléments de A sont réels, A? = A BK Tableau X solution de Téquation matricielle XA = B [ab col, A= ab col, B siA est inversible X = BA! BA Tableau X solution de équation matricielle AX = B | nb Tign, A = nb ign. B siA ost inversible X = AB 1B Tableau dont les éléments ont pour valeur ay/by | At B méme format AB tableau dont les éléments ont pour valeur 6,,/a, | A et B méme format AL\BB./A We {ableau dont Tes éléments ont pour valeur ae On peut aussi modifer un seul élément du tableau en utilisant eette notation +) =7 v3) =5 1.1.12. Quelques matrices particuliéres [_ Fonetion Résultat ones (n,m) Thatrive de taille» x 7 dont tous los Glément valent T eye(n,m) imatrieo de taille n x m avoe des 1 sur Ta diagonal prineipale ‘zeros (n,m) ‘matrice de taille r x m dont tous les élément valent 0 ‘vander (V) ‘matrice de Vandermonde d’ordre n = length(V) engendrée par V Bib G@) tmatrice de Hilbert ordre n= hig = 1/+5— 1) GavhiTb(a) inverse de la matriee de Hilbert ordre 7 ‘magic(n) ‘matrice earnée magique Cordee nm pascal (n) imatrice de Pascal Wordre ne Tand(a) | inatrice aléatoire conde Tordre n dont les éléments entre 0 et 1 selon Ta lol uniforme Fandn(a) | matrice aléatoire carrée Wordve 7 dont Tes éléments entre 0 et 1 selon Ia lot ganssienne ‘wilkinson (a) rmatrice de Wilkinson Wordre Toeplitz (V) inatrice de Toeplitz symétrique dont la premiére ligne est Ie vecteur V Ecole Supérieure de Technologie Programmation sous MATLAB 2023-2024 DAWM, Semestre 3 1.1.18. Fonetions matricielles et veertorielles Fonction Résultat dec() ‘Uétenninant de la matrices A iov®) Tinverse de la matrice A expt) Texpomentiel de Ta matrice A éinent par eliment expa(A) Texpomnentiel de Ta matries A Logn(A) ‘de Ta matriee A expn(A) ‘de Ta matriee A ‘evd(A) inguliéres «ume matrice FLipud a) Retournement vertical de A fLiplr (A) Retournement horizontal de A ‘rot0(A) Rotation de A de 90 degrés Feshape(V n,m) Remise en forme du veetcur V-awee 2 lignes et 3 colonnes Find(A) Tevoie les indices des composantes du tableau A différentes de O Find (GCA)? ovoie les indiees des eomposintes du tablean A vérifiant Ia condition CTA) vank(A) rang de la matrice A “trace (A) trace de la matrieo A poly(A) polynome caractéristique de A Deeig (A) Teivole Te vecteur colonne des valeurs propres de A TP, Dl=eig(A) ingonalise A = P+ D P~ avec D dingonale, renvoie les valeurs propres ct les veeteurs propres dle A (eigenvalues, eigenvectors) mul (A) renvoie un bon du noyau “null space" en anglais tril(A) partie triangulaire inférioure (lowor) do A tri (a, idem sans la diagonale, ef help tri “oriw(A) partie triangulaire supérieure (uper) de A tril, +D. ‘dem sans Ta diagonale, ef help tein diag(A) renvoie la diagonale de A diag V) Thatrice diagonale dont Ta. diagonale est Ie veeteur V bikdiag(eye,3).0) Tmatrice block diagonale de blocks eye(3,3) et A nore (V, p) nonne du yecteur V norm(V,p) = Sf [es]? norm(V) Tnorme euclidienne du vecteur V; nora (W)=norm(V, 2) noratV, inf) normne infinie du veeteur Vs norm(V,p) = max [eu] norm(A) noorme de la matrice A norm(K, 'fro?) nomne de Frobenius de Ia matrice A, ie, norw(()) ‘sun(V) ‘Somme des éléments du vecteur V ‘sun(A) Somme des colomnes de la matriee A sunth,2) Somine les Glémnents de la matrice A selon Ia dimension 2 sun sum (AY) Somme totale des éléments de Ia matrice A ‘eunsun (V) Somme cumulative des éléments du veeteur V ‘eunsun (A) ‘Somme cumulative des éléments de la matrice A prod(v) produit des éléments du vecteur V prod(A) produit des colonnes de Ia matrice A prod(A,2) ‘produit les éléments de In matrice A selon ta dimension 2 prod(prod(A)) produit totale des dléments de Ta matrice A cumpred(¥) produit cumulative dos éléments du veetour 7 ccumpred(A) produit cumulative des éléments de la matrice A ‘max(A) Tenvoie le vecteur ligne = max sur chaque col. de A max (rax(A)) ‘maxim des énents de A in (&) Tenvoie Te veeteur ligne = min sur chaque col. de A min(ein(®)) imum des éhiients de A Tange) Tenvoie Pétendue de V, ie, max(a) —min@A) Eeole Supéricure de DAWM, Semestre 3 echnologie Programmation sous MATLAB 2025-2024 Travaux pratiques : TPL Exereice 1, On note w, v et w les vecters suivants = (1y..,1,2)%, 0 = (10,— = (5-147 1. Caleuler &u, [| la, 2u—v-+ Su, || 2u— 0+ Bu fay || w— 40 [oe 2. Dé etm. niner angle formé par les vecteu Exercice 2. On note A, B et C’les matrices suivantes 13 5 3 -10 0 1 0 Calculer les matrices AB, BA et ABP. Caleuler les matrices D = Jy — BBP. Caleuler les déterminants des matrices A, B, C, D et B= AAT. Caleuler les valeurs propres de la mattice E. Déterminer les vectenrs propres et les valeurs propres de In matrice A. Exereice 3. On pose Que font les instructions suivantes + BHA: ALB; AB: cos(A) exp(B) ; well, 2, 4 71s AGD=ACw) + 0.015 B(v)=abs(B(v)); Exercice 4. On pose = " — 0,75 0 0.25 0,37 0 ~0.125 A=( 0 1 0 Jeas={ 0 05 0 025 0 075 0125 0 0375 Caleuler A®, pour n= 1,2,3,.. « Que va Timn-+4a0 Af? 10 Ecole Supérieure de Technologie Programmation sous MATLAB 2023-2024 DAWM, Semestre 3 Exercice 5. 1. Construire un vectour permettant d’avoir des nombres de 8 A 38 par pas de 3. went 10. 3. Construire un vectour qui contient 100 valeurs comprises entre 0 et mais doit étre espacé régulidrement. 2. Construt tun vecteur qui commence par 20, puis aller en arriére par pas 1 aT 4. Construire un vectenr qui nous donnera 15 nombres générés aléatoirement entre 1 et 2. Exercice 6. 1. Définir la matrice F suivante 165 ard 921 362 2. Extraize l'élément Fy,s. 3. Qu’obtient-on avec les instructions F(1,:), F(:,1), F(1, (2: 4]). 16 4. Quelle instruction permet extra la matrice ( 5 7 ) de la maticeF 92 5. Aol ds fonctions eno to, consti ln mation G & Ma(R) ane par Gy = { S'S on A ot B sont les matrices définies dans Vexercive précédent. Exercice 7. On reprend les matrice A et B dé ies précédemment. 1. Que vaut AYB? 247 1 Définir los voetours x1 = { 0 } ot 22 = (1:23). 0 Que vaut AP? x12x2" 2 Que vaut AB? Aexd? Asx2? x12? x2¥x1? Justifior! - Quelle est In différence entre AXB et A.#B? Que fait Matlab avec los expressions x1 #2 ot sel #22? ? Quelle est la différence entre AW2 et A."2? - Que vaut sin(A) ? Quelle est la différeneo entre exp(A) ot expm(A) ? 10. Résoudre le systeme linéaire Ax = xt i

You might also like