Corrige TP2-Matlab K-GHOUMID 2020-2021 PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 14

Cours ‘Introduction à Matlab’

Solution de la série TP2

Prof. Kamal GHOUMID

Exo-1- Systèmes d’équations

Clear all ;

%On commence par le système S1

A = [-1 2 1; -1 1 2; 1 -2 1] %Matrice associée au système S1

A=

-1 2 1

-1 1 2

1 -2 1

>> U = [4; -1; 3] %Attention, il s’agit d’un vecteur colonne

U=

-1

>> InvA = inv(A)

InvA =

2.5000 -2.0000 1.5000

1.5000 -1.0000 0.5000

0.5000 0 0.5000
Rq : On verifier que A*inv(A) = égale à la matrice identité.

>> DetA = det(A)

>> M1 = A\U %La solution est le vecteur colonne M(x;y;z)

M1 =

-3

>> M1 = inv(A)*U %La solution peut être aussi écrite sous cette forme

M1 =

-3

%Maintenant c’est la résolution du système S2

B = [3 -2 4 ; 2 -3 2 ; 5 4 -6] ; %Matrice associée à S2

V = [17; 14; 1] ;

InvB = inv(B)

0.1282 0.0513 0.1026

0.2821 -0.4872 0.0256

0.2949 -0.2821 -0.0641

DetB = det(B)
78

M2 = inv(B)*V %La solution du S2

3.0000

-2.0000

1.0000

M2 = inv(B)*V %La solution peut être aussi écrite sous cette forme

M1 =

3.0000

-2.0000

1.0000

Exo-2- Factorisation des matrices

1. Calculs des valeurs propres et des vecteurs propres

A = [0 2 -1; 3 -2 0; -2 2 10]

0 2 -1

3 -2 0

-2 2 10

>> [Vecteurs_propres,Valeurs_propres] = eig(A)

Vecteurs_propres =

-0.4991 0.7694 -0.1029

0.8443 0.6380 -0.0254

-0.1951 0.0313 0.9944


Valeurs_propres =

-3.7737 0 0

0 1.6177 0

0 0 10.1559

%On obtient les 3 vecteurs propres, chacun dans une colonne et les valeurs propres sont dans
la diagonale.

2. Vérification

>> A*Vecteurs_propres

1.8836 1.2447 -1.0452

-3.1860 1.0321 -0.2579

0.7361 0.0507 10.0987

>> Vecteurs_propres*Valeurs_propres

1.8836 1.2447 -1.0452

-3.1860 1.0321 -0.2579

0.7361 0.0507 10.0987

3. Matrices L et U

>> B = [9 6 3; 6 3 1; 1 0 1]

B=

9 6 3

6 3 1

1 0 1
>> [LB UB] = lu(B)

LB =

1.0000 0 0

0.6667 1.0000 0

0.1111 0.6667 1.0000

UB =

9.0000 6.0000 3.0000

0 -1.0000 -1.0000

0 0 1.3333

Exo-3- Manipulation des polynômes

1. calculs des valeurs

>> clear all

>> P = [1 -3 2]

P=

1 -3 2

>> Q = [1 -1]

Q=

1 -1

>> polyval(P,-1)

ans =

6
>> polyval(P,3)

ans =

>> polyval(P,sqrt(5))

ans =

0.2918

>> polyval(Q,1)

ans =

>> polyval(Q,-36)

ans =

-37

>> polyval(Q,sqrt(3)+6)

ans =

6.7321

2. Les raciness des polynômes

>> RacinesP = roots(P)

RacinesP =

1
>> RacinesQ = roots(Q)

RacinesQ =

3. Polynôme R(x)

>> R = poly([-3 1 2])

R=

1 0 -7 6

Il s’agit bien du polynôme R (les valeurs affichées par Matlab, sont dans l’ordre décroissant
des puissances)

R(x) = x3 + 0 * x2 – 7 * x + 6

4. Calculs des dérivées

>> derivP = polyder(P)

derivP =

2 -3

C’est le polynôme P’(x) = 2 * x - 3

>> derivQ = polyder(Q)

derivQ =

C’est le polynôme Q’(x) = 1

Pour évaluer les valeurs, c’est simple, il faut utiliser la commande polyval.

Expl : polyval(derivP,-4)= -11


5. Décomposition en élément simple

>> n=[6]; % Représente le numérateur

>> R = [1 6 11 6 0]; % Représente le dénominateur

>> [r,p,k]=residue(n,R)

r=

-1.0000

3.0000

-3.0000

1.0000

p=

-3.0000

-2.0000

-1.0000

k=

[]

On retrouve bien:

6 1 3 3 1
4 23
   
x  6 x  11x  6 x x  3 x  2 x 1 x

Avec r = -1, 3, -3 et 1

Et p = -3, -2, -1 et 0

k est l’ensemble vide

Remarque : On note l’importance de la décomposition en éléments simples : l’exemple de


