In numerical analysis, the ITP method, short for Interpolate Truncate and Project, is the first root-finding algorithm that achieves the superlinear convergence of the secant method[1] while retaining the optimal[2] worst-case performance of the bisection method.[3] It is also the first method with guaranteed average performance strictly better than the bisection method under any continuous distribution. In practice it performs better than traditional interpolation and hybrid based strategies (Brent's Method, Ridders, Illinois), since it not only converges super-linearly over well behaved functions but also guarantees fast performance under ill-behaved functions where interpolations fail.
The ITP method follows the same structure of standard bracketing strategies that keeps track of upper and lower bounds for the location of the root; but it also keeps track of the region where worst-case performance is kept upper-bounded. As a bracketing strategy, in each iteration the ITP queries the value of the function on one point and discards the part of the interval between two points where the function value shares the same sign. The queried point is calculated with three steps: it interpolates finding the regula falsi estimate, then it perturbes/truncates the estimate (similar to) and then projects the perturbed estimate onto an interval in the neighbourhood of the bisection midpoint. The neighbourhood around the bisection point is calculated in each iteration in order to guarantee minmax optimality (Theorem 2.1 of). The method depends on three hyper-parameters
\kappa1\in(0,infty),\kappa2\in\left[1,1+\phi\right)
n0\in[0,infty)
\phi
\tfrac{1}{2}(1+\sqrt{5})
Given a continuous function
f
[a,b]
R
f(a)f(b)\leq0
f(x)
x
\epsilon>0
Problem Definition: Find
such that\hat{x}
, where|\hat{x}-x*|\leq\epsilon
satisfiesx*
.f(x*)=0
This problem is very common in numerical analysis, computer science and engineering; and, root-finding algorithms are the standard approach to solve it. Often, the root-finding procedure is called by more complex parent algorithms within a larger context, and, for this reason solving root problems efficiently is of extreme importance since an inefficient approach might come at a high computational cost when the larger context is taken into account. This is what the ITP method attempts to do by simultaneously exploiting interpolation guarantees as well as minmax optimal guarantees of the bisection method that terminates in at most
n1/2\equiv\lceillog2((b0-a0)/2\epsilon)\rceil
[a0,b0]
Given
\kappa1\in(0,infty),\kappa2\in\left[1,1+\phi\right)
n1/2\equiv\lceillog2((b0-a0)/2\epsilon)\rceil
n0\in[0,infty)
\phi
\tfrac{1}{2}(1+\sqrt{5})
j=0,1,2...
xITP
x1/2\equiv
a+b | |
2 |
xf\equiv
bf(a)-af(b) | |
f(a)-f(b) |
xt\equivxf+\sigma\delta
\sigma\equivsign(x1/2-xf)
\delta\equiv
\kappa2 | |
min\{\kappa | |
1|b-a| |
,|x1/2-xf|\}
xITP\equivx1/2-\sigma\rhok
\rhok\equivmin\left\{\epsilon
n1/2+n0-j | |
2 |
-
b-a | |
2 |
,|xt-x1/2|\right\}
f(xITP)
The following algorithm (written in pseudocode) assumes the initial values of
ya
yb
ya<0<yb
ya\equivf(a)
yb\equivf(b)
\hat{x}
|\hat{x}-x*|\leq\epsilon
n1/2+n0
a,b,\epsilon,\kappa1,\kappa2,n0,f
n1/2=\lceillog2\tfrac{b-a}{2\epsilon}\rceil
nmax=n1/2+n0
j=0
b-a>2\epsilon
x1/2=\tfrac{a+b}{2}
r=\epsilon
nmax-j | |
2 |
-(b-a)/2
\delta=
\kappa2 | |
\kappa | |
1(b-a) |
xf=\tfrac{yba-yab}{yb-ya}
\sigma=sign(x1/2-xf)
\delta\leq|x1/2-xf|
xt=xf+\sigma\delta
xt=x1/2
|xt-x1/2|\leqr
xITP=xt
xITP=x1/2-\sigmar
yITP=f(xITP)
yITP>0
b=xITP
yb=yITP
yITP<0
a=xITP
ya=yITP
a=xITP
b=xITP
j=j+1
\hat{x}=\tfrac{a+b}{2}
Suppose that the ITP method is used to find a root of the polynomial
f(x)=x3-x-2.
\epsilon=0.0005,\kappa1=0.1,\kappa2=2
n0=1
Iteration | an | bn | cn | f(cn) | |
---|---|---|---|---|---|
1 | 1 | 2 | 1.43333333333333 | -0.488629629629630 | |
2 | 1.43333333333333 | 2 | 1.52713145056966 | 0.0343383329048983 | |
3 | 1.43333333333333 | 1.52713145056966 | 1.52009281150978 | style="text-align: right;" | -0.00764147709265051 |
4 | 1.52009281150978 | 1.52713145056966 | 1.52137899116052 | style="text-align: right;" | -4.25363464540141e-06 |
5 | 1.52137899116052 | 1.52713145056966 | 1.52138301273268 | 1.96497878177659e-05 | |
6 | 1.52137899116052 | 1.52138301273268 | ← Stopping Criteria Satisfied |
The main advantage of the ITP method is that it is guaranteed to require no more iterations than the bisection method when
n0=0
Because the ITP method projects the estimator onto the minmax interval with a
n0
n1/2+n0
n0
n0=0
Because it does not take more than
n1/2+n0
n0=0
If the function
f(x)
x*
\sqrt{\kappa2}
n0 ≠ 0
n0=0
(b-a)/\epsilon
\tfrac{\epsilon
n1/2 | |
2 |