[solver] Proposal: add classic tableau option for dopri5 #158
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi @rtqichen! Thanks for all the work done on maintaining the repo. I've been working on other niche numerical methods in PyTorch recently, and in the process implemented several standard, general-purpose ODE solvers. While checking against
torchdiffeq
for implementation accuracy, I noticed you've opted for adopri5
modified tableau (from here?).This PR is simply a proposal for adding, as an option, the classic dopri5 tableau (as per Hairer I, II.5). Running DETEST yields interesting results, with
classic_dopri5
being more accurate at low tols, although stricter tolerances make modifieddopri5
a clear winner in terms of NFEs:If nothing else, this would allow apples--to--apples benchmarking with Julia packages, since
OrdinaryDiffEq.jl
has the standard tableau as the standard option afaik. Classicdopri5
might also be useful to those mainly training Neural ODEs for ML tasks at tolerances~10^{-3}
. Not sure if of interest, but there you go!