Cours Matlab

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 23

1 CALCULS SIMPLES AVEC MATLAB

1 Introduction
2 Scalaires et variables
2.1 Ordre dans lequel les calculs sont effectués
2.2 Quelques fonctions numériques
3 Les formats
4 Les vecteurs
4.1 Construction de vecteurs
4.2 Opérations portant sur les vecteurs (ou tableaux)
4.3 Opérations portant sur les fonctions mathématiques
5 Quelques commandes et fonctions
5.1 Fonctions polyval, plot et roots
5.2 Commandes clear et whos
6 Accès aux éléments d’une liste ou d’un vecteur

1 Introduction

Vous trouverez dans ces notes une base de connaissances et de pratiques


pour utiliser Matlab (MATtrix LABoratory). Aujourd’hui, il est difficile de se passer de
l’ordinateur pour faire de la science: pour analyser les données, les représenter, les
manipuler. Pour ceci Matlab est un outil efficace.

Matlab offre une interface via laquelle on peut entrer des commandes, c’est
”l’invite”, ou en anglais, le ”prompt”: la ligne qui commence avec >>. On y écrit les
lignes de commandes qui vont créer des tableaux, les manipuler, tracer des
graphiques... Une fois que la ligne de commande est écrite, on tape sur ”entrée” et
l’ordinateur évalue cette commande, vérifie qu’elle est conforme, qu’elle veuille dire
quelque chose. Si il y a un problème: on appelle un tableau qui n’existe pas, on
utilise un nom de fonction qui n’existe pas, on demande quelque chose qui n’est pas
possible, il y a un message d’erreur qui nous donne une indication sur le problème. Il
faut lire ces messages et corriger l’erreur.

2 Scalaires et variables

>> a = 3
a=
3
>> b = 4;

Ici, je mets un point-virgule à la fin de la ligne pour dire à matlab de ne pas afficher
à l’écran le résultat de l’opération.

1
>> a = 3;
>> b = a+1;
>> x = a+b;

>> 3*4
ans =
12
Le résultat est stocké dans la variable ans (answer)

>> a = 3; b = 4; x = a*b

Exemple 1 Calculer

>> 3*5*6
>> z1 = 34;
>> z2 = 17;
>> z3 = -8;
>> z1/z2
>> z1-z3
>> z2+z3-z1

Réponses: 90, 2, 42 et −25.

Exemple 2 Calculer

>> format rat % Pour la représentation des nombres rationnels


>> a = 2; b = 3; c = 4;
>> a*(b+c)
>> a*b+c
>> a/b+c
>> a/(b+c)
>> format % Retour au format standard

Réponses:14, 10, 14/3 et 2/7.

2.1 Ordre dans lequel les calculs sont effectués

( )
^ Puissance
/ et *
+ et -

Exemple 3 Déterminer la valeur de l'expression a(b + c(c + d))a, où


a = 2, b = 3, c = −4 and d = −3.
Solution:

>> a = 2; b = 3; c = -4; d = -3;

2
>> a*(b+c*(c+d))*a
Réponse: 124

Exemple 4 Evaluer les expressions suivantes:

1+2/3*4-5
1/2/3/4
1/2+3/4*5
5-2*3*(2+7)
(1+3)*(2-3)/3*4
(2-3*(4-3))*4/5

Réponses: (utiliser format rat)

-4/3, 1/24 ,17/4, - 49, - 16/3 et – 4/5.

Exemple 5 Utiliser MATLAB pour calculer l'expression

avec a = 3, b = 5 et c = −3.
Solution:
a=3; b = 5; c = -3;
x = b-a/(b+(b+a)/(c*a))

Remarque:

x = 45e9; % x = 45 × 10 ^9
y = 3.123e-7; % y = 0.0000003123
xy = x*y; % Ne pas confondre le nom de la variable xy avec le produit x * y

2.2 Quelques fonctions numériques

