0.5
Matrices

Lo primero que necesitamos es la forma en que se escriben las matrices en Mathematica.  Recordemos que cada fila corresponde a una lista y que los elementos de ésta  van entre llaves separados por comas. Las matrices se pueden escribir directamente, aunque a veces, si sus elementos proceden de evaluar cierta función, se pueden construir con Table.
     Damos algunos ejemplos:

Clear["Global`*"]

a1=Table[1/(i+j),{i,5},{j,5}];

a2={{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8},
       {5,6,7,8,9},{6,7,8,9,10}};

a3={{1,1,1,1,1},{1,1,1,1,1},{1,1,1,1,1},
        {1,1,1,1,1},{1,1,1,1,1}};

a4={{1,0},{0,0},{0,0},{0,0},{0,1}};
a5={0,1,0,0,0}

Podemos presentar las matrices en el formato que les es propio:

MatrixForm[a1]

MatrixForm[a2]

Como Mathematica opera en modo simbólico, salvo que se indique lo contrario, si queremos ver los elementos de la matriz a1 con 2 cifras significativa, debemos pedir el valor numérico:

MatrixForm[N[a1,2]]

Operaciones

Suma y resta de matrices.

La ejecución de las correspondientes celdillas mostrará cuáles de las siguientes operaciones no son posibles.

a1-a1

a2+a3

a1+a2+a3

a3+a4

Nótense los mensajes de error anteriores y las salidas correspondientes.

Producto por escalares

Para ver cómo se multiplica una matriz por un escalar será suficiente que consideremos algunos ejemplos.

7a3

7*a3

a3/7

1/7 a3

Nótense los mensajes de error anteriores y las salidas correspondientes.

Producto de matrices

Para multiplicar dos matrices hay que emplear el símbolo  "." entre ambas. Si se deja un espacio o se emplea el signo " * " lo que hace es multiplicar elemento a elemento entre los que ocupan la misma posición. Cuando una matriz es de tipo fila o columna Mathematica la considera convenientemente como tal y, por tanto, en los ejemplos anteriores es posible efectuar a5.a1 y a1.a5, pues, en el primer caso, considerada a5 como matriz fila, es posible la multiplicación y, en el segundo caso, considerado como columna,  también es posible efectuar la multiplicación. A continuación se incluyen diferentes operaciones. Se observará que es posible efectuar algunas  y otras no.

a2.a3

a1.a2.a3

a3.a5

a4.a1

a5.a2

a5*a2

a2*a3

a4 a4

Una operación importante al trabajar con matrices cuadradas es hallar potencias de las mismas. Este problema se reduce a calcular el producto de una matriz consigo misma un determinado número de veces. Sin embargo, si la potencia es alta, para evitar la utilización de una sentencia For o Do, Mathematica dispone de un comando que produce directamente el resultado buscado. Es

                                      MatrixPower[matriz,exponente].

   Si exponente es un número natural, proporciona la correspondiente potencia de la matriz, mientras que si es un entero negativo se obtiene como salida la potencia indicada de la matriz inversa (si matriz es invertible).

Por ejemplo, la cuarta potencia de la matriz a2 es

MatrixPower[a2,4]

Inversa, Traspuesta y Determinante de una matriz.

Las matrices inversa y traspuesta de una matriz, así como su determinante, se obtienen con las sentencias Inverse[matriz], Transpose[matriz], y Det[matriz], respectivamente. Las siguientes instrucciones permiten determinar si la matriz a1 considerada tiene inversa o no.

If[Det[a1]==0,
   Print["la matriz considerada no tiene inversa"],
   a11=Inverse[a1]
   ]

Podemos hallar su determinante, así como presentarla en formato matricial.

Det[a1]

MatrixForm[a11.a1]

También podemos hallar el determinante de la matriz a2.

Det[a2]

Esta matriz, en consecuencia, no tiene inversa.

Consideremos una nueva matriz y algunos hechos sobre ella.

m={{5,0,0,0,0},{2,4,0,0,0},{1,0,6,0,0},{1,1,1,1,0},{2,0,1,0,1}}

MatrixForm[m]

Det[m]

im=Inverse[m]

MatrixForm[im]

Det[im]

MatrixForm[Transpose[m]]

Rango de una matriz

Una operación que hay que efectuar a menudo al tratar problemas en los que intervienen matrices consiste en calcular el núcleo. Disponemos de varios procedimientos, de los que vamos a reflejar dos.

Menores de una matriz.

