Introduction à MATLAB R



Documents pareils
MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Calcul Formel et Numérique, Partie I

3.2. Matlab/Simulink Généralités

Séance 0 : Linux + Octave : le compromis idéal

Cours Informatique Master STEP

TP 1 Introduction à Matlab Février 2009

TP 1. Prise en main du langage Python

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Licence Sciences et Technologies Examen janvier 2010

Cours 7 : Utilisation de modules sous python

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Plan du cours Cours théoriques. 29 septembre 2014

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Calcul Formel et Numérique, Partie I

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Projet Matlab : un logiciel de cryptage

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

TP : Gestion d une image au format PGM

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Algorithmique et Programmation, IMA

Cours d initiation à la programmation en C++ Johann Cuenin

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

STAGE IREM 0- Premiers pas en Python

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

La fonction exponentielle

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Initiation à LabView : Les exemples d applications :

Présentation du langage et premières fonctions

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Représentation des Nombres

Programmation Web. Madalina Croitoru IUT Montpellier

Programmer en JAVA. par Tama

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Bases de programmation. Cours 5. Structurer les données

Définitions. Numéro à préciser. (Durée : )

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

TD3: tableaux avancées, première classe et chaînes

Python - introduction à la programmation et calcul scientifique

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Les structures. Chapitre 3

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

TP 0 : INTRODUCTION À MATLAB

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Bases Java - Eclipse / Netbeans

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Limitations of the Playstation 3 for High Performance Cluster Computing

Continuité et dérivabilité d une fonction

Algorithmique et programmation : les bases (VBA) Corrigé

Chap III : Les tableaux

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

1 Introduction - Qu est-ce que le logiciel R?

de calibration Master 2: Calibration de modèles: présentation et simulation d

Initiation à l algorithmique

1 Recherche en table par balayage

TP, première séquence d exercices.

TP1 : Initiation à l algorithmique (1 séance)

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

Génie Logiciel avec Ada. 4 février 2013

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.


Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Aide - mémoire gnuplot 4.0

Utilisation d objets : String et ArrayList

Corrigé des TD 1 à 5

Rappels sur les suites - Algorithme

Créer le schéma relationnel d une base de données ACCESS

Cours 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP


L informatique en BCPST

Conventions d écriture et outils de mise au point

Plan du cours. Historique du langage Nouveautés de Java 7

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours d Algorithmique et de Langage C v 3.0

Les structures de données. Rajae El Ouazzani

SAP BusinessObjects Web Intelligence (WebI) BI 4

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

C f tracée ci- contre est la représentation graphique d une

Programmes des classes préparatoires aux Grandes Ecoles

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

as Architecture des Systèmes d Information

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Une bibliothèque de templates pour CUDA

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

La mémoire. Un ordinateur. L'octet. Le bit

Gestion des données avec R

Automatique des systèmes linéaires continus

Transcription:

Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d un interprète pour ce langage et d une interface graphique facultative. Son principal intérêt est la vitesse de développement d algorithmes numériques ainsi que la quantité de librairies spécialisées (ou toolboxes) disponibles. 1 Lancement 1.1 Lancer MATLAB R A partir d un terminal, vous pouvez lancer l interface graphique par la commande matlab. Vous pouvez également lancer uniquement la console de l interprète dans le terminal en ajoutant l option -nodesktop. MATLAB R se lancera automatiquement en mode console si vous n avez pas de session graphique ouverte (en cas d accès distant par exemple). 1.2 Accès à l aide L aide de MATLAB R est disponible sous 2 formats : une documentation HTML une aide textuelle dans la console. La documentation HTML est accessible par le menu de l interface graphique ou à partir de la console par la commande doc. Elle est également disponible en ligne à l adresse http://www. mathworks.com/access/helpdesk/help/helpdesk.html. On peut ouvrir directement la page de documentation d une fonction ou d une structure du langage précise mafonction grâce à la commande doc mafonction. L aide textuelle est accessible depuis la console par la commande help. Comme pour la documentation, on peut ouvrir directement la page d aide d une fonction par la commande help mafonction. La plupart des descriptions de fonctions présentes dans la suite sont incomplètes. Vous pourrez vous référer à l aide pour le complément. Ce sujet est dérivé d un sujet rédigé par Boris Mailhé. Merci à lui. 1

2 Syntaxe de base 2.1 Saisie des commandes MATLAB R est un langage interprété : on peut fournir directement des commandes à l interprète et il affiche le résultat du calcul, comme une calculatrice. Les commandes sont exécutées au retour à la ligne. On peut annuler l affichage du résultat en terminant une commande par ;. Dans ce cas, on voit que le calcul est terminé grâce à l affichage du prompt suivant. L exécution d une commande peut être arrêtée à tout moment par Ctrl-c. 2.2 Variables et workspace Il n y a pas de déclaration de variable en MATLAB R : une variable est implicitement déclarée lors de sa première affectation. L opérateur d affectation est le =. L espace de travail (ou workspace) est l ensemble des variables déclarées à un moment. Il est possible de l afficher par les commandes who (simple liste des noms) et whos (liste détaillée). L interface graphique contient également une sous-fenêtre avec le contenu du workspace. On peut sauver tout ou partie du workspace dans un ficher avec la commande save, le recharger avec la commande load et nettoyer le workspace avec la commande clear. Les fichiers de sauvegarde peuvent être enregistrés en binaire ou en ASCII. Ils portent l extension.mat. 3 Tableaux et matrices 3.1 Fonctions d initialisation Il existe plusieurs fonctions pratiques pour obtenir des matrices particulières. zeros fournit une matrice remplie de 0. ones fournit une matrice remplie de 1. eye fournit une matrice identité. rand et randn fournissent des matrices pseudo-aléatoires avec une loi uniforme ou gaussienne sur les coefficients. 4 Tailles La fonction size donne toutes les dimensions d un tableau. Pour une matrice, la première dimension est le nombre de lignes, la deuxième le nombre de colonnes. Un scalaire est une matrice de taille 1 1. Un vecteur colonne est une matrice de taille N 1. Un vecteur ligne est une matrice de taille 1 N. La fonction length donne la première dimension strictement supérieure à 1 d un tableau. Elle est plus pratique à utiliser que size sur les vecteurs. La fonction numel donne la nombre d éléments d un tableau, qui est égal au produit de ses dimensions. 4.1 Concaténation de matrices, création par énumération La plupart des manipulations de matrices sont basées sur deux opérations élémentaires : la concaténation et l extraction de sous-matrices. 2

La concaténation de 2 ou plusieurs matrices se note [mat1... matn]. Elle peut être horizontale en séparant matrices par un espace ou,, ou verticale en les séparant par des ;. Les dimensions des matrices doivent être cohérentes : 2 matrices concaténées horizontalement doivent avoir le même nombre de lignes, 2 matrices concaténées verticalement doivent avoir le même nombre de colonnes. On peut effectuer simultanément des concaténations horizontales et verticales pour construire une matrice par blocs. Dans ce cas, l opérateur de concaténation horizontale est prioritaire : on écrit les lignes les unes après les autres. Si les blocs sont des scalaires, celà permet de définir une matrice en énumérant tous ses éléments. >> a = [1, 2, 3; 4, 5, 6; 7, 8, 9] a = 1 2 3 4 5 6 7 8 9 Il existe également un fonction cat pour concaténer des tableaux de plus de 2 dimensions. 4.2 Extraction de sous-tableau L extraction d un sous-tableau utilise la notation matrice(index1,..., indexn), où index1,..., indexn sont les indices qu on souhaite conserver dans chaque dimension. Attention : en MATLAB R, les indices commencent à 1. L ordre des dimensions est le même que pour la taille : pour une matrice, le premier indice est celui des lignes à conserver, le second celui des colonnes. Si tous les indices sont des scalaires, alors on extrait un unique coefficient du tableau. La même notation peut être utilisée pour affecter des valeurs à un sous-tableau. Dans ce cas, si certains indices dépassent la taille du tableau, il est étendu automatiquement pour atteindre la taille minimum requise et les coefficients ajoutés mais non-initialisés sont mis à 0. C est un moyen plus simple que l énumération de créer une matrice creuse. Néanmoins cela peut nécessiter de nombreuses réallocations et copies du tableau. Si on connaît à l avance la taille du tableau qu on souhaite créer, il vaut mieux commencer par l allouer avec un appel à zeros, puis le remplir. >> a = zeros(3); >> a(1,2) = 1; >> a(2, 1) = 2; >> a(3, 3) = 3 a = 0 1 0 2 0 0 0 0 3 On peut toujours accéder à un tableau comme s il n avait qu une seule dimension. Dans ce cas, les dimensions sont parcourues dans le même ordre que pour la taille : pour une matrice, 3

