I am learning how to work with SDEs in julia and am a bit confused:
In the documentation, both of SDEProblem
’s constructors take two functions f,g as their first two arguments, where f should be the drift and g the noise term. One of the constructors requires f to be of type SDEFunction
. That makes sense to me.
The strange part is: SDEFunction requires in its only constructor both the drift term f and noise term g:
SDEFunction{iip,specialize}(f,g; [...])
That does not make sense to me – if we use the first constructor of SDEProblem
:
SDEProblem(f::SDEFunction,g,u0,tspan,p=NullParameters();noise=WHITE_NOISE,noise_rate_prototype=nothing)
we would input g as both the 2nd argument of SDEProblem
and in the input of the first argument of SDEProblem
, since it is of type SDEFunction
.
To make things more confusing, the first-steps SDE tutorial does not provide g as parameter in the construction of the SDEProblem – contradicting the two contstructors in the documentation of SDEProblem.
ff = SDEFunction(f, g, analytic = f_analytic)
prob = SDEProblem(ff, u₀, (0.0, 1.0))
What am I not getting about this SDEFunction?