Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Matematica


Index » educatie » Matematica
» Metode directe de solutionare a sistemelor de ecuatii liniare (II)


Metode directe de solutionare a sistemelor de ecuatii liniare (II)


Metode directe de solutionare a sistemelor de ecuatii liniare (II)

Metoda inversarii matricei [A]

Pentru ca matricea [A] sa admita inversa este necesar sa fie satisfacute doua conditii: matricea sa fie patratica si determinantul ei sa fie diferit de 0.

Satisfacerea acestor conditii ne permite sa avem relatia:



    (1)

In aceasta situatie solutia sistemului initial poate fi obtinuta cu ajutorul relatiei:

    (2)

Metoda are dezavantajul unui volum de calcul mare. In aceste conditii, in cazul sistemelor de dimensiune mare se va prefera intotdauna o metoda directa de tipul celor prezentate anterior sau o metoda indirecta.. In cazul sistemelor de dimensiuni mai mici utilizarea inversei matricei [A] este comparabila ca timp de calcul cu celelalte metode.

In cadrul acestei lucrari de laborator se prezinta unul dintre cei mai utilizati algoritmi destinati inversarii matricei [A], si anume algoritmul Gauss - Jordan.

Algoritmul Gauss - Jordan

In cadrul acestui algoritm se aplica matricei [A] o serie de transformari elementare de tipul [Ei] si [Eik] pana la transformarea ei in matrice unitate. Daca acest sir de transformari elementare folosit pentru transformarea matricei [A] in matrice unitate se aplica si matricei unitate [In] aceasta se transforma in inversa matricei initiale.

Aplicarea acestor transformari se face respectand urmatorii pasi:

fiecare coloana k din primele n coloane din matricea extinsa [A*] (matricea [A] se extinde la dreapta cu matricea unitate [In]) urmeaza a fi transformata in coloana a matricei unitate, unde elementul nenul apare in pozitia k. In acest scop coloana k din matricea extinsa [A*] se imparte la elementul diagonal akk:

    (3)

Aceste operatii inseamna aplicarea unei succesiuni de transformari elementare [Ei].

obtinerea elementelor nule de pe coloana k:

    (4)

Aceste operatii inseamna aplicarea unei succesiuni de transformari elementare [Eik].

In cele ce urmeaza pasii algoritmului vor fi formalizati din punct de vedere al programarii.

Definirea sistemului de ecuatii liniare: rangul n, matricea [A] si vectorul [b];

Extinderea matricei [A] la dreapta cu matricea unitate [In]:

A(i, j+1) = 0 i, j = 1,, n

A(i, i+n) = 1 i, j = 1,, n

Inversarea matricei [A]: se considera pe rand primele n coloane din matricea extinsa care se transforma in coloane ale matricei unitate.

for k = 1:n

o      se executa pivotarea partiala pe coloana k

o      obtinerea elementului diagonal unitar pe coloana k:

for j = 2*n: -1 :k

a (k , j) = a (k , j) / a (k , k);

end

o       obtinerea elementelor nule de pe coloana k



for i = 1:n

if i = k

for j = 2*n: -1 :k

a(i , k) = a(i , k) - a(i , j)*a(j , k);

end

end

end

end

caculul necunoscutelor problemei:

for i = 1:n

x(i) = 0;

for j = 1:n

x(i) = x(i) + a(i , j+n)*b(j);

end

end

Afisarea solutiei: x(i), i = 1, , n

Pasii pivotarii partiale, din punct de vedere al programarii sunt descrisi in continuare.

initializarea liniei in care apare noul pivot: Lmax = k;

stabilirea liniei in care apare apare elementul subdiagonal max in valoare absoluta:

for i = k + 1 : n

if abs(A(Lmax , k)) < abs(A(i , k))

Lmax = i;

end

end

efectuarea testului de singularitate al matricei [A]:

if A(Lmax , k) == 0

break;

end

se aduce noul pivot pe diagonala (prin schimbarea liniilor Lmax si k in matricea [A]):

if Lmax k

for j = 1:n

A(Lmax , j) = A(k , j);

A(k , j) = A(Lmax , j);

b(Lmax) = b(k);

b(k) = b(Lmax);

end

end

Mersul lucrarii

Se studiaza textul lucrarii si metoda de rezolvare numerica a sistemului de ecuatii liniare.

Se elaboreaza programul de calcul.

Se testeaza programul de calcul prin compararea solutiei obtinute cu cea determinata utilizand functia Matlab inv.







Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate