Sunteți pe pagina 1din 14

UNIVERSITATEA POLITEHNICA BUCURESTI

FACULTATEA DE INGINERIE ELECTRICĂ

Rezolvarea sistemelor de ecuatii liniare prin


metoda Gauss.
Metode iterative de rezolvare a sistemelor
algebrice liniare
Referat pentru disciplina Metode numerice in inginerie electrica
Grupa: 123B

Responsabil referat SERBAN Constantin-Alexandru

DALIU Catalin Ion

ARDELEANU Silviu Ioan

LAZAR Alexandru

BADEA Madalin Marian

DEREBEI Andrei

23.10.2013
Data efectuării lucrării:
30.10.2013
Data predării referatului: 06.11.2013
SERBAN Constantin-Alexandru Responsabil referat.

Asamblarea contributiilor primite de la colegi.

Redactarea 1.1, 1.2, 1.3, 2.1, 2.2, 3(3)

DALIU Catalin Ion Redactarea 1.5

ARDELEANU Silviu Ioan Redactarea 2.3

LAZAR Alexandru Redactarea 1.4, 3(1,2)

BADEA Madalin Marian Redactarea 2.4

DEREBEI Andrei
Cuprins
1 Rezolvarea sistemelor de ecuatii liniare prin metoda Gauss ................................................... 4
1.1 Scopul lucrarii .................................................................................................................. 4
1.2 Chestiuni studiate ............................................................................................................. 4
1.3 Rezolvarea unor sisteme algebrice liniare ........................................................................ 4
1.4 Analiza experimentala a algoritmilor ............................................................................... 5
1.5 Implementarea algoritmilor intr-un limbaj de programare .............................................. 7
2 Metode iterative de rezolvare a sistemelor algebrice liniare ................................................... 8
2.1 Scopul lucrarii .................................................................................................................. 8
2.2 Chestiuni studiate ............................................................................................................. 8
2.3 Rezolvarea unor sisteme de ecuatii liniare prin Jacobi si Gauss-Seidel .......................... 9
2.4 Analiza experimentala a erorilor si a efortului de calcul, la metodele Jacobi si Gauss
Seidel ………………………………………………………………………………………….10
3 Studiu individual.................................................................................................................... 11
4 Observatii si concluzii ........................................................................................................... 13
Bibliografie ................................................................................................................................... 14
1 Rezolvarea sistemelor de ecuatii liniare prin metoda Gauss

1.1 Scopul lucrarii


In lucrarea studiata “Rezolvarea sistemelor de ecuatii liniare prin metoda Gauss” aflam ca
metodele de rezolvare a sistemelor algebrice se impart in doua categorii: metode directe si
metode indirecte.
Metoda Gauss face parte din metodele directe de rezolvare a sistemelor de ecuatii ce au
matricea sistemului simetrica si pozitiv definita (det. A≠0). Solutia sistemului prin metoda Gauss
se obtine dupa un numar finit de pasi.
In metoda Gauss exista doua etape principale:
 Etapa de eliminare (Eliminarea Gaussiana);
 Etapa de retrosubstitutie.

1.2 Chestiuni studiate


1. Rezolvarea unor sisteme algebrice liniare;
2. Analiza experimentala a algoritmilor;
3. Implementarea algoritmilor intr-un limbaj de programare.

1.3 Rezolvarea unor sisteme algebrice liniare


Pentru rezolvarea unor sisteme algebrice liniare prin metoda Gauss, in primul rand se
stabileste numarul “n” al ecuatiilor. O data stabilit acest numar “n”, se realizeaza o serie de pasi,
ce presupun ca toti coeficientii de sub a11 sa fie 0. Ca sa obtinem aceast rezultat ecuatia 1 se va
a 21
inmulti cu  si se va aduna la ecuatia 2. Dupa efectuarea acestor operatii se trece la
a11
 , acestia trebuie sa devina nuli ca si in cazul
coeficientii de sub coeficientul diagonal a 22
coeficientilor de sub a11 . La finalul pasilor matricea rezultanta trebuie sa fie triunghiulara (1), de
tipul celei din exemplul urmator:
n=3;

 a11 a12 a13 


 

A =  0 a 22  
a 23 (1)
 0  
 0 a33
