Let's say I have the NDSolve example for documentation involving splitting 2nd order into set of 1st order ODEs:
NDSolve[{x'[t] == y[t], y'[t] == -x[t], x[0] == 1, y[0] == 0}, {x,
y}, {t, 0, 10}]
I need to solve my second order system like this for various reasons.
My ODE is more complicated, and depends on some other parameters call them $(a,b)$, and so when I solved it as a second order system I used memoization in the form below, so that if a solution for a given parameter set had already been computed, Mathematica wouldn't redo it all again. I would like to do this, or something like it for the first order system and where NDSolve is giving the two variables $x[a,b],y[a,b]$.
x[a_,b_]:=
x[a,b] = x /.NDSolve[{eq[a,b],x[0]== init[a,b],x'[0]==dinit[a,b],x,{r, 0, 10}][[1]];

NDSolve`StateDatatutorial? – 0x4A4D♦ Sep 30 '12 at 1:38