Vous êtes sur la page 1sur 11

Introduction Matlab

MASTER OIV
Emmanuel Marin - F 155
emmanuel.marin@univ-st-etienne.fr
















Anne universitaire 2004 2005

Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 2
Table des matires
1. Introduction ______________________________________________________________ 3
2. Dmarrer et quitter MATLAB _______________________________________________ 3
3. Matrices et MATLAB ______________________________________________________ 4
3-1. Gnration de vecteurs et de sous-matrices ___________________________________________5
3-2. Sous-ensemble dune matrice : ____________________________________________________5
3-3. Grandeur, norme ou dimension et longueur___________________________________________5
4. Variables prdfinies _______________________________________________________ 5
4-1. Liste des variables : _____________________________________________________________6
5. Oprateurs arithmtiques ___________________________________________________ 6
6. Fonctions mathmatiques ___________________________________________________ 6
6-1. Fonctions mathmatiques spciales _________________________________________________7
6-2. Fonctions applicables aux nombres complexes ________________________________________7
6-3. Changements de coordonnes _____________________________________________________7
7. Aide _____________________________________________________________________ 7
8. Sauvegarde et chargement___________________________________________________ 8
9. Commandes systme _______________________________________________________ 9
10. Oprations matricielles ___________________________________________________ 9
11. Oprateurs boolens et logiques ___________________________________________ 10
11-1. Oprateurs relationnels__________________________________________________________10
11-2. Oprateurs logiques ____________________________________________________________10
11-3. Oprateurs Scalaires____________________________________________________________11
12. Matrices particulires ___________________________________________________ 11
13. Chanes de caractres ___________________________________________________ 12
14. Analyse de donnes _____________________________________________________ 13
14-1. Sommes produits et diffrences ___________________________________________________13
14-2. Statistiques ___________________________________________________________________14
15. Systmes linaires et calcul matriciel _______________________________________ 14
15-1. Dterminant, inverse et rang duns systme _________________________________________14
15-2. Rsolution des systmes linaires et factorisation LU__________________________________14
15-3. Valeurs propres et vecteurs propres ________________________________________________14
16. Reprsentations graphiques ______________________________________________ 14
16-1. Graphiques deux dimensions____________________________________________________15
16-2. Autres systmes de coordonnes __________________________________________________15
16-3. Contrle du graphique __________________________________________________________15
16-4. Graphiques trois dimensions ____________________________________________________16
17. Analyse des fonctions____________________________________________________ 16
18. Calcul intgral et E.D.O. _________________________________________________ 17
19. Programmation avec MATLAB___________________________________________ 18
19-1. Instructions conditionnelles ______________________________________________________18
19-2. Boucles ______________________________________________________________________18
20. Interfaces graphiques ___________________________________________________ 19
21. Fichiers .m et exemples __________________________________________________ 19

Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 3
1. Introduction
De nombreux logiciels interactifs de calcul scientifique existent et sont
disponibles sur le march. Parmi ceux-ci, MATLAB
1
est un produit trs
intressant pour dvelopper des calculs numriques. Il intgre un environnement
graphique et ses atouts principaux sont :
La surprenante simplicit dutilisation provenant de la
vectorisation,
La puissance de calcul,
La prcision des rsultats.
MATLAB est un outil de base enrichi par ses nombreuses bibliothques
(toolboxes) qui vitent, dans de nombreux cas, de programmer les techniques
numriques les plus courantes. Cependant pour les dveloppements spcifiques, il
offre les mmes possibilits de programmation structure que les langages
scientifiques courants (C, FORTRAN...). Ecrit en langage C optimis, le code de
MATLAB comporte galement des blocs spcifiques crits en langage assembleur
pour obtenir des performances amliores.
La disponibilit de MATLAB est remarquable puisquil peut tre excut sur
nimporte quel type dordinateur utilis par les scientifiques : PC, Macintosh,
Station de travail, gros ordinateurs sous UNIX, etc ...
Les possibilits de ce logiciel sont considrables et dans une introduction
MATLAB il sagit de prsenter quelques lments caractristiques dans le cadre
dun cours particulier. Une utilisation rgulire et un approfondissement
progressif de la connaissance du logiciel sont ncessaires pour une utilisation
professionnelle de ce produit.
2. Dmarrer et quitter
MATLAB
Dans lenvironnement Windows cliquer deux fois sur
licne du logiciel qui se trouve probablement dans le
dossier MATLAB. Gnralement, comme pour tout
autre logiciel, il suffit d'aller :
1. Menu dmarrer
2. Programmes
3. Matlab
4. Matlab


