Матричное представление

Матричное представление — это метод, используемый языком программирования векторов-столбцов матриц более чем одного измерения для хранения в памяти . Фортран и C используют разные схемы для своих собственных массивов. Фортран использует «Основной столбец» ( AoS ), в котором все элементы данного столбца хранятся в памяти последовательно. C использует «Row Major» (SoA), который сохраняет в памяти все элементы данной строки подряд. LAPACK определяет различные матричные представления в памяти. Существует также представление разреженной матрицы и представление матрицы порядка Мортона .Согласно документации, в LAPACK унитарной матрицы . оптимизировано представление [1] [2] Некоторые языки, такие как Java, хранят матрицы с использованием векторов Илиффа . Они особенно полезны для хранения нерегулярных матриц . Матрицы имеют первостепенное значение в линейной алгебре .
Основные математические операции
[ редактировать ]порядка m × n (читается как m на n) Матрица представляет собой набор чисел, расположенных в m строках и n столбцах. Матрицы одного порядка можно складывать, добавляя соответствующие элементы. Две матрицы можно перемножить при условии, что количество столбцов первой матрицы равно количеству строк второй матрицы. Следовательно, если матрицу размера m × n умножить на матрицу размера n × r, то результирующая матрица будет иметь порядок m × r. [3]
С матрицей можно выполнять такие операции, как операции со строками или столбцами, используя которые мы можем получить обратную матрицу. Обратное можно получить также путем определения сопряженного. [3] строки и столбцы — это разные классы матриц
В 3D графике
[ редактировать ]Выбор представления для матриц 4×4, обычно используемых в 3D-графике, влияет на реализацию матричных/векторных операций в системах с упакованными SIMD-инструкциями :
Основной ряд (SoA)
[ редактировать ]При матричном порядке по строкам векторы легко преобразовывать с помощью операций скалярного произведения , поскольку коэффициенты каждого компонента расположены в памяти последовательно. Следовательно, такая схема может быть желательной, если процессор изначально поддерживает операции скалярного произведения. Также возможно эффективно использовать матрицу аффинного преобразования «3×4» без заполнения или неудобных перестановок.
Основной столбец (AoS)
[ редактировать ]При порядке по столбцам умножение «матрица × вектор» может быть реализовано с помощью векторизованных операций умножения-сложения , если компоненты вектора транслируются на каждую полосу SIMD . Также легко получить доступ к базисным векторам, представленным матрицей преобразования , как к отдельным векторам-столбцам, поскольку они смежны в памяти.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Представление ортогональных или унитарных матриц» . Техасский университет в Остине . Проверено 14 сентября 2011 г.
- ^ Лехук, Р. (1996). «Вычисление элементарных унитарных матриц». Транзакции ACM в математическом программном обеспечении . 22 (4): 393–400. дои : 10.1145/235815.235817 . hdl : 1911/101830 .
- ^ Jump up to: а б Рамана, Б.В. (2008). Высшая инженерная математика . Нью-Дели: Тата Макгроу-Хилл. ISBN 978-0-07-063419-0 .