La forma habitual de determinar el rango de una matriz consiste en determinar el orden máximo de las submatrices con determinante no nulo. Para ello utilizamos la orden

                            Minors[matriz,orden]

   Produce los menores de la matriz indicada del orden que se especifica. Conviene presentar un ejemplo.

Definimos una matriz.

matriz=Table[i+j,{i,5},{j,3}]

Su rango puede ser, a lo sumo, tres. Hallamos, por tanto, los menores de orden tres.

Minors[matriz,3]

Observamos que todos son nulos, por lo que el rango es inferior a tres.

Pasamos a los de orden dos.

Minors[matriz,2]

Como alguno de ellos es no nulo (realmente, todos), la matriz es de rango dos.

Si quisiésemos saber qué filas y columnas son las que producen un menor de orden igual al rango, deberíamos conocer la forma de operar de la orden Minors. Para ello, definiremos un matriz arbitraria de un orde determinado y le aplicaremos la mencionada instrucción.

Clear["Global`*"]
matriz={{a1,a2,a3},{b1,b2,b3},{c1,c2,c3},{d1,d2,d3},{e1,e2,e3}};

Es inmediato ver cómo opera Minors para producir los menores de orden uno.

Minors[matriz,1]

¿Cómo actúa con los de orden dos?.

menores2=Minors[matriz,2];

La lista anterior, que no ha sido mostrada por contener un número elevado de elementos, es de orden 10x3, como se comprueba fácilmente:

Dimensions[menores2]

Veamos su primera lista componente.

menores2[[1]]

Su primer elemento es

menores2[[1,1]]

Es el determinante asociado a la submatriz

                            {{a1,a2},
                             {b1,b2}}

de la matriz considerada, formada con las columnas primera y segunda de las filas primera y segunda.

El segundo elemento es

menores2[[1,2]]

Es el determinante asociado a la submatriz

                            {{a1,a3},
                              {b1,b3}}

de la matriz considerada, formada con las columnas primera y tercera de las filas primera y segunda.

Por último, el tercer elemento es

menores2[[1,3]]

Corresponde al determinante asociado a la submatriz

                            {{a2,a3},
                              {b2,b3}}

de la matriz considerada, formada también con las columnas segunda y tercera de las filas primera y segunda.

Es inmediato comprobar que la lista segunda de menores2 consta de similares determinantes pero correspondientes a las filas primera y tercera de la matriz de partida. Lo mismo sucede con las restantes. Se recomienda analizar el comportamiento de Minors en lo que se refiere a los de orden tres.

Reducción de la matriz por filas

Otro método para determinar el rango de una matriz es someterla a transformaciones elementales por filas, lo que se consigue con la orden RowReduce.

Vemos cómo funciona con la misma matriz numérica de la subsección anterior, que debe ser redefinida.

matriz=Table[i+j,{i,5},{j,3}];
RowReduce[matriz]
MatrixForm[%]

Apreciamos que se obtiene un matriz equivalente a la original con tres filas nulas, lo que indica que el rango es dos ¿Se puede saber con este método qué filas y columnas de la matriz de partida proporcionan la submatriz de orden igual al rango con determinante no nulo?.

Responderemos con un ejemplo. Definimos una matriz muy simple.

matriz={{0,0,1,0,0},{0,0,0,1,0},{0,0,1,1,0},{0,0,1,0,1},{0,0,0,0,1}};
MatrixForm[matriz]

La reducimos.

RowReduce[matriz]//MatrixForm

Se podría pensar que con las tres últimas columnas de las tres primeras filas se obtendría una submatriz de la matriz considerada inicialmente de orden tres de determinante no nulo. Sin embargo, se comprueba  inmediatamente que tal submatriz tiene determinante nulo. En consecuencia, la función RowReduce proporciona información sobre el rango de la matriz, entre otras cosa, pero no debe usarse para establecer qué submatriz debe considerarse.

Ejercicios

1.-  Realice un programa a partir de la orden For para multiplicar la matriz
 
                          A={{d1, d2, d3, d4}, {1, 1, 1, 1}, {dm, 0, 0, dm}, { 0, 0 ,0, 0}}

       de orden 4x4 por el vector 
  
                          v={d1, dm, d5, d2}

       generando como salida el vector b. Compruebe que se obtiene el mismo resultado al procesar la orden A.v

2.- Se considera la matriz

             a={{1, 1, 1, 1, 1},
                    {1+2 d2, 1, 1+2 d2, 1+4 d2, 1-d2},
                    {1-2 dm, 3, -1-2 dm, -1-4 dm, dm},
                    {2, 0, 4, 3, 1},
                    {2 dm, -1, 2+2 dm, 3+4 dm, 6-dm}}

     Halle su traspuesta. Asimismo, determine las matrices a^2 y a^3. ¿Cuál es el determinante de a? ¿Es invertible? En caso afirmativo, halle su inversa. Reduzca por filas la matriz a. ¿Cuál es el rango de a?

3.- Sea la matriz

             a={{1, 1, 1, 1, 1},
                    {1, 0, 1, 0, 1},
                    {5 d1+d2, 5 d1, d2-5 d1, 5 d1, -5 d1+d2},
                    {1, -1, 3, -1, 3}}

      Halle los menores de órdenes 4 y 3. ¿Qué rango tiene a? Halle un menor que proporcione tal rango.

      Consideremos la matriz

              b={{1, 1, 1, 1, 1},
                     {1, 1, 1, 1, 0},
                     {1, 1, 1, 0, 0},
                     {1, 1, 1, 0, -1}}

       ¿Hay algún conjunto de transformaciones elementales por filas que transforme la matriz a en b?

4.- Sea v el vector de coordenadas (3 d4, -13 ds, 23) respecto a la base canónica de R^3.
      Se consideran también los siguientes conjuntos:

                                              base1={(1, 2, 3), (2, 3, 4), (3, 4, 6)}
                                              base2={(1, 0, 1), (0, 1, 2), (0, 0, 3)}
                                              base3={(-1, -2, 2), (2, 2, 2), (50, 100, -30)}

    a) Compruebe que base1, base2 y base3 son bases de R^3.
    b) Halle las matrices de cambio de base de la base canónica a base1, de base1 a base2, de base2 a base3 y de base1 a base3.
    c) Escriba v en las tres bases. Compruebe la correción de los resultados y que para hallar sus coordenadas respecto de base3 da igual pasar por base2 que utilizar directamente la matriz de cambio de base de base1 a base3.

5.- Sean B1={u1,u2,u3} y B2={v1,v2,v3} dos bases de R^3 relacionadas de la siguiente manera:
                                               v1=u1- u2+ ds u3
                                               v2=u1+ dm u2
                                               v3=-u1

     Si un vector v tiene coordenadas (1, -dm, ds) respecto de B1, ¿cuáles son sus coordenadas respecto de B2?

6.- Se considera la aplicación lineal f:R^3 ->R^2 dada por

                                             f(x, y, z)=(x+y, y+ds z)

     a) Halle su matriz asociada respecto de las bases canónicas de R^3 y R^2.
     b) Halle el transformado del vecto v=(d3, ds, dm), que se supone expresado en la base canónica de R^3.

7.- Se considera el endomorfismo f: R^4 -> R^4 que, respecto de la base canónica de R^4, tiene como matriz asociada
       {(ds, 1, 1, 1), (1, 2, 1, 1), (1, 1, 2, 1), (1, 1, 1, (2 ds -1)/(3 ds -2))}

     a) Halle una base y las ecuaciones implícitas de su núcleo.
     b) Halle una base y las ecuaciones implícitas de su imagen.
     c) Determine si el vector (-3 + 4 ds, -3 + 3 ds, -2 + 3 ds, -1 + 2 ds) pertenece a la imagen de f.

8.- Sea 
                    A={(1, 1, 1, d1, d2), (2, 2, 2, d3, d4), (3, 3, d3, d5, d6), (4, 4, 4, d1, d6)}

     Supongamos que A representa una aplicación entre dos espacios vectoriales de dimensiones 5 y 4, respectivamente.

     a) Halle una base del núcleo de dicha aplicación.
     b) Escriba un vector, distinto de los de la base del núcleo, que se transforme mediante la aplicación lineal en el cero del segundo espacio vectorial.
     c) Calcule la imagen de (1, 0, 0, 0, 1).

9.- Sea A la siguiente matriz:

                           A={(dm, 0, 0), (d1, ds, dm), (d2, dm, ds)}

     Diagonalice A

10.- Con los datos del ejercicio anterior compruebe que, simmD es la matriz diagonal resultante al diagonalizar A y P la de paso, entonces la potencia quinta de A vale

                                                                P. mD^5.P^(-1)

11.- Calcule los vectores propios de la matriz A={(2, 5, 0), (0, 3, 5), (0, 0, 3)} y las dimensiones de los subespacios propios y determine si la matriz A es diagonalizable o no.

12.- Para la matriz A={(20.1, 1, 5), (2, 2, 2), (-8, -3, 5)}, calcule todos los valores y vectores propios usdando las órdenes Eigenvalues y Eigenvectors.