You are on page 1of 10

UNIVERSITE de BRETAGNE du SUD

Ecole Nationale Supérieure Des Ingénieurs De Bretagne Du Sud

Compte Rendu TP1 : Prise en main de MATLAB

Réalisé par

 AL ECHCHEIKH EL ALOUI Adnane

Encadré par

 Mr Ludovic Billot

Année Universitaire 2010/2011

Introduction
MATLAB est à la fois un langage de programmation et un environnement de développement développé
et commercialisé par la société américaine MathWorks. MATLAB est utilisé dans les domaines de
l'éducation, de la recherche et de l'industrie pour le calcul numérique mais aussi dans les phases de
développement de projets. «Wikipidia»

Exercice 1 : Création des matrices
Pour créer une matrice sur on ouvre un crochet « [ », et « ; » pour séparer 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 opérations 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 élévation 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
différents au nombre de
colonne de A donc la
multiplication est impossible

Le nombre de ligne et ou
colonne de B est différents A
donc la multiplication est
impossible

Inf représente 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

4

4

4

3

4

3) Le produit scalaire :

>> D'*E

>> D'*E

ans =

ans =

0

4) Norme d’un vecteur

0

Les 2 vecteurs sont orthogonaux

>> norm(A)

>> norm(D)

ans =

ans =

8.7567

2.4495

5) Calcule du déterminant

>> det(B)
ans =

det(B)= -30
donc il est inversible

-30
6) Calcule de l’inverse

>> 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 système linéaire B*X=D
>> X=B\D

Exercice 2
1) concaténation
On a la matrice E

On va écrire E par concaténation
>> 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

4

3

2

Syntaxes concaténation

>> 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 (début : fin, début : 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 après la valeur final
(On peut faire le programme directement sans le tableau mais on va voire que le résultat 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 présenter la fonction

>> plot(suite(5))

la suite converge vers 100
la démonstration par récurrence 𝑈𝑈𝑈𝑈
=

4 × 5𝑛𝑛 +1 − 3 × 6𝑛𝑛+1
4 × 5𝑛𝑛 − 3 × 6𝑛𝑛 𝑈𝑈

0 =

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

 On démontre qu’il est vrai pour zéro.

 On suppose que Un vrai pour n et montrons qu’il est vrai n+1 𝑈𝑈𝑛𝑛

−1 =

4 × 5𝑛𝑛 − 3 × 6𝑛𝑛
4 × 5𝑛𝑛−1 − 3 × 6𝑛𝑛−1 𝑈𝑈𝑛𝑛

+1 = 111 − 𝑈𝑈𝑛𝑛
+1 = 111 −

1130
3000
+ 𝑈𝑈𝑛𝑛 𝑈𝑈𝑛𝑛

𝑈𝑈𝑛𝑛−1

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 × 5𝑛𝑛−1 − 3 × 6𝑛𝑛−1 𝑈𝑈𝑛𝑛

+1 = 111 − 𝑈𝑈𝑛𝑛
+1 = 111 − 𝑈𝑈𝑛𝑛
+1 = 𝑈𝑈𝑛𝑛

+1 = 𝑈𝑈𝑛𝑛
+1 = 𝑈𝑈𝑛𝑛
+1 = 𝑈𝑈𝑛𝑛
+1 = 𝑈𝑈𝑈𝑈

=

1130(4 × 5𝑛𝑛 − 3 × 6𝑛𝑛 ) 3000(4 × 5𝑛𝑛−1 − 3 × 6𝑛𝑛−1 )
+
(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 × 5𝑛𝑛−1 − 3 × 6𝑛𝑛−1 )
(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 × 5𝑛𝑛−1 − 3 × 6𝑛𝑛 −1

111(4 × 5𝑛𝑛 +1 − 3 × 6𝑛𝑛+1 ) + (3000 − 1130)(4 × 5𝑛𝑛 −1 − 3 × 6𝑛𝑛−1 )
(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
−3×6 )

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 déterminant de la matrice A

>> det(A)

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

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

Résolution de système linéaire
>> 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 très 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


Résolution de système linéaire 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 décide maintenant de perturber B
 Soit B1=B+dB avec
 On pose les mêmes calculs que pour la partie 2 on trouve :
 Variation relative subie par B : VB=3.3319e-004
 Résolution système linéaire AZ=B1 : Z= [1.8200;-0.3600;1.3500;0.7900]
 Variation relative subie par X : VX2=8189
On constate que ci on perturbe légèrement la matrice B cela entraine une très 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/- vérification : KA=norm(A)*norm(inv(A))
KA=norm (A)*norm (inv(A))
K(A) =
2.9841e+003
4/- les modèles linéaires de la physique, de l'astronomie,..., conduisent souvent à la résolution
de grands systèmes linéaires qu'on représente matriciellement par une équation du type AX=Y.
Il arrive parfois qu'une petite variation sur Y entraîne une grande variation sur X. On dit dans
ce cas que la matrice, ou le problème, est mal conditionnée.
Pour trouver le conditionnement d’une 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 conditionnée ce
qui explique, bien d’après la définition donnée dans la partie 4 question 4, les constations faites
dans les parties 2 et 3.