Войти
ПрограммированиеСтатьиОбщее

ЧАВО по матрицам и кватернионам (2 стр)

Автор:

АРИФМЕТИКА

Что такое единичная матрица?

Единичная матрица — матрица, имеющая равное число строк и столбцов. И все элементы с индексами i=j равны 1, остальные равны 0.

К примеру, единичная матрица 4х4:
\(M=\(\matrix{1 & 0 & 0 & 0 \cr 0 & 1 & 0 & 0 \cr 0 & 0 & 1 & 0 \cr 0 & 0 & 0 & 1}\)

Что такое главная диагональ матрицы?

Главная диагональ матрицы - это набор элементов, у которых номер ряда равен номеру колонки, иначе говоря:

\(M_{i,j}\), где \(i=j\)

Так что у единичной матрицы, лишь элементы главной диагонали равны 1, а все остальные 0.

Что такое транспонирование матрицы?

Транспонированная матрица это матрица, в которой поменяли все элементы матрицы относительно главной диагонали.

Это можно выразить математической операцией вида:
\(M'_{i,j} = M_{j,i}\)

Однако такое можно сделать лишь с матрицей с равным числом строк и столбцов.

Если матрица M равна:
\(M=\(\matrix{0.707 & -0.866 \cr 0.866 & 0.707}\)

Транспонированная равна:
\(M=\(\matrix{0.707 & 0.866 \cr -0.866 & 0.707}\)

Если имеется матрица поворота, то транспонирование гарантирует, что у матрицы есть обратная.
   

Как мне сложить две матрицы?

Правило сложения двух матриц: «добавь строку и колонку к строке и колонке».

Математически это выглядит так: \(R_{i,j}=M_{i,j}+L_{i,j}\)

При этом матрицы должны быть одного размера.
 
К примеру, если матрица 3x3 M складывается с матрицей 3x3 L результат будет таким:
\(R = M + L= \(\matrix{A & B & C \cr D & E & F \cr G & H & I}\) + \(\matrix{J & K & L \cr M & N & O \cr P & Q & R}\) =\)\(\matrix{A+J & B+K & C+L \cr D+M & E+N & F+O \cr G+P & H+Q & I+R}\).

Как мне вычесть две матрицы?

Правило вычитания двух матриц: «вычитай строку и колонку из строки и колонки».

Математически будет так: \(R_{i,j}=M_{i,j}-L_{i,j}\)

Матрицы должны быть строго одного размера.

К примеру, если матрица 3x3 L вычитается из матрицы 3x3 M результат будет таким:
\(R = M - L= \(\matrix{A & B & C \cr D & E & F \cr G & H & I}\) - \(\matrix{J & K & L \cr M & N & O \cr P & Q & R}\) =\)\(\matrix{A-J & B-K & C-L \cr D-M & E-N & F-O \cr G-P & H-Q & I-R}\).

Как мне умножить две матрицы?

Правило такое: «умножай строку на колонку и сумма будет результатом.»

Математически: \(R_{i,j}=\sum_{i=1}^n M_{i,j} L_{j,i}\)

Если есть две матрицы:
\(M_{AB}\) и \(L_{CD}\)

  то величины B и C должны быть равны.

  Результат будет \(R_{AD}\)

  Так что, можно умножить матрицу 4xN с матрицей 4x4, но не наоборот.

  К примеру, если матрица 4x4 M описана так:
\(M=\(\matrix{A & B & C & D \cr E & F & G & H \cr I & J & K & L \cr M & N & O & P}\)
  и матрица 4x2 L описана так:
\(L=\(\matrix{ Q&R \cr S&T \cr U & V \cr W & X }\)

  то размер результата будет 2x4:
\(R = M * L = \(\matrix{A & B & C & D \cr E & F & G & H \cr I & J & K & L \cr M & N & O & P}\)*\(\matrix{Q&R \cr S&T \cr U & V \cr W & X}\)\cr\)\(=\(\matrix{ AQ+BS+CU+DW & AR+BT+CV+DX \cr EQ+FS+GU+HW & ER+FT+GV+HX \cr IQ+JS+KU+LW & IR+JT+KV+LX \cr MQ+NS+OU+PW & MR+NT+OV+PX }\)

Как мне взять корень или возвести матрицу в квадрат?

Из матрицы можно взять корень или возвести в целую степень. Однако есть несколько ограничений. Для любого возведения матрица должна быть квадратная, иначе говоря, количество столбцов должо быть равно количеству строк.

К примеру,
\(M^{-1}\) — обратная матрица,

\(M^0\) — единичная матрица,

\(M^1\) — матрица не меняется,

\(M^2\) — возводит в квадрат,

\(M^3\) — куб матрицы.

Возведение матрицы в степень больше одного означает умножить матрицу на себя n-число раз.

К примеру:

\(M^2 = M \times M\)

\(M^3 = M \times M \times M\)

и так далее.

Возведение в степень единичной матрицы всегда даёт единичную матрицу: \(I^n = I\)

Как мне умножить один и более векторов на матрицу?

Лучший способ выполнить это задание представить список векторов в виде одной матрицы, где каждый вектор представлен одной колонкой.
 

  Если N векторов должны быть умножены на матрицу 4х4, они могут быть выражены
  в виде одной матрицы 4хN:
 
\(M=\(\matrix{A & B & C & D \cr E & F & G & H \cr I & J & K & L \cr M & N & O & P}\)
  а список векторов:
\(V=\(\matrix{ x_1&x_2&x_3&x_4&x_5\cr y_1&y_2&y_3&y_4&y_5\cr z_1&z_2&z_3&z_4&z_5\cr 1&1&1&1&1}\)

Заметьте, что вся дополнительная четвертая строка равна константе 1. Она не играет никакой роли, используется, чтобы порядок матрицы M совпадал с порядком списка V.
 
Умножение производится так:

\(M*V=V'\)
\(\matrix{A&B&C&D \cr E&F&G&H \cr I&J&K&L \cr M&N&O&P}\)*\(\matrix{x_1&x_2&x_3&x_4&x_5\cr y_1&y_2&y_3&y_4&y_5\cr z_1&z_2&z_3&z_4&z_5\cr 1&1&1&1&1}\)
\(=\(\matrix{A*x_1+B*y_1+C*z_1+D&A*x_2+B*y_2+C*z_2+D&...\cr E*x_1+F*y_1+G*z_1+H&E*x_2+F*y_2+G*z_2+H&...\cr I*x_1+J*y_1+K*z_1+L& I*x_2+J*y_2+K*z_2+L&...\cr M*x_1+N*y_1+O*z_1+P&M*x_2+N*y_2+O*z_2+P&... }\)

На каждый вектор в списке приходится в общем 12 умножений, 16 сложений и 1 деление для перспективы.
 
Если известно, что это матрица поворота или переноса, то можно не делить.

Страницы: 1 2 3 4 5 6 Следующая »

#C++, #OpenGL, #кватернионы, #математика, #матрицы

9 марта 2011 (Обновление: 25 мая 2020)

Комментарии [40]

Аренда рекламных щитов 3х6 в Воронеже gorreklama.vrn.ru.