Sunteți pe pagina 1din 6

Tema nr.

2 Date n dimensiunea sistemului, - precizia calculelor, matricea p atratic a nn n cu elemente reale A R , vectorul termenilor liberi b R , folosind algoritmul de eliminare Gauss cu pivotare part ial a, s a se decid a dac a matricea A este singular a sau nu si n caz c a matricea A este nesingular a s a se aproximeze solut ia sistemului: Ax = b. (1) Fie xGauss solut ia aproximativ a calculat a. S a se verice solut ia a sa nd norma Euclidian a a vectorului eroare : |Ainit xGauss binit | Ainit si binit sunt datele init iale nu cele modicate pe parcursul algoritmului. Bonus: S a se rezolve 3 sisteme liniare cu aceea si matrice A a sistemului si 3 vectori liberi diferit i, b1 , b2 , b3 , f ac and separat si o singur a dat a transform arile asupra matricii A. Dup a ce s-a adus matricea A la forma superior triunghiular a s a se fac a modic arile asupra vectorilor b si s a se rezolve sistemele triunghiulare corespunz atoare. Observat ie Precizia calculelor , este un num ar pozitiv de forma: = 10m (cu m = 5, 6, ..., 10, ... la alegere) valoare care este dat a de intrare n program (se cite ste de la tastatur a sau din sier) la fel ca si dimensiunea n a datelor. Acest num ar se folose ste atunci c and test am dac a o variabil a este 0 sau nu naintea unei operat ii de mp art ire.

1.0 unde v R nu vom Dac a vrem s a efectu am operat ia de mp art ire s = v scrie: if(v ! = 0) s = 1/v ; else MessageBox.Show( nu se poate face impartirea); ci vom scrie n program: if(M ath.Abs(v ) > eps) s = 1/v ; else MessageBox.Show( nu se poate face impartirea); Metodele substitut iei Fie sistemul liniar: Ax = b (2) unde matricea sistemului A este triunghiular a. Pentru a g asi solut ia unic aa sistemului (2), trebuie ca matricea s a e nesingular a. Determinantul matricilor triunghiulare este dat de formula: det A = a11 a22 ann Prin urmare pentru rezolvarea sistemului (2) vom presupunem c a: det A = 0 aii = 0 i = 1, 2, . . . , n Vom considera nt ai cazul c and matricea A este inferior triunghiular a. Sistemul (2) are forma: a11 x1 a21 x1 + a22 x2 . . . ai 1 x 1 . . . + ai 2 x 2 + + aii xi = b1 = b2 = bi

an1 x1 + an2 x2 + + ani xi + + ann xn = bn Necunoscutele x1 , x2 , ..., xn se deduc folosind ecuat iile sistemului de la prima c atre ultima. 2

Din prima ecuat ie se deduce x1 : x1 = b1 a11 (3)

Din a doua ecuat ie, folosind (3), obt inem x2 : x2 = b2 a21 x1 a22

Aplic and acest procedeu n continuare, din ecare ecuat ie a sistemului se calculeaz a o necunoscut a xi . Algoritmul de calcul al solut iei sistemelor (2) cu matrice inferior triunghiular a este urm atorul:
i 1

(bi xi =
j =1

aij xj ) aii , i = 1, 2, . . . , n 1, n (4)

Acest algoritm poart a numele de metoda substitut iei directe. Vom considera, n continuare sistemul (2) cu matrice superior triunghiular a: a11 x1 + + a1i xi + + a1n1 xn1 ... + a1n xn = b1

aii xi + + ain1 xn1 + ain xn = bi .. . an1n1 xn1 + an1n xn = bn1 ann xn = bn Necunoscutele x1 , x2 ,...,xn se deduc pe r and, folosind ecuat iile sistemului de la ultima c atre prima. Din ultima ecuat ie g asim xn : xn = bn ann (5)

Folosnd valoarea lui xn dedus a mai sus, din penultima ecuat ie obt inem: xn1 = bn1 an1n xn an1n1 3

Continu am s a calcul am valori xi din ecuat iile sistemului: xi = bi aii+1 xi+1 ain xn aii

Din prima ecuat ie g asim valoarea lui x1 : x1 = b1 a12 x2 a1n xn a11

Procedeul descris mai sus poart a numele de metoda substitut iei inverse pentru rezolvarea sistemelor liniare cu matrice superior triunghiular a: (bi xi =
n

aij xj )
j =i+1

aii

i = n, n 1, . . . , 2, 1

(6)

Algoritmul de eliminare Gauss Ideea de rezolvare este de a transforma succesiv sistemul (1) folosind operat ii elementare (ce nu modic a solut ia sistemului) si a aduce matricea A la o form a superior triunghiular a . Algoritmul se desf a soar a n (n 1) pa si. La un pas l oarecare se transform a coloana l a matricii A n form asuperior triunghiular a f ar a a modica forma triunghiular a a primelor (l 1) coloane. Pas l: Presupunem c a elementul de pe pozit ia (l, l) numit si element pivot este nenul, all = 0. Pentru i = l + 1, ..., n se nmult e ste linia l a matricii A cu (ail /all ) si se adun a la linia i. Schimbare se face si asupra componentei i a vectorului b. Matricea A si vectorul b se modic a astfel: aij = aij b i = bi ail alj all , , i = l + 1 , n , j = l + 1, n i = l + 1, n , (7) (8) (9)

ail bl all ,

