Vous êtes sur la page 1sur 10

Introduction

Matlab est la fois un logiciel de calcul et un langage de

programmation haut niveau. Cest un logiciel payant, dont il existe

deux quivalents gratuits

Octave est un logiciel qui utilise le langage de matlab et peut donc

utiliser les fonctions crites en matlab. Il est plus lent et un peu

moins beau.

Scilab est dvelopp par lINRIA et la syntaxe diffre un peu de

celle de matlab mais lesprit est le mme. Il est de mon point de vue

encore un peu moins pratique que matlab.

Matlab est un logiciel de calcul numrique pas de calcul formel la

diffrence de Maple. Il ne sait rsoudre que des quations

numriques.

Le nom Matlab vient de Matrix Laboratory. En Matlab les objets sont

tous par dfaut des matrices. Une variable relle est donc vu par

Matlab comme une matrice 11. Le produit est donc par dfaut un

produit matriciel. Il faut se mer.

Le type des variables nest pas trs important. Matlab peut

additionner un boolen et un rel, multiplier un entier par un

complexe sans problme.

Pour lancer Matlab, il suft de lancer la commande matlab dans un

terminal. Souvre alors la fentre principale de matlab. On peut y

lancer directement des lignes de commande mais la plupart du


temps on passera par lditeur de Matlab qui permet de raliser des

scripts et des fonctions.

Figure1.Interface Du logiciel Matlab.

1- Fonctions usuelles

sqrt(x) : racine carre de x,

log(x) : logarithme nprien de x,

exp(x) : exponentielle de x.

mod(n,m) : n modulo m, reste de la division euclidienne de m par

n.
abs(z) : module de z,

angle(z) : argument dun nombre complexe z.

real(z) : partie relle de z,

imag(z) : partie imaginaire de z,

i ou j : nombre complexe i = e /2, sauf si on change la valeur de i

ou j dans une boucle par exemple,

sort : permet de trier un vecteur (regarder laide), la commande

sort renvoie galement la permutation qui permet de passer du

vecteur au vecteur ordonn. Il arrive souvent que seule cette

permutation soit intressante.

length(A) : donne la plus grande dimension dune matrice A,

sum(V) : somme les composantes dun vecteur V,

diff(V) : renvoie un vecteur dont les composantes sont les

diffrences des composantes conscutives du vecteur V,

while ... end : permet de faire une boucle while,

a==b : renvoie le boolen 1 si a = b et 0 si a 6 = b,

A : matrice transpose de A,

oor(x) : partie entire de x.

ceil(x) : partie entire suprieure de x.

max(x) : maximum dun vecteur x.

min(x) : minimum dun vecteur x.

mean(x) : moyenne dun vecteur x.


2- Les boucles

Il y a deux types de boucles en Matlab : les boucles while et les boucles for. La boucle for
parcourt un vecteur d'indices et efectue chaque pas toutes les instructions dlimites
par l'instruction end.

Boucle FOR : parcours d'un intervalle

Une premire possibilit pour excuter une squence


d'instructions de manire rpte consiste effectuer une boucle
pour les valeurs d'un indice, incrment chaque itration,
variant entre deux bornes donnes. Ce processus est mis en
oeuvre par la boucle for.

Syntaxe :
forindice=borne_inf:borne_sup

squence d'instructions

end
o

Indice est une variable appele l'indice de la boucle;


Borne_inf etborne_sup sont deux constantes relles

(appeles paramtres de la boucle);


Squence d'instructions est le traitement effectuer pour

les valeurs d'indices variant entre borne_inf et borne_sup avec

un incrment de 1. On parle du corps de la boucle.

Interprtation :
Si borne_inf est plus petit ou gal borne_sup, le
traitement squence d'instructions est excut borne_sup -
borne_inf fois, pour les valeurs de la variable indice gales
borne_inf, borne_inf+1, ..., borne_sup. Si borne_inf est strictement
plus grand que borne_sup, on passe l'instruction qui suit
immdiatement l'instruction de n de boucle(end).

Remarque:
L'indice de boucle ne prend pas ncessairement des valeurs
entires. D'autre part il n'est pas ncessaire que l'indice de la
boucle apparaisse dans le corps de la boucle; par contre il est
interdit de modier sa valeur s'il apparat. Il est possible d'imbriquer
des boucles mais elles ne doivent pas se recouvrir. On peut utiliser
un incrment (pas) autre que 1 (valeur par dfaut). La syntaxe est
alors borne_inf: pas : borne_sup. Le pas peut tre ngatif. Attention
bien grer la borne suprieure! Voici un exemple (idiot) venant
illustrer les possibilits de variations de l'indice de la boucle

>> for r=1.1:-0.1:0.75


disp(['r = ', num2str(r)]);
end
r = 1.1
r = 1
r = 0.9
r = 0.8
>>
Voici un exemple d'utilisation d'une boucle pour calculer n! (le lecteur
attentif sait calculer n! plus simplement ... par exemple en
excutant prod([1:n])).
>> n = 4;
>> nfac = 1;
>> for k = 1:n
nfac = nfac*k;
end
>> nfac
nfac =
24
>>

Boucle WHILE : tant que . . . faire

Une seconde possibilit pour excuter une squence d'instructions de manire rpte
consiste effectuer une boucle tant qu'une condition reste vrifie. On arrte de
boucler ds que cette condition n'est plus satisfaite. Ce processus est mis en oeuvre
par la boucle while.

Syntaxe :

whileexpression logique

squence d'instructions

end

expression logique est une expression dont le rsultat peut


tre vrai ou faux;

squence d'instructions est le traitement effectuer tant


que expression logique est vraie.

Interprtation:
Tant que expression logique est vraie le traitement squence
d'instructionsest excut sous forme d'une boucle.
Lorsque expression logique devient faux, on passe l'instruction qui
suit immdiatement l'instruction de n de boucle (end).

Remarque:
expression logique est en gnral le rsultat d'un test (par
exemple i < Imax) ou le rsultat d'une fonction logique (par
exemple all(x)). Il est impratif que le traitement de la squence
d'instructions agisse sur le rsultat de expression logique sans quoi
on boucleindniment (-:.

Voici comment calculer n! avec une boucle while:

>> n = 4;
>> k = 1; nfac = 1;
>> while k <= n
nfac = nfac*k;
k = k+1;
end
>> nfac
nfac =
24
>>

L'instruction conditionne IF

On a parfois besoin d'excuter une squence d'instructions seulement dans le cas o


une condition donne est vrifie au pralable. Diffrentes formes d'instruction
conditionne existent sous MATLAB.

L'instruction conditionne la plus simple a la forme suivante:

Syntaxe :

ifexpression logique

squence d'instructions

end

expression logique est une expression dont le rsultat peut tre vrai ou faux;
squence d'instructions est le traitement effectuer si expression logique est
vraie.

Interprtatio:
la squence d'instructions n'est excute que si le rsultat de
l'valuation de l'expression logique est vraie (c'est--dire vaut 1).
Dans le cas contraire on excute l'instruction qui suit le mot
cl end. Dans le cas o l'expression logique est vraie, aprs
excution de la squence d'instructions on reprend le programme
l'instruction qui suit le mot cl end.

Remarque:
Contrairement certains langages de programmation, il n'y
a pas de mot cl << then >> dans cette instruction
conditionne. Notez galement que la marque de n de bloc
conditionn est le mot cl end et non pas<< endif >>.

Il existe une squence conditionne sous forme d'alternatives:

Syntaxe

ifexpression logique

squence d'instructions 1
else

squence d'instructions 2
end

expression logique est une expression dont le rsultat peut tre vrai ou
faux;
squence d'instructions 1 est la squence d'instructions excuter
dans le cas o expression logique est vraie et squence d'instructions
2 est la squence d'instructions excuter dans le cas o expression
logique est faux.

Interprtation :
Si expression logique est vraie la squence d'instructions 1 est
excute, sinon c'est la squence d'instructions 2 qui est excute.
Le droulement du programme reprend ensuite la premire
instruction suivant le mot cl end.

Il est bien entendu possible d'imbriquer des squences


d'instructions conditionnes (au sens o la squence d'instruction
conditionne contient des squences d'instructions conditionne).
Pour une meilleure lisibilit, il est recommand d'utiliser des
indentations an de mettre en vidence l'imbrication des squences
d'instructions conditionnes.

Il est possible d'effectuer un choix en cascade:

Syntaxe :

ifexpression logique 1

squence d'instructions 1

elseif expression logique 2

squence d'instructions 2
...
elseif expression logique N

squence d'instructions N
else

squence d'instructions par dfaut


end

Interprtation :
Si expression logique 1 est vraie la squence d'instructions 1 est
excute et le programme reprend ensuite la premire instruction
suivant le mot cl end, sinon si expression logique 2 est vraie
la squence d'instructions 2 est excute et le programme reprend
ensuite la premire instruction suivant le mot cl end, etc. Si
aucune des expressions logiques 1 N n'est vraie alors squence
d'instructions par dfaut est excute.

Remarque :
Attention ne pas laisser d'espace entre else et if; le mot cl
est elseif.

On utilise frquemment un choix en cascade lors d'initialisation de


donnes. Par exemple, on initialise une matrice A en fonction de la
valeur d'une variable numex (numro d'exemple) de la manire
suivante:

if numex == 1
A = ones(n);
elseif numex == 2
A = magic(n);
elseif numex == 3 | numex == 4
A = rand(n);
else
error('numero d''exemple non prevu ...');
end