"65listasvsmatrices_1.gif"
por José Luis Gómez Muñoz       
http://www.globalcomputing.com.mx/

Listas

Aquí creamos una lista y la guardamos en la variable "miLista". Nótese que en el nombre de la variable estamos usando mayúsculas, pero que no le pusimos mayúscula a la primera letra. Esto es una buena idea para distinguir los nombres que el usuario define de los nombres que ya tiene Mathematica definidos, ya que estos últimos siempre comienzan con mayúsculas:

"65listasvsmatrices_2.gif"

"65listasvsmatrices_3.gif"

Aquí obtenemos el quinto elemento de la lista:

"65listasvsmatrices_4.gif"

"65listasvsmatrices_5.gif"

Otra vez obtenemos el quinto elemento de la lista:

"65listasvsmatrices_6.gif"

"65listasvsmatrices_7.gif"

Aquí obtenemos el quinto y el octavo elementos de la lista

"65listasvsmatrices_8.gif"

"65listasvsmatrices_9.gif"

Aquí obtenemos el quinto, sexto, séptimo y octavo elementos de la lista

"65listasvsmatrices_10.gif"

"65listasvsmatrices_11.gif"

Otra vez obtenemos el quinto, sexto, séptimo y octavo elementos de la lista

"65listasvsmatrices_12.gif"

"65listasvsmatrices_13.gif"

Aquí obtenemos los tres primeros elementos de la lista:

"65listasvsmatrices_14.gif"

"65listasvsmatrices_15.gif"

Ahora creamos una lista cuyos elementos son listas:

"65listasvsmatrices_16.gif"

"65listasvsmatrices_17.gif"

Aquí obtenemos el tercer elemento:

"65listasvsmatrices_18.gif"

"65listasvsmatrices_19.gif"

Aquí obtenemos el primer elemento del tercer elemento de la lista:

"65listasvsmatrices_20.gif"

"65listasvsmatrices_21.gif"

Aquí obtenemos los segundos elementos de todos los elementos de la lista

"65listasvsmatrices_22.gif"

"65listasvsmatrices_23.gif"

Aquí desplegamos la lista en forma tabular:

"65listasvsmatrices_24.gif"

a b c
d e
f g h
i j

Aquí desplegamos la lista en forma de Grid:

"65listasvsmatrices_25.gif"

a b c
d e
f g h
i j

Aquí formamos una grid con los primeros dos renglones y las primeras dos columnas

"65listasvsmatrices_26.gif"

a b
d e

Aquí formamos una tabla con todos los renglones y las primeras dos columnas

"65listasvsmatrices_27.gif"

a b
d e
f g
i j

Aquí creamos una nueva lista, que consiste en añadir a listaDeListas el renglón {x,y,z}

"65listasvsmatrices_28.gif"

"65listasvsmatrices_29.gif"

Aquí desplegamos la nuevaLista en forma de Grid

"65listasvsmatrices_30.gif"

a b c
d e
f g h
i j
x y z

Si usamos nuevaLista como argumento de la función Cos[ ], entonces se genera una nueva lista con los cosenos de cada elemento:

"65listasvsmatrices_31.gif"

"65listasvsmatrices_32.gif"

"65listasvsmatrices_33.gif"

Cos[a] Cos[b] Cos[c]
Cos[d] Cos[e]
Cos[f] Cos[g] Cos[h]
Cos[i] Cos[j]
Cos[x] Cos[y] Cos[z]

Operaciones con listas y tablas

Aquí creamos una lista de listas a la que llamamos tabla1. Nótese el uso de paréntesis para forzar que primero se lleve a cabo la asignación y despues el formateo (Grid). Si no los hubieramos usado, entonces tabla1 sería igual al formato (Grid), en lugar de ser igual a la lista de listas.

"65listasvsmatrices_34.gif"

a b c
d e f
f g h

Aquí creamos otra lista de listas a la que llamamos tabla2.

"65listasvsmatrices_35.gif"

x y z
u v w
r s t

Aquí multiplicamos la tabla1 por la tabla2. Nótese que NO es la multiplicación de dos matrices. Por el contrario, simplemente se multiplican elemento por elemento.

"65listasvsmatrices_36.gif"

a x b y c z
d u e v f w
f r g s h t

Aquí sumamos un número a la tabla, lo cual se traduce en sumar el número a cada elemento de la tabla.

"65listasvsmatrices_37.gif"

7+a 7+b 7+c
7+d 7+e 7+f
7+f 7+g 7+h

Aquí elevamos a la cuarta potencia cada elemento de la tabla

"65listasvsmatrices_38.gif"

"65listasvsmatrices_39.gif" "65listasvsmatrices_40.gif" "65listasvsmatrices_41.gif"
"65listasvsmatrices_42.gif" "65listasvsmatrices_43.gif" "65listasvsmatrices_44.gif"
"65listasvsmatrices_45.gif" "65listasvsmatrices_46.gif" "65listasvsmatrices_47.gif"

Listas como matrices

Vamos a utilizar las tablas que definimos en la sección anterior como matrices. Para mostrar una tabla como una matriz utilizamos la "envoltura" (wrapper) MatrixForm. Esto NO cambia el contenido de tabla1, sólo lo muestra como matriz.

"65listasvsmatrices_48.gif"

"65listasvsmatrices_49.gif"

Tabla1 sigue siendo una lista de listas. El desplegarla como matriz NO la cambió.

"65listasvsmatrices_50.gif"

"65listasvsmatrices_51.gif"

Para multiplicar dos matrices, debemos escribir entre ellas un punto en lugar de un asterisco:

"65listasvsmatrices_52.gif"

"65listasvsmatrices_53.gif"

Aquí está otra vez el producto de matrices, usando un punto en lugar de un asterisco, y desplegando el resultado en forma de matriz:

"65listasvsmatrices_54.gif"

"65listasvsmatrices_55.gif"

Aquí definimos un vector.

"65listasvsmatrices_56.gif"

"65listasvsmatrices_57.gif"

Aquí multiplicamos la matriz tabla1por el vector. Nótese que usamos punto en lugar de asterisco:

"65listasvsmatrices_58.gif"

"65listasvsmatrices_59.gif"

Nótese que si usamos el asterísco, entonces NO es la multiplicación de matriz por vector, sino una multiplicación de elementos de tablas:

"65listasvsmatrices_60.gif"

"65listasvsmatrices_61.gif"

Aquí hay una tercera matriz, ahora con números:

"65listasvsmatrices_62.gif"

"65listasvsmatrices_63.gif"

Para elevar una MATRIZ a la potencia 4 usamos MatrixPower. Este es el resultado de hacer tabla3.tabla3.tabla3.tabla3 con puntos.

"65listasvsmatrices_64.gif"

"65listasvsmatrices_65.gif"

Elevar una TABLA a la cuarta potencia es como hace tabla3*tabla3*tabla3*tabla3. Esta NO es una operación de matrices, por el contrario, es una operación elemento por elemento:

"65listasvsmatrices_66.gif"

"65listasvsmatrices_67.gif"

Uso de la opción "Table/Matrix" del menú Insert

Utiliza el menu Insert, opción Table/Matrix, New, para crear la siguiente matriz en 2 segundos:

"65listasvsmatrices_68.gif"

"65listasvsmatrices_69.gif"

Un tipo de suma que no está definido

Aquí tenemos una lista de vectores 2D

"65listasvsmatrices_70.gif"

"65listasvsmatrices_71.gif"

Aquí tenemos un vector:

"65listasvsmatrices_72.gif"

"65listasvsmatrices_73.gif"

Ahora quisieramos sumar miVector a cada vector de la listaDeVectores. Pero Mathematica nos responde con un mensaje de error y no realiza la operación que queremos

"65listasvsmatrices_74.gif"

"65listasvsmatrices_75.gif"

"65listasvsmatrices_76.gif"

Abajo se muestra una forma de realizar la operación deseada. El comando MAP aplica a cada elemento de listaDeVectores el comando #+miVector&. En este último comando, el & indica que el comando es una función y el # corresponde al elemento que se está usando como argumento de esa función

"65listasvsmatrices_77.gif"

"65listasvsmatrices_78.gif"

Ejemplo de uso de matrices

Aquí tenemos una colección de puntos en 2D

"65listasvsmatrices_79.gif"

"65listasvsmatrices_80.gif"

Aquí graficamos el polígono que se forma al unir los puntos:

"65listasvsmatrices_81.gif"

"65listasvsmatrices_82.gif"

Ahora definimos una matriz de rotación. Los elementos de esta matriz son función del parámetro θ

"65listasvsmatrices_83.gif"

Este es un ejemplo del uso de la matriz. Al multiplicar el vector {1,2.5}, obtenemos otro vector que es de hecho el resultado de rotar el vector alrededor del origen un ángulo θ.

"65listasvsmatrices_84.gif"

"65listasvsmatrices_85.gif"

Utilizando el comando MAP como en la sección anterior, podemos aplicar la matriz de rotación a cada uno de los vectores en la lista misPuntos. La lista resultante se guarda en la variable nuevosPuntos:

"65listasvsmatrices_86.gif"

"65listasvsmatrices_87.gif"

Al dibujar el polígono de los nuevosPuntos se obtiene el mismo polígono que con misPuntos pero rotado 45° alrededor del origen:

"65listasvsmatrices_88.gif"

"65listasvsmatrices_89.gif"

Animación usando matrices

"65listasvsmatrices_90.gif"

"65listasvsmatrices_91.gif"

Ejercicios y Preguntas

1.- De un sólo comando multiplica cada elemento de la lista {2,3,4} por cada elemento de la lista {1,0,3} (la respuesta que debes obtener es la lista {2,0,12})
2.- De un sólo comando calcula el producto punto del vector {2,3,4} por el vector {1,0,3} (la respuesta que debes obtener es el número 14)
3.- Explica completa y claramente como es x[4] diferente de x[[4]].
4.- ¿Que signfica m[3,5]?
5.- ¿Que signfica m[[3,5]]?
6.- ¿Que signfica m[[3]][[5]]?
7.- ¿Que signfica Part[m,3,5]?
8.- ¿Que signfica Part[ Part[m,3], 5]?

"65listasvsmatrices_92.gif"
Autor: José Luis Gómez Muñoz

     Global Computing S. A. de C. V.
Florencia 57 Piso 10-01
Col. Juárez C.P. 06600
México D.F.
México
+52-(0)55-5525-2215
Fax: +52-(0)55-5514-4225

Adriana Vadillo avadillo@mx.inter.net

Hector Vadillo  hector.vadillo@prodigy.net.mx

http://www.globalcomputing.com.mx/

Spikey Created with Wolfram Mathematica 7.0