You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary
If all the steps the 1D Newton solver encounters have the same sign, the solver will return a root, no matter what. For example, root finding the function f(x) = x over the interval [1, 3] returns a root near 1.
Why this occurs
If the 1D Newton root finder overshoots a bound, it will bisect with said bound. Repeated overshoots and subsequent bisections decrease the step size. When the step size is sufficiently small, the convergence criteria is satisfied and a root is returned. This functionality results in answers that are obviously wrong as the above example showed. The behavior of finding roots at ends causes problems with real workflows, e.g., #808.
Deeper issues
A related danger is that people may write code whose apparent correct functioning is a result of the 1D Newton solver's ability to find roots in objective functions that do not contain them. An example of this occurring in Boost Math is the temme root finder which #1004 attempts to correct.
The text was updated successfully, but these errors were encountered:
Summary
If all the steps the 1D Newton solver encounters have the same sign, the solver will return a root, no matter what. For example, root finding the function
f(x) = x
over the interval [1, 3] returns a root near 1.Why this occurs
If the 1D Newton root finder overshoots a bound, it will bisect with said bound. Repeated overshoots and subsequent bisections decrease the step size. When the step size is sufficiently small, the convergence criteria is satisfied and a root is returned. This functionality results in answers that are obviously wrong as the above example showed. The behavior of finding roots at ends causes problems with real workflows, e.g., #808.
Deeper issues
A related danger is that people may write code whose apparent correct functioning is a result of the 1D Newton solver's ability to find roots in objective functions that do not contain them. An example of this occurring in Boost Math is the temme root finder which #1004 attempts to correct.
The text was updated successfully, but these errors were encountered: