Vous êtes sur la page 1sur 13

UPMC - Licence Elec.

L2 S2 UE Calcul Scientifique ; initiation MATLAB (LE205)

TP2 : 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 M a m1 x1 + a m 2 x2 + ... + a mn xn

= b1 = M = 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 M

Le systme dquations :

a m1 x1 + a m 2 x2 + ... + a mn xn

= bm

peut sexprimer sous forme matricielle : AX = B


a11 a avec : A = 21 M a m1 a12 a 22 M am 2 L a1n x1 b1 b x L a2n , X = 2 et B = 2 . M M O M 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 =0. solution ; en effet, 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 cidessous). 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 :

= e = ( yi a bxi ) 2
i =1 2 i i =1

Le systme dquations pourra scrire : Y=AX


y1 1 x1 y 1 x a 2 avec Y = 2 , A = 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,

d=

g 2 .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

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 k2

k 2 A1 = 0 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 =0 + + m2 m1 m2 m1

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.

Vous aimerez peut-être aussi