Hello guys,
I am trying to solve a ODE using the CVODE_BDF() solver of the Sundials package. Here is a snippet of my code:
Defining the function
function f(dX, X, p, t)
#A, B, D, E, Inh = p
#dX = -A*X + (B - X)*E - (D + X)*Inh
dX[1] = -p[1]*X[1] + (p[2] - X[1])*p[4] - (p[3] + X[1])*p[5]
# in case there are more than one output neuron
#for i = 1:length(X)
# dX[i] = -A*X[i] + (B - X[i])*E - (D + X[i])*Inh
#end
return dX[1]
end
ODE
x0 = Array{Float64}(undef, 1)
fill!(x0, X0) # fill array with initial values
#x0 = X0
p = [2.0, 253.0, 16.0, Ex, Inh]
tspan = (0.0,0.5)
prob = ODEProblem(f,x0,tspan,p)
sol = solve(prob,CVODE_BDF(linear_solver=:Dense))
plot(sol)
#Unfortunately, I am getting this Error:
LoadError: TypeError: in cfunction, expected Union{}, got Int32
in expression starting at /Users/Boris/Documents/adaptive_CS.jl:70
__CVode at cvodes.jl:312 [inlined]
CVode(::Sundials.Handle{Sundials.CVODEMem}, ::Float64, ::Array{Float64,1}, ::Array{Float64,1}, ::Int32) at cvodes.jl:317
#I don’t understand what is going on. Can someone help with this? I will appreciate it.