Download Dinámica nolineal y sistemas complejos con python
Document related concepts
no text concepts found
Transcript
Dinámica nolineal y sistemas complejos con python Dinámica nolineal y sistemas complejos con python David Gómez-Ullate Pablo Suárez 15 de julio de 2010 Dinámica nolineal y sistemas complejos con python Motivación I Preparar un curso de máster atractivo en el Máster en Fı́sica Fundamental de la UCM I Modelización en temas variados de dinámica no lineal y sistemas complejos I Overlap con otras disciplinas (biologı́a, economı́a, ciencias sociales, etc.) I Carácter computacional (“pringarse las manos”) Valor añadido: al final del curso I 1. han tomado contacto con otros campos: investigación interdisciplinar 2. han aprendido a herramientas de programación potentes y versátiles Dinámica nolineal y sistemas complejos con python Dificultades I Dispersión grande en cuanto a experiencia en programación de los estudiantes I la mayorı́a tiene proyecto de tesis ya asignado I escasa experiencia del profesor ! Dinámica nolineal y sistemas complejos con python Por qué 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 gráficas (matplotlib, mayavi, etc.) I aplicaciones más allá del cálculo cientı́fico Desventajas: I Más lento que C o FORTRAN en cálculo intensivo I Menos user-friendly que Matlab (?) Dinámica nolineal y sistemas complejos con python Estructura del curso I Enfoque muy práctico: prácticas especı́ficas al final de las cuales los estudiantes han aprendido una serie conceptos nuevos. I Introducción del profesor, trabajo en el aula informática de los alumnos I Trabajo colaborativo en grupo (presencial y virtual) I Proyecto final en grupos + exposición en clase Dinámica nolineal y sistemas complejos con python Práctica 1: Nociones básicas de python I I instalación de python, editores de código (kate), Cadenas, listas, I/O de texto, etc. Dinámica nolineal y sistemas complejos con python Práctica 2: Reconocimiento de autores I I I I/O de ficheros, carpetas importar modulos en python (import os) codificación de caracteres, diccionarios Dinámica nolineal y sistemas complejos con python Práctica 3: Random walks Conocimientos de python: I Primer contacto con funciones de scipy: arrays, generación números aleatorios, I gráficos con matplotlib, histogramas I animaciones con mencoder Conocimientos de la práctica: I Propiedades de las caminatas aleatorias: 1. invariancia de escala y autosimilaridad 2. universalidad y teorema del lı́mite central 3. lı́mite contı́nuo y ecuación de difusión Dinámica nolineal y sistemas complejos con python Práctica 3: Random walks Dinámica nolineal y sistemas complejos con python Práctica 4: Random walks en finanzas Dinámica nolineal y sistemas complejos con python Práctica 4: Random walks en finanzas Conocimientos de python I importar ficheros de datos (e.g. de Yahoo Finance) en estructuras de python I histogramas, gráficos log-log, semi-log, etc. y ajustes Conocimientos de la práctica I análisis estadı́stico de series temporales de cotización de valores I distribuciones de Lévy y colas gordas, comparación con el TLC Dinámica nolineal y sistemas complejos con python Práctica 4: Random walks en finanzas Dinámica nolineal y sistemas complejos con python Práctica 5: Estructura de redes complejas Dinámica nolineal y sistemas complejos con python Práctica 5: Estructura de redes complejas Conocimientos de python I paquete networkx Conocimientos de la práctica I propiedades estadı́sticas de redes de Erdös-Renyi, Watts-Strogatz y Barábasi-Albert. I percolación, efecto pequeño mundo, enlazado preferencial y distribuciones libres de escala. Dinámica nolineal y sistemas complejos con python Práctica 5: Estructura de redes complejas Dinámica nolineal y sistemas complejos con python Práctica 6: Propagación, robustez y ataques a redes Dinámica nolineal y sistemas complejos con python Práctica 6: Propagación, robustez y ataques a redes Conocimientos de la práctica I Procesos dinámicos sobre redes complejas I Propagación de virus informáticos 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 de investigación. Dinámica nolineal y sistemas complejos con python Práctica 7: Sincronización de osciladores acoplados Dinámica nolineal y sistemas complejos con python Práctica 7: Sincronización de osciladores acoplados Conocimientos de python: I integración numérica de EDOs con scipy.integrate.odeint I 200 EDOs no lineales acopladas sin ningún problema Conocimientos de la práctica I modelo de Kuramoto, transición de fase, acoplamiento crı́tico I phase locking, phase drift I extensiones: ruido, acoplamiento sobre redes complejas, etc. Dinámica nolineal y sistemas complejos con python Práctica 8: Reacción-difusión y formación de patrones Dinámica nolineal y sistemas complejos con python Práctica 8: Reacción-difusión y formación de patrones Conocimientos de python/numéricos: I Integración numérica de EDPs de reacción difusión I Diferentes condiciones de contorno I esquema de diferencias finitas y algoritmo de Euler explı́cito Conocimientos de la práctica: I Inestabilidad de Turing I Selección de patrones I Aplicaciones en biologı́a Dinámica nolineal y sistemas complejos con python Práctica 8: Reacción-difusión y formación de patrones