Académique Documents
Professionnel Documents
Culture Documents
TP2 PDF
TP2 PDF
L2 S2
UE Calcul Scientifique ; initiation à MATLAB (LE205)
Thèmes abordés :
* Systèmes d’équations linéaires,
* Equations polynomiales.
Remarque IMPORTANTE : dans ce TP, lorsqu’un exemple ou un exercice est donné, vous
êtes invité fortement à le réaliser et à en noter le résultat.
1. Introduction
Dans ce TP, nous allons voir comment résoudre des équations linéaires du type suivant :
Lorsque les termes en b ne multiple aucune inconnue et dont au moins un est non nul, le
système est dit non homogène.
Sur le graphe, on voit bien qu’il y a une infinité de solution (appartenant à la droite).
• Systèmes à 2 inconnues et 2 équations
>> % 2x1 – x2 = 2
>> % 2x1 – x2 = 0
>> hold on % autoriser l’affichage de 2 courbes dans la même 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
>> % 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 s’intersectent un point unique : il s’agit de la solution. Quelle est-elle ? (regardez
sur le graphe).
• Systèmes à 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
Si m=n, A est une matrice carrée et si le déterminant 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 l’avons vu graphiquement, le système ⎨ 1 2 n’a pas de
⎩2x 1 − x 2 = 0
2 −1
solution ; en effet, =0.
2 −1
Les systèmes dont les membres de droites sont nuls sont dits homogènes : AX=0
Avec MATLAB, les équations linéaires peuvent se résoudre à l’aide de l’opérateur ‘\’, comme
suit :
>> A = [2 -1 ; 1 1] ;
>> B = [2 ; 5] ;
>> X = A\B
Une manière de savoir si un système possède réellement au moins une solution, il faut
vérifier le théorème de Kronecker-Capelli : « un système possède une solution si et seulement
si sa matrice de coefficients appelée A et sa matrice augmentée sont de même rang. »
>> A = [2 -1 ; 1 1] ;
>> B = [2 ; 5] ;
>> rank(A), rank([ A B ])
• Exemple d’un système avec plusieurs solutions :
Vous pouvez vérifier que le vecteur X est une solution particulière du système d’équation.
On peut aisément constater que cela n’est pas une solution du système :
>> A*X
On dit qu’un système est surdéterminé quand le nombre d’équations, m, est supérieur
au nombre d’inconnues, n. Les m équations sont indépendantes, c'est-à-dire qu’aucune d’entre
elles ne peut être dérivée d’une autre.
Par exemple, supposons que nous étudions un phénomène pour lequel deux variables x
et y sont reliés par la relation :
y = a + bx
Et qu’une série de m expériences (ou mesures) soient réalisées dans le but de
déterminer les deux coefficients, a et b. Pour chaque expérience i, on rajoute au système
d’équations, une équation dont les coefficients sont xi et yi, ei représentant l’erreur que l’on
fait à chaque expérience :
yi = a + bxi + ei , i = 1,2,..., m
Dans ce cas, une solution exacte n’existe pas. Cependant, on peut déterminer une
solution au sens des moindres carrés. Il s’agit de chercher la solution qui minimise la somme
des erreurs au carré définie comme suit :
m m
ε = ∑ e = ∑ ( yi − a − bxi ) 2
2
i
i =1 i =1
⎡ y1 ⎤ ⎡1 x1 ⎤
⎢y ⎥ ⎢1 x ⎥
⎡a ⎤
avec Y = ⎢ 2 ⎥ , A = ⎢ 2⎥
et X = ⎢ ⎥ .
⎢ M ⎥ ⎢M M ⎥ ⎣b ⎦
⎢ ⎥ ⎢ ⎥
⎣ ym ⎦ ⎣1 xm ⎦
Les coefficients cherchés sont données par : X = (A’A)-1A’Y.
Il est démontré que cette solution minimise l’erreur ε au sens des moindres carrées. Dans la
suite de ce TP, on admettra cette démonstration, sans plus d’explication. Il existe beaucoup
d’ouvrages pour répondre aux questions des étudiants intéressés 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(‘Système surdimensionné, solution au sens des moindres carrés.’)
On dit qu’un système est mal conditionné si de faibles variations dans les données produisent
d’importantes variations des résultats.
⎡1 1 ⎤ ⎡1⎤ ⎡ 2 ⎤
Exemple : ⎢ ⎥⎢ ⎥ = ⎢ ⎥
⎣1 1.01⎦ ⎣1⎦ ⎣2.01⎦
>> cond(A)
si ce nombre est proche de 1, le système est bien conditionné. Sinon la matrice est sujette aux
erreurs d’arrondi.
1. Introduction
a n x n + a n −1 x n −1 + ... + a1 x + a0 = 0
Une solution, ou racine, de l’équation est un nombre xi, réel ou complexe. Une équation
polynomiale de degré n a exactement n racines (qui peuvent être complexes) :
an ( x − x1 )( x − x2 )...( x − xn−1 )( x − xn ) = 0
Exemple : x5-2x4+2x3+3x2+x+4=0
Remarque : la solution est un vecteur colonne alors que le tableau initial, c, est un vecteur
ligne.
Pour un tableau des racines polynomiales donné, poly détermine les coefficients polynomiaux
ordonnés selon les puissances décroissantes de l’inconnue. Dans notre exemple :
>> poly(solution)
DEUXIEME PARTIE : EXERCISES
⎧4 x − 4 x 2 = 3
Soit le système linéaire suivant : ⎨ 1
⎩3 x1 − 3 x 2 = 0
• Calculez le déterminant associé à ce système d’équations.
• Y a-t-il une solution à ce système ?
• Trouvez une représentation graphique qui illustre votre réponse.
⎡1 / 2 1 / 3 1 / 4⎤ ⎡ X (1) ⎤ ⎡0.95⎤
Soit le système 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 système.
• Remplacez B(3) par 0.53 et calculez la solution à nouveau. Déterminez l’influence de
la variation de B(3) sur les fluctuations de la solution.
• Calculez le nombre de conditionnement de A et tirez-en les conclusions appropriées.
Il a été démontré que la relation entre les échelles de Celsius et de Fahrenheit est linéaire. On
peut la représenter par une relation de la forme
C=aF+b
La droite décrite par l'équation précédente doit passer par le point de fusion de l'eau, de
coordonnées F = 32, C = 0 et le point d'ébullition de coordonnées F = 212, C = 100. Les
coefficients a et b doivent par conséquent satisfaire le système
32a + b = 0
212a+b = 100
Dans un roman noir autrefois populaire, un détective désirait déterminer 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 détective 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
détective. Si g est l'accélération de la pesanteur, d la profondeur du puits (approximativement
égale à la distance entre la main ou l'oreille du détective 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
d 2 − 2(tc + c 2 / g )d + c 2 t 2 = 0
Au lieu de résoudre cette équation avec la formule bien connue, utilisons la fonction
MATLAB roots. Nous supposons que le détective ait compté 2.5 secondes, en prenant la
vitesse du son à 20°C et à la pression atmosphérique (c=343m/s).
-U1 + I R1 + U2 + I R2 + I R3 - U3+ I R4 = 0
ou
U1 - U2 + U3 = I R1 + I R2 + I R3 + I R4
Cette équation représente la seconde loi de Kirchhoff qui établit que, dans un circuit fermé, la
somme des hausses de tensions instantanées est égale à la somme des chutes de tensions
instantanées, si les sommes sont effectuées dans le même sens pour toutes les tensions.
Les lois de Kirchhoff fournissent les équations nécessaires pour l'analyse des réseaux
électriques. Considérons le réseau représenté à la figure ci-dessous. En prenant un sens
arbitraire pour les courants, représenté par les flèches, et en appliquant la seconde loi de
Kirchhoff à la boucle fermée abef, on obtient l'équation : 4 i1 + 10 i3 = 12.
Pour la boucle fermée circuit fermé acdf, la même loi donne : 4 i1 – 8 i2 = 12 – 6.
Finalement, en appliquant la première loi de Kirchhoff (cf. exercice 6 du TP1) au noeud b,
nous obtenons : i1 + i2 = i3.
A la place de la boucle fermée acdf, on peut utiliser la boucle fermée cbed et écrire la seconde
équation sous la forme suivante : 8 i2 + 10 i3 = 6
x1 = A1 sin(ωt )
x2 = A2 sin(ωt )
⎡(k1 + k 2 ) − m1ω 2 − k 2 ⎤ ⎡ A1 ⎤
⎢ ⎥⎢ ⎥ = 0
⎣ − k2 k 2 + m2ω 2 ⎦ ⎣ A2 ⎦
⎡ k1 + k 2 k 2 ⎤ 2 k1 k 2
ω4 − ⎢ + ⎥ω + =0
⎣ m1 m2 ⎦ m1 m2
Cette équation, appelée équation caractéristique du système, fournit en général deux racines,
ω12 et ω22. Les fréquences propres du système sont ω1 et ω2. Nous utilisons les racines
carrées positives. Les racines carrées négatives des solutions représentent les mêmes
fréquences propres, mais nous pouvons les considérer comme liées à des vecteurs qui tournent
dans le sens des aiguilles d'une montre.
La loi des boucles permet d'analyser les réseaux, on l'appelle aussi loi des mailles. Nous
reprenons le réseau présenté à la figure ci-dessus. Nous distinguons trois boucles et nous les
étudions comme si elles étaient indépendantes. Appelons J1, J2 et J3 les courants respectifs des
première, deuxième et troisième boucles, comme représentées à la figure. Nous supposons
qu'initialement tous les courants sont orientés 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
et pour la boucle 3
La figure ci-dessus présente un montage de quatre résistances pures en parallèle dont les
valeurs augmentent géométriquement avec la raison r. Soit Ro, la première résistance, et R la
résistance équivalente requise :