Calculul unui determinant prin metoda lui Gauss cu pivotare totala

March 31, 2017 | Author: Vlad Jerca | Category: N/A
Share Embed Donate


Short Description

Download Calculul unui determinant prin metoda lui Gauss cu pivotare totala...

Description

Universitatea Bucuresti Facultatea De Matematica-Informatica Specializarea Tehnologia Informatiei

Calculul unui determinant prin metoda lui Gauss cu pivotare totala

Jerca Vlad anul I gr. 152

Cuprins 1. Descrierea Metodei.............................................................................................3 2. Exemple de aflare a determinantilor cu ajutorul pivotarii totale............................... 4 3. Cod in Limbajul C...............................................................................................5 4. Rularea programului............................................................................................ 8

1.Descrierea Metodei Pentru majoritatea metodelor de rezolvare a sistemelor de ecuatii liniare - fie ele directe sau iterative - se ajunge ca la un moment dat sa fie necesara impartirea la un element diagonal din matricea A, aii. Acest element poarta numele generic de pivot. Desigur, daca acest element este nul metoda respectiva esueaza, deoarece - din punct de vedere numeric - operatia de impartire la 0 este imposibila si, daca nu se iau masuri speciale, orice program de calcul se intrerupe din executie ca urmare a producerii unei erori de tipul “Run time error”, cu un mesaj de eroare de genul “Floating point overflow”. Situatia extrema in care intr-o matrice A poate sa apara un element diagonal nul este cea in care matricea respectiva este singulara (determinantul ei este nul). Pe de alta parte, pivotul se poate anula fara ca matricea A sa fie singulara. Mai mult decat atat, pivotul poate fi nenul, dar cu o valoare foarte mica, astfel incat impartirea la el sa conduca la producerea unor erori de rotunjire, care prin acumulare pot denatura rezultatul. Evitarea unor asemenea situatii se poate face prin adoptarea unei masuri care sa permita aducerea pe diagonala a unui element suficient de mare. O asemenea tehnica este aceea a pivotarii care consta in schimbarea intre ele a doua linii sau a doua coloane, astfel incat noul pivot sa aiba o valoare absoluta cat mai mare posibil. Cautarea noului pivot se face pe coloana curenta i*, pe liniile situate sub linia i*, inclusiv aceasta (pivotarea partiala) sau pe liniile si coloanele situate sub linia i* si la dreapta coloanei i*, inclusiv acestea (pivotarea completa). In cazul pivotarii partiale, la un pas i*, se spune ca se executa pivotarea partiala pe coloana i*. Prin aceasta tehnica se cauta pe coloana i* elementul subdiagonalRezolvarea maxim in valoaredeabsoluta si se schimba Curs 13 sistemelor ecuaţii liniare Curs 13 Rezolvarea sistemelor de ecuaţii liniare linia i* cu linia in care apare acel element. Deoarece schimbarea a doua linii in matricea A inseamna de fapt schimbarea ordinii a doua ecuatii din sistem, se impune ca - simultan - sa se realizeze si interschimbarea termenilor liberi corespunzatori din vectorul b si de asemenea, schimbarea semnului determinantului matricii. Determinantul matricii sistemului Determinantul matricii sistemului Metoda de eliminare Gauss permite şi calcularea determinantului matricii sistemului. Metoda de eliminare Gauss permite si calcularea determinantului matricii sistemului. Se observa ca, (3) Metoda de eliminare (3)Gauss permite şi calcularea determinantului matricii sistemului. matricea a sistemului fiind triunghiulara, are determinantul egal cuprodusul elementelor diagonale, (6) fiind triunghiulară, are determinantul egal cu adica: Se Aobservă că, matricea A a sistemului Se observă că, matricea A(3) a sistemului (6) fiind triunghiulară, are determinantul egal cu produsul elementelor diagonale, adică: produsul elementelor diagonale, adică: det A(3) =1 det A(3)=1 Având în vedere, însă, că prin împărţirea liniilor matricii sistemului la elementele pivot rezultă Avand o matrice Avândinînvedere, vedere,insa, însă,ca căprin prinimpartirea împărţirealiniilor liniilormatricii matriciisistemului sistemuluila laelementele elementelepivot pivotrezulta rezultă o matrice a cărui determinant este egal cu determinantul matricii iniţiale împărţit la produsul a caruiodeterminant estedeterminant egal cu determinantul matricii initiale impartit la produsul elementelor pivot, rezulta: matrice a cărui este egal cu determinantul matricii iniţiale împărţit la produsul elementelor pivot, rezultă: elementelor pivot, rezultă:

det A (1) ( 2) det A((33))  det A( 2)  1 adica : det A  a11a22 (1) a33 ( 2) ( 1 ) det A  a11a22  1 adica : det A  a a a 11 22 a33 (1) 33 ( 2) a11a22 a33

Metoda descrisă mai sus poate fi generalizată şi aplicată la rezolvarea unui sistem cu Metoda descrisă mai sus poate fi generalizată şi aplicată la rezolvarea unui sistem cu un număr oarecare de n ecuaţii liniare cu n necunoscute de forma (8): Metoda descrisa maide sus poate filiniare generalizata si aplicata de la rezolvarea un număr oarecare n ecuaţii cu n necunoscute forma (8):unui sistem cu

a11xcu x2  ...  a1n xde b1 un numar oarecare de n ecuatii liniare necunoscute forma 1  na12 n   ...  a1n xn  b1  aa11xx1  aa12xx2   21 1 22 2 ...  a2 n xn  b2  a21x1  a22 x2  ...  a2 n xn  b2 ......................................  ............................ a x.......... am 2 x2  ...  amn xn  bm am1 x1   m1 1  am 2 x2  ...  amn xn  bm sau sub formă matriceală: sau sub formă matriceală:

 a11  a11 21  a 21  a...  ... am1 am1

a12 a12 a22 a22 ... ... am2 am2

... ... ... ... ... ... ... ...

a1n   x1   b1  a1n   x1   b1  a2n   x2   b2  a2n . x2    b2  ... . ...    ...  ...   ...   ...  amn   xn  bm  amn   xn  bm 

(8) (8)

3

2. Exemple de aflare a determinantilor cu ajutorul pivotarii totale a. Pivot 0 500 0 1 0 det = 1 040

pas I

100 0 1 0 det = 5 040

L2 L3

100 0 4 0 det = -5 010

pas II

100 0 1 0 det = -20 000

det = 0 La primul pas pivotul a11 are valoarea maxima pe linie / coloana, deci nu are loc interschimbare si se trece direct la calcul. Dupa calcul verificam linia si coloana pentru pivotul a22 observam ca 4 este valoarea cea mai mare in modul si interschimbam linia a 2-a cu linia a 3-a, iar determinantul il inumultim cu -1 si trecem la pasul II. Observam ca la pasul III pivotul a33 are valoarea 0, determinantul ia valoarea 0 si procesul se incheie.

b. Pivot diferit de 0 121 3 1 3 det = 1 411 pas II

1 1/4 1/4 0 1 1/9 0 0 5/3

L1 L3

det = 9

pas III

411 3 1 3 det = -1 121 1 1/4 1/4 0 1 1/9 00 1

pas I

1 1/4 1/4 0 1/4 9/4 0 7/4 3/4

det = -4

C2 C3

1 1/4 1/4 0 9/4 1/4 0 3/4 7/4

det = 4

det = 15

4

3. Cod in Limbajul C #include #include //citeste matricea void citireMat(float a[20][20], int n) { int i, j; for(i=1;i
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF