Documente Academic
Documente Profesional
Documente Cultură
4
Tema: Rezolvarea sistemelor de ecuaţii algebrice liniare prin metoda
lui Gauss.
I. Formularea problemei.
Fie sistemul de ecuaţii algebrice liniare
AX=B (1)
Unde A=(aij), i,j=1,2,...,n este o matrice regulată de ordinul n (det A ≠ 0),
B=(b1,b2,...bn)- un vector cunoscut, iar X –vector necunoscut. Se cere de
rezolvat sistemul dat prin metode directe. În lucrarea dată soluţia sistemului se
poate determina şi după formula X=A-1B, calculîndu - se în prealabil A-1.
Metodele directe se caracterizează prin aceea că descrie algoritmi, care
permit să determinăm soluţia exactă în rezultatul efectuării unui număr finit de
operaţii.
Soluţia se căutată cu exactitatea dată ε (ε=10-3- 10-5), folosind în acest scop 2
metode.
1 1 1 6 1 1 1 6
⇔ A2 = 0 − 3 2 ( )
0 × 1 ⇔ ⇔ A3
3
= 0 − 3 2
0
0 1 − 3 − 7 ←↓ 0 0 − 7 / 3 − 7
În urma calculelor am obţinut sistemul:
x + y + z = 6, x = 1,
− 3 y + 2 z = 0, ⇔ y = 2,
− 7 / 3z = −7, y = 3,
Răspuns: x = 1, y = 2, z = 3.
procedure pivot;
begin
l:=k;
for i:=k+1 to n do
if abs(a[i,k])>abs(a[l,k]) then l:=i;
begin
det:=-det;
for j:=k to n+1 do
begin
s:=a[k,j];
a[k,j]:=a[l,j];
a[l,j]:=s;
end;
end;
end;
begin
writeln('----------Metoda GAuss--------');
write('n=');read(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
write('a[',i:2,',',j:2,']=');read(a[i,j]);
end;
writeln('b[',i:2,']=');read(a[i,n+1]);
end;
det:=1;
for k:=1 to n-1 do
begin
pivot;
t:=a[k,k];
for i:=k+1 to n do
begin
for j:=k+1 to n+1 do
a[i,j]:=a[i,j]-a[i,k]*a[k,j]/t;
if abs(a[i,j])<eps then a[i,j]:=0;
a[i,k]:=0;
end;
writeln('k=',k:2);
for i:=1 to n do
begin
for j:=1 to n+1 do
write(a[i,j]:10:4);
writeln;
end;
end;
x[n]:=a[n,n+1]/a[n,n];
det:=det*a[n,n];
for i:=n-1 downto 1 do
begin
s:=0;
for j:=i+1 to n do s:=s+a[i,j]*x[j];
x[i]:=(a[i,n+1]-s)/a[i,i];
det:= det*a[i,i];
end;
for i:=1 to n do
write('x[',i:2,']=',x[i]:10:4);
writeln('det. A=',det:10:4);
readln
end.