1.4 Analiza experimentala a algoritmilor
Se deschide programul Scilab se executa fisierul „demo1_rezolvare_Gauss.sci” [2] si se
alege optiunea Analiza algoritmilor.
Programul apelat este utilizat pentru a rezolva sisteme de ecuatii liniare de diferite marimi
prin metoda Gauss fara pivotare, Gauss cu pivotare partiala si Gauss cu pivotare totala.
Parametrul de intrare al programului este dimensiunea sistemului, n. Dupa primirea
acestui paramentru, programul genereaza aleatoriu un sistem de n ecuatii si n necunoscute dupa
care il rezolva si expune eroarea absoluta, relativa, reziduul rezultatului si timpul de calcul.
Acestea sunt calculate fiecare cu ajutorul formulei normei Euclidiene, sau a normei Cebîşev.
Pentru a face mai usoara culegerea datelor numerice, programul solicita valoarea initiala,
valoarea finala si pasul. Pentru rezultatele din Tabelul 1 s-au ales urmatoarele valori: valoare
initiala 10, valoare finala 50 si pasul 10. Rezultatele au fost afisate in consola Scilab si
reprezentate grafic (fig.1).

N 10 20 30 40 50

Timp G.f.p 1.56*10-2 1.56*10-2 7.81*10-2 1.4*10-1 2.81*10-1


[s] G.p.p 0 3.12*10-2 1.25*10-1 1.56*10-1 3.43*10-1
G.p.t 7.81*10-2 2.5*10-1 8.59*10-1 1.9 3.62

er. relativ G.f.p 7.24*10-15 2.74*10-14 9.47*10-14 1.22*10-13 1.25*10-13


(Euclid)
G.p.p 2.27*10-15 4.08*10-15 6.2*10-15 1.56*10-14 5.27*10-15

er. relativ G.f.p 1.02*10-14 3.52*10-14 1.25*10-13 2.62*10-13 2.31*10-13


(Cebîşev)
G.p.p 2.92*10-15 4.99*10-15 8.67*10-15 2.52*10-14 9.21*10-15

Tabelul 1: Rezultatele sistemului


fig.1
In grafic putem observa ca o data cu cresterea dimensiunii sistemului creste si eroarea.
Rezolvarea sistemele cu metoda Gauss cu pivotare partiala, cu ajutorul formulei normei Cebîrşev
ne rezulta erori mai mici decat rezolvarea sistemele cu metoda Gauss fara pivotare, cu ajutorul
formulei normei Euclidiene.
Dupa cresterea aproximativ constanta a erorii, la dimensiunea 40 a sistemului eroarea
ajunge in pozitia de eroare maxima pe care o poate avea, dupa care toate scad constant.
1.5 Implementarea algoritmilor intr-un limbaj de programare
Am ales sa transpunem in limbajul de programare MATLAB algoritmul de rezolvare al
unui sistem de ecuatii liniar, prin Metoda Gauss:

function x = Gauss(a,b)
% a este matricea coeficientilor
% b este vectorul termenilor liberi,de tip coloana
% x este vectorul solutiilor,de tip coloana
% ab este matricea obtinuta prin concatenarea matricelor a si b
% L reprezinta numarul de linii
% C reprezinta numarul de coloane
ab=[a,b];
[L,C]=size(ab);
for j=1:L-1
for i=j+1:L
ab(i,j:C)=ab(i,j:C)-ab(i,j)/ab(j,j)*ab(j,j:C);
end
end
x=zeros(L,1);
x(L)=ab(L,C)/ab(L,L);
for i=L-1:-1:1
x(i)=(ab(i,C)-ab(i,i+1:L)*x(i+1:L))/ab(i,i);
end

Acest program permite introducerea de la tastatura a datelor si afisarea solutiei pe ecran.

>> a=[2 1 1 ; 1 1 1 ; 2 1 3]:

>> b=[7 ; 6 ; 13];

>> x = Gauss(a,b)

ab =

2.0000 1.0000 1.0000 7.0000

0 0.5000 0.5000 2.5000

2.0000 1.0000 3.0000 13.0000

ab =

2.0000 1.0000 1.0000 7.0000

0 0.5000 0.5000 2.5000

0 0 2.0000 6.0000
ab =

2.0000 1.0000 1.0000 7.0000

0 0.5000 0.5000 2.5000

0 0 2.0000 6.0000

x=

Aceasta metoda de rezolvare este recomadata in rezolvarea sistemelor de ecuatii liniare,


