Vous êtes sur la page 1sur 11

Universit Jean Monnet Saint-tienne

Introduction Matlab

Table des matires


1.

Introduction ______________________________________________________________ 3

2.

Dmarrer et quitter MATLAB _______________________________________________ 3

3.

Matrices et MATLAB ______________________________________________________ 4


3-1.
3-2.
3-3.

4.

Variables prdfinies _______________________________________________________ 5


4-1.

5.

Fonctions mathmatiques ___________________________________________________ 6


6-1.
6-2.
6-3.

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

Liste des variables : _____________________________________________________________6

Oprateurs arithmtiques ___________________________________________________ 6

6.

Introduction Matlab

Gnration de vecteurs et de sous-matrices ___________________________________________5


Sous-ensemble dune matrice : ____________________________________________________5
Grandeur, norme ou dimension et longueur___________________________________________5

Fonctions mathmatiques spciales _________________________________________________7


Fonctions applicables aux nombres complexes ________________________________________7
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.
11-2.
11-3.

Oprateurs relationnels__________________________________________________________10
Oprateurs logiques ____________________________________________________________10
Oprateurs Scalaires____________________________________________________________11

12.

Matrices particulires ___________________________________________________ 11

13.

Chanes de caractres ___________________________________________________ 12

14.

Analyse de donnes _____________________________________________________ 13

14-1.
14-2.

15.
15-1.
15-2.
15-3.

16.
16-1.
16-2.
16-3.
16-4.

Sommes produits et diffrences ___________________________________________________13


Statistiques ___________________________________________________________________14

Systmes linaires et calcul matriciel _______________________________________ 14


Dterminant, inverse et rang duns systme _________________________________________14
Rsolution des systmes linaires et factorisation LU__________________________________14
Valeurs propres et vecteurs propres ________________________________________________14

Reprsentations graphiques ______________________________________________ 14


Graphiques deux dimensions____________________________________________________15
Autres systmes de coordonnes __________________________________________________15
Contrle du graphique __________________________________________________________15
Graphiques trois dimensions ____________________________________________________16

17.

Analyse des fonctions____________________________________________________ 16

18.

Calcul intgral et E.D.O. _________________________________________________ 17

19.

Programmation avec MATLAB ___________________________________________ 18

19-1.
19-2.

Instructions conditionnelles ______________________________________________________18


Boucles ______________________________________________________________________18

20.

Interfaces graphiques ___________________________________________________ 19

21.

Fichiers .m et exemples __________________________________________________ 19

Anne universitaire 2004 2005

Master OIV - 2

Universit Jean Monnet Saint-tienne

1.

Introduction Matlab

Introduction

De nombreux logiciels interactifs de calcul scientifique existent et sont


disponibles sur le march. Parmi ceux-ci, MATLAB1 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

Introduction Matlab

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.
1 2 3 4
La variable A tant une matrice, nous pouvons la rentrer par :
0 1 2 3
(entre)
>> A=[1 2 3 4 5 ; 0 1 2 3 9 ; 2 1 4 5 3 ; 8 7 6 5 4]
A=
2 1 4 5
A=

8 7 6 5
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=
>> 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=

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

Universit Jean Monnet Saint-tienne

MATLAB est une marque dpose par The MathWorks, Inc.


Master OIV - 3

5
9
3

1 2 3

4 5 6

Master OIV - 4

Universit Jean Monnet Saint-tienne

1
2
3

Introduction Matlab

4
5
6

Infini (par exemple 1/0) inf vite larrt de lexcution.


Not a Number par exemple 0/0 ou inf/inf.
1 , pour les complexes. Attention i ou j comme index de
boucle !
nargin, (nargout) Nombre darguments dune fonction, en entre (en sortie)

Les : sont utiliss pour reprsenter une srie de valeurs.


Squence de nombres de i k par pas de 1.
k qcq.
Squence de valeurs de i k par pas de j.
Dernire valeur <=k

i :j :k

i<k, donne [ ] ; i,
i,

j,

qcq.

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.

Vecteur de 50 lments dune chelle logarithmique entre 10a


et 10b
logspace(a, b, n) Distribution logarithmique de n valeurs sur [10a, 10b]
logspace(a, b)

3-2. Sous-ensemble dune matrice :


A(i, j)
A( :, j)
A(i, :)
A(i :k, j :l)
A( :, :)
A( :)
A(j :k)

Elment dont lentre est (i, j) dans la matrice A.


Donne la jme colonne de A.
Donne la ime ligne de A.
Sous matrice comprise entre les lignes i k et les colonnes de
j l.
A inchange
Une seule colonne avec toutes les colonnes de A mises bout
bout.
Donne les lments de j k de A( :) sous forme de vecteur
ligne.

3-3. Grandeur, norme ou dimension et longueur


size(M)
length(M)

4.

Introduction Matlab

inf
NaN
i, j

3-1. Gnration de vecteurs et de sous-matrices


i :k

Universit Jean Monnet Saint-tienne

donne le nombre de lignes et le nombre de colonnes de M


donne le plus grand nombre entre m et n

Variables prdfinies

Valeur de la dernire expression calcule.


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
ans
eps

Master OIV - 5

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*2f

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

ex
base e
base 10
base 2

Master OIV - 6

Universit Jean Monnet Saint-tienne

sin(x)
cos(x)
tan(x)

x en rad

cot(x)
sec(x)

1/cos(x)

A voir avec laide

Fonctions
hyperboliques
sinh(x) ...

Fonctions
hyperboliques
inverses asinh(x) ...

Introduction Matlab

asin(x)
acos(x)
atan(x)
atan2(x,y)
acot(x)

arc en rad

Valeurs arrondies ...

ceil(x)
gcd(x, y)
lcm(x, y)
rat(x)

round(x)
fix(x)
floor(x)

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

Ce sont par exemple les fonctions


legendre(n, x) fonctions de Legendre.
besselj(n, x) ou besselk(n, x) fonctions de Bessel Jn(x) et Kn(x)
gamma(x) fonctions n(x)
erf(x) function erreur

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

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

6-2. Fonctions applicables aux nombres complexes


Soit z=x+yi=rei
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 !

cartsiennes polaires
[th, r]=cart2pol(x, y)

polaires cartsiennes
[x, y]=pol2cart(th, r)

cartsiennes sphriques
[al, th, r]=catr2sph(x, y, z)

sphriques cartsiennes
[x, y, z]=sph2cart(al, th, r)

7.

Introduction Matlab

save
Sauvegarde les variables dans le fichier binaire
save fichier
"
fichier.mat
save fichier.dat v1 v2 ascii Sauvegarde les variables au format ascii

6-1. Fonctions mathmatiques spciales

6-3. Changements de coordonnes

Universit Jean Monnet Saint-tienne

Aide
Master OIV - 7

>> 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')
Master OIV - 8

Universit Jean Monnet Saint-tienne

9.

Introduction Matlab

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)
dot(A, B)
longueur n.

Produit scalaire (dot product)


A et B sont des matrices mn et le rsultat est un vecteur de

cross(x, y)
cross(A, B)

Produit vectoriel des vecteurs x et y.


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

Master OIV - 9

Universit Jean Monnet Saint-tienne

Introduction Matlab

La division matricielle vite davoir crire la matrice inverse qui sexprime A1


=inv(A)
Deux cas sont considrs ici, lorsque A est une matrice carre :
Ax=b
x=A-1b
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).

&
|
~
xor

et
ou
not
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.
Master OIV - 10

Universit Jean Monnet Saint-tienne

xor(A, B)

Introduction Matlab

Retourne 1 seulement si un seul des lments est non nul.

Universit Jean Monnet Saint-tienne

diag(x)

Donne une matrice carre diagonale contenant les lments


du vect. x.

diag(A, k)

