# Chaostools tangent\_integrator stiff solvers

**URL:** <https://discourse.julialang.org/t/chaostools-tangent-integrator-stiff-solvers/26464>\
**Category:** Modelling & Simulations\
**Created:** [July 17, 2019, 2:11pm UTC](https://discourse.julialang.org/t/chaostools-tangent-integrator-stiff-solvers/26464 "2019-07-17T14:11:14Z")\
**Posts on this page:** 1\
**Showing post:** 26

<div class="post-metadata">

**Author:** ![jamblejoe](https://avatars.discourse-cdn.com/v4/letter/j/ee7513/32.png) [@jamblejoe](https://discourse.julialang.org/u/jamblejoe)\
**Post date:** [July 18, 2019, 12:21pm UTC](https://discourse.julialang.org/t/chaostools-tangent-integrator-stiff-solvers/26464/26 "2019-07-18T12:21:33Z")

</div>

The whole idea of using the `tangent_integrator` is to calculate Lyapunov exponents. Say we have a differential equation

> d/dt x = f(x)

with Jacobian Df, then we need to solve the coupled system

> d/dt x = f(x)  
> d/dt W = Df(x)\*W

This is what `create_tangent` does - it ties both differential equations together in one differential equation, say g, which then can be solved. The solver then might need to compute Dg. the Jacobian of g, for solving the for some initial values.

So if we have symbolically defined f, we can calculate the Jacobian Df of f, couple the system and get g and the symbolically calculate Dg. So we only need the define f and the rest could be done by the symbolic engine. This would save a lot of code writing as the dimension of Dg grows asymptotically to the power of 4 of the dimension of f, e.g. for the Lorenz system  
dim(f) = 3  
dim(Df) = 3x3 = 9  
dim(g) = 3 + 9 = 12  
dim(Dg) = 12x12 =144.

`SparseDiffTools` would be very handy here, as the dimensions grow quickly.

I will not be at JuliaCon this year, unfortunately. I picked up Julia two months ago and am just scratching the surface right now 🙂

---

_[View the full topic](https://discourse.julialang.org/t/chaostools-tangent-integrator-stiff-solvers/26464)._