Fonction Résultat
abs valeur absolue ou module (nb. complexes)
angle argument (nb. complexes)
real partie réelle (nb. complexes)
imag partie imaginaire (nb. complexes)
conj complexe conjugué
sqrt racine carrée
cos cosinus (angle en radian)
sin sinus (angle en radian)
tan tangente (angle en radian)
acos arc cosinus (résultat en radian)
asin arc sinus (résultat en radian)
atan arc tangente (résultat en radian)
exp exponentielle
log logarithme népérien

3
log10 logarithme base 10
round entier le plus proche
fix partie entière mathématique
floor troncature par défaut
ceil troncature par excès

Example 6 Calculer les expressions: sin 60◦ (et la même quantité au carré),
exp(ln(4)), cos 45◦ −sin 45◦, ln exp(2+cos π) and tan 30◦/(tan π/4+tan π/3).

Solution:
>> x = sin(60/180*pi)
x=
0.8660
>> y = xˆ2
y=
0.7500
>> exp(log(4))
ans =
4
>> z = 45/180*pi; cos(z)-sin(z)
ans =
1.1102e-16 % inférieure à eps ( taper eps)
>> log(exp(2+cos(pi)))
ans =
1
>> tan(30/180*pi)/(tan(pi/4)+tan(pi/3))
ans =
0.2113

REMARQUE: Une fonction peut avoir plusieurs arguments (entrées)


>> factor(24)
ans =
2 2 2 3
>> prod(ans)
ans =
24
>> rem(12345,9)
ans =
6

3 Les formats
La commande format permet de choisir entre plusieurs modes d’affichage

Example 7 Considérons le code suivant

s = [1/2 1/3 pi sqrt(2)];


format short; s
format long; s
format rat; s
format ; s
4
Solution:

>> format short; s % 5 Digits


s=
0.5000 0.3333 3.1416 1.4142
>> format long; s % 15 Digits
s=
0.50000000000000 0.33333333333333 3.14159265358979 1.41421356237310
>> format rat; s
s=
1/2 1/3 355/113 1393/985
>> format ; s
s=
0.5000 0.3333 3.1416 1.4142

4 Les vecteurs

4.1 Construction de vecteurs


On peut construire les vecteurs de la façon suivante:
r = [ 1 2 3 4] % vecteur ligne
r = [ 1;2;3;4] %vecteur colonne
r = [ 1 2 3 4]' % transposition
r = 1:5
r = 1:2:5 % pas=2
s = 1:0.5:3.5 % pas =0.5
s = linspace(0,1,100) % 100 éléments
t = linspace(0,1,10) %10 éléments

4.2 Opérations portant sur les vecteurs (ou tableaux)

Toutes les manipulations arithmétiques que nous avons l’habitude de


pratiquer sur des scalaires peuvent facilement être étendues pour agir sur les
tableaux, simplement en appliquant ces opérations élément par élément. Il
faudra seulement faire attention avec les multiplications, puisqu’il existe une
règle de manipulation très utile, la multiplication de matrices qui n’est pas
une opération élément par élément

>> a = [1 2 3];
>> 2*a
ans =
246

Supposons que nous avons deux tableaux

>> a = [1 2 3];
>> b = [4 5 6];
>> a*b
??? Error using ==> *
Inner matrix dimensions must agree.

5
La multiplication des tableaux est aussi une multiplication élément par élément, et se
note .* et non *

>> a = [1 2 3];
>> b = [4 5 6];
>> a.*b
ans =
4 10 18
De la même façon on peut effectuer la division élément par élément:

>> a = [1 2 3];
>> b = [4 5 6];
>> a . / b
ans =
0.2500 0.4000 0.5000

Exemple 8 :
Construisez les deux vecteurs s= [ 1 2 3 4 5 6 ] et t= [-6 -5 -4 -3 -2 -1].
Effectuer les opérations suivantes:

s+t % ans = -5 -3 -1 1 3 5
s-t % ans= 7 7 7 7 7 7
s.*t %ans = -6 -10 -12 -12 -10 -6
s./t % ans= -0.1667 -0.4000 -0.7500 -1.3333 -2.5000 -6.0000
s.^2 % ans = 1 4 9 16 25 36
1./s % ans = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667
s/2 % ans = 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
s+1 % ans = 2 3 4 5 6 7