on incrémente d abord l indice des lignes, puis celui des colonnes quand on est arrivé au bout. Cela revient à parcourir les colonnes les unes après les autres. 4.3 Autres structures de données MATLAB R possède 2 autres structures de données. Les tableaux de cellules (ou cell arrays) sont des tableaux de pointeurs. Ils permettent de créer des tableaux hétérogènes où chaque case peut avoir un type différent. On peut les créer avec la fonction cell et l accès aux cellules se fait par la notation tableau{indices}. Les structures sont des tableaux de structures analogues aux structures C. On peut les créer avec la fonction struct et l accès aux champs se fait par la notation structure(indices).champ. 5 Types 5.1 Types numériques Comme les variables ne sont pas déclarées, MATLAB R doit choisir un type par défaut lors de l initialisation d une variable. C est le type double(flottant à double précision) qui est utilisé, y compris pour des valeurs entières. Il existe d autres types numériques, mais on peut se passer de leur utilisation explicite sauf pour diminuer les besoins en mémoire ou garantir la compatibilité avec une application extérieure. 5.2 Booléens Le type logical est le type de retour des opérateurs booléens. false est codé par 0 et true par n importe quel nombre non-nul. Le fait de disposer d un type séparé des types numériques permet de réaliser des masques booléens sur les tableaux. 6 Fonctions et opérateurs communs Il serait trop long d énumérer ici les fonctions fournies dans MATLAB R. Voici juste les principales. Les dimensions de 2 tableaux doivent être cohérentes pour pouvoir appliquer un opérateurs. 6.1 Opérateurs algébriques +, -, *, /, \, ˆ 6.2 Opérateurs logiques &&,, 6.3 Opérateurs de comparaison ==, =, <, >, >=, <= 4

6.4 Opérateur adjoint A. est la matrice transposée de A et A est sa matrice transconjuguée (matrice conjuguée de A. donc). Ces opérateurs sont notamment très utiles pour calculer des produits scalaires entre vecteurs. 6.5 Produits matriciels et point à point MATLAB R dispose de 2 opérateurs pour les opérations de produit, quotient et puissance : un pour les opérations matricielles et un pour les opérations point à point sur les tableaux. Les opérateurs point à point sont préfixés d un point, par exemple.* pour le produit. 6.6 Opérations scalaire / tableau On peut effectuer une opération matricielle entre un scalaire et un tableau. Celà correspond à effectuer l opération point à point correspondante avec un tableau qui contiendrait le scalaire dans chaque case. 6.7 Quotient gauche L opérateur \ calcule l inverse de la matrice de gauche fois la matrice de droite. L inverse est calculée par pivot de Gauss. Cet opérateur permet de résoudre les systèmes linéaires. 6.8 Opérateur d énumération : a :b calcule le vecteur ligne a, a + 1,..., a + K où K est le plus grand entier inférieur à b a. Cet opérateur est extrêmement utile pour calculer les indices de blocs ou pour les boucles for. a :step :b permet de régler le pas de progression entre deux valeurs successives. 7 Structures de contrôle 7.1 Commentaires Tout ce qui se trouve entre un caractère % et la fin de la ligne est considéré comme un commentaire. 7.2 Séquence Les commandes en séquence doivent être séparées soit par un ; si on souhaite masquer leur affichage, soit par un retour à la ligne. 7.3 if if expression commandes elseif expression 5

