Свойство квадратной матрицы - Pascal

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Помогите составить программу проверки свойства квадратной матрицы A*A-1=E, где E-единичная матрица

Решение задачи: «Свойство квадратной матрицы»

textual
Листинг программы
const n=5;
type matr=array[1..n,1..n] of real;
function Det(size:integer; var m:matr):real;forward;
function AlgDop(size:integer;m:matr;row,col:integer):real;
var temp:matr;     {нахождение алгебраических дополнений}
    i,j:integer;
begin
for i:=1 to row-1 do
 begin
  for j:=1 to col-1 do temp[i,j]:=m[i,j];
  for j:=col+1 to size do temp[i,j-1]:=m[i,j];
end;
for i:=row+1 to size do
 begin
  for j:=1 to col-1 do temp[i-1,j]:=m[i,j];
  for j:=col+1 to size do temp[i-1,j-1]:=m[i,j];
end;
if (row+col) mod 2 = 0 then AlgDop := det(size-1,temp)
else AlgDop := -det(size-1,temp);
end;
 
function Det(size:integer; var m:matr):real;   {нахождение определителя}
var i:integer;
    r:real;
begin
if size=1 then Det:=m[1,1]
else
if size=2 then Det:=(m[1,1]*m[2,2]-m[1,2]*m[2,1])
else
 begin
  r:=0;
  for i:=1 to size do
  r:=r+m[1,i]*AlgDop(size,m,1,i);
  Det:=r;
 end;
end;
 
procedure ObrMatr(a:matr;var am:matr);
{нахождение обратной матрицы}
var i,j:integer;
    dt:real;
begin
dt:=det(n,a);
for i:=1 to n do
for j:=1 to n do
am[i,j]:=AlgDop(n,a,j,i)/dt;
end;
var a,ao,e:matr;
    i,j,k:byte;
begin
randomize;
writeln('Матрица A:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=5*random;
    write(a[i,j]:5:1);
   end;
  writeln;
 end;
writeln('Обратная матрица:');
ObrMatr(a,ao);
for i:=1 to n do
 begin
  for j:=1 to n do
  write(ao[i,j]:5:1);
  writeln;
 end;
for i:=1 to n do
for j:=1 to n do
 begin
  e[i,j]:=0;
  for k:=1 to n do
  e[i,j]:=e[i,j]+a[i,k]*ao[k,j];
 end;
writeln('Матрица E=A*Ao:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(e[i,j]:5:1);
  writeln;
 end;
end.

Объяснение кода листинга программы

  1. В первой строке кода определяется переменная n, которая будет использоваться для определения размера матрицы.
  2. Затем определяется тип данных matr, который представляет собой массив целых чисел.
  3. Далее определяется функция Det, которая вычисляет определитель матрицы. Эта функция использует вложенную функцию AlgDop, которая вычисляет алгебраические дополнения.
  4. В функции ObrMatr определяется обратная матрица. Сначала вычисляется определитель матрицы размером n. Затем происходит итерация по всем элементам матрицы и их значения присваиваются соответствующим элементам обратной матрицы.
  5. В конце кода происходит генерация случайной матрицы A и ее обратной матрицы Ao. Затем вычисляется матрица E, которая является результатом умножения матрицы A на ее обратную матрицу Ao.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы