Порядок матрицы что это
ЧАВО по матрицам и кватернионам
Часто задаваемые вопросы по матрицам и кватернионам.
Введение
Замечание по поводу OpenGL и этого документа
В этом документе, как в большинстве книг по математике, все матрицы представлены в стандартном математическом виде. К сожалению, в уроках и документах по использованию графических библиотек типа IrisGL, OpenGL используют представление, в котором изменены местами столбцы и строки.
В этом документе, к примеру, матрица переноса 4×4 записывается в таком виде:
\(M = \begin
В коде это можно записать вот так:
OpenGL использует одномерный массив для хранения матриц, но, к счастью, они находятся в памяти в таком виде, что получив адрес pfMatrix и скастовав его к float* можно увидеть матрицу в том виде, в каком ее передают в glLoadMatrixf.
Во фрагментах кода в этом документе используются одномерные массивы для хранения матриц. Порядок элементов в них транспонирован как в OpenGL.
Этот документ | OpenGL |
\(M = \begin | \(M = \begin |
Что такое матрица?
Матрица это двумерный массив чисел, где каждый ряд или колонка состоит из одного и более чисел.
Матрицы можно складывать, вычитать, умножать и делить.
Размер матрицы определяется количеством рядов и колонок.
Матрица с M рядов и N колонок описывается как матрица MxN.
Описать отдельный элемент матрицы можно в виде двух индексов.
Используя математическую нотацию индексы обозначают переменными i и j. Сначала пишут строку, затем колонку.
К примеру, если есть матрица M с порядком 4×4, то элементы этой матрицы описываются парами индексов строк и колонок:
\(M = \begin
У верхнего правого элемента матрицы i=0 и j=3, что можно описать так:
\(M_
В компьютерной анимации обычно используют матрицы 2×2, 3×3 и 4×4.
Матрицы 2×2 используются для двумерного пространства, например, для поворотов, сдвигов и других типов обработки изображений.
Матрицы 3×3 достаточны для хранения информации о повороте (вращении) и масшатбировании. Такие матрицы могут быть использованы для скелетной анимации.
Матрицы 4×3 достаточно, чтобы хранить поворот, масштабирование и перемещение.
Матрицы 4×4 используются для всего набора трансформаций в трёхмерном пространстве, включая перспективное проецирование.
Что такое порядок матрицы?
Порядок матрицы — это её размерность. Матрица из M строк и N столбцов имеет порядок MxN.
Как я могу сделать матрицу в C/C++?
Проще всего использовать ключевое слово typedef.
Матрицы 3×3 и 4×4 могут быть описаны так:
Так как матрицы имеют размерность 3×3 и 4×4, им необходимо 9 и 16 элементов соответственно.
На первый взгляд, использование одного линейного массива чисел может показаться не интуитивным. Использование двумерного массива кажется логичнее:
Однако, использование двух систем отсчета для каждого элемента матрицы часто ведет к путанице. В математике, сначала записывают строку(i), а затем колонку(j): \(M_
В C/C++, это будет так:
Использование двумерных массивов также подействует на производительность процессора, так как компилятор C всегда использует операцию умножения для определения индекса элемента.
Так что, эффективнее использовать одномерные массивы. Однако останется решить ещё один вопрос. Как двумерный массив проецируется в линейный?
Есть только два решения: строка сначала, колонка потом, либо колонка сначала, а строка потом.
Разница в производительности минимальна. Если все циклы раскрыты, то нет практически отличий в производительности для таких операций как умножение матрицы на матрицу.
При использовании C/C++ порядок элементов в матрице следующий:
\(M = \begin | \(M = \begin |
В чем плюсы от использования матриц?
Один из первых вопросов, задаваемых по использованию матриц в компьютерной анимации: «Зачем вообще они нужны?». Интуиция подсказывает, что придется хорошо потратиться на циклы, и тем самым матричные перемножения замедлят программу.
Решением этой проблемы, являются регистры процессора и процессорный кэш. Первый может быть счетчиком в цикле, а алгоритм предсказания с заполнением кэша позволит оптимизировать доступ к памяти.
Также можно указать и на плюсы. Используя этот математический подход в описании 3D алгоритмов, можно предсказать и спланировать систему 3D анимации. Этот подход позволяет реализовать анимацию персонажа, сплайны и инверсную кинематику.
Но чаще всего звучит такой вопрос: «А не будет ли быстрее, просто умножить каждую пару координат на коэффициенты поворота для оси, вместо того чтобы производить полное векторно-матричное умножение?»
иначе говоря:
Вращение в X преобразует Y и Z
Вращение в Y преобразует X и Z
Вращение в Z преобразует X и Y
За это приводятся следующие аргументы:
Дана вершина V = (x, y, z), углы поворота (A,B и C) и перенос (D,E,F).
И следующий алгоритм:
Вместе они займут следующее количество процессорного времени:
Настройка | На одну вершину |
6 тригонометрических функций 6 присваиваний. | 12 присваиваний 12 умножений 9 сложений |
Те же самые операции, но при использовании матричного умножения.
С матрицей 4х4 они займут:
Настройка | Изменение | На одну вершину | Изменение |
6 тригонометрических функций | 0 | 0 | |
18 присваиваний | -12 | 3 присваиваний | -9 |
12 умножений | +12 | 9 умножений | -3 |
6 вычитаний | +6 | 6 сложений | -3 |
Сравнивая две таблицы, видно, что матрица поворота стоит как минимум 12 умножений и дополнительно 18 присваиваний.
Однако мы экономим на обработке вершин. Использование матричного умножения, от настройки всего 4 вершин, перевесит дополнительные затраты на настройке.
Как матрицы влияют на систему координат?
Матрицы поворота, переноса, сдвига очень просто действуют на систему координат.
Первые три колонки матрицы описывают направление осей X,Y,Z соответственно.
Если описана матрица 4х4 как:
\(M = \begin
Вектор направления для каждой оси будет следующий:
ось \(X = [ A E I]\)
ось \(Y = [ B F J ]\)
ось \(Z = [ C G K]\)
Матрицы. Виды матриц
Матрицей называется прямоугольная таблица из чисел с некоторым количеством m строк и с некоторым количеством n столбцов. Числа m и n называются порядками или размерами матрицы.
Матрица порядка m × n записывается в форме:
или (i=1,2. m; j=1,2. n).
Числа aij входящие в состав данной матрицы называются ее элементами. В записи aij первый индекс i означает номер строки, а второй индекс j— номер столбца.
Матрица строка
Матрица размером 1×n, т.е. состоящая из одной строки, называется матрицей-строкой. Например:
Матрица столбец
Матрица размером m×1, т.е. состоящая из одного столбца, называется матрицей-столбцом. Например
Нулевая матрица
Квадратная матрица
Матрица A порядка m×n называется квадратной матрицей, если количество строк и столбцов совпадают: m=n. Число m=n называется порядком квадратной матрицы. Например:
Главная диагональ матрицы
Побочная диагональ матрицы
Диагональная матрица
Квадратная матрица называется диагональной, если элементы, расположенные вне главной диагонали равны нулю. Пример диагональной матрицы:
Единичная матрица
След матрицы
Сумма главных диагональных элементов матрицы A называется следом матрицы и обозначается Sp A или Tr A. Например:
Верхняя треугольная матрица
Нижняя треугольная матрица
Квадратная матрица порядка n×n называется нижней треугольной матрицей, если равны нулю все элементы матрицы, расположенные над главной диагональю, т.е. aij=0, при всех i T ).
Cтолбцы матрицы A образуют пространство столбцов матрицы и обозначаются через R(A).
Ядро или нуль пространство матрицы
Противоположная матрица
Для любой матрицы A сущеcтвует противоположная матрица -A такая, что A+(-A)=0. Очевидно, что в качестве матрицы -A следует взять матрицу (-1)A, элементы которой отличаются от элементов A знаком.
Кососимметричная (Кососимметрическая) матрица
Кососимметричной называется квадратная матрица, которая отличается от своей транспонированной матрицы множителем −1:
В кососимметричной матрице любые два элемента, расположенные симметрично относительно главной диагонали отличаются друг от друга множителем −1, а диагональные элементы равны нулю.
Пример кососимметрической матрицы:
Разность матриц
Разностью C двух матриц A и B одинакового размера определяется равенством
Для обозначения разности двух матриц используется запись:
Степень матрицы
Пусть квадратная матрица размера n×n. Тогда степень матрицы определяется следующим образом:
где E-единичная матрица.
Из сочетательного свойства умножения следует:
где p,q— произвольные целые неотрицательные числа.
Симметричная (Симметрическая) матрица
Матрица, удовлетворяющая условию A=A T называется симметричной матрицей.
Для симметричных матриц имеет место равенство:
Математика для чайников. Матрицы и основные действия над ними
Определение матрицы
Матрица – это прямоугольная таблица элементов. Ну а если простым языком – таблица чисел.
Обычно матрицы обозначаются прописными латинскими буквами. Например, матрица A, матрица B и так далее. Матрицы могут быть разного размера: прямоугольные, квадратные, также есть матрицы-строки и матрицы-столбцы, называемые векторами. Размер матрицы определяется количеством строк и столбцов. Например, запишем прямоугольную матрицу размера m на n, где m – количество строк, а n – количество столбцов.
Что можно делать с матрицами? Складывать/вычитать, умножать на число, умножать между собой, транспонировать. Теперь обо всех этих основных операциях над матрицами по порядку.
Операции сложения и вычитания матриц
Сразу предупредим, что можно складывать только матрицы одинакового размера. В результате получится матрица того же размера. Складывать (или вычитать) матрицы просто – достаточно только сложить их соответствующие элементы. Приведем пример. Выполним сложение двух матриц A и В размером два на два.
Вычитание выполняется по аналогии, только с противоположным знаком.
Умножение матрицы на число
На произвольное число можно умножить любую матрицу. Чтобы сделать это, нужно умножить на это число каждый ее элемент. Например, умножим матрицу A из первого примера на число 5:
Операция умножения матриц
И пример с реальными числами. Умножим матрицы:
Операция транспонирования матрицы
Транспонирование матрицы – это операция, когда соответствующие строки и столбцы меняются местами. Например, транспонируем матрицу A из первого примера:
Определитель матрицы
Определитель, о же детерминант – одно из основных понятий линейной алгебры. Когда-то люди придумали линейные уравнения, а за ними пришлось выдумать и определитель. В итоге, разбираться со всем этим предстоит вам, так что, последний рывок!
Определитель – это численная характеристика квадратной матрицы, которая нужна для решения многих задач.
Чтобы посчитать определитель самой простой квадратной матрицы, нужно вычислить разность произведений элементов главной и побочной диагоналей.
Определитель матрицы первого порядка, то есть состоящей из одного элемента, равен этому элементу.
А если матрица три на три? Тут уже посложнее, но справиться можно.
Для такой матрицы значение определителя равно сумме произведений элементов главной диагонали и произведений элементов лежащих на треугольниках с гранью параллельной главной диагонали, от которой вычитается произведение элементов побочной диагонали и произведение элементов лежащих на треугольниках с гранью параллельной побочной диагонали.
К счастью, вычислять определители матриц больших размеров на практике приходится редко.
От действий над матрицами к пониманию их сути…
Очень уважаю людей, которые имеют смелость заявить, что они что-то не понимают. Сам такой. То, что не понимаю, — обязательно должен изучить, осмыслить, понять. Статья «Математика на пальцах», и особенно матричная запись формул, заставили меня поделиться своим небольшим, но, кажется, немаловажным опытом работы с матрицами.
Лет эдак 20 назад довелось мне изучать высшую математику в вузе, и начинали мы с матриц (пожалуй, как и все студенты того времени). Почему-то считается, что матрицы — самая лёгкая тема в курсе высшей математики. Возможно — потому, что все действия с матрицами сводятся к знанию способов расчёта определителя и нескольких формул, построенных — опять же, на определителе. Казалось бы, всё просто. Но… Попробуйте ответить на элементарный вопрос — что такое определитель, что означает число, которое вы получаете при его расчёте? (подсказка: вариант типа «определитель — это число, которое находится по определённым правилам» не является правильным ответом, поскольку говорит о методе получения, а не о самой сути определителя). Сдаётесь? — тогда читаем дальше.
Сразу хочу сказать, что я не математик ни по образованию, ни по должности. Разве что мне интересна суть вещей, и я порой пытаюсь до них «докопаться». Так же было и с определителем: нужно было разобраться со множественной регрессией, а в этом разделе эконометрики практически всё делается через… матрицы, будь они неладны. Вот и пришлось мне самому провести небольшое исследование, поскольку ни один из знакомых математиков не дал внятного ответа на поставленный вопрос, изначально звучавший как «что такое определитель». Все утверждали, что определитель — это такое число, которое особым образом посчитано, и если оно равно нулю, то… В общем, как в любом учебнике по линейной алгебре. Спасибо, проходили.
Если какую-то идею придумал один человек, то другой человек должен быть в состоянии её понять (правда, для этого порой приходится вооружаться дополнительными знаниями). Обращение к «великому и могучему» поисковику показало, что «площадь параллелограмма равна модулю определителя матрицы, образованной векторами — сторонами параллелограмма». Говоря простым языком, если матрица — это способ записи системы уравнений, то каждое уравнение в отдельности описывает вектор. Построив из точки начала координат векторы, заданные в матрице, мы таким образом зададим в пространстве некоторую фигуру. Если наше пространство одномерное, то фигура — это отрезок; если двумерное — то фигура — параллелограмм, и так далее.
Получается, что для одномерного пространства определитель — это длина отрезка, для плоскости — площадь фигуры, для трёхмерной фигуры — её объём… дальше идут n-мерные пространства, вообразить которые нам не дано. Если объём фигуры (то есть определитель для матрицы 3*3) равен нулю, то это означает, что сама фигура не является трёхмерной (она может быть при этом двухмерной, одномерной или вообще представлять собой точку). Ранг матрицы — это истинная (максимальная) размерность пространства, для которого определитель не равен нулю.
Так, с определителем почти всё понятно: он определяет «объёмность» фигуры, образованной описанными системой уравнений векторами (хотя непонятно, почему его значение не зависит от того, имеем мы дело с исходной матрицей, или с транспонированной — возможно, транспонирование — это вид аффинного преобразования?). Теперь нужно разобраться с действиями над матрицами…
Если матрица — это система уравнений (а иначе зачем нам таблица каких-то цифр, не имеющих к реальности никакого отношения?), то мы можем с ней делать разные вещи. Например, можем сложить две строки одной и той же матрицы, или умножить строку на число (то есть каждый коэффициент строки умножаем на одно и то же число). Если у нас есть две матрицы с одинаковыми размерностями, то мы их можем сложить (главное, чтобы при этом мы не сложили бульдога с носорогом — но разве математики, разрабатывая теорию матриц, думали о таком варианте развития событий?). Интуитивно понятно, тем более что в линейной алгебре иллюстрациями подобных операций являются системы уравнений.
Однако в чём смысл умножения матриц? Как я могу умножить одну систему уравнений на другую? Какой смысл будет иметь то, что я получу в этом случае? Почему для умножения матриц неприменимо переместительное правило (то есть произведение матриц В*А не то что не равно произведению А*В, но и не всегда осуществимо)? Почему, если мы перемножим матрицу на вектор-столбец, то получим вектор-столбец, а если перемножим вектор-строку на матрицу, то получим вектор-строку?
Ну, тут уж не то что Википедия, — тут даже современные учебники по линейной алгебре бессильны дать какое-либо внятное объяснение. Поскольку изучение чего-либо по принципу «вы сначала поверьте — а поймёте потом» — не для меня, копаю в глубь веков (точнее — читаю учебники первой половины XX века) и нахожу интересную фразу…
Если совокупность обычных векторов, т.е. направленных геометрических отрезков, является трёхмерным пространством, то часть этого пространства, состоящая из векторов, параллельных некоторой плоскости, является двумерным пространством, а все векторы, параллельные некоторой прямой, образуют одномерное векторное пространство.
В книгах об этом напрямую не говорится, но получается, что векторам, параллельным некоторой плоскости, необязательно лежать на этой плоскости. То есть они могут находиться в трёхмерном пространстве где угодно, но если они параллельны именно этой плоскости, то они образуют двумерное пространство… Из приходящих мне на ум аналогий — фотография: трёхмерный мир представлен на плоскости, при этом вектору, параллельному матрице (или плёнке) фотоаппарата, будет соответствовать такой же вектор на картинке (при условии соблюдении масштаба 1:1). Отображение трёхмерного мира на плоскости «убирает» одно измерение («глубину» картинки). Если я правильно понял сложные математические концепции, перемножение двух матриц как раз и представляет собой подобное отражение одного пространства в другом. Поэтому, если отражение пространства А в пространстве В возможно, то допустимость отражения пространства В в пространстве А — не гарантируется.
Любая статья заканчивается в тот момент, когда автору надоедает её писать. Поскольку я не ставил перед собой цели объять необъятное, а исключительно хотел понять суть описанных операций над матрицами и то, как именно матрицы связаны с решаемыми мной системами уравнений, я не полез в дальнейшие дебри линейной алгебры, а вернулся к эконометрике и множественной регрессии, но сделал это уже более осознанно. Понимая, что и зачем я делаю и почему только так, а не иначе. То, что у меня получилось в этом материале, можно озаглавить как «глава о сути основных операций линейной алгебры, которую почему-то забыли напечатать в учебниках». Но ведь мы же не читаем учебников, правда? Если честно, когда я учился в университете, мне очень не хватало именно понимания затронутых здесь вопросов, поэтому я надеюсь, что, изложив этот непростой материал по возможности простыми словами, я делаю доброе дело и помогаю кому-то вникнуть в саму суть матричной алгебры, переведя операции над матрицами из раздела «камлание с бубном» в раздел «практические инструменты, применяемые осознанно».
Порядок матрицы что это
ОПРЕДЕЛЕНИЕ МАТРИЦЫ. ВИДЫ МАТРИЦ
Матрицей размером m×n называется совокупность m·n чисел, расположенных в виде прямоугольной таблицы из m строк и n столбцов. Эту таблицу обычно заключают в круглые скобки. Например, матрица может иметь вид:
Для краткости матрицу можно обозначать одной заглавной буквой, например, А или В.
В общем виде матрицу размером m×n записывают так
.
Числа, составляющие матрицу, называются элементами матрицы. Элементы матрицы удобно снабжать двумя индексами aij: первый указывает номер строки, а второй – номер столбца. Например, a23 – элемент стоит во 2-ой строке, 3-м столбце.
Если в матрице число строк равно числу столбцов, то матрица называется квадратной, причём число ее строк или столбцов называется порядком матрицы. В приведённых выше примерах квадратными являются вторая матрица – её порядок равен 3, и четвёртая матрица – её порядок 1.
Матрица, в которой число строк не равно числу столбцов, называется прямоугольной. В примерах это первая матрица и третья.
Различаются также матрицы, имеющие только одну строку или один столбец.
Матрица, у которой всего одна строка , называется матрицей – строкой (или строковой), а матрица, у которой всего один столбец, матрицей – столбцом.
Матрица, все элементы которой равны нулю, называется нулевой и обозначается (0), или просто 0. Например,
.
Главной диагональю квадратной матрицы назовём диагональ, идущую из левого верхнего в правый нижний угол.
Квадратная матрица, у которой все элементы, лежащие ниже главной диагонали, равны нулю, называется треугольной матрицей.
.
Квадратная матрица, у которой все элементы, кроме, быть может, стоящих на главной диагонали, равны нулю, называется диагональной матрицей. Например, или
.
Диагональная матрица, у которой все диагональные элементы равны единице, называется единичной матрицей и обозначается буквой E. Например, единичная матрица 3-го порядка имеет вид .
ДЕЙСТВИЯ НАД МАТРИЦАМИ
Равенство матриц. Две матрицы A и B называются равными, если они имеют одинаковое число строк и столбцов и их соответствующие элементы равны aij = bij. Так если и
, то A=B, если a11 = b11, a12 = b12, a21 = b21 и a22 = b22.
Транспонирование. Рассмотрим произвольную матрицу A из m строк и n столбцов. Ей можно сопоставить такую матрицу B из n строк и m столбцов, у которой каждая строка является столбцом матрицы A с тем же номером (следовательно, каждый столбец является строкой матрицы A с тем же номером). Итак, если , то
.
Эту матрицу B называют транспонированной матрицей A, а переход от A к B транспонированием.
Связь между матрицей A и её транспонированной можно записать в виде .
Например. Найти матрицу транспонированную данной.
Сложение матриц. Пусть матрицы A и B состоят из одинакового числа строк и одинакового числа столбцов, т.е. имеют одинаковые размеры. Тогда для того, чтобы сложить матрицы A и B нужно к элементам матрицы A прибавить элементы матрицы B, стоящие на тех же местах. Таким образом, суммой двух матриц A и B называется матрица C, которая определяется по правилу, например,
Примеры. Найти сумму матриц:
Легко проверить, что сложение матриц подчиняется следующим законам: коммутативному A+B=B+A и ассоциативному (A+B)+C=A+(B+C).
Умножение матрицы на число. Для того чтобы умножить матрицу A на число k нужно каждый элемент матрицы A умножить на это число. Таким образом, произведение матрицы A на число k есть новая матрица, которая определяется по правилу или
.
Для любых чисел a и b и матриц A и B выполняются равенства:
.
Матрицу C найти нельзя, т.к. матрицы A и B имеют разные размеры.
Умножение матриц. Эта операция осуществляется по своеобразному закону. Прежде всего, заметим, что размеры матриц–сомножителей должны быть согласованы. Перемножать можно только те матрицы, у которых число столбцов первой матрицы совпадает с числом строк второй матрицы (т.е. длина строки первой равна высоте столбца второй). Произведением матрицы A не матрицу B называется новая матрица C=AB, элементы которой составляются следующим образом:
.
Таким образом, например, чтобы получить у произведения (т.е. в матрице C) элемент, стоящий в 1-ой строке и 3-м столбце c13, нужно в 1-ой матрице взять 1-ую строку, во 2-ой – 3-й столбец, и затем элементы строки умножить на соответствующие элементы столбца и полученные произведения сложить. И другие элементы матрицы-произведения получаются с помощью аналогичного произведения строк первой матрицы на столбцы второй матрицы.
В общем случае, если мы умножаем матрицу A = (aij) размера m×n на матрицу B = (bij) размера n×p, то получим матрицу C размера m×p, элементы которой вычисляются следующим образом: элемент cij получается в результате произведения элементов i-ой строки матрицы A на соответствующие элементы j-го столбца матрицы B и их сложения.
Из этого правила следует, что всегда можно перемножать две квадратные матрицы одного порядка, в результате получим квадратную матрицу того же порядка. В частности, квадратную матрицу всегда можно умножить саму на себя, т.е. возвести в квадрат.
Другим важным случаем является умножение матрицы–строки на матрицу–столбец, причём ширина первой должна быть равна высоте второй, в результате получим матрицу первого порядка (т.е. один элемент). Действительно,
.
.
, B·A – не имеет смысла.
Таким образом, эти простые примеры показывают, что матрицы, вообще говоря, не перестановочны друг с другом, т.е. A∙B ≠ B∙A. Поэтому при умножении матриц нужно тщательно следить за порядком множителей.
Можно проверить, что умножение матриц подчиняется ассоциативному и дистрибутивному законам, т.е. (AB)C=A(BC) и (A+B)C=AC+BC.
Легко также проверить, что при умножении квадратной матрицы A на единичную матрицу E того же порядка вновь получим матрицу A, причём AE=EA=A.
Можно отметить следующий любопытный факт. Как известно произведение 2-х отличных от нуля чисел не равно 0. Для матриц это может не иметь места, т.е. произведение 2-х не нулевых матриц может оказаться равным нулевой матрице.
Например, если , то
.
Пусть дана матрица второго порядка – квадратная матрица, состоящая из двух строк и двух столбцов .
Определителем второго порядка, соответствующим данной матрице, называется число, получаемое следующим образом: a11a22 – a12a21.
Определитель обозначается символом .
Итак, для того чтобы найти определитель второго порядка нужно из произведения элементов главной диагонали вычесть произведение элементов по второй диагонали.
Примеры. Вычислить определители второго порядка.
Аналогично можно рассмотреть матрицу третьего порядка и соответствующий ей определитель.
Определителем третьего порядка, соответствующим данной квадратной матрице третьего порядка, называется число, обозначаемое и получаемое следующим образом:
.
Таким образом, эта формула даёт разложение определителя третьего порядка по элементам первой строки a11, a12, a13 и сводит вычисление определителя третьего порядка к вычислению определителей второго порядка.
Примеры. Вычислить определитель третьего порядка.
.
Аналогично можно ввести понятия определителей четвёртого, пятого и т.д. порядков, понижая их порядок разложением по элементам 1-ой строки, при этом знаки «+» и «–» у слагаемых чередуются.
Итак, в отличие от матрицы, которая представляют собой таблицу чисел, определитель это число, которое определённым образом ставится в соответствие матрице.