- MATLAB
-
MATLAB Développeur MathWorks Dernière version R2011b (septembre 2011) [+/-] Environnements Linux, Unix, Mac OS, Windows Type Calcul numérique Licence Propriétaire Site web www.mathworks.fr modifier MATLAB (« matrix laboratory ») est un langage de programmation de quatrième génération et un environnement de développement ; il est utilisé à des fins de calcul numérique. Développé par la société The MathWorks, MATLAB permet la manipulations de matrice, afficher des courbes et des données, mettre en œuvre des algorithmes, créer des interfaces utilisateurs, et peut s’interfacer avec d’autres langages comme le C, C++, Java, et Fortran. Les utilisateurs de MATLAB (environ un million en 2004[1]) sont de milieux très différents comme l’ingénierie, les sciences et l’économie dans un contexte aussi bien industriel que pour la recherche. Matlab peut s’utiliser seul ou bien avec des toolbox (« boite à outils) ».
Sommaire
Histoire
Le langage MATLAB a été conçu par Cleve Moler à la fin des années 1970 à partir des bibliothèques Fortran, LINPACK et EISPACK. Alors professeur de mathématiques à l'Université du Nouveau-Mexique, il souhaitait permettre à ses étudiants de pouvoir utiliser ces deux bibliothèques sans connaitre le Fortran. Cleve Moler l'utilisa ensuite pour des cours donnés à l'université Stanford où il reçut un accueil mitigé de la part des étudiants en mathématiques (habitués au Fortran). Par contre, les étudiants en technologie, en particulier en traitement du signal, furent beaucoup plus intéressés. Un ingénieur, Jack Little en comprend rapidement les capacités et entreprend avec un collègue, Steve Bangert, de le recoder en langage C. Jack Little, Cleve Moler et Steve Bangert créèrent la société The MathWorks en 1984 afin de commercialiser la version 1.0 de MATLAB[2].
MATLAB a ensuite évolué, en intégrant par exemple la bibliothèque LAPACK en 2000[3], en se dotant de nombreuses boites à outils (Toolbox) et en incluant les possibilités données par d'autres langages de programmation comme C++ ou Java.
Syntaxe
Le logiciel MATLAB est construit autour du langage MATLAB. Une interface en ligne de commande, qui est un des éléments du bureau MATALB permet d’exécuter des commandes simples. Des séquences de commandes peuvent être sauvegardés dans un fichier texte, typiquement avec l’éditeur MATLAB, sous la forme d’un « script » ou encapsulé dans une fonction[4]
Variables
Les variables sont définies avec l’opérateur d’affectation
=
. MATLAB est un langage à typage faible (dans le sens où les conversions de type sont implicites)[5]. Les variables ne sont pas déclarées avec leur type, sauf pour les objets symboliques,[6]. Par exemple :>> x = 17 x = 17 >> x = 'hat' x = hat
Vectors/matrices
Comme son nom l’indique, l’intérêt de MATLAB est de pouvoir manipuler facilement des tableaux à une dimension (« vecteur » dans le vocabulaire MATLAB) ou deux dimensions (« matrices » ) ou plus. Par défaut, toutes les variables sont des tableaux, MATLAB permet de faire de la programmation en tableaux (en). En pratique, les tableaux sont définis de la manière suivante :
>> A = [3*4, pi/2] A = 12.0000 1.5708 >> B = 3*sin(A) B = -1.6097 3.0000 >> C = 1:2:9 C = 1 3 5 7 9 >> D = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] D = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 >> D(2,3) ans = 11
Lorsqu’on définit la variable nommée
C
(ou affecte une nouvelle valeur à cette variable si celle-ci existe déjà), on créé un tableau contenant les nombres 1, 3, 5, 7 et 9. soit un tableau débutant par 1 (valeur initiale), incrémenté à chaque valeur par 2 (l’incrément), et s’arrête avec la valeur (ou après avoir dépassé) 9 (valeur finale). La variable D est une matrice.L’indexation des tableaux commence à 1[7], ce qui est la convention utilisée pour les matrices en mathématiques mais qui est contraire à la plupart des langages de programmation où l’indexation commence à 0.
La plupart des fonctions MATLAB acceptent les matrices et s’appliquent à chacun de ses éléments. Par exemple,
mod(2*J,n)
multiplient chaque élément de "J" par 2, puis divise chaque élément modulo "n". Par ailleurs s’il est possible d’utiliser des boucles « For » ou « while » ; il est possible de se servir des notations vectorielles pour les remplacer. Par exemple, le code suivant,créé un carré magique de dimension n.[J,I] = meshgrid(1:n); A = mod(I+J-(n+3)/2,n); B = mod(I+2*J-2,n); M = n*A + B + 1;
La fonction
meshgrid
permet de créer des matrices carrées contenant 1:n.Outils et modules associés
MATLAB est complété par de multiples boites à outils (liste complète accessible ici). Parmi les plus importantes, on trouve :
- Communications Toolbox
- Control System Toolbox
- Excel Link
- MATLAB Compiler
- Neural Network Toolbox
- Optimization Toolbox
- Parallel Computing toolbox
- Real-Time Workshop®, renommé commercialement SimulinkCoder[8]
- Robust Control Toolbox
- SimMechanics
- SimPowerSystems
- Simulink
- Statistics Toolbox
- System Identification Toolbox
- Virtual Reality Toolbox
Alternatives
- AMESim
- FreeMat
- GAUSS
- IDL
- JMathLib
- Maple
- Mathcad
- Mathematica
- Octave
- O-Matrix (en)
- OxMetrics (en)
- PyIMSL Studio
- R
- SAS/IML
- Scilab
- SciPy
- Sysquake
Références
- (en)Richard Goering, "Matlab edges closer to electronic design automation world," EE Times, 10/04/2004
- (en) Cleve Moler, « The Origins of MATLAB »
- (en) Cleve Moler, « MATLAB Incorporates LAPACK »
- MATLAB technical documentation, Mathworks.com. Consulté le 2010-06-07
- [1] Documentation on MATLAB in relation to other languages
- sym function Documentation for the MATLAB Symbolic Toolbox
- MATLAB Online Documentation, Mathworks.com. Consulté le 2010-06-07
- http://www.mathworks.com/products/simulink-coder Simulink Coder
Bibliographie
- Adrian Biran et Moshe Breiner, MATLAB pour l'ingénieur : Versions 6 et 7, Pearson Education, 2004 (ISBN 2744070254)
- Jean-Thierry Lapresté, Introduction à MATLAB, Ellipses, 2005 (ISBN 2729824014)
Catégories :- Logiciel de calcul numérique
- Logiciel propriétaire
- Logiciel pour Windows
- Logiciel pour Unix
- Logiciel pour Mac OS
Wikimedia Foundation. 2010.