MATLAB: Error using ODE solvers

ode solversode'stolerance

Hi I'm trying to solve for this system of ODEs using the ODE solver that works the fastest:
d/dt[x1 x2 x3] = [-10^4*x1+x2^2+x3;0.1*x2+x3;x1^3-x2-10^-4*x3]
So in order to determine which ODE solver computes this the fastest, I've simply tested each solver with the same conditions and tolerance. However, the x1 values I get are extremely off from each other from each solver even though x2 and x3 are relatively close in terms of the tolerance. I don't know what seems to be the problem…

Best Answer

The resulting trajectories will differ, when:
  • the ODE is stiff and you use a non-stiff solver,
  • the solution is not stable - then tiny deviations caused by the different integration schemes are amplified.
So at first determine the stiffness, then calculate the sensitivity matrix by varying the inputs and comparing the outputs.
Btw, if speed matters, -1e4 is faster than -10^4.