Find root of a function using Newton’s or secant method.
Parameters:
Returns:
The function f must be continuous, x0 should be close enough to the root.
If the solver converges, info%converged is true and info%iterations is the number of iterations required. If the solver does not converge, info%converged is false and info%iterations is the maximum number of iterations.
The convergence criterion is abs(x - xa) < xtol + rtol*abs(x) where xa is the left endpoint of the current interval.
Impementation of bisect for real64
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
procedure(func64) | :: | f |
function to find root of |
|||
real(kind=rkind), | intent(in) | :: | x0 |
initial estimate of root |
||
procedure(func64), | optional | :: | fprime |
function to find root of |
||
real(kind=rkind), | intent(in), | optional | :: | xtol |
absolute tolerance |
|
real(kind=rkind), | intent(in), | optional | :: | rtol |
relative tolerance |
|
integer, | intent(in), | optional | :: | maxiter |
maximum number of iterations |
|
type(solver_info_t), | intent(out), | optional | :: | info |
solver info |