Операции с Матрицами

Материал из Algocode wiki
Перейти к: навигация, поиск

$A_{i}$ - $i$-я строчка матрицы, $A^{i}$ - $i$-й столбец матрицы

Сложение

$A = \begin{pmatrix} a_{0 \ 0}& a_{0 \ 1}\\ a_{1 \ 0}& a_{1 \ 1} \end{pmatrix}$, $B = \begin{pmatrix} b_{0 \ 0}& b_{0 \ 1}\\ b_{1 \ 0}& b_{1 \ 1} \end{pmatrix}$, $A + B = \begin{pmatrix} a_{0 \ 0} + b_{0 \ 0}& a_{0 \ 1} + b_{0 \ 1}\\ a_{1 \ 0} + b_{1 \ 0}& a_{1 \ 1} + b_{1 \ 1} \end{pmatrix}$

Умножение на число

$A = \begin{pmatrix} a_{0 \ 0}& a_{0 \ 1}\\ a_{1 \ 0}& a_{1 \ 1} \end{pmatrix}, A \cdot c = \begin{pmatrix} a_{0 \ 0} \cdot c& a_{0 \ 1} \cdot c\\ a_{1 \ 0} \cdot c& a_{1 \ 1} \cdot c \end{pmatrix}$

Транспонирование

Давайте просто перевернем матрицу, более формально :

Дана матрица $A_{N, M}$, тогда

$A^T_{j \ i} = A_{i \ j} \ \ \forall i \lt N, j \lt M$

$A = \begin{pmatrix} a_{0 \ 0}& a_{0 \ 1}\\ a_{1 \ 0}& a_{1 \ 1} \end{pmatrix}, A^T = \begin{pmatrix} a_{0 \ 0}& a_{1 \ 0}\\ a_{0 \ 1}& a_{1 \ 1} \end{pmatrix}$

Умножение матриц

Даны две матрицы :

$A \in Mat_{n \times m}, B \in Mat_{m \times k}$

Тогда :

$(A \cdot B)_{i \ j} = A_{(i)} \cdot B^{(j)} = \sum \limits_{k = 1}^n (a_{i \ k} + b_{k \ j})$, то есть говоря простым языком $(A \cdot B)_{i j} = $ сумме произвдения $A_{i}$ и $B^{j}$


$A = \begin{pmatrix} 2& -3& 1\\ 5& 4& 2 \end{pmatrix}, B = \begin{pmatrix} -7& 5\\ 2& -1\\ 4& 3 \end{pmatrix}, A \cdot B = \begin{pmatrix} 2 \cdot (-7) + (-3) \cdot 2 + 1 \cdot 4& 2 \cdot 5 + (-3) \cdot (-1) + 1 \cdot 3\\ 5 \cdot (-7) + 4 \cdot 2 + (-2) \cdot 4& 5 \cdot 5 + 4 \cdot (-1) + (-2) \cdot 3 \end{pmatrix} = \begin{pmatrix} -16& 16\\ -35& 15 \end{pmatrix}$

Несложно заметить, что все операции кроме умножения работают за размер матрицы($O(N \cdot M)$), умножение же для матриц $A \in Mat_{N \ M}, B \in Mat_{M \ K}$ работает за $O(N \cdot M \cdot K)$



Автор конспекта: Глеб Лобанов

По всем вопросам пишите в telegram @glebodin