Copyright | (c) 2011 Bryan O'Sullivan |
---|---|

License | BSD3 |

Maintainer | bos@serpentine.com |

Stability | experimental |

Portability | portable |

Safe Haskell | None |

Language | Haskell98 |

Haskell functions for finding the roots of mathematical functions.

# Documentation

The result of searching for a root of a mathematical function.

NotBracketed | The function does not have opposite signs when evaluated at the lower and upper bounds of the search. |

SearchFailed | The search failed to converge to within the given error tolerance after the given number of iterations. |

Root a | A root was successfully found. |

Alternative Root | |

Monad Root | |

Functor Root | |

MonadPlus Root | |

Applicative Root | |

Eq a => Eq (Root a) | |

Data a => Data (Root a) | |

Read a => Read (Root a) | |

Show a => Show (Root a) | |

Generic (Root a) | |

ToJSON a => ToJSON (Root a) | |

FromJSON a => FromJSON (Root a) | |

Binary a => Binary (Root a) | |

Typeable (* -> *) Root | |

type Rep (Root a) |

:: a | Default value. |

-> Root a | Result of search for a root. |

-> a |

Returns either the result of a search for a root, or the default value if the search failed.

:: Double | Absolute error tolerance. |

-> (Double, Double) | Lower and upper bounds for the search. |

-> (Double -> Double) | Function to find the roots of. |

-> Root Double |

Use the method of Ridders to compute a root of a function.

The function must have opposite signs when evaluated at the lower and upper bounds of the search (i.e. the root must be bracketed).

# References

- Ridders, C.F.J. (1979) A new algorithm for computing a single
root of a real continuous function.
*IEEE Transactions on Circuits and Systems*26:979–980.