Sunteți pe pagina 1din 29

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda substitutiei directe pentru rezolvarea sistemelor inferior triunghiulare Folosind metoda substututiei directe rezolvati sistemul de ecuatii liniare Ly = b, unde

1 0.4 L := 0.5 0.6


Solutie.

0 0.9

0 0

0 0 0

0.6 0.8

0.9 0.3 0.7 ORIGIN 1

0.3 0.5 b := 0.7 0.9

Originea indicilor

Dimensiunea sistemului

n := rows ( L)

n=4

Varianta 1. Rezolvarea sistemului inferior triunghiular Ly = b prin scrierea directa a formulelor de calcul. bi y1 := b1 L1 , 1 i := 2 .. n yi :=

j=1

i 1

Li , j y j

Li , i

0.300 0.422 y= 0.746 0.805

Varianta 2. Rezolvarea sistemului Ly = b folosind o secventa de programare. LT ( L , b , n) := y1 b1 L1 , 1


i 1

for i 2 .. n bi yi y Solutia sistemului

j=1

Li , j y j

Li , i

y := LT ( L , b , n)

0.300 0.422 y= 0.746 0.805

Verificarea solutiei

0 0 L y b = 0 0

SL_01_Metoda_substitutiei_directe.mcd / Pag. 1 din 1

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda substitutiei inverse pentru rezolvarea sistemelor superior triunghiulare Folosind metoda substitutiei inverse rezolvati sistemul de ecuatii liniare Ux =y, unde

2.3 0 0 5.4 U := 0 0 0 0
Solutie. Originea indicilor

1.7 1.2 2.5 3.5 6.4 7.8 0 2.7 ORIGIN 1

4.3 7.5 y := 3.7 5.8


n=4

Dimensiunea sistemului

n := rows ( U)

Varianta 1. Rezolvarea sistemului superior triunghiular Ux = y prin scrierea directa a formulelor de calcul. yi xn := yn Un , n i := n 1 .. 1 xi :=

j = i+ 1

Ui , j x j

Ui , i

1.483 1.837 x= 2.040 2.148

Varianta 2. Rezolvarea sistemului Ux = y folosind o secventa de programare. UT ( U , y , n) := xn yn Un , n

for i n 1 .. 1 yi xi x Solutia sistemului

j = i+ 1

U i , j x j

Ui , i

x := UT ( U , y , n)

1.483 1.837 x= 2.04 2.148

Verificarea solutiei

0 0 U x y = 0 0

SL_02_Metoda_substitutiei_inverse.mcd / Pag. 1 din 1

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Doolittle in Mathcad Rezolvati sistemul de ecuatii liniare de mai jos folosind metoda Doolittle. 3 x1 + x2 x3 + 2 x4 = 6 5 x1 + x2 + 3 x3 4 x4 = 12 2 x1 + x3 x4 = 1 x1 5 x2 + 3 x3 3 x4 = 3 Solutie. ORIGIN 1 Matricea sistemului Vectorul termenilor liberi

3 5 A := 2 1

1 1 0

1 2 3 4 1 1

5 3 3 n := cols ( A )

6 12 b := 1 3
n=4

Dimensiunea sistemului

Pentru descompunerea LU a matricei A folosim functia lu(A) din Mathcad.

0 0 lu ( A) = 0 1

0 1 0

0 1

0 0 1

0 2 0

0 0 1 0.5

1 0 0 2.5 0.2 0 0 0 1.5

0 0 5 2.5 2.5 0 0 0 6 7 0 0.667

0.2 0.333 1 0 0

Matricea lu(A) contine trei matrice P, L si U, care verifica egalitatea PA = LU. Extragem aceste submatrice din matricea lu(A).

P := submatrix ( lu ( A) , 1 , 4 , 1 , 4)

0 0 P= 0 1

0 1 0 0 0 1 1 0 0 0 0 0

