I have an ordinary differential equation, such as (mine is much more complicated, besides being a 2-d system):
function dxdt!(du, u, p, t) x = u du = dx = 2*x^2 end
whose general analytical solution is, of course; x = 1/(c-2t), c = constant.
The initial condition (corresponding to c=1), for instance,
u0 = [1.0]
is given at time t = 0.0, but I would like to find the corresponding numerical solution for a whole interval containing the initial time, i.e, both forward and backward, such as, e.g., in the interval (-5.0, 0.45). I am able to set two ODEProblem’s, with the same single initial value, with distinct timespans: (0.0, 0.498) and (0.0, -5.0), such as:
tspan1 = (0.0,0.498) prob1 = ODEProblem(dxdt!, u0, tspan1) sol1 = solve(prob1) tspan2 = (0.0,0.498) prob2 = ODEProblem(dxdt!, u0, tspan2) sol2 = solve(prob1)
but then it is a bit awkward to deal with the union of these solutions in a convenient way. Is there a way to find the numerical solution, in a single shot, which comes from the past, passes through the initial condition point, and goes to the future?
Thanks in advance.