Hello, how can i automaticaly calculate Jacobian?
I have next system and manual calculate Jacobian is hard
Code:
function TM(u, p, t)
U(y) = p[8] + p[9] / ( 1.0 + exp( -50.0 * (y - p[7]) ) )
σ(x) = 1.0 / ( 1.0 + exp( -20.0 * (x-p[6]) ) )
du1 = (-u[1] + p[1] * log( 1.0 + exp( (p[5] * U(u[3]) * u[2] * u[1] + p[11] ) / (p[1]) ) ) ) / p[2]
du2 = (1.0 - u[2])/p[3] - U(u[3])*u[2]*u[1]
du3 = (-u[3])/p[4] + p[10] * σ(u[2])
return SA[du1, du2, du3]
end
t = 5000.0; tstep = 0.001; ttr = 100000.0
integ_set = (alg = RK4(), adaptive = false, dt = tstep)
const τ = 0.013; const τD = 0.080; const τy = 3.3; const J = 3.07; const β = 0.300
const xthr = 0.75; const ythr = 0.4
const α = 1.58; const ΔU0 = 0.305;
I0_local = -1.6102257124
p = SA[α, τ, τD, τy, J, xthr, ythr, U0_, ΔU0, β, I0_local]
ds_A1 = CoupledODEs(TM, SA[3.614150444316901, 0.7995140316515059, 0.4256000782173303], p, diffeq = integ_set)
tr_A1, _ = trajectory(ds_A1, t, Δt = tstep; Ttr = ttr)
fp, eigs, stable = fixedpoints(ds_A1, box)