Vous êtes sur la page 1sur 76

Outils de Programmation pour les Mathématiques – Dr.

Mohammed Omari - Université d’Adrar

Dr. Omari Mohammed 1


Maître de Conférences Classe A
Université d’Adrar
Courriel : omarialgeria@gmail.com

SUPPORT DE COURS

Matière : Outils de Programmation pour les


Mathématiques
Niveau : 1ère Année Licence en Mathématiques et
Informatique
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

2
Matière : Outils de Programmation pour les
Mathématiques

Programme :
1- Environnement de MATLAB et Structures de Données.
2- Opérations Vectorielles et Matricielles.
3- Ensembles, Polynômes, Fonctions, Dérivation, Intégrales.
4- Programmation : Fonctions et Procédures.
5- Graphisme : Représentation Graphique des Résultats.
6- Utilisation des Fichiers : Lecture et Ecriture.
7- GUI : Interfaces Graphiques.

Bibliographie :
M. Mokhtari et A. Mesbah : Apprendre et maitriser Matlab. Springer.
B. Laurent : Documents pour les TPs de Matlab.

Evaluation : Juste le contrôle continu (pas d’examen final !!!)

• Tests de Cours : 50 % (4 tests, en éliminant la note la plus faible)


• Tests de TPs : 50 % (4 tests, en éliminant la note la plus faible)
• Les tests ne seront jamais rattrapés en cas d’absence. Néanmoins, une seule
absence de test est compensée par l’élimination de la note la plus faible.

Site web : www.mohammedomari.webs.com


Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

3
Chapitre 1
Environnement de MATLAB et Structures de Données

1. Introduction
• Développé par la société « The MathWorks », MATLAB (matrix laboratory) est un logiciel
commercial utilisé à des fins de calcul numérique.
• C’est un langage de programmation de quatrième génération et un environnement de
développement.
• MATLAB permet de manipuler des matrices, d'afficher des courbes et des données, de
mettre en œuvre des algorithmes, de créer des interfaces utilisateurs, et peut
s’interfacer avec d’autres langages comme le C, C++, Java, et Fortran.
• Il permet de réaliser des simulations numériques basées sur des algorithmes d'analyse
numérique.
• Il peut donc être utilisé pour la résolution approchée d'équations différentielles,
d'équations aux dérivées partielles ou de systèmes linéaires, etc...
• L'objectif de cette matière est premièrement l’apprentissage de ce logiciel parce qu'il
est de plus en plus utilisé dans la recherche scientifique, la simulation des
expérimentations des réseaux, en électronique, etc.
• Presque 50% des étudiants de licence et de master utilisent Matlab pendant leurs
projets de fin d’étude.

2. Environnement de MATLAB
• MATLAB a passé par plusieurs versions : La version la plus récente (R2014a) a été lancée
en mars 2014.
R2013b R2010b R2007b R14

R2013a R2010a R2007a R13SP2

R2012b R2009b R2006b

R2012a R2009a R2006a

R2011b R2008b R14SP3

R2011a R2008a R14SP2


Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar


4

• L’environnement de MATLAB possède 4 fenêtres :


a. Au centre l'invite de commande (command window).
b. En haut à droite le contenu de l'espace courant de travail (workspace).
c. A gauche la liste des fichiers du répertoire courant (current folder).
d. En bas à droite l'historique des commandes tapées (command history).
• MATLAB nous offre la possibilité d’entrer des commandes dans la fenêtre de

commandes avec le prompt « >> ».

• Toutes les commandes sont en minuscules et en anglais.


• Lorsque l’on entre une commande, MATLAB affiche systématiquement le résultat de
cette commande dans cette même fenêtre.
• La commande help permet de donner un aperçu des commandes disponibles :
>> help
HELP topics:
matlabxl\matlabxl - MATLAB Builder EX
matlab\demos - Examples.
matlab\graph2d - Two dimensional graphs.
matlab\graph3d - Three dimensional graphs.
matlab\graphics - Handle Graphics.
matlab\plottools - Graphical plot editing tools
matlab\scribe - Annotation and Plot Editing.
matlab\specgraph - Specialized graphs.
matlab\uitools - Graphical user interface components and tools
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

toolbox\local - General preferences and configuration information.


matlab\optimfun - Optimization and root finding. 5
matlab\codetools - Commands for creating and debugging code
matlab\datafun - Data analysis and Fourier transforms.
matlab\datamanager - (No table of contents file)
matlab\datatypes - Data types and structures.
matlab\elfun - Elementary math functions.

• Pour obtenir les informations concernant une section particulières, entrez help section :
>> help elfun
Elementary math functions.
Trigonometric.
sin - Sine.
sind - Sine of argument in degrees.
sinh - Hyperbolic sine.
asin - Inverse sine.
asind - Inverse sine, result in degrees.
asinh - Inverse hyperbolic sine.
cos - Cosine.
cosd - Cosine of argument in degrees.
cosh - Hyperbolic cosine.
acos - Inverse cosine.
acosd - Inverse cosine, result in degrees.
...

• Pour avoir de l’aide directement sur une commande, entrez help commande :
>> help sin
SIN Sine.
SIN(X) is the sine of the elements of X.
See also asin, sind.
Reference page in Help browser
doc sin

• helpwin ouvre une fenêtre contenant la liste des commandes Matlab ainsi que leurs
documentations.
• Matlab est un langage interprété, c’est à dire qu’il exécute directement (sans
compilation) les commandes qu’on entre dans la fenêtre de commandes.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

6
3. Manipulation de variables
• MATLAB gère les nombres entiers, réels, complexes, les chaînes de caractères ainsi que
les tableaux de nombres de façon transparente : Il est inutile de déclarer préalablement
le type de la variable que l’on manipule, même pour les tableaux et les matrices, il suffit
simplement d’assigner une valeur au nom de la variable avec l’instruction « = ».
>> a = 10
a =
10

• Lorsqu’on n’utilise pas des variables, le résultat de la commande est automatiquement


affecté à la variable ans qui peut être par la suite utilisée comme une variable normale :
>> 5 + 5
ans =
10
>> a = a + ans
a =
20

• Afin de cacher le résultat d’une commande, mettez un point-virgule « ; » à la fin de la


commande :
>> a = 10 ;

4. Les Scalaires
• Le type de scalaire manipulé est transparent pour l’utilisateur. Ce type peut être entier,
réel ou complexe.
>> a = 1
a =
1
>> b = 1.02
b =
1.0200
>> x = 1.45e4
x =
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

14500
>> c = 1 + 2.4i 7
c =
1.0000 + 2.4000i

• MATLAB fournie un ensemble des constants prédéfinis :


a. i, j le nombre imaginaire (racine carré de -1)
b. pi 3.1415...
c. eps 2.2204e-016
d. Inf nombre infini
e. realmax la valeur maximale absolue des réels
f. realmin la valeur minimale absolue des réels
>> i
ans =
0 + 1.0000i
>> pi
ans =
3.1416
>> eps
ans =
2.2204e-16
>> inf
ans =
Inf
>> realmax
ans =
1.7977e+308
>> realmin
ans =
2.2251e-308

• MATLAB traite un seul type d'objet : les matrices !


a. Les scalaires sont des matrices 1 x 1.
b. les vecteurs lignes sont des matrices 1 x n.
c. les vecteurs colonnes sont des matrices n x 1.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

5. Historique
8
• MATLAB conserve l'historique des commandes.
• Il est donc possible de récupérer des instructions déjà saisies en utilisant les touches de
flèches (← → ↑ ↓), et ensuite de les modifier dans le but de les réutiliser.

6. Variables d'environnement
• MATLAB garde en mémoire les variables qui ont été créées. On les voit en haut, à
gauche, lorsque MATLAB dispose d'une interface graphique. On outre, on peut les
afficher et les effacer par la ligne de commande :
a. who donne la liste des variables présentes dans l'espace de travail.
b. whos donne la liste des variables présentes dans l'espace de travail
ainsi que leurs propriétés.
c. what donne la liste des fichiers (.m) et (.mat) présents dans le
répertoire courant.
d. clear var1… varn efface les variables var1…varn de l'espace de travail.
e. clear efface toutes les variables crées dans l'espace de travail.
f. exist var vérifie si une fonction ou une variable existe dans le workspace.

>> who
Your variables are:
a ans
>> whos
Name Size Bytes Class Attributes
a 1x1 8 double
ans 1x1 8 double
>> what
MATLAB Code files in the current folder
C:\Users\omari\Documents\Research\Matlab\GUI

GLCSimulation file1 salesman test1


