Notación de índice

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Manner de referirse a elementos de arrays o tensores

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 referirse a los elementos de una lista, un vector o una matriz, dependiendo de si se está escribiendo un artículo matemático formal para su publicación o si se está escribiendo un programa de computadora.

En matemáticas

Con frecuencia es útil en matemáticas referirse a los elementos de una matriz usando 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 (arreglos 1d) y las matrices (arreglos 2d).

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

Matrices unidimensionales (vectores)

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

a=()a1a2⋮ ⋮ an),a=()a1a2⋯ ⋯ an){displaystyle mathbf {a} ={begin{pmatrix}a_{1}a_{2}\vdots \a_{n}end{pmatrix}},quad mathbf {a} ={begin{pmatrix}a_{1} limita_{2} {fn}}

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

a=()1089635){displaystyle mathbf {a} ={begin{pmatrix}10 implica8 tendrían que haber tenido una relación3 con la otra.

entonces algunas entradas son

a1=10,a2=8,⋯ ⋯ ,a6=5{displaystyle a_{1}=10,,a_{2}=8,,cdots,a_{6}=5}.

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

a+b=c{displaystyle mathbf {a} # Mathbf {b} = 'mathbf {c}

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

ai+bi=ci{displaystyle A_{i}+b_{i}=c_{i}

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

a1+b1=c1a2+b2=c2⋮ ⋮ an+bn=cn{displaystyle {begin{aligned}a_{1}+b_{1} limit=c_{1}a_{2}+b_{2} vdots {fn}

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

  1. representando la estructura general a una ecuación,
  2. mientras se aplica a los componentes individuales.

Arreglos bidimensionales

Elementos de la matriz A se describen con dos subscriptos o índices.

Se usa 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);

A=()a11a12⋯ ⋯ a1na21a22⋯ ⋯ a2n⋮ ⋮ ⋮ ⋮ ⋱ ⋱ ⋮ ⋮ am1am2⋯ ⋯ amn){displaystyle mathbf {A} ={begin{pmatrix}a_{11} limita_{12}cdots ################################################################################################################################################################################################################################################################ 'a_{2n}\vdots > 'vdots > \a_{m1} {m2}

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

A=()986127492605){displaystyle mathbf {A} ={begin{pmatrix}9 tendrían una relación61 tendrían un doble contacto74 con un tercero26 uno de los dos últimos cinco años.

entonces algunas entradas son

a11=9,a12=8,a21=1,⋯ ⋯ ,a23=7,⋯ ⋯ {displaystyle a_{11}=9,,a_{12}=8,,a_{21}=1,,cdots,a_{23}=7,,cdots }.

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

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

A+B=C{displaystyle mathbf {A} +mathbf {B} =mathbf {C}

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

Aij+Bij=Cij{displaystyle A_{ij}+B_{ij}=C_{ij}

para todos los valores de i y j. De nuevo, esta expresión representa un conjunto de ecuaciones, una para cada índice. Si cada una de las matrices tiene m filas y n columnas, lo que significa i = 1, 2, …, m y j = 1, 2, …, n, luego hay son mn ecuaciones.

Arreglos multidimensionales

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

Ai1i2⋯ ⋯ +Bi1i2⋯ ⋯ =Ci1i2⋯ ⋯ {displaystyle A_{i_{1}i_{2}cdots }+B_{i_{1}i_{2}cdots - ¿Qué?

que representa un conjunto de muchas ecuaciones.

En el análisis de tensor, se utilizan superíndices en lugar de subíndices para distinguir las entidades covariantes de las contravariantes, consulte covarianza y contravarianza de vectores e índices ascendentes y descendentes.

En informática

En varios lenguajes de programación, la notación de índice es una forma de direccionar los elementos de una matriz. Este método se usa porque es más parecido 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 direccionar dentro de la matriz.

Por ejemplo, si una matriz de 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 entero ocupa cuatro celdas (bytes), entonces el los elementos de esta matriz están en las ubicaciones de memoria 0x3000, 0x3004, 0x3008, …, 0x3000 + 4(n − 1) (tenga en cuenta la numeración basada en cero). En general, la dirección del elemento ith de una matriz con dirección base b y tamaño de elemento s es b + es.

Detalles de implementación

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. Coincidentemente, dado que la suma de punteros es conmutativa, esto permite expresiones oscuras como 3[base] que es equivalente a base[3 ].

Arreglos multidimensionales

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

  • hacer la matriz bidimensional unidimensional computando un único índice de los dos
  • considerar un array unidimensional donde cada elemento es otro array unidimensional, es decir, un array de arrays
  • utilizar almacenamiento adicional para mantener la matriz de direcciones de cada fila de la matriz original, y almacenar las filas de la matriz original como arrays de una dimensión separada

En C, se pueden usar 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 conocido en el momento de escribir el programa. El programador declara que la matriz tiene, digamos, tres columnas escribiendo, p. elementtype tablename[][3];. Luego, uno se refiere a un elemento particular de la matriz escribiendo tablename[first índice][segundo índice]. 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 usa el tercer método, el programador declara que la tabla es una matriz de punteros, como en tipo de elemento *nombre de tabla[];. 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 usa esta dirección como base al calcular la dirección del elemento especificado por el segundo índice.

vacío mult3x3f()flotador resultado[][3] const flotador A[][3] const flotador 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 ajustarse a un esquema de direccionamiento de inicio en 1 mediante una transformación lineal simple; en este esquema, la ubicación de la memoria del elemento iésimo con la dirección base b y el tamaño del elemento s es b + (i − 1)s.

Contenido relacionado

WAN

WAN o Wan también pueden referirse...

Hiperconversación

HyperTalk es un lenguaje de programación procedimental de alto nivel discontinuado creado en 1987 por Dan Winkler y utilizado junto con el programa...

Almacenamiento

Almacenamiento puede referirse...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save