Metode Numerice - Lucrarea de laborator 4 1 Lucrarea de laborator nr. 4 I. Scopul lucrării - Aplicații ale eliminării gaussiene cu pivotare parțială la rezolvarea sistemelor liniare compatibil determinate - Implementarea în Maple a unei metode iterative de rezolvare a unui sistem liniar. II. Conținutul lucrării 1. Prezentarea metodei de eliminare Gauss cu pivotare parțială 2. Rezolvarea sistemelor liniare compatibil determinate cu n ecuații și n necunoscute prin metode directe - procedura MAPLE. 3. Metode iterative de rezolvare a sistemelor liniare: metoda lui Jacobi III. Prezentarea lucrării III. 1. Prezentarea metodei de eliminare Gauss cu pivotare parțială Se consideră o matrice AMn,m(R). Eliminarea gaussiană urmărește transformarea matricei A într-o matrice superior triunghiulară S (o matrice cu proprietatea că bij = 0 pentru orice i<j). Trecerea de la matricea A la matricea S se realizează prin transformări elementare. La baza metodei stă următorul procedeu: prima linie este folosită pentru anularea coeficienților de pe prima coloană din celelalte n-1 linii. a doua linie este utilizată pentru anularea coeficienților de pe a doua coloană din ultimele n-2 linii, ș.a.m.d. Trecerea de la un pas la altul se face aplicând regula dreptunghiului (pivotului). Pentru a obține stabilitatea numerică a algoritmului, se alege drept pivot de la pasul k elementul maxim în modul din coloana k subdiagonală a lui A, și se permută linia k cu linia pe care se găsește pivotul. Această strategie de permutare se numește pivotare parțială. Performanțe de stabilitate numerică relativ mai bune se obțin dacă se alege drept pivotul la pasul k elementul maxim în modul din submatricea delimitată de
12
Embed
Lucrarea de laborator nr. 4 · Lucrarea de laborator nr. 4 I. Scopul lucrării - Aplicații ale eliminării gaussiene cu pivotare parțială la rezolvarea sistemelor liniare compatibil
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Metode Numerice - Lucrarea de laborator 4
1
Lucrarea de laborator nr. 4
I. Scopul lucrării
- Aplicații ale eliminării gaussiene cu pivotare parțială la rezolvarea sistemelor
liniare compatibil determinate
- Implementarea în Maple a unei metode iterative de rezolvare a unui sistem
liniar.
II. Conținutul lucrării
1. Prezentarea metodei de eliminare Gauss cu pivotare parțială
2. Rezolvarea sistemelor liniare compatibil determinate cu n ecuații și n necunoscute prin
metode directe - procedura MAPLE.
3. Metode iterative de rezolvare a sistemelor liniare: metoda lui Jacobi
III. Prezentarea lucrării
III. 1. Prezentarea metodei de eliminare Gauss cu pivotare parțială
Se consideră o matrice AMn,m(R). Eliminarea gaussiană urmărește
transformarea matricei A într-o matrice superior triunghiulară S (o matrice cu
proprietatea că bij = 0 pentru orice i<j). Trecerea de la matricea A la matricea S se
realizează prin transformări elementare. La baza metodei stă următorul procedeu:
prima linie este folosită pentru anularea coeficienților de pe prima coloană
din celelalte n-1 linii.
a doua linie este utilizată pentru anularea coeficienților de pe a doua coloană
din ultimele n-2 linii, ș.a.m.d.
Trecerea de la un pas la altul se face aplicând regula dreptunghiului (pivotului).
Pentru a obține stabilitatea numerică a algoritmului, se alege drept pivot de la pasul k
elementul maxim în modul din coloana k subdiagonală a lui A, și se permută linia k
cu linia pe care se găsește pivotul. Această strategie de permutare se numește pivotare
parțială. Performanțe de stabilitate numerică relativ mai bune se obțin dacă se alege
drept pivotul la pasul k elementul maxim în modul din submatricea delimitată de
Mădălina Roxana Buneci Metode Numerice –Laborator
2
ultimele n-k linii, și se permută coloana k cu coloana pivotului și linia k cu linia
pivotului. Această strategie de pivotare se numește pivotare completă. Prezentăm în
continuare algoritmul de eliminare Gauss cu pivotare parțială. Trecerea de la matricea
A la matricea superior triunghiulară se realizează în nmin pași, unde nmin = min(n,m):
A(0) A(1)… A(nmin),
unde A(nmin) are formă superior triunghiulară, iar A(0) =A.
Pentru a se trece de la A(k)A(k+1):
Se determină pivotul de la pasul k; acesta este primul element k
k,ia de
pe coloana k cu proprietatea
| k
k,ia |=max{| k
k, ja |, kjn}
Se permută liniile i cu k;
Se aplică regula dreptunghiului (pivotului) cu pivotul k
k,ka . Astfel:
elementele de pe linia pivotului se împart la pivot:
a)1k(
i,k
=
k
k,i
k
k,k
a
a, i=k,k+1,…m
elementele subdiagonale de pe coloana pivotului se înlocuiesc cu
0.
1k
ika =0, i= k+1, k+2,…n
elementele din submatricea delimitată de ultimele n-k linii și de
ultimele n-k coloane se transformă cu regula dreptunghiului:
k j
k (k)k,ka
(k)k, ja
i (k)i,ka
(k)i, ja
Metode Numerice - Lucrarea de laborator 4
3
k 1
i, ja
=
(k) (k) (k) (k)i, j k,k k,j i,k
(k)k,k
a a a a
a
, k+1 i n, k+1 j m.
În urma aplicării acestui algoritm se ajunge la următoarea matrice superior
triunghiulară:
1 a)1(2,1 a
)1(3,1 a )1(
n,1 a)1(
1n,1 a)1(m,1
A(nmin) = 0 1
a23,2 a )2(
n,2
a2
1n,2
a2m,2
0 0 0 1 a
n1n,n
an
m,n
(dacă m n).
Considerăm sistemul cu n ecuații și n necunoscute.
Ax = b, AMn,n(R) nesingulară
Pentru rezolvarea acestui sistem vom aplica algoritmul de eliminare Gauss cu
pivotarea parțială asupra matricei extinse b|AA . Vom nota elementele matricei
A tot cu ai,j . Astfel ai,n+1= bi pentru orice i=1,2,..n.
La primul pas algoritmul presupune eliminarea necunoscutei x1 din ultimele n-
1 ecuații. La al doilea pas se elimină necunoscuta x2 din ultimele n-2 ecuații, ș.a.m.d.
În cazul acestui algoritm pentru fiecare k se efectuează n+1-k + (n+1-k)(n-k) = (n+1-
k)2 operații elementare (prin operație elementară înțelegând aici o operație în virgulă
mobilă de forma ax + b, sau o împărțire) . Deci algoritmul necesită
Nop(n) = n 1
2
k 1
n 1 k
=n
2
j 2
j
= n n 1 2n 1
6
- 1
operații elementare. Deci Nop(n) ~ 3
n 3
(sau Nop(n) O(n3) ).
Ca urmare a aplicării algoritmului se obține sistemul echivalent:
Mădălina Roxana Buneci Metode Numerice –Laborator
4
x1 + a)1(2,1 x2 + a
)1(3,1 x3 + a )1(
n,1 xn = a)1(
1n,1
x2 + a
23,2 x3+ a )2(
n,2 xn = a
21n,2
xn = a
n1n,n
Rezolvarea acestui sistem se poate face foarte ușor de la sfârșit spre început:
xn = a
n1n,n
n
1ij
jij,i
i1n,ii xaax
III.2. Rezolvarea sistemelor liniare compatibil determinate cu n ecuații și
n necunoscute prin metode directe- procedura MAPLE.
Considerăm sistemul cu n ecuații și n necunoscute.
Ax = b, AMn,n(R) nesingulară
Pentru rezolvarea acestui sistem vom aplica algoritmul de eliminare Gauss cu
pivotarea parțială asupra matricei extinse b|AA . Vom nota elementele matricei
A tot cu ai,j . Astfel ai,n+1= bi pentru orice i=1,2,..n.
Procedura rezsist de mai jos întoarce soluția unui sistem liniar cu n ecuații și n
necunoscute. Parametri procedurii sunt matricea sistemului și vectorul termenilor liberi
> rezlin:=proc(A,b)
local a,x,n,i,j,k,aux;
uses linalg;
n:=rowdim(A);
a:=matrix(n,n+1);
for i from 1 to n do
for j from 1 to n do a[i,j]:=A[i,j] end do;
a[i,n+1]:=b[i] end do;
for k from 1 to n do i:=k;aux:=abs(a[k,k]);
for j from k+1 to n do
if abs(a[j,k])>aux then aux:=abs(a[j,k]);i:=j end if end do;
if i>k then for j from k to n+1 do
Metode Numerice - Lucrarea de laborator 4
5
aux:=a[k,j];a[k,j]:=a[i,j];a[i,j]:=aux od end if;
if a[k,k]=0 then print(`matrice singulara`); return NULL end if;
for j from k+1 to n+1 do a[k,j]:=a[k,j]/a[k,k] end do;
a[k,k]:=1;
for i from k+1 to n do
for j from k+1 to n+1 do a[i,j]:=a[i,j]-a[k,j]*a[i,k] end do
end do;
for j from k+1 to n do a[j,k]:=0 end do
end do;
x:=vector(n);
x[n]:=a[n,n+1];
for i from n-1 by -1 to 1 do x[i]:=a[i,n+1];
for j from i+1 to n do x[i]:=x[i]-a[i,j]*x[j] end do end do;
return evalm(x)
end proc;
Utilizăm procedura se mai sus pentru rezolvarea sistemului
x1 + x2 + x3 = 3
x1 - x2 + 2x3 = 2
-x1 - x2 + 3x3 = 1
> a1:=matrix(3,3,[1,1,1,1,-1,2,-1,-1,3]);
> b1:=vector(3,[3,2,1]);
> rezlin(a1,b1);
> linalg[linsolve](a1, b1);
Comanda MAPLE linsolve(A,b) întoarce soluția sistemului Ax = b.