LEACH ps substr

>> clear a ans


>> who
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> exist a
ans = 9
0
>> a = 10 ;
>> exist a
ans =
1

• La commande clc permet d’effacer le contenu de la fenêtre de commande.


• Le symbole ‘%’ dans une ligne a pour effet que le reste de la ligne ne sera pas exécuté ;
ceci permet d'insérer des commentaires.
>> la = 10 % largeur
la =
10
>> lo = 20 % longueur
lo =
20
>> su = la * lo % surface = largeur * longueur
su =
200

• Si une commande ne peut être écrite sur une seule ligne, il suffira d'ajouter à la fin de la
ligne au moins trois points '...' et MATLAB concaténera cette ligne et la suivante (jusqu'à
un maximum de 1024 caractères).
>> s = 1/2 + 2/3 + 3/4 + 4/5 + 5/6 ...
+ 7/8 + 8/9 + 9/10 + 10/11 + 11/12 ...
+ 12/13 + 13/14 + 14/15 + 15/16 + ...
16/17 + 17/18 + 18/19 + 19/20
s =
15.5451

• Les commandes save et load permettent d’écrire (charger) toutes les variables du
workspace dans le fichier matlab.mat. Si un nom de fichier est spécifié (save myfile ou
load myfile) l’espace de travail est sauvegardé (chargé) conformément.
>> who
Your variables are:
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

a ans la lo s su
>> save 10
Saving to:
C:\Users\omari\Documents\Research\Matlab\GUI\matlab.mat
>> clear
>> who
>> load
Loading from: matlab.mat
>> who
Your variables are:
a ans la lo s su

7. Les Opérations Arithmétiques de Base :


• MATLAB fournie une séries des opérations arithmétiques de base :
 a+b addition
 a–b soustraction
 a/b division
 a*b multiplication
 a ^b ou power(a,b) mettre a à la puissance de b
 mod(a, b) le reste de la division entière de a sur b
 abs(a) la valeur absolue
 ceil(a) la valeur entière supérieure
 floor(a) la valeur entière inférieure
 round(a) la valeur entière la plus proche de a
 fix(a) la valeur entière
 a & b ou and(a,b) et logique
 a | b ou or(a,b) ou logique
 ~a ou not(a) négation logique
 xor(a,b) ou exclusif logique
 false valeur logique de faux
 true valeur logique de vrai
 a == b égalité
 a ~= b inégalité
 a>b supérieur
 a >= b supérieur ou égal
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

 a<b inférieur
11
 a <= b inférieur ou égal
 log(a) logarithme naturel
 log2(a) logarithme de la base 2
 log10(a) logarithme de la base 10
 conj(c) le conjugué d’un nombre complexe
 real(c) la partie réelle d’un nombre complexe
 imag(c) la partie imaginaire d’un nombre complexe
 angle(c) l’argument d’un nombre complexe
 abs(c) le module d’un nombre complexe

8. La commande format :
• Par défaut, MATLAB affiche les valeurs numériques réelles sous format de point fixe à 5
chiffres.
• On peut changer la façon dont les valeurs numériques sont affichées à comme suit:
a. format short point fixe, 5 chiffres (aussi short g)
b. format long point fixe, 15 chiffres (aussi long g)
c. format short e point flottant, 5 chiffres
d. format long e point flottant, 15 chiffres
e. format rational format rationnel
>> format short g
>> 15/7
ans =
2.1429
>> format long g
>> ans
ans =
2.14285714285714
>> format short e
>> ans
ans =
2.1429e+00

>> format long e


>> ans
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

ans =
2.142857142857143e+00 12
>> format rational
>> ans
ans =
15/7

9. Les Coordonnées Polaires :


• Un complexe est généralement représenté sous la forme algébrique ou cartésienne.
• Un complexe peut également être représenté sous la forme polaire ρeθi, où ρ est son
module et θ son argument.
>> c = 2 + 2i % forme algébrique ou cartésienne
c =
2.0000 + 2.0000i
>> theta = angle(c) % angle de c
theta =
0.7854
>> ro = abs(c) % module de c
ro =
2.8284
>> ro*exp(theta*i) % forme polaire
ans =
2.0000 + 2.0000i
>> [theta, ro] = cart2pol(2,2) % conversion au polaire
theta =
0.7854
ro =
2.8284
>> [x y] = pol2cart(theta, ro) % conversion au cartésien
x =
2.0000
y =
2
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

Chapitre 2
13
Opérations Vectorielles

1. Introduction
• MATLAB traite un seul type d'objet : les matrices !
a. Les scalaires sont des matrices 1 x 1.
b. les vecteurs lignes sont des matrices 1 x n.
c. les vecteurs colonnes sont des matrices n x 1.

2. Les Vecteurs
• Par défaut, le vecteur est une ligne à plusieurs colonnes.
• Un vecteur ligne peut être créé par énumération de ces valeurs (coordonnées) séparées
par des espaces ou des virgules:
>> v = [1 2.3 4 5]
v =
1.0000 2.3000 4.0000 5.0000

>> v = [1, 2.3, 4, 5]


v =
1.0000 2.3000 4.0000 5.0000

• Un vecteur ligne peut être aussi créé par description de la valeur initiale, l’incrément, et
la valeur finale :
>> v = [1 : 1 : 10]
v =
1 2 3 4 5 6 7 8 9
10
>> v = [1 : 0.5 : 10]
v =
Columns 1 through 9
1.0000 1.5000 2.0000 2.5000 3.0000
3.5000 4.0000 4.5000 5.0000

Columns 10 through 18
5.5000 6.0000 6.5000 7.0000 7.5000
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

8.0000 8.5000 9.0000 9.5000


14
Column 19
10.0000
>> v = [0 : pi/10: pi]
v =
Columns 1 through 9
0 0.3142 0.6283 0.9425 1.2566
1.5708 1.8850 2.1991 2.5133

Columns 10 through 11
2.8274 3.1416

• La fonction linspace(i, j, k) génère un vecteur de k éléments allant de i à j :


>> v = linspace(1, 10, 10)
v =
1 2 3 4 5 6 7 8 9
10

• La fonction logspace(i, j, k) génère un vecteur de k éléments allant de 10i à 10j :


v = logspace(0, 2, 5) % 10^0, 10^0, 10^0, 10^0, 10^0,
v =
1.0000 3.1623 10.0000 31.6228 100.0000
% 10^0, 10^1.5, 10^1, 10^1.5, 10^2

• Un vecteur colonne peut être créé par énumération de ces valeurs


(coordonnées) séparées par des points-virgules:
>> v = [1 ; 2.3 ; 4 ; 5]
v =
1.0000
2.3000
4.0000
5.0000

• Un vecteur colonne peut être obtenu à partir d’un vecteur ligne en utilisant les
opérations « trans-conjugué » (‘) et « transposé » (.‘):
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> v = [1 2.3 4 5]
v = 15
1.0000 2.3000 4.0000 5.0000

>> v' % transposé et trans-conjugé


ans =
1.0000
2.3000
4.0000
5.0000
>> w = [1 2.3 4+i 5]
w =
1.0000 2.3000 4.0000 +
1.0000i 5.0000

>> w' % trans-conjugué


ans =
1.0000
2.3000
4.0000 - 1.0000i
5.0000
>> w.' %transposé
ans =
1.0000
2.3000
4.0000 + 1.0000i
5.0000

• Les fonctions zeros et ones initialisent des vecteurs lignes (zeros(1, k) et ones (1, k)) ou
colonnes (zeros(k, 1) et ones(k, 1)) par des zéros ou des uns :
>> v = zeros(1,5)
v =
0 0 0 0 0
>> v = zeros(5,1)
v =
0
0
0
0
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

0
>> v = ones(1,5) 16
v =
1 1 1 1 1
>> v = ones(5,1)
v =
1
1
1
1
1

• La fonction rand initialise des vecteurs lignes (rand(1, k)) ou colonnes (rand(1, k)) par des
valeurs aléatoires entre 0 et 1 :
>> v1 = rand(1, 5) % 5 valeurs aléatoires (0–1)
v1 =
0.0975 0.2785 0.5469 0.9575 0.9649
>> v2 = rand(1, 5) % 5 autres valeurs aléatoires (0-1)
v2 =
0.1576 0.9706 0.9572 0.4854 0.8003
>> v3 = 10 * rand(1, 5) % 5 valeurs aléatoires (0-10)
v3 =
1.4189 4.2176 9.1574 7.9221 9.5949

3. Opérations sur Les Vecteurs


