Ответ 1
Хорошо, быстрый курс расчета матриц/векторов:
Матрица представляет собой набор чисел, упорядоченных в прямоугольной сетке типа:
[ 0, 1, 2 ]
[ 2, 3, 5 ]
[ 2, 1, 3 ]
[ 0, 0, 1 ]
Вышеупомянутая матрица имеет 4 строки и 3 столбца и, как таковая, представляет собой матрицу размером 4 х 3. Вектор представляет собой матрицу с 1 строкой (вектор строки) или 1 столбец (вектор-столбец). Нормальные числа называются скалярами, контрастирующими с матрицами.
Также распространено использование заглавных букв для матриц и строчных букв для скаляров.
Мы можем сделать базовый расчет с помощью матриц, но есть некоторые условия.
Добавление
Матрицы могут быть добавлены, если они имеют одинаковые размеры. Таким образом, матрица 2x2 может быть добавлена к матрице 2x2, но не к матрице 3x5.
[ 1, 2 ] + [ 2, 5 ] = [ 3, 7 ]
[ 2, 4 ] [ 0, 3 ] [ 2, 7 ]
Вы видите, что путем добавления каждый номер в каждой ячейке добавляется к числу в той же позиции в другой матрице.
Матричное умножение
Матрицы могут быть умножены, но это немного сложнее. Чтобы умножить матрицу A на матрицу B, вам нужно умножить числа в каждой строке, если матрица A с каждым столбцом в матрице B. Это означает, что если вы умножаете матрицу axb с матрицей acxd, b и c должны быть равны, а результирующая матрица равна axd:
[1,2,3] x [4,6] = [1x4+2x2+3x2, 1x6+2x1+3x3 ] = [4+4+6, 6+2+9 ] = [14, 20]
[1,4,5] [2,1] [1x4+4x2+5x2, 1x6+4x1+5x3 ] [4+8+10, 6+4+15 ] [22, 25]
[2,3]
Как вы можете видеть, с матрицами A x B отличается от B x A.
Матричное скалярное умножение
Можно умножить матрицу со скаляром. В этом случае каждая ячейка умножается на это число:
3 x [1,2] = [ 3, 6]
[4,7] [12,21]
Инвертирование матрицы Матричное деление невозможно, но вы можете создать инверсию матрицы, так что A x A-inv - матрица со всем нулем, кроме этой главной диагонали:
[ 1, 0, 0 ]
[ 0, 1, 0 ]
[ 0, 0, 1 ]
Инвертирование матрицы может быть выполнено только с квадратными матрицами, и это сложное задание, которое не имеет результата.
Начнем с матрицы A:
[ 1, 2, 3 ]
A = [ 1, 3, 4 ]
[ 2, 5, 1 ]
Мы добавляем 3 дополнительных столбца и заполняем их единичной матрицей:
[ 1, 2, 3, 1, 0, 0 ]
[ 1, 3, 4, 0, 1, 0 ]
[ 2, 5, 1, 0, 0, 1 ]
Теперь мы начнем с первого столбца. Нам нужно вычесть первую строку из каждой строки так, чтобы первый столбец содержал только нули, кроме первой строки. Для этого мы вычитаем первую строку один раз из второго и дважды из третьего:
[ 1, 2, 3, 1, 0, 0 ]
[ 0, 1, 1,-1, 1, 0 ]
[ 0, 1,-5,-2, 0, 1 ]
Теперь мы повторяем это со вторым столбцом (дважды из первой строки и один раз из третьего)
[ 1, 0, 1, 3,-2, 0 ]
[ 0, 1, 1,-1, 1, 0 ]
[ 0, 0,-6,-1,-1, 1 ]
Для третьего столбца мы имеем небольшую проблему. Числовое значение составляет -6, а не 1. Но мы можем решить это, умножив всю строку на -1/6:
[ 1, 0, 1, 3, -2, 0 ]
[ 0, 1, 1, -1, 1, 0 ]
[ 0, 0, 1, 1/6, 1/6, -1/6 ]
И теперь мы можем вычесть третью строку из первой и второй:
[ 1, 0, 0, 17/6,-13/6, 1/6 ]
[ 0, 1, 0, -7/6, 5/6, 1/6 ]
[ 0, 0, 1, 1/6, 1/6, -1/6 ]
Теперь у нас есть обратное к A:
[ 17/6,-13/6, 1/6 ]
[ -7/6, 5/6, 1/6 ]
[ 1/6, 1/6, -1/6 ]
Мы можем записать это как:
[ 17,-13, 1 ]
1/6 * [ -7, 5, 1 ]
[ 1, 1, -1 ]
[ 1, 2, 3 ] [ 17,-13, 1 ] [ 6, 0, 0 ] [ 1, 0, 0 ]
A = [ 1, 3, 4 ] x [ -7, 5, 1 ] x 1/6 = 1/6 x [ 0, 6, 0 ] = [ 0, 1, 0 ]
[ 2, 5, 1 ] [ 1, 1, -1 ] [ 0, 0, 6 ] [ 0, 0, 1 ]
Надеюсь, это немного поможет.