Vous êtes sur la page 1sur 13

initiation MATLAB

Rsolution dquations
PREMIERE PARTIE : COURS ET EXEMPLES

Thmes abords :
* Systmes dquations linaires,
* Equations polynomiales.

Remarque IMPORTANTE : dans ce TP, lorsquun exemple ou un exercice est donn, vous
tes invit fortement le raliser et en noter le rsultat.

I. Systmes dquations linaires

1. Introduction

Dans ce TP, nous allons voir comment rsoudre des quations linaires du type suivant :

a11 x1 + a12 x2 + ... + a1n xn = b1


M = M
a m1 x1 + a m 2 x2 + ... + a mn xn = bm

o n est le nombre dinconnues : x1,,xn et m le nombre dquations.

2. Equations linaires inhomognes

Lorsque les termes en b ne multiple aucune inconnue et dont au moins un est non nul, le
systme est dit non homogne.

Exemples de systmes inhomognes :

Systme 2 inconnues et une quation

>> % 2x1 x2 = 2 quivaut x1 = 1 + 0.5x2


>> x2=-10:10
>> x1=1+0.5*x2
>> subplot(2,2,1), plot(x1,x2) % subplot dcoupe la fentre en 4 figures
>> gtext(2x1-x2=2) % positionner avec la souris prs de la courbe
>> xlabel(x1)
>> ylabel(x2)

Sur le graphe, on voit bien quil y a une infinit de solution (appartenant la droite).
Systmes 2 inconnues et 2 quations

>> % 2x1 x2 = 2
>> % 2x1 x2 = 0
>> hold on % autoriser laffichage de 2 courbes dans la mme figure
>> x1=1+0.5*x2
>> subplot(2,2,2), plot(x1,x2)
>> gtext( 2x1 - x2 = 2)
>> xlabel(x1)
>> ylabel(x2)
>> x1=x2/2;
>> subplot(2,2,2), plot(x1,x2)
>> gtext(2x1 - x2 = 0)
>> hold off

Ici, les 2 droites sont parallles : il nexiste aucune solution.

>> % 2x1 x2 = 2
>> % x1 + x2 = 5
>> hold on
>> x1=1+0.5*x2
>> subplot(2,2,3), plot(x1,x2)
>> gtext(2x1 - x2 = 2)
>> x1 =5- x2;
>> subplot(2,2,3), plot(x1,x2)
>> gtext(x1+x2 = 5)
>> xlabel(x1)
>> ylabel(x2)
>> hold off

Les 2 droites sintersectent un point unique : il sagit de la solution. Quelle est-elle ? (regardez
sur le graphe).
Systmes 2 inconnues et 3 quations

>> % 2x1 x2 = 2
>> % x1 + x2 = 5
>> % 6x1 - x2 = 5
>> hold on
>> x1=1+0.5*x2
>> subplot(2,2,4), plot(x1,x2)
>> gtext(2x1 - x2 = 2)
>> x1 = 5- x2
>> subplot(2,2,4), plot(x1,x2)
>> gtext(x1+x2 = 5)
>> xlabel(x1)
>> ylabel(x2)
>> x1 = (5+ x2) /6
>> subplot(2,2,4), plot(x1,x2)
>> gtext(6x1-x2 = 5)
>> hold off

Ici, les 2 droites sintersectent en 3 points diffrents : il nexiste pas de solution.

Reprsentation matricielle des systmes dquations

a11 x1 + a12 x2 + ... + a1n xn = b1


Le systme dquations : M = M
a m1 x1 + a m 2 x2 + ... + a mn xn = bm

peut sexprimer sous forme matricielle : AX = B

a11 a12 L a1n x1 b1


a a 22 L a2n x b
avec : A = 21 , X = 2 et B = 2 .
M M O M M M

a m1 am 2 L a mn xn bm

A est appel matrice de coefficients et X le vecteur solution.

Si m=n, A est une matrice carre et si le dterminant de A ( det(A) ) est non nul, alors A est
inversible :

A 1 AX = X = A 1 B

Exemple :
>> % 2x1 x2 = 2
>> % x1 + x2 = 5
>> A = [2 -1 ; 1 1]
>> B = [2 ; 5]
>> X = inv(A)*B
>> rats(X) % rats : approximation rationnelle

2x - x = 2
Remarque : comme nous lavons vu graphiquement, le systme 1 2 na pas de
2x 1 x 2 = 0
2 1
solution ; en effet, =0.
2 1

3. Equations linaires homognes

Les systmes dont les membres de droites sont nuls sont dits homognes : AX=0

Si det(A)0, alors la seule solution possible (solution triviale) est


X=0.

Si det(A)=0, alors plusieurs solutions sont possibles.


Exemple :
>> % premier systeme
>> % 2x1-x2=0
>> % x1+x2=0
>> det([2 -1 ;1 1])
>> x1=-5 :10
>> x2_1=2*x1
>> x2_2=-x1
>> hold on;
>> subplot(1,2,1), plot(x1,x2_1,r,x1,x2_2,b) % 1 solution X=0
>> xlabel(x1)
>> ylabel(x2)
>> grid
>> % second systeme
>> % -6x1 + 3x2 = 0
>> % 2x1 - x2 = 0
>> det([-6 3 ;2 -1])
>> x2_1=2*x1
>> x2_2= 6*x1/3
>> subplot(1,2,2), plot(x1,x2_1,r,x1,x2_2,b) % solutions infinies
>> xlabel(x1)
>> ylabel(x2)
>> grid

4. Rsolution dquations linaires avec MATLAB

Avec MATLAB, les quations linaires peuvent se rsoudre laide de loprateur \, comme
suit :

>> A = [2 -1 ; 1 1] ;
>> B = [2 ; 5] ;
>> X = A\B

Loprateur anti-slash, \, donne systmatiquement un rsultat. Dans le cas o le


systme dquations nadmet pas de solution : ce rsultat sera faux (cf. troisime exemple ci-
dessous). Dans le cas dune infinit de solutions, loprateur donnera une solution particulire
(cest--dire lune des solutions possibles ; cf. deuxime exemple ci-dessous).

Une manire de savoir si un systme possde rellement au moins une solution, il faut
vrifier le thorme de Kronecker-Capelli : un systme possde une solution si et seulement
si sa matrice de coefficients appele A et sa matrice augmente sont de mme rang.

Exemple dun systme avec une solution unique :

>> A = [2 -1 ; 1 1] ;
>> B = [2 ; 5] ;
>> rank(A), rank([ A B ])
Exemple dun systme avec plusieurs solutions :

>> % 2x1 + 3x2 + 4x3 = 4


>> % x1 + x2 + x3 = 5
>> A = [2 3 4 ; 1 1 1] ;
>> B = [4 ; 5] ;
>> rank(A), rank([ A B ])
>> X = A\B

Vous pouvez vrifier que le vecteur X est une solution particulire du systme dquation.

Exemple dun systme sans solution :

>> % x1 + 2x2 + 3x3 = 12


>> % 3x1 + 2x2 + x3 = 15
>> % 3x1 + 4x2 + 7x3 = 13
>> % 10x1 + 9x2 + 8x3 = 17
>> A = [1 2 3 ; 3 2 1; 3 4 7;10 9 8] ;
>> B = [12 ; 15 ; 13; 17] ;
>> rank(A), rank([ A B ])
>> X = A\B

On peut aisment constater que cela nest pas une solution du systme :

>> A*X

Le rsultat nest pas gal B !

5. Systmes dquations surdtermins solutions au sens des moindres carrs

On dit quun systme est surdtermin quand le nombre dquations, m, est suprieur
au nombre dinconnues, n. Les m quations sont indpendantes, c'est--dire quaucune dentre
elles ne peut tre drive dune autre.
Par exemple, supposons que nous tudions un phnomne pour lequel deux variables x
et y sont relis par la relation :
y = a + bx
Et quune srie de m expriences (ou mesures) soient ralises dans le but de
dterminer les deux coefficients, a et b. Pour chaque exprience i, on rajoute au systme
dquations, une quation dont les coefficients sont xi et yi, ei reprsentant lerreur que lon
fait chaque exprience :
yi = a + bxi + ei , i = 1,2,..., m

Dans ce cas, une solution exacte nexiste pas. Cependant, on peut dterminer une
solution au sens des moindres carrs. Il sagit de chercher la solution qui minimise la somme
des erreurs au carr dfinie comme suit :
m m
= e = ( yi a bxi ) 2
2
i
i =1 i =1

Le systme dquations pourra scrire : Y=AX

y1 1 x1
y 1 x
a
avec Y = 2 , A = 2
et X = .
M M M b

ym 1 xm
Les coefficients cherchs sont donnes par : X = (AA)-1AY.

