Mathematica más allá de las matemáticas 2ª Edición (2015...

14
Mathematica más allá de las matemáticas 2ª Edición (2015). Autor: José Guillermo Sánchez León (http://diarium.usal.es/guillermo). Disponible en: GooglePlay Mathematica es un programa que va mucho más allá que el cálculo simbólico y numérico, es un lenguaje de programación de propósito general. Podrá empezar a utilizarlo desde los primeros minutos, pero si quiere obtener una parte importante de su potencialidad deberá dedicarle tiempo, probablemente mucho menos que si utiliza otros lenguajes de programación. Con el proposito de que el usuario tenga una idea clara de que se encuentra con ante un lenguaje de programación, no solo orientado a cálculos matemáticos, ahora es llamado Wolfram Language aunque por mucho tiempo seguirá siendo conocido como Mathematica y así lo seguiremos llamando en este libro. Mathematica dio un salto revolucionario con la introducción de lo que vamos a denominar forma lingüística, que consiste en escribir de forma natural la operación o pregunta. Por ejemplo, si quiere resolver una ecuación como 3 x 2 + 2 x - 4 = 0, puede escribir casi literalmente lo que busca (la limitación, por ahora, es que debe estar en inglés, aunque frecuentemente un par de palabras en este idioma son suficientes). La salida muestra la sintaxis correcta del input en Mathematica y la solución que en esta caso incluye el resultado exacto y la aproximación decimal. Solve 3 x^2 + 2x - 4 = 0 Results (1 of 2) {Reduce[- 4 + 2 * x + 3 * x^2 == 0, x], N[Reduce[- 4 + 2 * x + 3 * x^2 == 0, x]]} x 1 3 -1 - 13 x 1 3 13 - 1, x -1.53518 x 0.868517 Sumamos cantidades en distintas monedas y el resultado se muestra en la moneda que hemos escrito en primer lugar; si lo ejecuta probablemente obtenga un resultado algo distinto pues en el cálculo se aplica automáticamente el tipo de cambio en la fecha en la que se ejecuta la sentencia. $500 307 + 127 » $500. 307. +€127. $1139.67 Incluso podemos plantear cuestiones concretas, como es la temperatura en un lugar determinado en este momento. La ventaja a destacar es que la información obtenida podremos manejarla dentro del entorno de Mathematica.

Transcript of Mathematica más allá de las matemáticas 2ª Edición (2015...

Page 1: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

Mathematica más allá de las matemáticas 2ª Edición (2015). Autor:

José Guillermo Sánchez León (http://diarium.usal.es/guillermo).

Disponible en: GooglePlay

Mathematica es un programa que va mucho más allá que el cálculo simbólico ynumérico, es un lenguaje de programación de propósito general. Podrá empezar autilizarlo desde los primeros minutos, pero si quiere obtener una parte importante de supotencialidad deberá dedicarle tiempo, probablemente mucho menos que si utiliza otroslenguajes de programación. Con el proposito de que el usuario tenga una idea clara deque se encuentra con ante un lenguaje de programación, no solo orientado a cálculosmatemáticos, ahora es llamado Wolfram Language aunque por mucho tiempo seguirásiendo conocido como Mathematica y así lo seguiremos llamando en este libro.

◼ Mathematica dio un salto revolucionario con la introducción de lo que vamos adenominar forma lingüística, que consiste en escribir de forma natural la operación opregunta. Por ejemplo, si quiere resolver una ecuación como 3 x2 + 2 x - 4 = 0, puedeescribir casi literalmente lo que busca (la limitación, por ahora, es que debe estar eninglés, aunque frecuentemente un par de palabras en este idioma son suficientes). Lasalida muestra la sintaxis correcta del input en Mathematica y la solución que en estacaso incluye el resultado exacto y la aproximación decimal.

Solve 3 x^2 + 2 x - 4 = 0

Results (1 of 2){Reduce[-4 + 2 * x + 3 * x^2 == 0, x],N[Reduce[-4 + 2 * x + 3 * x^2 == 0, x]]}

x 1

3-1 - 13 x 1

3 13 - 1, x -1.53518 x 0.868517

◼ Sumamos cantidades en distintas monedas y el resultado se muestra en la moneda quehemos escrito en primer lugar; si lo ejecuta probablemente obtenga un resultado algodistinto pues en el cálculo se aplica automáticamente el tipo de cambio en la fecha en laque se ejecuta la sentencia.

$500 + £307 + 127 € »

$500. + £307. + €127.

$1139.67◼ Incluso podemos plantear cuestiones concretas, como es la temperatura en un lugardeterminado en este momento. La ventaja a destacar es que la información obtenidapodremos manejarla dentro del entorno de Mathematica.

Page 2: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

Salamanca temperature »

AirTemperatureData Salamanca (city)

10. °C◼ En este ejemplo representamos la escala musical Do mayor para lo que basta con escribir:

Music notation: Play sound

◼ En este ejemplo obtenemos el valor del euro en dolares en el momento de ejecutar lasentencia.

FinancialData["EUR/USD"]1.2389◼ Podemos elegir un compuesto químico y obtener muchas propiedades del mismo, aquí

representamos la molécula de la cafeína.

ChemicalData["Caffeine", "MoleculePlot"]

◼ Con dos palabras construimos un reloj dinámico sincronizado con la hora de nuestroordenador.

2 Mathematica más allá de las matemáticas

Page 3: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

ClockGauge[Dynamic[]]1

2

3

4

56

7

8

9

10

1112

◼ En menos de media línea escribimos las instrucciones necesarias para construir unmodelos interactivo del conjunto fractal de Julia.

Manipulate[JuliaSetPlot[0.365 - k ⅈ,PlotLegends → Automatic, ImageSize → Small], {k, 0.4, 0.5}]k

-1.0 -0.5 0.0 0.5 1.0

-1.0

-0.5

0.0

0.5

1.0

◼ Manuscriba distintas números en un papel en blanco y escaneelo o escribalos en unapantalla tactil. Procure que incluya del 0 al 9 al menos una vez, recortelosindividualmente (en Window 7 y 8 puede usar la aplicación Recorte) y establezca suequivalencia como se muestra en la lista de abajo. Utilize la función Classify quepermite establecer una relación a partir de ejemplos. Observe que un mismo número sutrascripción manuscrita no es idéntica, esta función utiliza criterios estadísticos paraasignar un peso a cada equivalencia establecida.

Ejemplos del libro 3

Page 4: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

equivalencias = → 2, → 5, → 8, → 0, → 2, → 7,

→ 5, → 1, → 3, → 0, → 3, → 9, → 6, → 2,

→ 8, → 2, → 0, → 6, → 6, → 1, → 1, → 7,

→ 8, → 5, → 0, → 4, → 7, → 6, → 0, → 2,

→ 5, → 3, → 1, → 5, → 6, → 7, → 5, → 4,

→ 1, → 9, → 3, → 6, → 8, → 0, → 9, → 3,

→ 0, → 3, → 7, → 4, → 4, → 3, → 8, → 0,

→ 4, → 1, → 3, → 7, → 6, → 4, → 7, → 2,

→ 7, → 2, → 5, → 2, → 0, → 9, → 8, → 9,

→ 8, → 1, → 6, → 4, → 8, → 5, → 8,

→ 0, → 6, → 7, → 4, → 5, → 8, → 4,

→ 3, → 1, → 5, → 1, → 9, → 9, → 9, → 2,

→ 4, → 7, → 3, → 1, → 9, → 2, → 9, → 6;digitos = Classify[equivalencias]◼ El programa va asignando probabilidades a partir de loas datos que tiene almacenados.

Compruebe las probabilidades asignadas al símbolo es mas alta para el 4 que para el

6. Incluso una persona no podria asegurar si es un 6 o un 4. En la medida que vayamosañadiendo más ejemplos el programa increntará el porcentaje de aciertos

digitos , "TopProbabilities"{4→ 0.451554, 6→ 0.255324, 0→ 0.242137}◼ Otras de las funciones más novedosas es Classify a la que ya nos hemos referido.

Aquí la empleamos para identificar el idioma en el que está escrita una frase.

Classify"Language", "the house is blue",

"la maison est bleu", "la casa es azul", "das Haus ist blau",

"房子是 色的蓝 ", المنزل" باللون األزرق ", "будинок синій" English , French , Spanish ,

German , Chinese , Arabic , Ukrainian ◼ Aqui la combinamos que la función dinámica para que interacticamente nos identifique

el idioma. Si escribe solo una palabra verá como le asigna un peso (probabilidad) a losdistintos idiomas posibles que irá aumentando cuando vaya componiendo una frase hastaque que quede identificado el idioma con una alta probabilidad.

4 Mathematica más allá de las matemáticas

Page 5: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

DynamicModule[{text = "" },Column[{InputField[Dynamic[text], String,

ContinuousAction → True, FieldHint → "Enter a string"],Dynamic[Classify["Language", text, "TopProbabilities"]]}]]

casa

Spanish → 0.440807, Portuguese → 0.19306,

Italian → 0.137708, Catalan → 0.0446979◼ Reduce da las distintas soluciones en función del valor del parámetro a y utiliza una

notación más formal en las salidas.

Reduce[{x + a y + 3 z == 2, x + y - z == 1,

2 x + 3 y + a z == 3}, {x, y, z}]a 2 y 1

5(5 - 4 x) z x

5

a - 2 ≠ 0 x 1 a + 3 ≠ 0 y 1

a + 3 z y

◼ Resolvemos un sistema formado por la intersección de una circunferencia y una parábolay representamos graficamente la solución. Para escribir los símbolos especiales como“∧” lo mejor es utilizar Pallettes a lo que nos referiremos más adelante.

pts = Solvex2 + y2 1 y - 2 x2 + 3

2 0, {x, y}

x→ -1

2

1

25 - 5 , y→ 1

4-1 - 5 , x→ 1

2

1

25 - 5 , y→ 1

4-1 - 5 ,

x→ -1

2

1

25 + 5 , y→ 1

4 5 - 1, x→ 1

2

1

25 + 5 , y→ 1

4 5 - 1

Ejemplos del libro 5

Page 6: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

ShowContourPlotx2 + y2 ⩵ 1, y - 2 x2 + 3

2⩵ 0,

{x, -1.5, 1.5}, {y, -1.5, 1.5},Graphics[{Red, PointSize[Medium], Point[{x, y} /. pts]}]

-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

◼ Solve puede obtener soluciones planteadas geométricamente. En este caso se muestrala solución a la intersección de una recta que pasa por los puntos {0,0},{2,1}, con lacircunferencia de radio r = 1 y centro en {0, 0}(Mathematica llama Circle a lacircunferencia y Disk al círculo, por defecto asume r = 1, centro en {0, 0}):

Solve[{x, y} ∈ InfiniteLine[{{0, 0}, {2, 1}}] && {x, y} ∈ Circle[], {x, y}]x → - 2

5, y → - 1

5, x → 2

5, y → 1

5

Graphics[{{Blue, InfiniteLine[{{0, 0}, {2, 1}}], Circle[]},{Red, Point[{x, y}] /. %}}]

6 Mathematica más allá de las matemáticas

Page 7: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

◼ En el ejemplo se simula el bote de una pelota que cae por una escalera. Se puede actuarsobre el impulso que se le da a la pelota, y su rebote, y sobre el tamaño del peldaño.Mathematica permite resolver el problema analitica o numericamente, puede probar asustituir DSolve por NDSolve (solución númerica).

Manipulate[sol = DSolve[{y''[t] ⩵ -9.8, y[0] ⩵ 13.5, y'[0] ⩵ 5, a[0] ⩵ 13,

WhenEvent[y[t] - a[t] ⩵ 0, y'[t] → - c y'[t]],WhenEvent[Mod[t, n], a[t] → a[t] - 1]}, {y, a}, {t, 0, 8},

DiscreteVariables → {a}];Plot[Evaluate[{y[t], a[t]} /. sol], {t, 0, 8}, Filling → {2 → 0}],{c, 0.6, 1},{n, 0.6, 1.75}]c

n

◼ Aquí utilizamos una figura, conocida como “tetera de Utah”, que se incluye enExampleData, para construir un diagrama de barras 3D.

g = ExampleData[{"Geometry3D", "UtahTeapot"}];

Ejemplos del libro 7

Page 8: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

BarChart3D[data3, ChartElements → g, BoxRatios → {4, 1, 1}]

◼ En este ejemplo se muestra la función de probabilidad (pdf) y la función acumulada deprobabilidad (cdf) de la distribución de Poisson y se aplica para representar un casoconcreto: la de media Μ =10. Se incluye una optión en PlotLegends que permitecolocar la leyenda en la disposicion de se desee.

pdf = PDF[PoissonDistribution[Μ], x]ⅇ-Μ Μx

x! x ≥ 0

0 True

cdf = CDF[PoissonDistribution[Μ], x] Q(⌊x⌋ + 1, Μ) x ≥ 0

0 True

DiscretePlot[Evaluate[{pdf, cdf} /. Μ → 10],{x, 0, 15}, PlotRange → All, PlotLegends →Placed[{"Probabilidad", "Probabilidad acumulada"}, Below]]

Probabilidad Probabilidad acumulada

◼ En Mathematica 9 y 10 se han ampliado sustancialmente las funciones para tratamientode imágenes 3D como el ejemplo que se muestra donde se va seccionando un craneo enuna imagen 3D

8 Mathematica más allá de las matemáticas

Page 9: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

◼ Explorando la Z de Riemann.- Representamos 1/ Ζ(s). Se puede comprobar que todoslos ceros (columnas) están claramente alineados.

◼ Buscando planetas extrasolares: Consideremos el sistema binario definido por lossiguientes parámetros R = 2, i = 2 Pi 85 /360; m1 = 0.6; m2 = 0.1; R1 = 0.4; R2 = 0.3.Actuando sobre los controles veremos dinamicamente el sistama binario

Ejemplos del libro 9

Page 10: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

◼ La función que hemos construido nos permite mostrar la cadena de desintegración decualquier isótopo, en esta caso es la rama principal del Ra 226

10 Mathematica más allá de las matemáticas

Page 11: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

isopro[ra226]período

desintegración (seg) Descendientes Fracción

por rama

226Ra 5.0×1010 s radon-222 ,

lead-212 ,

thorium-226

1.00, 2.6×10-11,

Missing[Unknown]

222Rn 330 350. s polonium-218 {1.00}218Po 185.9 s lead-214 ,

astatine-218 {1.00, 0.00020}

214Pb 1610. s bismuth-214 {1.00}214Bi 1.19×103 s polonium-214 ,

thallium-210 ,

lead-210

{1.0, 0.00021, 0.000030}

214Po 0.0001643 s lead-210 {1.00}210Pb 7.01×108 s bismuth-210 ,

mercury-206 1.00, 1.9×10-8

210Bi 4.33×105 s polonium-210 ,

thallium-206 1.00, 1.32×10-6

210Po 1.19557×107 s lead-206 {1.00}206Pb ∞ {} {}◼ Aqui tiene otro ejemplo de optimización no lineal, en este caso se trata de encontrar el

mínimo global ( Minimize ). La función a optimizar es Exp(-x y) con la condición deque x, y ∈ Circulo con centro en {0, 0} y r = 1. El resultado lo mostramos numérica ygraficamente.

m = Minimize[{Exp[-x y], {x, y} ∈ Disk[]}, {x, y}] 1

ⅇ , x → - 1

2, y → - 1

2

g = Plot3D[Exp[-x y], {x, y} ∈ Disk[],Axes → True, Boxed → False, PlotStyle → [email protected]];

Ejemplos del libro 11

Page 12: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

Show[g, Graphics3D[{PointSize@Large, Red, Point[{x, y, m[[1]]} /. m[[2]]]}]]

◼ En el siguiente gráfico corresponde a un analisis de derivado con los datos y funcionesque hemos desarrollado Vemos la evolución del valor de la estrategia en función de lacotización del subyacente y del tiempo que le queda de vida a la estrategia. Para sumejor comprensión, marcamos con una línea azul continua el nivel de precio inicial, queademás es nuestro nivel de ejercicio; y en rojo discontinuo el nivel del precio delsubyacente al que alcanzamos nuestro máximo nivel de beneficio posible. Se ha de teneren cuenta que nuestro inicio en la escala temporal es el 1. Recuerde que hemos fijadocomo objetivo un beneficio máximo del 18%

Vamos a resolver un caso muy apropiado para la paralelización. Se trata de determinar laproximidad genética de organismos utilizando lo que se conoce como distancia deLevenshtein.◼ Indicamos el directorio donde tenemos los ficheros de datos (data). De esta forma

podemos usar directamente Import sin necesidad de escribir la ruta completa.

12 Mathematica más allá de las matemáticas

Page 13: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

SetDirectory[FileNameJoin[{NotebookDirectory[], "Data"}]]C:\Users\Guillermo\Google Drive\MasAlla10\Data

picrogenes = Import["picrophilus_torridus_gene.fna"];acidogenes = Import["thermoplasma_acidophilum_gene.fna"];volcaniumgenes = Import["thermoplasma_volcanium_gene.fna"];

◼ En este caso se trata de organismos muy simples cuyos genomas tienen el siguientetamaño (número total de genes):

Length /@ {picrogenes, acidogenes, volcaniumgenes}{1598, 1575, 1610}◼ Cargamos los datos importados para su tratamiento en paralelo.

With[{ picrogenes = picrogenes,

acidogenes = acidogenes, volcaniumgenes = volcaniumgenes},ParallelEvaluate[picro = picrogenes;

acido = acidogenes; volcanium = volcaniumgenes;];];◼ Comparamos los primeros ocho genes del thermoplasma volcanium con los dethermoplasma acidophilum y mostramos el tiempo de cálculo y la mínima distancia gena gen referidas al acidophilum.

acidovolcanium = ParallelMap[Function[{gene}, Min[EditDistance[gene, #] & /@ acido]],volcaniumgenes[[1 ;; 8]]]; // AbsoluteTiming

{29.602209, Null}◼ Procedemos de la misma manera para los primeros ocho genes del thermoplasmavolcanium y picrophilus torridus.

picrovolcanium = ParallelMap[Function[{gene}, Min[EditDistance[gene, #] & /@ picro]],volcaniumgenes[[1 ;; 8]]]; // AbsoluteTiming

{30.353620, Null}◼ Aquí mostramos gráficamente la proximidad genética de los 8 genes elegidos uno a unodel thermoplasma volcanium vs thermoplasma acidophilum

Ejemplos del libro 13

Page 14: Mathematica más allá de las matemáticas 2ª Edición (2015 ...diarium.usal.es/guillermo/files/2015/03/MathematicaMasAllaPresentacion.pdf · siendo conocido como Mathematica y así

ListLinePlot[{acidovolcanium, picrovolcanium}]

2 4 6 8

200

400

600

800

1000

14 Mathematica más allá de las matemáticas