]> gitweb.michael.orlitzky.com - numerical-analysis.git/blobdiff - src/Roots/Simple.hs
Make numbers == 3000.1.* required.
[numerical-analysis.git] / src / Roots / Simple.hs
index 7742355041e289f0a3f40ccdadbfa41dca5b6044..79750e8d15b9aa2f0091e903b94a17accea9b7b8 100644 (file)
@@ -114,6 +114,14 @@ newton_iterations f f' x0 =
 --   >>> abs (f root) < 1/100000
 --   True
 --
+--   >>> import Data.Number.BigFloat
+--   >>> let eps = 1/(10^20) :: BigFloat Prec50
+--   >>> let Just root = newtons_method f f' eps 2
+--   >>> root
+--   1.13472413840151949260544605450647284028100785303643e0
+--   >>> abs (f root) < eps
+--   True
+--
 newtons_method :: (Fractional a, Ord a)
                  => (a -> a) -- ^ The function @f@ whose root we seek
                  -> (a -> a) -- ^ The derivative of @f@
@@ -242,4 +250,4 @@ fixed_point f epsilon x0 =
     -- |x_{n} - x_{n+1}| < epsilon. The pattern match on 'Just' is
     -- "safe" since the list is infinite. We'll succeed or loop
     -- forever.
-    Just winning_pair = find (\(x, diff) -> diff < epsilon) pairs
+    Just winning_pair = find (\(_, diff) -> diff < epsilon) pairs