Dinamica nolineal y sistemas complejos con python
Dinamica nolineal y sistemas complejos conpython
David Gomez-UllatePablo Suarez
15 de julio de 2010
Dinamica nolineal y sistemas complejos con python
Motivacion
I Preparar un curso de master atractivo en el Master en FısicaFundamental de la UCM
I Modelizacion en temas variados de dinamica no lineal ysistemas complejos
I Overlap con otras disciplinas (biologıa, economıa, cienciassociales, etc.)
I Caracter computacional (“pringarse las manos”)I Valor anadido: al final del curso
1. han tomado contacto con otros campos: investigacioninterdisciplinar
2. han aprendido a herramientas de programacion potentes yversatiles
Dinamica nolineal y sistemas complejos con python
Dificultades
I Dispersion grande en cuanto a experiencia en programacion delos estudiantes
I la mayorıa tiene proyecto de tesis ya asignado
I escasa experiencia del profesor !
Dinamica nolineal y sistemas complejos con python
Por que python ?
Ventajas:
I software libre !
I sintaxis sencilla de alto nivel orientada a objetos
I muchas librerıas cientıficas (scipy)
I buenas librerıas graficas (matplotlib, mayavi, etc.)
I aplicaciones mas alla del calculo cientıfico
Desventajas:
I Mas lento que C o FORTRAN en calculo intensivo
I Menos user-friendly que Matlab (?)
Dinamica nolineal y sistemas complejos con python
Estructura del curso
I Enfoque muy practico: practicas especıficas al final de lascuales los estudiantes han aprendido una serie conceptosnuevos.
I Introduccion del profesor, trabajo en el aula informatica de losalumnos
I Trabajo colaborativo en grupo (presencial y virtual)
I Proyecto final en grupos + exposicion en clase
Dinamica nolineal y sistemas complejos con python
Practica 1: Nociones basicas de pythonI instalacion de python, editores de codigo (kate),I Cadenas, listas, I/O de texto, etc.
Dinamica nolineal y sistemas complejos con python
Practica 2: Reconocimiento de autoresI I/O de ficheros, carpetasI importar modulos en python (import os)I codificacion de caracteres, diccionarios
Dinamica nolineal y sistemas complejos con python
Practica 3: Random walks
Conocimientos de python:
I Primer contacto con funciones de scipy: arrays, generacionnumeros aleatorios,
I graficos con matplotlib, histogramas
I animaciones con mencoder
Conocimientos de la practica:I Propiedades de las caminatas aleatorias:
1. invariancia de escala y autosimilaridad2. universalidad y teorema del lımite central3. lımite contınuo y ecuacion de difusion
Dinamica nolineal y sistemas complejos con python
Practica 3: Random walks
Dinamica nolineal y sistemas complejos con python
Practica 4: Random walks en finanzas
Dinamica nolineal y sistemas complejos con python
Practica 4: Random walks en finanzas
Conocimientos de python
I importar ficheros de datos (e.g. de Yahoo Finance) enestructuras de python
I histogramas, graficos log-log, semi-log, etc. y ajustes
Conocimientos de la practica
I analisis estadıstico de series temporales de cotizacion devalores
I distribuciones de Levy y colas gordas, comparacion con el TLC
Dinamica nolineal y sistemas complejos con python
Practica 4: Random walks en finanzas
Dinamica nolineal y sistemas complejos con python
Practica 5: Estructura de redes complejas
Dinamica nolineal y sistemas complejos con python
Practica 5: Estructura de redes complejas
Conocimientos de python
I paquete networkx
Conocimientos de la practica
I propiedades estadısticas de redes de Erdos-Renyi,Watts-Strogatz y Barabasi-Albert.
I percolacion, efecto pequeno mundo, enlazado preferencial ydistribuciones libres de escala.
Dinamica nolineal y sistemas complejos con python
Practica 5: Estructura de redes complejas
Dinamica nolineal y sistemas complejos con python
Practica 6: Propagacion, robustez y ataques a redes
Dinamica nolineal y sistemas complejos con python
Practica 6: Propagacion, robustez y ataques a redes
Conocimientos de la practica
I Procesos dinamicos sobre redes complejas
I Propagacion de virus informaticos o enfermedades
I Robustez frente a ataques dirigidos o fallos aleatorios
I Caidas en cascada en redes de transporte
Sobre estos temas los estudiantes realizaron mini-proyectos deinvestigacion.
Dinamica nolineal y sistemas complejos con python
Practica 7: Sincronizacion de osciladores acoplados
Dinamica nolineal y sistemas complejos con python
Practica 7: Sincronizacion de osciladores acoplados
Conocimientos de python:
I integracion numerica de EDOs conscipy.integrate.odeint
I 200 EDOs no lineales acopladas sin ningun problema
Conocimientos de la practica
I modelo de Kuramoto, transicion de fase, acoplamiento crıtico
I phase locking, phase drift
I extensiones: ruido, acoplamiento sobre redes complejas, etc.
Dinamica nolineal y sistemas complejos con python
Practica 8: Reaccion-difusion y formacion de patrones
Dinamica nolineal y sistemas complejos con python
Practica 8: Reaccion-difusion y formacion de patrones
Conocimientos de python/numericos:
I Integracion numerica de EDPs de reaccion difusion
I Diferentes condiciones de contorno
I esquema de diferencias finitas y algoritmo de Euler explıcito
Conocimientos de la practica:
I Inestabilidad de Turing
I Seleccion de patrones
I Aplicaciones en biologıa
Dinamica nolineal y sistemas complejos con python
Practica 8: Reaccion-difusion y formacion de patrones