I read here that in the context of “trajectory optimisation” or “optimal control”:
One very important idea in numerical integration of differential equations is the use of variable-step integration … We typically avoid using variable steps inside a constraint (it can lead to discontinuous gradients)
What is your experience with optimising functions (with e.g. Ipopt) that entail variable-step integration? Is the resulting discontinuity in the gradients crippling to the performance of the optimisation solver?
Related comment, but not sure how much it applies to variable-step differential equation solvers.
If using continuous adjoint approaches, it does not lead to a discontinuity.
That’s only when solving the differential equations to high precision, right?
No, because the derivative is a differential equation of a smooth function of
df/dp, so if
f is smooth then so its that derivative.
What is referred to is that adaptive ODE solvers’ solution is essentially noise below the tolerance limit. So if you solve at a tolerance of
1e-8, then the solution can jump around by
1e-8 even for small changes in the parameters. This is because it does not guarantee any accuracy below that, and a change of a parameter can cause a step rejection which then gives a different solving process. However, that only is a problem if you’re using finite difference gradients: with continuous sensitivities the sensitivity equation is itself continuous and its calculation can be done with error controls.