[Proposal]: Add more Ito SDE Solvers
For better or worse ~~the real world is an Ito SDE~~ Ito SDE formulations are pretty common in physics/engineering problems. Right now, if you have a SDE you need the Ito solution to, you only have Euler or Milstein (neither of which has an embedded error estimate). And diffrax's milstein implementation doesn't support the levy area stuff you need to work on non-commutative noise processes. There's quite some nice options when it comes to Langevin or Strato solvers, and it would be nice to have some more Ito ones. (side note, I've often used strato ones with a correction, but noticed pretty poor performance, not sure if that's a expected heuristic or I'm just unlucky).
I am not one to raise a problem without a solution. We have some methods that could be cleaned up and put in diffrax, listed below, but I only want to put in the work to get them cleaned up if they are a fit for diffrax. There is a fair amount of focus on solver with high weak orders as well (really, who needs path wise convergence anyway).
- ~~drift implicit euler~~
- W2Ito1/2 (E-SRK): https://link.springer.com/article/10.1007/s10543-016-0618-9
- Other weak E-SRK methods
- MoraTaylor (explicit Taylor method) and MoraEuler (adaptive Euler): https://www.sciencedirect.com/science/article/abs/pii/S0168927423000399
- Other explicit Taylor methods
- Weak adaptive error estimate: https://onlinelibrary.wiley.com/doi/abs/10.1002/pamm.200410005 (works for w2ito in addition to other e-srk schemes) and additional levy area estimates necessary for the above
really, who needs path wise convergence anyway
Adaptive stepping, I think :p
(You're right, it used to be the case that it was very hard to get strong-convergence proofs published because no-one cared!)
Anyway very happy to have these in! See also the venerable #8.
Adaptive stepping, I think :p
At least the Rößler paper shows that for 1D noise you can do weak adaptive stepping (and it isn't proven to work on anything else, but that's just what the Julia people do apparently, although empirically when we tried it with weak SRK schemes it was really bad lol).
Anyway very happy to have these in!
I wanted to make sure to check ahead of time (to avoid opening unnecessary PRs, like drift implicit Euler)
https://github.com/patrick-kidger/diffrax/issues/8
We actually have a Talay scheme as well (idk the literature well enough to know if it's the same you are referring to, we have on based on https://www.tandfonline.com/doi/abs/10.1080/17442509008833606). There's also a variant of it, but I have to check with James if he wants it out yet since he did all the theory work there.
All of this will be after the stateful controls though.