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