stringtranslate.com

Representación matricial

Ilustración del orden principal de filas y columnas

La representación matricial es un método utilizado por un lenguaje de computadora para almacenar matrices de vectores columna de más de una dimensión en memoria . Fortran y C utilizan diferentes esquemas para sus matrices nativas. Fortran utiliza "Column Major" ( AoS ), en el que todos los elementos para una columna dada se almacenan de forma contigua en la memoria. C utiliza "Row Major" (SoA), que almacena todos los elementos para una fila dada de forma contigua en la memoria. LAPACK define varias representaciones matriciales en memoria. También existe la representación matricial dispersa y la representación matricial de orden Morton . Según la documentación, en LAPACK se optimiza la representación matricial unitaria . [1] [2] Algunos lenguajes como Java almacenan matrices utilizando vectores Iliffe . Estos son particularmente útiles para almacenar matrices irregulares . Las matrices son de importancia primordial en el álgebra lineal .

Operaciones matemáticas básicas

Una matriz de orden m × n (que se lee como m por n) es un conjunto de números dispuestos en m filas y n columnas. Se pueden sumar matrices del mismo orden sumando los elementos correspondientes. Se pueden multiplicar dos matrices, con la condición de que el número de columnas de la primera matriz sea igual al número de filas de la segunda matriz. Por lo tanto, si se multiplica una matriz m × n por una matriz n × r, la matriz resultante será del orden m × r. [3]

Se pueden realizar operaciones como operaciones de fila o de columna en una matriz, con las que podemos obtener la inversa de una matriz. La inversa también se puede obtener determinando el adjunto. [3] Las filas y las columnas son las diferentes clases de matrices.

En gráficos 3D

La elección de la representación para matrices 4×4 comúnmente utilizadas en gráficos 3D afecta la implementación de operaciones de matriz/vector en sistemas con instrucciones SIMD empaquetadas :

Fila mayor (SoA)

Con el orden de matriz por filas, es fácil transformar vectores mediante operaciones de producto escalar , ya que los coeficientes de cada componente son secuenciales en la memoria. En consecuencia, esta disposición puede ser conveniente si un procesador admite operaciones de producto escalar de forma nativa. También es posible utilizar de manera eficiente una matriz de transformación afín "3×4" sin relleno ni permutaciones complicadas.

Columna mayor (AoS)

Con el orden de columnas principales, se puede implementar una multiplicación de "matriz × vector" con operaciones de multiplicación-suma vectorizadas , si los componentes del vector se transmiten a cada carril SIMD . También es fácil acceder a los vectores base representados por una matriz de transformación como vectores de columna individuales, ya que son contiguos en la memoria.

Véase también

Referencias

  1. ^ "Representación de matrices unitarias o ortogonales". Universidad de Texas en Austin . Consultado el 14 de septiembre de 2011 .
  2. ^ Lehoucq, R. (1996). "El cálculo de matrices unitarias elementales". ACM Transactions on Mathematical Software . 22 (4): 393–400. doi :10.1145/235815.235817. hdl : 1911/101830 .
  3. ^ ab Ramana, BV (2008). Matemáticas de ingeniería superior . Nueva Delhi: Tata Mcgraw-Hill. ISBN 978-0-07-063419-0.

Enlaces externos