>> v = [1 2 3 4]; w = [2 4 6 8];
>> v + w % addition
ans =
3 6 9 12
>> v – w % soustraction
ans =
-1 -2 -3 -4
>> v * w' % produit scalaire
ans =
60
>> v .* w % produit terme-à-terme
ans =
2 8 18 32
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> v ./ w % division terme-à-terme


ans = 17
0.5000 0.5000 0.5000 0.5000
>> v + 3 % addition d’un scalaire
ans =
4 5 6 7
>> v - 3 % soustraction d’un scalaire
ans =
-2 -1 0 1
>> v * 3 % produit avec un scalaire
ans =
3 6 9 12
>> v / 3 % division sur un scalaire
ans =
0.3333 0.6667 1.0000 1.3333
>> v .^ 2 % mise à une puissance
ans =
1 4 9 16
>> x = [1 2 3]; y = [4 5 6 7]; z = [8 9];
>> v = [x y z] % concaténation
v =
1 2 3 4 5 6 7 8 9
>> length(v) % taille
ans =
9
>> a = [1 2]; b = [1; 2];
>> length(a)
ans =
2
>> length(b)
ans =
2
>> size(a) % nombre de lignes et de colonnes
ans =
1 2
>> size(b)
ans =
2 1
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

4. Adressage et Indexage
18
>> v = [1:1:5]*2
v =
2 4 6 8 10
ème
>> v(3) % 3 élément
ans =
6
>> v(2:4) % sous-vecteur du 2ème au 4ème élément
ans =
4 6 8
>> v(2:end) %sous-vecteur du 2ème au dernier élément
ans =
4 6 8 10

>> v([5 3 1]) % les éléments v(5), v(3), et v(1)


ans =
10 6 2

5. Opérations Statistiques
>> x = [2 4 5 6 7];
>> max(x) % maximum
ans =
7

>> min(x) % minimum


ans =
2

>> sum(x) % somme des valeurs


ans =
24
>> prod(x) % produit des valeurs
ans =
1680
>> mean(x) % moyenne des valeurs
ans =
4.8000
>> median(x) % la valeur médiane (après le tri)
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

ans =
5 19
>> var(x) % la variance des valeurs
ans =
3.7000
>> std(x) % l’écart type des valeurs
ans =
1.9235

() =  

() =  

()
() = ̅ =

( + 1)   = 2 + 1 ( )
() = ( ) + ( + 1) 
  = 2 ( )
2

1
() = ( − ̅ )


 () = !()
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

6. Affichage Graphique des Fonctions:


20
• Les possibilités graphiques de MATLAB sont innombrables. Pour créer le graphe de la
fonction sinus par exemple, nous commençons par définir deux vecteurs:
x = 0:0.5:20; y = x^2;
• ensuite nous construisons le graphe au moyen de la commande:
plot(t,y)
• On peut superposer un quadrillage (ou le faire disparaître) par les commandes:
grid (ou grid off)
• On peut aussi mettre un titre, mettre des étiquettes aux axes:
title('graphe de sinus'), xlabel('x'), ylabel('sinus(x)')
>> x = linspace(0, 100, 1000);
% créer une liste de 1000 éléments
>> y = x.^2; % obtenir leurs carrées
>> plot(x,y) % afficher le graphe des carrées
>> grid % afficher la grille
>> title('y = x^2'), xlabel('x'), ylabel('y')
% afficher le titre et les étiquettes

• Afin d'afficher deux ou plusieurs graphes en même temps, une série des coordonnées
(x,y) est introduise à la fonction plot: plot(x1, y1, x2, y2, …) .
• La légende (surtout en cas de plusieurs graphes) peut être affichée en utilisant la
commande legend(legend1, legend2, …).
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• La commande legend('show') permet de montrer la légende, par contre la commande


21
legend('hide') permet de la cacher.
>> x = linspace(1,100, 100);
% créer une liste de 100 éléments
>> y1 = x; % 1ère fonction
>> y2 = 2*x+1; % 2ème fonction
>> y3 = -x+3; % 3ème fonction
>> plot(x, y1, x, y2, x, y3)
>> legend('x', '2x + 1', '-x + 3')
>> grid
>> legend('hide')
>> legend('show')
>> title('graphe de trois fonctions')
>> xlabel('x'), ylabel('y')

• La commande axis([xmin xmax ymin ymax]) permet d'introduire la valeur maximale et


minimale pour chaque axe. La commande axis auto permet de choisir automatiquement
les valeurs limites de chaque axe.
>> axis([1 5 1 5]) % échelle unique pour x et y
>> axis([1 5 1 10]) % échelle différent pour x et y
>> axis auto % échelle automatique pour x et y
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• La commande plot(x, y, LineSpec) affiche un graphe avec la spécification donnée par


22
LineSpec qui est formée au plus de trois valeurs: style de ligne, type de marquer, et la
couleur. Par exemple plot(x, y, '-+b') affiche un graphe bleu de la forme -+-+-+…
• Noter bien que la spécification 'type de marqueur' est utilisée pour les points choisies
(vecteurs x et y), par contre la spécification 'style de ligne' couvre toute la courbe.

Symbole Style de ligne


- Ligne solide (par défaut)
-- La ligne non continue
: La ligne pointillée
-. La ligne tiret-point

Symbole Type de Marqueur


o Cercle
+ Signe plus
* Astérisque
. Point
x Croix
s Carré
d Diamant
^ Triangle vers le haut
v Triangle vers le bas
> Triangle pointant à droite
< Triangle pointant à gauche
p Pentagramme
h Hexagramme

Symbole Couleur
y Jaune
m Magenta
c Cyan
r Rouge
g Vert
b Bleu
w Blanc
k Noir
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

23
>> x = linspace(1,100, 10); % 10 éléments
>> y1 = x;
>> y2 = 2*x+1;
>> y3 = -x+3;
>> plot(x, y1, '-b', x, y2, '--or',x, y3, ':vg')
% y1 en bleu et ligne solide
% y2 en rouge et ligne non-continue, marquer o
% y3 en vert et ligne en pointillé

7. Tri d'un Vecteur:


• Deux opérations particulièrement utiles à effectuer sur des vecteurs sont les opérations
de tri et de recherche.
• La commande sort(A) retourne un vecteur trié en ordre croissant depuis un vecteur
d'entrée A.
• En fait, la commande sort retourne deux vecteurs: vecteurs des valeurs triées et
vecteurs de leurs indices avant le tri.
>> A = fix(100*rand(1, 10)) %10 valeurs entre 0 et 100
A =
85 62 35 51 40 7 23 12 18 23

>> sort(A)
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

ans =
7 12 18 23 23 35 40 51 62 85 24

>> [svecteur ivecteur] = sort(A)


svecteur =
7 12 18 23 23 35 40 51 62 85
ivecteur =
6 8 9 7 10 3 5 4 2 1

• Les commandes sort(A, 'ascend') et sort(A, 'descend') retournent un vecteur trié en


ordre croissant (décroissant respectivement).
>> sort(A, 'ascend')
ans =
7 12 18 23 23 35 40 51 62 85

>> sort(A, 'descend')


ans =
85 62 51 40 35 23 23 18 12 7

• Le tri d'un vecteur est basé sur les caractéristiques des éléments du vecteur d'entrée:
a. Les entiers et les réels: Selon leurs valeurs.
b. Les complexes: Selon le module puis l'argument (ou la phase).
c. Les caractères: Selon le code ascii.
>> A = [5 7 2 8]
A =
5 7 2 8

>> sort(A)
ans =
2 5 7 8

>> B = ['s' 'b' 'k' 'v' '$' '0']


B =
Sbkv$0 % concaténés par défaut

>> B = ['s';'b';'k';'v'; '$'; '0']


% on utilise un vecteur colonne
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

B =
s 25
b
k
v
$
0

>> sort(B)
ans =
$
0
b
k
s
v

>> uint8(ans) % code ascii


ans =
36
48
98
107
115
118

>> C = [1+2i 2+2i -1+2i -2+2i]


C =
1.0000 + 2.0000i 2.0000 + 2.0000i -1.0000 + 2.0000i -
2.0000 + 2.0000i

>> [cvecteur ivecteur] = sort(C)


cvecteur =
1.0000 + 2.0000i -1.0000 + 2.0000i 2.0000 + 2.0000i -
2.0000 + 2.0000i
ivecteur =
1 3 2 4

>> abs(cvecteur)
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

ans =
2.2361 2.2361 2.8284 2.8284 26

>> angle(cvecteur)
ans =
1.1071 2.0344 0.7854 2.3562

