The `Manipulate` and the first `Plot` of your code don't work because you use a combination of `SetDelayed` (`:=`) and `ReplaceAll` (`/.`) that doesn't behave like you expected. When you have defined g[t_, f0_, f1_, ff1_] := f[t] /. sol[[1]] and now evaluate g[2, 1, 1, 1] you get > f0 + 4 (-3 f0 + 3 f1 - ff1) + 8 (2 f0 - 2 f1 + ff1) instead of the expacted > 5 This happens because (due to the use of `:=`) `f[t]` on the rhs is evaluated as f[2] (giving `a + 4 c + 8 d`) and then the replacement (`/. sol[[1]]`) is done.