datorita faptului ca ea nu prezinta eroare de metoda (erorile nu se propaga in timpul rezolvarii
sistemului de ecuatii).

2 Metode iterative de rezolvare a sistemelor algebrice liniare


2.1 Scopul lucrarii
In lucrarea studiata “Metode iterative de rezolvare a sistemelor algebrice liniare” putem
vedea ca aceste metode permit obtinerea unor solutii numerice prin generarea unor siruri care
tind catre solutia exacta. Teoretic, solutia se va obtine dupa un numar finit de pasi, insa in
practica sirul se va trunchia.
Solutiile gasite prin metodele iterative vor fi afectate de erorile de trunchiere, ceea ce nu se
intampla la folosirea unor metode directe.
In cazul metodelor iterative se incepe de la o initializare a vectorului solutie de la x 0 .
Pe baza unei formule de recurenta (2.1) se va genera sirul de recurenta:

x k  F ( x k 1 ) (2.1)

2.2 Chestiuni studiate


1. Rezolvarea unor sisteme de ecuatii liniare prin metodele Jacobi si Gauss-Seidel;
2. Analiza experimentala a erorilor si a efortului de calcul, la metodele Jacobi si Gauss-
Seidel;
2.3 Rezolvarea unor sisteme de ecuatii liniare prin Jacobi si Gauss-Seidel
Folosirea programului din Laboratorul 4 [3] „Metode iterative de rezolvare a sistemelor
algebrice liniare” ne ofera posibilitatea de a rezolva unele sisteme liniare prin metode iterative. O
data cu lansarea acestuia este necesara introducerea urmatoarelor lucruri:
 numarul de ecuatii;
 elementele a(i, j) ale matricei sistemului;
 termenii liberi b(i);
 eroarea admisa;
 numarul maxim de iteratii admis.
In urma folosirii programului, in consola Scilab, se vor afisa informatii despre procesul
iterativ folosit si anume: daca a fost sau nu convergent, norma matricei de iteratie, in cazul in
care procesul a fost convergent, cate iteratii au fost necesare si care este solutia.
Pentru a intelege mai bine explicatiile scrise mai sus am rezolvat urmatorul sistem:

Exercitiul 1:

Metoda Converg err Nmax rho (M) ||M|| Eroare Eroare iteratii X1 X2
enta impusa atinsa
Jacobi da 0.001 100 0.81 1 0.001 0.0008 44 2 3

Gauss-Seidel da 0.001 100 0.66 1.20 0.001 0.0008 38 2 3

Tabelul 1: Rezultatele sistemului in urma rularii programului in Scilab.

err = eroare admisa;


Nmax = numarul maxim de iteratii admis;
rho (M) = raza de convergenta a matricei de iteratie;
||M|| = norma matricei de iteratie.
Exercitiul 1 inversat:

Metoda Convergenta err Nmax rho (M) ||M||


Jacobi nu 0.001 100 1.22 1.5
Gauss-Seidel nu 0.001 100 1.5 2.1
Tabelul 2: Rezultatele sistemului inversat in urma rularii programului in Scilab.

Observam ca dupa ce inversam sistemul, metodele Jacobi si Gauss-Seidel nu mai sunt


convergente pentru sistemul dat.

2.4 Analiza experimentala a erorilor si a efortului de calcul, la metodele


Jacobi si Gauss Seidel
Numarul de iteratii in functie de norma matricei de iteratie: utilizatorul alege
dimensiunea “n” a sistemului si eroarea de oprire. [3]
Programul afiseaza numarul de iteratii necesar celor doua metode pentru sisteme
generate aleator, de dimensiune “n”, avand norma matricei de iteratie 0.1-0.9.
Datele se pot nota intr-un tabel de tipul:

Numarul de iteratii ın functie de norma matricei de iteratie

Norma mat. Jacobi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Nr. iteratii j 4 6 7 9 11 15 20 32 67
Nr. iteratii g-s 6 7 7 8 9 10 10 11 12
Dimensiunea sistemului este 20

Norma mat.Jacobi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Nr. iteratii j 4 6 7 9 11 15 21 32 67
Nr. iteratii g-s 6 7 8 9 9 10 11 11 12
Dimensiunea sistemului este 40
Eroarea in functie de numarul de iteratii, utilizatorul introduce: norma matricei de
iteratie Jacobi si numarul de ecuatii.
Programul afiseaza rezultatele numerice in consola Scilab. Valorile recomandate sunt:

 norma matricei de iteratie Jacobi 0.5.


 dimensiunile sistemelor 20, 40,60.