4.3 Opérations portant sur les fonctions mathématiques

Example9 : Construiser le vecteur x={ 0 0.1 0.2 …1.0} et calculer la


fonction y= x^2

Solution

x = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0];
% Ou bien
x = 0:0.1:1.0;
% Ou avec la commande linspace
x = linspace(0,1,11);
y = x^2
??? Error using ==> ^
Matrix must be square

6
% Si les dimensions des vecteurs sont incompatibles avec l'opération
matricielle, MATLAB affiche un message d'erreur. Dans ce cas
effectuer la multiplication élément par élément .*

y = x .^2 % Ou bien y = x .* x
y=
Columns 1 through 7
0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600

Columns 8 through 11
0.4900 0.6400 0.8100 1.0000

Exemple9 Construisez le polynôme .

allant de -1 à 1 avec un pas de 0.1.

Solution

x = -1:0.1:1;
f = x+2; % Fonction intermédiaire
g = x.^3+1; % Fonction intermédiaire
y = (f .^2) .* (g); % Utiliser les opérateurs élément par élément

Exemple10 Calculer pour x allant de 1 à 3 avec un pas


de 0.02.

Solution

x = 1:0.02:3;
f = x .* cos(x);
g = x.^2+3*x+1;
y = sin(f ./ g);

5 Quelques commandes et fonctions

5.1 Fonctions polyval, plot et roots

Exemple 11 Evaluer le polynôme aux points


x = (1, 2, 3, 4, 5, 6).

Solution
x = 1:6;
% On sera vigilant à l'ordre dans lequel seront rangés les coefficients du
% polynôme: le premier élément du vecteur c est le coefficient du monôme
% de plus haut degré
c = [1 3 -1 -1]
% La fonction polyval renvoie les valeurs du polynôme aux points x
y = polyval(c,x)
7
Exemple 12 Tracer entre x= -2 et x= 2 en utilisant 50 points.

Solution

x = linspace(-2,2,50);
c = [1 0 1 0 -1];
y = polyval(c,x);
plot(x,y)

Exemple 12 Utiliser la fonction roots pour trouver les racines

Solution

c = [1 -3 2 0];
r = roots(c)
r=
0
2
1

5.2 Commandes clear et whos

Exemple 13 Soit le programme suivant

clear all % supprime toutes les variables de l’espace de travail actuel


a = linspace(0,1,20);
b = 0:0.3:5;
c = 1.;
whos %donne la liste des variables composant l’espace de travail

Name Size Bytes Class


a 1x20 160 double array
b 1x17 136 double array
c 1x1 8 double array

Grand total is 38 elements using 304 bytes

Remarque:
La fonction size retourne le couple (nl,nc) formé du nombre de lignes nl et du
nombre de colonnes nc du tableau associé à la variable donnée comme argument.
La fonction length retourne le nombre d’éléments ou longueur de la liste ou du
vecteur.

8
Exemple 14

l = [1 2 3 4] ; length(l)
ans =
4
[nl, nc] = size(l)
nl =
1
nc =
4

6 Accès aux éléments d’une liste ou d’un vecteur

Soient s une liste ou un vecteur non-vide, et k un entier compris entre 1 et la


longueur de la liste ou du vecteur considéré. On accède à l’élément d’indice k de la
liste ou du vecteur s par s(k), le premier élément de la liste ou du vecteur étant indicé
par 1

Exemple 15

>> s = [1 3 5] ; s(1)
ans =
1
>> s(3)
ans =
5
>> s(end)
ans =
5

L’accès en lecture à un élément d’indice négatif ou dont la valeur est strictement


supérieure à la longueur de la liste (ou du vecteur), conduit à une erreur :

>> s(4)
??? Index exceeds matrix dimensions.

9
SERIE 1 : CALCULS SIMPLES AVEC MATLAB

Exercice 1 Calculer les valeurs des expressions suivantes :


p(x) = pour x = 1.3,
y(x) = sin(x) pour x = 30◦,
f(x) = (x) pour x = 1,
g(x) = (x) ) pour x = /2
.
Exercice 2 Calculer la valeur de la fonction y(x) = |x| sin pour x = π/3 et π/6

Exercice 3 Calculer sin(π/2), cos(π/3), tan 60° et ln (x + )


pour x = 1/2 et x = 1.

Exercice 4 Utiliser les fonctions round, ceil, floor et fix pour x = 0.3, x = 1/3, x =
0.5, x = 1/2,
x = 1.65 et x = −1.34.

Exercice 5 Comparer les fonctions MATLAB rem(x,y) et mod(x,y) pour


différentes valeurs de x et y ( x = 3, 4, 5 et y = 3, 4,−4, 6).

Exercice 6 Evaluer les fonctions :

1. y = + 3 + 1
2. y = sin
3. y =
4. y = sin2x + x cos 4x

Pour x allant de 1 à 2 avec un pas de 0.1

Exercice 7 Evaluer la fonction

Pour x allant de 3 à 5 in avec un pas de 0.01.

Exercice 8 Evaluer les fonctions

Pour x allant de −2 à −1 avec un pas de 0.1.

10
Exercice 9 Le code suivant est supposé calculer la fonction

Pour x ∈ [0, 1] (avec 200 pas). Corriger le code et vérifier que


f(200) = −1/6.

x = linspace(0,1);
clear all
g = x^3+1;
H = x+2;
z = x.^2;
y = cos xpi;
f = y*z/g*h

Exercice 10 Corriger le code suivant qui est supposé tracer le polynôme


entre x = −2 et x = 2 (avec 20 points).

x = -2:0.1:2;
c = [1 0 0 -1];
y = polyval(c,x);
plot(y,x)

Exercice 11 Corriger le code suivant qui est supposé calculer

pour x allant de 0 à 3 avec un pas de 0.1.


Calculer la fonction pour x=2 et x = 3 .

x = linspace(0,3);
f = x^3.*cos x+1;
%x=2
f(2)
%x=3
f(End)

11
2 Scripts, m-files et fonctions

1 Scripts et m-files
1.1 Scripts
1.2 Création de m-files
1.3 Exécution d’un m-file
1.4 Eléments d’écriture de m-files
2 Fonctions et m-files
2.1 Syntaxe
2.2 Optimisation des calculs

1 Scripts et m-files

1.1 Scripts

Un script est une séquence d’expressions ou de commandes. Un script peut


se développer sur une ou plusieurs lignes. Les différentes expressions ou
commandes doivent être séparées par une virgule, un point-virgule ou par le
symbole de saut de ligne constitué de trois points . . . suivis de <entrer>

Exemple 1 :

>> a = .5, 2*a, b = pi; 2*b, c = a*b


Ou bien
>> a = .5, 2*a, b = pi; ...
2*b, c = a*b

a=
0.5000
ans =
1
ans =
6.2832
c=
1.5708

Ecrire un script est assez fastidieux, aussi MATLAB permet d’enregistrer le


texte d’un script sous forme de fichier de texte appelés m-files, en raison de leur
extension.

1.2 Création de m-files

Les m-files permettent d’enregistrer les scripts sous forme de fichiers-texte et


