1
$\begingroup$

I am trying to solve a system of non-linear index-1 DAEs in which the derivatives of the state variables, $x(t)$ are corrupted by additive noise, $w(t)$ (whose covariance matrix is known).

$\dot x(t) = f(x(t),t,u(t)) + w(t)$

Is there a known (open source) solver/library/package/toolbox in MATLAB/Python/Julia (with or without adaptive time-stepping capability) that can solve the system?

$\endgroup$

1 Answer 1

3
$\begingroup$

DifferentialEquations.jl in Julia can do it if you can write it in mass-matrix form. You won't find it mentioned in the tutorial, but you can provide a mass matrix as part of the SDEProblem. Some of the stiff solvers can handle the problem (I see it's not well-documented yet which ones, but it's the symplectic and implicit Euler forms).

I will caution that this is pretty new so I would test it on a non-DAEs, i.e. using the mass-matrix functionality and then adding $M^{-1}$ to your SDE equations and checking to make sure that they calculate the same thing. If you notice any discrepancies, please file an issue. The architecture for the implicit handling here is based on the ODE solvers which are very well-tested, but since I see we don't explicitly has a mass matrix SDE test in the continuous integration suite yet I would just do this test before trusting it.

There are no adaptive timestepping algorithms for SDAEs quite yet (only for SDEs)... well... that are released. There is an adaptive timestepping stiff solver for additive noise SDAEs in mass matrix form which is in production but won't be released until after publication. Hopefully in a few months I can edit this post to be a more solid yes, but for now what we have should at least solve the problem.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.