Основы линейной алгебры
Основные операции над матрицами
Умножение матрицы на число
Произведением матрицы ) на число называется матрица такая, что . Т.е. при умножении матрицы на число каждый элемент матрицы умножается на это число.
Например, если и , то .
Матрица называется противоположной матрице .
В Engee умножение матрицы на число выполняется с помощью оператора умножения *. Например, умножить матрицу на число можно так:
k = 3;
A = [1 -2; -3 4];
B = k * A
или так:
A = [1 -2; -3 4];
B = 3 * A
или даже так:
B = 3 * [1 -2; -3 4]
✏️Задание 1
Умножьте в Engee матрицу на число .
Решение
A = [5 3 12; 7 -2 28; -6 15 -9];
k = -7.25;
B = k * A
Сложение матриц
Суммой двух матриц и называется такая матрица , что . Т.е. при сложении матриц их соответствующие элементы складываются. Сумма двух матриц обозначается .
Операция сложения матриц возможна только для матриц одинаковых размеров.
Например: .
В Engee сложение матриц выполняется так же, как и сложение чисел, с помощью оператора +. Например, сумма матриц и может быть вычислена так:
A = [1 2; 3 4];
B = [5 6; 7 8];
C = A + B
или так:
C = [1 2; 3 4] + [5 6; 7 8]
✏️Задание 2
Сложите в Engee матрицу из Задания 1 с диагональной матрицей, у которой на главной диагонали находятся числа 5, 34 и -40.
Подсказка
Диагональная матрица задается с помощью функции diagm, аргументом которой является вектор элементов главной диагонали матрицы: B = diagm([b11, b22, b33]).
Решение
using LinearAlgebra;
A = [5 3 12; 7 -2 28; -6 15 -9];
B = diagm([5, 34, -40]);
C = A + B
Вычитание матриц
Разностью двух матриц и называется такая матрица , что . Т.е. при вычитании матриц их соответствующие элементы вычитаются. Разность двух матриц обозначается .
Операция вычитания матриц возможна только для матриц одинаковых размеров.
Например: .
В Engee вычитание матриц выполняется так же, как и вычитание чисел, с помощью оператора -.
✏️Задание 3
Найдите в Engee разность и матриц из предыдущего примера: , .
Решение
A = [2 -3 0; 4 5 6];
B = [3 3 -1; -2 -5 4];
C = A - B;
print("A - B =");
display(C);
D = B - A;
print("B - A =");
display(D);
✏️Задание 4
Найдите в Engee линейную комбинацию матриц , если и .
Решение
A = [3 8; 6 2];
B = [-9 -1; -4 -10];
C = 5 * A - 4 * B
Умножение матриц
Произведением матрицы на матрицу называется такая матрица , что , т.е. элемент -й строки и -го столбца произведения равен сумме произведений элементов -й строки матрицы на соответствующие элементы -го столбца матрицы .
При умножении матрицы размером на матрицу размером получается матрица размером .
Операция умножения двух матриц вводится только для случая, когда число столбцов первой матрицы равно числу строк второй матрицы.
Например:
При этом произведение не определено, т.к. число столбцов матрицы (3) не совпадает с числом строк матрицы (2).
Пример умножения матрицы на вектор-столбец:
-
Если матрицы и квадратные одного размера, то произведения и всегда существуют.
-
, где – квадратная матрица, – единичная матрица того же размера.
-
Произведение нулевой матрицы на любую другую матрицу равно нулевой матрице: .
-
В общем случае , т.е. умножение матриц некоммутативно. Если , то матрицы и называются перестановочными.
В Engee умножение матриц выполняется так же, как и умножение чисел, с помощью оператора *. Рассмотренный выше пример умножения матриц можно записать так:
A = [1 3; 1 2];
B = [1 2 1; 3 1 0];
C = A * B
или так:
D = [1 3; 1 2] * [1 2 1; 3 1 0]
Аналогично выполняется умножение трех и большего числа матриц.
Например, произведение трех матриц , и можно вычислить так:
A = [0 1; 1 0];
B = [1 1; 0 0];
C = [1 0; 1 0];
D = A * B * C
✏️Задание 5
Найдите в Engee произведение и матриц и .
Перестановочны ли данные матрицы?
Решение
A = [1 2 3; 4 5 6; 7 8 9];
B = [9 8 7; 6 5 4; 3 2 1];
C = A * B;
print("A * B =");
display(C);
D = B * A;
print("B * A =");
display(D);
Данные матрицы не являются перестановочными, т.к. .
✏️Задание 6
Проверьте в Engee, что умножение квадратной матрицы слева и справа на единичную матрицу такого же размера не изменяет этой матрицы.
Решение
using LinearAlgebra;
A = [5 8 11; 7 9 15; 4 2 6];
E = convert(Array, I(3));
print("E =");
display(E);
B = A * E;
print("A * E =");
display(B);
C = E * A;
print("E * A =");
display(C);
Возведение матрицы в степень
-й степенью квадратной матрицы называется умножение матрицы саму на себя раз.
Операция возведения в степень определена только для квадратных матриц и для натурального показателя степени .
Например:
,
,
и т.д.
В Engee матрицу можно возводить в -ю степень либо умножая ее саму на себя раз, либо с помощью оператора возведения в степень ^. Например, возвести матрицу во вторую степень можно следующими двумя способами:
A = [2 0; 0 3];
B = A * A;
print("A^2 =");
display(B);
print("A^2 =");
C = A^2
✏️Задание 7
Возведите в Engee матрицу в третью степень как с помощью умножения трех одинаковых матриц, так и с помощью оператора ^.
Решение
A = [1 2 3; 4 5 6; 7 8 9];
B = A * A * A;
print("A^3 =");
display(B);
print("A^3 =");
С = A^3
Свойства операций над матрицами
Для операции транспонирования верны cледующие свойства:
✏️Задание 8
Проверьте в Engee справедливость свойства для матриц и .
Решение
using LinearAlgebra;
A = [7 9; 4 2];
B = [5 3; 6 1];
C = transpose(A * B)
display(C);
D = transpose(B) * transpose(A)
Как мы видим, матрицы и равны друг другу.