
Check whether an ODE solving method requires a Jacobian (is implicit)
Source:R/rxsolve.R
rxIsImplicit.RdImplicit ODE solvers linearise the system at each step and therefore
require the Jacobian df/dy. rxode2 auto-computes a symbolic Jacobian
when one of these methods is requested and falls back to "liblsoda" if
symbolic differentiation fails. Use this function to test whether a
method string or integer code corresponds to an implicit solver.
Arguments
- method
A character vector of method names or an integerish vector of method codes (as returned by
odeMethodToInt()). Vectorised.
Value
A logical vector the same length as method. TRUE if the
corresponding method is implicit and requires a Jacobian.
Details
Implicit methods are:
"ros4" (13), "iem" (14), "ros43" (31), "ros6" (32),
"backwardEuler" (33), "gauss6" (34), "iiic6" (35), "radauiia5" (36),
"geng5" (37), "sdirk43" (38).
Examples
rxIsImplicit("ros4") # TRUE
#> [1] TRUE
rxIsImplicit("liblsoda") # FALSE
#> [1] FALSE
rxIsImplicit(c("ros43", "dop853", "iem")) # TRUE FALSE TRUE
#> [1] TRUE FALSE TRUE
rxIsImplicit(13L) # TRUE (ros4)
#> [1] TRUE
rxIsImplicit(0L) # FALSE (dop853)
#> [1] FALSE