# Recovery model Tsodyks and Markram with Sindy DataDrivenDiffEq.jl

**URL:** <https://discourse.julialang.org/t/recovery-model-tsodyks-and-markram-with-sindy-datadrivendiffeq-jl/127144>\
**Category:** Modelling & Simulations\
**Created:** [March 19, 2025, 3:27pm UTC](https://discourse.julialang.org/t/recovery-model-tsodyks-and-markram-with-sindy-datadrivendiffeq-jl/127144 "2025-03-19T15:27:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sergey\_Novak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sergey_novak/32/37716_2.png) [@Sergey\_Novak](https://discourse.julialang.org/u/Sergey_Novak)\
**Post date:** [March 19, 2025, 3:27pm UTC](https://discourse.julialang.org/t/recovery-model-tsodyks-and-markram-with-sindy-datadrivendiffeq-jl/127144/1 "2025-03-19T15:27:58Z")

</div>

Hello, is it possible to reconstruct the Tsodyks and Markram model using SINDY? If so, how do you correctly define candidates and what to do with such a nonlinearity as a function `g (E, x, u, J, I0) = α * log (1.0 + exp ((J * u * x * E + I0) / α ))`

Can someone share a code example where a model with a similar nonlinearity was restored?

Thanks for your help

```julia
@inbounds function TM(var, p, t)

    E,x, u = var;
    τ, τ_F, τ_D, U, J, I0, α = p;
    
    g(E, x, u, J, I0) = α * log( 1.0 + exp( (J * u * x * E + I0) / α ))

    du1 = (-E + g(E, x, u, J, I0)) / τ;
    du2 = (1 - x) / τ_D - u * E * x;
    du3 = U * E * (1 - u) - (u - U) / τ_F; 

    return SVector(du1, du2, du3)
end

function TM_params()
    τ = 13.0 / 1000.0
    τ_D = 200.0 / 1000.0
    τ_F = 1500.0 / 1000.0
    J = 3.07 
    U = 0.3
    α = 1.5
    I0 = -1.765
    return [τ, τ_F, τ_D, U, J, I0, α];
end

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [March 20, 2025, 8:06am UTC](https://discourse.julialang.org/t/recovery-model-tsodyks-and-markram-with-sindy-datadrivendiffeq-jl/127144/2 "2025-03-20T08:06:54Z")

</div>

> [@Sergey\_Novak](#):
>
> If so, how do you correctly define candidates and what to do with such a nonlinearity as a function `g (E, x, u, J, I0) = α * log (1.0 + exp ((J * u * x * E + I0) / α ))`

It would require a like term in the library for reconstruction. This kind of nonlinearity is better dealt with SymbolicRegression.jl rather than the linear symbolic regression tooling.

---

<div class="post-metadata">

**Author:** ![Sergey\_Novak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sergey_novak/32/37716_2.png) [@Sergey\_Novak](https://discourse.julialang.org/u/Sergey_Novak)\
**Post date:** [March 20, 2025, 2:40pm UTC](https://discourse.julialang.org/t/recovery-model-tsodyks-and-markram-with-sindy-datadrivendiffeq-jl/127144/3 "2025-03-20T14:40:08Z")

</div>

Thank you!