ail = 0 , aij = aij

i = l + 1, n ,

bi = bi pentru restul indicilor i, j ail In formula (7) factorul f = se calculeaz a n afara buclei for pentru j . all 4

Alegerea pivotului all = 0 Pentru a aduce pe pozit ia (l, l) un element nenul avem trei posibilit a ti: 1. Varianta f ar a pivotare Se alege primul indice i0 {l, l + 1, , n} astfel ca ai0 l = 0. Se interschimb a liniile i0 si l ale matricii A si componentele i0 si l ale vectorului b. 2. Varianta cu pivotare part ial a Se alege indicele i0 {l, l + 1, , n} astfel ca: |ai0 l | = max{|ail |, i = l, n}. Se interschimb a liniile i0 si l ale matricii A si componentele i0 si l ale vectorului b. 3. Varianta cu pivotare total a Se aleg indicii i0 , j0 {l, l + 1, , n} astfel ca: |ai0 j0 | = max{|aij |, i = l, n, j = l, n}. Se interschimb a liniile i0 si l , coloanele j0 si l ale matricii A si componentele i0 si l ale vectorului b. Dac a dup a efectuarea pivot arii (indiferent de varianta de pivotare aleas a) elementul pivot este nul all = 0 Math.Abs(a[l, l]) <

atunci matricea A este singular a. Obesrvat ii: 1)In pasul Gauss l (7)+(8)+(9) calculele se pot efectua in matricea a init ial a (a = a). 2) Dac a pentru memorarea matricii A si a vectorului b se folose ste o matrice cu n linii si (n + 1) coloane - vectorul b ind memorat n coloana (n + 1) a matricii a calculele (8) sunt incluse in (7) pentru j = n + 1; n acest fel se simplic a si interschimbarea ecuat iilor i0 si l ale sistemului liniar Ax = b. 3) Dac a pivotul se alege folosind varianta 3., n nal trebuie s a avem grij a s a restabilim ordinea init ial a a componentelor vectorului solut ie (t in and cont de coloana j0 a pivotului de la ecare pas).

Algoritmul : l = 1; cauta pivot; interschimba linii; (daca e cazul) while (l n 1) and (all ) = 0) do begin (7)+(8)+(9); l = l + 1; cauta pivot; interschimba linii; (daca e cazul) end if all = 0 then matrice singulara else begin rezolva sistem superior triunghiular; (se folose ste metoda substitit iei inverse) verica solutie; end (a se vedea si descrierea algoritmului din curs) Vericarea solut iei Folosind datele init iale (nu cele modicate pe parcursul algoritmului) se calculeaz a si se a seaz a norma Euclidian a a vectorului eroare |e| , e = Ainit xGauss binit unde Ainit si binit sunt matricea si vectorul introduse init ial iar xGauss este solut ia calculat a folosind algoritmul de mai sus. In general |Ainit xGauss binit | trebuie s a e de ordinul 10p cu p > 6 dac a s-a lucrat corect (p depinde de n dimensiunea sistemului). Vectorul y = Ax se calculeaz a folosind formula:
n

x R ,A R

nn

, y := Ax R , y =

(yi )n i=1 ,

yi =
j =1

aij xj , i = 1, . . . , n

Norma Euclidian a a unui vector z se calculeaz a folosind relat ia:


n

z Rn , z = (zi )n i=1 , |z | =
i=1

|zi |2

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

  • Inteligenta Artificiala: Jocuri. Satisfacerea Constrangerilor
    Inteligenta Artificiala: Jocuri. Satisfacerea Constrangerilor
    Document107 pagini
    Inteligenta Artificiala: Jocuri. Satisfacerea Constrangerilor
    Enroll Info
    Încă nu există evaluări
  • Retele Petri
    Retele Petri
    Document272 pagini
    Retele Petri
    Irina Paise
    Încă nu există evaluări
  • Ratsie
    Ratsie
    Document2 pagini
    Ratsie
    Nechiforescu Oana
    Încă nu există evaluări
  • Cod
    Cod
    Document7 pagini
    Cod
    Nechiforescu Oana
    Încă nu există evaluări
  • Ratsie
    Ratsie
    Document2 pagini
    Ratsie
    Nechiforescu Oana
    Încă nu există evaluări
  • Cap 0
    Cap 0
    Document42 pagini
    Cap 0
    Nechiforescu Oana
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document130 pagini
    Curs 1
    alexcojocaru72
    Încă nu există evaluări
  • Programare Vizuala
    Programare Vizuala
    Document102 pagini
    Programare Vizuala
    Corina_Corina
    Încă nu există evaluări
  • L1 Asp-Net
    L1 Asp-Net
    Document2 pagini
    L1 Asp-Net
    Nechiforescu Oana
    Încă nu există evaluări
  • Nulitatea Casatoriei
    Nulitatea Casatoriei
    Document7 pagini
    Nulitatea Casatoriei
    Nechiforescu Oana
    Încă nu există evaluări
  • Entity Framework
    Entity Framework
    Document38 pagini
    Entity Framework
    Andrei Popilian
    Încă nu există evaluări
  • Acţiune Civilă
    Acţiune Civilă
    Document2 pagini
    Acţiune Civilă
    Nechiforescu Oana
    Încă nu există evaluări
  • Poo Tema
    Poo Tema
    Document1 pagină
    Poo Tema
    Nechiforescu Oana
    Încă nu există evaluări