So most parts of the answer can be found here:
Export NDSolve data
Here is their example
Needs["DifferentialEquations`InterpolatingFunctionAnatomy`"];
soln = NDSolve[{x''[t] == -5 (1 + 1000 Exp[-100 t^2]) x[t], x[-5] == 0, x'[-5]
== 1}, x, {t, -5, 5}]
xsoln = x /. First[First[soln]]
tvals = First[InterpolatingFunctionCoordinates[xsoln]];
xvals = InterpolatingFunctionValuesOnGrid[xsoln];
ListPlot[Transpose[{tvals, xvals}], PlotRange -> All]
Once the data is collected in a table. There is an inbuild funcion called "FindFunction". See here: https://reference.wolfram.com/language/ref/FindFormula.html
{ }icon in theEditwindow to format your code. – Syed Mar 17 '22 at 17:34s = NDSolve[{y'[x] == y[x] Cos[x + y[x]], y[0] == 1}, y, {x, 0, 30}]; Plot[Evaluate[y[x] /. s], {x, 0, 30}, PlotRange -> All]. Second example shows how to do a parametric plot. Check outNDSolveValue, too, for a different form that is sometimes more convenient. – Michael E2 Mar 17 '22 at 18:32