You are on page 1of 10

UNIVERSITE de BRETAGNE du SUD

Ecole Nationale Suprieure Des Ingnieurs De Bretagne Du Sud

Compte Rendu TP1 : Prise en main de MATLAB

Ralis par

AL ECHCHEIKH EL ALOUI Adnane

Encadr par

Mr Ludovic Billot

Anne Universitaire 2010/2011

Introduction
MATLAB est la fois un langage de programmation et un environnement de dveloppement dvelopp
et commercialis par la socit amricaine MathWorks. MATLAB est utilis dans les domaines de
l'ducation, de la recherche et de l'industrie pour le calcul numrique mais aussi dans les phases de
dveloppement de projets. Wikipidia

Exercice 1 : Cration des matrices


Pour crer une matrice sur on ouvre un crochet [ , et ; pour sparer les lignes des colonnes,

>> A=[1 2 3 4;3 4 1


2;2 3 4 1]
A=
1
3
2

2
4
3

3
1
4

4
2
1

>> B=[1 2 3 1;1 3 -1


2;2 -1 2 -1;0 1 -1 2]
B=
1
1
2
0

2 3
3 -1
-1 2
1 -1

1
2
-1
2

>> C=[1 -1 0 1;-1 1


1 1;1 0 -1 -1]
C=
1 -1 0
-1 1 1
1 0 -1

1
1
-1

>> D=[2;1;-1;0]
D=
2
1
-1
0

>> E=[1;3;5;7]
E=
1
3
5
7
1) Les oprations sur les matrices

>> A*B
ans =

>> B*B
ans =

9 9 3 10
9 19 5 14
13 10 10 6

>> A*D
ans =

9 6 6 4
2 14 -4 12
5 -2 12 -4
-1 6 -5 7

>> A.*C
ans =

1
9
3

1 -2 0
-3 4 1
2 0 -4

Multiplie la matrice

>> A'
ans =
1
2
3
4

multiplication de A et C
membre membre

>> A+C
ans =
3
4
1
2

2
3
4
1

Transpos de A ;
0n Met les lignes de A
en colonnes et ses
colonnes en lignes

4
2
-1

2
2
3

1
5
3

>> B.^2
ans =
3
2
3

5
3
0

1
1
4
0

4
9
1
1

>> B^2
ans =
9
1
4
1

1
4
1
4

une lvation membre


membre de la
matrice B

9 6 6 4
2 14 -4 12
5 -2 12 -4
-1 6 -5 7

>> B*A

>> A+B

>> A./C

??? Error using ==> *


Inner matrix dimensions must
agree.

??? Error using ==> +


Matrix dimensions must
agree.

Warning: Divide by zero.


(Type "warning off
MATLAB:divideByZero" to
suppress this warning.)
ans =
1 -2 Inf
-3 4 1
2 Inf -4

Le nombre de ligne de B est


diffrents au nombre de
colonne de A donc la
multiplication est impossible

Le nombre de ligne et ou
colonne de B est diffrents A
donc la multiplication est
impossible

Inf reprsente une divise par 0.


(x/0)

>> C./A

>> I=[1 0 0 0;0 1 0


0;0 0 1 0;0 0 0 1]

>> B-2*I

ans =

I=

ans =

1.0000 -0.5000 0
0.2500
-0.3333 0.2500 1.0000 0.5000
0.5000
0
-0.2500 -1.0000

1
0
0
0

0
1
0
0

0
0
1
0

0
0
0
1

4
2
-1

-1 2 3
1 1 -1
2 -1 0
0 1 -1

1
2
-1
0

Diviser de c par a membre membre


2) La Fonction size pour obtenir les dimensions des matrices :

>> size(A)

>> size(B)

>> size(C)

ans =

ans =

ans =

3) Le produit scalaire :

>> D'*E

>> D'*E

ans =

ans =

4) Norme dun vecteur

Les 2 vecteurs sont orthogonaux

>> norm(A)

>> norm(D)

ans =

ans =

8.7567

2.4495

5) Calcule du dterminant

>> det(B)
ans =

det(B)= -30
donc il est inversible

-30
6) Calcule de linverse

>> inv(B)

ans =
-0.2000 0.2667 0.4667 0.0667
0.1000 0.3667 -0.2333 -0.5333
0.3000 -0.2333 -0.0333 0.0667
0.1000 -0.3000 0.1000 0.8000

7) Le systme linaire B*X=D


>> X=B\D

Exercice 2
1) concatnation
On a la matrice E

On va crire E par concatnation


>> A=[2 -1 0 0 ;-1 2 -1 0 ;0 1 2 -1 ;0 0 -1 2]
A=
2 -1 0 0
-1 2 -1 0
0 -1 2 -1
0 0 -1 2

>> B=[1;2;3;2]

>> C=[5 4 3 2]

B=
1
2
3
2

C=
5

Syntaxes concatnation

>> E=[A B ;C 1]
E=
2 -1 0 0
-1 2 -1 0
0 -1 2 -1
0 0 -1 2
5 4 3 2

1
2
3
2
1

2) Extraction

On veut extraire de E la matrice une sous matrice des lignes 1 3 et des colonnes 1, 3et 5.
La syntaxe est la suivante Matrice (dbut : fin, dbut : fin)
>> E(1:3,1 3 5)
ans =
2 -1
-1 2
0 -1

0
-1
2

>>

Exercice 3
Dans le programme suivant on va travail avec une matrice de dimension une (1) = tableau
et garder chaque fois la valeur de chaque U(i) et aprs la valeur final
(On peut faire le programme directement sans le tableau mais on va voire que le rsultat final)
function U=suite(n)
U(1)=2;
U(2)=-4;
for i=3:n;
U(i)=111-(1130/U(i-1))+(3000/(U(i-1)*U(i-2)));
end
Pour prsenter la fonction

>> plot(suite(5))

la suite converge vers 100


la dmonstration par rcurrence
=

4 5 +1 3 6+1
4 5 3 6

0 =

4 50+1 3 60+1
=2
4 50 3 60

On dmontre quil est vrai pour zro.

On suppose que Un vrai pour n et montrons quil est vrai n+1

1 =

4 5 3 6
4 51 3 61

+1 = 111
+1 = 111

1130
3000
+

1130
3000
+
4 5+1 3 6 +1
4 5+1 3 6 +1
4 5 3 6

4 5 3 6
4 5 3 6
4 51 3 61

+1 = 111
+1 = 111
+1 =

+1 =
+1 =
+1 =
+1 =

1130(4 5 3 6 ) 3000(4 51 3 61 )
+
(4 5+1 3 6 +1 )
(4 5+1 3 6+1 )

111(4 5+1 3 6+1 ) 1130(4 5 3 6 ) + 3000(4 51 3 61 )


(4 5+1 3 6+1 )

+1 =

Donc

1130
3000
+
4 5+1 3 6 +1
4 5+1 3 6 +1

4 5 3 6
4 51 3 6 1

111(4 5 +1 3 6+1 ) + (3000 1130)(4 5 1 3 61 )


(4 5+1 3 6 +1 )
4 5+1 111

1130 3000
1130 3000
3 6+1 111

+
+
5
6
25
36
(4 5 +1 3 6+1 )
3996 6780 + 3000

36
+1
+1
(4 5
36 )

4 5+1 (111 226 + 120) 3 6+1


4 5+1 5 3 6+1 6
(4 5 +1 3 6+1 )
4 5+2 3 6 +2
(4 5+1 3 6 +1 )

4 5 +1 3 6+1
4 5 3 6

Exercice 4
Partie 1:
On a A et B
>> A=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10]
A=
10
7
8
7

7 8 7
5 6 5
6 10 9
5 9 10
Calcule de dterminant de la matrice A

>> det(A)

>> B=[32;23;33;31]
B=
32
23
33
31

ans =
1
det(A)=1 donc elle inversible

Rsolution de systme linaire


>> X=B\A
X=
0.2670

0.1921

0.2784

0.2626

Partie 2:
on a
DELTTAA =
0
0
0.1000
0.0800 0.0400
0
0
-0.0200 -0.0110
-0.0100 -0.0100
0

0.2000
0
0
-0.0200

>> A=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10]


A=
10
7
8
7

7 8 7
5 6 5
6 10 9
5 9 10

3) calcule de la variation relative subie par b=||DELTTAA||/||A||


Norme L1
>> b=norm(DELTTAA)
b=
0.2244
Norme L inf
>> b=norm(DELTTAA,inf)
b=
0.3000
>> b=norm(DELTTAA,inf)/norm(A,inf)
b=
0.0091
La variation est trs faible

>> A1=A+DELTTAA
A1 =
10.0000
7.0800
8.0000
6.9900

7.0000
5.0400
5.9800
4.9900

8.1000
6.0000
9.9890
9.0000

7.2000
5.0000
9.0000
9.9800

Rsolution de systme linaire perturb Y=B\A1


>> Y=B\A1
Y=
0.2674

0.1920

0.2792

0.2642

calcule de la variation relative subie par X1

>> X1=norm(Y-X,inf)/norm(X,inf)
X1 =
0.0058
6) conclusion
On a X = 0.0058 et b = 0.0091
On constate que ci on perturbe un peu la matrice A cela entraine une petite variation de la
matrice B car X est petite.
Partie 3:
On dcide maintenant de perturber B
Soit B1=B+dB avec
On pose les mmes calculs que pour la partie 2 on trouve :
Variation relative subie par B : VB=3.3319e-004
Rsolution systme linaire AZ=B1 : Z= [1.8200;-0.3600;1.3500;0.7900]
Variation relative subie par X : VX2=8189
On constate que ci on perturbe lgrement la matrice B cela entraine une trs grande variation
de la matrice.
Partie 4:
1/- On utilise la fonction eig de Matlab pour calculer les valeurs propres de A [vp] :
[vp]= eig(A)
On trouve: [vp]=eig(A)= [0.0102;0.8431;3.858;30.2887]
2/- soit Ka gal max valeur propre de A divis par min valeur propre de A.
Ka=max(eig(A))/min(eig(A))

K(A) =
2.9841e+003

3/- vrification : KA=norm(A)*norm(inv(A))


KA=norm (A)*norm (inv(A))
K(A) =
2.9841e+003
4/- les modles linaires de la physique, de l'astronomie,..., conduisent souvent la rsolution
de grands systmes linaires qu'on reprsente matriciellement par une quation du type AX=Y.
Il arrive parfois qu'une petite variation sur Y entrane une grande variation sur X. On dit dans
ce cas que la matrice, ou le problme, est mal conditionne.
Pour trouver le conditionnement dune matrice sous matlab, on utilise la fonction cond.
K(A)= cond(A)
On trouve :
cond(A)=
2.9841e+003

5/- le conditionnement trouv K(A)= 2.9841e+003 donc la matrice A est mal conditionne ce
qui explique, bien daprs la dfinition donne dans la partie 4 question 4, les constations faites
dans les parties 2 et 3.