1 Notes introductives à Matlab P. Ciarlet, E. Lunéville ENSTA/UMA 2 3 Le logici

1 Notes introductives à Matlab P. Ciarlet, E. Lunéville ENSTA/UMA 2 3 Le logiciel Matlab consiste en un langage interprété qui s'exécute dans une fenêtre dite d'exécution. L'intérêt de Matlab tient, d'une part, à sa simplicité d'utilisation : pas de compilation, déclaration implicite des variables utilisées et, d'autre part, à sa richesse fonctionnelle : arithmétique matricielle et nombreuses fonctions de haut niveau dans divers domaines (analyse numérique, statistique, commande optimale, représentation graphique, ...). Il est à noter que toutes les commandes sont en anglais et l'aide en ligne également ! On peut utiliser Matlab, soit en mode en ligne, c'est-à-dire saisir des commandes dans la fenêtre d'exécution au fur et à mesure, soit en mode programmation, en écrivant dans des fichiers séparés (*.m) l'enchaînement des commandes. Ces fichiers s'appellent des scripts et on les construit à l'aide de n'importe quel éditeur de texte (par exemple emacs, …). Le mode en ligne permet d'obtenir des résultats simples qui ne sont pas sauvegardés. Le mode programmation, quant à lui, permet de développer des applications très complexes. 1. Lancement de Matlab Lors de son lancement (via la commande Matlab par exemple) la fenêtre d'exécution s'ouvre. Il est alors possible d'exécuter différents types de commandes dans cette fenêtre, par exemple*, la commande fondamentale d'aide en ligne : help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. matlab\datafun - Data analysis and Fourier transforms. matlab\polyfun - Interpolation and polynomials. matlab\funfun - Function functions and ODE solvers. matlab\sparfun - Sparse matrices. matlab\graph2d - Two dimensional graphs. matlab\graph3d - Three dimensional graphs. matlab\specgraph - Specialized graphs. matlab\graphics - Handle Graphics. matlab\uitools - Graphical user interface tools. matlab\strfun - Character strings. matlab\iofun - File input/output. matlab\timefun - Time and dates. * dans tous les exemples qui suivent, apparaît après la commande le résultat de cette commande 4 matlab\datatypes - Data types and structures. matlab\winfun - Windows Operating System Interface Files (DDE/ActiveX) matlab\demos - Examples and demonstrations. toolbox\tour - MATLAB Tour toolbox\local - Preferences. For more help on directory/topic, type "help topic". La commande suivante permet d'affiner l'aide sur les fonctions mathématiques élémentaires : help elfun Elementary math functions. Trigonometric. sin - Sine. sinh - Hyperbolic sine. asin - Inverse sine. asinh - Inverse hyperbolic sine. cos - Cosine. cosh - Hyperbolic cosine. acos - Inverse cosine. acosh - Inverse hyperbolic cosine. tan - Tangent. tanh - Hyperbolic tangent. atan - Inverse tangent. atan2 - Four quadrant inverse tangent. atanh - Inverse hyperbolic tangent. sec - Secant. sech - Hyperbolic secant. asec - Inverse secant. asech - Inverse hyperbolic secant. csc - Cosecant. csch - Hyperbolic cosecant. acsc - Inverse cosecant. acsch - Inverse hyperbolic cosecant. cot - Cotangent. coth - Hyperbolic cotangent. acot - Inverse cotangent. acoth - Inverse hyperbolic cotangent. Exponential. exp - Exponential. log - Natural logarithm. log10 - Common (base 10) logarithm. log2 - Base 2 logarithm and dissect floating point number. pow2 - Base 2 power and scale floating point number. sqrt - Square root. nextpow2 - Next higher power of 2. Complex. abs - Absolute value. angle - Phase angle. conj - Complex conjugate. imag - Complex imaginary part. real - Complex real part. unwrap - Unwrap phase angle. isreal - True for real array. cplxpair - Sort numbers into complex conjugate pairs. Rounding and remainder. fix - Round towards zero. floor - Round towards minus infinity. ceil - Round towards plus infinity. round - Round towards nearest integer. 5 mod - Modulus (signed remainder after division). rem - Remainder after division. sign - Signum. permettant ainsi de voir toutes les fonctions mathématiques élémentaires dont dispose Matlab. On peut maintenant préciser la recherche si l'on veut avoir une idée plus précise de la fonction log par exemple : help log LOG Natural logarithm. LOG(X) is the natural logarithm of the elements of X. Complex results are produced if X is not positive. See also LOG2, LOG10, EXP, LOGM. Remarque : les commandes Matlab doivent toujours être tapées en minuscules même si dans l'aide en ligne elles apparaissent en majuscules. ♦ Quelques commandes d'environnement importantes Pour que Matlab fonctionne correctement et en particulier retrouve vos scripts *.m, Matlab met à votre disposition plusieurs commandes d'environnement d'inspiration Unix. path : permet de savoir quels sont les dossiers auxquels Matlab a accès et de spécifier de nouveaux dossiers Unix où se trouvent vos ressources personnelles. Par ailleurs, pour référencer un nouveau dossier, taper : addpath ~/mesfichiersmatlab indiquant à Matlab qu'il peut trouver des scripts dans le dossier ~/mesfichiersmatlab durant la session en cours. cd : positionne Matlab dans un dossier Unix, par exemple : cd ~/mesfichiersmatlab prenant en priorité les scripts se trouvant dans ce dossier. dir ou ls : permet de faire la liste des objets du dossier courant, par exemple la commande suivante : ls . coursIntro.bak explicite.m.old transport.m .. coursIntro.tex oldexplicite.m u0.m burgers.m explicite.m predicteur.m En outre, voici les deux principales commandes permettant d'effacer les objets générés par Matlab (variables, figures, …) : clear all : efface tous les objets en mémoire clf : détruit les figures Pour les autres commandes d'environnement faire help general. 6 ♦ Exécuter un script Si monscript.m est un script Matlab que vous avez écrit et qui est accessible (par path ou cd) , il suffira de saisir dans la fenêtre d'exécution la commande : monscript Par défaut, Matlab inscrit les résultats à la suite de la commande. Si l'on ne désire pas voir le résultat d'une commande il suffit de terminer cette commande par ; : monscript; Attention à ne pas donner à vos scripts le nom d'une commande prédéfinie ! 2. Les variables sous Matlab Matlab gère les nombres entiers, réels, complexes, les chaînes de caractères ainsi que les tableaux de nombres de façon transparente. Il n'est pas utile de déclarer le type de la variable que l'on manipule, y compris les tableaux. Par ailleurs, toutes les variables utilisées restent présentes en mémoire et peuvent être rappelées. Ainsi les instructions suivantes, déclarent les variables lors de leur affectation : a=1 a = 1 b=1.01 b = 1.0100 X=1.0e+05 X = 100000 nom=' mon nom' nom = mon nom c=1+2i c = 1.0000 + 2.0000i la constante i est le nombre imaginaire prédéclaré, de même que certaines constantes (e,pi,...). 7 On déclare un vecteur colonne de la façon suivante : u=[1;3;-1] u = 1 3 -1 un vecteur ligne de la façon suivante : v=[1,3,-1] v = 1 3 -1 et une matrice d'ordre 3x2 : A=[1,2 ; -1, 3; 4, 0] A = 1 2 -1 3 4 0 la ',' sert à séparer les éléments d'une ligne et ';' les éléments colonnes. En fait, on peut remplacer la ',' par un espace pour améliorer la lisibilité : vb=[1 3 -1] vb = 1 3 -1 Pour spécifier un élément d'un vecteur, d'une matrice, on utilise la syntaxe suivante : u(2) ans = 3 v(3) ans = -1 A(3,2) ans = 0 L'utilisation d'indice hors limite provoque une erreur, comme le montre cet exemple : A(3,3) ??? Index exceeds matrix dimensions. On peut se servir de raccourcis bien utiles et plus efficaces pour remplir des vecteurs ou des tableaux. En voici quelques-uns : 8 u1=1:10 (incrémentation automatique de 1 à 10 avec pas de 1) u1 = 1 2 3 4 5 6 7 8 9 10 v1=1:2:10 (incrémentation automatique de 1 à 10 avec pas de 2) v1 = 1 3 5 7 9 Id3=eye(3) (matrice identité d'ordre 3) Id3 = 1 0 0 0 1 0 0 0 1 Un=ones(2) (matrice constituée de 1 d'ordre 2) Un = 1 1 1 1 Z=zeros(2,3) (matrice nulle d'ordre 2x3) Z = 0 0 0 0 0 0 De même, il existe des syntaxes particulières permettant d'extraire des lignes ou des colonnes de matrices : A1=[11 12 13;21 22 23;31 32 33] A1 = 11 12 13 21 22 23 31 32 33 A1(:,1) (colonne 1 de la matrice A1) ans = 11 21 31 A1(2,:) (ligne 2 de la matrice A1) ans = 21 22 23 Les erreurs de dimensions des objets matriciels sont une des principales difficultés que rencontre le débutant. Pour vérifier ces tailles, on pourra utiliser la commande size : size(A1) 9 ans = 3 3 size(u) ans = 3 1 3. Opérations élémentaires sous Matlab Les opérations sur les scalaires sont standards : addition +, soustraction -, multiplication *, division /, puissance ^. La racine carrée s'obtient par la function sqrt. On dispose de toutes les fonctions usuelles sur les scalaires : faire help elfun pour de plus amples détails. Attention, les fonctions peuvent renvoyer des complexes même dans des situations anodines : sqrt(-1) ans = 0 + 1.0000i acos(2) (function arc cosinus, ici on a affaire au prolongement dans le plan complexe de cette fonction !) ans = 0 + 1.3170i En ce qui concerne les uploads/Industriel/ notes-matlab-pdf.pdf

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