Entrada destacada

Distancia media de dos puntos en un cuadrado unitario

martes, 29 de noviembre de 2016

WolframAlpha: Datos curados, actuales y computables.



Desde la versión 8 de Mathematica se han presentado grandes novedades, no únicamente en sus algoritmos, sino en la posibilidad de adquirir datos que tienen las siguientes tres características: Curados: podemos estar seguros de su veracidad; Actuales: estas bases de datos están constantemente actualizando sus datos; y Computables: al adquirir los datos desde un notebook en Mathematica podemos trabajar con ellos como listas.

Desde un notebook en Mathematica podemos conectarnos con WolframAlpha simplemente al escribir un igual al comienzo de una línea de cálculo, que son las que por defecto (primera opción) abre Mathematica. Este igual aparece blanco en un rectángulo naranja, aquí de forma libre, a veces en español, pero preferiblemente en inglés uno puede realizar su consulta y ejecutar únicamente con Enter.


También para mayor precisión existen comandos desde Mathematica que pueden llamar estas bases de datos:

?*Data
































Además existen funciones que utilizan las bases de WolframAlpha que no aparecen aquí, por ejemplo: ¿A cuánto equivalía un peso Colombiano de 1970 en 2008?

InflationAdjust[Quantity[1, DatedUnit["Colombian pesos", 1970]], 2008]

$ 584.40(Colombian pesos 2008)

O podemos preguntarnos: ¿$100 000ºº pesos Colombianos de 2016, a cuántos pesos equivalían cada año desde 1960?

Table[InflationAdjust[Quantity[100000, DatedUnit["Colombian pesos", 2016]],n],{n, 1960,2015, 1}]












 Que es una lista totalmente computable.

WolframAlpha Pro

Al escribir dos iguales seguidos al comienzo de una línea de cálculo obtenemos un igual blanco dentro de un estrella naranja, nos estamos conectando con WolframAlpha Pro que corresponde a versión un poco más profesional de WolframAlpha, ¿Cuál es la diferencia?




Principalmente un detalle: los símbolos más en la parte derecha superior de cada una de las salidas, por ejemplo dando click sobre el más del primer gráfico que aparece y tomando la opción "Computable Data" automáticamente aparece la siguiente salida al final del documento:

WolframAlpha["population of colombia", {{"RecentHistory:Population:CountryData", 1}, "ComputableData"}]
















lista de listas, que no son más que datos computables, con ellos podemos trabajar.

Y si damos click en el último más que aparece a la derecha de WolframAlpha y si tomamos por ejemplo la opción "Source Data" o "Feedback" nos permite establecer las bases de datos que se han utilizado, si es necesario referenciarlas.

Ahora, como siempre lo que le corresponde a cada uno es explorar las opciones que nos presenta esta herramienta.

Para aprender más sobre Mathematica ingrese aquí o en mi sitio web ustamathematica.wixsite.com/basicas

viernes, 25 de noviembre de 2016

Relación entre los Hiperboloides y el Cono



Sabemos que las formas canónicas de los hiperboloides de una y dos hojas y el cono, corresponden a:

Hiperboloide de una hoja





ContourPlot3D[x^2 + y^2 - z^2 == 1, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}]





Hiperboloide de dos hojas





ContourPlot3D[-x^2 - y^2 + z^2 == 1, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}]



Cono





ContourPlot3D[x^2 + y^2 - z^2 == 0, {x, -5, 5}, {y, -5, 5}, {z, -5, 5}]



Todas las formas anteriores tienen simetría con respecto al eje z, y los valores de a, b y c representan que tanto la figura abre en los ejes x, y y z respectivamente.

Pregunta

¿A cuál figura de las anteriores corresponde la ecuación:
x^2 + y^2 - z^2 = p?

La mejor respuesta es : depende del valor que tome p.

Si p > 0 : es un hiperboloide de una hoja.

Si p < 0 : es un hiperboloide de dos hojas.

Si p = 0 : es un cono.

Veamos este comportamiento en un manipulate

Manipulate[ContourPlot3D[x^2 + y^2 - z^2 == p, {x, -5, 5}, {y, -5, 5}, {z, -4, 4}], {p, -2, 2}]

Si p=-2:



Si p=0:


Si p=2:



Actividad

Realice manipulates para cada una de las anteriores figuras donde varié los valores de a, b, y c.

Para aprender más sobre Mathematica ingrese aquí o en mi sitio web ustamathematica.wixsite.com/basicas

domingo, 20 de noviembre de 2016

La Conjetura de Collatz



El matemático Lothar Collatz (1910-1990) la dio a conocer en 1937, su enunciado es muy sencillo, como toda buena conjetura:

Dado un número entero positivo cualquiera : si es par se divide por dos y si es impar se multiplica por tres y se le suma uno al resultado. Si este proceso se repite iterativamente siempre se obtendrá el número uno.

Es decir, dada la función:



la órbita para todo número natural siempre se estabiliza en 4,2,1,4,2,1,...

En Mathematica

Limpiamos la variable f y definimos la función de Collatz :

Clear[f]

f[n_Integer]:= Piecewise[{{n/2, EvenQ[n]}, {3 n + 1, OddQ[n]}}]

Calculamos la órbita que recorre 9 para llegar a uno :

