ALGEBRA LINEAL

Construyendo matrices

Table[f, {i, m}, {j, n}]
Construye una matriz de m x n elementos donde f es una función de i y j dados a la entrada.

Array[f, {m, n}]
Construye una matriz de m x n elementos donde f es una función.

ConstantArray[a, {m, n}]
Construye una matriz de m x n elementos con todas las entradas iguales a a

DiagonalMatrix[list]
Genera la matriz diagonal con los elementos dados en la lista.

IdentityMatrix[n]
Genera la matriz identidad de n x n.

Normal[Sparse Array[{{i1, j1} ->v1, {i2, j2} ->v2, ...}, {m, n}]]
Genera una matriz con valores distintos de cero (Subscript[v, k]) en las posiciones {(Subscript[i, k]),(Subscript[j, k])}

Ejemplos:

Clear["Global`*"]

Genera una matriz simbólica de 2 por 2:

Table[a[i,j],{i,2},{j,2}]

Otra forma de generarla:

Array[a,{2,2}]

MatrixForm[%]

Podemos generar una matriz de 3 x 2 con ceros:

ConstantArray[0,{3,2}]

MatrixForm[%]

Podemos generar una matriz diagonal:

Genera una matriz de 3 x 3 donde todos lo términos serán ceros menos los de la diagonal.

DiagonalMatrix[{a,b,c}]

MatrixForm[%]

Podemos generar una matriz identidad de n x n elementos:

IdentityMatrix[4]

MatrixForm[%]

Podemos crear una matriz de 3 x 4 con valores distintos de cero en las posiciones:

Normal[SparseArray[{{2,3}->a,{3,2}->b},{3,4}]]

MatrixForm[%]

Tipos de matrices especiales

Table[0, {m}, {n}]
Genera una matriz de ceros.

Table[If [i > = j, 1, 0], {i, m}, {j, n}]
Genera una matriz triangular.

RandomReal[{0, 1},{m, n}]
Genera una matriz con números aleatorios.

Ejemplos:

Podemos generar una matriz identidad de n x n elementos donde todos son ceros.

Table[0, {3},{3}]

MatrixForm[%]

Table[0, {3},{2}]

MatrixForm[%]

La tabla evalúa If[i>=j, a++, 0] por separado para cada elemento, para dar una matriz con entradas que aumenta secuencialmente en la parte triangular inferior:

a=1;Table[If[i≥j,a++,0],{i,3},{j,3}]

MatrixForm[%]

Podemos generar una matriz de m x n números aleatorios comprendidos entre 0 y 1:

RandomReal[{0,1},{3,2}]

MatrixForm[%]

Obtención y configuración de las partes de una matriz

m [[i, j]]
Da la entrada del término (i, j).

m [[i]]
Me da la fila iésima.

m [[All, i]]
Transpose [m] [[i]]
Me da la columna iésima.

Take [m, {i0, i1}, {j0, j1}]]
Genera la submatriz con las filas de i0 a i1 y columnas j0 a j1.

Tr [m, list]
Lista los elementos de la diagonal.

ArrayRules [m]
Da una lista los elmentos distintos de cero.

Clear["Global`*"]

Ejemplos:

Una simple matriz de tres por tres de forma simbólica:

t=Array[a,{3,3}]

MatrixForm[%]

Deseo obtener el elemento (2,3):

t[[2,3]]

Si queremos obtener la segunda fila de la matriz:

t[[2]]

MatrixForm[%]

Si queremos obtener la segunda columna de la matriz:

t[[All,2]]

MatrixForm[%]

Otra forma de obtener la segunda columna de la matriz:

Transpose[t][[2]]

MatrixForm[%]

Si queremos obtener una submatríz a partir de la matriz dada:

Por ejemplo, obtener una submatríz desde el elemento (1, 2) al elemento (2, 3) de la matriz a:

Take[t,{1,2},{2,3}]

MatrixForm[%]

Restablecimiento de partes de las matrices:

m = {{a11, a12, ...}, {a21, a22, ...}, ...}
Asigna m a una matriz.

m [[i, j]] = a
Asigna el elemento [i, j] a a.

m [[i]] = a 
Asigna la fila i a a.

m [[i]] = {a1, a2, ...}
Asigna la fila i al vector {a1, a2, ...}

m [[i0; ; i1]] = {a1, a2, ...}
Asigna las filas i0, hasta i1 i al vector {v1, v2, ...}

m [[All, j]] = a
Asigna todos los elementos de la columna j a a.

m [[All, j]] = {a1, a2, ...}
Asigna todos los elementos de la columna j a {a1, a2, ...}.

m [[i0; ; i1, j0; ; j1]] = {{a11, a12, ...}, {a21, a22, ...}, ...
Asigna la submatriz con las filas desde i0 hasta i1 y las columnas desde j0 hasta j1 a nuevosa valores.

Ejemplos:

Clear["Global`*"]

Definimos una matriz de 3 x 3 y le damos un nombre:

m = {{a,b,c}, {d,e,f},{g,h,i}}

MatrixForm[%]

Asignamos al elemento (2, 2) el valor de x en la matriz m. Y escribimos la matriz para verlo:

m[[2,2]]=x;

MatrixForm[m]

Asignamos a todos los elementos de la segunda columna el valor de z en la matriz m. Y escribimos la matriz:

m[[All, 2]]= z

MatrixForm[m]

Asignamos a los elementos de la segunda columna los valores de {i, j, k} respectivamente y escribimos la matriz:

m[[All, 2]]= {i, j, k};m

MatrixForm[m]

Incrementamos todos los valores de la segunda columna y escribimos la matriz:

m[[All, 2]]++;m

MatrixForm[m]

Podemos especificar un rango de índices usando ;; (Span). Esto modifica las primeras dos filas a nuevos vectores:

m[[1;;2]]={{u,v,w},{x,y,z}};m

MatrixForm[%]

Podemos modificar la primera y tercera columnas de cada fila:

m[[All,1;;3;;2]]={{1,2},{3,4},{5,6}};m

MatrixForm[%]

Podemos modificar los elementos de la primera y tercera columna de la fila 2 hasta la 3:

m[[2;;3,1;;3;;2]]={{a,b},{c,d}};m

MatrixForm[%]