ode solvers are all different. I've recently compared several fixed-time-step and variable-time-step ode solvers, with the same initial conditions, with the same model. Summary: They all give different solutions, sometimes fundamentally different.
Matlab/Simulink documentation gives a rough outline of picking the most useful (not the BEST) solver for the application under consideration.
Choose an ODE solver
Matlab Answers page
Decision tree to pick an ODE solver
about ordinary differential equations
The basic idea is:
- start with a variable time-step solver (ode45, for example)
- if solver performance is not as desired (too long to compute a timestep), start with the simplest method (ode1 Euler) and iteratively try higher order solutions until you arrive at an acceptable accuracy.
If you do not have design constraints like using a fixed-time-step ode solver, going with the highest one that you can afford (ode45?) would be the best idea.