TP 5 : Programmation MATLAB Remarque IMPORTANTE : dans ce TP, lorsqu’un exemple

TP 5 : Programmation MATLAB Remarque IMPORTANTE : dans ce TP, lorsqu’un exemple ou un exercice est donné, vous êtes invité fortement à le réaliser et à en noter le résultat. Introduction Semblables à celles qui sont utilisées dans de nombreux langages à savoir les structures if ... end, while... end ainsi que la boucle for ... end , elles sont assez faciles à mettre en œuvre. Utilisation de l’éditeur MATLAB Création de m-files Les m-files permettent d’enregistrer les scripts sous forme de fichiers-texte et servent en particulier à définir de nouvelles fonctions (une grande partie des fonctions prédéfinies de MATLAB sont stockées sous forme de m-files dans la toolbox matlab). Les m-files peuvent être crées par n’importe quel éditeur. Dans les versions récentes de MATLAB il existe un petit éditeur intégré que l’on peut appeler à partir du menu file ou à partir de la barre de menu de la fenêtre de commande. Exemple : Dans la fenêtre de l’éditeur tapez les lignes suivantes : % script - essai . m a = .5; b = pi; c = a * b Sauvez le fichier dans le répertoire de travail sous le nom de essai.m. Rappel : la présence d’un point-virgule ; à la fin des deux premières lignes du script a neutralisé l’affichage des valeurs de a et b Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 2 Exécution d’un m-file Pour exécuter le script contenu dans un m-file et Il suffit de taper le nom de ce m file dans la fenêtre de commande suivi de < entrer > >> essai Eléments d’écriture de m-files a. Commentaires : les lignes de commentaires sont précédées du caractère %. b. Entrées - input et menu La fonction input permet la saisie d’une valeur depuis le clavier. Plus précisément : – Pour les valeurs numériques, n = input(’message’) affiche message et affecte à la variable n la valeur numérique entrée au clavier. – Pour les chaînes de caractères, str = input(’message’,’s’) affiche message et affecte à la variable str la valeur entrée au clavier considérée alors comme une chaîne de caractères Exemples : >> n = input(’Entrez la valeur de n ’) >> nom = input(’Entrez votre nom ’,’s’) La fonction menu génère un menu dans lequel l’utilisateur doit choisir une option : result = menu(’titre’, ’opt1’, ’opt2’, . . . , ’optn’) La valeur retournée dans la variable result est égale au numéro de l’option choisie. menu est souvent utilisé en relation avec la structure algorithmique switch-case. Exemple : result = menu(’Traitement’, ’Gauss’, ’Gauss-Jordan’, ’Quitter’) c. Affichages - disp - num2str La fonction num2str(x) où x est un nombre, retourne la valeur littérale de ce nombre. Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 3 Exemple : >> s = [’la valeur de pi est : ’ num2str(pi)] La commande disp(t) où t est une chaîne de caractères ou un tableau, affiche la valeur de cette chaîne de caractère ou de ce tableau sans faire référence au nom de la variable. Cette commande sera souvent utilisée avec num2str pour afficher les valeurs des expressions numériques. Exemple : >> a = [1 2;3 4] ; >> disp(a) >> disp([’ordre de la matrice a : ’ num2str(size(a,1)) ] ) Interaction avec le système d’exploitation MATLAB possède des fonctions et des commandes qui permettent d’obtenir la liste des répertoires accessibles ou matlabpath, la liste des fichiers d’un répertoire donné, les éditer et éventuellement les effacer : – addpath path : ajoute path à la liste matlabpath des répertoires accessibles par MATLAB ; – p = pwd: retourne dans p le chemin d’accès au répertoire de travail actuel ; – cd path : change le répertoire de travail pour celui spécifié par path ; – d = dir ou d = ls: retourne dans d la liste des fichiers du répertoire de travail ; – what : retourne la liste des m-files et des mat-files du répertoire de travail ; – edit test : édite le m-file test.m, identique à Open dans le menu File ; – delete test.m : efface le m-file test.m ; – type test : affiche le m-file test.m dans la fenêtre de commande. Opérateurs de comparaison et opérateurs logiques a) Les opérateurs de comparaison sont: = = : égale à (X= = Y) Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 4 > : Strictement plus grand que (X > Y) < : Strictement plus petit que (X< Y) >= : plus grand ou égale à (X>= Y) <= : plus petit ou égale à (X<= Y) ~= : différent de (X~=Y) b) Les opérateurs logiques sont: & : et (X &Y) │ : ou (or) (X │ Y) -: Non X (-X) Il n’existe pas dans MATLAB de vrai type booléen, que false est représenté par la valeur 0 et que true est représentée par la valeur 1 et par extension par toute valeur non nulle. Exemples : >> 2&3 >> 2&0 >> 2|3 >> ~3 >> 2==3 Instructions de contrôle Boucle for (parcours d'un intervalle) Sa syntaxe est: for indice = borne_inf : pas : borne_sup Séquence d'instructions Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 5 end Exemple faire un programme Matlab qui calcule la somme suivante Solution: n=input('donner la valeur de n'); s=0; for i=3:n s=s+i; end disp('la somme s est: '),s %disp(['la somme s est: ',num2str(s)] L'exécution: >> ex1_matlab donner la valeur de n6 la somme s est: s= 18 Boucle While (tant que) Sa syntaxe est: while expression logique Séquence d'instructions end Exemple: faire un programme sous matlab qui calcule la somme suivante: Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 6 S=1+2/2! +3/3!+... on arrête le calcule quand S>2.5 Solution: clear all s=1;i=1,f=1; while s<=2.5 i=i+1 f=f*i; s=s+i/f end L' execution: >> ex3_matlab i= 1 i= 2 s= 2 i= 3 s= 2.5000 i= 4 s= Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 7 2.6667 L'instruction if (si) 1er cas : Sa syntaxe est: if expression logique Séquence d'instructions end Exemple: Faire un programme sous Matlab qui résout le problème suivant: 1. y = x si x<0 2. y=x2 si x>0 3. y=10 si x=0 Solution clear all x=input('introduire la valeur de x '); if x<0 y=x; end if x>0 y=x^2; end if x==0 y=10; end disp('la valeur de y est: '),y Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 8 L'exécution: >> ex4_matlab introduire la valeur de x 5 la valeur de y est: y= 25 2er cas :Sa syntaxe est: if expression logique Séquence d'instructions else Séquence d'instructions end Exemple: Faire un programme sous Matlab qui résout le problème suivant: 1. y = x si x<0 2. y=x2 si x≥0 Solution clear all x=input('introduire la valeur de x '); if x<0 y=x; else y=x^2; end Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 9 disp('la valeur de y est: '),y L'exécution: >> ex4_matlab introduire la valeur de x 5 la valeur de y est: y= 25 3er cas :Sa syntaxe est: if expression logique Séquence d'instructions elseif expression logique Séquence d'instructions elseif expression logique Séquence d'instructions . . else Séquence d'instructions end Exemple: Faire un programme sous Matlab qui résout le problème suivant: Y=x si x<0 Y=10 si x=0 Y=sqrt(x) si 0<x<20 Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 10 Y=x2 si x =20 Y=x 3 si x>20 Solution clear all x=input('introduire la valeur de x '); if x<0 y=x; elseif x==0 y=10; elseif x==20 y=x^2; elseif x>0 & x<20 y=sqrt(x); else y=x^3; end disp('la valeur de y est: '),y L'exécution: >> ex5_matlab introduire la valeur de x 60 la valeur de y est: y= 216000 L'instruction switch Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 11 Sa syntaxe est: Switch var case cst-1 Séquence d'instructions-1 case cst-2 Séquence d'instructions-2 . . . case cst-N Séquence d'instructions-N otherwise Séquence d'instructions par défaut end var: est une variable numérique ou chaîne de caractère. cst-1, cst-2....cst-N: sont des constantes numérique ou chaîne de caractères. Si l'instruction à exécuter est la même pour un ensemble de cas alors la syntaxe est : Case {cst-1, cst-2,...} Exemples: jj=input('donner le jour 1 :7 '); switch jj case 1 disp('samedi') case 2 disp('dimanche') Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 12 case 3 disp('lundi') case 4 disp('mardi') case 5 disp('mercredi') case 6 disp('jeudi') case 7 disp('vendredi') end % mm=input('donner le mois: '); switch mm case 'Ja' disp('Janvier') case 'F' disp('Février') case 'M' disp('Mars') case 'Av' disp('Avril') otherwise disp('autre') Atelier de Mathématiques Amel CHERIF, Taher BENYOUSSEF Programmation MATLAB 13 end A l'exécution: >> exp_switch donner le jour: 4 mardi donner le mois: 'Av' Avril Instructions d’interruption d’une boucle Il est possible de provoquer une sortie prématurée d'une boucle de contrôle. - L'instruction break permet de sortir d'une boucle for ou d'une boucle while. En cas de boucles imbriquées, on interrompt seulement l'exécution de la boucle intérieure contenant l'instruction break. - L'instruction return provoque un retour au programme appelant (ou au clavier). Les uploads/s3/ tp-seance-7-matlab.pdf

  • 16
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager