звідки .
2. Знайти матрицю, обернену до матриці.
A =
Знаходимо спочатку визначник матриці A:
= = 1 (-1)4+1 = (-1) == (-1)
1 (-1)3+1 = -1 0. Отже обернена матриця існує.Знаходимо алгебраїчні доповнення:
A11=(-1)1+1
= 2 A21=(-1)2+1 = -1A31=(-1)3+1
= -1 A41=(-1)4+1 = -1A12=(-1)1+2
= -1 A22=(-1)2+2 = 1A32=(-1)3+2
= 0 A42=(-1)4+2 = 0A13=(-1)1+3
= -1 A23=(-1)2+3 = 0A33=(-1)3+3
= 1 A43=(-1)4+3 = 0A14=(-1)1+4
= -1 A24=(-1)2+4 = 0A34=(-1)3+4
= 0 A44=(-1)4+4 = 1Підставляючи у формулу (3) знайдені значення, одержуємо:
A-1 =
Перевірка. Одержаний результат можна легко перевірити.
Оскільки, AA-1 = E, де E –це одинична матриця, то:
A
A-1 = = ==
Отже, обернену матрицю знайдено вірно.
Отже, висвітливши основні поняття обернених матриць, можна прийти до висновку, що процес знаходження обернених матриць за допомогою формули є швидким і простим методом аналізу стану певного об’єкта.
Список використаної літератури
1. Ващук Ф.Г., Поляк С.С. Практикум з вищої математики. - Ужгород, 2005. 6 – 24 с.
2. Курош А.Г. Курс высшей алгебры. - Москва, 1968. 95–99 с.
Лістінг програми
Program InversMatrix;
const max_size=10; {max size matrix }
type matr=array[1..max_size,1..max_size] of real;
label 1;
var
a,invers,tmp_matrix : matr;
size : Integer; {size matrix}
i,j :Integer;
dt : real;
procedure PrintMatr(m:matr;n:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(m[i,j]:8:3);
writeln;
end;
end;
Function Pow (x:Integer; y:Integer):Integer;
var
i,z :Integer;
begin
z := 1;
for i:=1 to y do
z := z * x;
Pow := z;
end;
procedure GetMatr(a:matr; var b:matr; m,i,j:integer);
var ki,kj,di,dj:integer;
begin
di:=0;
for ki:=1 to m-1 do
begin
if (ki=i) then di:=1;
dj:=0;
for kj:=1 to m-1 do
begin
if (kj=j) then dj:=1;
b[ki,kj]:=a[ki+di,kj+dj];
end;
end;
end;
Function Determinant(a:matr;n:integer):real;
var i,j,k:longint;
b:matr;
d : real;
begin
d:=0; k:=1;
if (n<1) then
begin
writeln('Determinant: Cann''t run. N=',n); halt;
end;
if (n=1)
then d:=a[1,1]
else if (n=2)
then d:=a[1,1]*a[2,2]-a[2,1]*a[1,2]
else { n>2 }
for i:=1 to n do
begin
GetMatr(a,b,n,i,1);
{writeln('i=',i,' a[',i,',1]=',a[i,1]);
PrintMatr(b,n-1);}
d:=d+k*a[i,1]*Determinant(b,n-1);
k:=-k;
end;
Determinant:=d;
end;
begin
Write('Enter size matrix [1..10] :');
ReadLn(size);
for i:=1 to size do
for j:=1 to size do
begin
Write('a[',i,',',j,']=');
ReadLn(a[i,j]);end;
begin
if determinant(a,size)=0 then
begin write ('matryca vyrudzena,obernenoi ne isnue!');
goto 1; end;
end;
WriteLn('================================================');
WriteLn(' Source matrix ');
WriteLn;
PrintMatr(a,size);
dt:=Determinant(a,size);
WriteLn('================================================');
writeln('Determinant = ',dt:8:3);
{sozdaem matrix is dopolneniy}
for i:=1 to size do
for j:=1 to size do
begin
GetMatr(a,tmp_matrix,size,j,i);
invers[i,j]:=Pow(-1,i+j)*Determinant(tmp_matrix,size-1)/dt;
end;
WriteLn('================================================');
WriteLn(' Inverse matrix ');
WriteLn;
PrintMatr(invers,size);
1:readln;
end.
Контрольні приклади
Приклад 1.
Вхідні дані –
Розмірність матриці – 3
1 2 3 -2.00 4.00 -1.00
1 1 2 → обернена матриця→ 0.00 -1.00 0.00
1 0 2 1.00 -2.00 1.00
Приклад 2.
Вхідні дані –
Розмірність матриці – 4
обернена матриця