Sunteți pe pagina 1din 47

INSTITUT POLYTECHNIQUE DES SCIENCES AVANCEES

24, rue Pasteur 94270 LE KREMLIN-BICETRE * Tl. : 01.44.08.01.00 * Fax : 01.44.08.01.13


Etablissement Priv dEnseignement Suprieur SIRET N433 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 dapplication .............................................................................................. 5
1.1.2 Les fonctions mathmatiques usuelles.................................................................... 6
1.1.3 Calculs sur un ensemble de valeurs ........................................................................ 6
1.2 GRAPHIQUES ..................................................................................................................... 6
1.2.1 Reprsentations graphiques 2D .............................................................................. 6
1.2.2 Reprsentation graphique dune fonction ................................................................ 7
1.3 PROGRAMMATION ............................................................................................................ 7
1.3.1 Crer ses propres fonctions ..................................................................................... 7
1.3.2 Crer un sous-programme ....................................................................................... 9
2. ANALYSE ................................................................................................................................. 10
2.1 SUITES REELLES ............................................................................................................. 10
2.1.1 Dfinition................................................................................................................. 10
2.1.2 Itrations et tude de suites ................................................................................... 10
3. ALGEBRE LINEAIRE ............................................................................................................. 12
3.1 MATRICES......................................................................................................................... 12
3.1.1 Notations et vocabulaire......................................................................................... 12
3.1.2 Dfinir 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 Transpose dune matrice ..................................................................................... 16
3.2.5 Inversion de matrices carres ................................................................................ 16
3.3 SYSTEMES LINEAIRES ................................................................................................... 17
3.3.1 Dfinition................................................................................................................. 17
3.3.2 Oprations fondamentales sur les systmes......................................................... 18
3.3.3 Mthode de rsolution de Gauss ........................................................................... 19
3.3.4 Systmes de Cramer ............................................................................................. 21
3.3.5 Utilisation de Matlab ............................................................................................... 21
REFERENCES BIBLIOGRAPHIQUES ...................................................................................... 23



4/47
FICHES MEMO ............................................................................................................................... 25
FICHE 1 : SAUVEGARDER LES COMMANDES UTILISEES ................................................... 27
FICHE 2 : GERER ET SAUVEGARDER DES VARIABLES ...................................................... 29
FICHE 3 : GESTION DE LAFFICHAGE..................................................................................... 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 DUN MARCHE................................................................................. 41
MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3)....................................................... 43
MINI-PROJET 3 : RESOLUTION DUN 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 dapplication
Trouver les racines du polynme du 2
nd
degr :
P(x) = 3.7x+x-1.5
Solution de la forme :
a 2
ac 4 b b
x

=
On commence par dfinir les paramtres du problme :
>> a=3.7
a =
3.7
>> b=1 ;
>> c= -1.5 ;

Nota :
- Les trois variables a,b et c apparaissent dans la fentre Workspace.
- Dans la fentre Command Window, on peut aussi utiliser linstruction
who ou whos.
- Pour effacer les paramtres de la mmoire courante, on utilise
linstruction clear (ou clear all) pour tout effacer. Dans le cas o on
veut uniquement effacer la variable a : clear a.
- En terminant la ligne dinstruction par un point-virgule, on naffiche pas
le rsultat de lopration.
- Matlab diffrencie les caractres minuscules des majuscules.
- Lorsque lon affecte une nouvelle valeur une variable, la prcdente
valeur est remplace.
On continue la rsolution en calculant le dterminant 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 ultrieures en utilisant la flche . Pour
retrouver la commande plus rapidement, on tape le(s) premier(s)
caractre(s) et on utilise la flche .
- Pour modifier les caractres dune commande, on utilise les flches
ou .
1.1.2 Les fonctions mathmatiques usuelles
De nombreuses fonctions mathmatiques sont disponibles dans Matlab.
Une liste exhaustive est prsente dans laide de Matlab.
Pour ouvrir la fentre de laide en ligne, on utilise linstruction : >> helpwin
Les fonctions mathmatiques lmentaires se trouvent dans Elementary
math functions (matlab/elfun).
1.1.3 Calculs sur un ensemble de valeurs
Matlab permet deffectuer des calculs sur un ensemble de valeurs. Au
pralable, il nous faut stocker ces valeurs dans un vecteur (ou tableau).
Exemple : Calculer
) e 1 ( x y
x 2
+ =
pour x = 0, 0.2, 0.4, , 1.
On dfinit un vecteur de valeurs rgulirement espaces 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 procder au calcul sur
toutes les valeurs de x, on remplace les oprateurs ^ et *, respectivement
par .^ et .* :
>> y = x.^2 .* (1+exp(-x))


1.2 GRAPHIQUES
1.2.1 Reprsentations graphiques 2D
La commande plot permet de tracer tous les graphes plans. On lutilise
sous la forme :
plot(abscisse, ordonne, options)
options est une chane de caractres permettant de prciser par exemple
le type ou la couleur du trac.

7/47
Exemple :
>> x = [0 :0.2 :10]
>> y = x.^2 .* (1+exp(-x))
>> plot(x,y,b - -)

Par dfaut, la figure sajuste automatiquement lensemble des points
reprsenter, mais la commande axis permet dimposer ces propres choix.
Pour ajouter un quadrillage, on utilise linstruction grid on.
Plusieurs tracs peuvent tre effectus sur la mme figure grce la
commande hold on.
Pour ouvrir une nouvelle figure, il suffit de taper : >> figure
La commande clf permet deffacer la figure courante.
On peut nommer les axes avec les commandes xlabel ou ylabel, selon
laxe considr, inclure un titre (title) ou une lgende (legend).
>> xlabel(x)
>> ylabel(y)
>> title(trac de y = x^2(1+exp(-x)))
Il peut savrer intressant dimporter un trac vers un document world.
Pour cela, on slectionne dans la fentre figure
File Export
et on choisit un format de conversion (.png, .jpeg, ).
On peut aussi tracer plusieurs graphes sur la mme figure : subplot
1.2.2 Reprsentation graphique dune fonction
Linstruction 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 Crer ses propres fonctions
Exemple :
Soit la fonction f
1
dfinie par :

8/47
x ln x ) x ( f
1
=
On dfinit la fonction dans un fichier m, qui doit tre enregistr dans le
rpertoire de travail courant (Current Directory) sous le nom f1.m.
Le contenu du fichier doit respecter lune des deux syntaxes suivantes :
f1.m
% dfinition de la fonction y=x.ln(x)
function y = f1(x)
y = x.*log(x) ;
function y = f1(x)
% dfinition de la fonction y=x.ln(x)
y = x.*log(x) ;

Le commentaire, situ en dbut ou juste sous la dclaration function, est
le texte affich dans la Command Window si on appelle
>> help f1

Linstruction function indique quil sagit dune fonction et la syntaxe y =
f1(x) renseigne sur le(s) entre(s)/sortie(s) : le calcul de la fonction
dpend de x et la valeur de la sortie est enregistre sous y.
Nota :
- On affecte le mme nom la fonction et au fichier m.
- Lutilisation de lopration .* permettra dappliquer cette fonction un
tableau de valeurs.
- La fonction log de Matlab calcule le logarithme nprien. (voir help log)
Lutilisateur peut alors procder selon les besoins :
- soit des calculs numriques 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 reprsentations graphiques, grce la commande fplot :
>> fplot(f1,[0.2 2]) ; grid on ;
>> title(fonction f1(x) = x*log(x))


9/47
1.3.2 Crer un sous-programme
Un sous-programme permet de mmoriser, dadapter, de rutiliser un
calcul. On lappelle fonction en informatique ( ne pas confondre avec
une fonction au sens mathmatique, mme si les deux notions se
rejoignent parfois, comme lexemple prcdent).
Exemple :
Crer une fonction permettant de trouver les racines dun polynme du 2
nd

degr. On commence par ouvrir un fichier m que lon enregistre sous
solvepoly2.m.
On choisit ensuite les entres/sorties de la fonction :
- en entre, on considre les coefficients a,b et c du polynme
P(x)=ax+bx+c,
- en sortie, les racines sont enregistres dans un tableau nomm X.
La syntaxe est la suivante :
solvepoly2.m
function X = solvepoly2(a,b,c)
% solvepoly2 calcule les racines dun polynme 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);
Rsolvons de nouveau le polynme de lexemple 1 laide de cette
function. Supposons que lutilisateur ne connaisse que le nom de la
fonction, pour obtenir des renseignements sur celle-ci, il doit taper :
>> help solvepoly2
calcule les racines dun polynme 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 Dfinition
On appelle suite numrique une application dfinie par :
) n ( u n
: u

9

u(n) est le terme gnral de la suite et est souvent not u
n
. Par abus de
langage, la suite u qui est dtermine par ses valeurs u(n)=u
n
, se note :
0 n n
) u (
>

Une suite peut tre dfinie partir dun certain rang p fix. On notera :
p n n
) u (
>

Une suite
0 n n
) u (
>
est majore sil existe une constante M telle que :
M u , 0 n
n
s >
et elle est minore sil existe une constante m telle que :
m u , 0 n
n
> >
Elle est borne sil existe une constante C > 0 telle que :
C u , 0 n
n
s >
Il est facile de vrifier quune suite est borne si, et seulement si, elle est
majore et minore.
2.1.2 Itrations et tude de suites
Pour tudier les suites sous Matlab, il est essentiel de connatre les
instructions ditration classiques, while et for, permettant de rpter un
traitement sur les termes successifs dune suite.
La syntaxe gnrale est :
for variable = [valeurinitiale : pas : valeurfinale],
% traitements rpter
end
ou bien
while conditionrespecter,
% traitements rpter
end

11/47
Nota :
- Une boucle ditration se termine obligatoirement par linstruction end.
- A la fin de la premire ligne de la boucle, la virgule nest pas
obligatoire, mais le point-virgule nest pas accept !
Exemple :
On veut calculer les 10 premiers termes dune suite gomtrique de
raison 0.5 et de premier terme u(1)=100. Les termes successifs de la
suite sont enregistrs 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 rsultat ne saffiche en prsence du point-virgule la fin de
lopration. 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 Dfinition
Un tableau M constitu de n lignes et de p colonnes est appel matrice
de type (n,p) et est not :
(
(
(
(
(
(
(
(

=
np nj 2 n 1 n
ip ij 2 i 1 i
p 2 j 2 22 21
p 1 j 1 12 11
a a a a
a a a a
a a a a
a a a a
M







La notation abrge est
p ,..., 1 j
n ,..., 1 i ij
] a [ M
=
=
=
Le premier indice indique le numro de la ligne et le deuxime 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 appele matrice ligne (resp.
matrice colonne).
Matrice ligne Matrice colonne
( )
p 1 12 11
a a a
|
|
|
|
|
.
|

\
|
1 n
21
11
a
a
a


- Matrices carres
Une matrice de type (n,n) est appele matrice carre dordre n. Parmi
les matrices carres, on peut distinguer :
- les matrices carres diagonales, vrifiant :
j i si 0 a
ij
= =
ou encore

13/47
(
(
(
(
(

=
nn
22
11
a 0 0
0
a 0
0 0 a
M


- les matrices carres triangulaires suprieures ou infrieures,
respectivement dfinies par :
j i si 0 a
ij
> = et j i si 0 a
ij
< =
ou bien
(
(
(
(

=
nn
n 2 22
n 1 12 11
a 0 0
a a 0
a a a
M

et
(
(
(
(

=
nn 2 n 1 n
22 21
11
a a a
0
a a
0 0 a
M


- les matrices carres symtriques, telles que :
j , i , a a
ji ij
=
- et enfin, les matrices carres identits qui vrifient :

=
= =
1 aii
j i si 0 aij

note
(
(
(
(

=
1 0 0
0
1 0
0 0 1
In


3.1.2 Dfinir des matrices avec Matlab
3.1.2.1 Dfinition et manipulation de matrices quelconques
Exemple :
Dfinir la matrice
(
(
(
(

=
0 1 7 . 0
0 2 4
3 10 5 . 0
9 5 2
M
Les matrices sont gnralement dfinies ligne par ligne.

14/47
Comme les tableaux de valeurs prsents dans le paragraphe 1.1.3, les
matrices sont dfinies entre des crochets. On spare chaque lment
dune 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 dfinir 3 matrices colonnes et les concatner :
>> 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 accder au terme a
ij
: >> M(i,j)
- Pour modifier llment a
ij
: >> M(i,j) = a
- Pour accder toute la i
ime
ligne : >> M(i, :)
- Pour accder toute la j
ime
colonne : >> M( : , j )
3.1.2.2 Matrices particulires de Matlab
Il existe plusieurs matrices particulires sous Matlab dont la liste se
trouve dans la rubrique elmat de laide (helpwin).
Parmi les plus connues, on trouve :
- La matrice identit I
n
dfinie 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 dfinir des matrices carres dordre n, il suffit dentre 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 mme type :
(
(
(
(
(

=
np 2 n 1 n
p 2 22 21
p 1 12 11
a a a
a a a
a a a
A

et
(
(
(
(
(

=
np 2 n 1 n
p 2 22 21
p 1 12 11
b b b
b b b
b b b
B


on appelle matrice somme de A et B, la matrice :
(
(
(
(
(

+ + +
+ + +
+ + +
= + =
np np 2 n 2 n 1 n 1 n
p 2 p 2 22 22 21 21
p 1 p 1 12 12 11 11
b a b a b a
b a b a b a
b a b a b a
B A S


De manire condense, on a :
p ,..., 1 j
n ,..., 1 i ij
] s [ S
=
=
=
avec
ij ij ij
b a s , p ,..., 1 j et n ,..., 1 i + = = =

3.2.2 Multiplication par des scalaires
Soient un scalaire quelconque de 9 et une matrice M de type (n,p), telle
que :
p ,..., 1 j
n ,..., 1 i ij
] a [ M
=
=
=
la matrice M est dfinie par :
(
(
(
(
(




=
np 2 n 1 n
p 2 22 21
p 1 12 11
a a a
a a a
a a a
M


Tous les coefficients de la matrice M ont donc t multiplis par le
scalaire .
3.2.3 Multiplication des matrices
Soient deux matrices A et B, respectivement de type (n,p) et (p,q) :

16/47
p ,..., 1 k
n ,..., 1 i ik
] a [ A
=
=
= et
q ,..., 1 j
p ,..., 1 k kj
] b [ B
=
=
=
le rsultat du produit
) q , n ( ) q , p ( ) p , n (
C B x A =

est la matrice C de type (n,q) dfinie par
q ,..., 1 j
n ,..., 1 i ij
] c [ C
=
=
=
o

=
=
+ + + =
p
1 k
kj ik
pj ip j 2 2 i j 1 1 i ij
b a
b a ... b a b a c

3.2.4 Transpose dune matrice
On appelle transpose de la matrice
p ,..., 1 j
n ,..., 1 i ij
] a [ M
=
=
=
de type (n,p), la matrice note
t
M (ou M
T
)
n ,..., 1 j
p ,..., 1 i ij
t
] b [ M
=
=
=
de type (p,n) dfinie par
ji ij
a b , n ,..., 1 j et p ,..., 1 i = = =
En dautres termes,
t
M est obtenue partir de M en changeant ses
lignes avec ses colonnes. Pour obtenir la tranpose de la matrice M, on
tape :
>> M

3.2.5 Inversion de matrices carres
Une matrice carre A dordre n est dite inversible sil existe une matrice
carre B du mme ordre telle que :
n
I A x B B x A = =
La matrice B, lorsquelle existe est unique. On lappelle matrice inverse de
A et on la note
1
A B

=

17/47
Pour inverser une matrice A sous Matlab, on peut utiliser :
inv(A) ou A^(-1)
3.3 SYSTEMES LINEAIRES
3.3.1 Dfinition
Un systme linaire de n quations (n > 1) p inconnues (p > 1) est dfini
par :
n
i
2
1
n p np j nj 2 2 n 1 1 n
i p ip j ij 2 2 i 1 1 i
2 p p 2 j j 2 2 22 1 21
1 p p 1 j j 1 2 12 1 11
L
L
L
L
b x a ... x a ... x a x a
b x a ... x a ... x a x a
b x a ... x a ... x a x a
b x a ... x a ... x a x a
) S (

= + + + + +
= + + + + +
= + + + + +
= + + + + +


Les donnes du systme linaire sont :
- les coefficients rels ou complexes a
ij
pour i=1,,n et j=1,,p (n et p
sont deux entiers connus),
- le second membre du systme constitu par les nombres rels ou
complexes b
i
(i=1,,n),
et L
i
(i=1,,n) dsigne la i
ime
ligne du systme (S).
Les inconnues dterminer sont les x
j
(j=1,,p).
Le systme est dit carr lorsque n=p. Cest le cas o il y a autant
dquations que dinconnues.
On dira que le systme est homogne lorsque le second membre est nul
(b
i
=0, i=1,,n). On peut remarquer quun systme linaire homogne
admet au moins la solution nulle x
i
=0, i=1,,n (qui nest pas
ncessairement la seule).
Systmes chelonns
Lorsque tous les coefficients sous la diagonale dun systme linaire
sont nul, i.e. :
0 a j i
ij
= >
on dit que le systme est chelonn.
Ils peuvent tre de trois formes :
1. les systmes triangulaires suprieurs, n quations et n
inconnues, de la forme :

18/47

=
= + +
= + + + +
= + + + + +
n n nn
i n in i ii
2 n n 2 j j 2 2 22
1 n n 1 j j 1 2 12 1 11
b x a
b x a ... x a
b x a ... x a ... x a
b x a ... x a ... x a x a
) S (


Tous les coefficients a
ii
sont non nuls. Pour obtenir toutes les
inconnues xi, on procde par remontes successives. Dans ce cas,
on aura une solution unique du systme.
2. Les systmes chelonns de forme trapzodale, o il y a plus
dinconnues que dquations, cas o n < p. Ils se prsentent sous
la forme

= + +
= + + + +
= + + + + +
n p np n nn
2 p p 2 n n 2 2 22
1 p p 1 n n 1 2 12 1 11
b x a ... x a
b x a ... x a ... x a
b x a ... x a ... x a x a
) S (


Si tous les coefficients a
ii
(i=1,,n) sont non nuls, le systme
admet une infinit de solutions, obtenues en donnant des valeurs
arbitraires aux p-n inconnues x
n+1
, x
n+2
, , x
p
. On peut alors
exprimer les n premires inconnues x
1
, x
2
, , x
n
en fonction de
ces valeurs arbitraires.
3. Les systmes chelonns o on a n > p :

=
=
=
=
=
+ +
+ + +
+
n
1 p
p
2
1
p pp
p p 2 2 22
p p 1 2 12 1 11
b
b
b
b
b
0
0
x a
x a ... x a
x a ... x a x a
) S (


Il y a ici plus dquations que dinconnues, deux possibilits se
prsentent :
- soit au moins lun des nombres b
p+1
, b
n
nest pas nul et le
systme nadmet aucune solution,
- soit tous les nombres b
p+1
, , b
n
sont nuls et on est ramen
un systme triangulaire suprieur p inconnues et p quations.
3.3.2 Oprations fondamentales sur les systmes
Il existe 3 actions simples (provenant de Gauss) qui permettent de
transformer un systme (S) en un systme quivalent plus simple
rsoudre.

19/47
1. Dans un systme donn (S), on peut intervertir 2 lignes
quelconques L
i
et L
k
. On crira
k i
L L
2. On peut remplacer une ligne quelconque Li par lun de ses
multiples non nuls. On notera
0 , L . L
i i
= o o
3. On peut remplacer une ligne quelconque par la somme dun
multiple (non nul) de cette ligne et dune combinaison finie des
autres lignes. Cela se traduit par
0 , L . L . L
i k
k k i i
= o | + o

=

Lorsque lon effectue une quelconque des 3 actions ci-dessus, sur un
systme linaire (S), on obtient une nouvelle criture quivalente de ce
systme.
3.3.3 Mthode de rsolution de Gauss
Cette mthode consiste effectuer un certain nombre dactions
lmentaires pour obtenir un systme quivalent chelonn. Elle
sapplique un systme linaire quelconque (carr ou non).
Exemple :
Trouver toutes les solutions du systme 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
x 6
x 5
x 6
0
0
x
x
x
x 11
x 6
x 7
x 3
x
0
x
x
x 4
x 3
x 2
0
) S (
=
=
=
=
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+


Choisir une ligne dont le coefficient de x1 est non nul et la mettre en
premire ligne. Ce coefficient est appel pivot de Gauss.
On choisit dintervertir les lignes L
1
et L
2
:
2 1
L L
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
x 6
x 5
0
x 6
0
x
x
x
x 11
x 6
x 3
x 7
x
0
x
x
x 4
x 3
0
x 2
) S (
=
=
=
=
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+



20/47
On cherche ensuite annuler toute la colonne en dessous du pivot choisi
en effectuant des actions lmentaires de Gauss avec la premire ligne.
On applique donc :
1 3 3
L 3 L 2 L puis
1 4 4
L 4 L 2 L
et le systme est quivalent :
4
3
2
1
2 4
2 3
1
2
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2 1
L
L
L
L
b 4 b 2
b 3 b 2
b
b
x 12
x 8
0
x 6
x 4
x
x
x
x 6
x 9
x 3
x 7
x 2
x 3
x
x
0
0
0
x 2
) S (

=
=
=
=

+
+

+
+

+
+


La premire ligne ne changera plus. On ritre les deux tapes
prcdentes pour le sous-systme constitu des trois autres lignes :

=
=
=

+
4
3
2
2 4
2 3
1
5
5
4
4
4
3
3
3
2
2
2
L
L
L
b 4 b 2
b 3 b 2
b
x 12
x 8
0
x 4
x
x
x 6
x 9
x 3
x 2
x 3
x
) ' S (
par les actions successives :
2 3 3
L 3 L L + puis
2 4 4
L 2 L L +
et on continue pour les sous-systmes suivants. On a donc :
4
3
2
1
1 2 4
1 2 3
1
2
5
5
5
4
4
4
4
3
3
2
2 1
L
L
L
L
b 2 b 4 b 2
b 3 b 3 b 2
b
b
x 12
x 8
0
x 6
x 6
x 4
x
x
0
0
x 3
x 7
0
0
x
x
0
0
0
x 2
) S (
+
+
=
=
=
=

+
+

+
+
+
+
+
+
+
+
+


Finalement, on applique laction :
3 4 4
L 3 L 2 L
et on obtient
4
3
2
1
1 2 3 4
1 2 3
1
2
5
5
4
4
4
3
3
2
2 1
L
L
L
L
b 5 b b 3 b 4
b 3 b 3 b 2
b
b
0
x 8
0
x 6
0
x 4
x
x
0
0
x 3
x 7
0
0
x
x
0
0
0
x 2
) S (
+
+
=
=
=
=
+

+
+
+

+
+
+
+
+
+
+
+
+


On distingue ainsi deux cas :
Si les lments b
i
du second membre ne vrifient pas la condition
0 b 5 b b 3 b 4
1 2 3 4
= +

21/47
alors on a obtenu un systme chelonn de type (3) (cf. paragraphe
3.3.1) qui nadmet aucune solution.
En revanche, si la condition est vrifie, alors par remontes successives,
on peut rsoudre le systme.

3.3.4 Systmes de Cramer
On suppose que n = p. On considre donc un systme carr
n
i
2
1
n n nn j nj 2 2 n 1 1 n
i n in j ij 2 2 i 1 1 i
2 n n 2 j j 2 2 22 1 21
1 n n 1 j j 1 2 12 1 11
L
L
L
L
b x a ... x a ... x a x a
b x a ... x a ... x a x a
b x a ... x a ... x a x a
b x a ... x a ... x a x a
) S (

= + + + + +
= + + + + +
= + + + + +
= + + + + +


Le systme admet une unique solution si, et seulement si, la mthode de
Gauss fait apparatre n pivots successifs tous non nuls. Dans ce cas, on
dira que le systme est de Cramer.
3.3.5 Utilisation de Matlab

22/47

23/47
REFERENCES BIBLIOGRAPHIQUES
[R1] Applications mathmatiques avec Matlab
Tome 1 : algbre linaire et gomtrie
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 sauvegarde sous 2 formes diffrentes selon lutilit
ultrieure dont elle fera lobjet :
- Si on veut uniquement visualiser toutes les oprations et rsultats affichs dans lespace
de travail, on choisit la commande diary.
Cette instruction permet de sauvegarder sa session de travail dans un fichier texte ds
quon aura donn linstruction diary off ou quon aura quitt Matlab.
Pour crire de nouveaux lments dans le fichier texte ainsi cr aprs avoir utilis diary
off (durant la mme session de travail), on utilise linstruction diary on.




- Si on veut pouvoir excuter de nouveau les oprations de la session, il est ncessaire de
crer 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 fentre de lditeur de Matlab avec un fichier nomm untitled.m, on
commence par lui affecter un nom.

28/47

Pour rutiliser les commandes ainsi enregistres, il existe plusieurs mthodes :

- Pour excuter lensemble des commandes :
On vrifie que le fichier se trouve dans le rpertoire courant (Current Directory)
Dans la fentre de commande (Command Window), on tape le nom du fichier sans
son extension :
>> nomdufichier

Une autre possibilit consiste utiliser directement la barre de tche de lditeur. En
cliquant sur , on compile directement le fichier. (il faut toutefois vrifier au
pralable que le fichier se trouve dans le Current Directory !)

- Pour excuter une partie des commandes du fichier :
On peut effectuer un copier-coller de lditeur vers la fentre de commande. Lditeur
possde un raccourci pour ce type de copier-coller : on slectionne les commandes
concernes et avec le clique droit de la souris, on choisit loption Evaluate selection
(cf. figure ci-dessous).



Nota :
- il faut absolument viter les espaces dans les noms des fichiers.
- les commentaires dbutent par le caractre % 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 fentre Workspace liste lensemble des variables de la session de travail et
renseigne sur le type, la dimension et la taille mmoire de chacune dentre elles.
Depuis la fentre de commande, on peut retrouver ces informations grce aux
instructions who ou whos.
Effacer les variables

Il est parfois utile deffacer une ou plusieurs variables pour ne pas encombrer
lespace mmoire ou pour rinitialiser 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 spcifiques Matlab, ils portent
lextension .mat.
Pour enregistrer les variables c et d dans un fichier sauvegarde1.mat :
>> save sauvegarde1 c d
Pour enregistrer dans le mme fichier toutes les variables de la session :
>> save sauvegarde1

Nota : si on utilise le mme nom de fichier pour sauvegarder de nouvelles
variables, les prcdentes sont effaces.
Importer des variables dun fichier .mat

Linstruction load permet de lire les fichiers .mat. Ainsi pour rcuprer les variables
enregistres dans le fichier essai.mat, on tape :
>> load essai

30/47


31/47
FICHE 3 : GESTION DE LAFFICHAGE

Raccourcis pour diter les commandes utilises dans la fentre de commande

On peut diter les commandes ultrieures en utilisant la flche .
Pour retrouver la commande plus rapidement, on tape le(s) premier(s) caractre(s)
et on utilise la flche .
Pour modifier les caractres dune commande, on utilise les flches ou .

Effacer la fentre de commande

Pour effacer la fentre de commande, on dispose de linstruction clc.



32/47

33/47
FICHE 4 : SE RENSEIGNER SUR UNE FONCTION OU UNE COMMANDE

Descriptif

Pour obtenir le descriptif dune fonction ou commande, on dispose de la fentre
daide de Matlab (>> helpwin) dans laquelle lindex permet de retrouver les
commandes disponibles du logiciel. On peut aussi avoir accs au descriptif
directement partir de la fentre de commande en tapant :
>> help nomdelacommande

Exemple : >> help min
Nota : en plus du descriptif, lutilisateur est inform de la syntaxe suivre pour utiliser la
commande selon les possibilits de celle-ci.
De plus, laide se termine souvent par un renvoi dautres fonctions ou commandes lies
celle recherche.
Code source

Pour visualiser le code source dune fonction :
>> help nomdelafonction

Exemple : >> type sphere
Nota : On peut voir que laide de la fonction est rappel au dbut du code en commentaires
Lorsque le code source est indisponible, Matlab renvoie le 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 gnralement dfinies ligne par ligne et entre des
crochets. On spare chaque lment dune 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 accder au terme a
ij
: >> M(i,j)
Pour modifier llment a
ij
: >> M(i,j) = a
Pour accder toute la i
ime
ligne : >> M(i, :)
Pour accder toute la j
ime
colonne : >> M( : , j )








36/47

37/47
FICHE 6 : TRACER DES GRAPHIQUES 2D


La commande plot permet de tracer tous les graphes plans. On lutilise sous la forme :
plot(abscisse, ordonne, options)
options est une chane de caractres permettant de prciser par exemple le type ou la
couleur du trac.
Par dfaut, la figure sajuste automatiquement lensemble des points reprsenter, mais la
commande axis permet dimposer ces propres choix.
Pour ajouter un quadrillage, on utilise linstruction grid on.
Plusieurs tracs peuvent tre effectus sur la mme figure grce la commande hold on.
Pour ouvrir une nouvelle figure, il suffit de taper : >> figure
La commande clf permet deffacer la figure courante.
On peut nommer les axes avec les commandes xlabel ou ylabel, selon laxe considr,
inclure un titre (title) ou une lgende (legend).
Il peut savrer intressant dimporter un trac vers un document world. Pour cela, on
slectionne dans la fentre 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 DUN MARCHE


Soient A et B deux produits concurrentiels. On suppose quaucun produit nouveau napparat
sur le march. Les parts sur le march la date t pour les produits A et B sont reprsentes
par la matrice colonne
|
|
.
|

\
|
=
t
t
t
y
x
P
avec 1 y x
t t
= + (puisquil ny a pas dautre produit que A et B sur le march).
La rpartition prvue la date t+1 est P
t+1
, telle que
|
|
.
|

\
|
=
|
|
.
|

\
|
=
+
+
+
t
t
1 t
1 t
1 t
y
x
. M
y
x
P avec
(

=
8 . 0 6 . 0
2 . 0 4 . 0
M
On appelle M matrice de transition. On notera que
1 y x ) y 8 . 0 x 6 . 0 ( ) y 6 . 0 x 4 . 0 ( y x
t t t t t t 1 t 1 t
= + = + + + = +
+ +

1. Pour ( ) 3 . 0 7 . 0 P
t
0
= , calculer P
1
, P
2
, P
3
, P
10
et P
20
.
2. Effectuer de nouveau les calculs pour dautres valeurs de ( )
0 0
t
0
y x P = , vrifiant toujours
1 y x
0 0
= + . Quobserve-t-on ?
3. Soit d un rel appartenant lintervalle | | 4 / 3 , 4 / 1 . On note d 4 / 1 x
0
+ = . Calculer en
fonction de d, les valeurs de y
0
, P
0
, P
1
, P
2
, puis la rcurrence P
n
.
4. Quelle est la limite de ( )
n n
t
n
y x P = lorsque n tend vers + ? Quelle interprtation
conomique peut-on faire de ce rsultat ?


42/47







43/47
MINI-PROJET 2 : MATRICES MAGIQUES DE TYPE (3,3)


Quels chiffres tous diffrents 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
(
(
(

3 7 6
8 5 2
4 3 7

On propose ltude suivante pour trouver lensemble des solutions :
1. On dit quune matrice de M
3
(9) est magique si les huit sommes de lignes, de colonnes et
des deux diagonales sont gales un nombre donn s. Ecrire cette proprit sous forme
dun systme linaire.
2. Vrifier que ce systme est rsoluble par la mthode de Gauss pour tout s e 9.
3. Donner lensemble solution de ce systme. Effectuer des vrifications.
4. Etude du cas s = 15, avec coefficients entiers. Donner toutes les possibilits pour un
tableau (3,3) coefficients entiers tous distincts entre 1 et 9 pour avoir la proprit dune
matrice magique avec s = 15.



44/47

45/47
MINI-PROJET 3 : RESOLUTION DUN SYSTEME DE CRAMER



On considre le systme linaire

= + +
= +
= +
= + +
0 t 2 z 2 y 5 x
0 t 3 z y 4 x 3
0 t 2 z 3 y x
1 t z y 3 x 2

1. Montrer que ce systme est de Cramer.
2. Rsoudre ce systme par la mthode de Gauss. Vrifier le rsultat avec la commande
rref.
3. Vrifier que lon obtient aussi cette solution directement par linversion matricielle.
4. En adaptant les formules de Cramer au cas dun systme de quatre quations quatre
inconnues, retrouver la solution de ce systme.






46/47

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 lentier a par lentier b non
nul. On pourra, pour effectuer le calcul, utiliser la fonction floor qui donne la partie entire
dun nombre rel, et la fonction mod qui donne le reste de la division euclidienne.

Question 2 : Suite pseudo-alatoire

Une suite pseudo-alatoire de nombres entiers est gnre de la manire suivante :
on se donne 3 entiers fixs a, c et m avec a et m non nuls,
on choisit une premire valeur x
1
,
on dfinit par rcurrence la suite de valeurs x
k
par
x
k+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-alatoires,
compris entre 0 et m-1.

Tester dans un cas simple, en vrifiant 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 suite obtenue par
m, on obtient une suite de nombres rels pseudo-alatoires dans lintervalle [0,1].

S-ar putea să vă placă și