Copyright (c) Edward Kmett 2015 BSD3 ekmett@gmail.com experimental GHC only None Haskell2010

Contents

Description

Synopsis

# Newton's Method (Forward)

findZero :: (ForwardDouble -> ForwardDouble) -> Double -> [Double] Source #

The findZero function finds a zero of a scalar function using Newton's method; its output is a stream of increasingly accurate results. (Modulo the usual caveats.) If the stream becomes constant ("it converges"), no further elements are returned.

Examples:

>>> take 10 $findZero (\x->x^2-4) 1 [1.0,2.5,2.05,2.000609756097561,2.0000000929222947,2.000000000000002,2.0]  findZeroNoEq :: (ForwardDouble -> ForwardDouble) -> Double -> [Double] Source # The findZeroNoEq function behaves the same as findZero except that it doesn't truncate the list once the results become constant. inverse :: (ForwardDouble -> ForwardDouble) -> Double -> Double -> [Double] Source # The inverse function inverts a scalar function using Newton's method; its output is a stream of increasingly accurate results. (Modulo the usual caveats.) If the stream becomes constant ("it converges"), no further elements are returned. Example: >>> last$ take 10 $inverse sqrt 1 (sqrt 10) 10.0  inverseNoEq :: (ForwardDouble -> ForwardDouble) -> Double -> Double -> [Double] Source # The inverseNoEq function behaves the same as inverse except that it doesn't truncate the list once the results become constant. fixedPoint :: (ForwardDouble -> ForwardDouble) -> Double -> [Double] Source # The fixedPoint function find a fixedpoint of a scalar function using Newton's method; its output is a stream of increasingly accurate results. (Modulo the usual caveats.) If the stream becomes constant ("it converges"), no further elements are returned. >>> last$ take 10 $fixedPoint cos 1 0.7390851332151607  fixedPointNoEq :: (ForwardDouble -> ForwardDouble) -> Double -> [Double] Source # The fixedPointNoEq function behaves the same as fixedPoint except that doesn't truncate the list once the results become constant. extremum :: (On (Forward ForwardDouble) -> On (Forward ForwardDouble)) -> Double -> [Double] Source # The extremum function finds an extremum of a scalar function using Newton's method; produces a stream of increasingly accurate results. (Modulo the usual caveats.) If the stream becomes constant ("it converges"), no further elements are returned. >>> last$ take 10 \$ extremum cos 1
0.0


extremumNoEq :: (On (Forward ForwardDouble) -> On (Forward ForwardDouble)) -> Double -> [Double] Source #

The extremumNoEq function behaves the same as extremum except that it doesn't truncate the list once the results become constant.