servent en particulier à définir de nouvelles fonctions (une grande partie des

12
fonctions prédéfinies de MATLAB sont stockées sous forme de m-files dans la
toolbox matlab.

Exemple 2 :

Dans la fenêtre de l’éditeur tapez les lignes suivantes :

% script - essai . m
a = .5;
b = pi;
c=a*b

Sauvez le fichier dans le répertoire de travail sous le nom de essai.m.

1.3 Exécution d’un m-file

Pour exécuter le script contenu dans un m-file et Il suffit de taper le nom de ce


m file dans la fenêtre de commande suivi de < entrer >

Exemple 3 :

Pour exécuter le script précédent, on tape essai et on obtient :

>> essai
c=
1.5708

1.4 Eléments d’écriture de m-files

Commentaires
Les lignes de commentaires sont précédées du caractère %.

Entrées - input et menu


– La fonction input permet la saisie d’une valeur depuis le clavier. Plus précisément :
– Pour les valeurs numériques, n = input (’message’) affiche message et affecte à
la variable n la valeur numérique entrée au clavier.
– Pour les chaînes de caractères, str = input (’message’,’s’) affiche message et
affecte à la variable str la valeur entrée au clavier considérée alors comme une
chaîne de caractères.

Exemple 4 :

>> n = input (’Entrez la valeur de n ’)


>> nom = input (’Entrez votre nom ’,’s’)

– La fonction menu génère un menu dans lequel l’utilisateur doit choisir une option :
result = menu (’titre’, ’opt1’, ’opt2’, ..., ’optn’)
La valeur retournée dans la variable result est égale au numéro de l’option choisie.
menu est souvent utilisé en relation avec la structure algorithmique switch-case.

13
Exemple 5 :

>> result = menu (’Traitement’, ’Gauss’, ’Gauss-Jordan’, ’Quitter’)

Affiche la fenêtre graphique suivante :

Si l’utilisateur sélectionne Gauss, la variable result prend la valeur 1, la valeur 2 s’il


sélectionne Gauss-Jordan et la valeur 3 pour Quitter.

Affichages - disp - num2str -


– La valeur d’une variable est très simplement affichée en faisant évaluer une
expression réduite à la variable elle-même.

Exemple 6 :

>> a = [1 2] ;
>> a
a=
12

– La fonction num2str(x) où x est un nombre, retourne la valeur littérale de ce


nombre.

Exemple 7 :

>> s = [’la valeur de pi est : ’ num2str(pi)] ;


>> s
s=
la valeur de pi est : 3.1416

– La commande disp(t) où t est une chaîne de caractères ou un tableau, affiche la


valeur de cette chaîne de caractère ou de ce tableau sans faire référence au nom de
la variable. Cette commande sera souvent utilisée avec num2str pour afficher les
valeurs des expressions numériques.

Exemple 8 :

>> a = [1 2;3 4] ;
>> disp(a)
12
34
>> disp ([ ’ordre de la matrice a : ’ num2str(size(a,1)) ] );
ordre de la matrice a : 2

14
Pause
La commande pause permet de ménager une pause dans l’exécution d’un m file :
– sans argument pause suspend l’exécution jusqu’a ce que l’utilisateur presse sur
une touche.
– pause (n) suspend l’exécution pendant n secondes.

2 Fonctions et m-files

Les m-files sont aussi le moyen pour l’utilisateur de MATLAB de définir ses
propres fonctions.

Exemple 9 :
La fonction moyenne définie ci-dessous calcule la moyenne des éléments d’une liste
ou d’un vecteur. Le texte de cette fonction est saisi dans l'éditeur de matlab.

1 function m = moyenne(x)
2 % MOYENNE(X) : moyenne des elements d’une liste ou d’un vecteur
3 % un argument autre qu’une liste ou un vecteur conduit a une erreur
4 [ k,l ] = size(x) ;
5 if ( (k~=1) & (l~=1) ) % & :et logique ~= non égalité
6 error (’ l''argument doit être une liste ou un vecteur’)
7 end
8 m = sum(x)/length(x);

La fonction est enregistrée sous le nom moyenne.m. Elle est ensuite appelée depuis
la fenêtre de commande :

>> x = 1 : 9
x=
123456789
>> y = moyenne(x)
y=
5

>> A = [1 2 ; 3 4] ;
>> moyenne(A)
??? Error using ==> moyenne
l'argument doit être une liste ou un vecteur

2.1 Syntaxe
Une fonction est constituée par :
– un en-tête :
function resultat = nom de la fonction (liste de paramètres)
– une section de commentaires : dont chaque ligne commence par le symbole % ;
– le corps de la fonction défini par un script.

Remarques:
• Le nom de la fonction et celui du fichier m-file qui en contient la définition
doivent être identiques. Ce fichier est le fichier m-file associé à la fonction.

15
• La commande help affiche les neuf premières lignes de la section de commentaires
; la première ligne est utilisée par la commande lookfor pour effectuer des recherches
parmi les fonctions MATLAB accessibles.

2.2 Optimisation des calculs


Les calculs sont accélérés de façon spectaculaire en utilisant des opérations
vectorielles en lieu et place de boucles. Comparons les deux fonctions suivantes (la
commande tic déclenche un chronomètre ; toc arrête le chronomètre et retourne le
temps écoulé depuis tic) :

Exemple 10 :

1 function [t, b] = test1(n) % à enregistrer dans un fichier test1.m


2 % détermine le temps mis pour créer la liste
3 % des racines carrées des entiers compris entre 1 et n
4m=0;
5 tic ;
6 for k = 1 : 1 : n
7 b(k) = m+sqrt(k) ;
8 end
9 t = toc;

1 function [t, b] = test2(n) % à enregistrer dans un fichier test2.m


2 % détermine le temps mis pour créer la liste
3 % des racines carrées des entiers compris entre 1 et n
4 tic;
5 a = 1: 1: n ;
6 b = sqrt (a) ;
7 t = toc ;

Les résultats obtenus montrent que test2 est plus efficace que test1.

>>test1(1000)
ans =
0.0054
>>test2(1000)
ans =
1.7433e-004

test2 est 0.0054/ 1.7433e-004~= 31 fois plus rapide que test1

16
SERIE 2
Exercice 1 Exécuter le script contenu dans le m-file reste.m
a = input ('Entrez la valeur a : ');
b = input ('Entrez la valeur b : ');
res = rem (a, b);
str1 = 'Le reste est ';
str2 = ' quand ' ;
str3 = ' est divise par ';
disp ([str1 num2str(res) str2 ...
num2str(a) str3 num2str(b)])

Exercice 2 Modifier l'exercice 1 pour calculer a ^b et afficher :


La reponse est a ^b quand a est eleve a la puissance b

Exercice 3 Ecrire un script permettant de calculer 2^x,


x = {1 2 3 4 ….10}.

Exercice 4 Ecrivez une fonction fsincos permettant de calculer simultanément


Sin(x), cos(x) et .

Exercice 5 Corriger le code suivant pour calculer x, y et z


x=4
x+2=y
z=
Le code:
x=4
x+2=y
z=1/y^2Pi

Exercice 6 Corriger le code suivant pour calculer

N=input('Enter N )
for i=1:n
sum = 1/j + 1/(j+2)*(j+3)
end
disp( ' The answer is ' s])

17
3 Structures algorithmiques

1 Opérateurs booléens
2 Structures algorithmiques
2.1 Sélection - if...end et if...else...end
2.2 Répétition - for...end
2.3 Itération conditionnelle - while...end
2.4 Construction switch...case

1 Opérateurs booléens
Classés par ordre de priorité décroissante, les opérateurs booléens utilisés
par MATLAB sont les suivants :
– opérateurs booléens avec par ordre de priorité :
– les opérateurs de comparaison
– <, >, <= et >=
– égalité ==, non égalité ~=
– puis les opérateurs logiques
– et logique &
– ou logique |
– et logique court-circuité &&
– ou logique court-circuité ||
Les opérateurs logiques court-circuités sont des opérateurs pour lesquels le
résultat est acquis dès que l’évaluation du premier opérande permet d’affirmer le
résultat global sans évaluer le second opérande. Si a et b sont des variables
booléennes :
– a && b vaut false dès que a vaut false
– a || b vaut true dès que a vaut true.
D’autre part on rappelle qu’il n’existe pas dans MATLAB de “vrai” type booléen
: false est représenté par la valeur 0 et que true est représentée par la valeur 1
et par extension par toute valeur non nulle, ce qui est confirmé par l’évaluation
des expressions suivantes :

Exemple 1 :
>> 2&3
ans =
1 % true ET true vaut true
>> 2&0
ans =
0 % true ET false vaut false
18
>> 2|3
ans =
1 % true OU true vaut true
>> ~3
ans =
0 % le contraire de true (= 3) est false
>> 2==3
ans =
0 % l’égalité est bien celle des nombres et non celle des prédicats !

2 Structures algorithmiques

2.1 Sélection - if...end et if...else...end

Syntaxe

– if (expression booléenne) / script / end


– if (expression booléenne) / script si vrai / else / script si faux / end

Le symbole / remplace l’un des symboles séparateur : virgule (,), point-virgule (;) ou
saut de
ligne. L’usage du point-virgule est vivement conseillé pour éviter les affichages
souvent redondants.

Exemple 2 :

>> m = -1;
>> if (m<0) a =-m, end
a=
1

Cette autre présentation est plus lisible :

>> if (m<0)
a = -m ;
end

Utilisation de elseif

Lorsqu’il y a plus de deux alternatives, on peut utiliser la structure suivante :

if (exp1)
script1 (évalué si exp 1 est vraie)
elseif (exp2)
script2 (évalué si exp 2 est vraie)
elseif (exp3)
...
else

19
script (évalué si aucune des expressions exp1, exp2, . . . n’est vraie)
end

2.2 Répétition - for...end

Syntaxe

for k = liste / script / end

Le symbole / représente comme dans le paragraphe précédent un symbole


séparateur virgule (,), point-virgule (;) ou saut de ligne. D’autre part, il est préférable
de ne pas utiliser i et j comme indices puisque dans MATLAB i et j sont des variables
prédéfinies dont la valeur est

Exemple 3 :

>> x = [ ]; % initialisation
>> for k = 1 : 5
x = [x, sqrt(k)]
end

Boucles for emboîtées

Exemple 4:

>> for l = 1 : 3
for k = 1 : 3
A(l,k) = l^2 + k^2 ;
end
end
>> disp(A)
2 5 10
5 8 13
10 13 18

Utilisation de break

Il est possible de sortir directement d’une boucle for ou while en utilisant la


commande break :

Exemple 5 :

epsi = 1;
for n = 1 : 100
epsi = epsi / 2;
if ((epsi + 1) <= 1)
epsi = epsi*2
n

20
break
end
end

epsi =
2.2204e-016
n=
53

Le test (epsi + 1) <= 1 provoque la sortie de la boucle for `a la 53 ième itération.

2.3 Itération conditionnelle - while...end

Syntaxe

while (expression booléenne) / script / end

Exemple 6 :

>> n = 1;
>> while (2^n <= 100)
n = n + 1;
end
>> disp(n-1)
6

2.4 Construction switch...case

Syntaxe

switch (sélecteur)
case valeur 1, . . . / script 1 /
case Valeur 2, . . . / script 2 /
...
otherwise / script
end

Sélecteur désigne une expression dont les valeurs peuvent correspondre aux valeurs
associées aux différents case. Lorsque la valeur du sélecteur correspond à une
valeur de case, une fois le script correspondant exécuté, l’exécution se continue
immédiatement après le end.

Exemple 7 :

result = menu('Tableau des mentions', '< 11', '>= 11& < 12'...
,'>= 12& < 14','>=14' );
switch result
case 1 ,disp('Passable')
case 2 ,disp('Assez bien')

21
case 3 , disp(' Bien')
otherwise, disp('Tres bien')
end

SERIE 3 Structures algorithmiques

Exercice 1: Calculer la somme de la série .

Sachant que , déterminer la valeur de C. (Réponse: C


Exercice 2: Ecrire un programme permettant :
- de lire un nombre entier n entre 1 et 10
- d'afficher les n premières lettres de l'alphabet.
Exercice 3: Quel est le résultat du programme suivant :
x = 1;
if tan(73*pi*x/4) >= 0 % tan(
x = 2;
else
x = pi;
end
if floor(x) == x
x = 10;
else
x = 7;
end
if isprime(x) % cette fonction renvoie 1 si le nombre est premier, 0 dans le cas contraire
x = ’True’
else
x = ’False’
end
Exercice 4: Corriger le code suivant pour évaluer

x=lnspace(-4,4);
N = length x
for j = 1;N
if x(j)>=0 and x(i)<=1
f(j) = x(j);
elseif x(j)>1 or x(i)<2
f(j) = 2 - x
else
f(j) = zero;
end
22
Vérifier le code en traçant la fonction f(x).

23

Vous aimerez peut-être aussi