SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
INSTITUT POLYTECHNIQUE DES SCIENCES AVANCEES
24, rue Pasteur ± 94270 LE KREMLIN-BICETRE * Tél. : 01.44.08.01.00 * Fax : 01.44.08.01.13
Etablissement Privé d¶Enseignement Supérieur ± SIRET N° 433 695 632 00011 ± APE 803Z
INSTITUT POLYTECHNIQUE
DES SCIENCES AVANCEES
Initiation à MATLAB
Support de cours
Mme VALENTIN Sontsada
(Edition 2004 - 2005)
2/47
3/47
1. PRESENTATION DE MATLAB .................................................................................... 5
1.1 CALCULS NUMERIQUES USUELS................................ ................................ ................5
1.1.1 Exemple d¶application ................................ ................................ ..........................5
1.1.2 Les fonctions mathématiques usuelles ................................ ................................ .6
1.1.3 Calculs sur un ensemble de valeurs ................................ ................................ .....6
1.2 GRAPHIQUES................................ ................................ ................................ .................6
1.2.1 Représentations graphiques 2D ................................ ................................ ...........6
1.2.2 Représentation graphique d¶une fonction ................................ .............................7
1.3 PROGRAMMATION ................................ ................................ ................................ ........7
1.3.1 Créer ses propres fonctions ................................ ................................ .................7
1.3.2 Créer un sous-programme ................................ ................................ ...................8
2. ANALYSE ................................................................................................................... 10
2.1 SUITES REELLES................................ ................................ ................................ .........10
2.1.1 Définition ................................ ................................ ................................ ............10
2.1.2 Itérations et étude de suites ................................ ................................ ...............10
3. ALGEBRE LINEAIRE .................................................................................................12
3.1 MATRICES................................ ................................ ................................ ....................12
3.1.1 Notations et vocabulaire................................ ................................ .....................12
3.1.2 Définir des matrices avec Matlab................................ ................................ ........13
3.2 OPERATIONS SUR LES MATRICES................................ ................................ ............15
3.2.1 Addition ................................ ................................ ................................ ..............15
3.2.2 Multiplication par des scalaires ................................ ................................ ...........15
3.2.3 Multiplication des matrices ................................ ................................ .................15
3.2.4 Transposée d¶une matrice ................................ ................................ ..................16
3.2.5 Inversion de matrices carrées................................ ................................ .............16
3.3 SYSTEMES LINEAIRES................................ ................................ ................................ 17
3.3.1 Définition ................................ ................................ ................................ ............17
3.3.2 Opérations fondamentales sur les systèmes ................................ ......................18
3.3.3 Méthode de résolution de Gauss ................................ ................................ ........19
3.3.4 Systèmes de Cramer................................ ................................ ..........................21
3.3.5 Utilisation de Matlab ................................ ................................ ...........................21
REFERENCES BIBLIOGRAPHIQUES ............................................................................. 23
FICHES MEMO ................................................................................................................. 25
FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES................................ .................27
FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES................................ ....................29
4/47
FICHE 3 : GESTION DE L¶AFFICHAGE ................................ ................................ .................31
FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE.........................33
FICHE 5 : DEFINIR ET GERER DES TABLEAUX : VECTEURS ET
MATRICES................................ ................................ ................................ ....................35
FICHE 6 : TRACER DES GRAPHIQUES 2D ................................ ................................ ..........37
MINI-PROJETS ................................................................................................................. 39
MINI-PROJET 1 : PARTS D¶UN MARCHE ................................ ................................ .............41
MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3) ................................ ....................43
MINI-PROJET 3 : RESOLUTION D¶UN SYSTEME DE CRAMER................................ ...........45
MINI-PROJET 4 : DIVISION EUCLIDIENNE ET SUITE PSEUDO-
ALEATOIRE ................................ ................................ ................................ ..................47
5/47
1. PRESENTATION DE MATLAB
1.1 CALCULS NUMERIQUES USUELS
1.1.1 Exemple d¶application
Trouver les racines du polynôme du 2 nd
degré :
P(x) = 3.7x²+x-1.5
Solution de la forme :
a2
ac4²bb
x
s
!
On commence par définir les paramètres du problème :
 a=3.7
a =
3.7
 b=1 ;
 c= -1.5 ;
Nota :
- Les trois variables a,b et c apparaissent dans la fenêtre Workspace.
- Dans la fenêtre Command Window, on peut aussi utiliser l¶instruction
who ou whos.
- Pour effacer les paramètres de la mémoire courante, on utilise
l¶instruction clear (ou clear all) pour tout effacer. Dans le cas où on
veut uniquement effacer la variable a : clear a.
- En terminant la ligne d¶instruction par un point -virgule, on n¶affiche pas
le résultat de l¶opération.
- Matlab différencie les caractères minuscules des majuscules.
- Lorsque l¶on affecte une nouvelle valeur à une variable, la précédente
valeur est remplacée.
On continue la résolution en calculant le déterminant et les deux racines :
 delta = b^2-4*a*c;
 x1 = (-b+sqrt(delta)) / (2*a)
x1 =
0.5158
 x2 = (-b-sqrt(delta)) / (2*a)
x2 =
-0.7860
6/47
Nota :
- On peut éditer les commandes ultérieures en utilisant la flèche Ĺ. Pour
retrouver la commande plus rapidement, on tape le(s) premier(s)
caractère(s) et on utilise la flèche Ĺ.
- Pour modifier les caractères d¶une c ommande, on utilise les flèches ĺ
ou ĸ.
1.1.2 Les fonctions mathématiques usuelles
De nombreuses fonctions mathématiques sont disponibles dans Matlab.
Une liste exhaustive est présentée dans l¶aide de Matlab.
Pour ouvrir la fenêtre de l¶aide en ligne, on utilis e l¶instruction :  helpwin
Les fonctions mathématiques élémentaires se trouvent dans Elementary
math functions (matlab/elfun).
1.1.3 Calculs sur un ensemble de valeurs
Matlab permet d¶effectuer des calculs sur un ensemble de valeurs. Au
préalable, il nous faut stocker ces valeurs dans un vecteur (ou tableau).
Exemple : Calculer
)e1(xy x2 
!
pour x = 0, 0.2, 0.4, « , 1.
On définit un vecteur de valeurs régulièrement espacées en donnant
successivement la valeur initiale 0, le pas 0.2 et enfin la valeur finale 1 :
 x = [0 :0.2 :1]
On calcule ensuite les images de ces valeurs. Pour procéder au calcul sur
toutes les valeurs de x, on remplace les opérateurs ^ et *, respectivement
par .^ et .* :
 y = x.^2 .* (1+exp(-x))
1.2 GRAPHIQUES
1.2.1 Représentations graphiques 2D
La commande plot permet de tracer tous les graphes plans. On l¶utilise
sous la forme :
plot(abscisse, ordonnée, options)
options est une chaîne de caractères permettant de préciser par exemple
le type ou la couleur du tracé.
Exemple :
7/47
 x = [0 :0.2 :10]
 y = x.^2 .* (1+exp(-x))
 plot(x,y,¶b - -¶)
Par défaut, la figure s¶ajuste automatiquement à l¶ensemble des points à
représenter, mais la commande axis permet d¶imposer ces propres choix.
Pour ajouter un quadrillage, on utilise l¶instruction grid on.
Plusieurs tracés peuvent être effectués sur la même figure grâce à la
commande hold on.
Pour ouvrir une nouvelle figure, il suffit de taper :  figure
La commande clf permet d¶effacer la figu re courante.
On peut nommer les axes avec les commandes xlabel ou ylabel, selon
l¶axe considéré, inclure un titre ( title) ou une légende (legend).
 xlabel(µx¶)
 ylabel(µy¶)
 title(µtracé de y = x^2(1+exp(-x))¶)
Il peut s¶avérer intéressant d¶importer un tracé vers un document world.
Pour cela, on sélectionne dans la fenêtre figure
File Export
et on choisit un format de conversion (.png, .jpeg, «).
On peut aussi tracer plusieurs graphes sur la même figure : subplot
1.2.2 Représentation graphique d¶une fonction
L¶instruction ezplot permet de tracer simplement les graphes de
fonctions.
Exemples :
 ezplot(µx^2*(1+exp(-x))¶)
 ezplot('x^3 + 2*x^2 - 3*x + 5 - y^2')
 ezplot('t*cos(t)','t*sin(t)',[0,4*pi])
1.3 PROGRAMMATION
1.3.1 Créer ses propres fonctio ns
Exemple :
Soit la fonction f 1 définie par :
xlnx)x(f1 !
8/47
On définit la fonction dans un fichier m, qui doit être enregistré dans le
répertoire de travail courant (Current Directory) sous le nom f1.m.
Le contenu du fichier doit respecter l¶une des deux syntaxes suivantes :
f1.m
% définition de la fonction y=x.ln(x)
function y = f1(x)
y = x.*log(x) ;
function y = f1(x)
% définition de la fonction y=x.ln(x)
y = x.*log(x) ;
Le commentaire, situé en début ou juste sous la déclaration function, est
le texte affiché dans la Command Window si on appelle
 help f1
L¶instruction function indique qu¶il s¶agit d¶une fonction et la syntaxe y =
f1(x) renseigne sur le(s) entrée(s)/sortie(s) : le calcul de la fonction
dépend de x et la valeur de la sort ie est enregistrée sous y.
Nota :
- On affecte le même nom à la fonction et au fichier m.
- L¶utilisation de l¶opération .* permettra d¶appliquer cette fonction à un
tableau de valeurs.
- La fonction log de Matlab calcule le logarithme népérien. (voir help log)
L¶utilisateur peut alors procéder selon les besoins :
- soit à des calculs numériques unitaires :
 f1(1.5)
ans =
0.6082
- soit à des calculs sur des tableaux de valeurs :
 f1([1 :0.2 :2])
ans =
0.2188 0.4711 0.7520 1.0580 1.3863
- soit à des représentations graphiques, grâce à la commande fplot :
 fplot(µf1¶,[0.2 2]) ; grid on ;
 title(µfonction f1(x) = x*log(x)¶)
1.3.2 Créer un sous-programme
Un sous-programme permet de mémoriser, d¶adapter, de réutiliser un
calcul. On l¶appelle fonction en informatique (à ne pas confondre avec
une fonction au sens mathématique, même si les deux notions se
rejoignent parfois, comme l¶exemple précédent).
9/47
Exemple :
Créer une fonction permettant de trouver les racines d¶un polynôme du 2 nd
degré. On commence par ouvrir un fichier m que l¶on enregistre sous
solvepoly2.m.
On choisit ensuite les entrées/sorties de la fonction :
- en entrée, on considère les coefficients a,b et c du polynôme
P(x)=ax²+bx+c,
- en sortie, les racines sont enregistrées dans un ta bleau nommé X.
La syntaxe est la suivante :
solvepoly2.m
function X = solvepoly2(a,b,c)
% solvepoly2 calcule les racines d¶un polynôme du 2
nd
degré P(x)= ax²+bx+c.
% X = solvepoly2(a,b,c), X est un tableau contenant les deux racines.
delta = b^2-4*a*c;
X(1) = (-b+sqrt(delta)) / (2*a);
X(2) = (-b-sqrt(delta)) / (2*a);
Résolvons de nouveau le polynôme de l¶exemple 1 à l¶aide de cette
function. Supposons que l¶utilisateur ne connaisse que le nom de la
fonction, pour obtenir des renseignements sur celle -ci, il doit taper :
 help solvepoly2
calcule les racines d¶un polynôme du 2
nd
degré P(x)= ax²+bx+c.
X = solvepoly2(a,b,c), X est un tableau contenant les deux racines.
Une fois renseigné, il peut maintenant utiliser la fonction :
 solvepoly2(3.7,1,-1.5)
ans =
0.5158 -0.7860
10/47
2. ANALYSE
2.1 SUITES REELLES
2.1.1 Définition
On appelle suite numérique une application définie par :
)n(un
:u
C
„p‚
u(n) est le terme général de la suite et est souvent noté un. Par abus de
langage, la suite u qui est déterminée par ses valeurs u(n)=un, se note :
0nn )u( u
Une suite peut être définie à partir d¶un certain rang p fixé. On notera :
pnn )u( u
Une suite 0nn )u( u est majorée s¶il existe une constante M telle q ue :
Mu,0n n eu
et elle est minorée s¶il existe une constante m telle que :
mu,n n uu
Elle est bornée s¶il existe une constante C  0 telle que :
Cu,0n n eu
Il est facile de vérifier qu¶une suite est bornée si, et seulement si, elle est
majorée et minorée.
2.1.2 Itérations et étude de suites
Pour étudier les suites sous Matlab, il est essentiel de connaître les
instructions d¶itération classiques, while et for, permettant de répéter un
traitement sur les termes successifs d¶une suite.
La syntaxe générale est :
for variable = [valeurinitiale : pas : valeurfinale],
% traitements à répéter
end
ou bien
while conditionàrespecter,
% traitements à répéter
end
11/47
Nota :
- Une boucle d¶itération se termine obligatoirement par l¶instruction end.
- A la fin de la première ligne de la boucle, la virgule n¶est pas
obligatoire, mais le point -virgule n¶est pas accepté !
Exemple :
On veut calculer les 10 premiers termes d¶une suite géométrique de
raison 0.5 et de premier terme u(1)=100. Les termes successifs de la
suite sont enregistrés dans un tableau (ou vecteur) :
u = [u(1) u(2) « u(n)], n=10
 u(1) = 100 ;
 for k=[1 :1 :9],
u(k+1) = 0.5 * u(k) ;
end
Aucun résultat ne s¶affiche en présence du point-virgule à la fin de
l¶opération. Pour obtenir les 5 premiers termes de la suite, on tape :
 u(1:5)
ans =
100.0000 50.0000 25.0000 12.5000 6.2500
12/47
3. ALGEBRE LINEAIRE
3.1 MATRICES
3.1.1 Notations et vocabulaire
3.1.1.1 Définition
Un tableau M constitué de n lignes et de p colonnes est appelé matrice
de type (n,p) et est noté :
¼
¼
¼
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
¬
¬
¬
­
«
!
npnj2n1n
ipij2i1i
p2j22221
p1j11211
aaaa
aaaa
aaaa
aaaa
M
--
/1/1//
--
/1/1//
--
.-
La notation abrégée est
Le premier indice indique le numéro de la ligne et le deuxième indice
celui de la colonne.
3.1.1.2 Cas particuliers
Matrices lignes et matrices colonnes
Une matrice de type (1,p) (resp. (n,1)) est appelée matrice ligne (resp.
matrice colonne).
Matrice ligne Matrice colonne
p11211 aaa -
¹
¹
¹
¹
¹
º
¸
©
©
©
©
©
ª
¨
1n
21
11
a
a
a
/
Matrices carrées
Une matrice de type (n,n) est appelée matrice carrée d¶ordre n. Parmi
les matrices carrées, on peut distinguer :
les matrices carrées diagonales , vérifiant :
jisiaij {!
ou encore
p,...,1j
n,...,1iij ]a[M
!
!!
13/47
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
­
«
!
nn
22
11
a00
0
a0
00a
M
-
  /
/
 
-
les matrices carrées triangulaires supérieures ou inférieures,
respectivement définies par :
jisi0aij ! et jisi0aij !
ou bien
¼
¼
¼
¼
½
»
¬
¬
¬
¬
­
«
!
nn
n222
n11211
a00
aa0
aaa
M
-
/11/
1
-
et
¼
¼
¼
¼
½
»
¬
¬
¬
¬
­
«
!
nn2n1n
2221
11
aaa
0
aa
00a
M
-
11/
/1
-
les matrices carrées symétriques, telles que :
j,i,aa jiij !
et enfin, les matrices carrées identités qui vérifient :
°
¯
®
!
{!
1aii
jisi0aij
notée
¼
¼
¼
¼
½
»
¬
¬
¬
¬
­
«
!
100
0
10
001
In
-
¡¡/
/
¡
-
3.1.2 Définir des matrices avec Matlab
3.1.2.1 Définition et manipulation de matrices quelconques
Exemple :
Définir la matrice
Les matrices sont généralement définies ligne par ligne.
¼
¼
¼
¼
½
»
¬
¬
¬
¬
­
«


!
017.0
024
3105.0
952
M
14/47
Comme les tableaux de valeurs présentés dans le paragra phe 1.1.3, les
matrices sont définies entre des crochets. On sépare chaque élément
d¶une ligne par un espace ou par une virgule et pour indiquer le
passage à une nouvelle ligne, on utilise un point -virgule :
 M = [2 5 9 ; 0.5 10 -3 ; 4 2 0 ; -0.7 1 0]
M =
2.0000 5.0000 9.0000
0.5000 10.0000 -3.0000
4.0000 2.0000 0
-0.7000 1.0000 0
On peut aussi définir 3 matrices colonnes et les concaténer :
 u = [2 ; 0.5 ; 4 ; -0.7] ; v = [5 ; 10 ; 2 ; 1] ; w = [9 ; -3 ; 0 ; 0] ;
 M = [u v w]
M =
2.0000 5.0000 9.0000
0.5000 10.0000 -3.0000
4.0000 2.0000 0
-0.7000 1.0000 0
Quelques manipulations utiles :
Pour accéder au terme aij :  M(i,j)
Pour modifier l¶élément a ij :  M(i,j) = a
Pour accéder à toute la iième
ligne :  M(i, :)
Pour accéder à toute la j ième
colonne :  M( : , j )
3.1.2.2 Matrices particulières de Matlab
Il existe plusieurs matrices particulières sous Matlab dont la liste se
trouve dans la rubrique elmat de l¶aide (helpwin).
Parmi les plus connues, on trouve :
La matrice identité In définie par :
eye(n)
La matrice de type (m,n) dont tous les coefficients sont nuls (matrice
nulle) :
zeros(m,n)
La matrice de type (m,n) dont tous les coefficients sont unitaires :
ones(m,n)
Nota : pour définir des matrices carrées d¶ordre n, il suffit d¶entrée le
seul argument n à la commande (ex. : zeros(n), ones(n))
15/47
3.2 OPERATIONS SUR LES MATRICES
3.2.1 Addition
Soient deux matrices de même type :
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
­
«
!
np2n1n
p22221
p11211
aaa
aaa
aaa
A
-
/1//
-
-
et
on appelle matrice somme de A et B, la matrice :
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
­
«



!!
npnp2n2n1n1n
p2p222222121
p1p112121111
bababa
bababa
bababa
BAS
-
/
¢//
-
-
De manière condensée, on a :
p,...,1j
n,...,1iij ]s[S
!
!!
avec
ijijij bas,p,...,1jetn,...,1i !!!
3.2.2 Multiplication par des scalaires
Soient P un scalaire quelconque de „ et une matrice M de type (n,p), telle
que :
la matrice PM est définie par :
Tous les coefficients de la matrice M ont donc été multipliés par le
scalaire P.
3.2.3 Multiplication des matrices
Soient deux matrices A et B, respectivement de type (n,p) et (p,q) :
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
­
«
!
np2n1n
p22221
p11211
bbb
bbb
bbb
B
-
/1//
-
-
p,...,1j
n,...,1iij ]a[M
!
!!
¼
¼
¼
¼
¼
½
»
¬
¬
¬
¬
¬
­
«
PPP
PPP
PPP
!P
np2n1n
p22221
p11211
aaa
aaa
aaa
M
-
/1//
-
-
16/47
p,...,1k
n,...,1iik ]a[A
!
!! et
£,...,1j
p,...,1kkj ]b[B
!
!!
le résultat du produit
est la matrice C de type (n, ) définie par
où
3.2.4 Transposée d¶une matrice
On appelle transposée de la matrice
de type (n,p), la matrice notée t
M (ou MT
)
de type (p,n) définie par
En d¶autres termes, t
M est obtenue à partir de M en échangeant ses
lignes avec ses colonnes. Pour obtenir la tranposée de la matrice M, on
tape :
 M¶
3.2.5 Inversion de matrices carrées
Une matrice carrée A d¶ordre n est dite inversible s¶il existe une matrice
carrée B du même ordre telle que :
La matrice B, lorsqu¶elle existe est unique. On l¶appelle matrice inverse de
A et on la note
)q,n()q,p()p,n(
CBxA !
q,...,1j
n,...,1iij ]c[
!
!!
§!
!
!
p
1k
kjik
pjipj22ij11iij
ba
ba...babac
p,...,1j
n,...,1iij ]a[M
!
!!
n,...,1j
p,...,1iij
t
]b[M
!
!!
jiij ab,n,...,1jetp,...,1i !!!
nIAxBBxA !!
1
AB 
!
17/47
Pour inverser une matrice A sous Matlab, on peut utiliser :
inv(A) ou A^(-1)
3.3 SYSTEMES LINEAIRES
3.3.1 Définition
Un système linéaire de n équations (n u 1) à p inconnues (p u 1) est défini
par :
n
i
2
1
npnpjnj22n11n
ipipjij22i11i
2pp2jj2222121
1pp1jj1212111
bxa...xa...xaxa
bxa...xa...xaxa
bxa...xa...xaxa
bxa...xa...xaxa
)S(
±
±
±
±
°
±±
±
±
¯
¤
!
!
!
!
/
/
Les données du système linéaire sont :
- les coefficients réels ou complexes aij pour i=1,«,n et j=1,«,p (n et p
sont deux entiers connus),
- le second membre du système constitué par les nombres réels ou
complexes bi (i=1,«,n),
et Li (i=1,«,n) désigne la i ième
ligne du système (S).
Les inconnues à déterminer sont les x j (j=1,«,p).
Le système est dit carré lorsque n=p. C¶est le cas où il y a autant
d¶équations que d¶inconnues.
On dira que le système est homogène lorsque le second membre est nul
(bi=0, i=1,«,n). On peut remarquer qu¶un système linéaire homogène
admet au moins la solution nulle x i=0, i=1,«,n (qui n¶est pas
nécessairement la seule).
Systèmes échelonnés
Lorsque tous les coefficients sous la diagonale » d¶un système linéaire
sont nul, i.e. :
0aji ij
! 
on dit que le système est échelonné.
Ils peuvent être de trois formes :
1. les systèmes triangulaires supérieurs, à n équations et n
inconnues, de la forme :
18/47
±
±
±
±
°
±±
±
±
¯
®
!
!
!
!
nnnn
ininiii
2nn2jj2222
1nn1jj1212111
bxa
bxa...xa
bxa...xa...xa
bxa...xa...xaxa
)S(
/
/
Tous les coefficients aii sont non nuls. Pour obtenir toutes les
inconnues xi, on procède par remontées successives. Dans ce cas,
on aura une solution unique du système.
2. Les systèmes échelonnés de forme trapézoïdale, où il y a plus
d¶inconnues que d¶équations, cas où n  p. Ils se présentent sous
la forme
±
±
°
±
±
¯
¥
!
!
!
npnpnnn
2pp2nn2222
1pp1nn1212111
bxa...xa
bxa...xa...xa
bxa...xa...xaxa
)S(
/
Si tous les coefficients aii (i=1,«,n) sont non nuls, le système
admet une infinité de solutions, obtenues en donnant des valeurs
arbitraires aux p-n inconnues xn+1, xn+2, «, xp. On peut alors
exprimer les n premières inconnues x1, x2, «, xn en fonction de
ces valeurs arbitraires.
3. Les systèmes échelonnés où on a n  p :
Il y a ici plus d¶équations que d¶inconnues, deux possibilités se
présentent :
- soit au moins l¶un des nombres bp+1, bn n¶est pas nul et le
système n¶admet aucune solution,
- soit tous les nombres bp+1, «, bn sont nuls et on est ramené à
un système triangulaire supérieur à p inconnues et p équations.
3.3.2 Opérations fondamentales sur les systèmes
Il existe 3 actions simples (provenan t de Gauss) qui permettent de
transformer un système (S) en un système équivalent plus simple à
résoudre.
±
±
±
±
°
±
±
±
±
¯
®
!
!
!
!
!



n
1p
p
2
1
ppp
pp2222
pp1212111
b
b
b
b
b
0
0
xa
xa...xa
xa...xaxa
)S(
/
/
19/47
1. Dans un système donné (S), on peut intervertir 2 lignes
quelconques Li et Lk. On écrira
ki LL m
2. On peut remplacer une ligne quelconque Li par l¶un de ses
multiples non nuls. On notera
0,L.L ii {EEn
3. On peut remplacer une ligne quelconque par la somme d¶un
multiple (non nul) de cette ligne et d¶une combinaison finie des
autres lignes. Cela se traduit par
0,L.L.L
ik
kkii {EFEn §{
Lorsque l¶on effectue une quelconque des 3 actions ci -dessus, sur un
système linéaire (S), on obtient une nouvelle écriture équivalente de ce
système.
3.3.3 Méthode de résolution de Gauss
Cette méthode consiste à effectuer un certain nombre d¶actions
élémentaires pour obtenir un système équivalent échelonné. Elle
s¶applique à un système linéaire quelconque (carré ou non).
Exemple :
Trouver toutes les solutions du système à n = 4 équations et p = 5
inconnues :
4
3
2
1
4
3
2
1
5
5
5
4
4
4
3
3
3
3
2
2
2
1
1
1
L
L
L
L
b
b
b
b
x6
x5
x6
0
0
x
x
x
x11
x6
x7
x3
x
0
x
x
x4
x3
x2
0
)S(
!
!
!
!
















±
±
°
±
±
¯
®
Choisir une ligne dont le coeffici ent de x1 est non nul et la mettre en
première ligne. Ce coefficient est appelé pivot de Gauss.
On choisit d¶intervertir les lignes L 1 et L2 :
21 LL m
On a alors
4
3
2
1
4
3
1
2
5
5
5
4
4
4
3
3
3
3
2
2
2
1
1
1
L
L
L
L
b
b
b
b
x6
x5
0
x6
0
x
x
x
x11
x6
x3
x7
x
0
x
x
x4
x3
0
x2
)S(
!
!
!
!
















±
±
°
±
±
¯
®
20/47
On cherche ensuite à annuler toute la colonne en dessou s du pivot choisi
en effectuant des actions élémentaires de Gauss avec la première ligne.
On applique donc :
133 L3L2L n puis 144 L4L2L n
et le système est équivalent à :
4
3
2
1
24
23
1
2
5
5
5
4
4
4
4
3
3
3
3
2
2
2
21
L
L
L
L
b4b2
b3b2
b
b
x12
x8
0
x6
x4
x
x
x
x6
x9
x3
x7
x2
x3
x
x
0
0
0
x2
)S(


!
!
!
!
















±
±
°
±
±
¯
®
La première ligne ne changera plus. On réitère les deux étapes
précédentes pour le sous -système constitué des trois autres lignes :
±
°
±
¯
®


!
!
!









4
3
2
24
23
1
5
5
4
4
4
3
3
3
2
2
2
L
L
L
b4b2
b3b2
b
x12
x8
0
x4
x
x
x6
x9
x3
x2
x3
x
)'S(
par les actions successives :
233 L3LL n puis 244 L2LL n
et on continue pour les sous -systèmes suivants. On a donc :
4
3
2
1
124
123
1
2
5
5
5
4
4
4
4
3
3
2
21
L
L
L
L
b2b4b2
b3b3b2
b
b
x12
x8
0
x6
x6
x4
x
x
0
0
x3
x7
0
0
x
x
0
0
0
x2
)S(


!
!
!
!
















±
±
°
±
±
¯
®
Finalement, on applique l¶action :
344 L3L2L n
et on obtient
4
3
2
1
1234
123
1
2
5
5
4
4
4
3
3
2
21
L
L
L
L
b5bb3b4
b3b3b2
b
b
0
x8
0
x6
0
x4
x
x
0
0
x3
x7
0
0
x
x
0
0
0
x2
)S(


!
!
!
!
















±
±
°
±
±
¯
®
On distingue ainsi deux cas :
Si les éléments bi du second membre ne vérifient pas la condition
0b5bb3b4 1234 !
21/47
alors on a obtenu un système échelonné de type (3) (cf. paragraphe
3.3.1) qui n¶admet aucune solution.
En revanche, si la condition est vérifiée, alors par remontées successives,
on peut résoudre le système.
3.3.4 Systèmes de Cramer
On suppose que n = p. On considère donc un système carré
n
i
2
1
nnnnjnj22n11n
ininjij22i11i
2nn2jj2222121
1nn1jj1212111
L
L
L
L
bxa...xa...xaxa
bxa...xa...xaxa
bxa...xa...xaxa
bxa...xa...xaxa
)S(
±
±
±
±
°
±±
±
±
¯
®
!
!
!
!
/
/
Le système admet une unique solution si, et seulement si, la méthode de
Gauss fait apparaître n pivots successifs tous non nuls. Dans ce cas, on
dira que le système est de Cramer.
3.3.5 Utilisation de Matlab
22/47
23/47
REFERENCES BIBLIOGRAPHIQUES
[R1] Applications mathématiques avec Matlab
Tome 1 : algèbre linéaire et géométrie
Tome 2 : analyse «
L. Jolivet, R. Labbas
Lavoisier 2005, Hermes science
[R2] Introduction à Matlab
J.-T. Lapresté
Ellipses 1999
24/47
25/47
FICHES MEMO
26/47
27/47
FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES
Une session de travail peut être sauvegardée sous 2 formes différentes selon l¶utilité
ultérieure dont elle fera l¶objet :
- Si on veut uniquement visualiser toutes les opérations et résultats affichés dans l¶espace
de travail, on choisit la commande diary.
Cette instruction permet de sauvegarder sa session de travail dans un fichier texte dès
qu¶on aura donné l¶instruction diary off ou qu¶on aura quitté Matlab.
Pour écrire de nouveaux éléments dans le fichier texte ainsi créé après avoir utilisé diary
off (durant la même session de travail), on utilise l¶instruction diary on.
- Si on veut pouvoir exécuter de nouveau les opérations de la session, il est nécessaire de
créer un fichier script de Matlab (soit un m-file).
Ouvrir un fichier m (m-file) qui est un fichier script de Matlab : file new m-file
Ceci ouvre la fenêtre de l¶éditeur de Matlab avec un fichier nommé untitled.m, on
commence par lui affecter un nom.
28/47
Pour réutiliser les commandes ainsi enregistrées, il existe plusieurs méthodes :
- Pour exécuter l¶ensemble des commandes :
On vérifie que le fichier se trouve dans le répertoire courant (Current Directory)
Dans la fenêtre de commande (Command Window), on tape le nom du fichier sans
son extension :
 nomdufichier
Une autre possibilité consiste à utiliser directement la barre de tâche de l¶éditeur. En
cliquant sur , on compile directement le fichier. (il faut toutefois vérifier au
préalable que le fichier se trouve dans le Current Directory !)
- Pour exécuter une partie des commandes du fichier:
On peut effectuer un copier -coller de l¶éditeur vers la fenêtre de co mmande. L¶éditeur
possède un raccourci pour ce type de copier -coller : on sélectionne les commandes
concernées et avec le clique droit de la souris, on choisit l¶option Evaluate selection
(cf. figure ci-dessous).
Nota :
- il faut absolument éviter les espaces dans les noms des fichiers.
- les commentaires débutent par le caractère % et ils sont automatiquement écrits en vert.
29/47
FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES
Lister les variables de la session de travail
La fenêtre Workspace liste l¶ensemble des variables de la session de travail et
renseigne sur le type, la dimension et la taille mémoire de chacune d¶entre elles.
Depuis la fenêtre de commande, on peut retrouver ces informations grâce aux
instructions who ou whos.
Effacer les variables
Il est parfois utile d¶effacer une ou plusieurs variables pour ne pas encombrer
l¶espace mémoire ou pour réinitialiser la session de travail.
Pour effacer les variables a et b :
 clear a b
Pour effacer toutes les variables de la session :
 clear all
ou bien
 clear
Enregistrer des variables
Il existe des fichiers de sauvegarde de variables spécifiques à Matlab, ils portent
l¶extension .mat.
Pour enregistrer les variables c et d dans un fichier sauvegarde1.mat :
 save sauvegarde1 c d
Pour enregistrer dans le même fichier toutes les variables de la session :
 save sauvegarde1
Nota : si on utilise le même nom de fichier pour sauvegarder de nouvelles
variables, les précédentes sont effacées.
Importer des variables d¶un fichier .mat
L¶instruction load permet de lire les fichiers .mat. Ainsi pour récupérer les variables
enregistrées dans le fichier essai.mat, on tape :
 load essai
30/47
31/47
FICHE 3 : GESTION DE L¶AFFICHAGE
Raccourcis pour éditer les commandes utilisées dans la fenêtre de commande
On peut éditer les commandes ultérieures en utilisant la flèche Ĺ.
Pour retrouver la commande plus rapidement, on tape le(s) premier(s) caractère(s)
et on utilise la flèche Ĺ.
Pour modifier les caractères d¶une commande, on utilise les flèches ĺ ou ĸ.
Effacer la fenêtre de commande
Pour effacer la fenêtre de commande, on dispose de l¶instruction clc.
32/47
33/47
FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE
Descriptif
Pour obtenir le descriptif d¶une fonction ou commande, on dispose de la fenêtre
d¶aide de Matlab ( helpwin) dans laquelle l¶index permet de retrouver les
commandes disponibles du logiciel. On peut aussi avoir accès au descriptif
directement à partir de la fenêtre de commande en tapant :
 help nomdelacommande
Exemple :  help min
Nota : en plus du descriptif, l¶utilisateur est informé de la syntaxe à suivre pour utiliser la
commande selon les possibilités de celle-ci.
De plus, l¶aide se termine souvent par un renvoi à d¶autres fonctions ou commandes liées à
celle recherchée.
Code source
Pour visualiser le code source d¶une fonction :
 help nomdelafonction
Exemple :  type sphere
Nota : On peut voir que l¶aide de la fonction est rappelé au début du code en commentaires
Lorsque le code source est indisponible, Matlab renvoie l e message :
 nomdelafonction is a built-in function
Exemple :  type min
34/47
35/47
FICHE 5 : DEFINIR ET GERER DES TABLEAUX : VECTEURS ET MATRICES
Comme les vecteurs, les matrices sont généralement définies ligne par ligne et entre des
crochets. On sépare chaque élément d¶une ligne par un espace ou par une virgule et pour
indiquer le passage à une nouvelle ligne, on utilise un point -virgule.
Quelques manipulations utiles
Pour accéder au terme aij :  M(i,j)
Pour modifier l¶élément a ij :  M(i,j) = a
Pour accéder à toute la i ième
ligne :  M(i, :)
Pour accéder à toute la j ième
colonne :  M( : , j )
36/47
37/47
FICHE 6 : TRACER DES GRAPHIQUES 2D
La commande plot permet de tracer tous les graphes plans. On l¶utilise sous la forme :
plot(abscisse, ordonnée, options)
options est une chaîne de caractères permettant de préciser par exemple le type ou la
couleur du tracé.
Par défaut, la figure s¶ajuste automatiquement à l¶ensemble des points à représenter, mais la
commande axis permet d¶imposer ces propres cho ix.
Pour ajouter un quadrillage, on utilise l¶instruction grid on.
Plusieurs tracés peuvent être effectués sur la même figure grâce à la commande hold on.
Pour ouvrir une nouvelle figure, il suffit de taper :  figure
La commande clf permet d¶effacer la figure courante.
On peut nommer les axes avec les commandes xlabel ou ylabel, selon l¶axe considéré,
inclure un titre (title) ou une légende ( legend).
Il peut s¶avérer intéressant d¶importer un tracé vers un document world. Pour cela, on
sélectionne dans la fenêtre figure
File Export
et on choisit un format de conversion (.png, .jpeg, «).
38/47
39/47
MINI-PROJETS
40/47
41/47
MINI-PROJET 1 : PARTS D¶UN MARCHE
Soient A et B deux produits concurrentiels. On suppose qu¶aucun produit nouveau n¶apparaît
sur le marché. Les parts sur le marché à la date t pour les produits A et B sont représentées
par la matrice colonne
¹¹
º
¸
©©
ª
¨
!
t
t
t
y
x
P
avec 1yx tt ! (puisqu¶il n¶y a pas d¶autre produit que A et B sur le marché).
La répartition prévue à la date t+1 est P t+1, telle que
¹¹
º
¸
©©
ª
¨
!¹¹
º
¸
©©
ª
¨
!



t
t
1t
1t
1t
y
x
.M
y
x
P avec ¼
½
»
¬
­
«
!
8.06.0
2.04.0
M
On appelle M matrice de transition. On notera que
1yx)y8.0x6.0()y6.0x4.0(yx tttttt1t1t !!! 
1. Pour
3.07.0P
t
0 ! , calculer P1, P2, P3, P10 et P20.
2. Effectuer de nouveau les calculs pour d¶autres valeurs de
00
t
0 yxP ! , vérifiant toujours
1yx 00 ! . Qu¶observe-t-on ?
3. Soit d un réel appartenant à l¶intervalle A ?4/3,4/1 . On note d4/1x0 ! . Calculer en
fonction de d, les valeurs de y 0, P0, P1, P2, puis la récurrence Pn.
4. Quelle est la limite de
nn
t
n yxP ! lorsque n tend vers g ? Quelle interprétation
économique peut-on faire de ce résultat ?
42/47
43/47
MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3)
Quels chiffres tous différents entre 1 et 9 doit -on mettre dans chaque case du tableau de
type (3,3) pour que la somme de chaque ligne, de chaque colonne et des deux diagonales
soit toujours égale à 15 ?
Une solution est la matrice
¼
¼
¼
½
»
¬
¬
¬
­
«
376
852
437
On propose l¶étude suivante pour trouver l¶ensemble des solutions :
1. On dit qu¶une matrice de M3(„) est magique si les huit sommes de lignes, de colonnes et
des deux diagonales sont égales à un nombre donné s. Ecrire cette propriété sous forme
d¶un système linéaire.
2. Vérifier que ce système est résoluble par la méthode de Gauss pour tout s  „.
3. Donner l¶ensemble solution de ce système. Effectuer des vérifications.
4. Etude du cas s = 15, avec coefficients entiers. Donner toutes les possibilités pour un
tableau (3,3) à coefficients entiers tous distincts entre 1 et 9 pour avoir la propriété d¶une
matrice magique avec s = 15.

Contenu connexe

Tendances

Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes PrincipalesJaouad Dabounou
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automateselectrolouhla
 
Cours series fourier
Cours series fourierCours series fourier
Cours series fourierMehdi Maroun
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURIMansouri Khalifa
 
Tp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogiqueTp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogiquehamdinho
 
Algèbre linéaire cours et exercices corrigés djeddi kamel mostafa
Algèbre linéaire cours et exercices corrigés djeddi kamel mostafaAlgèbre linéaire cours et exercices corrigés djeddi kamel mostafa
Algèbre linéaire cours et exercices corrigés djeddi kamel mostafaKamel Djeddi
 
Chapitre2 (les systèmes de numération)
Chapitre2 (les systèmes de numération)Chapitre2 (les systèmes de numération)
Chapitre2 (les systèmes de numération)killua zoldyck
 
Programme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire auProgramme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire auHanfi Akram
 
Rappel de cours traitement de signal
Rappel de cours traitement de signalRappel de cours traitement de signal
Rappel de cours traitement de signalmanahil2012
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab Hajer Dahech
 
Exercices corrigés les matrices- djeddi kamel
Exercices corrigés les matrices- djeddi kamelExercices corrigés les matrices- djeddi kamel
Exercices corrigés les matrices- djeddi kamelKamel Djeddi
 
Corrigé TD chapitre I.pptx
Corrigé TD chapitre I.pptxCorrigé TD chapitre I.pptx
Corrigé TD chapitre I.pptxMidoxotk
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Informatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPInformatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPMohammed TAMALI
 

Tendances (20)

Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes Principales
 
les matrices
les matricesles matrices
les matrices
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
 
Cours series fourier
Cours series fourierCours series fourier
Cours series fourier
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 
Tp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogiqueTp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogique
 
Algèbre linéaire cours et exercices corrigés djeddi kamel mostafa
Algèbre linéaire cours et exercices corrigés djeddi kamel mostafaAlgèbre linéaire cours et exercices corrigés djeddi kamel mostafa
Algèbre linéaire cours et exercices corrigés djeddi kamel mostafa
 
Architecture cellulaire
 Architecture cellulaire Architecture cellulaire
Architecture cellulaire
 
chap5 modulations
chap5 modulationschap5 modulations
chap5 modulations
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Chapitre2 (les systèmes de numération)
Chapitre2 (les systèmes de numération)Chapitre2 (les systèmes de numération)
Chapitre2 (les systèmes de numération)
 
Radio Mobile
Radio MobileRadio Mobile
Radio Mobile
 
Programme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire auProgramme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire au
 
Rayons X.ppt
Rayons X.pptRayons X.ppt
Rayons X.ppt
 
Rappel de cours traitement de signal
Rappel de cours traitement de signalRappel de cours traitement de signal
Rappel de cours traitement de signal
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
 
Exercices corrigés les matrices- djeddi kamel
Exercices corrigés les matrices- djeddi kamelExercices corrigés les matrices- djeddi kamel
Exercices corrigés les matrices- djeddi kamel
 
Corrigé TD chapitre I.pptx
Corrigé TD chapitre I.pptxCorrigé TD chapitre I.pptx
Corrigé TD chapitre I.pptx
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Informatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPInformatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TP
 

Similaire à 57277345 cours-matlab

Similaire à 57277345 cours-matlab (20)

Coursmp
CoursmpCoursmp
Coursmp
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
04 cours matrices_suites
04 cours matrices_suites04 cours matrices_suites
04 cours matrices_suites
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 
37248247 cours-hyperfrequences-parametres-s-antennes (1)
37248247 cours-hyperfrequences-parametres-s-antennes (1)37248247 cours-hyperfrequences-parametres-s-antennes (1)
37248247 cours-hyperfrequences-parametres-s-antennes (1)
 
Matlab for engineer
Matlab for engineer Matlab for engineer
Matlab for engineer
 
Introduction à MATLAB
Introduction à MATLABIntroduction à MATLAB
Introduction à MATLAB
 
Cours matlab
Cours matlabCours matlab
Cours matlab
 
Travaux dirigés avec corrections - soutien scolaire
Travaux dirigés avec corrections - soutien scolaireTravaux dirigés avec corrections - soutien scolaire
Travaux dirigés avec corrections - soutien scolaire
 
RapportComplet
RapportCompletRapportComplet
RapportComplet
 
Support matlab st
Support matlab stSupport matlab st
Support matlab st
 
335105967 support-de-cours-sap2000-version-07-2006-pdf
335105967 support-de-cours-sap2000-version-07-2006-pdf335105967 support-de-cours-sap2000-version-07-2006-pdf
335105967 support-de-cours-sap2000-version-07-2006-pdf
 
livre-algorithmes.pdf
livre-algorithmes.pdflivre-algorithmes.pdf
livre-algorithmes.pdf
 
Analyse2 00 (1)
Analyse2 00 (1)Analyse2 00 (1)
Analyse2 00 (1)
 
TP5_2020.pdf
TP5_2020.pdfTP5_2020.pdf
TP5_2020.pdf
 
Dijkstra kshortest
Dijkstra kshortestDijkstra kshortest
Dijkstra kshortest
 
Prog lin
Prog linProg lin
Prog lin
 
Cours api
Cours apiCours api
Cours api
 
Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 

57277345 cours-matlab

  • 1. INSTITUT POLYTECHNIQUE DES SCIENCES AVANCEES 24, rue Pasteur ± 94270 LE KREMLIN-BICETRE * Tél. : 01.44.08.01.00 * Fax : 01.44.08.01.13 Etablissement Privé d¶Enseignement Supérieur ± SIRET N° 433 695 632 00011 ± APE 803Z INSTITUT POLYTECHNIQUE DES SCIENCES AVANCEES Initiation à MATLAB Support de cours Mme VALENTIN Sontsada (Edition 2004 - 2005)
  • 3. 3/47 1. PRESENTATION DE MATLAB .................................................................................... 5 1.1 CALCULS NUMERIQUES USUELS................................ ................................ ................5 1.1.1 Exemple d¶application ................................ ................................ ..........................5 1.1.2 Les fonctions mathématiques usuelles ................................ ................................ .6 1.1.3 Calculs sur un ensemble de valeurs ................................ ................................ .....6 1.2 GRAPHIQUES................................ ................................ ................................ .................6 1.2.1 Représentations graphiques 2D ................................ ................................ ...........6 1.2.2 Représentation graphique d¶une fonction ................................ .............................7 1.3 PROGRAMMATION ................................ ................................ ................................ ........7 1.3.1 Créer ses propres fonctions ................................ ................................ .................7 1.3.2 Créer un sous-programme ................................ ................................ ...................8 2. ANALYSE ................................................................................................................... 10 2.1 SUITES REELLES................................ ................................ ................................ .........10 2.1.1 Définition ................................ ................................ ................................ ............10 2.1.2 Itérations et étude de suites ................................ ................................ ...............10 3. ALGEBRE LINEAIRE .................................................................................................12 3.1 MATRICES................................ ................................ ................................ ....................12 3.1.1 Notations et vocabulaire................................ ................................ .....................12 3.1.2 Définir des matrices avec Matlab................................ ................................ ........13 3.2 OPERATIONS SUR LES MATRICES................................ ................................ ............15 3.2.1 Addition ................................ ................................ ................................ ..............15 3.2.2 Multiplication par des scalaires ................................ ................................ ...........15 3.2.3 Multiplication des matrices ................................ ................................ .................15 3.2.4 Transposée d¶une matrice ................................ ................................ ..................16 3.2.5 Inversion de matrices carrées................................ ................................ .............16 3.3 SYSTEMES LINEAIRES................................ ................................ ................................ 17 3.3.1 Définition ................................ ................................ ................................ ............17 3.3.2 Opérations fondamentales sur les systèmes ................................ ......................18 3.3.3 Méthode de résolution de Gauss ................................ ................................ ........19 3.3.4 Systèmes de Cramer................................ ................................ ..........................21 3.3.5 Utilisation de Matlab ................................ ................................ ...........................21 REFERENCES BIBLIOGRAPHIQUES ............................................................................. 23 FICHES MEMO ................................................................................................................. 25 FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES................................ .................27 FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES................................ ....................29
  • 4. 4/47 FICHE 3 : GESTION DE L¶AFFICHAGE ................................ ................................ .................31 FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE.........................33 FICHE 5 : DEFINIR ET GERER DES TABLEAUX : VECTEURS ET MATRICES................................ ................................ ................................ ....................35 FICHE 6 : TRACER DES GRAPHIQUES 2D ................................ ................................ ..........37 MINI-PROJETS ................................................................................................................. 39 MINI-PROJET 1 : PARTS D¶UN MARCHE ................................ ................................ .............41 MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3) ................................ ....................43 MINI-PROJET 3 : RESOLUTION D¶UN SYSTEME DE CRAMER................................ ...........45 MINI-PROJET 4 : DIVISION EUCLIDIENNE ET SUITE PSEUDO- ALEATOIRE ................................ ................................ ................................ ..................47
  • 5. 5/47 1. PRESENTATION DE MATLAB 1.1 CALCULS NUMERIQUES USUELS 1.1.1 Exemple d¶application Trouver les racines du polynôme du 2 nd degré : P(x) = 3.7x²+x-1.5 Solution de la forme : a2 ac4²bb x s ! On commence par définir les paramètres du problème : a=3.7 a = 3.7 b=1 ; c= -1.5 ; Nota : - Les trois variables a,b et c apparaissent dans la fenêtre Workspace. - Dans la fenêtre Command Window, on peut aussi utiliser l¶instruction who ou whos. - Pour effacer les paramètres de la mémoire courante, on utilise l¶instruction clear (ou clear all) pour tout effacer. Dans le cas où on veut uniquement effacer la variable a : clear a. - En terminant la ligne d¶instruction par un point -virgule, on n¶affiche pas le résultat de l¶opération. - Matlab différencie les caractères minuscules des majuscules. - Lorsque l¶on affecte une nouvelle valeur à une variable, la précédente valeur est remplacée. On continue la résolution en calculant le déterminant et les deux racines : delta = b^2-4*a*c; x1 = (-b+sqrt(delta)) / (2*a) x1 = 0.5158 x2 = (-b-sqrt(delta)) / (2*a) x2 = -0.7860
  • 6. 6/47 Nota : - On peut éditer les commandes ultérieures en utilisant la flèche Ĺ. Pour retrouver la commande plus rapidement, on tape le(s) premier(s) caractère(s) et on utilise la flèche Ĺ. - Pour modifier les caractères d¶une c ommande, on utilise les flèches ĺ ou ĸ. 1.1.2 Les fonctions mathématiques usuelles De nombreuses fonctions mathématiques sont disponibles dans Matlab. Une liste exhaustive est présentée dans l¶aide de Matlab. Pour ouvrir la fenêtre de l¶aide en ligne, on utilis e l¶instruction : helpwin Les fonctions mathématiques élémentaires se trouvent dans Elementary math functions (matlab/elfun). 1.1.3 Calculs sur un ensemble de valeurs Matlab permet d¶effectuer des calculs sur un ensemble de valeurs. Au préalable, il nous faut stocker ces valeurs dans un vecteur (ou tableau). Exemple : Calculer )e1(xy x2 ! pour x = 0, 0.2, 0.4, « , 1. On définit un vecteur de valeurs régulièrement espacées en donnant successivement la valeur initiale 0, le pas 0.2 et enfin la valeur finale 1 : x = [0 :0.2 :1] On calcule ensuite les images de ces valeurs. Pour procéder au calcul sur toutes les valeurs de x, on remplace les opérateurs ^ et *, respectivement par .^ et .* : y = x.^2 .* (1+exp(-x)) 1.2 GRAPHIQUES 1.2.1 Représentations graphiques 2D La commande plot permet de tracer tous les graphes plans. On l¶utilise sous la forme : plot(abscisse, ordonnée, options) options est une chaîne de caractères permettant de préciser par exemple le type ou la couleur du tracé. Exemple :
  • 7. 7/47 x = [0 :0.2 :10] y = x.^2 .* (1+exp(-x)) plot(x,y,¶b - -¶) Par défaut, la figure s¶ajuste automatiquement à l¶ensemble des points à représenter, mais la commande axis permet d¶imposer ces propres choix. Pour ajouter un quadrillage, on utilise l¶instruction grid on. Plusieurs tracés peuvent être effectués sur la même figure grâce à la commande hold on. Pour ouvrir une nouvelle figure, il suffit de taper : figure La commande clf permet d¶effacer la figu re courante. On peut nommer les axes avec les commandes xlabel ou ylabel, selon l¶axe considéré, inclure un titre ( title) ou une légende (legend). xlabel(µx¶) ylabel(µy¶) title(µtracé de y = x^2(1+exp(-x))¶) Il peut s¶avérer intéressant d¶importer un tracé vers un document world. Pour cela, on sélectionne dans la fenêtre figure File Export et on choisit un format de conversion (.png, .jpeg, «). On peut aussi tracer plusieurs graphes sur la même figure : subplot 1.2.2 Représentation graphique d¶une fonction L¶instruction ezplot permet de tracer simplement les graphes de fonctions. Exemples : ezplot(µx^2*(1+exp(-x))¶) ezplot('x^3 + 2*x^2 - 3*x + 5 - y^2') ezplot('t*cos(t)','t*sin(t)',[0,4*pi]) 1.3 PROGRAMMATION 1.3.1 Créer ses propres fonctio ns Exemple : Soit la fonction f 1 définie par : xlnx)x(f1 !
  • 8. 8/47 On définit la fonction dans un fichier m, qui doit être enregistré dans le répertoire de travail courant (Current Directory) sous le nom f1.m. Le contenu du fichier doit respecter l¶une des deux syntaxes suivantes : f1.m % définition de la fonction y=x.ln(x) function y = f1(x) y = x.*log(x) ; function y = f1(x) % définition de la fonction y=x.ln(x) y = x.*log(x) ; Le commentaire, situé en début ou juste sous la déclaration function, est le texte affiché dans la Command Window si on appelle help f1 L¶instruction function indique qu¶il s¶agit d¶une fonction et la syntaxe y = f1(x) renseigne sur le(s) entrée(s)/sortie(s) : le calcul de la fonction dépend de x et la valeur de la sort ie est enregistrée sous y. Nota : - On affecte le même nom à la fonction et au fichier m. - L¶utilisation de l¶opération .* permettra d¶appliquer cette fonction à un tableau de valeurs. - La fonction log de Matlab calcule le logarithme népérien. (voir help log) L¶utilisateur peut alors procéder selon les besoins : - soit à des calculs numériques unitaires : f1(1.5) ans = 0.6082 - soit à des calculs sur des tableaux de valeurs : f1([1 :0.2 :2]) ans = 0.2188 0.4711 0.7520 1.0580 1.3863 - soit à des représentations graphiques, grâce à la commande fplot : fplot(µf1¶,[0.2 2]) ; grid on ; title(µfonction f1(x) = x*log(x)¶) 1.3.2 Créer un sous-programme Un sous-programme permet de mémoriser, d¶adapter, de réutiliser un calcul. On l¶appelle fonction en informatique (à ne pas confondre avec une fonction au sens mathématique, même si les deux notions se rejoignent parfois, comme l¶exemple précédent).
  • 9. 9/47 Exemple : Créer une fonction permettant de trouver les racines d¶un polynôme du 2 nd degré. On commence par ouvrir un fichier m que l¶on enregistre sous solvepoly2.m. On choisit ensuite les entrées/sorties de la fonction : - en entrée, on considère les coefficients a,b et c du polynôme P(x)=ax²+bx+c, - en sortie, les racines sont enregistrées dans un ta bleau nommé X. La syntaxe est la suivante : solvepoly2.m function X = solvepoly2(a,b,c) % solvepoly2 calcule les racines d¶un polynôme du 2 nd degré P(x)= ax²+bx+c. % X = solvepoly2(a,b,c), X est un tableau contenant les deux racines. delta = b^2-4*a*c; X(1) = (-b+sqrt(delta)) / (2*a); X(2) = (-b-sqrt(delta)) / (2*a); Résolvons de nouveau le polynôme de l¶exemple 1 à l¶aide de cette function. Supposons que l¶utilisateur ne connaisse que le nom de la fonction, pour obtenir des renseignements sur celle -ci, il doit taper : help solvepoly2 calcule les racines d¶un polynôme du 2 nd degré P(x)= ax²+bx+c. X = solvepoly2(a,b,c), X est un tableau contenant les deux racines. Une fois renseigné, il peut maintenant utiliser la fonction : solvepoly2(3.7,1,-1.5) ans = 0.5158 -0.7860
  • 10. 10/47 2. ANALYSE 2.1 SUITES REELLES 2.1.1 Définition On appelle suite numérique une application définie par : )n(un :u C „p‚ u(n) est le terme général de la suite et est souvent noté un. Par abus de langage, la suite u qui est déterminée par ses valeurs u(n)=un, se note : 0nn )u( u Une suite peut être définie à partir d¶un certain rang p fixé. On notera : pnn )u( u Une suite 0nn )u( u est majorée s¶il existe une constante M telle q ue : Mu,0n n eu et elle est minorée s¶il existe une constante m telle que : mu,n n uu Elle est bornée s¶il existe une constante C 0 telle que : Cu,0n n eu Il est facile de vérifier qu¶une suite est bornée si, et seulement si, elle est majorée et minorée. 2.1.2 Itérations et étude de suites Pour étudier les suites sous Matlab, il est essentiel de connaître les instructions d¶itération classiques, while et for, permettant de répéter un traitement sur les termes successifs d¶une suite. La syntaxe générale est : for variable = [valeurinitiale : pas : valeurfinale], % traitements à répéter end ou bien while conditionàrespecter, % traitements à répéter end
  • 11. 11/47 Nota : - Une boucle d¶itération se termine obligatoirement par l¶instruction end. - A la fin de la première ligne de la boucle, la virgule n¶est pas obligatoire, mais le point -virgule n¶est pas accepté ! Exemple : On veut calculer les 10 premiers termes d¶une suite géométrique de raison 0.5 et de premier terme u(1)=100. Les termes successifs de la suite sont enregistrés dans un tableau (ou vecteur) : u = [u(1) u(2) « u(n)], n=10 u(1) = 100 ; for k=[1 :1 :9], u(k+1) = 0.5 * u(k) ; end Aucun résultat ne s¶affiche en présence du point-virgule à la fin de l¶opération. Pour obtenir les 5 premiers termes de la suite, on tape : u(1:5) ans = 100.0000 50.0000 25.0000 12.5000 6.2500
  • 12. 12/47 3. ALGEBRE LINEAIRE 3.1 MATRICES 3.1.1 Notations et vocabulaire 3.1.1.1 Définition Un tableau M constitué de n lignes et de p colonnes est appelé matrice de type (n,p) et est noté : ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ¬ ¬ ¬ ­ « ! npnj2n1n ipij2i1i p2j22221 p1j11211 aaaa aaaa aaaa aaaa M -- /1/1// -- /1/1// -- .- La notation abrégée est Le premier indice indique le numéro de la ligne et le deuxième indice celui de la colonne. 3.1.1.2 Cas particuliers Matrices lignes et matrices colonnes Une matrice de type (1,p) (resp. (n,1)) est appelée matrice ligne (resp. matrice colonne). Matrice ligne Matrice colonne
  • 13. p11211 aaa - ¹ ¹ ¹ ¹ ¹ º ¸ © © © © © ª ¨ 1n 21 11 a a a / Matrices carrées Une matrice de type (n,n) est appelée matrice carrée d¶ordre n. Parmi les matrices carrées, on peut distinguer : les matrices carrées diagonales , vérifiant : jisiaij {! ou encore p,...,1j n,...,1iij ]a[M ! !!
  • 14. 13/47 ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « ! nn 22 11 a00 0 a0 00a M -   / /   - les matrices carrées triangulaires supérieures ou inférieures, respectivement définies par : jisi0aij ! et jisi0aij ! ou bien ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! nn n222 n11211 a00 aa0 aaa M - /11/ 1 - et ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! nn2n1n 2221 11 aaa 0 aa 00a M - 11/ /1 - les matrices carrées symétriques, telles que : j,i,aa jiij ! et enfin, les matrices carrées identités qui vérifient : ° ¯ ® ! {! 1aii jisi0aij notée ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! 100 0 10 001 In - ¡¡/ / ¡ - 3.1.2 Définir des matrices avec Matlab 3.1.2.1 Définition et manipulation de matrices quelconques Exemple : Définir la matrice Les matrices sont généralement définies ligne par ligne. ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ­ « ! 017.0 024 3105.0 952 M
  • 15. 14/47 Comme les tableaux de valeurs présentés dans le paragra phe 1.1.3, les matrices sont définies entre des crochets. On sépare chaque élément d¶une ligne par un espace ou par une virgule et pour indiquer le passage à une nouvelle ligne, on utilise un point -virgule : M = [2 5 9 ; 0.5 10 -3 ; 4 2 0 ; -0.7 1 0] M = 2.0000 5.0000 9.0000 0.5000 10.0000 -3.0000 4.0000 2.0000 0 -0.7000 1.0000 0 On peut aussi définir 3 matrices colonnes et les concaténer : u = [2 ; 0.5 ; 4 ; -0.7] ; v = [5 ; 10 ; 2 ; 1] ; w = [9 ; -3 ; 0 ; 0] ; M = [u v w] M = 2.0000 5.0000 9.0000 0.5000 10.0000 -3.0000 4.0000 2.0000 0 -0.7000 1.0000 0 Quelques manipulations utiles : Pour accéder au terme aij : M(i,j) Pour modifier l¶élément a ij : M(i,j) = a Pour accéder à toute la iième ligne : M(i, :) Pour accéder à toute la j ième colonne : M( : , j ) 3.1.2.2 Matrices particulières de Matlab Il existe plusieurs matrices particulières sous Matlab dont la liste se trouve dans la rubrique elmat de l¶aide (helpwin). Parmi les plus connues, on trouve : La matrice identité In définie par : eye(n) La matrice de type (m,n) dont tous les coefficients sont nuls (matrice nulle) : zeros(m,n) La matrice de type (m,n) dont tous les coefficients sont unitaires : ones(m,n) Nota : pour définir des matrices carrées d¶ordre n, il suffit d¶entrée le seul argument n à la commande (ex. : zeros(n), ones(n))
  • 16. 15/47 3.2 OPERATIONS SUR LES MATRICES 3.2.1 Addition Soient deux matrices de même type : ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « ! np2n1n p22221 p11211 aaa aaa aaa A - /1// - - et on appelle matrice somme de A et B, la matrice : ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « !! npnp2n2n1n1n p2p222222121 p1p112121111 bababa bababa bababa BAS - / ¢// - - De manière condensée, on a : p,...,1j n,...,1iij ]s[S ! !! avec ijijij bas,p,...,1jetn,...,1i !!! 3.2.2 Multiplication par des scalaires Soient P un scalaire quelconque de „ et une matrice M de type (n,p), telle que : la matrice PM est définie par : Tous les coefficients de la matrice M ont donc été multipliés par le scalaire P. 3.2.3 Multiplication des matrices Soient deux matrices A et B, respectivement de type (n,p) et (p,q) : ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « ! np2n1n p22221 p11211 bbb bbb bbb B - /1// - - p,...,1j n,...,1iij ]a[M ! !! ¼ ¼ ¼ ¼ ¼ ½ » ¬ ¬ ¬ ¬ ¬ ­ « PPP PPP PPP !P np2n1n p22221 p11211 aaa aaa aaa M - /1// - -
  • 17. 16/47 p,...,1k n,...,1iik ]a[A ! !! et £,...,1j p,...,1kkj ]b[B ! !! le résultat du produit est la matrice C de type (n, ) définie par où 3.2.4 Transposée d¶une matrice On appelle transposée de la matrice de type (n,p), la matrice notée t M (ou MT ) de type (p,n) définie par En d¶autres termes, t M est obtenue à partir de M en échangeant ses lignes avec ses colonnes. Pour obtenir la tranposée de la matrice M, on tape : M¶ 3.2.5 Inversion de matrices carrées Une matrice carrée A d¶ordre n est dite inversible s¶il existe une matrice carrée B du même ordre telle que : La matrice B, lorsqu¶elle existe est unique. On l¶appelle matrice inverse de A et on la note )q,n()q,p()p,n( CBxA ! q,...,1j n,...,1iij ]c[ ! !! §! ! ! p 1k kjik pjipj22ij11iij ba ba...babac p,...,1j n,...,1iij ]a[M ! !! n,...,1j p,...,1iij t ]b[M ! !! jiij ab,n,...,1jetp,...,1i !!! nIAxBBxA !! 1 AB !
  • 18. 17/47 Pour inverser une matrice A sous Matlab, on peut utiliser : inv(A) ou A^(-1) 3.3 SYSTEMES LINEAIRES 3.3.1 Définition Un système linéaire de n équations (n u 1) à p inconnues (p u 1) est défini par : n i 2 1 npnpjnj22n11n ipipjij22i11i 2pp2jj2222121 1pp1jj1212111 bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa )S( ± ± ± ± ° ±± ± ± ¯ ¤ ! ! ! ! / / Les données du système linéaire sont : - les coefficients réels ou complexes aij pour i=1,«,n et j=1,«,p (n et p sont deux entiers connus), - le second membre du système constitué par les nombres réels ou complexes bi (i=1,«,n), et Li (i=1,«,n) désigne la i ième ligne du système (S). Les inconnues à déterminer sont les x j (j=1,«,p). Le système est dit carré lorsque n=p. C¶est le cas où il y a autant d¶équations que d¶inconnues. On dira que le système est homogène lorsque le second membre est nul (bi=0, i=1,«,n). On peut remarquer qu¶un système linéaire homogène admet au moins la solution nulle x i=0, i=1,«,n (qui n¶est pas nécessairement la seule). Systèmes échelonnés Lorsque tous les coefficients sous la diagonale » d¶un système linéaire sont nul, i.e. : 0aji ij !  on dit que le système est échelonné. Ils peuvent être de trois formes : 1. les systèmes triangulaires supérieurs, à n équations et n inconnues, de la forme :
  • 19. 18/47 ± ± ± ± ° ±± ± ± ¯ ® ! ! ! ! nnnn ininiii 2nn2jj2222 1nn1jj1212111 bxa bxa...xa bxa...xa...xa bxa...xa...xaxa )S( / / Tous les coefficients aii sont non nuls. Pour obtenir toutes les inconnues xi, on procède par remontées successives. Dans ce cas, on aura une solution unique du système. 2. Les systèmes échelonnés de forme trapézoïdale, où il y a plus d¶inconnues que d¶équations, cas où n p. Ils se présentent sous la forme ± ± ° ± ± ¯ ¥ ! ! ! npnpnnn 2pp2nn2222 1pp1nn1212111 bxa...xa bxa...xa...xa bxa...xa...xaxa )S( / Si tous les coefficients aii (i=1,«,n) sont non nuls, le système admet une infinité de solutions, obtenues en donnant des valeurs arbitraires aux p-n inconnues xn+1, xn+2, «, xp. On peut alors exprimer les n premières inconnues x1, x2, «, xn en fonction de ces valeurs arbitraires. 3. Les systèmes échelonnés où on a n p : Il y a ici plus d¶équations que d¶inconnues, deux possibilités se présentent : - soit au moins l¶un des nombres bp+1, bn n¶est pas nul et le système n¶admet aucune solution, - soit tous les nombres bp+1, «, bn sont nuls et on est ramené à un système triangulaire supérieur à p inconnues et p équations. 3.3.2 Opérations fondamentales sur les systèmes Il existe 3 actions simples (provenan t de Gauss) qui permettent de transformer un système (S) en un système équivalent plus simple à résoudre. ± ± ± ± ° ± ± ± ± ¯ ® ! ! ! ! ! n 1p p 2 1 ppp pp2222 pp1212111 b b b b b 0 0 xa xa...xa xa...xaxa )S( / /
  • 20. 19/47 1. Dans un système donné (S), on peut intervertir 2 lignes quelconques Li et Lk. On écrira ki LL m 2. On peut remplacer une ligne quelconque Li par l¶un de ses multiples non nuls. On notera 0,L.L ii {EEn 3. On peut remplacer une ligne quelconque par la somme d¶un multiple (non nul) de cette ligne et d¶une combinaison finie des autres lignes. Cela se traduit par 0,L.L.L ik kkii {EFEn §{ Lorsque l¶on effectue une quelconque des 3 actions ci -dessus, sur un système linéaire (S), on obtient une nouvelle écriture équivalente de ce système. 3.3.3 Méthode de résolution de Gauss Cette méthode consiste à effectuer un certain nombre d¶actions élémentaires pour obtenir un système équivalent échelonné. Elle s¶applique à un système linéaire quelconque (carré ou non). Exemple : Trouver toutes les solutions du système à n = 4 équations et p = 5 inconnues : 4 3 2 1 4 3 2 1 5 5 5 4 4 4 3 3 3 3 2 2 2 1 1 1 L L L L b b b b x6 x5 x6 0 0 x x x x11 x6 x7 x3 x 0 x x x4 x3 x2 0 )S( ! ! ! ! ± ± ° ± ± ¯ ® Choisir une ligne dont le coeffici ent de x1 est non nul et la mettre en première ligne. Ce coefficient est appelé pivot de Gauss. On choisit d¶intervertir les lignes L 1 et L2 : 21 LL m On a alors 4 3 2 1 4 3 1 2 5 5 5 4 4 4 3 3 3 3 2 2 2 1 1 1 L L L L b b b b x6 x5 0 x6 0 x x x x11 x6 x3 x7 x 0 x x x4 x3 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ®
  • 21. 20/47 On cherche ensuite à annuler toute la colonne en dessou s du pivot choisi en effectuant des actions élémentaires de Gauss avec la première ligne. On applique donc : 133 L3L2L n puis 144 L4L2L n et le système est équivalent à : 4 3 2 1 24 23 1 2 5 5 5 4 4 4 4 3 3 3 3 2 2 2 21 L L L L b4b2 b3b2 b b x12 x8 0 x6 x4 x x x x6 x9 x3 x7 x2 x3 x x 0 0 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ® La première ligne ne changera plus. On réitère les deux étapes précédentes pour le sous -système constitué des trois autres lignes : ± ° ± ¯ ® ! ! ! 4 3 2 24 23 1 5 5 4 4 4 3 3 3 2 2 2 L L L b4b2 b3b2 b x12 x8 0 x4 x x x6 x9 x3 x2 x3 x )'S( par les actions successives : 233 L3LL n puis 244 L2LL n et on continue pour les sous -systèmes suivants. On a donc : 4 3 2 1 124 123 1 2 5 5 5 4 4 4 4 3 3 2 21 L L L L b2b4b2 b3b3b2 b b x12 x8 0 x6 x6 x4 x x 0 0 x3 x7 0 0 x x 0 0 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ® Finalement, on applique l¶action : 344 L3L2L n et on obtient 4 3 2 1 1234 123 1 2 5 5 4 4 4 3 3 2 21 L L L L b5bb3b4 b3b3b2 b b 0 x8 0 x6 0 x4 x x 0 0 x3 x7 0 0 x x 0 0 0 x2 )S( ! ! ! ! ± ± ° ± ± ¯ ® On distingue ainsi deux cas : Si les éléments bi du second membre ne vérifient pas la condition 0b5bb3b4 1234 !
  • 22. 21/47 alors on a obtenu un système échelonné de type (3) (cf. paragraphe 3.3.1) qui n¶admet aucune solution. En revanche, si la condition est vérifiée, alors par remontées successives, on peut résoudre le système. 3.3.4 Systèmes de Cramer On suppose que n = p. On considère donc un système carré n i 2 1 nnnnjnj22n11n ininjij22i11i 2nn2jj2222121 1nn1jj1212111 L L L L bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa bxa...xa...xaxa )S( ± ± ± ± ° ±± ± ± ¯ ® ! ! ! ! / / Le système admet une unique solution si, et seulement si, la méthode de Gauss fait apparaître n pivots successifs tous non nuls. Dans ce cas, on dira que le système est de Cramer. 3.3.5 Utilisation de Matlab
  • 23. 22/47
  • 24. 23/47 REFERENCES BIBLIOGRAPHIQUES [R1] Applications mathématiques avec Matlab Tome 1 : algèbre linéaire et géométrie Tome 2 : analyse « L. Jolivet, R. Labbas Lavoisier 2005, Hermes science [R2] Introduction à Matlab J.-T. Lapresté Ellipses 1999
  • 25. 24/47
  • 27. 26/47
  • 28. 27/47 FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES Une session de travail peut être sauvegardée sous 2 formes différentes selon l¶utilité ultérieure dont elle fera l¶objet : - Si on veut uniquement visualiser toutes les opérations et résultats affichés dans l¶espace de travail, on choisit la commande diary. Cette instruction permet de sauvegarder sa session de travail dans un fichier texte dès qu¶on aura donné l¶instruction diary off ou qu¶on aura quitté Matlab. Pour écrire de nouveaux éléments dans le fichier texte ainsi créé après avoir utilisé diary off (durant la même session de travail), on utilise l¶instruction diary on. - Si on veut pouvoir exécuter de nouveau les opérations de la session, il est nécessaire de créer un fichier script de Matlab (soit un m-file). Ouvrir un fichier m (m-file) qui est un fichier script de Matlab : file new m-file Ceci ouvre la fenêtre de l¶éditeur de Matlab avec un fichier nommé untitled.m, on commence par lui affecter un nom.
  • 29. 28/47 Pour réutiliser les commandes ainsi enregistrées, il existe plusieurs méthodes : - Pour exécuter l¶ensemble des commandes : On vérifie que le fichier se trouve dans le répertoire courant (Current Directory) Dans la fenêtre de commande (Command Window), on tape le nom du fichier sans son extension : nomdufichier Une autre possibilité consiste à utiliser directement la barre de tâche de l¶éditeur. En cliquant sur , on compile directement le fichier. (il faut toutefois vérifier au préalable que le fichier se trouve dans le Current Directory !) - Pour exécuter une partie des commandes du fichier: On peut effectuer un copier -coller de l¶éditeur vers la fenêtre de co mmande. L¶éditeur possède un raccourci pour ce type de copier -coller : on sélectionne les commandes concernées et avec le clique droit de la souris, on choisit l¶option Evaluate selection (cf. figure ci-dessous). Nota : - il faut absolument éviter les espaces dans les noms des fichiers. - les commentaires débutent par le caractère % et ils sont automatiquement écrits en vert.
  • 30. 29/47 FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES Lister les variables de la session de travail La fenêtre Workspace liste l¶ensemble des variables de la session de travail et renseigne sur le type, la dimension et la taille mémoire de chacune d¶entre elles. Depuis la fenêtre de commande, on peut retrouver ces informations grâce aux instructions who ou whos. Effacer les variables Il est parfois utile d¶effacer une ou plusieurs variables pour ne pas encombrer l¶espace mémoire ou pour réinitialiser la session de travail. Pour effacer les variables a et b : clear a b Pour effacer toutes les variables de la session : clear all ou bien clear Enregistrer des variables Il existe des fichiers de sauvegarde de variables spécifiques à Matlab, ils portent l¶extension .mat. Pour enregistrer les variables c et d dans un fichier sauvegarde1.mat : save sauvegarde1 c d Pour enregistrer dans le même fichier toutes les variables de la session : save sauvegarde1 Nota : si on utilise le même nom de fichier pour sauvegarder de nouvelles variables, les précédentes sont effacées. Importer des variables d¶un fichier .mat L¶instruction load permet de lire les fichiers .mat. Ainsi pour récupérer les variables enregistrées dans le fichier essai.mat, on tape : load essai
  • 31. 30/47
  • 32. 31/47 FICHE 3 : GESTION DE L¶AFFICHAGE Raccourcis pour éditer les commandes utilisées dans la fenêtre de commande On peut éditer les commandes ultérieures en utilisant la flèche Ĺ. Pour retrouver la commande plus rapidement, on tape le(s) premier(s) caractère(s) et on utilise la flèche Ĺ. Pour modifier les caractères d¶une commande, on utilise les flèches ĺ ou ĸ. Effacer la fenêtre de commande Pour effacer la fenêtre de commande, on dispose de l¶instruction clc.
  • 33. 32/47
  • 34. 33/47 FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE Descriptif Pour obtenir le descriptif d¶une fonction ou commande, on dispose de la fenêtre d¶aide de Matlab ( helpwin) dans laquelle l¶index permet de retrouver les commandes disponibles du logiciel. On peut aussi avoir accès au descriptif directement à partir de la fenêtre de commande en tapant : help nomdelacommande Exemple : help min Nota : en plus du descriptif, l¶utilisateur est informé de la syntaxe à suivre pour utiliser la commande selon les possibilités de celle-ci. De plus, l¶aide se termine souvent par un renvoi à d¶autres fonctions ou commandes liées à celle recherchée. Code source Pour visualiser le code source d¶une fonction : help nomdelafonction Exemple : type sphere Nota : On peut voir que l¶aide de la fonction est rappelé au début du code en commentaires Lorsque le code source est indisponible, Matlab renvoie l e message : nomdelafonction is a built-in function Exemple : type min
  • 35. 34/47
  • 36. 35/47 FICHE 5 : DEFINIR ET GERER DES TABLEAUX : VECTEURS ET MATRICES Comme les vecteurs, les matrices sont généralement définies ligne par ligne et entre des crochets. On sépare chaque élément d¶une ligne par un espace ou par une virgule et pour indiquer le passage à une nouvelle ligne, on utilise un point -virgule. Quelques manipulations utiles Pour accéder au terme aij : M(i,j) Pour modifier l¶élément a ij : M(i,j) = a Pour accéder à toute la i ième ligne : M(i, :) Pour accéder à toute la j ième colonne : M( : , j )
  • 37. 36/47
  • 38. 37/47 FICHE 6 : TRACER DES GRAPHIQUES 2D La commande plot permet de tracer tous les graphes plans. On l¶utilise sous la forme : plot(abscisse, ordonnée, options) options est une chaîne de caractères permettant de préciser par exemple le type ou la couleur du tracé. Par défaut, la figure s¶ajuste automatiquement à l¶ensemble des points à représenter, mais la commande axis permet d¶imposer ces propres cho ix. Pour ajouter un quadrillage, on utilise l¶instruction grid on. Plusieurs tracés peuvent être effectués sur la même figure grâce à la commande hold on. Pour ouvrir une nouvelle figure, il suffit de taper : figure La commande clf permet d¶effacer la figure courante. On peut nommer les axes avec les commandes xlabel ou ylabel, selon l¶axe considéré, inclure un titre (title) ou une légende ( legend). Il peut s¶avérer intéressant d¶importer un tracé vers un document world. Pour cela, on sélectionne dans la fenêtre figure File Export et on choisit un format de conversion (.png, .jpeg, «).
  • 39. 38/47
  • 41. 40/47
  • 42. 41/47 MINI-PROJET 1 : PARTS D¶UN MARCHE Soient A et B deux produits concurrentiels. On suppose qu¶aucun produit nouveau n¶apparaît sur le marché. Les parts sur le marché à la date t pour les produits A et B sont représentées par la matrice colonne ¹¹ º ¸ ©© ª ¨ ! t t t y x P avec 1yx tt ! (puisqu¶il n¶y a pas d¶autre produit que A et B sur le marché). La répartition prévue à la date t+1 est P t+1, telle que ¹¹ º ¸ ©© ª ¨ !¹¹ º ¸ ©© ª ¨ ! t t 1t 1t 1t y x .M y x P avec ¼ ½ » ¬ ­ « ! 8.06.0 2.04.0 M On appelle M matrice de transition. On notera que 1yx)y8.0x6.0()y6.0x4.0(yx tttttt1t1t !!! 1. Pour
  • 43. 3.07.0P t 0 ! , calculer P1, P2, P3, P10 et P20. 2. Effectuer de nouveau les calculs pour d¶autres valeurs de
  • 44. 00 t 0 yxP ! , vérifiant toujours 1yx 00 ! . Qu¶observe-t-on ? 3. Soit d un réel appartenant à l¶intervalle A ?4/3,4/1 . On note d4/1x0 ! . Calculer en fonction de d, les valeurs de y 0, P0, P1, P2, puis la récurrence Pn. 4. Quelle est la limite de
  • 45. nn t n yxP ! lorsque n tend vers g ? Quelle interprétation économique peut-on faire de ce résultat ?
  • 46. 42/47
  • 47. 43/47 MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3) Quels chiffres tous différents entre 1 et 9 doit -on mettre dans chaque case du tableau de type (3,3) pour que la somme de chaque ligne, de chaque colonne et des deux diagonales soit toujours égale à 15 ? Une solution est la matrice ¼ ¼ ¼ ½ » ¬ ¬ ¬ ­ « 376 852 437 On propose l¶étude suivante pour trouver l¶ensemble des solutions : 1. On dit qu¶une matrice de M3(„) est magique si les huit sommes de lignes, de colonnes et des deux diagonales sont égales à un nombre donné s. Ecrire cette propriété sous forme d¶un système linéaire. 2. Vérifier que ce système est résoluble par la méthode de Gauss pour tout s  „. 3. Donner l¶ensemble solution de ce système. Effectuer des vérifications. 4. Etude du cas s = 15, avec coefficients entiers. Donner toutes les possibilités pour un tableau (3,3) à coefficients entiers tous distincts entre 1 et 9 pour avoir la propriété d¶une matrice magique avec s = 15.
  • 48. 44/47
  • 49. 45/47 MINI-PROJET 3 : RESOLUTION D¶UN SYSTEME DE CRAMER On considère le système linéaire ± ± ° ± ± ¯ ® ! ! ! ! 0t2z2y5x 0t3zy4x3 0t2z3yx 1tzy3x2 1. Montrer que ce système est de Cramer. 2. Résoudre ce système par la méthode de Gauss. Vérifier le résultat avec la commande rref. 3. Vérifier que l¶on obtient aussi cette solution directement par l¶inversion matricielle. 4. En adaptant les formules de Cramer au cas d¶un système de quatre équations à quatre inconnues, retrouver la solution de ce système.
  • 50. 46/47
  • 51. 47/47 MINI-PROJET 4 : DIVISION EUCLIDIENNE ET SUITE PSEUDO-ALEATOIRE Question 1 : Division euclidienne Ecrire une fonction [q,r] = DivEuclid(a,b) qui calcule le quotient q et le reste r de la division euclidienne de l¶entier a par l¶entier b non nul. On pourra, pour effectuer le calcul, utiliser la fonction floor qui donne la partie entière d¶un nombre réel, et la fonction mod qui donne le reste de la division euclidienne. Question 2 : Suite pseudo-aléatoire Une suite pseudo-aléatoire de nombres entiers est générée de la manière suivante : on se donne 3 entiers fixés a, c et m avec a et m non nuls, on choisit une première valeur x 1, on définit par récurrence la suite de valeurs x k par xk+1 est le reste de la division de ax k+c par m Ecrire une fonction X = SuiteAlea(a,c,m,x1,n) qui construit ainsi dans un tableau X une suite de n nombres entiers pseudo -aléatoires, compris entre 0 et m-1. Tester dans un cas simple, en vérifiant que, pour a = 13, c = 0, m = 31 , x1 = 1 les 12 premiers nombres obtenus sont 1, 13, 14, 27, 10, 6, 16, 22, 7, 29, 5, 3 Remarque : En choisissant m suffisamment grand et en divisant tous les termes de la sui te obtenue par m, on obtient une suite de nombres réels pseudo -aléatoires dans l¶intervalle [0,1].