Page 59 - MATINF Nr. 1
P. 59
Rezolvarea sistemelor de ecuat , ii liniare 59
Pentru x 1 , ˆın linia de deasupra zonei centrale g˘asim 1. Din linia corespunz˘atoare, adic˘a
linia 1 recuper˘am x 1 : din elementul din coloana termenilor liberi, 5, se scad produsele dintre
elementele din coloanele corespunz˘atoare parametrilor s , i respectivii parametri, adic˘a −1 · α s , i
−2 · β. Proced˘am similar pentru necunoscutele x 2 s , i x 3 . Obt , inem astfel solut , ia:
x 1 = 5+α+2β
x 2 = 3−α−2β
5
x 3 =− −α −β , (3)
3
x 4 = α
x 5 = β
Implementare ˆın limbajul C++
Algorimul prezentat ˆın acest articol permite realizarea unui program care
• determin˘a dac˘a un sistem de ecuat , ii liniare este compatibil sau incompatibil
• identific˘a dac˘a un sistem compatibil este compatibil determinat sau compatibil nedetermi-
nat
• pentru sistemele compatibile determinate calculeaz˘a solut , ia
• pentru sistemele compatibile nedeterminate determin˘a solut , ia general˘a, ˆın funct , ie de
parametri.
Programul prezentat mai jos, realizat ˆın Code::Blocks, cites , te datele din fis , ierul text
sistem.txt s , i scrie rezultatele ˆın fis , ierul text solutie.txt.
Fis , ierul prezentat mai jos (sistem.txt) cont , ine datele corespunz˘atoare sistemului (2). Prima
ˆ
linie cont , ine m, n, num˘arul ecuat , iilor, respectiv num˘arul necunoscutelor. In continuare se scriu
elementele matricei extinse de dimensiune m × (n + 1), ultima coloan˘a cont , inˆand termenii liberi.
4 5
1 2 3 4 5 6
2 1 3 2 1 8
1 5 6 10 14 10
2 1 6 5 4 3
Programul respect˘a algoritmul prezentat, cu urm˘atoarele preciz˘ari:
– Pentru alegerea pivotului se determin˘a elementul din linia curent˘a care are valoarea absolut˘a
◦
maxim˘a. Dac˘a acesta este nul, deducem c˘a toate elementele liniei sunt nule. Se analizeaz˘a Pasul 2 ,
etapa 1 (a) s , i (b). Dac˘a elementul determinat este nenul, acesta va fi pivotul (se alege elementul cu
valoare absolut˘a maxim˘a pentru reducerea erorilor de rotunjire).
– Pentru a verifica dac˘a un num˘ar real este nul, nu ˆıl compar˘am cu 0 ci verific˘am dac˘a valoarea
ˆ
absolut˘a a lui este mai mic˘a decˆat ε, unde ε este un num˘ar real pozitiv foarte mic. In program
ε = 10 −20 .
◦
– Prelucrarea tabelului din Pasul 2 se face parcurgˆand etapele ˆın ordinea 6, 4, 5, 3, 2.