Householder's method
In mathematics, and more specifically in numerical analysis, Householder's methods are a class of root-finding algorithms that are used for functions of one real variable with continuous derivatives up to some order d + 1. Each of these methods is characterized by the number d, which is known as the order of the method. The algorithm is iterative and has a rate of convergence of d + 1.
These methods are named after the American mathematician Alston Scott Householder.
Method
Householder's method is a numerical algorithm for solving the equation f(x) = 0. In this case, the function f has to be a function of one real variable. The method consists of a sequence of iterations
- [math]\displaystyle{ x_{n+1} = x_n + d\; \frac {\left(1/f\right)^{(d-1)}(x_n)} {\left(1/f\right)^{(d)}(x_n)} }[/math]
beginning with an initial guess x0.[1]
If f is a d + 1 times continuously differentiable function and a is a zero of f but not of its derivative, then, in a neighborhood of a, the iterates xn satisfy:[citation needed]
- [math]\displaystyle{ | x_{n+1} - a | \le K \cdot {| x_n - a |}^{d+1} }[/math], for some [math]\displaystyle{ K \gt 0.\! }[/math]
This means that the iterates converge to the zero if the initial guess is sufficiently close, and that the convergence has order d + 1 or better. Furthermore, when close enough to a, it commonly is the case that [math]\displaystyle{ x_{n+1} - a \approx C (x_n - a)^{d+1} }[/math] for some [math]\displaystyle{ C \ne 0 }[/math]. In particular,
- if d + 1 is even and C > 0 then convergence to a will be from values greater than a;
- if d + 1 is even and C < 0 then convergence to a will be from values less than a;
- if d + 1 is odd and C > 0 then convergence to a will be from the side where it starts; and
- if d + 1 is odd and C < 0 then convergence to a will alternate sides.
Despite their order of convergence, these methods are not widely used because the gain in precision is not commensurate with the rise in effort for large d. The Ostrowski index expresses the error reduction in the number of function evaluations instead of the iteration count.[2]
- For polynomials, the evaluation of the first d derivatives of f at xn using the Horner method has an effort of d + 1 polynomial evaluations. Since n(d + 1) evaluations over n iterations give an error exponent of (d + 1)n, the exponent for one function evaluation is [math]\displaystyle{ \sqrt[d+1]{d+1} }[/math], numerically 1.4142, 1.4422, 1.4142, 1.3797 for d = 1, 2, 3, 4, and falling after that. By this criterion, the d=2 case (Halley's method) is the optimal value of d.
- For general functions the derivative evaluation using the Taylor arithmetic of automatic differentiation requires the equivalent of (d + 1)(d + 2)/2 function evaluations. One function evaluation thus reduces the error by an exponent of [math]\displaystyle{ \sqrt[\frac{(d+1)(d+2)}{2}]{d+1} }[/math], which is [math]\displaystyle{ \sqrt[3]{2}\approx 1.2599 }[/math] for Newton's method, [math]\displaystyle{ \sqrt[6]{3}\approx 1.2009 }[/math] for Halley's method and falling towards 1 or linear convergence for the higher order methods.
Motivation
First approach
Suppose f is analytic in a neighborhood of a and f(a) = 0. Then f has a Taylor series at a and its constant term is zero. Because this constant term is zero, the function f(x) / (x − a) will have a Taylor series at a and, when f ′ (a) ≠ 0, its constant term will not be zero. Because that constant term is not zero, it follows that the reciprocal (x − a) / f(x) has a Taylor series at a, which we will write as [math]\displaystyle{ \sum_{k=0}^{+\infty} \frac{c_k (x-a)^k}{k!} }[/math] and its constant term c0 will not be zero. Using that Taylor series we can write [math]\displaystyle{ \frac{1}{f} = \frac{c_{0}}{x-a} + \sum_{k=1}^{+\infty} \frac{c_{k} (x-a)^{k-1}}{k~(k-1)!}\,. }[/math] When we compute its d-th derivative, we note that the terms for k = 1, ..., d conveniently vanish: [math]\displaystyle{ \left(\frac{1}{f}\right)^{(d)} = \frac{(-1)^d d!~c_{0}}{(x-a)^{d+1}} + \sum_{k=d+1}^{+\infty} \frac{c_{k} (x-a)^{k-d-1}}{k~(k-d-1)!} }[/math] [math]\displaystyle{ = \frac{(-1)^d d!~c_{0}}{(x-a)^{d+1}} \left(1 + \frac{1}{(-1)^d d!~c_{0}}\sum_{k=d+1}^{+\infty} \frac{c_{k} (x-a)^{k}}{k~(k-d-1)!}\right) }[/math] [math]\displaystyle{ = \frac{(-1)^d d!~c_{0}}{(x-a)^{d+1}} \left(1 + \mathcal{O}\left((x-a)^{d+1}\right)\right) \,, }[/math] using big O notation. We thus get that the ratio [math]\displaystyle{ d~\frac{(1/f)^{(d-1)}}{(1/f)^{(d)}} = d~\frac{(-1)^{d-1} (d-1)!~c_{0}}{(-1)^d d!~c_{0}} (x-a) \left( \frac{1 + \mathcal{O}\left((x-a)^{d}\right)}{1 + \mathcal{O}\left((x-a)^{d+1}\right)} \right) }[/math] [math]\displaystyle{ = -(x-a) \left( 1 + \mathcal{O}\left((x-a)^{d}\right) \right)\,. }[/math] If a is the zero of f that is closest to x then the second factor goes to 1 as d goes to infinity and [math]\displaystyle{ x + d~\frac{(1/f)^{(d-1)}}{(1/f)^{(d)}} }[/math] goes to a.
Second approach
Suppose x = a is a simple root. Then near x = a, (1/f)(x) is a meromorphic function. Suppose we have the Taylor expansion:
- [math]\displaystyle{ (1/f)(x) = \sum_{d=0}^{\infty} \frac{(1/f)^{(d)}(b)}{d!} (x-b)^d }[/math]
around a point b that is closer to a than it is to any other zero of f. By König's theorem, we have:
- [math]\displaystyle{ a-b = \lim_{d\rightarrow \infty} \frac{\frac{(1/f)^{(d-1)}(b)}{(d-1)!}}{\frac{(1/f)^{(d)}(b)}{d!}}=d\frac{(1/f)^{(d-1)}(b)}{(1/f)^{(d)}(b)}. }[/math]
These suggest that Householder's iteration might be a good convergent iteration. The actual proof of the convergence is also based on these ideas.
The methods of lower order
Householder's method of order 1 is just Newton's method, since:
- [math]\displaystyle{ \begin{array}{rl} x_{n+1} =& x_n + 1\,\frac {\left(1/f\right)(x_n)} {\left(1/f\right)^{(1)}(x_n)}\\[.7em] =& x_n + \frac{1}{f(x_n)}\cdot\left(\frac{-f'(x_n)}{f(x_n)^2}\right)^{-1}\\[.7em] =& x_n - \frac{f(x_n)}{f'(x_n)}. \end{array} }[/math]
For Householder's method of order 2 one gets Halley's method, since the identities
- [math]\displaystyle{ \textstyle (1/f)'(x)=-\frac{f'(x)}{f(x)^2}\ }[/math]
and
- [math]\displaystyle{ \textstyle\ (1/f)''(x)=-\frac{f''(x)}{f(x)^2}+2\frac{f'(x)^2}{f(x)^3} }[/math]
result in
- [math]\displaystyle{ \begin{array}{rl} x_{n+1} =& x_n + 2\,\frac {\left(1/f\right)'(x_n)} {\left(1/f\right)''(x_n)}\\[1em] =& x_n + \frac{-2f(x_n)\,f'(x_n)}{-f(x_n)f''(x_n)+2f'(x_n)^2}\\[1em] =& x_n - \frac{f(x_n)f'(x_n)}{f'(x_n)^2-\tfrac12f(x_n)f''(x_n)}\\[1em] =& x_n + h_n\;\frac{1}{1+\frac12(f''/f')(x_n)\,h_n}. \end{array} }[/math]
In the last line, [math]\displaystyle{ h_n=-\tfrac{f(x_n)}{f'(x_n)} }[/math] is the update of the Newton iteration at the point [math]\displaystyle{ x_n }[/math]. This line was added to demonstrate where the difference to the simple Newton's method lies.
The third order method is obtained from the identity of the third order derivative of 1/f
- [math]\displaystyle{ \textstyle (1/f)'''(x)=-\frac{f'''(x)}{f(x)^2}+6\frac{f'(x)\,f''(x)}{f(x)^3}-6\frac{f'(x)^3}{f(x)^4} }[/math]
and has the formula
- [math]\displaystyle{ \begin{array}{rl} x_{n+1} =& x_n + 3\,\frac {\left(1/f\right)''(x_n)} {\left(1/f\right)'''(x_n)}\\[1em] =& x_n - \frac{6f(x_n)\,f'(x_n)^2-3f(x_n)^2f''(x_n)}{6f'(x_n)^3-6f(x_n)f'(x_n)\,f''(x_n)+f(x_n)^2\,f'''(x_n)}\\[1em] =& x_n + h_n\frac{1+\frac12(f''/f')(x_n)\,h_n}{1+(f''/f')(x_n)\,h_n+\frac16(f'''/f')(x_n)\,h_n^2} \end{array} }[/math]
and so on.
Example
The first problem solved by Newton with the Newton-Raphson-Simpson method was the polynomial equation [math]\displaystyle{ y^3-2y-5=0 }[/math]. He observed that there should be a solution close to 2. Replacing y = x + 2 transforms the equation into
- [math]\displaystyle{ 0=f(x)=-1 + 10 x + 6 x^2 + x^3 }[/math].
The Taylor series of the reciprocal function starts with
- [math]\displaystyle{ \begin{array}{rl} 1/f(x)=& - 1 - 10\,x - 106 \,x^2 - 1121 \,x^3 - 11856 \,x^4 - 125392 \,x^5\\ & - 1326177 \,x^6 - 14025978 \,x^7 - 148342234 \,x^8 - 1568904385 \,x^9\\ & - 16593123232 \,x^{10} +O(x^{11}) \end{array} }[/math]
The result of applying Householder's methods of various orders at x = 0 is also obtained by dividing neighboring coefficients of the latter power series. For the first orders one gets the following values after just one iteration step: For an example, in the case of the 3rd order, [math]\displaystyle{ x_1 = 0.0 + 106/1121 = 0.09455842997324 }[/math].
d | x1 |
---|---|
1 | 0.100000000000000000000000000000000 |
2 | 0.094339622641509433962264150943396 |
3 | 0.094558429973238180196253345227475 |
4 | 0.094551282051282051282051282051282 |
5 | 0.094551486538216154140615031261962 |
6 | 0.094551481438752142436492263099118 |
7 | 0.094551481543746895938379484125812 |
8 | 0.094551481542336756233561913325371 |
9 | 0.094551481542324837086869382419375 |
10 | 0.094551481542326678478801765822985 |
As one can see, there are a little bit more than d correct decimal places for each order d. The first one hundred digits of the correct solution are 0.0945514815423265914823865405793029638573061056282391803041285290453121899834836671462672817771577578.
Let's calculate the [math]\displaystyle{ x_2, x_3, x_4 }[/math] values for some lowest order,
- [math]\displaystyle{ f = -1 + 10x + 6x^2 + x^3 }[/math]
- [math]\displaystyle{ f^\prime = 10 + 12x + 3x^2 }[/math]
- [math]\displaystyle{ f^{\prime\prime} = 12 + 6x }[/math]
- [math]\displaystyle{ f^{\prime\prime\prime} = 6 }[/math]
And using following relations,
- 1st order; [math]\displaystyle{ x_{i+1} = x_{i} -f(x_i)/f^{\prime}(x_i) }[/math]
- 2nd order; [math]\displaystyle{ x_{i+1} = x_{i} - 2ff^{\prime} / (2{f^{\prime}}^2 - ff^{\prime\prime}) }[/math]
- 3rd order; [math]\displaystyle{ x_{i+1} = x_{i} - (6f {f^{\prime}}^2 - 3f^2 f^{\prime\prime}) / (6{f^{\prime}}^3 -6 f f^{\prime}f^{\prime\prime} + f^2f^{\prime\prime\prime}) }[/math]
x | 1st (Newton) | 2nd (Halley) | 3rd order | 4th order |
---|---|---|---|---|
x1 | 0.100000000000000000000000000000000 | 0.094339622641509433962264150943395 | 0.094558429973238180196253345227475 | 0.09455128205128 |
x2 | 0.094568121104185218165627782724844 | 0.094551481540164214717107966227500 | 0.094551481542326591482567319958483 | |
x3 | 0.094551481698199302883823703544266 | 0.094551481542326591482386540579303 | 0.094551481542326591482386540579303 | |
x4 | 0.094551481542326591496064847153714 | 0.094551481542326591482386540579303 | 0.094551481542326591482386540579303 | |
x5 | 0.094551481542326591482386540579303 | |||
x6 | 0.094551481542326591482386540579303 |
Derivation
An exact derivation of Householder's methods starts from the Padé approximation of order d + 1 of the function, where the approximant with linear numerator is chosen. Once this has been achieved, the update for the next approximation results from computing the unique zero of the numerator.
The Padé approximation has the form
- [math]\displaystyle{ f(x+h)=\frac{a_0+h}{b_0+b_1h+\cdots+b_{d-1}h^{d-1}}+O(h^{d+1}). }[/math]
The rational function has a zero at [math]\displaystyle{ h=-a_0 }[/math].
Just as the Taylor polynomial of degree d has d + 1 coefficients that depend on the function f, the Padé approximation also has d + 1 coefficients dependent on f and its derivatives. More precisely, in any Padé approximant, the degrees of the numerator and denominator polynomials have to add to the order of the approximant. Therefore, [math]\displaystyle{ b_d=0 }[/math] has to hold.
One could determine the Padé approximant starting from the Taylor polynomial of f using Euclid's algorithm. However, starting from the Taylor polynomial of 1/f is shorter and leads directly to the given formula. Since
- [math]\displaystyle{ (1/f)(x+h) = (1/f)(x)+(1/f)'(x)h+\cdots+(1/f)^{(d-1)}(x)\frac{h^{d-1}}{(d-1)!}+(1/f)^{(d)}(x)\frac{h^d}{d!}+O(h^{d+1}) }[/math]
has to be equal to the inverse of the desired rational function, we get after multiplying with [math]\displaystyle{ a_0+h }[/math] in the power [math]\displaystyle{ h^d }[/math] the equation
- [math]\displaystyle{ 0=b_d=a_0(1/f)^{(d)}(x)\frac1{d!}+(1/f)^{(d-1)}(x)\frac1{(d-1)!} }[/math].
Now, solving the last equation for the zero [math]\displaystyle{ h=-a_0 }[/math] of the numerator results in
- [math]\displaystyle{ \begin{align} h&=-a_0= \frac{\frac1{(d-1)!}(1/f)^{(d-1)}(x)}{\frac1{d!}(1/f)^{(d)}(x)}\\ &=d\,\frac{(1/f)^{(d-1)}(x)}{(1/f)^{(d)}(x)} \end{align} }[/math].
This implies the iteration formula
- [math]\displaystyle{ x_{n+1} = x_n + d\; \frac { \left(1/f\right)^{(d-1)} (x_n) } { \left(1/f\right)^{(d)} (x_n) } }[/math].
Relation to Newton's method
Householder's method applied to the real-valued function f(x) is the same as Newton's method applied to the function g(x):
- [math]\displaystyle{ x_{n+1} = x_n - \frac{g(x_n)}{g'(x_n)} }[/math]
with
- [math]\displaystyle{ g(x) = \left|(1/f)^{(d-1)}\right|^{-1/d}\,. }[/math]
In particular, d = 1 gives Newton's method unmodified and d = 2 gives Halley's method.
References
- ↑ Householder, Alston Scott (1970). The Numerical Treatment of a Single Nonlinear Equation. McGraw-Hill. p. 169. ISBN 0-07-030465-3. https://archive.org/details/numericaltreatme0000hous.
- ↑ Ostrowski, A. M. (1966). Solution of Equations and Systems of Equations. Pure and Applied Mathematics. 9 (Second ed.). New York: Academic Press.
External links
- Pascal Sebah and Xavier Gourdon (2001). "Newton's method and high order iteration". http://numbers.computation.free.fr/Constants/Algorithms/newton.html. Note: Use the PostScript version of this link; the website version is not compiled correctly.
Original source: https://en.wikipedia.org/wiki/Householder's method.
Read more |