1
MATLAB est une marque dpose par The MathWorks, Inc.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 4

Utilisez les menus droulants ou les commandes raccourcies courantes pour
quitter : fichier/quitter ou alt F4.
MATLAB peut tre utilis en mode interactif, comme une calculette classique ou
en mode programmation. Dans ce dernier cas un programme (encore appel
script) est crit au moyen dun diteur de texte quelconque ou l'diteur de
Matlab. Il est enregistr dans un fichier dont le nom se termine par lextension
.m.
Dans lenvironnement UNIX, il suffit de taper
matlab pour dmarrer
Une fentre de commande de lenvironnement MATLAB est ouverte et permet
dcrire des commandes pour excuter des calculs ou encore pour lancer des
programmes.
Un message invite des dmonstrations du produit et de laide est disponible en
ligne en tapant help. Des menus permettent de slectionner les renseignements
dsirs.
Pour quitter MATLAB, il suffit de taper la commande : exit

3. Matrices et MATLAB
MATLAB signifie Matrix Laboratory et il traite des donnes sous des forme trs
diverses (scalaires, complexes, vecteurs, matrices) avec bien souvent les mmes
oprateurs et des fonctions dsignes par le mme nom (polymorphisme).
La mme expression c=a*b, par exemple, dpend donc entirement des types de
a et b.
La variable A tant une matrice, nous pouvons la rentrer par :
>> A=[1 2 3 4 5 ; 0 1 2 3 9 ; 2 1 4 5 3 ; 8 7 6 5 4] (entre)
A=
1 2 3 4 5
0 1 2 3 9
2 1 4 5 3
8 7 6 5 4
A est une variable mmorise utilisable par la suite. Elle saffiche lcran.
Lespace spare les lments dune mme ligne. Le ; spare les lignes.
Autre faon dentrer une matrice :
>> B=[1 2 3
4 5 6] ;
Le ; la fin de cette expression vite laffichage de B.
La transpose de B est B
>> C=B
C=
(

=
6 5 4
3 2 1
B
(
(
(
(

=
4 5 6 7 8
3 5 4 1 2
9 3 2 1 0
5 4 3 2 1
A
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 5
1 4
2 5
3 6
3-1. Gnration de vecteurs et de sous-matrices
Les : sont utiliss pour reprsenter une srie de valeurs.

i :k Squence de nombres de i k par pas de 1. i<k, donne [ ] ; i,
k qcq.
i :j :k Squence de valeurs de i k par pas de j. i, j, k qcq.
Dernire valeur <=k

linspace(a, b) Vecteur de 100 valeurs rgulirement espaces sur [a, b].
linspace(a, b, n) Vecteur de n lments. Le pas exact est dduit de n.

logspace(a, b) Vecteur de 50 lments dune chelle logarithmique entre 10
a
et 10
b

logspace(a, b, n) Distribution logarithmique de n valeurs sur [10
a
, 10
b
]
3-2. Sous-ensemble dune matrice :
A(i, j) Elment dont lentre est (i, j) dans la matrice A.
A( :, j) Donne la j
me
colonne de A.
A(i, :) Donne la i
me
ligne de A.
A(i :k, j :l) Sous matrice comprise entre les lignes i k et les colonnes de
j l.
A( :, :) A inchange
A( :) Une seule colonne avec toutes les colonnes de A mises bout
bout.
A(j :k) Donne les lments de j k de A( :) sous forme de vecteur
ligne.
3-3. Grandeur, norme ou dimension et longueur
size(M) donne le nombre de lignes et le nombre de colonnes de M
length(M) donne le plus grand nombre entre m et n
4. Variables prdfinies
ans Valeur de la dernire expression calcule.
eps La trs petite diffrence entre 1 et le nombre qui suit
immdiatement.
realmax (realmin) Le nombre rel le plus grand (le plus petit)
pi 3.141 592 653 589 793
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 6
inf Infini (par exemple 1/0) inf vite larrt de lexcution.
NaN Not a Number par exemple 0/0 ou inf/inf.
i, j 1 , pour les complexes. Attention i ou j comme index de
boucle !
nargin, (nargout) Nombre darguments dune fonction, en entre (en sortie)
4-1. Liste des variables :
who Liste nominative
whos Liste complte par des donnes supplmentaires (taille...)
Effacement des variables :
clear Efface lensemble (voir la sauvegarde des variables)
clear A B Efface A et B seulement.
5. Oprateurs arithmtiques
Les oprateurs sappliquent aux matrices moyennant prcautions et respect des
rgles dusage sur les matrices. Les lments sont de type entier, rel ou
complexe.
Par ordre de priorit des oprations, nous avons :
^ : Puissance .^ : Puissance de chaque lment
* : Multiplication .* : Multiplication de chaque lment
/ : Division droite (ordinaire) ./ : Division droite de chaque lment
\ : Division gauche (left division) .\ : Division gauche de chaque lment
+ : Addition
- : Soustraction


Les parenthses changent lordre des priorits.
Lapostrophe dans M donne la conjugue transpose. Par contre M. donne la
transpose.
6. Fonctions mathmatiques
Appliques un argument scalaire ou complexe, les fonctions mathmatiques
sappliquent galement aux vecteurs et aux matrices en agissant sur chaque
lment indpendamment.
abs(x)
sign(x)
sqrt(x)
pow2(x, f)
|x|
1, -1 ou 0
x
x*2
f

exp(x)
log(x)
log10(x)
log2(x)
e
x

base e
base 10
base 2
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 7
sin(x)
cos(x)
tan(x)

cot(x)
sec(x)
x en rad




1/cos(x)
asin(x)
acos(x)
atan(x)
atan2(x,y)
acot(x)
arc en rad


atan(x/y), [-, +]

A voir avec laide
Fonctions
hyperboliques
sinh(x) ...

Fonctions
hyperboliques
inverses asinh(x) ...
Valeurs arrondies ...
round(x)
fix(x)
floor(x)
ceil(x)
gcd(x, y)
lcm(x, y)
rat(x)
6-1. Fonctions mathmatiques spciales
Ce sont par exemple les fonctions
legendre(n, x) fonctions de Legendre.
besselj(n, x) ou besselk(n, x) fonctions de Bessel J
n
(x) et K
n
(x)
gamma(x) fonctions
n
(x)
erf(x) function erreur
6-2. Fonctions applicables aux nombres complexes
Soit z=x+yi=re
i

real(z) x
imag(z) y
abs(z) r
conj(z) z
angle(z)
Exemple :
z=1+2i ;
x=real(z), y=imag(z), r=abs(z), zc=conj(z), th=angle(z) ;
m=[x y r zc th] ' % Le ' donne un vecteur colonne. Prciser !
6-3. Changements de coordonnes
cartsiennes polaires polaires cartsiennes
[th, r]=cart2pol(x, y) [x, y]=pol2cart(th, r)

cartsiennes sphriques sphriques cartsiennes
[al, th, r]=catr2sph(x, y, z) [x, y, z]=sph2cart(al, th, r)
7. Aide
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 8
Laide en ligne est trs pratique et donne des renseignements clairs.
help Slectionner une rubrique ensuite
help command Efficace pour rectifier
help dir
demo Didacticiels
expo
info
whatsnew Lors des changements de version
8. Sauvegarde et chargement
save Sauvegarde les variables dans le fichier binaire
save fichier " fichier.mat
save fichier.dat v1 v2 ascii Sauvegarde les variables au format ascii

load Lecture d'un fichier binaire
load fichier
load fichier.dat v1 v2
Lecture dun fichier de donnes :
supposons que A.dat contienne la matrice 1 4 5
4 2 9

>> load A.dat, A
A=
1 4 5
4 2 9
Nous remarquons que la variable prend le nom du fichier (sans lextension). On
peut utiliser des fonctions de lecture et dcriture plus labores compatibles
avec C ou FORTRAN, moyennant les vrifications dordre de lecture et dcriture
des matrices en mmoire.
Il existe dautres fonctions pour lire et crire dans un fichier :
fread et fwrite pour lire et crire des fichiers binaires.
wk1read et wk1write pour lire et crire des fichiers au format
wk1 (Lotus et excel).
dlmread et dlmwrite pour lire et crire des fichiers dont le
dlimiteur est quelconque.
Exemple :
Sauvegarde dans un fichier texte de la matrice M. Les valeurs de M sont
spares par le dlimiteur.
dlmwrite ('NomDufichier','Delimiteur',M)
M=dlmread('NomDufichier','Delimiteur')
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 9
9. Commandes systme
Les commandes systme ressemblent en partie celles dUNIX avec des
variantes.
Lancer help commande pour avoir plus dinformations sur la commande utiliser
et pour avoir des prcisions sur les options ventuelles.
what Liste les fichiers MATLAB dans un rpertoire ou un sous
rpertoire
dir Liste des fichiers. Utilisation de chemin (path) et emploi de
caractres gnriques (wilcards)
ls Liste de fichiers. Format et prsentation diffrents
pwd Rpertoire de travail
delete f Supprime le fichier f
cd Dplacement dans larborescence des rpertoires
path Affiche les chemins daccs dcrits pour MATLAB
type f Pour afficher f.m (prciser le suffixe : f. ; f.dat ...)
dbtype f Ajoute le numro de ligne laffichage
dbtype f l1 ln Limite laffichage entre les lignes l1 et ln
lasterr Inscrit nouveau le dernier message derreur
! Insrer la suite de ! une commande du systme
dexploitation
10. Oprations matricielles
Les oprations matricielles lmentaires addition, soustraction portent sur des
matrices de mmes tailles. Il est galement possible dadditionner ou de
soustraire une matrice et un scalaire. Le rsultat est une matrice de mme
dimension dans laquelle chaque lment subit lopration.
La multiplication C=AB est possible si le nombre de colonnes de A est gal au
nombre de lignes de B.
Exemple : Dfinir a et b, effectuer c=a*b et vrifier la taille par size(c).

dot(x, y) Produit scalaire (dot product)
dot(A, B) A et B sont des matrices mn et le rsultat est un vecteur de
longueur n.

cross(x, y) Produit vectoriel des vecteurs x et y.
cross(A, B) Donne une matrice 3n et chaque colonne est le produit
vectoriel des matrices A et B de dimension 3n.

kron(A, B) Produit tensoriel de A et B

Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 10
La division matricielle vite davoir crire la matrice inverse qui sexprime A
-
1
=inv(A)
Deux cas sont considrs ici, lorsque A est une matrice carre :
Ax=b x=A
-1
b x et b sont des matrices colonne x=A\b
xA=b x=bA
-1
x et b sont des matrices ligne x=b/A=(A\b)
11. Oprateurs boolens et logiques
11-1. Oprateurs relationnels
Dans une expression, la plus haute priorit est donne aux oprateurs
arithmtiques. Les oprateurs relationnels viennent ensuite. Utiliser des
parenthses pour adapter cette rgle ou pour amliorer la lisibilit des
expressions.

Le nombre doprateurs de relation est limit 6 :
< <= > >= == gal ~= non gal

Ils permettent de comparer des matrices de mme dimension. Il permettent
galement la comparaison dun scalaire et dune matrice. Chaque lment est
compar avec le scalaire.
Le rsultat est vrai ou faux, ce qui se traduit par des 1 ou des 0 dans la matrice
rsultat.
11-2. Oprateurs logiques
Ces oprateurs ont la priorit est la plus faible. Ils agissent sur des matrices. Il
est galement possible de comparer un scalaire avec une matrice. Un lment nul
correspond false (0), et tous les autres lments positifs ou ngatifs
correspondent tous true (1).

& et
| ou
~ not
xor ou exclusif

Les matrices comparer doivent avoir mme dimension. Les lments de la
matrice rsultante de mme dimension sont des 0 ou des 1.
A & B Deux lments correspondants non nuls donne 1. Cest 0 autrement.
A | B Deux lments correspondants nuls donne 0. Cest 1 dans les autres
cas.
~A Retourne llment 1 seulement si llment de A correspondant est
nul.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 11
xor(A, B) Retourne 1 seulement si un seul des lments est non nul.
11-3. Oprateurs Scalaires
On appelle ainsi les oprations entre lments correspondant de deux matrices.
Ces oprations permettent d'effectuer des calculs sur l'ensemble des lments
de deux tableaux. Les oprations scalaires sont notes par un point suivi du signe
opratoire. Dans le cas de deux matrices, qui doivent avoir les mmes
dimensions, l'opration se fait lment par lment. Si l'un des deux oprateurs
est un scalaire, l'opration scalaire ou matricielle donne le mme rsultat.

Observez le rsultat des quelques exemples d'oprations scalaires et
matricielles suivantes (certaines sont impossibles).
Soient deux vecteurs colonnes x=[1 2 3]' et y=[4 5 6]'

x+y
x.*y
x'*y
x^2
x.^2
x\y
x.\y
x/y
x./y
x.^2
(x*y')^2
12. Matrices particulires
Pour gnrer des matrices particulires il est parfois utile de partir de matrices
composes dlments uniformes : 1 ou 0.

ones(n) Matrice nxn de 1
ones(m, n) Matrice mxn de 1
zeros(n) Matrice nxn de 0
zeros(m, n) Matrice mxn de 0
eye(n) Matrice identit nxn
eye(m, n) Matrice identit mxn

Une matrice de 1 de mme dimension que la matrice M sobtient par :
ones(size(M))

diag(A) Retourne une colonne contenant les lments diagonaux de A.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 12
diag(x) Donne une matrice carre diagonale contenant les lments
du vect. x.

diag(A, k) Retourne une colonne contenant les lments de la k
me

diagonale de A.
diag(x, k) Donne une matrice carre de taille (n+abs(k))x(n+abs(k))
contenant les lments du vecteur x de longueur n sur la k
me

diagonale.

Exemple pour construire la matrice ci-contre :

A=5*eye(5)+diag(ones(1,1),1)+diag(ones(4,1),-1) ;
13. Chanes de caractres
Une chane (string) est dfinie par des apostrophes.
mon_text=**Ceci est une chaine de 40 caracteres**
verif=length(mon_texte)
verif=
40
Ce texte est mmoris sous la forme dun vecteur ligne dans lequel chaque
lment contient le code ASCII du caractre. Laffichage lcran donne le
texte. Chaque lment est accessible sparment. Ainsi, mon_texte(3)=c
supprime la majuscule.

Les chanes de caractres se comportent comme les vecteurs. Pour afficher
mon_text, il suffit dcrire mon_text, comme pour une variable. Mais il est plus
commode dutiliser la fonction daffichage disp, par exemple dans un fichier .m.

disp(A) Affiche le contenu de la matrice A. Si A est une chane, la
chane est crite.
input(str) Affiche le texte de str et attend une valeur
input(str, s) Affiche le texte de str et attend une chaine de caractres
(nom, instruction...)
(
(
(
(
(
(

=
5 1 0 0 0
1 5 1 0 0
0 1 5 1 0
0 0 1 5 1
0 0 0 1 5
A
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 13
Exemples :
n=input(Donner un nombre : )
Donner un nombre : 5.123
A=input(Entrer une matrice ligne par
ligne : ) ;
Entrer une matrice ligne par ligne : [1 :3 ;
4 7 8]
n=
5.1230
A=input(Entrer une matrice : ) ;
Entrer une matrice : rand(4)*hilb(4)
[m n]=input(Donner la dimension de
A : ) ;
Donner la dimension de A : size(A)
login=input(Quel est votre login name ? ,
s) ;
Quel est votre login name ? tartampion

Insrer linstruction pause pour le contrle de lexcution dun fichier .m
pause Suspend lexcution du script qui reprend en frappant une
touche.
pause(n) Suspend lexcution du script pendant n secondes.
14. Analyse de donnes
Dans cette partie, A et B sont des matrices et x est un vecteur.
Maximum et minimum
max(x) Donne le plus grand lment.
Si x est complexe, le rsultat correspond max(abs(x))
max(A) Donne un vecteur ligne avec les maxima de chaque colonne.

[y, p]=max(A) y et p sont deux vecteurs ligne ; y contient les maxima et p
les positions.
max(A, B) Donne une matrice (mme dimension) avec partout llment
maximum
14-1. Sommes produits et diffrences
sum(x) Donne la somme des composantes du vecteur x
sum(A) Vecteur ligne avec la somme des colonnes
cumsum(x) Somme cumulative (le 2
me
lment est la somme des deux
premiers ...)
cumsum(A) Mme principe sur chaque colonne de A
prod(x) calcule le produit des lments de x ; mme variantes que
pour sum
diff(x) Donne un vecteur de longueur rduite dune unit avec [x
2
-x
1

...x
n
-x
n-1
]
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 14
diff(A) Les diffrences sont calcules sur chaque colonne de A.
diff(x, k) Donne la k
ime
diffrence. Si k=2 cest diff(diff(x))
14-2. Statistiques
mean(x) Valeur moyenne arithmtique
median(x) Valeur mdiane
std(x) Ecart type
Voir aussi : mean(A), median(A), std(A)
15. Systmes linaires et calcul matriciel
Les rsolution des quations linaires interviennent dans presque toutes les
applications. Cette rsolution se fait au moyen de loprateur \.
15-1. Dterminant, inverse et rang duns systme
det(A) Donne le dterminant associ la matrice carre A.
rank(A) Nombre de lignes et colonnes indpendantes de A
inv(A) Inverse de A. Si la matrice est singulire, message derreur
trace(A) Somme des lments diagonaux
15-2. Rsolution des systmes linaires et factorisation LU
rref(A) Donne la forme rduite de A selon llimination de Gauss-
Jordan
[L, U]=lu(A) Factorisation LU.

chol(A) Factorisation de Cholesky
15-3. Valeurs propres et vecteurs propres
Les commandes de MATLAB pour le calcul des valeurs propres et des vecteurs
propres sont efficaces. Soit A une matrice carre. Il sagit de trouver les
valeurs propres telles que Ax=x. Au scalaire correspond le vecteur propre x.

eig(A) Retourne un vecteur contenant les valeurs propres de A.
[X, D]=eig(A) D est une matrice diagonale contenant les valeurs propres de
A. X est une matrice dont les colonnes sont le vecteurs
propres de A.
16. Reprsentations graphiques
Les commandes de reprsentations graphiques en deux ou trois dimensions de
MATLAB sont nombreuses et nous allons rpertorier les plus courantes dentre
elles. Pour en savoir plus, dcouvrir les programmes de dmonstration.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 15
16-1. Graphiques deux dimensions
La commande de base est plot. Elle peut comporter des arguments de types
diffrents, pour les coordonnes, complts par des spcifications de styles et
de couleur, rassembles dans une chane de caractres.

plot(x1, y1, ...) Reprsente le vecteur y1 en fonction du vecteur x1.
plot(y) Reprsente le vecteur y en fonction du numro
dordre.
plot(z) Reprsentation (x, y) de la partie imag. en fonction de
la partie relle.
plot(A) Reprsente les colonnes de A en fonction de lindice
de la ligne.
plot(x, A) Reprsente les colonnes de A (mxn) en fonction de x
(longueur m).
plot(x1, y1 , str1, ...) Mmes commandes avec en plus les indications de
style et de couleur. Les arguments x1, y1 ou x1, y1,
str1 sont cumulables : x2, y2 ...
fplot(fkn, lim, str) Tracer une fonction standard ou une fonction
utilisateur (.m). lim=[a b]

Type point Type ligne Couleur
. dot
* star
x lettre x
o lettre o
+ plus
- Trait continu
-- Trait pointill
-. Trait mixte
: Ligne pointe
y yellow c cyan
g green w white
m magenta r red
b blue k black
16-2. Autres systmes de coordonnes
semilog(x, y) plot(log
10
(x), y)
semiloy(x, y) plot(x, log
10
(y))
loglog(x, y) plot(log
10
(x), log
10
(y))
16-3. Contrle du graphique
clf Efface la fentre graphique
clc Efface la fentre de commande
hold on Maintient la fentre graphique - Superposition possible.
hold off Libre la fentre graphique.
hold Permet de passer dun mode lautre.
subplot(m, n, p) Permet de dfinir mxn emplacements de graphiques
numrots p.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 16
Voir les commandes supplmentaires concernant les axes (axis), le quadrillage
(grid), le zoom. Voir galement les commandes pour les textes associs tels que
titre, label, lgende :
title, xlabel, ylabel, text, legend.

Pour animer une reprsentation graphique, utiliser la fonction comet : comet(x,
y).
16-4. Graphiques trois dimensions
La reprsentation graphique en trois dimensions apporte des facilits de
visualisation globales ds que z est fonction de x et y. Par exemple pour les
diagrammes (P, V, T) deux paramtres peuvent varier simultanment. Linfluence
sur le troisime sobserve directement. La commande plot qui devient plot3 est
utilise dans ce cas. De faon plus systmatique, la commande mesh avec toutes
ses variantes permet une reprsentation filaire. La commande surf et toutes ses
options amliore la reprsentation de surfaces dans lespace. Voyons quelques
commandes de base :

plot3(x, y, z) Graphe en trois dimensions. Les vecteurs x, y et z ont
mme longueur.
comet3(x, y, z) Reprsentation 3D anime.
mesh(Z) Z est un matrice (grille x, y) dont les valeurs sont
reportes suivant z
rot90(A) La matrice A subit une rotation de 90. Trs utilis avec
mesh.
surf(X, Y, Z, C) X et Y : vecteurs de longueur m et n. Z : matrice de
dimension (m x n). C est une matrice pour la couleur. Surf
trace une surface dfinie par (x
i
, y
j
, z
ij
).
La commande view est utilise pour changer le point de vue sur la reprsentation,
les angles de vue (azimut dans le plan x, y et lvation) ou encore la perspective.
17. Analyse des fonctions
MATLAB possde des commandes puissantes et pratiques pour le traitement des
polynmes, lanalyse de fonction (recherche de zros, de minima), linterpolation
et lajustement densemble de donnes.

Un polynme de degr n consiste en un vecteur ligne de longueur n+1, p=[a
n
a
n-1
...
a
0
] interprt comme : p(x)=a
n
x
n
+ a
n-1
x
n-1
+ ... + a
1
x+a
0
.


polyval(p, x) Evalue le polynme dfini par p pour x scalaire, vecteur ou
matrice.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 17
poly(x) Donne le polynme dont les racines sont donnes par le
vecteur x.
roots(p) Donne les racines de p(x)=0. Les racines peuvent tre
complexes.
fzero(fcn, x0) Rsoud lquation donne par la chane fcn dsignant le nom
de la fonction au voisinage de x0.
fmin(fcn, x1, x2) Donne la valeur minimum dune fonction (chane fcn) entre
x1 et x2.
Plusieurs fonctions dinterpolation sont disponibles : interp1, interp2 ... spline.
La fonction polfit permet un ajustement polynomial de donnes.
En analyse des signaux, la fonction fft est disponible avec plusieurs formes.
18. Calcul intgral et E.D.O.
Diffrentes mthodes numriques sont proposes trouver la solution dune
intgrale dfinie ou pour intgrer une quation diffrentielle ordinaire. Les
quations diffrentielles partielles sont traites par MATLAB au moyen dune
bibliothque particulire (Optimization and Partial Differential Equation
Toolbox)

Intgration par la mthode des trapzes et par la mthode de Simpson

trapz(x, y) Intgrale de y en fonction de x. Les vecteurs x et y ont mme
longueur.
trapz(y) Intgrale de y en fonction dune chelle de pas 1.
trapz(x, A) Intgrale de chaque colonne de A en fonction de x. Donne un
vecteur.
quad(fcn, a, b) La chane fcn contient une fonction prdfinie de MATLAB ou
le nom dun fichier .m contenant la fonction intgrer sur
lintervalle [a, b]
MATLAB met en uvre les mthodes de Runge-Kutta-Fehlberg pour rsoudre
les EDO.
[t, X]=ode23(str, t0, tt, x0)
Calcule la solution dune EDO ou dun systme dEDO donn par la
chane str (fichier .m). La ou les solutions sont contenues dans
les colonnes de la matrice X en fonction du vecteur t
(abscisses). Les solutions sont calcules de t0 tt avec comme
valeur initiale x0. Lapproximation a une erreur relative infrieur
ou gale 10
-3
.
[t, X]=ode45(str, t0, tt, x0)
Calcule la solution dune EDO ou dun systme dEDO.
Lapproximation a une erreur relative infrieur ou gale 10
-6
.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 18
19. Programmation avec MATLAB
Plusieurs commandes permettent de contrler lexcution des instructions.
MATLAB peut tre vu comme un langage de programmation de haut niveau.
19-1. Instructions conditionnelles
if expression logique
instructions
end

if expression logique
instructions 1
else Voir galement dautres formes
instructions 2 plus complexes avec elseif
end

Matlab nous permet comme en C d'utiliser la structure switch-case :
switch expression
case case_expr.
instructions
case {case_expr1, case_expr2, case_expr3, }
instructions

otherwise
instructions
end
19-2. Boucles
Deux commandes sont utilises pour rpter lexcution dinstructions : for et
while.
La syntaxe de la boucle for est :
for variable = expression
instructions
end
expression est usuellement de la forme i :j :k ou i :j.
Les boucles for peuvent tre emboites.
La syntaxe de la boucle while est :
while expression logique
instructions
end
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 19
20. Interfaces graphiques
Matlab offre la possibilit de raliser des Interfaces Graphiques (ou GUI
Graphical User Interface) trs facilement laide de deux fonctions de bases :
Uicontrol : pour crer dans la fentre des boutons, des zones
daffichages, des graphiques, etc ...
Uimenu : pour crer des menus supplmentaires ceux de bases :
Fichier (File), Edition (Edit), etc ...
La conception de ces interfaces est rendue encore plus simple grce la fonction
GUI Layout Tool du menu fichier.
Les instructions Set et Get sont trs importantes pour la gestion de
laffichage.
La seule difficult rside dans la rcupration de la variable (bouton, menu
popup, ) pour la modifier ou rcuprer la valeur.
21. Fichiers .m et exemples
Les fichiers .m comportent des fichiers de commandes ou encore des fonctions
(propres MATLAB ou dfinies par lutilisateur).
Exemple : utilisation dune matrice appele cal
(

1023 511 255 127 65 31 15 7 3 1


100 50 20 10 5 2 1 0.5 0.2 0.1
= cal
Inscrivons cette matrice dans le ficher de commande calcod.m crit avec
l'diteur de texte de matlab.

% calcod.m : Matrice
cal=[0.1 0.2 0.5 1 2 5 10 20 50 100
1 3 7 15 31 65 127 255 511 1023] ;

Entrer dans lordre les commandes suivantes et interprter :
>> clear >> calcod(2, :)
>> who >> calcod( :)
>> calcod >> size(calcod)
>> who >> length(calcod)
Exemple de fonction utilisateur
La mthode utilise pour crire une fonction est la suivante :
a. La premire ligne dbute par le mot function suivi de largument de
sortie (rsultats), du nom de la fonction et des paramtres formels
de la fonction placs entre parenthse.
b. le nom du fichier et le nom de la fonction sont identiques.
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 20
c. Une fonction peut avoir zro, un ou plusieurs arguments de sortie et
paramtres dentre.
d. Lappel de la fonction se fait avec des arguments rels dsigns par
des noms indpendants qui peuvent tre diffrents des noms des
paramtres formels de la fonction.
e. Les commentaires, avec %, situs aprs la premire ligne sont
affichs avec help.

Soit calculer la fonction :

=
+ =

0 <= x si 0 y
0 > x pour ) x sin( . 2 e . 5 ) x ln( . x y
3 x
2

Elle est crite dans le fichier lnesin.m

function y=lnesin(x)
% lnesin : calcule lexpression exp(-x^2)+sin((x^2)/5)
% parametre dentre x : scalaire ou vecteur
% argument de sortie y de mme type
y= exp(-x.^2)+sin(0.2*x.^2) ;
end ;

>> x1=[-10 :0.1 :10] ;
>> f1=lnesin(x1) ;
>> plot(x1, f1) ;
>> help lnesin
Tracer les fonctions sin(2x), sin x
2
et sin
2
x sur lintervalle 0, 3
Fichier sin123.m

x=linspace(0, 3*pi) ; % Vecteur x
y1=sin(2*x) ; % Vecteur y1 avec le sinus de 2x
y2=sin(x.^2) ; % Vecteur y2 avec le sinus de x^2
y3=(sin(x)).^2 ; % Vecteur y3
plot(x, y1, x, y2, x, y3) ; % Trois courbes sur le mme axe.
Lancer lexcution en crivant :
>> sin123
Analyse dune fonction appele fonc avec les commandes fplot, fzero, fmin
Soit y=f(x)= ) x 3 sin( 5 e ) 1 x (
3 x
2
pour x compris entre -1,5 et 1,5, bornes
comprises.

Fichier fonc.m :
function y=fonc(x)
Universit Jean Monnet Saint-tienne Introduction Matlab
Master OIV - 21
% fonc.m contient une fonction analyser
y=(x-1).*exp(x.^2)-5*sin(3*x.^3) ;

Fichier foppo.m :
function y=foppo(x)
% foppo.m donne la fonction oppose de la fonction prcdente
y=-fonc(x) ;

Fichier ana.m :
% ana.m permet d'analyser une fonction avec fplot, fzero, fmin (pages 13 et 15)
fplot('fonc', [-1.5 1.5]);
% Racine de la fonction au voisinage de 1.2
r1=fzero('fonc', 1.2);
% Position du minimum de la fonction pour x compris entre 0.5 et 1
p1=fmin('fonc', 0.5, 1);
m1=fonc(p1);
disp('Position du minimum entre 0.5 et 1');
[p1 m1]
% Position du maximum de la fonction pour x compris entre -1 et -0.5
p2=fmin('foppo', -1, -0.5);
M2=fonc(p2);
disp('Position du maximum entre -1 et -0.5');
[p2 M2]

Systme linaire Ax=b
A=[3 1 -1 ; 1 2 4 ; -1 4 5] ; b=[3.6 ; 2.1 ; -1.4] ;
x=A\b