I need to integrate a differential equation of the form
\dot{u} = L(t) u \, ,
where u is a vector,
L(t) = L_0 + c(t) * L_1 \, ,
L_0 and L_1 large sparse matrices, and c(t) a time dependent coefficient.
I know I can use the Runge Kutta solvers inside DifferentialEquations.jl, or their derivatives like Tsit5 or Vern7.
I recently knew about a method that first expands e^{x} into a truncated series, then express it into the product of x-z_i (where z_i are the roots of the polynomial. Then the time evolution evolves according to the product of 1 - dt / z_i * L(t + t + dt) where L(t, t + dt) is the Magnus expansion of it. Are there similar methods within DifferentialEquations.jl? Would I see some advantages with respect to Tsit5 or Vern7 for example?
My current implementation involves SciMLOperator.jl, where I construct similar to
L = MatrixOperator(L_0) + ScalarOperator(0, update_func=my_func) * MatrixOperator(L_1)
and I efficiently use it with non-exponential methods like Tsit5 and similars.
Do the state-independent solvers expressed here support SciMLOperators.jl? I see that they use DiffEqArrayOperator instead.
Moreover, I see there are many solvers that might be the case, like the ones here and here. Can I use them form my case?
Also is there some documentation for the solvers here and here? Some of them seem very interesting to my case, if not exactly the thing I want. But I don’t have so much information about these algorithms.
At least at this time, these methods are not faster than the normal methods in most cases. It’s only if you really need the manifold constraint guaranteed (for example, positivity) that these methods give a property that the other methods don’t. At least, that’s with the current state of the methods, the current state of ExponentialUtilities.jl, etc. Maybe some benchmarks will change in their future if we keep improving the exponential tooling.
I browsed around the website, but couldn’t find the relevant result about the comparison between the exponential methods and the other methods. Could you provide the exact web page links? Thanks a lot.