Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mathematica .
Introduccin
En esta prctica vamos a estudiar las listas, su creacin y manipulacin : tienen gran importancia pues son
las principales instrucciones de Mathematica para el uso de vectores (que para Mathematica son listas de
coordenadas) y de las matrices (que son listas de sus filas, es decir, listas de listas).
l1 = 81, 2, 3, 4<;
l2 = 84, 5, 6, 7<;
l3 = 82, a, 8b, 3<, 2 3<;
Las operaciones que realicemos con estas listas se producen trmino a trmino. Por ejemplo, podemos
sumar dos listas:
l1 + l2
85, 7, 9, 11<
7 + l1
l1^2
l1^l2
2l1
Evidentemente, todo comando o funcin con el atributo Listable puede actuar sobre listas. De este modo,
podemos sumar dos listas de la misma longitud:
Departamento de Matem
Pr
Introducci
Evidentemente, todo comando o funcin con el atributo Listable puede actuar sobre listas. De este modo,
podemos sumar dos listas de la misma longitud:
l1 + l3
:3, 2 + a, 83 + b, 6<,
l1 + 81, 2<
14
3
>
Thread::tdlen : Objects of unequal length in 81, 2, 3, 4< + 81, 2< cannot be combined.
Length@l1D
4
De una forma un poco ms general, podemos obtener sus dimensiones con el comando Dimensions[lista],
que es el encargado de proporcionar las dimensiones de una matriz (una lista de listas):
Dimensions@l1D
84<
Range@6D
81, 2, 3, 4, 5, 6<
Range@5, 20D
85, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20<
Range@-1, 5D
8-1, 0, 1, 2, 3, 4, 5<
Y es posible indicar que el paso no sea de una unidad entre los elementos de la lista:
10
Departamento de Matem
Introducci
Pr
Range@3, 12, 4D
83, 7, 11<
El comando Table es mucho ms verstil que Range y requiere un iterador. Genera una lista en funcin de
la variacin del iterador asociado:
Table@i, 85<D
8i, i, i, i, i<
881, 1<, 82, 4<, 83, 9<, 84, 16<, 85, 25<, 86, 36<<
80, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100<
Tambin se puede generar una tabla para valores concretos del iterador:
Podemos generar tablas multidimensionales indicando varios iteradores, con la misma sintaxis anterior:
88i, j<, 8i, j<, 8i, j<, 8i, j<, 8i, j<<
8881, 1<, 81, 4<, 81, 9<<, 882, 1<, 82, 4<, 82, 9<<<
Los iteradores se pueden concatenar y un iterador puede depender de otro (evidentemente el segundo del
primero), al escribir la instruccin:
8881, 1<, 81, 2<<, 882, 2<, 82, 3<, 82, 4<<, 883, 3<, 83, 4<, 83, 5<, 83, 6<<<
Departamento de Matem
11
Pr
Introducci
8881, -1<, 81, 1<, 81, 2<<, 883, -3<, 83, 3<, 83, 6<<<
En ocasiones, queremos que la tabla que hemos generado se muestre con forma de tabla; en ese caso
utilizamos el comando TableForm[tabla]
1
4
9
16
25
36
1
2
2
3
3
4
2
4
3
5
3
6
Reverse@%D
8h, g, c, a, 5, 4, 3, 1, -3<
Permutations@8c, h, 2<D
88c, h, 2<, 8c, 2, h<, 8h, c, 2<, 8h, 2, c<, 82, c, h<, 82, h, c<<
Las diferentes opciones de Drop permiten eliminar parcialmente los elementos de una lista: ciertos
elementos del principio de la lista, ciertos elementos del final y elementos intermedios de la lista. Los
siguientes ejemplos muestran algunas de las posibilidades de este comando:
12
Departamento de Matem
Introducci
Pr
elimina los elementos indicados a partir del primer elemento de la lista (los tres primeros).
elimina los elementos indicados a partir del ltimo elemento de la lista (los tres ltimos).
Las instrucciones Append y AppendTo aaden elementos al final de una lista. La instruccin Append
aade el elemento a la lista sin alterar sta, mientras que AppendTo aade el elemento de forma definitiva. Las instrucciones Prepend y PrependTo hacen lo mismo al principio de la lista.
Append@lista, siD
83, 5, 6, 7, 8, si<
Departamento de Matem
13
Pr
Introducci
lista
83, 5, 6, 7, 8<
AppendTo@lista, siD
lista
83, 5, 6, 7, 8, si<
83, 5, 6, 7, 8, si<
Las listas se pueden unir (con Join), unir eliminando los elementos repetidos y ordenando la lista (con
Union), as como dividirla en trozos de la longitud deseada (con Partition).
Join@lista, listaD
83, 5, 6, 7, 8, si, 3, 5, 6, 7, 8, si<
Union@lista, listaD
83, 5, 6, 7, 8, si<
81, 3, 5, 6, 7, 8, a, si<
Partition@lista, 3D
Clear@listaD;
lista = 81, 2, 3, 8a, 8w, r<, b, c<, 84, 5<<
81, 2, 3, 8a, 8w, r<, b, c<, 84, 5<<
lista@@4DD
lista@@4, 2DD
8w, r<
14
Departamento de Matem
Introducci
Pr
lista@@4, 2, 1DD
w
lista@@5, 2DD
5
lista@@84, 2, 5<DD
88a, 8w, r<, b, c<, 2, 84, 5<<
lista@@2 ;; 4DD
lista@@4, 2 ;; 3DD
88w, r<, b<
Algunos elementos especiales, como el primer elemento o el ltimo elemento de la lista se pueden obtener
con las expresiones First[lista] y Last[lista]:
First@listaD
1
Podemos rastrear la posicin de un elemento dentro de una lista con la siguiente instruccin:
Count@listado, aD
3
O simplemente preguntar si ese elemento pertenece al listado mediante una funcin lgica
MemberQ@listado, aD
True
MemberQ@listado, sD
False
Si queremos eliminar los valores repetidos de una lista, podemos utilizar:
DeleteDuplicates@listadoD
8a, b, c, f, h, v<
Si tenemos dos listas y queremos saber qu elementos tienen en comn, podemos utilizar:
Departamento de Matem
15
Pr
Introducci
Si los valores del listado se pueden ordenar, nos indica cual es el menor y el mayor:
16
Departamento de Matem