l’intégration (C’est compliqué de calculer l’intégrale 6/R(x), mais avec cette décomposition,
le calcul devient simple. L’intégrale devient la somme des ‘log’).
 Pour la décomposition de 1/P(x)

>> [r,p,k]=residue(1,P)

r=

-1

p=

k=

[]

On retrouve bien:

1 1 1
2
 
x  3x  2 x  2 x 1

Avec r = 1 et -1

Et p = 2 et 1

k est l’ensemble vide

Exo-4- Manipulation des polynômes

1. Multiplication, division et addition de P(x) et Q(x)

* Multiplication : Après avoir défini ces deux polynômes en vecteur, il faut utiliser la
commande

Multip = conv(P,Q)

* Division : il faut utiliser la commande

[q,r] = deconv(P,Q)
Où q : représente le quotient de la division

r : représente le reste de la division

* Pour l’addition, il faut faire tout simplement

Addition = P + Q

2. Calcul et affichage des racines

Racines_P = roots(P) ;

disp(racines_P)

La commande ‘disp’ pour l’affichage (voir loin).

Racines_P = roots(Q) ;

disp(racines_Q)

3. Calculs des valeurs

Les commandes

polyval(P,-3), polyval(P,0), polyval(P,5), ….

4. Dérivée des polynômes

Les commandes

polyder(P), polyder(Q)

5. Représentation de la courbe

>> x=linspace(-2,4,120);

>> P=[3 -5 -9 45];

>> V=polyval(P,x);

>> plot(x,V)

>> title('x^3 - 5x^2 - 9x + 45')


>> title('P(x) = x^3 - 5x^2 - 9x + 45')

>> grid

>> xlabel('x')

>> ylabel('P(x)')

P(x) = x 3 - 5x 2 - 9x + 45
140

120

100

80
P(x)

60

40

20

0
-2 -1 0 1 2 3 4
x

On obtient la courbe demandée

Il faut bien méditer les détails de chaque commande.

Exo-5- Interpolation des données mesurées

En tapant ces commandes, on obtiendra la courbe demandée.

Remarque : selon la version que vous avez, peut être la commande ‘interpl’ ne va pas
fonctionner.
************************* Le script Ex5TP2STPI1.m *************************

Val = [-5 : 1 : 5] ;

Mes = [-1.32 2.63 2.28 2.31 2.56 2.19 2.53 2.67 1.37 -0.16 2.47];

U = [-5 : 0.2 : 5];

P = polyfit(Val,Mes,8); % On approxime les points de mesure par un polynôme d’ordre 8

Approx = polyval(P,U); % Les images du vecteur U par le polynôme P

plot(Val,Mes,'o',U,Approx,'r','linewidth',3); % représentation graphique

grid on

legend('Données de mesure', 'Interpolation polynomiale d''ordre 8');

xlabel('Valeurs de $x$');

ylabel('Mesures effectuées');

*************************************************************************

Après l’exécution du script, on a la courbe ci-dessous.

Rq : Demander aux étudiants de taper :

>> P = polyfit(x1,M,8) % on a approximé les points mesurés par un polynôme de degré 8


P=
Columns 1 through 8
-0.0001 0.0003 0.0041 -0.0085 -0.0655 0.0326 0.2662 0.0340
Column 9
2.2720
Le polynôme de degré 8 est :
P(x) = - 0,0001 x8 + 0,0003 x7 + 0,0041 x6 - 0,0085 x5 – 0,0655 x4 + 0,0326 x3 + 0,2662 x2
0,0340 x + 2,2720
Données
3 Interpolation polynomiale

2.5

1.5
Mesures effectuées

0.5

-0.5

-1

-1.5
-5 -4 -3 -2 -1 0 1 2 3 4 5
Valeurs de x

Exo-6- Approximation polynômiale d’une fonction

>> x=linspace(0,4*pi,10);

>> y=sin(x);

>> p=polyfit(x,y,7)

p=

-0.0001 0.0028 -0.0464 0.3702 -1.3808 1.9084 -0.1141 0.0002

>> x1=linspace(0,4*pi);

>> y1=polyval(p,x1);

>> figure;

>> plot(x,y,'o')

>> hold on

>> plot(x1,y1)

>> grid
>> xlabel('x')

>> ylabel('y')

>> title('Approximation de "sin(x)" par le polynôme P(x) = -0.0001*x^7 + 0.0028*x^6 -


0.0464*x^5 + 0.3702*x^4 - 1.3808*x^3 + 1.9084*x^2 - 0.1141*x + 0.0002 sur [0 4\pi]')

Approximation de "sin(x)" par le polynôme P(x) = -0.0001*x7 + 0.0028*x6 - 0.0464*x5 + 0.3702*x4 - 1.3808*x3 + 1.9084*x2 - 0.1141*x + 0.0002 sur [0 4]
1.5

0.5

0
y

-0.5

-1

-1.5
0 2 4 6 8 10 12 14
x

Vous aimerez peut-être aussi