In numerical analysis, Halley's method is a root-finding algorithm used for functions of one real variable with a continuous second derivative. Edmond Halley was an English mathematician and astronomer who introduced the method now called by his name.
The algorithm is second in the class of Householder's methods, after Newton's method. Like the latter, it iteratively produces a sequence of approximations to the root; their rate of convergence to the root is cubic. Multidimensional versions of this method exist.
Halley's method exactly finds the roots of a linear-over-linear Padé approximation to the function, in contrast to Newton's method or the Secant method which approximate the function linearly, or Muller's method which approximates the function quadratically.[1]
Halley's method is a numerical algorithm for solving the nonlinear equation . In this case, the function f has to be a function of one real variable. The method consists of a sequence of iterations:
xn+1=xn-
2f(xn)f'(xn) | |
2{[f'(xn)] |
2-f(xn)f''(xn)}
beginning with an initial guess .[2]
If f is a three times continuously differentiable function and a is a zero of f but not of its derivative, then, in a neighborhood of a, the iterates satisfy:
|xn+1-a|\leK ⋅ {|xn-a|}3,forsomeK>0.
This means that the iterates converge to the zero if the initial guess is sufficiently close, and that the convergence is cubic.[3]
The following alternative formulation shows the similarity between Halley's method and Newton's method. The expression
f(xn)/f'(xn)
f''(xn)/f'(xn)
xn+1=xn-
f(xn) | ||||||||||||
|
=xn-
f(xn) | |
f'(xn) |
\left[1-
f(xn) | |
f'(xn) |
⋅
f''(xn) | |
2f'(xn) |
\right]-1.
When the second derivative is very close to zero, the Halley's method iteration is almost the same as the Newton's method iteration.
Consider the function
g(x)=
f(x) | |
\sqrt{|f'(x)| |
Any root r of f that is not a root of its derivative is a root of g (i.e.,
g(r)=0
f(r)=0\ne{\sqrt{|f'(r)|}}
xn+1=xn-
g(xn) | |
g'(xn) |
with
g'(x)=
2[f'(x)]2-f(x)f''(x) | |
2f'(x)\sqrt{|f'(x)| |
and the result follows. Notice that if, then one cannot apply this at c because would be undefined.
Suppose a is a root of f but not of its derivative. And suppose that the third derivative of f exists and is continuous in a neighborhood of a and is in that neighborhood. Then Taylor's theorem implies:
0=f(a)=f(xn)+f'(xn)(a-xn)+
f''(xn) | |
2 |
(a-
2 | |
x | |
n) |
+
f'''(\xi) | |
6 |
(a-
3 | |
x | |
n) |
and also
0=f(a)=f(xn)+f'(xn)(a-xn)+
f''(η) | |
2 |
(a-
2, | |
x | |
n) |
where ξ and η are numbers lying between a and . Multiply the first equation by
2f'(xn)
f''(xn)(a-xn)
\begin{align} 0&=2f(xn)f'(xn)+2
2 | |
[f'(x | |
n)] |
(a-xn)+f'(xn)f''(xn)(a-
2 | |
x | |
n) |
+
f'(xn)f'''(\xi) | |
3 |
(a-
3 | |
x | |
n) |
\\ & -f(xn)f''(xn)(a-xn)-f'(xn)f''(xn)(a-
2 | |
x | |
n) |
-
f''(xn)f''(η) | |
2 |
(a-
3. \end{align} | |
x | |
n) |
Canceling
f'(xn)f''(xn)(a-
2 | |
x | |
n) |
0=2f(xn)f'(xn)+\left(2
2 | |
[f'(x | |
n)] |
-f(xn)f''(xn)\right)(a-xn)+\left(
f'(xn)f'''(\xi) | |
3 |
-
f''(xn)f''(η) | |
2 |
\right)(a-
3. | |
x | |
n) |
Put the second term on the left side and divide through by
2
2 | |
[f'(x | |
n)] |
-f(xn)f''(xn)
to get:
a-xn=
-2f(xn)f'(xn) | |||||||||
|
-
2f'(xn)f'''(\xi)-3f''(xn)f''(η) | ||||||||
|
(a-
3. | |
x | |
n) |
Thus:
a-xn+1=-
2f'(xn)f'''(\xi)-3f''(xn)f''(η) | |||||||||
|
(a-
3. | |
x | |
n) |
The limit of the coefficient on the right side as is:
- | 2f'(a)f'''(a)-3f''(a)f''(a) |
12[f'(a)]2-6f(a)f''(a) |
.
If we take K to be a little larger than the absolute value of this, we can take absolute values of both sides of the formula and replace the absolute value of coefficient by its upper bound near a to get:
|a-xn+1|\leqK|a-
3 | |
x | |
n| |
which is what was to be proved.
To summarize,
\Deltaxi+1=
3(f'')2-2f'f''' | |
12(f')2 |
(\Delta
3 | |
x | |
i) |
+O[\Delta
4, | |
x | |
i] |
\Deltaxi\triangleqxi-a.