Parameterize Anywhere
pfun = ParametricNDSolveValue[{x''[t] == -ω x[t], x[0] == x0, x'[0] == x1}, x, {t, 0, 4π}, {ω, x0, x1}];
Plot[Evaluate@Table[pfun[ω, 1, 0][t], {ω, .5, 3, .5}], {t, 0, 4π}, ImageSize -> Medium]GraphicsColumn[{Plot[Evaluate@Table[pfun[1, x0, 0][t], {x0, -1, 1, .1}], {t, 0, 4π}, ImageSize -> Medium], Plot[Evaluate@Table[pfun[1, 0, x1][t], {x1, -1, 1, .1}], {t, 0, 4π}, ImageSize -> Medium]}]pfun = ParametricNDSolveValue[{x''[t] == -ω x[t], x[0] == x0, x'[0] == x1}, x, {t, 0, 4π}, {ω, x0, x1, wp}, Method -> "Extrapolation", WorkingPrecision -> wp ];
ListLogPlot[Table[{wp, Abs[pfun[1, 1, 0, wp][4 π] - 1]}, {wp, 16, 60}], AxesLabel -> {wp, "Error"}, ImageSize -> Medium]