• Une liste des chaînes de caractères est triée selon leurs premiers caractères.
Néanmoins, ces chaînes doivent avoir la même taille pour être stocké dans le même
vecteur.
• Par ailleurs, si les chaînes ont des tailles différentes, on les stocke d'abord dans un cellstr
avant d'effectuer le tri.
>> B = ['CCC'; 'AAA';'BBB']
% chaînes de caractères de même taille
B =
CCC
AAA
BBB

>> sort(B)
ans =
AAA
BBB
CCC

>> B = ['CC'; 'AAA';'BBBB']


% chaînes de caractères de différentes tailles
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.

>> B = ['CC '; 'AAA ';'BBBB']


% rendre les chaînes de caractères à la même
% taille en ajoutant des espaces à la fin
B =
CC
AAA
BBBB
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> sort(B)
% résultat incorrect 27
ans =
AA
BBA
CCBB

>> B = cellstr(B)
B =
'CC'
'AAA'
'BBBB'

>> sort(B)
% résultat correct
ans =
'AAA'
'BBBB'
'CC'

8. Recherche d'un Elément dans un Vecteur:


• La commande find(A) retourne un vecteur des indices des valeurs non-nulles d'un
vecteur A.
• find(cond A) retourne les indices des valeurs satisfaisantes d'une condition sur le
vecteur A.
>> A = fix(100*rand(1, 10))-50 % 10 valeurs entre -50 et 50
A =
-27 -15 32 -49 -46 -34 14 23 14 -5

>> A(2) = 0; A(6) = 0 % rendre quelques valeurs nulles


A =
-27 0 32 -49 -46 0 14 23 14 -5

>> j = find(A) % sauvegarder les indices


ans =
1 3 4 5 7 8 9 10
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> A(j) % afficher les valeurs non nulles


ans = 28
-27 32 -49 -46 14 23 14 -5

>> [Lin Col B] = find(A) % i, j, A[i, j]


Lin =
1 1 1 1 1 1 1 1
Col =
1 3 4 5 7 8 9 10
B =
-27 32 -49 -46 14 23 14 -5

>> find(A>=0)
ans =
2 3 6 7 8 9

>> find(A<0)
ans =
1 4 5 10
>> find(A>30)
ans =
3

>> find(A==30)
ans =
Empty matrix: 1-by-0

>> find(A==14)
ans =
7 9

• La commande find(A, k) ou find(A, k, 'first') retourne au plus un vecteur des k premiers


indices des valeurs non-nulles d'un vecteur A.
• La commande find(A, k, 'last') retourne au plus un vecteur des k derniers indices des
valeurs non-nulles d'un vecteur A.
• Les commandes find(cond A, k, 'first') et find(cond A, k, 'first') filtrent le vecteur A selon
la condition introduite et prennent les k premiers ou k derniers indices.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> find(A>=0)
ans = 29
2 3 6 7 8 9

>> find(A>=0, 2)
ans =
2 3

>> find(A>=0, 2, 'first')


ans =
2 3

>> find(A>=0, 2, 'last')


ans =
8 9

9. Insertion, Modification et Suppression d'un Elément dans un Vecteur:


• La modification d'un élément (ou plusieurs éléments) dans un vecteur peut être effectué
par de son index (ou leurs index) comme suit:
• A(i1): l'élément i1 du vecteur A.
• A(i1: i2): un sous-vecteur de A à partir de l'index i1 jusqu'à l'index i2.
• A(i1: pas: i2): un sous-vecteur de A à partir de l'index i1 jusqu'à l'index i2 avec un pas.
• A([i1 i2 … in]): un sous-vecteur de A en prendre en considération les indices i1, i2, …, in.

>> A = zeros(1, 10)


A =
0 0 0 0 0 0 0 0 0 0

>> B = ones(1, 10)


B =
1 1 1 1 1 1 1 1 1 1

>> A(4) = B(7) % un seul élement


A =
0 0 0 1 0 0 0 0 0 0

>> A(1:3) = B(5:7) % un sous-vecteur contigu


Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

A =
1 1 1 1 0 0 0 0 0 0 30

>> A(5:2:9) = B(1:2:5) % un sous vecteur non contigu


A =
1 1 1 1 1 0 1 0 1 0
>> A([6 8 10]) = B(8:10) % des éléments bien déterminés
A =
1 1 1 1 1 1 1 1 1 1

• La suppression d'un ou plusieurs éléments d'un vecteur peut être effectuée en utilisant
le vecteur vide []:
>> A(5) = []
A =
1 2 3 4 6 7 8 9 10

>> A(1:3) = []
A =
4 6 7 8 9 10

• L'insertion d'un nouvel élément dans un vecteur nécessite l'index exact de l'élément afin
de concaténer la partie gauche, le nouvel élément et la partie droite, en construisant le
nouveau vecteur:
>> A = [2 4 8 10 12] % vecteur de 5 élément
A =
2 4 8 10 12
>> x = 6; i = 3; % élément à insérer et son index
>> A = [A(1:i-1) x A(i:end)]
% concaténer partie gauche + élément + partie droite
A =
2 4 6 8 10 12
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

Chapitre 3
31
Calcul Matriciel

1. Introduction
• Les matrices suivent la même syntaxe que les vecteurs.
• Les composantes des lignes sont séparées par des virgules ou des espaces et chaque
ligne est séparée de l'autre par un point virgule.
• La commande repmat(val, lin, col) crée une matrice pleine des valeurs dupliqués .
• Les commandes zeros(lin, col) et ones(lin, col) créent des matrices des zéros et des uns,
respectivement.
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9

>> A = repmat(1, 4, 3)
A =
1 1 1
1 1 1
1 1 1
1 1 1

>> A = zeros(2, 2), B= ones(2, 3)


A =
0 0
0 0

B =
1 1 1
1 1 1

• Comme pour les vecteurs, une matrice peut être définie aléatoirement en utilisant les
commande rand(lin, col) et randi(max, lin, col) :
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> A = rand(3, 3) %des valeurs aléatoires entre 0 et 1


A = 32
0.9575 0.9706 0.8003
0.9649 0.9572 0.1419
0.1576 0.4854 0.4218

>> A = randi(10, 3, 3) %des valeurs entiers aléatoires


% entre 1 et 10
A =
10 7 10
8 1 7
10 9 8

• La matrice identité peut être obtenue par la commande eye(lin, col) :


>> eye(3, 3) % matrice identité de 3x3
ans =
1 0 0
0 1 0
0 0 1

>> eye(4, 4) % matrice identité de 4x4


ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

>> eye(4, 3) % matrice identité de 4x3


ans =
1 0 0
0 1 0
0 0 1
0 0 0

• Une matrice peut être produise à partir d’une autre matrice ou un autre vecteur en
utilisant la commande reshape(Vec, [lin, col]) en changeant sa dimension (le nombre
d’éléments doit être identique):
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> V = [1 2 3 4 5 6 7 8 9 10 11 12]
% vecteur ligne de 12 éléments 33
V =
1 2 3 4 5 6 7 8 9 10
11 12

>> A = reshape(V, 3, 4) % matrice identité de 3x4


A =
1 4 7 10
2 5 8 11
3 6 9 12

>> A = reshape(V, 4, 3) % matrice identité de 4x3


A =
1 5 9
2 6 10
3 7 11
4 8 12

>> A = reshape(V, 2, 6) % matrice identité de 2x6


A =
1 3 5 7 9 11
2 4 6 8 10 12

>> A = reshape(V, 6, 2) % matrice identité de 6x2


A =
1 7
2 8
3 9
4 10
5 11
6 12
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

2. Propriétés des matrices


34
• Matlab fournie quelque opérations pour extraire les propriétés de base des matrices :
>> A = [1 2 1; 1 1 2; 2 2 1]
A =
1 2 1
1 1 2
2 2 1

>> det(A) % déterminant


ans =
3

>> size(A) % taille (lignes , colonnes)


ans =
3 3

>> diag(A) % le vecteur du diagonal


ans =
1
1
1

>> trace(A) % la trace (somme su diagonal)


ans =
3

>> triu(A) % matrice triangulaire supérieure


ans =
1 2 1
0 1 2
0 0 1

>> tril(A) % matrice triangulaire inférieure


ans =
1 0 0
1 1 0
2 2 1
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> A' % le transposé 35


ans =
1 1 2
2 1 2
1 2 1

>> A_1 = inv(A) % l’inverse


A_1 =
-1.0000 0 1.0000
1.0000 -0.3333 -0.3333
0 0.6667 -0.3333

>> A*A_1
ans =
1.0000 0 -0.0000
0 1.0000 0
0 0 1.0000

