1 Prise en main de Matlab
2 Programmation
2.1 Syntaxe du langage
2.2 Vecteurs
2.3 Matrices
2.4 Exercices sur la syntaxe de base et les tableaux
3 Fonctions ou macros (function )
3.1 M-files functions
3.2 Inline functions
3.3 F onctions outils
3.4 Exercices sur les fonctions
3.5 Algorithmes preprogrammés
4 Les boucles
5 Tests
6 Lecture et ecriture au clavier et dans des fichiers
7 Representation graphique sous Matlab
7.1 Exemple de representation graphique en dimension deux
7.2 Autres types de representation
8 Exercices d’analyse numerique
8.1 Interpolation
8.2 Resolution approchée des equations différentielles
Introduction
MATLAB est un logiciel commercial de calcul interactif. Il permet de r ealiser des simulations num eriques bas ees sur des algorithmes d’analyse num erique. Il peut donc etre utilis e pour la resolution approchée d’equations differentielles, d’equations aux d eriv ees partielles ou de systémes lineaires, etc… L’objectif de ces s eances Matlab est double : la connaissance de ce logiciel est en soi indispensable parce qu’il est de plus en plus utilisé dans l’industrie et les banques pour d evelopper des prototypes de logiciels et tester de nouveaux algorithmes. Tous les ans entre vingt et trente pour cent des etudiants du DESS utilisent Matlab pendant leur stage.
1 Prise en main de Matlab
Version imprimable du document
Cliquer ici4pour t el echarger la version imprimable de ce document en format Postscript.
Cliquer ici5pour t el echarger la version imprimable de ce document en format PDF.
Fonctionnement general
Ce document est destiné a etre utilis e sur un poste de trav ail LINUX ou UNIX, typiquement les ordinateurs de la salle 1C22 a Chevaleret. Ouvrez simultan ement une session Matlab en tapant tout simplement Matlab dans une fenetre de commandes.
Vous allez voir apparaitre une ou plusieurs nouvelles fenetres sur votre ecran, dont la fenetre de commandes represent ee sur la gure 1. Les principales caract eristiques de cette fenetre sont :
Les caract eres >> en d ebut de ligne constituent le prompt de Matlab. C’est apr es eux que vous pouvez taper des commandes qui seront ex ecutées par le logiciel apr es avoir tap e sur la touche entrée.
Le r esultat de l’execution s’inscrit alors dans la fenetre ou est repr esent e graphiquement dans une nouvelle fenetre sp ecique (avec possibilit e de zoom, d’impression, etc…). Pour rentrer une suite complexe d’instructions (on parle aussi d’un script), on les tape au pr ealable dans un chier en utilisant l’ editeur int egr e. Une fois le script enregistr e, on peut l’ex ecuter en tapant son nom dans la fenetre Matlab (cf. exercice 1).
L’historique des instructions entr ees depuis le d ebut de la session sur la ligne de commande est accessible par pressions successives de la touche « .
2 Programmation
2.1 Syntaxe du langage
Un script Matlab est compos e d’une suite d’instructions, toutes séparées par une virgule (ou de maniere equivalente, un passage a la ligne) ou un point virgule. La difference entre ces deux types de séparation est liée a l’achage ou non du résultat a l’ ecran (seulement effectué dans le premier cas). Comme tout langage, Matlab poss ede aussi un certain nombre d’instructions syntaxiques (boucles simples, conditionnelles, etc…)
et de commandes el ementaires (lecture, ecriture, etc…) r ecapitul ees dans les tableaux 2-3.
Dés que le calcul a effectuer implique un enchainement de commandes un peu compliqué, il v aut mieux ecrire ces dernieres dans un chier.
2.2 Vecteurs
Pour denir un vecteur la syntaxe est une des suivantes :
>>v=[2;3;7] %vecteur colonne composantes réelles
v=
2.0000
3.0000
7.0000
>>v=[2,-3+i,7] %vecteur ligne composantes complexes, i^2 =-1
v =
2.0000 -3.0000 + 1.0000i 7.0000
>>v’ % vecteur transconjugu e
ans =
2.0000
-3.0000 – 1.0000i
7.0000
>>v.’ % vecteur transpos e
ans =
2.0000
-3.0000 + 1.0000i
7.0000
>>w=[-3;-3-i;2] % vecteur colonne
w =
-3.0000
-3.0000 – 1.0000i
2.0000
>>v+w’ % somme de deux vecteurs
ans =
-1.0000 -6.0000 + 2.0000i 9.0000
>>v*w % produit scalaire euclidien
ans =
18.
>>w’.*v % produit des composantes terme a terme
ans =
-6.0000 8.0000 – 6.0000i 14.0000
2.3 Matrices
Les matrices suivent la meme syntaxe que les vecteurs. Les composantes des lignes sont séparées par des virgules et chaque ligne est séparée de l’autre par un point virgule.
>>% une mani ere de d efinir une matrice 3 x 3:
>>A=[1,2,3;0,0,atan(1);5,9,-1];
>>% une autre syntaxe pour faire la meme chose
>>A=[1 2 3
>> 0 0 atan(1)
>> 5 9 -1]
A =
1. 2. 3.
0. 0. .7853982
5. 9. – 1.
>>% a ne pas confondre avec ce groupe d’instructions
>>A=[1 2 3…
>>0 0 atan(1)…
>>5 9 -1]
2.4 Exercices sur la syntaxe de base et les tableaux
La solution des exercices ne doit pas etre tapée directement dans la fenetre de commandes mais au contraire dans la fenetre de l’ editeur de maniere a etre sauvegard ee dans un script pour pouvoir y revenir ultérieurement (cf. 1). Les mots clefs en italiques dans la marge sont des fonctions Matlab a utiliser pour faire l’exercice…
3 Fonctions ou macros (function)
Nous allons maintenant détailler quelques régles de programmation qui pour la plupart ne devraient pas surprendre outre mesure si on connait deja un autre langage (C ou F ortran).
Les fonctions sont des enchainements de commandes Matlab regroup ees sous un nom de fonction permettant de commander leur ex ecution.
On peut mettre dans une fonction un groupe de commandes destiné a etre ex ecut e plusieurs fois au cours du calcul avec eventuellement des valeurs de parametres differents. La fonction peut aussi etre charg ee de r ealiser un calcul avec un certain algorithme, qui pourra etre remplacé eventuellement par un autre plus rapide ou plus précis, en changeant simplement le nom de la fonction dans le programme appelant. Enn, dés que le programme est un peu long et compliqu e, il est souhaitable de le d ecouper en fonctions, correspondant a des étapes pour ameliorer la lisibilité et la compr ehension de l’algorithme.
Les fonctions peuvent etre d enies inline c’est a dire dans le corps du progamme appelant ou bien dans des chiers externes ind ependants M file.
3.1 M-files functions
Dés que la fonction necessite plusieurs instructions, il vaut mieux la d enir dans un chier a part a l’aide de l’ editeur de texte.
De maniere generale, la syntaxe de d enition d’une fonction externe est function [y_1,…,y_m]=toto(x_1,….,x_n)
.
.
.
o u toto est le nom de la fonction, x
1 ; ::::x
n, les n arguments d’entrée et [y 1; :::ym] les m arguments de sortie.
Les points verticaux symbolisent les instructions eectu ees a l’appel de la fonction.
Le passage des arguments d’entr ee dans les fonctions se fait par valeur. Aussi, m^ eme si elles sont modiées dans la fonction les valeurs des parametres ne sont pas modiées dans le programme appelant.
Si une des v ariables de la proc edure n’est pas d enie a l’int erieur de celle-ci elle doit obligatoirement etre fournie en argument d’entrée
Introduction au logiciel Matlab ( 388 KO) (Cours PDF)