Retourne une colonne contenant les lments de la kme


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

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]'

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

12. Matrices particulires


Pour gnrer des matrices particulires il est parfois utile de partir de matrices
composes dlments uniformes : 1 ou 0.
Matrice nxn de 1
Matrice mxn de 1
Matrice nxn de 0
Matrice mxn de 0
Matrice identit nxn
Matrice identit mxn

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)

Une matrice de 1 de mme dimension que la matrice M sobtient par :


ones(size(M))

diag(A)

diag(x, k)

5 1 0 0 0
1 5 1 0 0

A = 0 1 5 1 0

0 0 1 5 1
0 0 0 1 5

x+y
x.*y
x'*y
x^2
x.^2
x\y
x.\y
x/y
x./y
x.^2
(x*y')^2

ones(n)
ones(m, n)
zeros(n)
zeros(m, n)
eye(n)
eye(m, n)

Introduction Matlab

Retourne une colonne contenant les lments diagonaux de A.


Master OIV - 11

input(str)
input(str, s)

Affiche le contenu de la matrice A. Si A est une chane, la


chane est crite.
Affiche le texte de str et attend une valeur
Affiche le texte de str et attend une chaine de caractres
(nom, instruction...)

Master OIV - 12

Universit Jean Monnet Saint-tienne

Introduction Matlab

Exemples :
n=input(Donner un nombre : )
Donner un nombre : 5.123

A=input(Entrer
ligne : ) ;

une matrice

ligne par

Entrer une matrice ligne par ligne : [1 :3 ;

4 7 8]
n=

A=input(Entrer une matrice : ) ;

5.1230

Entrer une matrice : rand(4)*hilb(4)

[m n]=input(Donner la dimension de login=input(Quel est votre login name ? ,


s) ;
A : ) ;
Donner la dimension de A : size(A)
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

max(A, B)

y et p sont deux vecteurs ligne ; y contient les maxima et p


les positions.
Donne une matrice (mme dimension) avec partout llment
maximum

14-1. Sommes produits et diffrences


sum(x)
sum(A)
cumsum(x)
cumsum(A)
prod(x)
diff(x)

diff(A)
diff(x, k)

Introduction Matlab

Les diffrences sont calcules sur chaque colonne de A.


Donne la kime 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)
rank(A)
inv(A)
trace(A)

Donne le dterminant associ la matrice carre A.


Nombre de lignes et colonnes indpendantes de A
Inverse de A. Si la matrice est singulire, message derreur
Somme des lments diagonaux

15-2. Rsolution des systmes linaires et factorisation LU

Dans cette partie, A et B sont des matrices et x est un vecteur.


Maximum et minimum
Donne le plus grand lment.
max(x)
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)

Universit Jean Monnet Saint-tienne

Donne la somme des composantes du vecteur x


Vecteur ligne avec la somme des colonnes
Somme cumulative (le 2me lment est la somme des deux
premiers ...)
Mme principe sur chaque colonne de A
calcule le produit des lments de x ; mme variantes que
pour sum
Donne un vecteur de longueur rduite dune unit avec [x2-x1
...xn-xn-1]
Master OIV - 13

[L, U]=lu(A)

Donne la forme rduite de A selon llimination de GaussJordan


Factorisation LU.

chol(A)

Factorisation de Cholesky

rref(A)

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)
[X, D]=eig(A)

Retourne un vecteur contenant les valeurs propres de 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.

Master OIV - 14

Universit Jean Monnet Saint-tienne

Introduction Matlab

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, ...)
plot(y)
plot(z)
plot(A)
plot(x, A)
plot(x1, y1 , str1, ...)

fplot(fkn, lim, str)

Type point
.
*
x
o
+

dot
star
lettre x
lettre o
plus

Reprsente le vecteur y1 en fonction du vecteur x1.


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

Trait continu
Trait pointill
Trait mixte
Ligne pointe

Couleur
y yellow
g green
m magenta
b blue

c cyan
w white
r red
k black

