stringtranslate.com

Notación de índice

En matemáticas y programación informática , la notación de índice se utiliza para especificar los elementos de una matriz de números. El formalismo de cómo se utilizan los índices varía según el tema. En particular, existen diferentes métodos para hacer referencia a los elementos de una lista, un vector o una matriz, dependiendo de si se escribe un artículo matemático formal para publicación o si se escribe un programa de computadora .

En matemáticas

Con frecuencia resulta útil en matemáticas referirse a los elementos de una matriz mediante subíndices. Los subíndices pueden ser números enteros o variables . La matriz toma la forma de tensores en general, ya que estos pueden tratarse como matrices multidimensionales. Los casos especiales (y más familiares) son los vectores (matrices 1d) y matrices (matrices 2d).

Lo siguiente es sólo una introducción al concepto: la notación de índice se utiliza con más detalle en matemáticas (particularmente en la representación y manipulación de operaciones tensoriales ). Consulte el artículo principal para obtener más detalles.

Matrices unidimensionales (vectores)

Un vector tratado como una matriz de números escribiéndolo como un vector de fila o un vector de columna (el que se use depende de la conveniencia o el contexto):

La notación de índice permite indicar los elementos de la matriz simplemente escribiendo a i , donde se sabe que el índice i va de 1 a n , debido a las n dimensiones. [1] Por ejemplo, dado el vector:

entonces algunas entradas son

.

La notación se puede aplicar a vectores en matemáticas y física . La siguiente ecuación vectorial

también se puede escribir en términos de los elementos del vector (también conocidos como componentes), es decir

donde los índices toman un rango determinado de valores. Esta expresión representa un conjunto de ecuaciones, una para cada índice. Si cada uno de los vectores tiene n elementos, es decir, i = 1,2,… n , entonces las ecuaciones son explícitamente

Por lo tanto, la notación de índice sirve como una abreviatura eficiente para

  1. representar la estructura general de una ecuación,
  2. si bien es aplicable a componentes individuales.

matrices bidimensionales

Los elementos de la matriz A se describen con dos subíndices o índices.

Se utiliza más de un índice para describir matrices de números, en dos o más dimensiones, como los elementos de una matriz (ver también la imagen a la derecha);

La entrada de una matriz A se escribe usando dos índices, digamos i y j , con o sin comas para separar los índices: a ij o a i,j , donde el primer subíndice es el número de fila y el segundo es el número de columna. La yuxtaposición también se utiliza como notación para la multiplicación; esto puede ser una fuente de confusión. Por ejemplo, si

entonces algunas entradas son

.

Para índices mayores que 9, puede ser preferible la notación basada en comas (por ejemplo, 3,12 en lugar de 312 ) .

Las ecuaciones matriciales se escriben de manera similar a las ecuaciones vectoriales, como

en términos de los elementos de las matrices (también conocidos como componentes)

para todos los valores de i y j . Nuevamente esta expresión representa un conjunto de ecuaciones, una para cada índice. Si cada una de las matrices tiene m filas y n columnas, es decir, i = 1, 2,…, my j = 1 , 2 ,…, n , entonces hay mn ecuaciones.

Matrices multidimensionales

La notación permite una clara generalización a matrices multidimensionales de elementos: tensores. Por ejemplo,

representando un conjunto de muchas ecuaciones.

En el análisis tensorial, se utilizan superíndices en lugar de subíndices para distinguir entidades covariantes de contravariantes, consulte covarianza y contravarianza de vectores y aumento y disminución de índices .

en informática

En varios lenguajes de programación, la notación de índice es una forma de abordar los elementos de una matriz. Este método se utiliza porque es el más cercano a cómo se implementa en lenguaje ensamblador, donde la dirección del primer elemento se usa como base y un múltiplo (el índice) del tamaño del elemento se usa para la dirección dentro de la matriz.

Por ejemplo, si una matriz de números enteros se almacena en una región de la memoria de la computadora que comienza en la celda de memoria con la dirección 3000 (la dirección base ), y cada número entero ocupa cuatro celdas (bytes), entonces los elementos de esta matriz están en la memoria. ubicaciones 0x3000, 0x3004, 0x3008,…, 0x3000 + 4( n − 1) (tenga en cuenta la numeración de base cero ). En general, la dirección del i- ésimo elemento de una matriz con dirección base b y tamaño de elemento s es b + es .

Detalles de implementacion

En el lenguaje de programación C , podemos escribir lo anterior como *(base + i)(forma de puntero) o base[i](forma de indexación de matriz), que es exactamente equivalente porque el estándar C define la forma de indexación de matriz como una transformación a forma de puntero. Casualmente, dado que la suma de punteros es conmutativa, esto permite expresiones oscuras como 3[base]which es equivalente a base[3]. [2]

matrices multidimensionales

Las cosas se vuelven más interesantes cuando consideramos matrices con más de un índice, por ejemplo, una tabla bidimensional. Tenemos tres posibilidades:

En C, se pueden utilizar los tres métodos. Cuando se utiliza el primer método, el programador decide cómo se distribuyen los elementos de la matriz en la memoria de la computadora y proporciona las fórmulas para calcular la ubicación de cada elemento. El segundo método se utiliza cuando el número de elementos en cada fila es el mismo y se conoce en el momento en que se escribe el programa. El programador declara que la matriz tiene, digamos, tres columnas escribiendo, por ejemplo elementtype tablename[][3];, . Luego se hace referencia a un elemento particular de la matriz escribiendo tablename[first index][second index]. El compilador calcula el número total de celdas de memoria ocupadas por cada fila, usa el primer índice para encontrar la dirección de la fila deseada y luego usa el segundo índice para encontrar la dirección del elemento deseado en la fila. Cuando se utiliza el tercer método, el programador declara que la tabla es una matriz de punteros, como en elementtype *tablename[];. Cuando el programador especifica posteriormente un elemento en particular tablename[first index][second index], el compilador genera instrucciones para buscar la dirección de la fila especificada por el primer índice y usar esta dirección como base al calcular la dirección del elemento especificado por el segundo índice.

void mult3x3f ( resultado flotante [][ 3 ], const float A [][ 3 ], const float B [][ 3 ]) { int i , j , k ; para ( i = 0 ; i < 3 ; ++ i ) { para ( j = 0 ; j < 3 ; ++ j ) { resultado [ i ] [ j ] = 0 ; para ( k = 0 ; k < 3 ; ++ k ) resultado [ i ][ j ] += A [ i ][ k ] * B [ k ][ j ]; } } }                                                

En otros idiomas

En otros lenguajes de programación como Pascal, los índices pueden comenzar en 1, por lo que la indexación en un bloque de memoria se puede cambiar para que se ajuste a un esquema de direccionamiento de inicio en 1 mediante una simple transformación lineal; en este esquema, la ubicación de memoria del i El ésimo elemento con dirección base by tamaño de elemento s es b + ( i − 1) s .

Referencias

  1. ^ Una introducción al análisis tensorial: para ingenieros y científicos aplicados, JR Tyldesley, Longman, 1975, ISBN  0-582-44355-5
  2. ^ Programación con C++, J. Hubbard, Schaum's Outlines, McGraw Hill (EE. UU.), 1996, ISBN 0-07-114328-9