Matricea inferior triunghiulara L (cu elementele de pe diagonala principala egale cu 1). 0 0 1 0.5 1 0 L= 2.5 0.2 1 1.5 0.2 0.333 0 0 0 1

L := submatrix ( lu ( A) , 1 , 4 , 5 , 8)

SL_03_Metoda_LU_Doolittle_in_Mathcad.mcd / Pag. 1 din 3

Nicolae Danet

METODE NUMERICE

Matricea superior triunghiulara U.

U := submatrix ( lu ( A) , 1 , 4 , 9 , 12)

2 0 U = 0 0

5 2.5 2.5 0 6 7 0 0 0.667 0 0 0 0 0 0 0 0 0 0 0 0

Verificarea descompunerii

0 0 P A L U = 0 0

Rezolvarea sistemului Ax = b este echivalenta cu rezolvarea sistemului PAx = Pb. Notam c := P b

Obtinem astfel sistemul LUx = c. Notam y = Ux si rezolvam mai intai sistemul inferior triunghiular Ly = c. LT ( L , c , n) := y1 c1 L1 , 1
i 1

for i 2 .. n yi ci y y := LT ( L , c , n)

j=1

Li , j y j

1 2.5 y= 9 2
Observatie. In formulele de mai sus am tinut seama ca elementele Li,i de pe diagonala principala sunt egale cu 1.

SL_03_Metoda_LU_Doolittle_in_Mathcad.mcd / Pag. 2 din 3

Nicolae Danet

METODE NUMERICE

Rezolvarea sistemului superior triunghiular Ux = y. UT ( U , y , n) := xn yn Un , n

for i n 1 , n 2 , 1 yi xi x Solutia sistemului x := UT ( U , y , n)

j = i+ 1

U i , j x j

Ui , i

1 1 x= 2 3
Verificarea solutiei

0 0 A x b = 0 0

SL_03_Metoda_LU_Doolittle_in_Mathcad.mcd / Pag. 3 din 3

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Crout Folosind metoda Crout de descompunere LU, determinati solutia sistemului liniar Ax = b, unde

3 5 A := 2 1
Solutie. ORIGIN 1

1 1 0

1 2 3 4 1 1

5 3 3

6 12 b := 1 3

Pentru scrierea elementelor matricei A cu litera mica renotam Dimensiunea sistemului n := cols ( A ) n=4 i := 1 .. n

a := A

Elementele primei coloane din matricea L

Li , 1 := ai , 1

3 5 L= 2 1
Elementele primei linii a matricei U U1 , 1 := 1 j := 2 .. n U 1 , j := a1 , j L1 , 1

U = ( 1 0.333 0.333 0.667 ) Coloana 2 din L k := 2 i := k .. n U k , k := 1 j := k + 1 .. n


k 1 k 1

Linia 2 din U

ak , j Li , s U s , k Uk , j :=

Li , k := ai , k

s=1

s=1

L k , s U s , j

Lk , k

SL_04_Metoda_LU_Crout_pas_cu_pas.mcd / Pag. 1 din 3

Nicolae Danet

METODE NUMERICE

0 3 5 2.667 L= 2 0.667 1 5.333 Coloana 3 din U k := 3 i := k .. n U k , k := 1

U =

1 0.333 0.333 0.667 0.5 0.25 0 1

Linia 3 din L

j := k + 1 .. n
k 1 k 1

ak , j Li , s U s , k Uk , j :=

Li , k := ai , k

s=1

s=1

L k , s U s , j

Lk , k

0 0 3 5 2.667 0 L= 2 0.667 2 1 5.333 6 Coloana 4 din L k := 4 i := k .. n


k 1

1 0.333 0.333 0.667 0.25 0.5 1 U = 0 0 0 1.25 1

Linia 4 din U Nu mai avem ce calcula

U k , k := 1

Li , k := ai , k

s=1

Li , s U s , k

Matricele obtinute 0 0 0 3 5 2.667 0 0 L= 2 0.667 2 0 1 5.333 6 2.5

1 0.333 0.333 0.667 0 1 0.5 0.25 U = 0 0 1 1.25 0 1 0 0

SL_04_Metoda_LU_Crout_pas_cu_pas.mcd / Pag. 2 din 3

Nicolae Danet

METODE NUMERICE

Verificarea descompunerii

0 0 A L U = 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Rezolvarea sistemului inferior triunghiular Ly = b LT ( L , b , n) := y1 b1 L1 , 1


i 1

for i 2 .. n bi yi y

j=1

Li , j y j

Li , i

y := LT ( L , b , n)

2.000 0.750 y= 1.750 3.000

Rezolvarea sistemului superior triunghiular Ux = y UT ( U , y , n) := xn yn Un , n

for i n 1 , n 2 , 1 yi xi x Solutia sistemului

j = i+ 1

U i , j x j

Ui , i

x := UT ( U , y , n)

1 1 x= 2 3

Verificarea solutiei

0 0 A x b = 0 0

SL_04_Metoda_LU_Crout_pas_cu_pas.mcd / Pag. 3 din 3

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Crout Folosind metoda Crout de descompunere LU, determinati solutia sistemului liniar Ax = b, unde

3 5 A := 2 1
Solutie. ORIGIN 1

1 1 0

1 2 3 4 1 1

5 3 3

6 12 b := 1 3

Pentru scrierea elementelor matricei A cu litera mica renotam Dimensiunea sistemului Vezi pagina urmatoare! n := cols ( A ) n=4

a := A

SL_05_Metoda_LU_Crout_programata.mcd / Pag. 1 din 3

Nicolae Danet

METODE NUMERICE

Subprogram pentru descompunerea matricei A prin metoda Crout. Crout ( A , n) := for i 1 .. n Li , 1 ai , 1 U1 , 1 1 for j 2 .. n U1 , j a1 , j L1 , 1

for k 2 .. n 1 for i k .. n
k 1

Li , k ai , k Uk , k 1 for j k + 1 .. n

s=1

Li , s U s , k

k 1

ak , j Uk , j
n 1

s=1

Lk , s U s , j

Lk , k

Li , n ai , n Un , n 1

s=1

L i , s U s , n

B augment ( L , U) 0 0 0 3 5 2.667 0 0 Crout ( A , n) = 2 0.667 2 0 1 5.333 6 2.5 1 0.333 0.333 0.667 0 0 0 1 0 0 0.5 1 0 0.25 1.25 1

Matricele obtinute in urma descompunerii L := submatrix ( Crout ( A , n) , 1 , n , 1 , n) 0 0 0 3 5 2.667 0 0 L= 2 0.667 2 0 1 5.333 6 2.5 U := submatrix ( Crout ( A , n) , 1 , n , n + 1 , 2 n)

1 0.333 0.333 0.667 0 1 0.5 0.25 U= 0 0 1 1.25 0 1 0 0

SL_05_Metoda_LU_Crout_programata.mcd / Pag. 2 din 3

Nicolae Danet

METODE NUMERICE

Verificarea descompunerii

0 0 A L U = 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Rezolvarea sistemului inferior triunghiular Ly = b LT ( L , b , n) := y1 b1 L1 , 1


i 1

for i 2 .. n bi yi y

j=1

Li , j y j

Li , i

y := LT ( L , b , n)

2.000 0.750 y= 1.750 3.000

Rezolvarea sistemului superior triunghiular Ux = y UT ( U , y , n) := xn yn Un , n

for i n 1 , n 2 , 1 yi xi x Solutia sistemului

j = i+ 1

U i , j x j

Ui , i

x := UT ( U , y , n)

1 1 x= 2 3

Verificarea solutiei

0 0 A x b = 0 0

SL_05_Metoda_LU_Crout_programata.mcd / Pag. 3 din 3

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Cholesky in Mathcad Folosind metoda Cholesky (metoda radacinii patrate), rezolvati sistemul de ecuatii liniare Ax = b, unde

1.00 0.42 A := 0.54 0.66


Solutie.

0.42 0.54 0.66 1.00 0.32 0.44 0.32 1.00 0.22 0.44 0.22 1.00

0.3 0.5 b := 0.7 0.9

Dimensiunea matricei sistemului ORIGIN 1

n := cols ( A)

n=4

Metoda Cholesky se aplica in cazul in care matricea simetrica A este pozitiv definita. Faptul ca A este simetrica se observa imediat.

0 T 0 AA = 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Faptul ca A este pozitiv definita nu se poate verifica cu usurinta inaintea aplicarii metodei. De regula, se aplica metoda. Daca aceasta functioneaza, atunci matricea este intr-adevar pozitiv definita. L := cholesky ( A) 0 0 0 1 0.42 0.908 0 0 L= 0.54 0.103 0.835 0 0.66 0.179 0.185 0.706 Notam U := L
T

SL_06_Metoda_LU_Cholesky_in_Mathcad.mcd / Pag. 1 din 2

Nicolae Danet

METODE NUMERICE

Verificarea descompunerii

0 0 A L U = 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Rezolvarea sistemului inferior triunghiular Ly = b LT ( L , b , n) := y1 b1 L1 , 1


i 1

for i 2 .. n bi yi y

j=1

Li , j y j

Li , i

y := LT ( L , b , n)

0.300 0.412 y= 0.593 1.046


yn Un , n

Rezolvarea sistemului superior triunghiular Ux = y UT ( U , y , n) := xn

for i n 1 .. 1 yi xi x Solutia sistemului

j = i+ 1

U i , j x j

Ui , i

x := UT ( U , y , n)

1.258 0.043 x= 1.039 1.482

Verificarea solutiei

0 0 A x b = 0 0

SL_06_Metoda_LU_Cholesky_in_Mathcad.mcd / Pag. 2 din 2

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Cholesky (pas cu pas) Folosind metoda Cholesky (metoda radacinii patrate), rezolvati sistemul de ecuatii liniare Ax = b, unde

1.00 0.42 A := 0.54 0.66


Solutie.

0.42 0.54 0.66 1.00 0.32 0.44 0.32 1.00 0.22 0.44 0.22 1.00

0.3 0.5 b := 0.7 0.9


a := A n=4

Pentru a scrie elementele matricei A cu litera mica, renotam Dimensiunea matricei sistemului ORIGIN 1 Elementele primei linii U 1 , 1 := a1 , 1 j := 2 .. n n := cols ( A)

U1 , j :=

a1 , j U1 , 1

U = ( 1 0.42 0.54 0.66 ) Elementele liniei a doua k := 2 j := k + 1 .. n


k 1 k 1

ak , j

U k , k :=

ak , k

s=1

( Us , k) 2

U k , j :=

s=1

( Us , k Us , j)

Uk , k

U =

0.54 0.66 1 0.42 0 0.90752 0.1027 0.17939 j := k + 1 .. n


k 1

Elementele liniei a treia

k := 3

k 1

ak , j

U k , k :=

ak , k

s=1

( Us , k) 2

U k , j :=

s=1

( Us , k Us , j)

Uk , k

SL_07_Metoda_LU_Cholesky_pas_cu_pas.mcd / Pag. 1 din 3

Nicolae Danet

METODE NUMERICE

1 0.42 0.54 0.66 U = 0 0.90752 0.1027 0.17939 0 0 0.83538 0.18533


k 1

Elementele liniei a patra

k := 4

U k , k :=

ak , k

s=1

( Us , k) 2

Matricea superior triunghiulara obtinuta

1 0.42 0.54 0.66 0 0.908 0.103 0.179 U = 0 0 0.835 0.185 0 0.706 0 0


Matricea inferior triunghiulara L este transpusa matricei U L := U
T

0 0 0 1 0.42 0.908 0 0 L= 0.54 0.103 0.835 0 0.66 0.179 0.185 0.706 Verificarea descompunerii

0 0 A L U = 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Rezolvarea sistemului inferior triunghiular Ly = b LT ( L , b , n) := y1 b1 L1 , 1


i 1

for i 2 .. n bi yi y

j=1

Li , j y j

Li , i

SL_07_Metoda_LU_Cholesky_pas_cu_pas.mcd / Pag. 2 din 3

Nicolae Danet

METODE NUMERICE

y := LT ( L , b , n)

0.300 0.412 y= 0.593 1.046

Rezolvarea sistemului superior triunghiular Ux = y UT ( U , y , n) := xn yn Un , n

for i n 1 , n 2 , 1 yi xi x Solutia sistemului

j = i+ 1

U i , j x j

Ui , i

x := UT ( U , y , n)

1.258 0.043 x= 1.039 1.482 0 0 A x b = 0 0

Verificarea solutiei

SL_07_Metoda_LU_Cholesky_pas_cu_pas.mcd / Pag. 3 din 3

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Cholesky programata Folosind metoda Cholesky (metoda radacinii patrate), rezolvati sistemul de ecuatii liniare Ax = b, unde

1.00 0.42 A := 0.54 0.66

0.42 0.54 0.66 1.00 0.32 0.44 0.32 1.00 0.22 0.44 0.22 1.00

0.3 0.5 b := 0.7 0.9


n := cols ( A ) n=4 a := A ORIGIN 1

Solutie. Dimensiunea matricei sistemului

Pentru a scrie elementele matricei A cu litera mica, renotam SCholesky ( A , n) := U1 , 1 a1 , 1 if a1 , 1 > 0

return "A nu este pozitiv definita" otherwise for j 2 .. n U1 , j a1 , j U1 , 1


k 1

for k 2 .. n 1 vk ak , k Uk , k

s=1

( Us , k) 2

vk if vk > 0

return "A nu este pozitiv definita" otherwise for j k + 1 .. n


k 1

ak , j Uk , j
n 1

s=1

U s , k Us , j

Uk , k

vn an , n Un , n

s=1

( Us , n) 2

vn if vn > 0

return "A nu este pozitiv definita" otherwise U


SL_08_Metoda_LU_Cholesky_programata.mcd / Pag. 1 din 2

Nicolae Danet

METODE NUMERICE

Matricea superior triunghiulara obtinuta

U := SCholesky ( A , n)

1 0.42 0.54 0.66 0 0.908 0.103 0.179 U = 0 0 0.835 0.185 0 0.706 0 0


0 0 0 1 0.42 0.908 0 0 L= 0.54 0.103 0.835 0 0.66 0.179 0.185 0.706

Matricea inferior triunghiulara L este transpusa matricei U

L := U

Verificarea descompunerii

0 0 A L U = 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Rezolvarea sistemului inferior triunghiular Ly = b LT ( L , b , n) := y1 b1 L1 , 1


i 1

for i 2 .. n bi yi y Rezolvarea sistemului superior triunghiular Ux = y UT ( U , y , n) := xn yn Un , n Solutia sistemului x := UT ( U , y , n)


n

j=1

Li , j y j

y := LT ( L , b , n)

0.300 0.412 y= 0.593 1.046

Li , i

for i n 1 .. 1 yi xi x

j = i+ 1

U i , j x j Verificarea solutiei

Ui , i

1.258 0.043 x= 1.039 1.482 0 0 A x b = 0 0

SL_08_Metoda_LU_Cholesky_programata.mcd / Pag. 2 din 2

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Gauss fara pivotare Rezolvati sistemul de ecuatii liniare Ax = b folosind metoda lui Gauss, unde

2.5 0.4 A := 0.3 1.0


Solutie.

1.0 0.1 1.0 5.5 4.0 1.0 4.0 0.2 2.5 0.5 2.2 5.0 n := rows ( A ) ORIGIN 1

9.8 6.4 b := 7.6 13.4


n=4

Dimensiunea sistemului Originea indicilor

Metoda lui Gauss se poate aplica fara pivotare daca matricea sistemului este tare diagonal dominanta. Verificam mai intai daca matricea A din acest exemplu are acesta proprietate.

i := 1 .. n

di := A i , i

j=1

if ( j i , Ai , j , 0)

di =
0.4 0.6 0.5 1.3

Deoarece toate diferentele di sunt strict pozitive matricea A este tare diagonal dominanta. O varianta programata a acestei verificari, necesara pentru matricele mari, este urmatoarea: MTDD ( A , n) := for i 1 .. n di A i , i

j=1

if ( j i , Ai , j , 0)

( error ( "Matricea nu este tare diagonal dominanta" ) ) if di 0 continue otherwise "Matrice tare diagonal dominata" MTDD ( A , n) = "Matrice tare diagonal dominata"

SL_09_Metoda_Gauss_fara_pivotare.mcd / Pag. 1 din 4

Nicolae Danet

METODE NUMERICE

Subprogramul de mai jos transforma matricea A intr-una superior triunghiulara. GUfp ( A , b , n) := for k 1 .. n 1 for i k + 1 .. n Mi , k Ai , k Ak , k

for j k + 1 .. n A i , j A i , j Mi , k A k , j Ai , k 0 bi bi Mi , k bk A Matricea superior triunghiulara U obtinuta: 0.1 1 2.5 1 0 5.66 4.016 0.66 U = 0 0 4.783 2.189 0 0 6.298 0

U := GUfp ( A , b , n)

Transformarea vectorului liber b Gbfp ( A , b , n) := for k 1 .. n 1 for i k + 1 .. n mi , k Ai , k Ak , k

for j k + 1 .. n Ai , j A i , j mi , k Ak , j Ai , k 0 bi bi mi , k bk b Vectorul liber transformat

bb := Gbfp ( A , b , n)

9.800 7.968 bb = 7.199 7.142

SL_09_Metoda_Gauss_fara_pivotare.mcd / Pag. 2 din 4

Nicolae Danet

METODE NUMERICE

Rezolvarea sistemului superior triunghiular Ux=bb UT ( U , bb , n) := xn bbn Un , n

for i n 1 .. 1 bbi xi x

j = i+ 1

( Ui , j x j)

Ui , i

Solutia sistemului

x := UT ( U , bb , n)

3.264 2.976 x= 2.024 1.134

Verificarea solutiei

0 1.776 10 15 A x b = 0 15 1.776 10

Descompunerea LU a unei matrice folosind metoda Gauss Matricea pivotilor (multiplicatorilor) completata cu valoarea 1 pe diagonala principala. GLfp ( A , b , n) := for k 1 .. n 1 for i k + 1 .. n Mi , k Ai , k Ak , k

for j k + 1 .. n Ai , j A i , j Mi , k A k , j Ai , k 0 for k 1 .. n Mk , k 1 M

SL_09_Metoda_Gauss_fara_pivotare.mcd / Pag. 3 din 4

Nicolae Danet

METODE NUMERICE

Aceasta este o matrice inferior triunghiulara notata L. L := GLfp ( A , b , n) 0 0 1 0.16 1 0 L= 0.12 0.198 1 0.4 0.106 0.442 0 0 0 1

Cele doua matrice L si U, obtinute prin metoda Gauss, determina o descompunere de tip LU a matricei A. Descompunerea este de tip Doolittle deoarece elementele de pe diagonala principala a matricei L sunt egale cu 1. Verificarea descompunerii

0 0 A L U = 0 0

0 0 0 0 0 0 0 0 0 0 0 0

SL_09_Metoda_Gauss_fara_pivotare.mcd / Pag. 4 din 4

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Gauss fara pivotare folosind matricea extinsa Rezolvati sistemul de ecuatii liniare Ax = b folosind metoda lui Gauss, unde

2.5 0.4 A := 0.3 1.0


Solutie.

1.0 0.1 1.0 5.5 4.0 0.5 1.0 4.0 2.2 0.2 2.5 5.0 n := rows ( A )

9.8 6.4 b := 7.6 13.4


n=4

Dimensiunea sistemului ORIGIN 1

Originea indicilor

Verificam daca matricea A este tare diagonal dominanta. In caz afirmativ metoda Gauss se poate aplica fara pivotare.

i := 1 .. n

di := A i , i

j=1

if ( j i , Ai , j , 0)

di =
0.4 0.6 0.5 1.3

Deoarece toate diferentele di sunt strict pozitive matricea A este tare diagonal dominanta. O varianta programata a acestei verificari, necesara pentru matricele mari, este urmatoarea: MTPD ( A , n) := for i 1 .. n di Ai , i

j=1

if ( j i , A i , j , 0)

( error ( "Matricea nu este tare diagonal dominanta" ) ) if di 0 continue otherwise "Matrice tare diagonal dominata" MTPD ( A , n) = "Matrice tare diagonal dominata" Deoarece matricea A este tare diagonal dominanta, putem aplica metoda Gauss fara pivotare. Definim matricea extinsa a sistemului C := augment ( A , b)
SL_10_Metoda_Gauss_fara_pivotare_cu_matrice_extinsa.mcd / Pag. 1 din 2

Nicolae Danet

METODE NUMERICE

Aplicam acestei matrice algoritmul Gaus fara pivotare. GU ( C , n) := for k 1 .. n 1 for i k + 1 .. n Mi , k Ci , k Ck , k

for j k + 1 .. n + 1 Ci , j Ci , j Mi , k Ck , j Ci , k 0 C 0.1 1 9.8 2.5 1 0 5.66 4.016 0.66 7.968 U= 0 0 4.783 2.189 7.199 0 0 6.298 7.142 0

U := GU ( C , n)

Ultima coloana a matricei U este vectorul liber trasformat. Rezolvarea sistemului superior triunghiular obtinut: UT ( U , n) := xn U n , n+ 1 Un , n

for i n 1 .. 1 U i , n+ 1 xi x

j = i+ 1

U i , j x j

Ui , i

Solutia sistemului

x := UT ( U , n)

3.264 2.976 x= 2.024 1.134

Verificarea solutiei

0 1.776 10 15 A x b = 0 15 1.776 10

SL_10_Metoda_Gauss_fara_pivotare_cu_matrice_extinsa.mcd / Pag. 2 din 2

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Gauss cu pivotare partiala folosind matricea extinsa Rezolvati sistemul de ecuatii liniare Sx = b folosind metoda lui Gauss, unde

1 2 S := 3 1
Solutie.

1 1 1 1 1 2 2 3 1

4 1 b := 3 4
ORIGIN 1 n := rows ( S) n=4

Originea indicilor Dimensiunea sistemului

Verificam daca matricea sistemului S este tare diagonal dominanta. MTPD ( A , n) := for i 1 .. n di Ai , i

j=1

if ( j i , A i , j , 0)

( error ( "Matricea nu este tare diagonal dominanta" ) ) if di 0 continue otherwise "Matrice tare diagonal dominata" MTPD ( S , n) = Deoarece matricea sistemului nu este tare diagonal dominanta vom folosi metoda Gauss cu pivotare. Matricea extinsa a sistemului A := augment ( S , b)

Subprogramul Gauss cu pivotare este scris pe pagina urmatoare pentru a se putea urmari cu mai mare claritate instructiunile de programare.

SL_11_Metoda_Gauss_cu_pivotare_cu_matrice_extinsa.mcd / Pag. 1 din 3

Nicolae Danet

METODE NUMERICE

Gpivpar ( A , n) :=

