Re: Ранг матрицы и обратная матрица.
Добавлено: 22 апр 2007, 20:19
flay_er
Ранг матрицы препод у меня принял, теперь осталось только написать прогу для вычисления обратной матрицы.
Ранг матрицы:
const
p = 4;
q = 4;
var
min1, min2, min3, min4, min5, min6, min7, min8, min9, min10, min11, min12, min13, min14: integer;
i, j: integer;
a:array[1..4,1..4] of integer;
procedure OutMatrix(m : array[1..4,1..4] of integer); {Вывод матрицы}
BEGIN
writeln;
for j := 1 to p do
begin
for i := 1 to q do
write( m[i, j] : 7 );
writeln;
end;
end;
begin
for i:=1 to p do
for j:=1 to q do
begin
write('a[',i,', ',j,'] = '); read(a[i,j]);
end;
{Вывод исходных матриц}
writeln(' Матрица "a" ');
OutMatrix(a);
writeln(' ');
min1 := a[1, 1] * a[2, 2] - a[2, 1] * a[1, 2];
min2 := a[1, 2] * a[2, 3] - a[2, 2] * a[1, 3];
min3 := a[1, 3] * a[2, 4] - a[2, 3] * a[1, 4];
min4 := a[2, 1] * a[3, 2] - a[3, 1] * a[2 ,2];
min5 := a[2, 2] * a[3, 3] - a[3, 2] * a[2, 3];
min6 := a[2, 3] * a[3, 4] - a[3, 3] * a[3, 4];
min7 := a[3, 1] * a[4, 2] - a[4, 1] * a[3, 2];
min8 := a[3, 2] * a[4, 3] - a[4, 2] * a[4, 3];
min9 := a[3, 3] * a[3, 4] - a[4, 3] * a[4, 4];
min10 := a[1, 1] * a[2, 2] * a[3, 3] + a[1, 2] * a[2, 3] * a[3, 1] + a[2, 1] * a[1, 2] * a[3, 3] - a[1, 3] * a[2, 2] * a[3, 1] + a[2, 1] * a[1, 2] * a[3, 3] - a[2, 3] * a[3, 2] * a[1, 1];
min11 := a[1, 2] * a[2, 3] * a[3, 4] + a[1, 3] * a[2, 4] * a[3, 2] + a[2, 2] * a[1, 3] * a[3, 4] - a[1, 4] * a[2, 3] * a[3, 2] + a[2, 2] * a[1, 3] * a[3, 4] - a[2, 4] * a[3, 3] * a[1, 2];
min12 := a[2, 1] * a[3, 2] * a[4, 3] + a[2, 2] * a[3, 3] * a[4, 1] + a[3, 1] * a[2, 2] * a[4, 3] - a[2, 3] * a[3, 2] * a[4, 1] + a[3, 1] * a[2, 2] * a[4, 3] - a[3, 3] * a[4, 2] * a[2, 1];
min13 := a[2, 2] * a[3, 3] * a[4, 4] + a[2, 3] * a[3, 4] * a[4, 2] + a[3, 2] * a[2, 3] * a[4, 4] - a[2, 4] * a[3, 3] * a[4, 2] + a[3, 2] * a[2, 3] * a[4, 4] - a[3, 4] * a[4, 3] * a[2, 2];
min14 := a[1, 1] * ( a[2, 2] * a[3, 3] * a[4, 4] + a[2, 3] * a[3, 4] * a[4, 2] + a[2, 4] * a[3, 2] * a[4, 3] - a[2, 4] * a[3, 3] * a[4, 2] - a[2, 2] * a[3, 4] * a[4, 3] - a[2, 3] * a[3, 2] * a[4, 4] ) -
a[2, 1] * ( a[1, 2] * a[3, 3] * a[4, 4] + a[1, 3] * a[3, 4] * a[4, 2] + a[1, 4] * a[3, 2] * a[4, 3] - a[1, 4] * a[3, 3] * a[4, 2] - a[1, 2] * a[3, 4] * a[4, 3] - a[1, 3] * a[3, 2] * a[4, 4] ) +
a[3, 1] * ( a[1, 2] * a[2, 3] * a[4, 4] + a[1, 3] * a[2, 4] * a[4, 2] + a[1, 4] * a[2, 2] * a[4, 3] - a[1, 4] * a[2, 3] * a[4, 2] - a[1, 2] * a[2, 4] * a[4, 3] - a[4, 4] * a[2, 2] * a[1, 3] ) -
a[4, 1] * ( a[1, 2] * a[2, 3] * a[3, 4] + a[1, 3] * a[2, 4] * a[3, 2] + a[3, 3] * a[2, 2] * a[1, 4] - a[1, 4] * a[2, 3] * a[3, 2] - a[1, 2] * a[2, 4] * a[3, 3] - a[3, 4] * a[2, 2] * a[1, 3] );
writeln(' min1 = ', min1, ' min2 = ', min2, ' min3 = ', min3);
writeln(' min4 = ', min4, ' min5 = ', min5, ' min6 = ', min6);
writeln(' min7 = ', min7, ' min8 = ', min8, ' min9 = ', min9);
writeln(' min10 = ', min10, ' min11 = ', min11, ' min12 = ', min12);
writeln(' min13 = ', min13, ' min14 = ', min14);
writeln(' ');
if (min10=0) and (min11=0) and (min12=0) and (min13 = 0) then
begin
writeln('Ранг матрицы = 2'); writeln(' ');
end;
if min14 = 0 then
begin
writeln('Ранг матрицы = 3'); writeln(' ');
end
else
begin
writeln('Ранг матрицы = 4'); writeln(' ');
end;
END.