Вычисление определителя методом Гаусса

Программа предназначена для вычисления определителя n -го порядка

методом Гаусса с выбором главного элемента по всей матрице.

Вычислительная схема метода:

a ´ ij = aij , k = 1, 2, …, n – 1; i = k + 1, …, n; j = k + 1, …, n; d = .

П р о г р а м м а

Program OPRED;

const nmax = 10;

var A: array [1..nmax,1..nmax] of real;

i,j,k,b,n,c:integer;

e,d,p,s,g:real;

label vyh;

Begin

writeln('программа вычисления определителя методом Гаусса');

writeln;

write('введите размерность матрицы А: n=');

readln(n);

writeln('ввод матрицы А:');

for i:=1 to n do

for j:=1 to n do

Begin

write('A[',i,',',j,']=');

readln(A[i,j]);

end;

d:=1;

for k:=1 to n do

Begin

e:=0;

b:=0;

c:=0;

for j:=k to n do

for i:=k to n do

if e<abs(A[j,i]) then

Begin

e:=abs(A[j,i]);

b:=j;

c:=i;

end;

if e=0 then

Begin

writeln;

writeln('ОПРЕДЕЛИТЕЛЬ РАВЕН НУЛЮ');

goto vyh;

end;

if k<b then

Begin

for j:=k to n do

Begin

s:=A[k,j];

A[k,j]:=A[b,j];

A[b,j]:=s

end;

d:=-d;

end;

if k<c then

Begin

for j:=k to n do

Begin

s:=A[j,k];

A[j,k]:=A[j,c];

A[j,c]:=s

end;

d:=-d;

end;

for i:=k+1 to n do

Begin

g:=A[i,k]/A[k,k];

for j:=k+1 to n do A[i,j]:=A[i,j]-A[k,j]*g;

end;

end;

p:=1;

for i:=1 to n do p:=p*A[i,i];

d:= d*p;

writeln;

writeln('ОПРЕДЕЛИТЕЛЬ D =',d:10:5);

vyh:readln;

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: