Which API would you recommend for my use case? Many times a scientist is choosing a programming language or a software for a specific purpose. Since it also features solvers for the non-ordinary differential equations and its unique Julia methods also benchmarks well, I think it's clear that DifferentialEquations. It has parameter estimation tools but just uses Levenberg-Marquardt and Bounded Minimization. Brown, is a variant of LSODE in which the direct solvers for the linear systems have been replaced by a selection of four preconditioned Krylov iterative solvers.
Uploader: | Kikus |
Date Added: | 10 February 2008 |
File Size: | 32.5 Mb |
Operating Systems: | Windows NT/2000/XP/2003/2003/7/8/10 MacOS 10/X |
Downloads: | 35630 |
Price: | Free* [*Free Regsitration Required] |
The classic softwares were placed at excellent because they do give you step-by-step control of BDF methods to in theory allow you to build whatever interface you want on top of it. Thanks for pointing this out!
But there are other areas where more efficient methods were passed up during the development phase of the ODE suite. Instead, it wraps some of the Hairer methods, specifically dopri5 and radau, and recommends these. Sundials was the first to package that all together nicely. Thus while some of its basics are a little odd why a Fehlberg method?
In a few days I will be posting about the release of 3. I hope this review helps you make a choice which is right for you. As for the other choices from scripting languages, MATLAB wasn't designed to have all of the most efficient methods, but it'll handle basic equations with delays and events and output good plots.
It also has an implicit RKC method as well. You do have to live with the limitations of low-level software forcing specific number and array types, along with the fact that you need to write your own event handling, but if you're "hardcore" and writing in a compiled language this suite is a good bet. For example, the interpolation is "lazy", meaning that if the method requires extra function evaluations for the continuous form, it will only do those extra calculations when the continuous function is used so when you directly ask for it or when you plot.
ODEPACK: Numerical Solutions to ODEs
It does have a big options list, so if you were planning on swapping out the linear solver for PETSc you're out of luck, but it does expose some of the internal options of LSODA for banded Jacobians. And if you have an asymtopically large problem or very expensive function evaluations, this will be the most efficient as well.
It uses a method of steps implementation over its explicit Runge-Kutta methods for solving nonstiff DDEs efficiently, and includes high order Runge-Kutta methods for stochastic differential equations though it doesn't do adaptive timestepping in this case. This is in contrast to simple Levenberg-Marquardt that I see code suggestions for in online threads.
That would really round out the offering. Two of the solvers use general sparse matrix solvers for the linear systems that arise. But another part of it is for ODE solvers. The mentioned SDE solver from the financial toolbox is only order 0. For this reason there's a few other low order SDIRK methods ode23tb, an ESDIRK method for highly stiff problems which are recommended to fill in the odepcak, but none of the higher order variants which are known to be more efficient for many equations.
So in a pinch when not all of the bells and whistles are necessary, each of these scripting language suites will get you by.
We odepqck note that its array of available methods is small and it offers radau which is great for high accuracy ODEs and DAEs, but is not the most efficient at lower accuracy so it would've been nice to see Rosenbrock and ESDIRK methods.
But then there are the native Julia methods. It's not a hard change but can make a big difference. There is some active development to fix this.
Multistep methods can fail quite often showed up just the other day in a StackOverflow post especially at higher tolerances, and they don't work well when you have lots of events.
ODEPACK - Ordinary Differential Equation Solvers
Idepack, its implementations do not make use of advanced timestepping techniques with its explicit RK method PI-controllers which makes it require more steps to achieve the same accuracy as some of the more advanced software, making it not really any more efficient in practice though it does do Gustafsson acceleration in its Rosenbrock scheme to prevent "the Hump" behavior. When comparing their choices against what is known to be efficient according to the ODE research and benchmarks, the methods that they odepacl to implement are pretty bizarre like extrapolation methods which have repeatedly been shown to not be very efficient, while not included other more important methods.
A much larger goal would be to add discontinuity tracking to their state-dependent delay equation solver. I am thankful ode;ack many people are interested!
Subscribe to RSS
Oddpack, your blog cannot osepack posts by email. This site uses Akismet to reduce spam. While most of the other suite offer no more than about 15 methods on the high end with most offering about 8 or lessDifferentialEquations. Multistep methods are also not very stable at their higher orders, and so at higher tolerances lower accuracy these methods may fail to have their steps converge on standard test problems see this note in the ROBER testsmeaning that you may have to increase the accuracy and thus computational cost due to stiffness issues.
The documentation specifically says:. It has methods specialized to reduce interpolation error the OwrenZen methodsand methods which are strong-stability preserving for hyperbolic PDEs.
Комментариев нет:
Отправить комментарий