Dinámica nolineal y sistemas complejos con python
Dinámica nolineal y sistemas complejos con python
Dinámica nolineal y sistemas complejos con python
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong><strong>python</strong>David Gómez-UllatePablo Suárez15 de julio de 2010
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Motivación◮ Preparar un curso de máster atractivo en el Máster en FísicaFundamental de la UCM◮ Modelización en temas variados de dinámica no lineal y<strong>sistemas</strong> <strong>complejos</strong>◮ Overlap <strong>con</strong> otras disciplinas (biología, e<strong>con</strong>omía, cienciassociales, etc.)◮ Carácter computacional (“pringarse las manos”)◮ Valor añadido: al final del curso1. han tomado <strong>con</strong>tacto <strong>con</strong> otros campos: investigacióninterdisciplinar2. han aprendido a herramientas de programación potentes yversátiles
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Dificultades◮ Dispersión grande en cuanto a experiencia en programación delos estudiantes◮ la mayoría tiene proyecto de tesis ya asignado◮ escasa experiencia del profesor !
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Por qué <strong>python</strong> ?Ventajas:◮ software libre !◮ sintaxis sencilla de alto nivel orientada a objetos◮ muchas librerías científicas (scipy)◮ buenas librerías gráficas (matplotlib, mayavi, etc.)◮ aplicaciones más allá del cálculo científicoDesventajas:◮ Más lento que C o FORTRAN en cálculo intensivo◮ Menos user-friendly que Matlab (?)
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Estructura del curso◮ Enfoque muy práctico: prácticas específicas al final de lascuales los estudiantes han aprendido una serie <strong>con</strong>ceptosnuevos.◮ Introducción del profesor, trabajo en el aula informática de losalumnos◮ Trabajo colaborativo en grupo (presencial y virtual)◮ Proyecto final en grupos + exposición en clase
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 1: Nociones básicas de <strong>python</strong>◮ instalación de <strong>python</strong>, editores de código (kate),◮ Cadenas, listas, I/O de texto, etc.
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 2: Re<strong>con</strong>ocimiento de autores◮ I/O de ficheros, carpetas◮ importar modulos en <strong>python</strong> (import os)◮ codificación de caracteres, diccionarios
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 3: Random walksConocimientos de <strong>python</strong>:◮ Primer <strong>con</strong>tacto <strong>con</strong> funciones de scipy: arrays, generaciónnúmeros aleatorios,◮ gráficos <strong>con</strong> matplotlib, histogramas◮ animaciones <strong>con</strong> mencoderConocimientos de la práctica:◮ Propiedades de las caminatas aleatorias:1. invariancia de escala y autosimilaridad2. universalidad y teorema del ĺımite central3. ĺımite <strong>con</strong>tínuo y ecuación de difusión
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 3: Random walks
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 4: Random walks en finanzas
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 4: Random walks en finanzasConocimientos de <strong>python</strong>◮ importar ficheros de datos (e.g. de Yahoo Finance) enestructuras de <strong>python</strong>◮ histogramas, gráficos log-log, semi-log, etc. y ajustesConocimientos de la práctica◮ análisis estadístico de series temporales de cotización devalores◮ distribuciones de Lévy y colas gordas, comparación <strong>con</strong> el TLC
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 4: Random walks en finanzas
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 5: Estructura de redes complejas
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 5: Estructura de redes complejasConocimientos de <strong>python</strong>◮ paquete networkxConocimientos de la práctica◮ propiedades estadísticas de redes de Erdös-Renyi,Watts-Strogatz y Barábasi-Albert.◮ percolación, efecto pequeño mundo, enlazado preferencial ydistribuciones libres de escala.
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 5: Estructura de redes complejas
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 6: Propagación, robustez y ataques a redes
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 6: Propagación, robustez y ataques a redesConocimientos de la práctica◮ Procesos dinámicos sobre redes complejas◮ Propagación de virus informáticos o enfermedades◮ Robustez frente a ataques dirigidos o fallos aleatorios◮ Caidas en cascada en redes de transporteSobre estos temas los estudiantes realizaron mini-proyectos deinvestigación.
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 7: Sincronización de osciladores acoplados
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 7: Sincronización de osciladores acopladosConocimientos de <strong>python</strong>:◮ integración numérica de EDOs <strong>con</strong>scipy.integrate.odeint◮ 200 EDOs no lineales acopladas sin ningún problemaConocimientos de la práctica◮ modelo de Kuramoto, transición de fase, acoplamiento crítico◮ phase locking, phase drift◮ extensiones: ruido, acoplamiento sobre redes complejas, etc.
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 8: Reacción-difusión y formación de patrones
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 8: Reacción-difusión y formación de patronesConocimientos de <strong>python</strong>/numéricos:◮ Integración numérica de EDPs de reacción difusión◮ Diferentes <strong>con</strong>diciones de <strong>con</strong>torno◮ esquema de diferencias finitas y algoritmo de Euler expĺıcitoConocimientos de la práctica:◮ Inestabilidad de Turing◮ Selección de patrones◮ Aplicaciones en biología
Dinámica <strong>nolineal</strong> y <strong>sistemas</strong> <strong>complejos</strong> <strong>con</strong> <strong>python</strong>Práctica 8: Reacción-difusión y formación de patrones