0% ont trouvé ce document utile (0 vote)
54 vues8 pages

TP4 Résolution Des Systèmes Linéaires Et Non-Linéaires

Transféré par

Youssef Riahi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
54 vues8 pages

TP4 Résolution Des Systèmes Linéaires Et Non-Linéaires

Transféré par

Youssef Riahi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

TP 4

Résolution des Systèmes Linéaires et Non-Linéaires

1. Résolutions des Systèmes Linéaires

∙ Un système linéaire est un ensemble de n équations à p variables de la forme :

Les ai,j
sont appelés les coefficients du système ; les bk sont le second membre du système (ou la partie
gauche).

Exemple :

• En calcul matriciel, un système linéaire s’écrit comme en deux formes :

▪ AX = B
Où :
- A matrice des coefficients.
- X vecteur colonne des inconnues.
- B vecteur colonne comme second membre.

Exemple :

▪ XA = B


- A matrice des coefficients.
- X vecteur ligne des inconnues.
- B vecteur ligne comme second membre.
Exemple :

• On
appelle opérations élémentaires sur les lignes L1, …, Ln du système (S) l’un des trois opérations
suivantes :
1. Multiplier la ligne Li par un scalaire α non nul, et on note : Li α Li 2. Ajouter
à la ligne Li k fois une autre ligne Lj et on note : Li Li + k Lj 3. Echanger les
lignes Li et Lj, et on note : Li Lj.

• Exemple :

2. Résolution d’un système linéaire


• Matlab fournie plusieurs techniques afin de résoudre un système linéaire. Néanmoins, il reste à
l’utilisateur de vérifier la compatibilité du système linéaire (s’il existe une solution). • Par
exemple, si le déterminant de A est non-nul alors le système accepte une solution. • La
commande X = A\B fait résoudre le système linéaire AX = B (noter l’antislash). • La commande
X = B/A fait résoudre le système linéaire XA = B (noter le slash).

>> A = [1 2; 3 4], B = [14 32]'


A=
12
34
B=
14
32
>> X = A\B
X=
4
5
>> A = [1 2; 3 4]', B = [14 32]
A=
13
24
B=
14 32
>> X = B/A
X=
45

• On peut calculer directement l’inverse de A en le multipliant par B. Il faut noter que la


multiplication matricielle n’est pas commutative !
• La commande X = inv(A)*B fait résoudre le système linéaire AX = B.
• La commande X = B*inv(A) fait résoudre le système linéaire XA = B.
>> A = [1 2; 3 4], B = [14 32]'
A=
12
34
B=
14
32
>> X = inv(A)*B
X=
4
5
>> A = [1 2; 3 4]', B = [14 32]
A=
13
24
B=
14 32
>> X = B*inv(A)
X=
45

• Pour les commande A\B et B/A, si la matrice A est singulière, le résultat est (inf) pour un
nombre infini de solutions, et (NaN) pour l’ensemble vide (). Pour les commande inv(A)*B et
B*inv(A), si la matrice A est singulière, le résultat est toujours (inf).
>> A = [1 1; 2 2], B = [2 4]'
A=
11
22
B=
2
4
>> A\B
Warning: Matrix is singular to working precision.
ans =
0/0
0/0
>> A = [1 1; 2 2], B = [2 5]'
A=
11
22
B=
2
5
>> A\B
Warning: Matrix is singular to working precision.
ans =
1/0
-1/0
>> inv(A)*B
Warning: Matrix is singular to working precision.
ans =
1/0
1/0

• Une deuxième méthode pour résoudre un système linéaire (AX = B) est de faire décomposer la
matrice A à la multiplication de 2 matrices triangulaires L et U (inferieure et supérieure), ensuite
résoudre deux systèmes linéaires comme suit :

▪ Résoudre premièrement LY = B.

▪ Ensuite, résoudre UX = Y.
>> A = [1 2; 3 4], B = [14 32]'
A=
12
34
B=
14
32
>> [L U] = lu(A)
L=
1/3 1
10
U=
34
0 2/3
>> Y = L\B
Y=
32
10/3
>> X = U\Y
X=
4
5

• Une troisième méthode pour résoudre un système linéaire (AX = B) est de faire concaténer les
deux matrice A et B dans une nouvelle matrice C, ensuite extraire la forme échelonnée réduite de
C. La solution est stockée dans la dernière colonne de C.
Matrice échelonnée:
Une matrice A ∈ Mm,n sera dite sous forme échelon (ou bien sous forme échelonnée) si:
(1) les lignes ne contenant que des zéros sont sous les autres lignes
(2) chaque élément directeur d’une ligne est à la droite de l’élément directeur de la ligne qui la
précède.
(3) Tous les éléments de la colonne sous un élément directeur sont nuls.
Exemple:

Matrice échelonnée réduite:


Une matrice est dite sous forme échelon réduite (ou bien sous forme échelonnée réduite) si,
(a) elle est sous forme échelon;
(b) tous ses éléments directeurs sont égaux à 1;
(c) dans une colonne qui contient un 1 directeur, il n’y a pas d’autre élément non nul.
Exemple:

A est une matrice sous forme échelon réduite


B n’est pas une matrice sous forme échelon réduite
>> A = [1 2; 3 4], B = [14 32]'
A=
12
34
B=
14
32
>> C = [A B]
C=
1 2 14
3 4 32
>> rref(C)
ans =
104
015

• Une quatrième méthode pour résoudre un système linéaire (AX = B) est de faire appeler la
commande linsolve(A, B).

>> A = [1 2; 3 4], B = [14 32]'


A=
12
34
B=
14
32
>> X = linsolve(A, B)
X=
4
5

3. Résolutions des équations et des inéquations, linéaires et non-linéaires • Matlab utilise la


commande solve afin de résoudre les équations et les inéquations, les systèmes linéaires et non
linéaires.
• Tout d’abord, il est nécessaire de déclarer des variables symboliques
des équations (ou inéquations, …) en utilisant la commande syms. • Il faut
noter que solve retourne des solutions sous forme symbolique ou formelle au lieu de
numérique (racine de 2 a la forme numérique de 1.4142 et la forme formelle 2^ (1/2)).
>> solve(x^2-1) % résoudre x2 – 1 = 0
Undefined function or variable 'x'.
>> syms x % definer la variable symbolique x
>> solve(x^2-1) % résoudre x2 – 1 = 0
ans =
1
-1
>> solve(x^2-1 == 1) % résoudre x2 – 1 = 1
ans =
2^(1/2)
-2^(1/2)

• Matlab peut aussi résoudre des équations de forme générale ou paramétrique


>> syms x a b c
>> solve(a*x+b == 0)
ans =
-b/a
>> solve(a*x^2 + b*x + c == 0)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

• Pour les équations à plusieurs variables, Matlab permet de choisir la variable pour laquelle on
veut résoudre.

>> solve(a*x + b, x) % résoudre pour x


ans =
-b/a
>> solve(a*x + b, a) % résoudre pour a
ans =
-b/x
>> solve(a*x + b, b) % résoudre pour b
ans =
-a*x

• La commande solve nous aide aussi à résoudre un système linéaire ou non-linéaire en


présentant ses lignes d’équations.
>> syms x y
>> S = solve(x+y == 5, x-y == 1) % système linéaire
S=
x: [1x1 sym]
y: [1x1 sym]
>> [S.x S.y]
ans =
[ 3, 2]
>> solve(x^2 + 1) % équation non-linéaire
ans =
i
-i
>> S = solve(x^2 + y == 0, x + y^2 == 0)
% système non-linéaire
S=
x: [4x1 sym]
y: [4x1 sym]
>> [S.x S.y]
ans =
[ 0, 0] % sol. 1
[ -1, -1] % sol. 2
[ (3^(1/2)*i)/2 + 1/2, 1/2 - (3^(1/2)*i)/2] % sol. 3
[ 1/2 - (3^(1/2)*i)/2, (3^(1/2)*i)/2 + 1/2] % sol. 4

Vous aimerez peut-être aussi