You are on page 1of 14

Generaliti despre sisteme de ecuaii de ecuaii algebrice liniare

Aceste sisteme intervin n aproape toate domeniile matematicii aplicate.Considerm urmtorul sistem din n
ecuaii liniare cu n necunoscute:

'

+ + + +
+ + + +
+ + + +
+ + + +
n n nn n n n
n n
n n
n n
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
...
........ .......... .......... .......... .......... ..........
...
...
...
3 3 2 2 1 1
3 3 3 33 2 32 1 31
2 2 3 23 2 22 1 21
1 1 3 13 2 12 1 11
(1)
unde aij i bj (i,j=1,2n! sunt numere reale."istemul (1! mai poate #i scris ast#el:
! ,..., 2 , 1 ( ,
1
n i b x a
n
j
i j ij

sau
innd cont de re$ula nmulirii a 2 matrici i de condiia de e$alitate a 2 matrici,n #orm vectorial Ax=b unde
A=(aij)n este matricea coe#icienilor,b=(b1,b2,,bn)
T
-vectorul%coloan al termenilor li&eri,iar x=(x1,x2,,xn)
T
-
vectorul%coloan al necunoscutelor sistemului n studiu.
Definiie.Se numete soluie a sistemului de n ecuaii liniare cu n necunoscute (1) orice set de numere c1,c2,
,cn,care,fiind substituite n locul necunoscutelor x1,x2,,xn din ecuaiile acestui sistem,va transforma fiecare
din aceste ecuaii n egalitate numeric adevrat,adic

n
j
i j ij
b c a
1
(i=1,2,,n!.Sistemul n studiu se numete
compatibil,dac el are cel puin o soluie,iar dac nu are soluii se numete
incompatibil(contradictoriu).Sistemul compatibil la rndul su,poate avea una sau mai multe soluii i se
numete compatibil determinat dac are soluie unic,iar cel care are mai mult de o soluie se numete
compatibil nedeterminat.
'eorem.Dac matricea A este nedegenerat(determinatul matricei A este nenul),atunci sistemul (1) este
compatibil determinat.
Definiie.Dou sisteme de ecuaii liniare cu acelai numr de necunoscute se numesc echialente,dac ambele
snt incompatibile sau compatibile i au unele i aceleai soluii
Definiie.Se numesc trans!ormri de echialen ale sistemului de forma (1! urmtoarele operaii!
1!permutarea a " ecuaii ale sistemului(
2!nmulirea ambelor pri ale ecuaiei sistemului prin oricare numr nenul(
3!adunarea la ambele pri ale unei ecuaii a prilor corespun#toare ale altei ecuaii,nmulite cu un
numr
)etodele numerice de re*olvare a sistemului (1! pot #i divi*ate n 2 clase:metode directe(e+acte! i metode
iterative.
Metodele directe sunt al$oritmi #inii n care numrul de operaii elementare necesare pentru o&inerea unei
soluii a sistemului depinde n mod direct de dimensiunea lui.,e*ultatul #urni*at de metodele directe este a#ectat
doar de erorile de rotunjire,din care cau* sunt mai aplica&ile ori de cte ori numrul de operaii necesare pentru
o&inerea soluiilor este accepta&il.)etodele directe au de*avantajul c la aplicarea lor e+ist pericolul acumulrii
erorilor(a cror estimare este #oarte di#icil!.Acest de*avantaj impune limitarea aplicrii metodelor directe la
re*olvarea doar a sistemelor de dimensiune n$2--..+emple de metode directe:metoda /auss,metoda Cramer!.
Metodele iteratie constau n construirea unui ir de vectori
( ) ( ) ( ) ( )
( ) ..., 2 , 1 , - , ,..., ,
2 1
% x x x x
&
%
n
% % %
conver$ent
ctre soluia e+act 0=( 01, 02,, 0n!
'
a sistemului (1!."toparea procesului iterativ,adic trunc1ierea irului
2x
(")
3,are loc la un indice s,determinat n procesului calculului,n #uncie de preci*ia impus,ast#el nct termenul
cutat x
(s)
s constituie o apro+imaie satis#ctoare a soluiei cutate 0.4rintre cele mai rspndite metode iterative
snt:metoda 5aco&i,metoda /auss%"eidel .a.6eoarece,practic,se poate e#ectua un numr #init de iteraii,erorile de
rotunjire sunt n acest ca* i erori de trunc1iere.)etodele iterative sunt lipsite de neajunsul indicat al celor
directe,dar,n sc1im&,#iecare dintre aceste metode nu ntotdeauna este conver$ent,#iind aplicat la clase concrete
de ecuaii.Aceste metode se utili*ea* (n condiiile asi$urrii unei vite*e sporite de conver$en!,mai ales,pentru
re*olvarea sistemelor 7mari8,de pn la ordinul 1-
9
.4rincipalele avantaje ale metodelor iterative sunt simplitatea i
e#iciena pro$ramrii lor n ca*ul inaplica&ilitii metodelor directe.
!e"olarea sistemelor de ecuaii liniare folosind regula #ramer.
Considerm sistemul de n ecuaii liniare cu n necunoscute Ax=b, (1.1)$ unde

,
_

nn nj n n
in ij i i
n j
n j
a a a a
a a a a
a a a a
a a a a
'
... ...
... ...
... ... ... ... ... ...
... ...
... ...
2 1
2 1
2 2 22 21
1 1 12 11
(%.1)
este matricea coe#icienilor de pe ln$ necunoscute,b=(b1,b2,,bn)
T
-coloana termenilor li&eri,iar x=(x1,x2,
,xn)
T
-vectorul cutat.
(umrul det(A! se numete determinant principal al sistemului (1.1!.
Definiie.Dac A=(aij)n$atunci matricea

,
_

nn n n
n
n
' ' '
' ' '
' ' '
'
...
... ... .... ...
...
...
2 1
2 22 12
1 21 11
:
al crei element ce aparine liniei j i coloanei i este complementul algebric al
elementului aij din matricea A se numete matrice adjunct matricei A.
Teorem.#ie A=(aij)n o matrice nedegenerat,adic &=det(A)'(.$tunci inersa matricei A se obine prin
%mprirea elementelor matricei adjuncte la &$adic
.
1
: 1
' '

;ie c matricea A este nede$enerat,adic &'-.<n acest ca* e+ist matricea invers A
-1
.<nmulind din stn$a
am&ele pri ale sistemului (1! cu matricea A
-1
$o&inem x=A
-1
b,care repre*int soluia acestui sistem.4utem
cpta #ormule pentru calculul necunoscutei ecuaiei (1!.
,
1
: 1
' '

unde

,
_

nn n n
n
n
' ' '
' ' '
' ' '
'
...
... ... .... ...
...
...
2 1
2 22 12
1 21 11
:
este matricea adjunct matricei A.6eci
b ' x
:
1

sau
,
1
2
1
2
1

,
_

,
_

n n
x
x
x

().1) unde aa%numiii determinani secundari (sau auxiliari) &j ai sistemului (2! se o&in din
determinantul & prin nlocuirea coloanei j a acestuia cu coloana termenilor li&eri b$adic au
#orma

+
+
+
+

n
i
nn j n n j n n n
n j j
n j j
n j j
i ij j
a a b a a a
a a b a a a
a a b a a a
a a b a a a
b '
1
1 , 1 , 2 1
3 1 , 3 3 1 , 3 32 31
2 1 , 2 2 1 , 2 22 21
1 1 , 1 1 1 , 1 12 11
... ...
... ...
... ...
... ...

(j=1,2,,n!.
6in e$alitatea ().1) o&inem !ormulele &ramer'
. ,..., ,..., ,
2
2
1
1

n
n
j
j
x x x x (*.1).
,e*ultatul o&inut poate #i #ormulat ast#el:
'eorem(,e$ula Cramer!.Dac determinantul principal & al sistemului (%) este di!erit de (ero,atunci sistemul
este compatibil determinat )i soluia sa se exprim prin !ormulele (*).
6eci re*olvarea unui sistem liniar de #orma (1:! se poate reali*a prin calculul a n*1 determinani de ordinul n.
6eoarece comple+itatea temporal a al$oritmului de calcul pentru #iecare din aceti determinani este
+(n
)
)$re*ult c comple,itatea regulii #ramer este de ordinul +(n
+
)
;ormulele Cramer snt convena&ile pentru cercetri teoretice ale proprietilor soluiilor sistemelor de ecuaii
liniare,dar mai puin convena&ile pentru a#larea numeric a lor,ntruct,pentru valori mari ale lui n,necesit calcule
la&orioase.<n practic sistemele n studiu,de o&icei,se re*olv prin alte metode,cum ar #i cele de tip /auss,cu
comple+itatea temporal de ordinul +(n
,
).
!e"olarea sistemelor de ecuaii liniare$folosind metoda Gauss (metoda eliminrii succesie).
)etoda /auss se &a*ea* pe aducerea sistemului de ecuaii prin trans#ormri elementare la o #orm
ec1ivalent,avnd matrice superior sau in#erior triun$1iular,urmat de re*olvarea sistemului re*ultat prin
procedee recurente,speci#ice,e#iciente.'rans#ormarea sistemului iniial ntr%un sistem de #orma triun$1iular se
reali*ea* cu ajutorul a 3 operaii elementare:
1!intersc1im&area a 2 ecuaii ntre ele.
2!nmulirea unei ecuaii cu o constant nenul.
3!scderea unei ecuaii din alta i nlocuirea celei de a doua ecuaii cu re*ultatul scderii.
'rans#ormarea sistemului este ec1ivalent cu eliminarea succesiv a necunoscutelor din ecuaii i se numete
#a*a eliminrii.,e*olvarea sistemului cu matrice triun$1iular const n determinarea necunoscutelor i su&stituia
lor n ecuaiile sistemului n ordine invers,#iind numit #a*a su&stituiei inverse.4entru e+empli#icare,se consider
un sistem de 3 ecuaii cu 3 necunoscute.

'

+ +
+ +
+ +
3 3 33 2 32 1 31
2 3 23 2 22 1 21
1 3 13 2 12 1 11
b x a x a x a
b x a x a x a
b x a x a x a
(1.%)
care poate #i scris su& #orma matriceal ast#el:

,
_

,
_

,
_

3
2
1
3
2
1
33 32 31
23 22 21
13 12 11
b
b
b
x
x
x
a a a
a a a
a a a
(%.%)
sau Ax=b (%.))$ unde A-matricea sistemului,x-vectorul necunoscutelor,b-vectorul termenilor li&eri.
=a primul pas al etapei eliminrii,urmrim eliminarea necunoscutei x1 din toate ecuaiile sistemului cu e+cepia
primei.4entru aceasta,mprim ecuaia nti la elementul pivot a11(presupus nenul!.
( ) ( )

'

+ +
+ +
+ +
3 3 33 2 32 1 31
2 3 23 2 22 1 21
1
1 3
1
13 2
! 1 (
12 1
b x a x a x a
b x a x a x a
b x a x a x
<n ca*ul cnd a11 nu e di#erit de *ero,reordonm ecuaiile sistemului.
"cdem prima ecuaie nmulit cu primul coe#icient al celei de a 55%a ecuaie,(a21)$din aceasta,i respectiv,scdem
prima ecuaie nmulit cu primul coe#icient din a 555%a ecuaie (a,1!,din aceasta.>&inem ast#el sistemul:
( ) ( )
( ) ( )

'

+
+
+ +
! 1 (
3 3
1
33 2
1
32
! 1 (
2 3
! 1 (
23 2
! 1 (
22
1
1 3
1
13 2
! 1 (
12 1
b x a x a
b x a x a
b x a x a x
(%.))
( )

'


! 1 (
1 1
1
! 1 (
1
! 1 (
11
1 ! 1 (
1
11
1
! 1 (
1
3 , 2 , 3 , 2 , 1 (
3 , 2 , 1 (
b a b b
i j a a a a
a
b
b
j
a
a
a
i i i
ij i ij ij
j
j
)atricea la primul pas:
( ) ( )
( ) ( )
( ) ( )
( )
( )
( )

,
_

,
_

,
_

1
3
1
2
1
1
3
2
1
1
33
1
32
1
23
1
22
1
13
1
12
-
-
1
b
b
b
x
x
x
a a
a a
a a
(%.*)

.liminm necunoscuta x2 din ultima ecuaii.4entru aceasta,mprim nti a 55%a ecuaie la elementul
( )
-
1
22
a ,apoi
scdem linia o&inut,nmulit cu
( ) 1
32
a din ecuaia a 555%a.
( ) ( )
( )
( )
( )
( )
( )

,
_

,
_

,
_

2
3
2
2
1
1
3
2
1
2
33
2
23
1
13
1
12
- -
1 -
1
b
b
b
x
x
x
a
a
a a
(%.-)
( )
( ) ( ) ( )

'


2
2
1
32
1
3
! 2 (
3
22
1
2 ! 2 (
2
2
2
! 2 (
2
3 , 2 (
b a b b
a
b
b
j
a
a
a
j
j
;a*a eliminrii se nc1eie mprind cea de%a 3%a ecuaie la elementul pivot
( ) 2
33
a ,care pentru un sistem cu matricea
nesin$ular(nede$enerat! tre&uie s #ie di#erit de *ero.6up acest pas,o&inem sistemul
( ) ( )
( )
( )
( )
( )
( )
( )
( )
. (
1 - -
1 -
1
2
33
2
3 3
3
3
3
2
2
1
1
3
2
1
2
23
1
13
1
12
a
b
b
b
b
b
x
x
x
a
a a

,
_

,
_

,
_

(%..)
A
(3!
?x=b
())
(%./).
)atricea A
(3!
e superior triun$1iular,iar sistemul o&inut este ec1ivalent cu cel iniial.;a*a su&stituiei inverse
presupune parcur$erea n sens invers a ecuaiilor sistemului cu matricea triu$1iular o&inut n #a*a eliminrii i
sta&ilirea soluiilor sistemului potrivit unui calcul recursiv:
( ) ( )
( ) ( ) ( )
! (
3
1
13 2
1
12
1
1 1
3
2
23
2
2 2
! 3 (
3 3
x a x a b x
x a b x
b x
+


6up cum se o&serv,determinarea componentelor soluiei are loc de la indici mari spre indici mici,#iecare nou
component depin*nd e+plicit numai de componentele determinate anterior.
0ucrul indiidual. " se re*olve prin metodele /auss i Cramer,n pro$ramul )A'@.)A'5CA,i,opional n
lim&ajul de pro$ramare 'ur&o C,urmtorul sistem de ecuaii liniare:

'

+ +
+ +
+ +
2A 2 3
BC D B
B9 3 B 2
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x
.
1.,e*olvarea sistemul n pro$ramul )A'@.)A'5CA D.-

,
_

,
_

,
_

2A
BC
B9
2 1 3
1 D B
3 B 2
3
2
1
x
x
x

A , 1
1.1.,e*olvarea prin metoda Cramer:
EE6eclarm matricea sistemului%A i vectorul termenilor
li&eri%&.
EEA#lm detA%determinantul matricei A .
EEdetA= %3D, detAF-,putem aplica metoda Cramer.
EE 6eclarm matricea A1,o&inut prin nlocuirea coloanei 1 a matricei
A cu vectorul termenilor li&eri%&.
EE6eclarm varia&ila d1 i i atri&uim valoarea determinantului
matricei A1.
(()n mod asemntor procedm i pentru celelalte " matrici '",'*))
EEA#lm soluia +1 dup #ormula metodei Cramer +1=d1Ed(
EEA#lm soluia +2 dup #ormula metodei Cramer +2=d2Ed(
EEA#lm soluia +3 dup #ormula metodei Cramer +3=d3Ed(
EEA#iarea la ecran a soluiei su& #orm de matrice cu o coloan.
EEGectorul soluiilor H.
1.%.,e*olvarea prin metoda /auss:
EE5ntroducem matricea sistemului%A i vectorul termenilor li&eri%&.
EECalculm soluia cu #uncia =inear"olve
EE"oluia sistemului.
EE6escompunerea matricei n dia$onal superioar i in#erioar.
EE"oluia sistemului
%.,e*olvarea sistemului n lim&ajul de pro$ramare C.
%.1.,e*olvarea prin metoda Cramer:
Iinclude Jstdio.1K EE+ncludem bibliotecile , standard stdio-,conio-
IincludeJconio.1. stlib- i mat--(pentru funcii matematice)//
IincludeJmat1.1K
IincludeJstdli&.1K
#loat minor3(int s,int t,#loat LM3NM3N! //funcia minor* cu parametrii!ntregii s,t,matricea *x* 0
cu numere reale, s1numrul liniei,t1numrul coloanei//
2#loat mn( EEDeclarm mn1real
i# (sJ-! 2puts(O.roare,nr.linieiJ-PO!(e+it(-!(3( EEDac s$2,afiea# O.roare,nr.linieiJ-PO,ieire din program
i# (tJ-! 2puts(O.roare,nr.coloaneiJ-PO!(e+it(-!(3( EE t$2,afiea# O.roare,nr.coloaneiJ-PO,ieire din program
i# (sJ2! 22Dac s.2,atunci
2i# (tJ2! mn=poL((%1!,(sQt!!:(LM1%sNM1%tN:LM2NM2N%LM1%sNM2N:LM2NM1%tN!( dac t$",atribuim variabilei mn
valoarea (11)
(sQt)
30
11s 11t
0
""
10
11s"
0
" 11t
4
/n & numerotarea liniilor,coloanelor masiului %ncepe de la
(ero0
else mn=poL((%1!,(sQt!!:(LM1%sNM-N:LM2NM1N%LM1%sNM1N:LM2NM-N!(3( altfel(dac t5"),mn ia valoarea
(11)
sQt
(01%s -0"1101%s 10"2)//
i# (s==2! EEDac s=2,atunci
2i# (tJ2! mn=poL((%1!,(sQt!!:(LM-NM1%tN:LM1NM2N%LM-NM2N:LM1NM1%tN!( EEdac t$",mn i se atribuie valoarea
(11)
sQt
(0- 1%t 01" 1 02"01 11t )//
else mn=poL((%1!,(sQt!!:(LM-NM-N:LM1NM1N%LM-NM1N:LM1NM-N!(3( EEn ca# contrar(t5") mn ia valoarea
(11)
sQt
(0--011 6 021012)
return mn(3( EE7e#ultatul mn e ntors n program8uncia calculea# minorul algerbric al unei
matrici '(aij)*x*,dup o linie i o coloan,cunoscute ca parametru //
#loat inloc3(#loat LM3NM3N,int R,#loat uM3N,#loat vM3NM3N! //8uncia ce d un re#ultat real, inloc*,cu parametrii!
matricea 0 de ordinul * cu elemente reale,
%1numr ntreg,vector1coloan *1dimensional b, matricea v de ordinul *,cu elemente reale//
2int l,m( //9ariabilele de tip ntreg l,m
#or(l=-(lJ3(lQQ! EECiclul for pentru l iniial 2,cu condiia l$*, incrementea# valoarea lui l
2#or(m=-(mJ3(mQQ! Ciclul for pentru m iniial 2,cu condiia m$*, incrementea# valoarea lui ml
vMlNMmN=LMlNMmN(3( :lementului matricei v de pe po#iia MlNMmN i se atribuie valoarea elementului de
pe aceeai po#iie din matricea 0Sfriitul ciclurilor for//
#or (l=-(lJ3(lQQ! EE,iclul #or cu valoarea iniial l52,care se repet dac l$*,cu pasul 1(incrementea# l)
2vMlNMRN=uMlN(3( //:lementului matricei v de pe linia l,coloana R i se atribuie valoarea elementului de pe
linia ; al vectorului1coloan b
return vM3NM3N EE)ntoarce n program matricea nou 98uncia formea# o matrice de ordinul * 9,prin
(3( nlocuirea ntr1o matrice dat <,a coloanei = cu vectorul1coloan >
#loat det3(#loat LM3NM3N! EE8uncia numeric det*,cu parametru matrice de ordinul *,cu numere reale
2#loat d( EEDeclarm variabila local de tip real d,
int j( i variabila de tip ntreg j
d=-.-( #or(j=-(jJ3(jQQ! EE+niiali#m d cu valoarea 22 i ciclul for cu j52,
care se repet ct timp j$*,mrind valoarea lui l cu unitatea
2d=dQLM-NMjN:minor3(-,j,L!(3( 9ariabilei d i se atribuie sum dintre valoarea vec-e(de la etapa
precedent) i produsul elementului matricei 0 de pe linia 2,
coloana j cu minorul algebric al acestui element//
return d(3( EE)ntoarce re#ultatul n programul principal8uncia det* calculea#
determinantul matricei de ordinul *,cu de#voltarea dup prima linie a matricei(linia 2 n ,),ntruct n ca#ul dat
se poate utili#a i important e re#ultatul//
void main(! EE?rogramul principal
2#loat aM3NM3N,a1M3NM3N,a2M3NM3N,a3M3NM3N,&M3N,+M3N( EEDeclararea variabilelor globale!matricele de ordinul *
a,a1,a",a*,vectorii1coloan b,x
int i,j( variabilele de tip ntreg i,j
clrscr(!( @terge de pe ecran re#ultatele programului anterior
puts(O,e*olvarea sistemului de ecuatii liniare prin metoda CramerO!( //'fiea# mesajul din g-ilimele,i
trece
puts(Ointroduceti coe#icientii de pe lin$a necunoscutele +1,+2,+3:O!( cursorul din rnd nou//
#or(i=-(iJ3(iQQ! EE,iclul for pentru i,iniial egal cu 2,cu incrementare,att timp ct i$*
#or(j=-(jJ3(jQQ! ,iclul for pentru j cu aceleai cu condiii ca i pentru i
2print#(Ocoe#icientul lui +Si din ecuatia Si=O,jQ1,iQ1!(scan#(OS#O,TaMiNMjN!(3( EE'fiarea mesajului i
introducerea coeficienilor de pe
lng x1,x",x* din ecuaiile 1,",*
puts(Ointroduceti termenii li&eriO!( EE'fiarea mesajului Ointroduceti termenii li&eriO
#or(i=-(iJ3(iQQ! 2print#(O&Si=O,iQ1!( EE+ntroducerea elementelor vectorului b
scan#(OS#O,T&MiN!(3(print#(OUnO!( de la tastatur,cu ajutorul unui ciclu for(i52,ct i$*,incrementea# i)

puts(Omatricea sistemului%AO!( EE'fiarea mesajului Amatricea sistemului%A8
#or(i=-(iJ3(iQQ! EE,iclul for pentru parcurgerea dup linii a matricei sistemului
2#or(j=-(jJ3(jQQ! EE ,iclul for pentru parcurgerea dup coloane a matricei sistemului
print#(OS%V.1#O,aMiNMjN!(print#(OUnO!(3( EE'fiarea pe B po#iii,1 cifr dup virgul a elementelor matricei
i# (det3(a!==-! EE ,alculea# determinatului matricei ' i verific dac e egal cu #ero
2puts(Odeterminantul matricei A e nulPWu se aplica metoda CramerO!(
$etc1(!(e+it(-!(3( EEDac det'52 afiea#Odeterminantul matricei A e nulP
Wu se aplica metoda Cramer8.+eire din program
print#(OdetA=S.2#UnO,det3(a!!( EE'fiarea determinatului det',cu preci#ia de ordinul 12
1"
puts(OUnvectorul termenilor li&eri%&O!( EE'fiarea vectorului termenilor liberi b,cu ajutorul
#or(i=-(iJ3(iQQ! 2print#(OS.1#O,&MiN!(print#(OUnO!(3( ciclului for pentru i.
inloc3(a,-,&,a1!( EECbinerea matricei a1,prin nlocuirea n matricea a
a coloanei 2 cu vectorul b (cu funcia declarat anterior inloc*
puts(OUnmatricea A1O!( EE 'fiarea matricei '1,precedat de mesajul Omatricea A1O,cu
#or(i=-(iJ3(iQQ! ajutorul ciclurilor for de parcurgere dup linii,
2#or(j=-(jJ3(jQQ! respectiv dup coloane a matricei
print#(OS%V.1#O,a1MiNMjN!(print#(OUnO!(3(
print#(OdetA1=S.2#UnO,det3(a1!!( 'fiarea determinantului matricei '1 cu preci#ia pn la ordinul 12
1"

inloc3(a,1,&,a2!( :::'celai procedeu se execut i pentru matricele a",a*DDD


puts(OUnmatricea A2O!( :::prin nlocuirea coloanelor 1,respectiv " DDD
#or(i=-(iJ3(iQQ!
2#or(j=-(jJ3(jQQ!
print#(OS%V.1#O,a2MiNMjN!(print#(OUnO!(3(
print#(OdetA2=S.2#UnO,det3(a2!!(
inloc3(a,2,&,a3!(
puts(OUnmatricea A3O!(
#or(i=-(iJ3(iQQ!
2#or(j=-(jJ3(jQQ!
print#(OS%V.1#O,a3MiNMjN!(print#(OUnO!(3(
print#(OdetA3=S.2#UnO,det3(a3!!(
+M-N=det3(a1!Edet3(a!( EE+niiali#area vectorului necunoscutelor x! variabilei de pe
po#iia 2 i se atribuie re#ultatul mpririi det'1 la det'
+M1N=det3(a2!Edet3(a!( variabilei de pe po#iia 11re#ultatul mpririi det'" la det'
+M2N=det3(a3!Edet3(a!( variabilei de pe po#iia "1re#ultatul mpririi det'* la det'
print#(OUn">=X'5A (Hi=detAiEdetA(i=1,2,3!,vectorul necunoscutelor%HUnO!( EE'fiarea soluiilori(vectorului
#or(i=-(iJ3(iQQ! necunoscutelor cu ciclul for,de parcurgere dup linii
2print#(O+Si=S.2#O,iQ1,+MiN!(print#(OUnO!(3(
$etc1(!(3 EE'fiarea re#ultatelor pn la acionarea unei taste//
%.%,e*olvarea prin metoda /auss:
IincludeJstdio.1K
IincludeJconio.1K
IincludeJstdli&.1K
IincludeJmat1.1K
void interc1an$e(int l1,int l2,#loat 'M3NMBN! EE8uncia interc-ange,cu parametrii l1,l"1numere ntregi
matricea & *xE,cu numere reale+ntersc-imb liniile ;1 i ;" ale matricei &
2int i,j,temp(#loat au+( EEvariabilele locale i,j,temp1de tip ntreg,aux1de tip real(flotant)
#or(j=-(jJB(jQQ! EE,iclul for cu variabila j,pentru parcurgerea coloanelor matricei
2au+='Ml1NMjN( EE9ariabilei aux i se atribuie elementul de pe po#iia l1j,
'Ml1NMjN='Ml2NMjN( elementul de pe po#iia l1j ia valoarea elementului de pe po#iia l"j,
'Ml2NMjN=au+(3(3( elementului de pe po#iia l"j i se atribuie valoarea variabilei aux
#loat div(int l,#loat tM3NMBN! EE8uncia div cu parametrii ;1de tip ntreg,t1matrice *xE cu numere reale
2#loat d,p(int i,j,au+( EEvariabilele d,p1de tip real,i,j,aux1de tip ntreg
p=tMlNMlN( EE9ariabilei p i se atribuie valoarea elementului pivot &;;(
i# (p==-! 2#or(i=lQ1(iJ3(iQQ! EEDac p1nul,caut(cu un ciclu for) prima linie cu elementul
i# (tMiNMlNP=-! 2p=tMiNMlN(interc1an$e(l,i,t!(&reaR(3(3( din coloana ; nenul,i intersc-imb linia ; cu linia dat
#or(j=l(jJB(jQQ! EE ,iclul for cu j iniial egal cu ;,condiia
j$E,
la fiecare pas incrementat(parcurgerea coloanelor)
tMlNMjN=tMlNMjNEp( EE:lementul liniei ;,coloana F e mprit la p(elementul pivot al liniei ;)
EE#or(i=-(iJ3(iQQ!
EE 2#or(j=-(jJB(jQQ! EE2print#(OSV.2#O,tMiNMjN!(3(print#(OUnO!(3(EE
return tM3NMBN(3 EE )n programul principal e ntoars matricea
modificat
#loat scadere-(int l,int l1,#loat tM3NMBN! EE8uncia scadere2,cu parametrii ;1,;"1ntregi,matricea *xE &1 cu numere
realeScade din linia ; linia ;1,(pentru aducerea matricei la forma superior triung-iular)
2int i,j,pos(#loat p( EEvariabilele de tip ntreg1i,j,pos,p1de tip real
i# (tMlNM-NP=-! 2p=tMl1NM-NEtMlNM-N(pos=-(3( EEDac elementul t;21nenul, p ia valoarea mpririi t;12 la t;2,p52
i# (tMlNM-N==-! #or(j=1(jJB(jQQ! EEDac elementul t;21nul, parcurge coloanele j cu ciclul #or i afl
i# (tMlNMjNP=-! primul element nenul din linia dat
2p=tMl1NMjNEtMlNMjN(pos=j(&reaR(3( lui p i se atribuie t;1 j /t;j i pos pstrea# valoarea j (po#iia)
#or(j=pos(jJB(jQQ! EESe parcurg coloanele de la coloana pos,cu variabila j,
2tMl1NMjN=tMl1NMjN%(tMlNMjN:p!(3( EEDin elementele t;1j se scade t=j/p,re#ultatul e pstrat n t; j1.
return tM3NMBN(3( EE)n programul principal e ntors masivul(matricea) modificat
void /auss3+3(#loat tM3NM3N,#loat uM3N! EE8uncia Gauss*x*,cu parametrii!matricea &*H*,
vectorul I(cu numere reale)7e#olv un sistem de ecuaii liniare prin metoda Gauss,,fiind date matricea
sistemului,vectorul termenilor liberi
2int l,c( EEDeclararea variabilelor ;,,1de tip ntreg,
#loat t+M3NMBN,sM3N( matricea &H5(tx+F)*HE,vectorul cu * elemente,cu numere reale
puts(O,e*olvarea sistemului de ecuatii liniare prin metoda /aussO!( EE 'fiea# mesajul din
parante#e,
print#(Omatricea sistemului%AUnO!(
#or(l=-(lJ3(lQQ! EE,u ciclurile for e parcurs matricea dup linii i coloane i afiat
2#or(c=-(cJ3(cQQ!
print#(OS%V.1#O,tMlNMcN!(print#(OUnO!(3(
puts(Ovectorul termenilor li&eri%&O!( EE'fiea# mesajul din parante#e
#or(l=-(lJ3(lQQ! 2print#(OS.1#O,uMlN!(print#(OUnO!(3( EE,u ciclul for e parcurs i afiat vectorul termenilor liberi
puts(O)atricea e+tinsaO!(
#or(l=-(lJ3(lQQ! EE'tribuim elementelor matricei extinse &H,elementele
2#or(c=-(cJ3(cQQ! 2t+MlNMcN=tMlNMcN( corespun#toare din matricea & i vectorul I,
t+MlNM3N=uMlN(3(3( parcurgem liniile i coloanele cu ciclurile for
#or(l=-(lJ3(lQQ!
2#or(c=-(cJB(cQQ! print#(OS%V.2#O,t+MlNMcN!(print#(OUnO!(3( EE'fiarea matricei extinse
$etc1(!(
print#(OUn4asul 1:impartim ecuatia 1 la elementul pivot a11(nenul!,UnO!(
print#(Osi eliminam +1 din ecuatiile 2 si 3:UnO!( EE:xplicarea algoritmului(mesajele din parante#e)
div(-,t+!( EE )mprim prima ecuaie( linie a matricei extinse) (2) la elementul
pivot
EE#or(l=-(lJ3(lQQ!
EE2#or(c=-(cJB(cQQ! 2print#(OSV.2#O,t+MlNMcN!(3(print#(OUnO!(3($etc1(!(
scadere-(-,1,t+!( EE :liminm din ecuaiile ",*(liniile 1," ale matricei &H) necunoscuta
H1
scadere-(-,2,t+!(
#or(l=-(lJ3(lQQ! EE'fiea#a matricea extins obinut
2#or(c=-(cJB(cQQ! 2print#(OS%V.2#O,t+MlNMcN!(3(print#(OUnO!(3(
puts(OUn4asul 2:impartim ecuatia 2 la elementul pivot a22(nenul!,O!(
print#(Osi eliminam necunoscuta +2 din ecuatia a treia:UnO!( EE'fiea# explicarea pasului "
div(1,t+!( EE)mprim ecuaia "(linia 1),la elementul pivot nou
scadere-(1,2,t+!( EE:limin din ecuaia *(linia " din &H) necunoscuta x"
#or(l=-(lJ3(lQQ!
2#or(c=-(cJB(cQQ! print#(OS%V.2#O,t+MlNMcN!(print#(OUnO!(3( EE'fiarea matricei extinse obinute
i# ((t+M2NM2N==-!TT(tM2NM3NP=-!! 2print#(O"istem $resitP -:H3=S.2#O,tM2NM3N!($etc1(!(e+it(-!(3
EECnd coeficientul lui x* e nul,dar membrul drept al ecuaiei nenul,afiea# mesajul erorii,i iese n fereastra
cu textul programului//
i# ((t+M2NM2N==-!TT(tM2NM3N==-!! EE,nd linia "(ecuaia *) are elementele egale cu #ero(x* poate lua o valoare
arbitrar,dac se cere un re#ultat exact
2print#(OH1 si H2 depind de valoarea H3.6ati o valoare(numar real! pentru
H3:O!(scan#(OS#O,TsM2N!(3( EE+ntroducerea unei valori numerice pentru H*//
i# (t+M2NM2NP=-! EEDac &H""1nenul (matrice nesingular),
print#(OUn4asul 3:5mpartim ecuatia 3 la a33(nenul!UnO!(
div(2,t+!( mprim ecuaia *(linia ") la elementul pivot
#or(l=-(lJ3(lQQ!
2#or(c=-(cJB(cQQ! print#(OS%V.2#O,t+MlNMcN!(sM2N=t+M2NM3N(print#(OUnO!(3( EE'fiarea matricei extinse finale
"M1N=t+M1NM3N%(t+M1NM2N:sM2N!( EE'flarea necunoscutelor H"(S314) i H1(S324)
sM-N=t+M-NM3N%t+M-NM2N:sM2N%t+M-NM1N:sM1N( exprimate prin
H*(S3"4)
EEputs(O)atricea sistemului%AO!(
EE#or(l=-(lJ3(lQQ!
EE2#or(c=-(cJ3(cQQ! print#(OS%V.2#O,tMlNMcN!(print#(OUnO!(3(
EEprint#(OGectorul termenilor li&eri:O!(
EE#or(l=-(lJ3(lQQ! 2print#(OS%V.2#O,uMlN!(3( $etc1(!(EE
print#(OUn"olutiile(vectorul necunoscutelor H!:O!( EEJesajul despre afiarea soluiilor
#or(l=-(lJ3(lQQ! 2print#(O+Si=S.2# O,lQ1,sMlN!(3(3( EE'fiarea soluiilor(vectorul necunoscutelor)
void main(! EE>locul principal al programului
2#loat aM3NM3N,&M3N( EEDeclararea variabilelor
1matricea de ordinul * a,vectorul termenilor liberi b,cu numere reale,
int i,j( i,j1de tip ntreg,
clrscr(!(
puts(O,e*olvarea unui sistem de ecuatii liniareO!(
puts(Ointroduceti coe#icientii necunoscutelor +1,+2,+3:O!(
#or(i=-(iJ3(iQQ! EE+ntroducerea coeficienilor necunoscutelor H1,H",H*
#or(j=-(jJ3(jQQ!
2print#(Ocoe#icientul lui +Si din ecuatia Si=O,jQ1,iQ1!(scan#(OS#O,TaMiNMjN!(3( EE'tribuirea valorilor introduse
elementelor matricei sistemului
puts(Ointroduceti termenii li&eriO!( EE+ntroducerea termenilor liberi
#or(i=-(iJ3(iQQ! 2print#(O&Si=O,iQ1!(scan#(OS#O,T&MiN!(3(print#(OUnO!( EE'tribuirea valorilor
elementelor
vectorului b
/auss3+3(a,&!( EE'pelul funciei Gauss*x* pentru matricea a i vectorul b
$etc1(!(3 EESfritul programului
&onclu(ie'.#ectuarea acestei lucrri a permis nele$erea al$oritmilor metodelor Cramer i /auss,aplicarea lor la
re*olvarea sistemului de ecuaii propus,n pro$ramul )at1ematica,i n lim&ajul de pro$ramare C.=a re*olvarea
sistemului de ecuaii n )at1ematica am #olosit #uncii de#inite ca
Det,Jatrix8orm,;inearSolve,;IDecomposition,;I>ac%Substitution,re*ultatul o&inut prin am&ele metode e
acelai,la metoda Cramer ns a tre&uit introducerea matricelor A1,A2,A3,pentru calcularea determinanilor
secundari,#olosii n #ormulele #inale."crierea pro$ramelor care s re*olve acest sistem prin am&ele metode a cerut
cunoaterea mai detaliat a al$oritmilor metodelor date,de#inirea unor #uncii noi pentru calculul
determinanilor(la metoda Cramer!,scderea liniilor unei matrici(ecuaiilor sistemului la metoda
/auss!,intersc1im&area liniilor matricei(ecuaiilor sistemului!,nlocuirea coloanei matricei sistemului cu vectorul
termenilor li&er.4ro$ramul )at1ematica,permite #olosirea operaiilor i #unciilor matematice,vi*uali*area
re*ultatului,i posi&ilelor erori sintactice sau lo$ice n aceeai #ereastr i se e#ectua* calculele ntr%un timp
scurt.=a scrierea pro$ramelor de re*olvare,n C,a tre&uit de ales i de anali*at unele ca*uri particulare ale
sistemului de ecuaii,coe#icienii #iind introdui de ctre utili*ator,ale$erea unei metode simple,dar i descrise
corect pentru calculul #unciilor noi,i cunotine n pro$ramarea n C,pre*ena erorilor sintactice sau lo$ice,#iind
o&servat dup compilarea i e+ecutarea pro$ramului.,e*olvarea prin aceste 2 metode permite #ormarea propriei
conclu*ii,privind metoda mai e#icient,mai aplica&il i compararea cu cealalt metod.Am o&servat c n ca*ul
dat mai e#icient e metoda /auss,deoarece se #olosete sistemul iniial de ecuaii,nu e nevoie de calcularea
determinanilor,ci de operarea cu ecuaiile sistemului.<n re*olvarea dat prin metoda /auss,am o&inut nti soluia
+3,apoi +2 i +1,deoarece am adus matricea sistemului la #orma superior triun$1iular.Aducnd matricea respectiv
la #orm in#erior triun$1iular,se poate determina nti soluia +1.4entru re*olvarea sistemelor mai comple+e,din
mai multe ecuaii,metoda Cramer necesit calcule mai comple+e,deducerea unor #ormule de calcul aplica&ile,iar
pentru metoda /auss%al$oritm de a aduce matricea sistemului la #orma superior%triun$1iular(mai des utili*at !.
Ministerul Educaiei al Republicii Moldova
Universitatea de Stat din Moldova
Facultatea de Fizic
Catedra de Fizic Aplicat i Informatic
ucrarea de laborator nr!"
la metode numerice de calcul la tema#
$Rezolvarea sistemelor de ecuaiil liniare
prin metoda Cramer i prin metoda %auss&
A efectuat studentul 'r!"" (I
ector universitar#
Cotelea )eaceslav
Curlicovsc*i Alisa



C1iinu 2-11