3. Rang d’une matrice et forme échelonnée :


• Une matrice A est dite échelonnée en lignes si :
a. Chaque ligne non nulle de A commence avec strictement plus de 0 que la
ligne précédente.
b. Les lignes nulles (ne contenant que des 0) de A viennent en bas après les
lignes non nulles.
• Une matrice A est dite en forme échelonnée réduite si :
a. A est échelonnée.
b. Pour chaque ligne, la première valeur non-nulle est la seule non-nulle dans sa
colonne.
• La commande rref retourne la forme échelonnée réduite. Malheureusement, Matlab
(version 2012) ne fournie aucune commande pour la forme échelonnée (sans
réduction). En conséquence, le programmeur doit programmer cette commande en cas
de besoin.
• Le rang d’une matrice A est le nombre de lignes non nulles dans sa forme échelonnée en
lignes.
• La commande rank retourne le rang d’une matrice.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> A = [1 2 3; 1 3 2; 2 3 2] % matrice singulière


A = 36
1 2 3
1 3 2
2 3 2

>> det(A)
ans =
-5

>> rref(A) % forme échelonnée réduite


ans =
1 0 0
0 1 0
0 0 1

>> rank(A) % rang


ans =
3

% construction de la forme échelonnée (non réduite)


>> A(1,:) = A(1,:) / A(1, 1) % division sur le pivot a11
A =
1 2 3
1 3 2
2 3 2

>> A(2,:) = A(2,:) - A(1, :), A(3,:) = A(3, :) - 2*A(1,:)


% rendre nulle les valeurs de la première colonne
% après a11
A =
1 2 3
0 1 -1
2 3 2
A =

1 2 3
0 1 -1
0 -1 -4
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> A(2,:) = A(2,:)/A(2,2) % division sur le pivot a22


A = 37
1 2 3
0 1 -1
0 -1 -4

>> A(3,:) = A(3, :) + A(2,:)


% rendre nulle les valeurs de la deuxième colonne
% après a22
A =
1 2 3
0 1 -1
0 0 -5

>> B = [1 2 3; 2 4 6; 2 3 2] % matrice non-singulière


B =
1 2 3
2 4 6
2 3 2

>> det(B)
ans =
0

>> rref(B) % matrice non-singulière avec une ligne nulle


ans =
1 0 -5
0 1 4
0 0 0

>> rank(B)
ans =
2

>> C = [1 2 3; 2 4 6; 3 6 9] % matrice non-singulière


C =
1 2 3
2 4 6
3 6 9
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> det(C)
ans = 38
0

>> rref(C) % matrice non-singulière avec deux lignes nulles


ans =
1 2 3
0 0 0
0 0 0

>> rank(C)
ans =
1

4. Opérations sur les matrices


• En algèbre, Il y a plusieurs opérations de base qui s’effectuent sue les matrices.
Néanmoins, ces opérations souvent exigent des pré-conditions avant s’exécuter :
a. A + B, A - B : (addition et soustraction) A et B ont la même dimension, sauf
pour les scalaires.
b. A.*B, A./B : (multiplication et division terme à terme) A et B ont la même
dimension, sauf pour les scalaires.
c. A*B : (multiplication) le nombre des colonnes de A égale au nombre de lignes
de B, sauf pour les scalaires.
d. A/B : (division) A et B sont carrées et de même dimension, et B est singulière
(inversible, ou déterminant non nulle) , sauf pour les scalaires.
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9

>> A + 2
ans =
3 4 5
6 7 8
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

9 10 11
>> A - 2 39
ans =
-1 0 1
2 3 4
5 6 7

>> A * 2
ans =
2 4 6
8 10 12
14 16 18

>> A^2 % A*A


ans =
30 36 42
66 81 96
102 126 150

>> A.^2 % mettre au carré les éléments de A


ans =
1 4 9
16 25 36
49 64 81

>> 2.^A % mettre chaque élément comme une puissance


ans =
2 4 8
16 32 64
128 256 512

>> A/2
ans =
0.5000 1.0000 1.5000
2.0000 2.5000 3.0000
3.5000 4.0000 4.5000

>> B = [1 1 2; 1 1 1; 2 1 1]
B =
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

1 1 2
1 1 1 40
2 1 1

>> A+B
ans =
2 3 5
5 6 7
9 9 10

>> A-B
ans =
0 1 1
3 4 5
5 7 8

>> A*B
ans =
9 6 7
21 15 19
33 24 31

>> A.*B
ans =
1 2 6
4 5 6
14 8 9

>> A/B
ans =
1 2 -1
1 5 -1
1 8 -1

>> A./B
ans =
1.0000 2.0000 1.5000
4.0000 5.0000 6.0000
3.5000 8.0000 9.0000
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• Comme pour les vecteurs, la commande find(A) trouve les valeurs non nulles dans une
41
matrice. find(cond A) trouve les valeurs satisfaisantes de la condition en question.
>> A = [1 0 2; 4 5 0; 7 0 8]
A =
1 0 2
4 5 0
7 0 8

>> [lin col val] = find(A) % trouver les valeurs non nulles
lin =
1
2
3
2
1
3

col =
1
1
1
2
3
3

val =
1
4
7
5
2
8

>> [lin col val] = find(A>5) % trouver les valeurs


% supérieures à 5
lin =
3
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

3
42
col =
1
3

val = % valeurs logiques (true, true, …


1
1

>> ind = sub2ind(size(A), lin, col)


% convertir les indices lin, col
% en indices linéaires
ind =
3
9

>> A(ind) % les valeurs > 5


ans =
7
8
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

10. L’indexage dans une matrice:


43
• La modification d'un élément (ou plusieurs éléments) dans une matrice peut être
effectué par de son index comme suit:
• A(i), A(i, j): l'élément de l’index i ou (i, j) de la matrice A.
>> A = [1 2 3; 4 5 6; 7 8 9]
A =

1 2 3
4 5 6
7 8 9

>> A(7) % indexage linéaire


ans =
3

>> A(1, 3) % indexage ligne-colonne


ans =
3

>> index = sub2ind(size(A), 1, 3)


% conversion de l’indexage ligne-colonne
% à l’indexage linéaire
index =
7

>> [i, j] = ind2sub(size(A), 7)


% conversion de l’indexage linéaire
% à l’indexage ligne-colonne
i =
1

j =
3
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• A(i: j), A(i1: i2, j1: j2): une sous-matrice de A à partir de l'index linéaire i jusqu'à l'index j (i1
44
et i2 index des lignes, j1 et j2 index des colonnes).
• A(i: pas: j), A(i1: pas: i2, j1: pas: j2): une sous-matrice de A à partir de l'index i jusqu'à
l'index j avec un pas (i1 i2 index des lignes, j1 j2 index des colonnes).
• A([i1 i2 … in]), A([i1 i2 … in] ,[j1 j2 … jn]): une sous-matrice de A en prendre en considération
les indices i1, i2, …, in (pour l’indexage ligne-colonne, on considère i1,i2,…,in des indices
des lignes, j1,j2,…,jn indices des colonnes).
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9

>> A(1: 5)
ans =
1 4 7 2 5

>> A(1:2:5)
ans =
1 7 5

>> A(1: 2, 1:2)


ans =
1 2
4 5
>> A(1:2:3, 1:2:3)
ans =
1 3
7 9

>> A([1 5 6 8])


ans =
1 5 8 6
>> A([1 3], [1 2])
ans =
1 2
7 8
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> A(1,:)
ans = 45
1 2 3

>> A(:,2)
ans =
2
5
8

>> A(:,:)
ans =
1 2 3
4 5 6
7 8 9

>> A(:)
ans =
1
4
7
2
5
8
3
6
9

11. L’Affectation et la Modification et Suppression dans une matrice:


• L’affectation d’un scalaire dans une matrice indicée généralise le scalaire sur toute la
matrice.
• L’affectation d’une matrice à une autre exige l’égalité des tailles des deux matrices.
>> A = ones(4,4)
A =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> A(1:2, 1:2) = 2 % affectation d’un scalaire dans


% une sous-matrice indicés 46
A =
2 2 1 1
2 2 1 1
1 1 1 1
1 1 1 1

>> A(1:4, 1:4) = 2 % affectation d’un scalaire dans


% une sous-matrice indicés
A =
2 2 2 2
2 2 2 2
2 2 2 2
2 2 2 2

>> A = 2 % affectation d’un scalaire dans une matrice


% sans indice rend la matrice comme scalaire
A =
2

>> A = ones(4,4)
A =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1