Datele se pot nota intr-un tabel de tipul:

Iteratii 1 5 9 13 17
n=20 1.28E+00 6.15E-02 3.85E-03 2.40E-04 1.50E-05
n=40 1.23E+00 4.41E-02 2.76E-03 1.72E-04 1.08E-05
n=60 1.25E+00 4.83E-02 3.02E-03 1.89E-04 1.18E-05
Metoda Jacobi

Iteratii 1 5 9 13 17
N=20 3.30E+00 4.83E-02 4.95E-04 5.75E+00 7.41E-08
N=40 4.96E+00 7.34E-02 7.34E-04 9.90E-06 1.01E-07
N=60 5.37E+00 7.75E-02 7.08E-04 9.20E-06 8.74E-08
Metoda Gauss-Seidel

3 Studiu individual
1. Fie sistemul de ecuatii:

Sa se rezolve sistemul prin metoda directa Gauss.


Rezolvarea sistemului incepe de la ultima ecuatia deoarece avem o singura necunoscuta
z:

Inlocuim z in cea de-a doua ecuatie:

Inlocuim z si y in prima ecuatie pentru a gasi toate solutiile sistemului.

Solutii sistemului sunt:

Oservatie! Ecuatia se poate rezolva cu metoda Gauss fara pivotare si cu metoda Gauss cu
pivotare.

2. Se da sistemul de ecuatii:

Sa se rezolve sistemul prin metoda directa Gauss.

Rezolvarea sistemului incepe de la ultima ecuatie unde avem doar o singura necunoscuta z:
Inlocuim z in cea de-a doua ecuatie:

Inlocuim z si y in prima ecuatie:

Solutiile sistemului sunt:

Observatie! Sistemul se poate rezolva doar cu metoda Gauss cu pivot deoarece coeficientul
diagonal este nul.

3. Documentati-va in literatura de specialitate si pe internet ce inseamna preconditionarea.


Cum influenteaza aceasta operatie numarul de conditionare si viteza de convergenta a
rezolvarii sistemelor liniare prin metode iterative?
[4] Preconditionarea transoforma un sistem liniar initial intr-un alt sistem cu aceeasi
solutie dar pentru care convergenta metodelor interative este semnificant mai rapida. Se
construieste o matrice de transformare a carei denumire este “matrice de preconditionare”, iar
sistemul obtinut dupa efectuarea preconditionarii este (3.1):
M 1 Ax  M 1b (3.1)

4 Observatii si concluzii
In urma cercetarii si calculelor efectuate in timpul laboratoarelor si aplicatiilor putem vedea
ca metoda Jacobi este o metoda de rezolvare a sistemelor de ecuatii liniare mult mai rapida decat
metoda Gauss-Seidel, prima fiind de ordinul 2, respectiv metoda Gauss-Seidel fiind de ordinul 3.
In functie de numarul de conditionare al matricei n A , putem preciza conditionarea matricei
in urmatorul mod:

nA  1 - matrice perfect conditionata (matrice ortogonala)


n A  (1,100) - matrice bine conditionata
n A  1000 - matrice prost conditionata

Daca problemele sunt bine formulate matematic si numeric, atunci nu vor exista dificultati
in rezolvarea acestora.
Bibliografie
[1] Gabriela Ciuprina, Mihai Rebican, Daniel Ioan: Metode Numerice în Ingineria Electrică.
Îndrumar de laborator, Editua Printech, 2013, disponibil la
http://mn.lmn.pub.ro/indrumar/indrumarLMN2013_20sept2013.pdf.
[2] Gabriela Ciuprina, Mihai Rebican, Daniel Ioan: Program demo pentru Laboratorul de Metode
Numerice, Lucrarea 3, 2013, disponibil la
http://mn.lmn.pub.ro/surse_scilab_2013/L03.tar
[3] Gabriela Ciuprina, Mihai Rebican, Daniel Ioan: Program demo pentru Laboratorul de Metode
Numerice, Lucrarea 4, 2013, disponibil la
http://mn.lmn.pub.ro/surse_scilab_2013/L04.tar
[4] Revista Informatica Economică nr. 1 (37)/2006.
revistaie.ase.ro/content/37/bogdanoancea.pdf

S-ar putea să vă placă și