Fixed Point Iteration
This tutorial surves as an introduction to the computer algebra system Maple, created by MapleSoft ©. It is made solely for the purpose of education. This tutorial assumes that you have a working knowledge of basic Maple functionality. This includes knowing how to define variables and carry out algebraic manipulations. If you are completely new to Maple, then please go to the introductory tutorial for APMA0330.
Usually, the same algorithm can be implemented in many different ways to accomplish the same task. As a result, this tutorial may introduce several different commands (or sets of commands) to do the same thing. It is always good to be aware of these alternate pathways; however, you are welcome to pick up any approach whatever you like the best .
Finally, the commands in this tutorial are all written in red text (as Maple input), while Maple output is in blue, which means that the output is in 2D output style. You can copy and paste all commands into Maple, change the parameters and run them. You, as the user, are free to use the mw files and scripts to your needs, and have the rights to distribute this tutorial and refer to this tutorial as long as this tutorial is accredited appropriately. The tutorial accompanies the textbook Applied Differential Equations. The Primary Course by Vladimir Dobrushkin, CRC Press, 2015; http://www.crcpress.com/product/isbn/9781439851043.
Return to computing page for the first course APMA0330
Return to computing page for the second course APMA0340
Return to Maple tutorial for the first course (APMA0330)
Return to Maple tutorial for the second course (APMA0340)
Return to the main page for the course APMA0340
Return to the main page for the course APMA0330
Return to Part III with(linalg)
More specifically, given a function g defined on the real numbers with real values and given a point x0 in the domain of g, the fixed point iteration is
x[n+1]:=g(x[n]); # n = 0,1,2,... with a selected initial value for n = 0 in the neighbourhood of the fixed point x.
Example. Consider the convergent iteration
Example. Consider \( g(x) = 10/ (x^3 -1) \) and the fixed point iterative scheme \( x_{i+1} = 10/ (x^3_i -1) ,\) with the initial guess x0 = 2.
If we repeat the same procedure, we will be surprised that the iteration is gone into an infinite loop without converging.
Theorem (Banach): Assume that the function g is continuous on the interval [a,b].
- If the range of the mapping y = g(x) satisfies \( y \in [a,b] \) for all \( x \in [a,b] , \) then g has a fixed point in [a,b].
- Furthermore, suppose that the derivative g'(x) is defined over (a,b) and that a positive constant (called Lipschitz constant) L < 1 exists with \( |g' (x) | \le L < 1 \) for all \( x \in (a,b) , \) then g has a unique fixed point P in [a,b]. ■
Rudolf Otto Sigismund Lipschitz (1832--1903) was a German mathematician who made contributions to mathematical analysis (where he gave his name to the Lipschitz continuity condition) and differential geometry, as well as number theory, algebras with involution and classical mechanics.
Theorem: Assume that the function g and its derivative are continuous on the interval [a,b]. Suppose that \( g(x) \in [a,b] \) for all \( x \in [a,b] , \) and the initial approximation x0 also belongs to the interval [a,b].
- If \( |g' (x) | \le L < 1 \) for all \( x \in (a,b) , \) then the iteration \( x_{i+1} = g(x_i ) \) will converge to the unique fixed point \( P \in [a,b] . \) In this case, P is said to be an attractive fixed point: \( P= g(P) . \)
- If \( |g' (x) | > 1 \) for all \( x \in (a,b) , \) then the iteration \( x_{i+1} = g(x_i ) \) will not converge to P. In this case, P is said to be a repelling fixed point and the iteration exhibits local divergence. ■
Theorem: Let P be a fixed point of g(x), that is, \( P= g(P) . \) Suppose g(x) is differentiable on \( \left[ P- \varepsilon , P+\varepsilon \right] \quad\mbox{for some} \quad \varepsilon > 0 \) and g(x) satisfies the condition \( |g' (x) | \le L < 1 \) for all \( x \in \left[ P - \varepsilon , P+\varepsilon \right] . \) Then the sequence \( x_{i+1} = g(x_i ) , \) with starting point \( x_0 \in \left[ P- \varepsilon , P+\varepsilon \right] , \) converges to P. ■
Remark: If g is invertible then P is a fixed point of g if and only if P is a fixed point of g-1.
Remark: The above therems provide only sufficient conditions. It is possible for a function to violate one or more of the hypotheses, yet still have a (possibly unique) fixed point. ■
The Banach theorem allows one to find the necessary number of iterations for a given error "epsilon." It can be calculated by the following formula (a-priori error estimate)
Example. The function \( g(x) = 2x\left( 1-x \right) \) violates the hypothesis of the theorem because it is continuous everywhere \( (-\infty , \infty ) . \) Indeed, g(x) clearly does not map the interval \( [0.5, \infty ) \) into itself; moreover, its derivative \( |g' (x)| \to + \infty \) for large x. However, g(x) has fixed points at x = 0 and x = 1/2.
Example. Consider the equation
p:=fsolve(1-x+ 0.4*sin (x) =0);
Example. Consider a similar equation
Example. Our next example is concerned with finding the solution of \( x = \frac{1}{2} \left( \sin x + \cos x \right) . \) Using the Maple command "fsolve" we immediately arrive at the solution: p:=fsolve(sin(x) + cos(x) =2*x);
p[1]:=plot({x,(sin(x)+cos(x))/2},x=0..1, sc=constrained,th=3,co=black):
p[2]:=plot({1,H(x-1),-H(x-1.001),0.7048*H(x-0.7048), 0.7048*H(x-0.7058)},x=0..1.001,co=black, title="Fixed Point at x = 0.7048"):
p[3]:=plot([[0.7048,0.7048]],style=point,symbol=circle, symbolsize=30):
plots[display](seq(p[k],k=1..3));

x[0]:=0; x[1]:=evalf(subs(x=0,g(x)),2);
p[2]:=plot({H(x),H(x-1),-H(x-1.001)},x=0..1.001,co=black, title="Absolute Derivative of g(x)"):
plots[display](p[1],p[2]);

APrioriEstimate[i]:=evalf((L^i/(1-L))*abs(x[1]-x[0]),5) od;
II. Aitken's Algorithm
This algorithm was proposed by one of New Zealand's greatest mathematicians Alexander Craig "Alec" Aitken (1895--1967). It consists in the following stages:
- select x0;
- calculate
\[ x_1 = g(x_0 ) , \qquad x_2 = g(x_1 ) ; \]
- calculate
\[ x_3 = x_2 + \frac{\lambda_2}{1- \lambda_2} \left( x_2 - x_1 \right) , \qquad \mbox{where} \quad \lambda_2 = \frac{x_2 - x_1}{x_1 - x_0} ; \]
- calculate
\[ x_4 = g(x_3 ) , \qquad x_5 = g(x_4 ) ; \]
- calculate x6 as the extrapolate of \( \left\{ x_3 , x_4 , x_5 \right\} . \) Continue this procedure, ad infinatum.
Theorem (Aitken's Acceleration): Assume that the sequence \( \{ p_n \}_{n\ge 0} \) converges linearly to the limit p and that \( p_n \ne p \) for all \( n \ge 0. \) If there exists a real number A < 1 such that
III. Steffensen's Acceleration
Johan Frederik Steffensen (1873--1961) was a Danish mathematician, statistician, and actuary who did research in the fields of calculus of finite differences and interpolation. He was professor of actuarial science at the University of Copenhagen from 1923 to 1943. Steffensen's inequality and Steffensen's iterative numerical method are named after him.
When Aitken's process is combined with the fixed point iteration in Newton's method, the result is called Steffensen's acceleration. Starting with p0, two steps of Newton's method are used to compute \( p_1 = p_0 - \frac{f(p_0 )}{f' (p_0 )} \) and \( p_2 = p_1 - \frac{f(p_1 )}{f' (p_1 )} , \) then Aitken's process is used to compute \( q_0 = p_0 - \frac{\left( \Delta p_0 \right)^2}{\Delta^2 p_0} . \) To continue the iteration set \( q_0 = p_0 \) and repeat the previous steps. This means that we have a fixed-point iteration:
Steffensen's acceleration is used to quickly find a solution of the fixed-point equation x = g(x) given an initial approximation p0. It is assumed that both g(x) and its derivative are continuous, \( | g' (x) | < 1, \) and that ordinary fixed-point iteration converges slowly (linearly) to p.
map(q -> int(q, t = 0..5), B)