# MGpredictability https://github.com/jTarigo/MGpredictability ###### tags: `Entregable 8` En construcción. ## Deps * DynamicalSystems * Plots * SparseArrays * Peaks * Statistics ## Implementado * definir type: **AbstractSystem**. Definir type: **MackeyGlass_System <: AbstractSystem**. Definir struct: **MG**. Toma 4 parametros $\alpha$, $\Gamma$, $N$ y $n$ que definen totalmente el sistema de Mackey-Glass. * definir type: **AbstractSolver**. Definir struct: **Solver <: AbstractSolver**. Toma 1 parametro $alg$ que define de que manera se va a resolver numericamente el sistema definido por **abstractSystem**. * definir type: **AbstractTrajectory**. Definir struct: **Trajectory <: AbstractTrajectory**. Contiene dos vectores, uno codifica el tiempo y el otro la variable $x$ del sistema de Mackey-Glass. Actual: ```julia struct Trajectory <: AbstractTrajectory t::AbstractVector x::AbstractVector end ``` * definir funciones: **eom!** y **jacobian!** que definen la ecuacion de movimiento y el jacobiano de Mackey-Glass * definir funcion: **DynSys(S::abstractSystem, init_cond::AbstractVector, algoirithm = Solver("discrete"))**. Devuelve el sistema dinamico como variable del tipo DynamicalSystem del paquete 'DynamicalSystems.jl'. * definir funcion: **TimeSeries(S::abstractSystem, $\Delta t$ = 200., Transient = 1000.)**. Evoluciona el sistema un tiempo *Transient* y luego guarda los valores de *t* y *x* desde *Transient* hasta *Transient $+ \; \Delta t$* en una variable del tipo **abstractTrajectory**. * definir type: **AbstractAttractor**. Definir struct: **Attractor <: AbstractAttractor**. Contiene el numero de picos de un atractor como **Int64**, el periodo del mismo como **Float64** y el orden de los picos como **Vector{Int64}**. * definir funcion: **defineAttractor(X::Trajectory)**. Devuelve el **Atractor** de la trayectoria **X**. Si la trayectoria es caotica devuelve **Attractor(-1, -1, [-1])**. Si la trayectoria es un punto fijo devuelve **Attractor(0, 0, [])**. ## Pendientes * Integrar isospike digrams * Explorar los distintos algoritmos de cuatificacion de la predictibilidad de sistemas de 'DynamicalSystems.jl', principalmente *'Entropies.permentropy'*, *'ChaosTools.lyapunovspectrum'*, *'ChaosTools.lyapunov'*, *'ChaosTools.lyapunov_from_data'* y *'ChaosTools.basin_entropy'*. * Implementar **basin_entropy** ya que el de *DynamicalSystems* como esta no funciona para MG. * Calcular exponentes de Lyapunov ## Preguntas