for k 1 .. n 1 piv A k , k ipiv k for i k + 1 .. n if piv < Ai , k piv A i , k ipiv i continue otherwise for j k .. n + 1 sk , j Ak , j Ak , j Aipiv , j Aipiv , j sk , j for i k + 1 .. n mi , k Ai , k Ak , k

for j k + 1 .. n + 1 A i , j Ai , j mi , k A k , j Ai , k 0 A Matricea obtinuta U := Gpivpar ( A , n) 1 2 3 1 0 1.667 0.333 0.333 U = 0 0 3 0 0 2.6 0 0 3 3 0 2.6

Ultima coloana a matricei U este vectorul liber trasformat.

SL_11_Metoda_Gauss_cu_pivotare_cu_matrice_extinsa.mcd / Pag. 2 din 3

Nicolae Danet

METODE NUMERICE

Rezolvarea sistemului superior triunghiular UT ( U , n) := xn U n , n+ 1 Un , n

for i n 1 .. 1 U i , n+ 1 xi x Solutia sistemului

j = i+ 1

U i , j x j

Ui , i

x := UT ( U , n)

1 2 x= 0 1 0 0 S x b = 0 0

Verificarea solutiei

SL_11_Metoda_Gauss_cu_pivotare_cu_matrice_extinsa.mcd / Pag. 3 din 3

Nicolae Danet

METODE NUMERICE

SISTEME DE ECUATII LINIARE

Metode de descompunere LU
Metoda Gauss cu pivotare partiala folosind matricea extinsa Rezolvati sistemul de ecuatii liniare Sx = b folosind metoda lui Gauss, unde

0 5 10 5.5 1 15 0 27.5 S := 2 20 30 40.3 3 0 6.25 31.3


Solutie. ORIGIN 1 n := rows ( S) A A GE ( pas) :=

20.04 46.78 b := 51.35 20.97


A := augment ( S , b)

for k 1 .. n 1 piv A k , k if Ak , k 0 otherwise for i k + 1 .. n i k if Ai , k 0 ipiv k for i k + 1 .. n if piv < A i , k piv A i , k ipiv i continue otherwise for j k .. n + 1 sk , j A k , j A k , j Aipiv , j A ipiv , j sk , j for i ( k + 1) .. n mi , k Ai , k Ak , k

for j k + 1 .. n + 1 Ai , j A i , j mi , k Ak , j Ai , k 0 Uk A Upas
SL_12_Metoda_Gauss_cu_pivotare_cu_matrice_extinsa_(matrice intermediare).mcd / Pag. 1 din 2

Nicolae Danet

METODE NUMERICE

0 1 A = 2 3
pas := 1 .. n 1

5 15 20 0

10 0

5.5 20.04 27.5

46.78 30 40.3 51.35 6.25 31.3 0 5 15 20.97 31.3 5.5 20.97

3 0 0 0 3 0 GE ( pas) = 0 0 3 0 0 0

6.25 10 2.083

20.04 37.933 53.77

20 25.833 61.167 37.37 0 6.25 31.3 20.97 20 25.833 61.167 37.37 0 3.542 9.792 10.697 0 17.292 83.808 25.742 0 6.25 31.3 20.97 20 25.833 61.167 37.37

0 17.292 83.808 25.742 0 0 26.957 15.97

Matricea superior triunghiulara plus vectorul termenilor liberi (ultima coloana) U := submatrix ( GE ( n 1) , 1 , n , 1 , n + 1) Rezolvarea sistemului superior triunghiular UT ( U , n) := xn U n , n+ 1 Un , n Solutia sistemului

for i n 1 .. 1 U i , n+ 1 xi x

j = i+ 1

U i , j x j

x := UT ( U , n)

Ui , i

2.0713 1.8945 x= 1.3826 0.5924

Verificarea solutiei

3.553 10 15 7.105 10 15 S x b = 7.105 10 15 0

SL_12_Metoda_Gauss_cu_pivotare_cu_matrice_extinsa_(matrice intermediare).mcd / Pag. 2 din 2

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