X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FRoots%2FSimple.hs;h=79750e8d15b9aa2f0091e903b94a17accea9b7b8;hb=3a03a2bdc233f1504764b21149a13162486fc3bf;hp=7742355041e289f0a3f40ccdadbfa41dca5b6044;hpb=3bee9f6a68ae735d6c5084171e2fb521d1ce3f18;p=numerical-analysis.git diff --git a/src/Roots/Simple.hs b/src/Roots/Simple.hs index 7742355..79750e8 100644 --- a/src/Roots/Simple.hs +++ b/src/Roots/Simple.hs @@ -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