I want to evaluate the solution of a system of non-linear ODEs using ParametricNDSolve. The output of ParametricNDSolve is a ParametricFunction object. Let’s call it $ f_\theta(t)$ , where $ \theta$ is a list of all parameters used in ParametricNDSolve.

For a given choice of the parameters $ \hat\theta$ , the ParametricFunction becomes a InterpolatingFunction object. I want to evaluate this function at multiple points $ \{t_1,t_2,…,t_n\}$ , which is, obtaining the value $ f_{\hat\theta}(t_i)$ .

Does Mathematica fully solve the system of equations each time I call $ f_{\hat\theta}(t_i)$ for a different $ i$ ? Or does it cache the InterpolatingFunction after the first call (let’s say, $ f_{\hat\theta}(t_1)$ ) and uses it to obtain the value of $ f_{\hat\theta}$ at $ t_2,…,t_n$ ?