Il est dmontr que cette solution minimise lerreur au sens des moindres carres. Dans la
suite de ce TP, on admettra cette dmonstration, sans plus dexplication. Il existe beaucoup
douvrages pour rpondre aux questions des tudiants intresss sur la question (exemple :
chapitre 8 de http://asi.insa-rouen.fr/enseignement/siteUV/ananum/Polycours.pdf).

Exemple simple :
2x 1 - x 2 = 2

x 1 + x 2 = 5
6x - x = -5
1 2

>> A = [2 -1 ; 1 1 ; 6 -1] ;
>> B = [2 ; 5 ; -5] ;
>> X = A\B
>> x1=-2 :6
>> x2_1=2*x1-2 % 2x1-x2=2
>> x2_2=5-x1 % x1+x2=5
>> x2_3=6*x1+5 % 6x1-x2=-5
>> plot(x1,x2_1,x1,x2_2,x1,x2_3,X(1),X(2),*);
>> xlabel(x1)
>> ylabel(x2)
>> grid
>> title(Systme surdimensionn, solution au sens des moindres carrs.)

6. Systmes mal conditionns

On dit quun systme est mal conditionn si de faibles variations dans les donnes produisent
dimportantes variations des rsultats.

1 1 1 2
Exemple : =
1 1.01 1 2.01

>> A=[1 1 ;1 1.01], B=[2 ; 2.01]


>> X=A\B
>> format long ; X=A\B
modifions lgrement lun des lments de A :

>> A(1,2) = 1.005 ; X=A\B


>> A(1,2) = 1 ; B(2) = 2.015 ;
>> X = A\B

On peut estimer la sensibilit des changements de coefficients et de termes du membre de


droite, laide du nombre de conditionnement :

>> cond(A)

si ce nombre est proche de 1, le systme est bien conditionn. Sinon la matrice est sujette aux
erreurs darrondi.

II. Equations polynomiales

1. Introduction

La forme gnrale dune quation polynomiale est la suivante :

a n x n + a n 1 x n 1 + ... + a1 x + a0 = 0

Une solution, ou racine, de lquation est un nombre xi, rel ou complexe. Une quation
polynomiale de degr n a exactement n racines (qui peuvent tre complexes) :

an ( x x1 )( x x2 )...( x xn1 )( x xn ) = 0

2. Recherche des racines polynomiales avec MATLAB

La fonction roots de MATLAB dtermine les solutions dquations polynomiales.

Exemple : x5-2x4+2x3+3x2+x+4=0

>> c=[1 -2 2 3 1 4] ; % vecteur des coefficients de lquation polynomiale


>> solution=roots(c)

Remarque : la solution est un vecteur colonne alors que le tableau initial, c, est un vecteur
ligne.

3. Recherche des coefficients polynomiaux partir des racines

Pour un tableau des racines polynomiales donn, poly dtermine les coefficients polynomiaux
ordonns selon les puissances dcroissantes de linconnue. Dans notre exemple :

>> poly(solution)
DEUXIEME PARTIE : EXERCISES

Exercice 1 : systme linaire incohrent

4 x 4 x 2 = 3
Soit le systme linaire suivant : 1
3 x1 3 x 2 = 0
Calculez le dterminant associ ce systme dquations.
Y a-t-il une solution ce systme ?
Trouvez une reprsentation graphique qui illustre votre rponse.

Exercice 2 : approximations rationnelles

Trouvez les approximations rationnelles des nombres suivants : , sin(30), cos(30),


tan(45), 0.33333, 2 .
Quels sont les rsultats exacts ? Pourquoi les autres ne le sont-ils pas ?

Exercice 3 : systme dquations linaires mal conditionn

1 / 2 1 / 3 1 / 4 X (1) 0.95
Soit le systme suivant : 1 / 3 1 / 4 1 / 5 X (2) = 0.67 qui est de la forme AX=B
1 / 4 1 / 5 1 / 6 X (3) 0.52
Calculez la solution de ce systme.
Remplacez B(3) par 0.53 et calculez la solution nouveau. Dterminez linfluence de
la variation de B(3) sur les fluctuations de la solution.
Calculez le nombre de conditionnement de A et tirez-en les conclusions appropries.

Exercice 4 : chelles de tempratures

Il a t dmontr que la relation entre les chelles de Celsius et de Fahrenheit est linaire. On
peut la reprsenter par une relation de la forme

C=aF+b

o C est la temprature en degrs Celsius et F la temprature en degrs Fahrenheit.

La droite dcrite par l'quation prcdente doit passer par le point de fusion de l'eau, de
coordonnes F = 32, C = 0 et le point d'bullition de coordonnes F = 212, C = 100. Les
coefficients a et b doivent par consquent satisfaire le systme

32a + b = 0
212a+b = 100

Donnez la forme matricielle de ce systme.


Rsolvez ce systme sous MATLAB.
Donnez la solution sous forme rationelle.
Quelle est donc la relation entre les chelles de Celsius et de Fahrenheit ?
Exercice 5 : trouver la profondeur dun puits

Dans un roman noir autrefois populaire, un dtective dsirait dterminer la profondeur d'un
puits. Il y laissa tomber une pierre et mesura le temps coul jusqu' ce qu'il l'entende
atteindre l'eau. Soit t ce temps: il est constitu de t1, le temps de chute libre, c'est--dire le
temps entre le moment o la pierre quitte la main du dtective et le moment o elle atteint la
surface de l'eau, et t2, le temps de propagation du son de la surface de l'eau jusqu' l'oreille du
dtective. Si g est l'acclration de la pesanteur, d la profondeur du puits (approximativement
gale la distance entre la main ou l'oreille du dtective et la surface de l'eau), et c la vitesse
du son dans l'air,

