This module contains tools for performing tangnet sensitivity analysis and adjoint sensitivity analysis using the Least Squares Shadowing (LSS) method.
The details are described in our paper "Sensitivity computation of periodic and chaotic limit cycle oscillations" at http://arxiv.org/abs/1204.0159
User should define two bi-variate functions, f and J.
f(u, s) defines a dynamical system du/dt = f(u,s) parameterized by s
J(u, s) defines the objective function, whose ergodic long time average is the quantity of interest.
u0 = rand(m) # initial condition of m-degree-of-freedom system
t = linspace(T0, T1, N) # 0-T0 is spin up time (starting from u0).
tan = Tangent(f, u0, s, t)
dJds = tan.dJds(J)
adj = Adjoint(f, u0, s, t, J)
dJds = adj.dJds()