>> B = zeros(4, 4)
B =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> B(3:4, 3:4) = 2


B = 47
0 0 0 0
0 0 0 0
0 0 2 2
0 0 2 2

>> A(1:2,1:2) = B(3:4, 3:4)


% affectation d’une sous-matrice à une autre
A =
2 2 1 1
2 2 1 1
1 1 1 1
1 1 1 1

• La suppression d'un ou plusieurs éléments d'un vecteur peut être effectuée en utilisant
le vecteur vide []:
>> A = reshape(linspace(1, 16, 16), [4, 4])
A =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

>> A(1,:) = [] % supprimer une ligne


A =
2 6 10 14
3 7 11 15
4 8 12 16

>> A(:,2) = [] % supprimer une colonne


A =
2 10 14
3 11 15
4 12 16
>> A(4) = [] % supprimer un élément
A =
2 3 4 11 12 14 15 16
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• La concaténation des matrices se fasse de la même manière que les vecteurs:


48
>> A = ones(3,3)
A =
1 1 1
1 1 1
1 1 1

>> B = zeros(3, 3)
B =
0 0 0
0 0 0
0 0 0

>> C = [A B; B A]
C =
1 1 1 0 0 0
1 1 1 0 0 0
1 1 1 0 0 0
0 0 0 1 1 1
0 0 0 1 1 1
0 0 0 1 1 1

12. Les fonctions appliquées sur les matrices:


• Lorsqu’une matrice est fournie en entrée pour une fonction, généralement une matrice
des fonctions des éléments est produise :
>> A = reshape(linspace(1, 16, 16), [4, 4]) - 10
A =
-9 -5 -1 3
-8 -4 0 4
-7 -3 1 5
-6 -2 2 6

>> sin(A)
ans =
-0.4121 0.9589 -0.8415 0.1411
-0.9894 0.7568 0 -0.7568
-0.6570 -0.1411 0.8415 -0.9589
0.2794 -0.9093 0.9093 -0.2794
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> abs(A)
ans = 49
9 5 1 3
8 4 0 4
7 3 1 5
6 2 2 6

>> sort(A)
ans =
-9 -5 -1 3
-8 -4 0 4
-7 -3 1 5
-6 -2 2 6

>> sum(A)
ans =
-30 -14 2 18

>> sum(sum(A))
ans =
-24

>> prod(A)
ans =
3024 120 0 360

>> prod(prod(A))
ans =
0

>> min(A)
ans =
-9 -5 -1 3

>> max(A)
ans =
-6 -2 2 6
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> mean(A)
ans = 50
-7.5000 -3.5000 0.5000 4.5000

13. Les Matrices Spéciales:


• Matlab définit plusieurs fonctions afin de produire des matrices très connues en
mathématiques :
>> pascal(4)
ans =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20

>> toeplitz([1 2 3 4 5], [1 2 3 4 5])


ans =
1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
>> rosser('single')
ans =
611 196 -192 407 -8 -52 -49 29
196 899 113 -192 -71 -43 -8 -44
-192 113 899 196 61 49 8 52
407 -192 196 611 8 44 59 -23
-8 -71 61 8 411 -599 208 208
-52 -43 49 44 -599 411 208 208
-49 -8 8 59 208 208 99 -911
29 -44 52 -23 208 208 -911 99
>> vander([1 2 3 4])
ans = % A(i, j) = v(i)^(n-j)
1 1 1 1
8 4 2 1
27 9 3 1
64 16 4 1
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

Chapitre 4 51

Résolution des Systèmes Linéaires et Non-Linéaires

1. Résolutions des Systèmes Linéaires


• Un système linéaire est un ensemble de n équations à p variables de la forme :
  +    + ⋯ +  & & = '
$
  +   + ⋯ + & & = ' 
# ⋮
"
 + 
  + ⋯ + 
& & = '

où  ) ∈ +, '- ∈ +,  ∈ {1, … , }, 1 ∈ {1, … , }.


Les  ) sont appelés les coefficients du système ; les '- sont le second membre du
système (ou la partie gauche).
• Exemple :
 + 23 = 5 
2
 − 3 = −1
Les variables sont x et y,  = 1,   = 2,  = 1,  = −1, ' = 5, ' = −1.
• En calcul matriciel, un système linéaire s’écrit comme en deux formes :
o AX = B, où
 A matrice des coefficients.
 X vecteur colonne des inconnues.
 B vecteur colonne comme second membre.

 
Exemple : (système su dessus)
1 2 5
5=6 7, 8 = 637  6 7, 9=6 7
1 −1  −1
o XA = B, où
 A matrice des coefficients.
 X vecteur ligne des inconnues.
 B vecteur ligne comme second membre.
Exemple : (système su dessus)
1 1
5=6 7, 8 = : 3;  :  ;, 9 = :5 − 1;
2 −1
• On appelle opérations élémentaires sur les lignes L1, …, Ln du système (S) l’un des
trois opérations suivantes :
o 1. Multiplier la ligne Li par un scalaire α non nul, et on note : Li ← αLi,
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

o 2. Ajouter à la ligne Li k fois une autre ligne Lj et on note : Li ←Li + kLj ,


52
o 3. Echanger les lignes Li et Lj , et on note : Li ↔ Lj .
• Exemple :
 + 23 = 5 
Le système 2
 − 3 = −1
est équivalent à :

2 + 43 = 10
2
 − 3 = −1
(ligne 1 multipliée par 2)

 + 23 = 5 
2
3 + 33 = 9
(ligne 1 multipliée par 2 ajoutée à ligne 2)

2. Résolution d’un système linéaire


• Matlab fournie plusieurs techniques afin de résoudre un système linéaire.
Néanmoins, il reste à l’utilisateur de vérifier la compatibilité du système linéaire (s’il
existe solution).
• Par exemple, si le déterminant de A est non-nul alors le système accepte une
solution. Par contre, si le déterminant est nul le système peut accepter un nombre
infini de solution ou un ensemble vide des solutions
• La commande X = A\B fait résoudre le système linéaire AX = B (noter l’antislash).
• La commande X = B/A fait résoudre le système linéaire XA = B (noter le slash).
>> A = [1 2; 3 4], B = [14 32]'
A =
1 2
3 4

B =
14
32

>> X = A\B
X =
4
5

>> A = [1 2; 3 4]', B = [14 32]


A =
1 3
2 4
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

B =
14 32 53

>> X = B/A
X =
4 5

• On peut calculer directement l’inverse de A en le multipliant par B. Il faut noter que


la multiplication matricielle n’est pas commutative !
• La commande X = inv(A)*B fait résoudre le système linéaire AX = B.
• La commande X = B*inv(A) fait résoudre le système linéaire XA = B.
>> A = [1 2; 3 4], B = [14 32]'
A =
1 2
3 4
B =
14
32

>> X = inv(A)*B
X =
4
5

>> A = [1 2; 3 4]', B = [14 32]


A =
1 3
2 4

B =
14 32

>> X = B*inv(A)
X =
4 5
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• Pour les commande A\B et B/A, si la matrice A n’est pas singulière, le résultat est
54
(0/0) pour un nombre infini de solutions, et (k/0, k≠0) pour l’ensemble vide ().Pour
les commande inv(A)*B et B*inv(A), si la matrice A n’est pas singulière, le résultat est
toujours (k/0, k≠0).
>> A = [1 1; 2 2], B = [2 4]'
A =
1 1
2 2

B =
2
4

>> A\B
Warning: Matrix is singular to working precision.
ans =
0/0
0/0

>> A = [1 1; 2 2], B = [2 5]'


A =
1 1
2 2

B =
2
5

>> A\B
Warning: Matrix is singular to working precision.
ans =
1/0
-1/0

>> inv(A)*B
Warning: Matrix is singular to working precision.

ans =
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

1/0 55
1/0

• Une deuxième méthode pour résoudre un système linéaire (AX = B) est de faire
décomposer la matrice A à la multiplication de 2 matrices triangulaires L et U
(inférieure et supérieure), ensuite résoudre deux systèmes linéaires comme suit :
o Résoudre premièrement LY = B.
o Ensuite, résoudre UX = Y.
>> A = [1 2; 3 4], B = [14 32]'
A =
1 2
3 4

B =
14
32

>> [L U] = lu(A)
L =
1/3 1
1 0

U =
3 4
0 2/3

>> Y = L\B
Y =
32
10/3

>> X = U\Y
X =
4
5
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• Une troisième méthode pour résoudre un système linéaire (AX = B) est de faire
56
concaténer les deux matrice A et B dans une nouvelle matrice C, ensuite extraire la
forme échelonnée réduite de C. La solution est stockée dans la dernière colonne de
C.
>> A = [1 2; 3 4], B = [14 32]'
A =
1 2
3 4

B =
14
32

>> C = [A B]
C =
1 2 14
3 4 32

>> rref(C)
ans =

1 0 4
0 1 5

• Une quatrième méthode pour résoudre un système linéaire (AX = B) est de faire
appeler la commande linsolve(A, B).
>> A = [1 2; 3 4], B = [14 32]'
A =
1 2
3 4

B =
14
32

>> X = linsolve(A, B)
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

X =
4 57
5

3. Résolutions des équations et des inéquations, linéaires et non-linéaires


• Matlab utilise la commande solve afin de résoudre les équations et les inéquations,
les systèmes linéaires et non linéaires.
• Tout d’abord, il est nécessaire de déclarer des variables symboliques des équations
(ou inéquations, …) en utilisant la commande syms.
• Il faut noter que solve retourne des solutions sous forme symbolique ou formelle au
lieu de numérique (racine de 2 à la forme numérique de 1.4142 et la forme formelle
2^(1/2)).
>> solve(x^2-1) % résoudre x2 – 1 = 0
Undefined function or variable 'x'.

>> syms x % definer la variable symbolique x


>> solve(x^2-1) % résoudre x2 – 1 = 0
ans =
1
-1

>> solve(x^2-1 == 1) % résoudre x2 – 1 = 1


ans =
2^(1/2)
-2^(1/2)

• Matlab peut aussi résoudre des équations de forme générale ou paramétrique.


>> syms x a b c
>> solve(a*x+b == 0)
ans =
-b/a
>> solve(a*x^2 + b*x + c == 0)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• Pour les équations à plusieurs variables, Matlab permet de choisir la variable pour
58
laquelle on veut résoudre.
>> solve(a*x + b, x) % résoudre pour x
ans =
-b/a

>> solve(a*x + b, a) % résoudre pour a


ans =
-b/x

>> solve(a*x + b, b) % résoudre pour b


ans =
-a*x

• La commande solve nous aide aussi à résoudre un système linéaire ou non-linéaire


en présentant ses lignes d’équations.
>> syms x y
>> S = solve(x+y == 5, x-y == 1) % système linéaire
S =
x: [1x1 sym]
y: [1x1 sym]

>> [S.x S.y]


ans =
[ 3, 2]

>> solve(x^2 + 1) % équation non-linéaire


ans =
i
-i

>> S = solve(x^2 + y == 0, x + y^2 == 0)


% système non-linéaire
S =
x: [4x1 sym]
y: [4x1 sym]
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> [S.x S.y]


ans = 59
[ 0, 0] % sol. 1
[ -1, -1] % sol. 2
[ (3^(1/2)*i)/2 + 1/2, 1/2 - (3^(1/2)*i)/2] % sol. 3
[ 1/2 - (3^(1/2)*i)/2, (3^(1/2)*i)/2 + 1/2] % sol. 4

• La commande solve permet aussi de résoudre une inéquation ou un système linéaire


ou non linéaire des inéquations.
>> solve(x^2 - 9 <= 0)
ans =
Dom::Interval([-3], [3]) % [-3, 3]

>> solve(x^2 - 9 >= 0)