commandes end 7.4 Boucle while while expression commandes end 7.5 Boucle for La boucle for de MATLAB R diffère fondamentalement de celle d autres langages de programmation. On lui donne un indice de boucle, un vecteur de valeurs, et la boucle itère en donnant successivement à l indice de boucle toutes les valeurs du vecteur. En particulier, à la sortie de la boucle, l indice vaut la dernière valeur, ce qui n est pas le cas en C par exemple. Une boucle classique sur les N premiers entiers s écrit : for i = 1:N commandes end 7.6 Autres structures Les instructions break et continue fonctionnent de la même manière qu en C. 8 Scripts et fonctions L exécution de commandes MATLAB R n est pas forcément interactive. On peut écrire ses programmes dans des fichiers puis les appeler depuis l interprète. Un programme MATLAB R peut prendre 2 formes : un script ou une fonction. Dans les 2 cas les fichiers portent l extension.m. 8.1 Scripts Un script est une simple séquence de commandes qui est exécutée quand il est appelé par l interprète. Un script ne prend pas de paramètres en ne renvoie pas de résultat, mais il travaille dans le workspace de l interprète et peut modifier des variables. 8.2 Fonctions Une fonction est une séquence de commandes qui accepte des paramètres en entrée et renvoie des résultats. Une fonction travaille dans son propre workspace et ne peut pas modifier celui de l interprète. Une fonction commence a la structure suivante : function [res1... resn] = funcname(param1, paramm) % help 6

... res1 =... ;...... resn =... ; end Le nom des résultats est donné dans l en-tête. Ils sont affectés pendant l exécution. L instruction return n est pas obligatoire, ne prend pas de paramètre et ne sera utilisée que pour provoquer un retour précipité. Les paramètres sont toujours passés par valeur. Ils peuvent être utilisés comme variable locale à la fonction. MATLAB R dispose d un système permettant de n appeler une fonction qu avec ses premiers paramètres et de ne récupérer que les premiers résultats. Attention : seule la première fonction d un fichier.m peut être appelée de l extérieur. Les autres ne peuvent être que des fonctions auxiliaires. Les commentaires écrits juste après l en-tête de la fonction constituent sa page d aide, accessible par la commande help. 8.3 Appels Un script ou une fonction écrit dans un fichier.m s appelle avec le nom du fichier, sans l extension. MATLAB R recherche ses fonctions en priorité dans le répertoire courant, puis dans son path. Les commandes pwd, cd et ls fonctionnent dans la console MATLAB R. L interface graphique affiche également le répertoire courant et une sous-fenêtre avec son contenu. 9 Fonctions de tracé de courbes L interface graphique permet également de tracer des graphes et de les exporter dans des images. De nombreux rendus possibles. Voici les principaux d entre eux. Le rendu peut ensuite être ajusté dans l interface graphique ou en ligne de commande. 9.1 plot La fonction plot prend des vecteurs en paramètres et trace les courbes correspondantes. 9.2 image La fonction image prend une matrice en paramètre et trace l image produite en considérant chaque coefficient comme l intensité d un pixel. La fonction imagesc fait de même en normalisant au préalable la matrice pour utiliser toute l étendue de la colormap de rendu. 7

9.3 surface La fonction surface prend des matrices en paramètres et trace la surface 3D formée par les coefficients en fonction de leur coordonnées. 9.4 hist La fonction hist prend un vecteur en paramètre et trace l histogramme de répartition des points. 8