I have eqs about the NDSolve
, I know this code given the solving automatically.
How can I find out what method is used behind the scenes? How can I gauge the reliability level, find how many iterations have been used, the order of method. How can I estimate the error?
I found hints on this site, but I still do not fully understand.
It is impossible to say NDSolve
has automatically solution for publishing paper?
I used this code related to my system:
r = 0.431201; β = 2.99 *10^-6; σ = 0.7; δ = 0.57;
{m = 0.3, η = 0.1, μ = 0.1, ρ = 0.3};
S = {N1'[t] == r N1[t] (1 - β N1[t]) - η N1[t] I1[t],
I1'[t] == σ + (ρ N1[t] I1[t])/( m + N1[t]) - δ I1[t] - μ N1[t] I1[t]};
c = {N1[0] == 1, I1[0] == 1.22};
Select[Flatten[
Trace[
NDSolve[{S, c}, {N1, I1}, {t, 0, 30}],
TraceInternal -> True]],
!FreeQ[#, Method | NDSolve`MethodData] &]
but I don't understand the output.
Trace[]
command. But the first is a very general statement about things already explained and the second is about a command that no one else can reproduce $\endgroup$ – Michael E2 Mar 24 at 1:44NDSolve
function of software Mathematica" is enough in many cases, AFAIK. $\endgroup$ – xzczd Mar 24 at 3:39NDSolve
can be found intutorial/NDSolveExplicitRungeKutta#1456351317
, then you just need to setMethod -> {"ExplicitRungeKutta", "DifferenceOrder" -> 4, "Coefficients" -> ClassicalRungeKuttaCoefficients}, StartingStepSize -> 1/20000, MaxSteps -> Infinity
inNDSolve
. The solving process is slower but gives the same result as given by default. $\endgroup$ – xzczd Mar 24 at 3:59