NestWhileList[f, 9, # != 1 &]
{9, 28, 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1}

Calculamos su longitud:


Length@NestWhileList[f, 9, # != 1 &]
20

Ahora, para los primeros 10000 números naturales calculamos la cantidad de pasos necesarios, la longitud de la órbita, para obtener el número uno y lo graficamos:


numero = 10000;
collatz = {};
Do[AppendTo[collatz, {k, Length@NestWhileList[f, k, # != 1 &]}], {k, 
   numero}];
ListPlot[Tooltip[collatz]]

















Observamos como para el número 6171 son necesarios 262 pasos.



NestWhileList[f, 6171, # != 1 &]

{6171, 18514, 9257, 27772, 13886, 6943, 20830, 10415, 31246, 15623, 46870, 23435, 70306, 35153, 105460, 52730, 26365, 79096, 39548, 19774, 9887, 29662, 14831, 44494, 22247, 66742, 33371, 100114, 50057, 150172, 75086, 37543, 112630, 56315, 168946, 84473, 253420, 126710, 63355, 190066, 95033, 285100, 142550, 71275, 213826, 106913, 320740, 160370, 80185, 240556, 120278, 60139, 180418, 90209, 270628, 135314, 67657, 202972, 101486, 50743, 152230, 76115, 228346, 114173, 342520, 171260, 85630, 42815, 128446, 64223, 192670, 96335, 289006, 144503, 433510, 216755, 650266, 325133, 975400, 487700, 243850, 121925, 365776, 182888, 91444, 45722, 22861, 68584, 34292, 17146, 8573, 25720, 12860, 6430, 3215, 9646, 4823, 14470, 7235, 21706, 10853, 32560, 16280, 8140, 4070, 2035, 6106, 3053, 9160, 4580, 2290, 1145, 3436, 1718, 859, 2578, 1289, 3868, 1934, 967, 2902, 1451, 4354, 2177, 6532, 3266, 1633, 4900, 2450, 1225, 3676, 1838, 919, 2758, 1379, 4138, 2069, 6208, 3104, 1552, 776, 388, 194, 97, 292, 146, 73, 220, 110, 55, 166, 83, 250, 125, 376, 188, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1}

Length@NestWhileList[f, 6171, # != 1 &]
262


Para aprender más sobre Mathematica ingrese aquí o en mi sitio web ustamathematica.wixsite.com/basicas

martes, 8 de noviembre de 2016

Rutas de Viaje desde WolframAlpha en Bogotá


Otros datos que podemos adquirir y computar desde WolframAlpha tienen que ver con las rutas de tráfico que podemos seguir al estilo un GPS o la aplicación Wade.

Viaje inter municipal

Establezcamos primero a Bogotá y Villeta como las ciudades a las cuales deseamos tener como punto de partida y destino respectivamente, las vemos como entidades:







Llamaremos tt la ruta que seguiremos:




Representándola gráficamente :

GeoGraphics[tt["TravelPath"]]


Mostrándonos la ruta que debemos implementar:

tt["Dataset"]




























Viaje dentro de la ciudad

Establecemos dos destinos, primero el Museo del Oro

























BuildingData[Entity["Building", "MuseoDelOro::4jzpd"], "Position"]

GeoPosition[{4.640140000000002`, -74.12208999999999`}]

GeoPosition[{4.64014, -74.1221}]

y la Universidad Nacional de Colombia





GeoPosition[{4.638525, -74.084134}]

Llamamos aa la ruta de viaje


aa = TravelDirections[{GeoPosition[{4.638525, -74.084134}], 
   GeoPosition[{4.607340, -74.079740}]}]

La representamos gráficamente :

GeoGraphics[aa["TravelPath"]]







































Describimos la ruta a seguir :

aa["Dataset"]




























Con estos datos se pueden realizar comparaciones de alternativas de diferentes caminos y posibilidades, sólo hay que explorarlas.

Para aprender más sobre Mathematica ingrese aquí o en mi sitio web ustamathematica.wixsite.com/basicas

jueves, 3 de noviembre de 2016

Sismos en Colombia


Entre los datos que se pueden adquirir desde las bases de datos de WolframAlpha encontramos también datos de sismos y terremotos, aquí en particular trabajaremos con los datos para Colombia:

Descargamos los datos históricos de los sismos para Colombia, encontramos datos desde el año 1566 pero realmente datos continuos y completos desde el año 1900

tecol = EarthquakeData[Entity["Country", "Colombia"]];

filtramos los datos que queremos mostrar: año, ubicación (latitud, longitud) y magnitud en la escala de Richter.

tecoldatos = Table[{DateList[tecol[[n, 1]]][[1]], tecol[[n, 5]], tecol[[n, 9]]}, {n, Length[tecol]}]

Ahora generamos una presentación interactiva y dinámica con el uso del comando Manipulate[ ], que nos permite ubicar sobre el mapa de Colombia año por año los sismos de una intensidad mayor a un número determinado

Manipulate[
 Graphics[{EdgeForm[Black], LightBrown, 
   CountryData["Colombia", "FullPolygon"], Red, 
   Point[Select[tecoldatos, And[#[[1]] == anio, #1[[2]] >= mag] &][[
     All, 3]]]}, ImageSize -> {500, 500}], {{anio, 2000, "Año"}, 1900,
   2016, 1, Appearance -> "Labeled"}, {{mag, 3, "Magnitud mayor a"}, 
  3, 6.5, Appearance -> "Labeled"}, SaveDefinitions -> True]


Aquí hay que observarlo descargando el Notebook.