1 0 ... 0
Е= 0 1 ... 0
. . . . . . . . . . .
0 0 ... 1
2.2. Дії над матрицями:
Як виявляється, над матрицями можливі арифметичні дії, властивості яких близькі до властивостей арифметичних дій над числами.
Сумою двох матриць ai j і bi j з одинаковою кількістю рядків і стовпців називається матриця сi j ,у якої елементом сi j є сума aij+bij відповідних елементів матриць ai j bi j ,тобто
ai j + bi j = ci j ,
якщо ai j+bi j=ci j (i=1,2,..,m; j=1,2,..,n)
Приклад: a11 a12 b11 b12 a11+b11 a12+b12
a21 a22 b21 b22 a21+b21 a22+b22
Аналогічно знаходимо різницю двох матриць.
Матрицці різних порядків додавати(віднімати) не можна.
Множення матриці на число. Щоб помножити матрицю на число або число на матрицю, потрібно кожний елемент матриці помножити на це число.
* ai j = ai j
a11 a12 a11 a12
a21 a22 = a21 a22 .
Безпосередніми наслідками вказаних визначень є співвідношення:
1 А = А 1 = А ;
0 А = А 0 = 0 ;
О = О = О ;
( А) = ( ) А = (А ) = А ( );
А + (В +С) = (А+ В) + С;
А + В = В + А;
( + ) А = А + А;
(А + В) = А + В;
А + О = О + А = А;
А + (-1)А = О;
Тут А, В, С - матриці одного порядку, , - числа, О - нульова матриця (всі її елементи дорівнюють нулеві). Перевірка вказаних властивостей не викликає ускладнень.
Елемент ci j матриці С, яка є добутком матриці В на матрицю А, дорівнює сумі добутків елементів і-того рядка матриці В на відповідний елемент j-того стовпця матриці А, тобто
k
ci j =bi a j (i=1,2,..,m; j=1,2,..,n).
=1
Властивості добутку матриць:
(А В) С = А (В С);
А (В + С) = А В + А С;
(А + В) С = А С + В С;
А Е = Е А = А;
(А В)*= В*А*;
Тут А, В, С - довільні матриці, для яких вказані рівності мають сенс.
Доведемо першу рівність - асоціативність множення матриць.
Позначимо D = A B, F = B C, G = D C, H = A F. Потрібно довести, що G =H. Оскільки множення вказаних вище матриць можливе, то А буде порядку mn, В - порядку nk, С - порядку kl. З означення множення дістанемо, що D - порядку mk, F - порядку nl, G i H - матриці одного порядку ml.
Зафіксуємо довільні i, j і доведемо, що gij = hij.Маємо
k k k
gij = di cj = ai b cj ;
=1 =1 =1
n n k
hij = aifj = ai b cj .
=1 =1 =1
Позначивши t = ai b cj, отримаємо
k n n k
gij = t , hij = t .
=1 =1 =1 =1
Кожна із вказаних сум дорівнює сумі всіх елементів деякої матриці (t ), обчисленій двома різними способами. Отже, hij = gij, що й потрібно довести.
Інші властивості добутку доводяться аналогіччно, тільки простіше.
Оберненою називається матриця А-1, така що якщо її помножити на матрицю до якої вона обернена, то в результаті отримаємо одиничну матрицю. А*А-1=Е
Знайти матрицю, обернену до квадратної матриці М= аi k ,можна за допомогою операцій над розширеною матрицею А:
m11 . . . . m1n 1 . . . . 0
A= . . . . . . . . . . . . . . . .
mn1 . . . . mnn 0 . . . . 1
Якщо ліву частину матриці А звести елементарними перетвореннями до одиничної, то в правій частині дістанемо матрицю, обернену до М.
До елементарних перетворень належать:
1)Переставлення двох рядків матриці А (або двох однойменних стовпців в лівій і правій частинах матриці А);
2)Множення рядка на відмінне від нуля число( або однойменних стовпців в лівій і правій частинах матриці А);
3)Заміна рядка сумою цього і будь-якого іншого рядка (або та ж сама сума однойменних стовпців в лівій і правій частинах матриці А);
Ділення двох матриць.
Дію ділення можна замінити дією множення на обернену матрицю
* В-1
PROGRAM povorot; {Поворот матриці }
USES CRT;
CONST
N=3;
TYPE
S=ARRAY[1..N,1..N]OF REAL;
SS=ARRAY[1..N,1..N]OF REAL;
VAR
S1:S;S2:SS;M,i,j:INTEGER;
BEGIN
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO N DO
BEGIN
READ(S1[i,j]); {Ввід матриці}
END;
END;
WRITE('Vvedit kut povorotu');
READ(M); {Ввід кута повороту}
CASE M OF
90:BEGIN {Поворот матриці на 90}
FOR i:=1 TO N DO
FOR j:=1 TO N DO
S2[I,J]:=S1[N-J+1,I];
FOR i:=1 TO N DO
FOR j:=1 TO N DO
WRITELN(S2[i,j]);
END;
180: BEGIN {Поворот матриці на 180}
FOR I:=1 TO N DO
FOR J:=1 TO N DO
S2[I,J]:=S1[N-I+1,N-J+1];
FOR I:=1 TO N DO
FOR J:=1 TO N DO
WRITELN(S2[I,J]);
END;
270: BEGIN {Поворот матриці на 270}
FOR I:=1 TO N DO
FOR J:=1 TO N DO
S2[I,J]:=S1[J,N-I+1];
FOR I:=1 TO N DO
FOR J:=1 TO N DO
WRITELN(S2[I,J]); {Вивід результату}
END; END;
END.
Program Suma; {Сума двох матриць}
Const dim1=20;
dim2=40;{dim2=2*dim1}
Type ar1=array[1..dim1,1..dim2] of real;
ar2=array[1..dim1,1..dim2] of real;
ar3=array[1..dim1,1..dim2] of real;
Var i,j,n,m:integer;
A:ar1;
B:ar2;
C:ar3;
Begin
write('Введіть розмірність матриці М');
readln(n,m); {Ввід розмірності матриць }
write('Введіть матрицю М');
For i:=1 to n do
For j:=1 to m do
read(A[i,j]); {Ввід першої матриці}
write('Введіть