1 Introduction à MATLAB MATrix LABoratory : Ce tour d’horizon fournit une famil
1 Introduction à MATLAB MATrix LABoratory : Ce tour d’horizon fournit une familiarisation rapide mais néanmoins rigoureuse de la programmation MATLAB. En effet, MATLAB n’est pas une application "pousse-bouton", mais un langage de programmation interprété (i.e. dont les instructions sont exécutées à la volée). Ce langage a été conçu pour soulager l’utilisateur scientifique de la plupart des difficultés informatiques inhérentes aux langages à usage universel comme C/C++ ou Java. Sa syntaxe, compacte et élégante, est bien adaptée pour le calcul matriciel. Sa plate-forme permet d’acquérir, de traiter, d’analyser et de visualiser pratiquement n’importe quelles données. Elle est constituée d’un noyau de routines compilées (i.e. traduites, une fois pour toute, en code machine après analyse lexicale, syntaxique et contextuelle de leur code source), particulièrement robustes et optimisées, auquel peuvent se greffer des bibliothèques spécialisées, appelées "toolboxes". À cela s’ajoute un IDE (s.s. un environnement de développement intégré) complet qui permet d’implémenter efficacement de nouveaux algorithmes et de construire des interfaces graphiques conviviales, le tout, directement utilisable sous Linux, MacOS, UNIX et Windows ! Lancement de MATLAB : Matlab version 6 pour Windows est installé sur les PCs des salles de TP. L’application s’ouvre sous la forme d’une fenêtre cadre hébergeant (de haut en bas) une barre de titre, une barre de menu, une barre d’outils, trois fenêtres vue et une barre d’état. La barre de menu et la barre d’outils offrent les commandes habituelles comme la création de document, l’ouverture de fichier, l’édition de texte, le réglage des préférences, et l’accès à l’aide interactive via le menu «Help» et la commande «MATLAB Help». Écrite en HTML, (s.s. Hyper Text Markup Language) cette dernière est classée thématiquement et est largement illustrée. Dans la barre d’outils, le combo (s.s. la liste combinée) intitulé «Current Directory» (s.s. dossier courant) permet d’éditer le chemin du répertoire de travail. Par défaut, MATLAB recherche les programmes et les données de l’utilisateur dans «'C:\MATLAB…\work'». Le bouton «…» ouvre un explorateur qui permet de sélectionner un nouvel emplacement dans l’arborescence du système de fichiers. Pour les TPs, il est judicieux de créer un dossier sur le bureau (i.e. dans le profil personnel et itinérant de l’utilisateur) puis de le rajouter définitivement à la fin de la hiérarchie de recherche de MATLAB, via le menu «File» et la commande «Set Path…». La vue intitulée «Command Window» est la console de MATLAB. Les commandes en ligne doivent êtres saisies à la suite du prompt (i.e. l’invite de commande de la forme «>>»), et sont exécutées par l’interpréteur MATLAB après validation sur la touche entrée. Il est recommandé de suivre la démo qui s’obtient avec la commande « demo », puis de lancer des commandes d’aide en ligne comme « help », « help ops », « help elfun », « help sqrt » et de faire des recherches par mot clé comme « lookfor 'square root' ». Il est possible d’économiser les frappes au clavier grâce à la touche tabulation qui appelle la complétion (s.s. le complément) du lexème en cours de frappe. De même, les touches haut et bas rappèlent, avec ou sans complétion, les commandes passées. 2 La page intitulée «Workspace» contient une table détaillée des variables présente dans l’espace de travail (i.e. stockées en mémoire). La barre d’outils permet de charger, sauvegarder, éditer et effacer les variables sans avoir à taper de commande en ligne. La vue intitulée «Command History» affiche une liste chronologique des commandes passées. Un double-clic suffit pour relancer la commande sélectionnée. Valeurs et variables : La console peut être utilisée comme une simple calculatrice. Les résultats sont automatiquement affectés à la variable « ans » (s.s. un diminutif de "answer"). >> 1 + 1 ans = 2 Une variable est un identificateur (i.e. un nom symbolique, de préférence évocateur et non ambigu) désignant l’allocation mémoire d’une valeur. Cette dernière est évidemment modifiable, contrairement à celle d’une constante (e.g. « pi », « true », « eps », …). Pour conserver un calcul intermédiaire, il suffit donc de déclarer une nouvelle variable et de l’initialiser avec l’expression souhaitée. L’identificateur est une chaîne de caractères alphanumériques (i.e. composés de lettres et de chiffres) non accentués et sensibles à la casse (i.e. aux majuscules et aux minuscules), qui ne doit pas contenir d’espace et dont le premier caractère doit être purement alphabétique. >> MaVariable = ans + 1 MaVariable = 3 >> MaVariable * ans ans = 6 L’attribut principal d’une variable est son type, c’est-à-dire la longueur et la signification du code binaire sérialisé en mémoire physique à partir de l’adresse indiquée par la variable. C’est lui qui détermine les opérations possibles avec la variable. La fonction « whos » montre que MATLAB stocke (quasiment) tout, sous la forme de tableaux multidimensionnels. Par exemple, l’entier naturel 42 est devenu un «double array» de taille 1x1, c’est-à-dire un tableau bidimensionnel de nombre décimaux codés en virgule flottante et en double précision, ne contenant qu’un seul élément. En fait, les tableaux dynamiques (i.e. dont la taille et donc l’occupation mémoire peuvent varier librement) bidimensionnels de décimaux constituent la structure de donnée la plus naturelle pour manipuler des matrices (i.e. le fond de commerce de MATLAB). >> clear % Efface les variables de l'espace de travail. >> Var1 = 42; % Un nombre entier. >> Var2 = 3.14; % Un nombre décimal. >> Var3 = 1 + 2i; % Un nombre complexe. >> Var4 = [1 2; 2 3; 3 4]; % Une matrice entière 3x2. >> Var5 = 'Hello World'; % Une chaîne de caractères. >> whos Name Size Bytes Class Var1 1x1 8 double array Var2 1x1 8 double array Var3 1x1 16 double array (complex) Var4 3x2 48 double array Var5 1x10 20 char array Grand total is 19 elements using 100 bytes 3 MATLAB est un langage faiblement typé, ce qui masque une bonne part de la complexité des types informatiques sous-jacents (e.g. entiers, flottants, caractères, booléens, pointeurs, références, tableaux, structures, unions, ...). C’est ainsi que les opérations de transtypage (s.s. les conversions de type) sont généralement implicites. Toutefois, autant de souplesse sémantique n’est pas forcément une qualité puisque cela autorise le meilleur comme le pire... >> 'ABC' + 0 % Une chaîne de caractères additionnée à un entier. ans = 65 66 67 % Un tableau d'entiers (les codes ASCII de 'ABC'). Variables numériques et symboliques: Un «double» est une valeur décimale codée en virgule flottante et en double précision. Cette chaîne de 64 bits (e.q. 8 bytes ou octets) représente, une fois traduite en base 10, une mantisse signée à 16 chiffres significatifs, et un exposant signé à trois chiffres. Les constantes «realmax», «realmin», «eps», «Inf» et «NaN» sont spécifiques au calcul numérique. >> format long e % Notation scientifique étendue. >> realmax % Plus grande valeur positive représentable. ans = % e.g. "2 * realmax == Inf". 1.797693134862316e+308 >> eps % Plus petite nombre "n" tel que "n + 1 > 1". ans = % e.g. "(eps/2 + 1) == 1". 2.220446049250313e-016 >> 1/0 ans = Inf % Infini. >> 0/0 ans = NaN % Not-a-Number. Les erreurs d’arrondis rendent plus ou moins rapidement le résultat imprécis. Si l’inverse de l’inverse de «49» ne vaut pas exactement«49», c’est parce que l’expression «1/49» n’est qu’une valeur arrondie à environ 16 chiffres significatifs de la vraie constante mathématique (rationnelle). >> VarNum = 1/49 VarNum = 2.040816326530612e-002 >> 49 - 1/VarNum ans = -7.105427357601002e-015 Une solution élégante, consiste à travailler avec la «Symbolic Math Toolbox», qui sait manipuler et résoudre les expressions symboliquement (e.g. résolution d’équation différentielle, …). >> syms x y % Déclaration des variables symboliques x et y. >> y = 1/x; % Initialisation de la variable y. >> x - 1/y ans = 0 Si une expression symbolique doit finalement être évaluée numériquement, le calcul peut être effectué avec une précision arithmétique variable, réglée par défaut à 32 chiffres significatifs. >> format % Notation par défaut. >> vpa('pi', 80) % Approximation à 80 chiffres significatifs de la ans = % constante (irrationnelle et transcendante). 3.1415926535897932384626433832795028841971693993751058209749445923078164062862090 4 Expressions et opérateurs : Les expressions représentent le niveau supérieur dans la structure d’un programme MATLAB. L’interpréteur évalue une expression pour calculer sa valeur. Les expressions les plus simples sont les littéraux, les constantes et les variables. >> 3.14 % Un littéral. ans = 3.1400 >> pi % Une constante. ans = 3.1416 Les expressions plus complexes sont construites à l’aide d’opérateurs. L’expression suivante utilise l’opérateur « * » pour combiner un littéral et une constante au sein d’une expression de multiplication. >> 2 * pi ans = 6.2832 La commande d’aide « help ops » fournit la liste des opérateurs et des caractères spéciaux (i.e. ponctuation, parenthèsage, …). Une page d’aide existe pour décrire la fonction ainsi que le nombre, l’ordre et le type des opérandes de chaque opérateur. C’est ainsi que « help uminus » décrit le "moins monadique" comme un opérateur unaire (i.e. agissant sur un opérande unique) qui change le signe des éléments du tableau qui lui est passé par la uploads/s3/ intro-matlab.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 07, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 1.0346MB