g 2
d= .t1
2
d = c.t 2
t = t1 + t 2

De la premire quation, on extrait la profondeur d, comme la distance parcourue par la pierre


en chute libre pendant le temps t1. La deuxime quation fournit la mme longueur d, comme
la distance parcourue par le son pendant le temps t2. La troisime quation indique que le
temps total t, mesur par le dtective correspond la somme des temps t1 et t2. En tirant les
valeurs de t1 et t2 partir des deux premires quations et en les substituant dans la troisime,
on obtient :

d 2 2(tc + c 2 / g )d + c 2 t 2 = 0
Au lieu de rsoudre cette quation avec la formule bien connue, utilisons la fonction
MATLAB roots. Nous supposons que le dtective ait compt 2.5 secondes, en prenant la
vitesse du son 20C et la pression atmosphrique (c=343m/s).

Dfinissez les variables t, g (=9.81m/s2) et c.


Dfinissez le vecteur reprsentant le polynme rsoudre.
Rsolvez-le avec roots.

Exercice 6 : un rseau CC (courant continu)


La figure ci-dessus prsente un circuit ferm CC. Il ya trois sources de courant qui gnrent
des tensions U1, U2, U3, ainsi que quatre rsistances, R1 R4. En ajoutant les tensions, dans
le sens des aiguilles d'une montre, pour la boucle totale, nous obtenons :

-U1 + I R1 + U2 + I R2 + I R3 - U3+ I R4 = 0

ou

U1 - U2 + U3 = I R1 + I R2 + I R3 + I R4

En gnralisant des boucles fermes et indpendantes, on obtient : U = I .R


i i

Cette quation reprsente la seconde loi de Kirchhoff qui tablit que, dans un circuit ferm, la
somme des hausses de tensions instantanes est gale la somme des chutes de tensions
instantanes, si les sommes sont effectues dans le mme sens pour toutes les tensions.

Les lois de Kirchhoff fournissent les quations ncessaires pour l'analyse des rseaux
lectriques. Considrons le rseau reprsent la figure ci-dessous. En prenant un sens
arbitraire pour les courants, reprsent par les flches, et en appliquant la seconde loi de
Kirchhoff la boucle ferme abef, on obtient l'quation : 4 i1 + 10 i3 = 12.
Pour la boucle ferme circuit ferm acdf, la mme loi donne : 4 i1 8 i2 = 12 6.
Finalement, en appliquant la premire loi de Kirchhoff (cf. exercice 6 du TP1) au noeud b,
nous obtenons : i1 + i2 = i3.

Les 3 quations prcdentes forment un systme dquations. Donnez la forme


matricielle de ce systme.
Rsolvez le systme laide de MATLAB.

A la place de la boucle ferme acdf, on peut utiliser la boucle ferme cbed et crire la seconde
quation sous la forme suivante : 8 i2 + 10 i3 = 6

Rcrivez le nouvel systme dquation et rsolvez-le avec MATLAB.


Les rsultats sont-ils les mmes ?
Exercice 7 : oscillations libres avec deux degrs de libert

La figure ci-dessus reprsente un systme compos de deux masses et de deux ressorts. Le


premier ressort est suspendu un support fixe; x1 reprsente le dplacement de la masse ml,
x2 celui de la masse m2. On mesure leurs positions respectives au repos. Dans cette position,
les ressorts sont tirs par les poids des deux masses. Par consquent, nous n'aurons pas
tenir compte de leurs poids, ml g et m2 g, dans les quations dvelopper.
Deux forces agissent sur ml, l'une due au ressort du haut de constante de raideur k1 et l'autre
due au ressort du bas de constante de raideur k2. Un lger dcalage positif de x1, par rapport
la position d'quilibre, est l'origine d'une force dirige vers le haut, -k1x1 dans le ressort du
haut. La force exerce par le ressort du bas sur la masse ml est proportionne~le la variation
de x2 - x1 , la longueur de ce ressort. Ces considrations permettent d'crire l'quation
reprsente ct de la premire masse. De mme, on obtient l'quation qui jouxte la seconde
masse. Le systme est dcrit par deux variables x1 , x 2 ; c'est, par consquent un systme deux
degrs de libert.
Si nous nous basons sur l'exprience ou sur la thorie, nous supposons que les mouvements
des deux masses sont harmoniques de mme frquence :

x1 = A1 sin(t )
x2 = A2 sin(t )

Aprs substitution dans les quations de la figure, on obtient :


m1 A1 2 + (k1 + k 2 ) A1 k 2 A2 = 0
m2 A2 2 k 2 A1 + k 2 A2 = 0

En considrant les amplitudes A 1 et A2 inconnues, nous obtenons le systme matriciel :

(k1 + k 2 ) m1 2 k 2 A1
= 0
k2 k 2 + m2 2 A2

Le systme homogne possde une solution non triviale si et seulement si le dterminant du


systme est nul, soit :

k1 + k 2 k 2 2 k1 k 2
4 + + =0
m1 m2 m1 m2

Cette quation, appele quation caractristique du systme, fournit en gnral deux racines,
12 et 22. Les frquences propres du systme sont 1 et 2. Nous utilisons les racines
carres positives. Les racines carres ngatives des solutions reprsentent les mmes
frquences propres, mais nous pouvons les considrer comme lies des vecteurs qui tournent
dans le sens des aiguilles d'une montre.

A titre d'exemple, on considre les donnes suivantes : m1=0.5kg, k1=500N/m, m2=0.25kg,


k2=250N/m.

Introduisez ces valeurs sous MATLAB.


Calculez les coefficients de lquation caractristique.
Quelles sont les solutions de cette quation ?
Dduisez-en les frquences angulaires propres (en rad/s).
Puis en Hz (f=/2).

Exercice 8 : Loi des boucles

La loi des boucles permet d'analyser les rseaux, on l'appelle aussi loi des mailles. Nous
reprenons le rseau prsent la figure ci-dessus. Nous distinguons trois boucles et nous les
tudions comme si elles taient indpendantes. Appelons J1, J2 et J3 les courants respectifs des
premire, deuxime et troisime boucles, comme reprsentes la figure. Nous supposons
qu'initialement tous les courants sont orients dans le sens des aiguilles d'une montre.
Pour la boucle 1, nous crivons la seconde loi de Kirchhoff (loi des tensions de Kirchhoff) :

R1 J1 + R4(J1 J2) = V1

Nous procdons de mme pour la boucle 2

R2 J2 + R5 (J2 - J3) + R4(J2 J1) = 0

et pour la boucle 3

-R5J2 + (R3+ R5)J3= - V3

A partir de ces quations, crivez le systme dquations o J1, J2 et J3 sont les


variables.
Donnez lexpression matricielle de ce systme.
En prenant R15= {4, 6, 8, 10, 10} Ohms, introduisez un vecteur R contenant ces
valeurs sous MATLAB.
Introduisez la matrice du systme (en vous servant des lments de R pour dfinir les
lments de la matrice.
En posant V1=12V et V3=6V, rsolvez le systme.

Exercice 9 : Montage de quatre rsistances en parallle

La figure ci-dessus prsente un montage de quatre rsistances pures en parallle dont les
valeurs augmentent gomtriquement avec la raison r. Soit Ro, la premire rsistance, et R la
rsistance quivalente requise :

Reprsentez le problme l'aide d'une quation de r.


Rsolvez l'quation pour Ro/R = 0.8 et montrez que, dans ce cas, le problme n'a pas
de solution.
Montrez que le problme propos a seulement une solution simple si R/Ro = 1.0.
Dterminez r pour Ro/R = 2. Vrifiez votre solution.
Dterminez r pour Ro/R = 4. Vrifiez votre solution.
Dterminez r pour Ro/R = 8. Vrifiez votre solution.