ans =
Dom::Interval([3], Inf) ∞, -3] ∪ [3, +∞
% ]-∞ ∞[
Dom::Interval(-Inf, [-3])

>> solve(x^2 - 9 > 0)


ans =
Dom::Interval(3, Inf) ∞, -3[ ∪ ]3, +∞
% ]-∞ ∞[
Dom::Interval(-Inf, -3)
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

Chapitre 4
60
Les Polynômes

1. Définition
• Un polynôme de la forme @() = 

+ 
A 
A + ⋯ +    +   + B est
représenté en Matlab par un vecteur ligne [
, 
A , … ,  ,  , B ] (ou vecteur
colonne).
• Afin d’évaluer un polynôme pour une valeur fixe a, on utilise la commande polyval(P,
a).
>> P = [1 2 1] % définir le polynôme x2+2x+1
P =
1 2 1

>> polyval(P, 0), polyval(P, 1), polyval(P, 2)


ans =
1 % P(0)

ans =
4 % P(1)

ans =
9 % P(2)

2. Opérations arithmétiques
• Matlab fournie deux opérations arithmétiques de multiplication et de division à
travers les commande conv et deconv. Il reste au programmeur de programmer les
deux autres opérations d’addition et de soustraction.
• C = conv(A, B) est la convolution des tableaux A et B, c'est à dire les coefficients du
produit des deux polynômes.
• [Q, R] = deconv(A, B) est la dé-convolution des tableaux A et B où Q est le quotient de
la division et R est le reste (A = conv(B ,Q) + R).
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> P1 = [1 1 1], P2=[1 1] % P1 = x^2+x+1, P2 = x+1


P1 = 61
1 1 1

P2 =
1 1

>> conv(P1, P2) % P1*P2


ans =
1 2 2 1 % P1*P2 = x^3+2x^2+2x+1

>> [Q R] = deconv(P1, P2) % P1/P2


Q =
1 0 % Quotient = x

R =
0 0 1 % Reste = 1

3. Racines et Interpolations
• La commande roots(P) fait extraire les racines d’un polynôme P.
• La commande poly(V) retourne un polynôme depuis ses racines stockées dans le
vecteur V.
>> P = [1 -5 6]
P =
1 -5 6

>> roots(P)
ans =
3.0000
2.0000

>> poly([2 3])


ans =
1 -5 6
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• La commande Polyfit(X, Y, n) permet d’approximer un polynôme de dégrée n qui


62
passent approximativement par les points (X, Y). Cette approximation P(X(i))=Y(i) est

au sens des moindres carrées : trouver P tel que !∑ (@( ) − 3 ) est minimal.
>> X = [0 1 2], Y=[-1 0 3]
X =
0 1 2

Y =
-1 0 3

>> polyfit(X, Y, 0)
ans =
0.6667 % P(x) = 2/3 (avec erreur)

>> polyfit(X, Y, 1)
ans =
2.0000 -1.3333 % P(x) = 2x -1/3 (avec erreur)

>> polyfit(X, Y, 2)
ans =
1.0000 0 -1.0000 % P(x) = x^2 -1 (meilleur)

4. Dérivation et Intégration d’un polynôme


• La commande polyder(P) retourne la dérivée d’un polynôme P.
• La commande polyint(P) retourne l’intégral d’un polynôme P. Si on veut calculer
l’intégral entre deux point x1 et x2, on utilise la commande polyval pour évaluer
l’intégral sur ces deux points puis on applique la soustraction.
>> P = [1 2 1] % P(x) = x^2 + 2x + 1
P =
1 2 1

>> Pder = polyder(P) % P’(x) = 2x + 2


Pder =
2 2
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

>> Pint = polyint(P) % integral(P(x)) = 1/3x^3 + x^2 + x


Pint = 63
0.3333 1.0000 1.0000 0

>> polyval(Pint, 2) - polyval(Pint, 1)


% integral(P(x)) entre 1 et 2
ans =
6.3333
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

Chapitre 5
64
Programmation en Matlab

1. Introduction
• Un script Matlab est composé d'une suite d'instructions ou de commandes, toutes
séparées par une virgule (,), un point-virgule (;) ou un retour à la ligne (↵).
• Matlab facilite l’édition d’un nouveau script en utilisant le bouton (New Script) qui
fait appel à l’éditeur de Matlab.

• La commande edit aussi fait appel à l’éditeur de Matlab en créant un fichier du nom
spécifié (edit monfichier.m).
• L’éditeur de Matlab crée par défaut un nouveau script sous le nom ‘untitled.m’. Le
programmeur peut spécifie ultérieurement un nom de son choix en utilisant le
bouton (Save).
• Généralement, le script est sauvegardé dans un fichier avec l’extension ‘.m’ (ex :
script1.m) sous le dossier courant. On peut aussi charger un fichier déjà édité en
utilisant le bouton (Open).
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

65

• L’exécution du script se fait à travers l’invité de commande en spécifiant juste le nom


du script.

• L’exécution peut être effectuée directement depuis l’éditeur en cliquant sur le


bouton (Run). Néanmoins, les sorties des scripts (affichage des résultats) se fait
toujours sur la fenêtre des commandes.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

66
2. Affichage
• L’affichage des variables se fait simplement par la spécification de leurs noms sans
point virgule à la fin de la ligne.
• La commande disp(X) affiche une variable X (chaine de caractères, entier, …) sur la
fenêtre des commandes. La commande disp n’accepte qu’un seul type de donnée à la
fois. Dans le cas échéant, une conversion de type est toujours nécessaire ; par
exemple, tous les variables sont convertis à des chaines de caractères.
• La commande fprintf() accepte tous genre de variable en utilisant leurs formats de
types : %d pour les entiers, %f pour les réels, %s pour les chaines de caractères, %c
pour le caractères, … . On peut ajouter un retour à la ligne via ‘\n’ et une tabulation
via ‘\t’.
• La commande sprintf() sauvegarde tous genre de variables de la même manière que
fprintf, mais sans affichage sur la fenêtre des commandes. sprintf() retourne une
chaîne de caractères qui peut être affichée ultérieurement en utilisant la commande
disp().
% mon premier script
a = 1;
b = 2;
c = a + b;
disp('la valeur de c est :');
disp(c);

fprintf('la somme de %d et %d égale à %d \n', a, b, c);

str = sprintf('%d + %d = %d \n', a, b, c);

disp(str);

>> script1
la valeur de c est :
3

la somme de 1 et 2 égale à 3
1 + 2 = 3
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

3. Introduction des données à partir du clavier :


67
• La commande input(msg) fait introduire une valeur à partir du clavier en affichant
d’abord un message msg.
clc;
% lecture de deux valeurs
a = input ('Entrer a : ');
b = input ('Entrer b : ');

% somme
c = a + b;

% affichage
fprintf('%d + %d = %d \n', a, b, c);

% introduction d'un vecteur


vec = input('entrer un vecteur de 5 éléments : ');

% introduction d'une matrice


mat = input('entrer une matrice de 3x3 éléments : ');

>> script1
Entrer a : 2
Entrer b : 3
2 + 3 = 5
entrer un vecteur de 5 éléments : [2 5 7 9 11]
entrer une matrice de 3x3 éléments : [1 2 3; 4 5 6; 7 8 9]

4. Les instructions d’alternative (IF et SWITCH):


• Comme dans la majorité des langages de programmation, Matlab permet d’utiliser
l’instruction if selon la syntaxe suivante :
if condition
Commandes
elseif condition
Commandes

else
Commandes
end ;
• Les segments de elseif est else sont optionnels, par contre la parution de if et end est
obligatoire.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

clc;
% lecture d’un entier 68
a = input ('Entrer a : ');

if a == 0
disp('a est nul');
elseif a > 0
disp('a est positif');
else
disp('a est négatif');
end;

>> script1
Entrer a : 2
a est positif

• On a aussi la possibilité d'utiliser l’instruction switch-case comme pour le langage C :


switch expression % variable (comme a) ou expression de variables (a+b, f(a), …)
case cas1 % valeur 1 de l’expression
commandes
case cas2 % valeur 2 de l’expression
commandes

otherwise % autre valeurs de l’expression
commandes
end ;
clc;
% lecture d'un entier
a = input ('Entrer un entier entre 1 et 5 : ');

switch a
case 1
disp('UN');
case 2
disp('DEUX');
case 3
disp('TROIS');
case 4
disp('QUATRE');
case 5
disp('CINQ');
otherwise
disp('cet entier n''est pas entre 1 et 5');
end;

>> script1
Entrer un entier entre 1 et 5 : 2
DEUX
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

5. Les boucles:
69
• En Matlab, on utilise deux formes de boucle:
o L’instruction for Pour les boucles à nombre d’itération connu :
for variable = valeur initiale : pas : valeur finale
commandes
end ;
o et l’instruction while pour les boucles à condition de continuation.
while condition de continuation
commandes
end ;
clc;

% affichage des nombres naturels impairs et inférieurs à 10


% avec la boucle for
for i = 1:2:10
disp(i);
end;

% avec la boucle while


i = 1;
while i <= 10
disp(i);
i = i + 2;
end;

>> script1
1
3
5
7
9
1
3
5
7
9
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

6. Les fonctions:
70
• Les fonctions peuvent être déclarées directement dans un fichier script qui doit
obligatoirement porter le même nom de la fonction à déclarer:

% monscript.m % f1.m
… function f1(x)
f1(a) …
… …
f2(b, c)

% f2.m
function f2(x, y)

• Une fonction est déclarée comme suit :


o function nomdefonction(inpar1, inpar 2, …)
% une fonction sans paramètre de sortie.
o function outpar = nomdefonction(inpar1, inpar 2, …)
% une fonction avec un seul paramètre de sortie.
o function [outpar1, outpar2, …] = nomdefonction(inpar1, inpar 2, …)
% une fonction avec plusieurs paramètres de sortie.
• Il faut noter que :
o La fonction ne se termine pas par end comme dans les autres langages
évolués.
o Le point-virgule n’est pas nécessaire à la fin des lignes, sauf si un affichage du
résultat de la ligne en question est requis.
f1.m
function f1(x)
disp(x/2);

f2.m
function z = f2(x, y)
z = x + y;

f3.m
function [z w] = f3(x, y)
z = x *y;
w = x/y;
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

script.m
clc;
71

a = 20
b = 10

disp('a/2 = ');
f1(a);

c = f2(a, b);
disp('a + b = ');
disp(c);

[c d] = f3(a, b);
disp('a * b = ');
disp(c);
disp('a / b = ');
disp(d);

>> script
a =
20

b =
10

a/2 =
10

a + b =
30

a * b =
200

a / b =
2

• Les variables d'entrée de la fonction sont passés par valeur : On ne peut pas modifier
leurs valeurs.
• Les variables de sortie de la fonction sont passés par résultat : On doit leur affecter
une valeur.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

• Les variables locales sont des variables temporaires à utilisation locale à l’intérieur de
72
la fonction : On ne peut pas les utiliser à l’extérieur.

7. L’interface graphique (GUI):


• Les interfaces graphiques (GUI en anglais) aident à visualiser et contrôler les variables
du programme en question.
• La commande guide permet de créer ou ouvrir un GUI.

• En créant un nouveau gui, Matlab affiche une figure avec des icones de contrôles
(boutons, menus, textes, …). Le programmeur peut glisser ces icones sur la forme afin
de construire un GUI.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

73

• Par exemple, on veut créer un simple GUI qui fait lire deux entiers A et B, et affiche
leur somme, produit, soustraction et division. Voici alors les étapes de création et
d’exécution :
o Cliquer sur l’icone ‘Static Text’ puis cliquer le sur la forme afin de créer un
texte statique ‘text1’. Modifier son nom en double-cliquant sur text1.
L’inspecteur d’objet se montre. Chercher la propriété ‘String’ et modifie la
avec la valeur ‘A’.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

74

o Répéter la tache précédente pour créer ‘text2’ avec la valeur B.


o Maintenant cliquer sur l’icône ‘Edit Text’ pour créer un ‘edit1’ en plaçant le
juste à coté de ‘text1’ et modifie sa valeur (valeur vide) comme pour text1.
o Répéter la tache précédente pour ‘edit2’.
o De la même manière créer des textes ‘text3’, ‘text4’, ‘text5’, ‘text6’ avec les
valeurs ‘A+B’, ‘A-B’, ‘A*B’, ‘A/B’ respectivement.
o Ensuite créer les édites ‘edit3’, ‘edit4’, ‘edit5’, ‘edit6’ avec des valeurs vides.
o Ajouter un bouton pushbutton1 et nommer le ‘Calculer’.
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

o Le GUI se figure comme suit :


75

o Maintenant, cliquer avec le bouton droit de la souris sur le bouton ‘Calculer’


et sélectionner l’option ‘View Callbacks->Callback’ . Matlab interrompe
l’action et demande de sauvegarder le gui (gui1).
o Matlab affiche sur l’éditeur le contenu de gui1.m qui est crée
automatiquement par Matlab.
o Editer la fonction ‘pushbutton1_Callback’ comme suit :
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)

% lecture des valeurs d'entrée


a = str2num(get(handles.edit1, 'String'));
b = str2num(get(handles.edit2, 'String'));

% calcul des valeurs de sortie


c = a + b;
d = a - b;
e = a*b;
f = a/b;
Outils de Programmation pour les Mathématiques – Dr. Mohammed Omari - Université d’Adrar

% affichage des valeurs de sortie 76


set(handles.edit3, 'String', num2str(c));
set(handles.edit4, 'String', num2str(d));
set(handles.edit5, 'String', num2str(e));
set(handles.edit6, 'String', num2str(f));

• Sauvegarder, puis exécuter le script gui1.m en cliquant sur ‘Run’:

Vous aimerez peut-être aussi