[
https://issues.apache.org/jira/browse/MATH-599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069945#comment-13069945
]
Gilles commented on MATH-599:
-----------------------------
Thanks for reporting; I've already found a copy/paste bug in the code, although
I don't think it is the cause of your problem.
{noformat}
FindRoot[Exp[x]==Pi^3,{x,1,10}, RegulaFalsi]
{noformat}
I'm not used to this syntax (sorry), what is the function?
{quote}
Shouldn't there be a test for a "maximum iteration" [...]
{quote}
No, the failure criterion is the number of function evaluations, which is taken
care of in the parent class through the {{computeObjectiveValue}} method.
> Re-implementation of Secant-based root finding algorithms
> ---------------------------------------------------------
>
> Key: MATH-599
> URL: https://issues.apache.org/jira/browse/MATH-599
> Project: Commons Math
> Issue Type: Improvement
> Reporter: Dennis Hendriks
> Labels: documentation, patch
> Fix For: 3.0
>
> Attachments: secant-based-root-finding-algos.patch,
> secant-based-root-finding-algos2.patch, secant-based-root-finding-algos2.zip
>
>
> Apache Commons Math currently has a SecantSolver. It is unclear exactly what
> algorithm this solver implements. It states: "The algorithm is modified to
> maintain bracketing of a root by successive approximations. Because of forced
> bracketing, convergence may be slower than the unrestricted Secant algorithm.
> However, this implementation should in general outperform the Regula Falsi
> method." The Regula Falsi method is exactly the Secant method modified to
> maintain a bracketed solution. It is therefore unclear what other
> modifications were done to make it 'better' than the Regula Falsi method.
> Besides the Secant and Regula Falsi methods, several other Secant-based
> root-finding algorithms exist, such as the the Illinois method, and the
> Pegasus method. All 4 are well-known, publisched algorithms.
> I created a patch, which changes the following:
> - Removed SecantSolver root-finding algorithm.
> - Implemented new Secant-based root-finding algorithms: SecantSolver,
> RegulaFalsiSolver, IllinoisSolver, and PegasusSolver.
> - Introduced BracketedSolution interface and AllowedSolutions enumeration,
> to control allowed solutions (under-approximations and over-approximations)
> for bracketed root-finding algorithms. Implemented for RegulaFalsiSolver,
> IllinoisSolver, and PegasusSolver.
> - Fixed documentation of BaseUnivariateRealSolver.solve methods, such that
> documentation order of arguments matches the order of the actual arguments.
> Note that the original SecantSolver was removed, and replaced by a
> root-finding algorithm that actually implements the Secant root-finding
> algorithm. As such, existing code using the SecantSolver is not backwards
> compatible. That is, even though the new SecantSolver does implement the same
> interfaces, the root-finding solutions may differ. In particular, the new
> SecantSolver does not maintain a bracketed solution, and does not guarantee
> convergence.
> I added unit tests, and I did a build, including checkstyle checking. I did
> not fix all checkstyle warnings though, as I consider some of them false
> positives.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira