Open laserschwelle opened 2 years ago
I also understand the documentation such that dt sets an upper bound to the step size irrespective of additional points set in tstops or the points set in saveat.
No, you have to set dtmax
to set an upper bound on the step size.
expected = solve( dde,SROCK2(),dt=dt,saveat=save_times)
DDEProblem
s require a MethodOfSteps
algorithm. I'm not sure why this does not throw an error.
Using expected = solve(dde,MethodOfSteps(Tsit5()),dt=dt,saveat=save_times)
fixes the offset between the expected result and the workaround, but the main problem remains.
DDEProblems require a MethodOfSteps algorithm. I'm not sure why this does not throw an error.
That's not so with SDDEProblems: it just dispatches directly on the problem + the original algorithm. But yeah, this is odd.
Forgot to mention that safety errors were added about a year back for this: https://github.com/SciML/StochasticDelayDiffEq.jl/pull/67
I tried to introduce noise to a laser system and this seems to break some behaviour regarding
tstops
,saveat
anddt
.Given a SDDE dx(t) = f(x(t), x(t-τ))dt + g(x(t))dW and a corresponding DDE dx(t)/dt = f(x(t), x(t-τ)) I would assume that for g = 0 the solutions should be the same.
I also understand the documentation such that
dt
sets an upper bound to the step size irrespective of additional points set intstops
or the points set insaveat
.The following code reproduces the suspected bug:
This produces the following plot. The orange and green curves lie on top of each other. The slight offset between the expected points and the workaround is also unexpected.