Se han visto ya algunas maneras de formar listas en Wolfram Language. Se puede simplemente escribirlas manualmente. Se puede utilizar
Range. Se pueden usar funciones tales como
IntegerDigits. Pero una manera muy com
ún y flexible para formarlas es mediante el uso de la funci
ón
Table.
En su forma m
ás simple,
Table construye una lista con el mismo elemento repetido un n
úmero especificado de veces.
Forme una lista que tenga el 5 repetido 10 veces:
Esto construye una lista con x repetido 10 veces:
También se pueden repetir listas:
Y, de hecho, cualquier otra cosa; a continuación aparece una lista de 3 gráficos circulares idénticas:
Pero,
¿y si se deseara formar una tabla cuyos elementos no sean id
énticos? Esto se logra introduciendo una
variable, para usarla haciendo una iteraci
ón sobre ella.
Itere sobre n para formar una lista donde n tome valores hasta el 5:
Esto funciona de la siguiente manera. Para formar el primer elemento de la lista, se toma n igual a 1, así que a[n] es a[1]. Para el segundo elemento, se toma n igual a 2, así que a[n] es a[2], etc. A n se le llama variable porque cambia de valor a medida que se van construyendo los diferentes elementos de la lista.
Construya una tabla que produzca el valor de n + 1 cuando n toma valores del 1 al 10:
Forme una tabla de los 10 primeros cuadrados:
Con
Table se pueden formar tablas de cosas cualesquiera.
He aqu
í una tabla de listas sucesivamente m
ás grandes, producidas con
Range:
Aquí se muestra, en una columna, cada una de las listas producidas anteriormente:
Ahora se muestra una tabla de gráficos de listas sucesivamente más grandes:
Aquí aparecen gráficos circulares con un número de sectores cada vez mayor :
Hasta ahora se ha venido usando
n como nombre de la variable utilizada, que es algo muy habitual. Pero puede utilizarse para eso cualquier letra min
úscula que se desee, o cualquier combinaci
ón de letras. Lo importante es que siempre se use el mismo nombre dondequiera que aparezca la variable en cuesti
ón.
expt es un nombre perfectamente adecuado para una variable:
Abajo se usa x como nombre de la variable y aparece en varios lugares:
En
Table[f[n],{n,5}],
n toma los valores 1, 2, 3, 4, 5. En cambio,
Table[f[n],{n,3,5}] indica que hay que comenzar en 3: 3, 4, 5.
Esto genera una tabla donde n varía del 1 al 10:
Esto produce una tabla donde n varía del 4 al 10:
Aquí se indica que la n debe recorrer los valores del 4 al 10, de 2 en 2:
Wolfram Language hace hincapi
é en la consistencia as
í que, por ejemplo,
Range act
úa igual que
Table en lo que se refiere a valores iniciales e incrementos.
Genere la secuencia de números del 4 al 10:
Genere la secuencia de números del 4 al 10, de 2 en 2:
Vaya del 0 al 1 en incrementos de 0.1:
Suele haber varias maneras de hacer la misma cosa en Wolfram Language. As
í, por ejemplo, se muestra c
ómo
Table y
Range pueden producir gr
áficos id
énticos.
Genere una lista y represéntela gráficamente:
Se obtiene el mismo resultado haciendo algo de aritmética con la secuencia de valores:
Table siempre calcula por separado cada elemento de la lista que genera, y esto puede observarse al utilizar
RandomInteger dentro de
Table.
Esto genera 20 enteros aleatorios independientes entre 0 y 10:
De hecho, esta lista podr
ía generarse directamente con
RandomInteger.
Otra forma de generar 20 enteros aleatorios entre 0 y 10:
Table[x,5] | | lista de 5 copias de x |
Table[f[n],{n,10}] | | lista de valores de f[n] donde n varía hasta el 10 |
Table[f[n],{n,2,10}] | | lista de valores donde n varía desde el 2 hasta el 10 |
Table[f[n],{n,2,10,4}] | | lista de valores donde n varía del 2 hasta el 10, de 4 en 4 |
Range[5,10] | | lista de los números del 5 al 10 |
Range[10,20,2] | | lista de los números del 10 al 20, de 2 en 2 |
RandomInteger[10,20] | | lista de 20 enteros aleatorios entre 0 y 10 |
1.1Forme una lista con el n
úmero 1000 repetido 5 veces.
»
1.1Cree una lista de los valores de
n^3 donde
n va del 10 al 20.
»
1.1Construya un gr
áfico con los 20 primeros cuadrados sobre la recta num
érica.
»
1.1Forme una lista de las diferencias entre
n^3 y
n^2 para
n menor o igual a 10.
»
1.1Construya una lista de los n
úmeros pares (2, 4, 6,
...) hasta el 20.
»
1.1Forme una lista de los n
úmeros impares (1, 3, 5, ...) hasta el 100.
»
1.1Cree una lista de los cuadrados de los n
úmeros pares hasta el 100.
»
1.1Cree la lista
{-3, -2, -1, 0, 1, 2} utilizando
Range.
»
1.1Use
Table para obtener el mismo resultado que
Range[10].
»
1.1Construya un diagrama de barras de los 10 primeros cuadrados.
»
1.1Construya una lista con los n
úmeros n hasta el 20, donde cada elemento sea una columna de los valores de
n,
n^2 y
n^3.
»
1.1Forme una tabla de listas de los d
ígitos de los 10 primeros cuadrados.
»
1.1Construya el gr
áfico, con los puntos unidos, de la longitud de la secuencia de los d
ígitos de cada uno de los 100 primeros cuadrados.
»
1.1Forme una tabla del primer d
ígito de cada uno de los 20 primeros cuadrados.
»
1.1Haga el gr
áfico de los primeros d
ígitos de los 100 primeros cuadrados.
»
1.1Presente un gr
áfico, con los puntos unidos, del
último d
ígito de cada uno de los 100 primeros cuadrados.
»
1.1Cree un gr
áfico, con los puntos unidos, del primer d
ígito de cada uno de los primeros 100 m
últiplos de 3.
»
1.1Produzca un gr
áfico, con los puntos unidos, de la suma de los d
ígitos de cada n
úmero hasta el 200.
»
1.1Construya una gr
áfica, con los puntos unidos, de la suma de los d
ígitos para cada uno de los 100 primeros cuadrados.
»
1.1Obtenga un gr
áfico, con los puntos sobre la recta num
érica, de los n
úmeros 1/n, con n variando de 1 a 20.
»
1.1Produzca un gr
áfico, con los puntos unidos, de una lista de enteros aleatorios, donde el n-
ésimo entero est
é entre 0 y n.
»
¿Qu
é significa la lista
{...} (lista) en
Table[n^2, {n, 5}]?
Una lista siempre es una forma de reunir cosas. En este caso lo que se reúne es la variable n con su secuencia de valores hasta el 5. En Wolfram Language, esta forma de usar una lista se llama especificación del iterador.
¿Por qu
é es necesaria la lista
{...} in
Table[n^2, {n, 5}]?
Porque de esa manera se puede generalizar f
ácilmente a los arreglos multidimensionales, como en
Table[x^2-y^2, {x, 5}, {y, 5}].
¿Qu
é restricciones hay para los nombres de variables?
Pueden ser cualquier secuencia de letras y números, pero no pueden comenzar con un número. Además, para evitar confusiones con las funciones nativas de Wolfram Language, no deben comenzar con mayúscula.
¿Por qué hay que poner nombre a una variable, si los nombres no importan?
¡Buena pregunta! En la
Sección 26 se ver
á c
ómo evitar el uso del nombre de las variables. Esto es m
ás elegante, aunque un poco m
ás abstracto de lo que hasta ahora se viene haciendo con
Table.
¿Puede
Range trabajar con n
úmeros negativos?
Desde luego.
Range[-2, 2] produce
{-2, -1, 0, 1, 2}.
Range[2, -2] produce
{}, por
Range[2, -2, -1] produce
{2, 1, 0, -1, -2}.
En el caso de que se especifiquen incrementos que no se ajusten bien al tramo que se haya determinado, Range y Table llegarán hasta donde los lleven los incrementos y, potencialmente, se detendrán antes del límite superior. (Así Range[1, 6, 2] produce {1, 3, 5}, deteniéndose en 5, y no en 6.)
Usar una forma tal como Table[x, 20] requiere tener activa, cuando menos, la Versión 10.2 de Wolfram Language. En versiones anteriores esto tendría que especificarse comoTable[x, {20}].