-- >>> let yN = head $ reverse ys
-- >>> abs ((exp 1) - yN) < 1/10^3
-- True
+-- >>> head ys == y0
+-- True
--
eulers_method :: forall a b c. (RealFrac a, RealFrac b, Integral c)
=> a -- ^ x0, the initial point
-> c -- ^ n, the number of intervals to use.
-> [b]
eulers_method x0 y0 xN f n =
- go xs y0 f
+ y0 : go xs y0 f
where
xs = partition n x0 xN