16-2. Autres systmes de coordonnes


semilog(x, y)
semiloy(x, y)
loglog(x, y)

plot(log10(x), y)
plot(x, log10(y))
plot(log10(x), log10(y))

Introduction Matlab

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 :
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 (xi, yj, zij).
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.
plot3(x, y, z)

17. Analyse des fonctions

16-3. Contrle du graphique


clf
clc
hold on
hold off
hold
subplot(m, n, p)

Universit Jean Monnet Saint-tienne

Efface la fentre graphique


Efface la fentre de commande
Maintient la fentre graphique - Superposition possible.
Libre la fentre graphique.
Permet de passer dun mode lautre.
Permet de dfinir mxn emplacements de graphiques
numrots p.

Master OIV - 15

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=[an an-1 ...
a0] interprt comme : p(x)=anxn+ an-1xn-1+ ... + a1x+a0.
polyval(p, x)

Evalue le polynme dfini par p pour x scalaire, vecteur ou


matrice.
Master OIV - 16

Universit Jean Monnet Saint-tienne

Introduction Matlab

Universit Jean Monnet Saint-tienne

Introduction Matlab

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.

19. Programmation avec MATLAB

18. Calcul intgral et E.D.O.

else

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)

end

poly(x)

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
end
if

expression logique
instructions

expression logique
instructions 1
instructions 2

Voir galement dautres formes


plus complexes avec elseif

Matlab nous permet comme en C d'utiliser la structure switch-case :


switch
expression
case case_expr.

instructions

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

case {case_expr1, case_expr2, case_expr3, }

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.

otherwise

instructions

trapz(x, y)

Master OIV - 17

end

instructions

19-2. Boucles
Deux commandes sont utilises pour rpter lexcution dinstructions : for et
while.

La syntaxe de la boucle for est :


for variable = expression
end

instructions

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
end

instructions

Master OIV - 18

Universit Jean Monnet Saint-tienne

Introduction Matlab

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).

Universit Jean Monnet Saint-tienne

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.
y = x.ln( x) 5.e x + 2. sin(x 3 ) pour x > 0
Soit calculer la fonction :
y = 0 si x <= 0

Elle est crite dans le fichier lnesin.m


2

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 ;

Exemple : utilisation dune matrice appele cal


20 50 100
0.1 0.2 0.5 1 2 5 10
cal =
1
3
7
15
31
65
127
255
511 1023

Inscrivons cette matrice dans le ficher de commande calcod.m crit avec


l'diteur de texte de matlab.

>> x1=[-10 :0.1 :10] ;


>> f1=lnesin(x1) ;
>> plot(x1, f1) ;
>> help lnesin

Tracer les fonctions sin(2x), sin x2 et sin2x sur lintervalle 0, 3


Fichier sin123.m

% 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] ;

x=linspace(0, 3*pi) ;
%
y1=sin(2*x) ;
%
y2=sin(x.^2) ;
%
y3=(sin(x)).^2 ;
%
plot(x, y1, x, y2, x, y3) ;
%
Lancer lexcution en crivant :
>> sin123

Entrer dans lordre les commandes suivantes et interprter :


>> clear
>> who
>> calcod
>> who

Introduction Matlab

>> calcod(2, :)
>> calcod( :)
>> size(calcod)
>> length(calcod)

Vecteur x
Vecteur y1 avec le sinus de 2x
Vecteur y2 avec le sinus de x^2
Vecteur y3
Trois courbes sur le mme axe.

Analyse dune fonction appele fonc avec les commandes fplot, fzero, fmin

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.
Master OIV - 19

Soit y=f(x)= (x 1)e x 5 sin(3x 3 ) pour x compris entre -1,5 et 1,5, bornes
comprises.

Fichier fonc.m :
function y=fonc(x)

Master OIV - 20

Universit Jean Monnet Saint-tienne

Introduction Matlab

% 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

Master OIV - 21

Vous aimerez peut-être aussi