La representación matricial es un método utilizado por un lenguaje informático para almacenar matrices de más de una dimensión en la memoria . Fortran y C usan diferentes esquemas para sus matrices nativas. Fortran utiliza "Column Major", en la que todos los elementos de una columna determinada se almacenan de forma contigua en la memoria. C usa "Row Major", que almacena todos los elementos de una fila determinada de forma contigua en la memoria. LAPACK define varias representaciones matriciales en la memoria. También hay representación de matriz dispersa y representación de matriz de orden de Morton . Según la documentación, en LAPACKla representación matricial unitaria está optimizada. [1] [2] Algunos lenguajes como Java almacenan matrices usando vectores Iliffe . Son particularmente útiles para almacenar matrices irregulares . Las matrices son de primordial importancia en el álgebra lineal .
Operaciones matemáticas básicas
Una matriz de orden m × n (leído como m por n) es un conjunto de números dispuestos en m filas yn columnas. Se pueden agregar matrices del mismo orden agregando 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 una matriz m × n se multiplica por una matriz n × r, entonces la matriz resultante será del orden m × r. [3]
Las operaciones como las operaciones de fila u operaciones de columna se pueden realizar en una matriz, mediante la cual podemos obtener la inversa de una matriz. La inversa también se puede obtener determinando el adjunto. [3] filas y columnas son las diferentes clases de matrices
Conceptos básicos de la matriz 2D
La definición matemática de una matriz encuentra aplicaciones en la informática y la gestión de bases de datos, siendo un punto de partida básico el concepto de matrices . Una matriz bidimensional puede funcionar exactamente como una matriz. Las matrices bidimensionales se pueden visualizar como una tabla que consta de filas y columnas.
int a[3][4]
, declara una matriz entera de 3 filas y 4 columnas. El índice de la fila comenzará desde 0 y subirá hasta 2.- De manera similar, el índice de la columna comenzará desde 0 y aumentará hasta 3. [4]
Columna 0 | Columna 1 | Columna 2 | Columna 3 | |
---|---|---|---|---|
fila 0 | a [0] [0] | a [0] [1] | a [0] [2] | a [0] [3] |
fila 1 | a [1] [0] | a [1] [1] | a [1] [2] | a [1] [3] |
fila 2 | a [2] [0] | a [2] [1] | a [2] [2] | a [2] [3] |
Esta tabla muestra la disposición de los elementos con sus índices.
Inicialización de matrices bidimensionales: las matrices bidimensionales se pueden inicializar proporcionando una lista de valores iniciales.
int a [ 2 ] [ 3 ] = { 1 , 2 , 3 , 4 , 5 , 6 };
o
int a [ 2 ] [ 3 ] = {{ 2 , 3 , 4 }, { 4 , 4 , 5 }};
Cálculo de dirección
Una matriz m × n ( a[1...m][1...n]
) donde el índice de fila varía de 1 am y el índice de columna de 1 an, a ij denota el número en la i- ésima fila y la j- ésima columna. En la memoria de la computadora, todos los elementos se almacenan linealmente usando direcciones contiguas. Por lo tanto, para almacenar una matriz bidimensional a, el espacio de direcciones bidimensional debe asignarse a un espacio de direcciones unidimensional. En la memoria de la computadora, las matrices se almacenan en orden de fila principal o en forma de orden de columna principal .
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 matriciales / vectoriales en sistemas con instrucciones SIMD empaquetadas :
Fila mayor
Con el orden de la matriz de filas principales, es fácil transformar vectores utilizando operaciones de productos escalares, ya que los coeficientes de cada componente son secuenciales en la memoria. En consecuencia, este diseño puede ser deseable si un procesador admite operaciones de productos punto de forma nativa. También es posible utilizar eficientemente una matriz de transformación afín '3 × 4' sin relleno o permutaciones incómodas.
Columna mayor
Con el orden de columna mayor, se puede implementar una multiplicación de "matriz × vector" con operaciones vectorizadas de multiplicar-sumar , 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.
Ver también
Referencias
- ^ "Representación de matrices ortogonales o unitarias" . Universidad de Texas en Austin . Consultado el 14 de septiembre de 2011 .
- ^ Lehoucq, R. (1996). "El cálculo de matrices unitarias elementales". Transacciones ACM en software matemático . 22 (4): 393–400. doi : 10.1145 / 235815.235817 . hdl : 1911/101830 .
- ^ a b Ramana, BV (2008). Matemáticas de ingeniería superior . Nueva Delhi: Tata Mcgraw-Hill. ISBN 978-0-07-063419-0.
- ^ Balagurusamy, E (2006). Programación en ANSI C . Nueva Delhi: Tata McGraw-Hill.