Sunday, February 2, 2014

NumericalAnalysis LectureNotes
Peter J. Olver
2. Numerical Solution of Scalar Equations
Most numerical solution methods are based on some form of iteration. The basic idea
is that repeated application of the algorithm will produce closer and closer approximations
to the desired solution. To analyze such algorithms, our first task is to understand general
iterative processes.
2.1. Iteration of Functions.
Iteration, meaning repeated application of a function, can be viewed as a discrete
dynamical system in which the continuous time variable has been “quantized” to assume
integer values. Even iterating a very simple quadratic scalar function can lead to an amazing
variety of dynamical phenomena, including multiply-periodic solutions and genuine
chaos. Nonlinear iterative systems arise not just in mathematics, but also underlie the
growth and decay of biological populations, predator-prey interactions, spread of communicable
diseases such as Aids, and host of other natural phenomena. Moreover, many
numerical solution methods — for systems of algebraic equations, ordinary differential
equations, partial differential equations, and so on — rely on iteration, and so the theory
underlies the analysis of convergence and efficiency of such numerical approximation
schemes.
In general, an iterative system has the form
u(k+1) = g(u(k)), (2.1)
where g:Rn → Rn is a real vector-valued function. (One can similarly treat iteration of
complex-valued functions g:Cn → Cn, but, for simplicity, we only deal with real systems
here.) A solution is a discrete collection of points† u(k) ∈ Rn, in which the index k =
0, 1, 2, 3, . . . takes on non-negative integer values.
Once we specify the initial iterate,
u(0) = c, (2.2)
then the resulting solution to the discrete dynamical system (2.1) is easily computed:
u(1) = g(u(0)) = g(c), u(2) = g(u(1)) = g(g(c)), u(3) = g(u(2)) = g(g(g(c))), . . .
† The superscripts on u
(k) refer to the iteration number, and do not denote derivatives.
5/18/08 7
c 2008 Peter J. Olver
and so on. Thus, unlike continuous dynamical systems, the existence and uniqueness of
solutions is not an issue. As long as each successive iterate u(k) lies in the domain of
definition of g one merely repeats the process to produce the solution,
u(k) =
k times z }| {
g ◦ · · · ◦g (c), k = 0, 1, 2, . . . ,
(2.3)
which is obtained by composing the function g with itself a total of k times. In other
words, the solution to a discrete dynamical system corresponds to repeatedly pushing the
g key on your calculator. For example, entering 0 and then repeatedly hitting the cos key
corresponds to solving the iterative system
u(k+1) = cos u(k), u(0) = 0. (2.4)
The first 10 iterates are displayed in the following table:
k 0 1 2 3 4 5 6 7 8 9
u(k) 0 1 .540302 .857553 .65429 .79348 .701369 .76396 .722102 .750418
For simplicity, we shall always assume that the vector-valued function g:Rn → Rn is
defined on all of Rn; otherwise, we must always be careful that the successive iterates u(k)
never leave its domain of definition, thereby causing the iteration to break down. To avoid
technical complications, we will also assume that g is at least continuous; later results rely
on additional smoothness requirements, e.g., continuity of its first and second order partial
derivatives.
While the solution to a discrete dynamical system is essentially trivial, understanding
its behavior is definitely not. Sometimes the solution converges to a particular value —
the key requirement for numerical solution methods. Sometimes it goes off to ∞, or, more
precisely, the norms† of the iterates are unbounded: k u(k) k → ∞ as k → ∞. Sometimes
the solution repeats itself after a while. And sometimes the iterates behave in a seemingly
random, chaotic manner — all depending on the function g and, at times, the initial
condition c. Although all of these cases may arise in real-world applications, we shall
mostly concentrate upon understanding convergence.
Definition 2.1. A fixed point or equilibrium of a discrete dynamical system (2.1) is
a vector u⋆ ∈ Rn such that
g(u⋆) = u⋆. (2.5)
We easily see that every fixed point provides a constant solution to the discrete dynamical
system, namely u(k) = u⋆ for all k. Moreover, it is not hard to prove that any
convergent solution necessarily converges to a fixed point.
† In view of the equivalence of norms on finite-dimensional vector spaces, cf. Theorem 5.9, any
norm will do here.
5/18/08 8
c 2008 Peter J. Olver
Proposition 2.2. If a solution to a discrete dynamical system converges,
lim
k→∞
u(k) = u⋆,
then the limit u⋆ is a fixed point.
Proof : This is a simple consequence of the continuity of g. We have
u⋆ = lim
k→∞
u(k+1) = lim
k→∞
g(u(k)) = g

lim
k→∞
u(k)

= g(u⋆),
the last two equalities following from the continuity of g. Q.E.D.
For example, continuing the cosine iteration (2.4), we find that the iterates gradually
converge to the value u⋆ ≈ .739085, which is the unique solution to the fixed point equation
cos u = u.
Later we will see how to rigorously prove this observed behavior.
Of course, not every solution to a discrete dynamical system will necessarily converge,
but Proposition 2.2 says that if it does, then it must converge to a fixed point. Thus, a
key goal is to understand when a solution converges, and, if so, to which fixed point —
if there is more than one. (In the linear case, only the actual convergence is a significant
issues since most linear systems admit exactly one fixed point, namely u⋆ = 0.)
Fixed points are roughly divided into three classes:
• asymptotically stable, with the property that all nearby solutions converge to it,
• stable, with the property that all nearby solutions stay nearby, and
• unstable, almost all of whose nearby solutions diverge away from the fixed point.
Thus, from a practical standpoint, convergence of the iterates of a discrete dynamical
system requires asymptotic stability of the fixed point. Examples will appear in abundance
in the following sections.
Scalar Functions
As always, the first step is to thoroughly understand the scalar case, and so we begin
with a discrete dynamical system
u(k+1) = g(u(k)), u(0) = c, (2.6)
in which g:R → R is a continuous, scalar-valued function. As noted above, we will assume,
for simplicity, that g is defined everywhere, and so we do not need to worry about whether
the iterates u(0), u(1), u(2), . . . are all well-defined.
We begin with the case of a linear function g(u) = a u. Consider the corresponding
iterative equation
u(k+1) = a u(k), u(0) = c. (2.7)
The general solution to (2.7) is easily found:
u(1) = a u(0) = a c, u(2) = a u(1) = a2 c, u(3) = a u(2) = a3 c,
5/18/08 9
c 2008 Peter J. Olver
5 10 15 20 25 30
-1
-0.75
-0.5
-0.25
0.25
0.5
0.75
1
0 < a < 1
5 10 15 20 25 30
-1
-0.75
-0.5
-0.25
0.25
0.5
0.75
1
−1 < a < 0
5 10 15 20 25 30
-1
-0.75
-0.5
-0.25
0.25
0.5
0.75
1
a = 1
5 10 15 20 25 30
-1
-0.75
-0.5
-0.25
0.25
0.5
0.75
1
a = −1
5 10 15 20 25 30
-10
-7.5
-5
-2.5
2.5
5
7.5
10
1 < a
5 10 15 20 25 30
-10
-7.5
-5
-2.5
2.5
5
7.5
10
a < −1
Figure 2.1. One Dimensional Real Linear Iterative Systems.
and, in general,
u(k) = ak c. (2.8)
If the initial condition is a = 0, then the solution u(k) ≡ 0 is constant. Therefore, 0 is a
fixed point or equilibrium solution for the iterative system.
Example 2.3. Banks add interest to a savings account at discrete time intervals.
For example, if the bank offers 5% interest compounded yearly, this means that the account
balance will increase by 5% each year. Thus, assuming no deposits or withdrawals, the
balance u(k) after k years will satisfy the iterative equation (2.7) with a = 1 + r where
r = .05 is the interest rate, and the 1 indicates that all the money remains in the account.
Thus, after k years, your account balance is
u(k) = (1 + r)kc, where c = u(0) (2.9)
is your initial deposit. For example, if c = $1, 000, after 1 year your account has u(1) =
$1, 050, after 10 years u(10) = $1, 628.89, after 50 years u(50) = $11, 467.40, and after 200
years u(200) = $17, 292, 580.82.
When the interest is compounded monthly, the rate is still quoted on a yearly basis,
and so you receive 1
12 of the interest each month. If ˆu(k) denotes the balance after k
months, then, after n years, the account balance is ˆu(12n) =
􀀀
1 + 1
12 r

12n c. Thus,
when the interest rate of 5% is compounded monthly, your account balance is ˆu(12) =
$1, 051.16 after 1 year, ˆu(120) = $1, 647.01 after 10 years, ˆu(600) = $12, 119.38 after 50
years, and ˆu(2400) = $21, 573, 572.66 dollars after 200 years. So, if you wait sufficiently
long, compounding will have a dramatic effect. Similarly, daily compounding replaces 12
by 365.25, the number of days in a year. After 200 years, the balance is $22, 011, 396.03.
Let us analyze the solutions of scalar iterative equations, starting with the case when
a ∈ R is a real constant. Aside from the equilibrium solution u(k) ≡ 0, the iterates exhibit
five qualitatively different behaviors, depending on the size of the coefficient a.
5/18/08 10
c 2008 Peter J. Olver
(a) If a = 0, the solution immediately becomes zero, and stays there, so u(k) = 0 for all
k ≥ 1.
(b) If 0 < a < 1, then the solution is of one sign, and tends monotonically to zero, so
u(k) → 0 as k → ∞.
(c) If −1 < a < 0, then the solution tends to zero: u(k) → 0 as k → ∞. Successive
iterates have alternating signs.
(d) If a = 1, the solution is constant: u(k) = a, for all k ≥ 0.
(e) If a = −1, the solution switches back and forth between two values; u(k) = (−1)k c.
(f ) If 1 < a < ∞, then the iterates u(k) become unbounded. If c > 0, they go monotonically
to +∞; if c < 0, to −∞.
(g) If −∞ < a < −1, then the iterates u(k) also become unbounded, with alternating
signs.
In Figure 2.1 we exhibit representative scatter plots for the nontrivial cases (b – g). The
horizontal axis indicates the index k and the vertical axis the solution value u. Each dot
in the scatter plot represents an iterate u(k).
To describe the different scenarios, we adopt a terminology that already appeared in
the continuous realm. In the first three cases, the fixed point u = 0 is said to be globally
asymptotically stable since all solutions tend to 0 as k → ∞. In cases (d) and (e), the
zero solution is stable, since solutions with nearby initial data, | c | ≪ 1, remain nearby.
In the final two cases, the zero solution is unstable; any nonzero initial data a 6= 0 — no
matter how small — will give rise to a solution that eventually goes arbitrarily far away
from equilibrium.
Let us also analyze complex scalar iterative systems. The coefficient a and the initial
datum c in (2.7) are allowed to be complex numbers. The solution is the same, (2.8), but
now we need to know what happens when we raise a complex number a to a high power.
The secret is to write a = r e i θ in polar form, where r = | a | is its modulus and θ = ph a
its angle or phase. Then ak = rk e i k θ. Since | e i k θ | = 1, we have | ak | = | a |k, and so
the solutions (2.8) have modulus | u(k) | = | ak a | = | a |k | a |. As a result, u(k) will remain
bounded if and only if | a | ≤ 1, and will tend to zero as k → ∞ if and only if | a | < 1.
We have thus established the basic stability criteria for scalar, linear systems.
Theorem 2.4. The zero solution to a (real or complex) scalar iterative system
u(k+1) = a u(k) is
(a) asymptotically stable if and only if | a | < 1,
(b) stable if and only if | a | ≤ 1,
(c) unstable if and only if | a | > 1.
Nonlinear Scalar Iteration
The simplest “nonlinear” case is that of an affine function
g(u) = au + b, (2.10)
leading to an affine discrete dynamical system
u(k+1) = au(k) + b. (2.11)
5/18/08 11
c 2008 Peter J. Olver
u⋆1
u⋆2
u⋆3
Figure 2.2. Fixed Points.
The only fixed point is the solution to
u⋆ = g(u⋆) = au⋆ + b, namely, u⋆ =
b
1 − a
. (2.12)
The formula for u⋆ requires that a 6= 1, and, indeed, the case a = 1 has no fixed point, as
the reader can easily confirm; see Exercise .
Since we already know the value of u⋆, we can readily analyze the differences
e(k) = u(k) − u⋆, (2.13)
between successive iterates and the fixed point. Observe that, the smaller e(k) is, the closer
u(k) is to the desired fixed point. In many applications, the iterate u(k) is viewed as an
approximation to the fixed point u⋆, and so e(k) is interpreted as the error in the kth
iterate. Subtracting the fixed point equation (2.12) from the iteration equation (2.11), we
find
u(k+1) − u⋆ = a(u(k) − u⋆).
Therefore the errors e(k) are related by a linear iteration
e(k+1) = ae(k), and hence e(k) = ake(0). (2.14)
Therefore, as we already demonstrated in Section 7.1, the solutions to this scalar linear
iteration converge:
e(k) −→ 0 and hence u(k) −→ u⋆, if and only if | a | < 1.
This is the criterion for asymptotic stability of the fixed point, or, equivalently, convergence
of the affine iterative system (2.11). The magnitude of a determines the rate of convergence,
and the closer it is to 0, the faster the iterates approach the fixed point.
5/18/08 12
c 2008 Peter J. Olver
Figure 2.3. Tangent Line Approximation.
Example 2.5. The affine function
g(u) = 1
4 u + 2
leads to the iterative scheme
u(k+1) = 1
4 u(k) + 2.
Starting with the initial condition u(0) = 0, the ensuing values are
k 1 2 3 4 5 6 7 8
u(k) 2.0 2.5 2.625 2.6562 2.6641 2.6660 2.6665 2.6666
Thus, after 8 iterations, the iterates have produced the fixed point u⋆ = 8
3 to 4 decimal
places. The rate of convergence is 1
4 , and indeed
| e(k) | = | u(k) − u⋆ | =
􀀀1
4
k
| u(0) − u⋆ | = 8
3
􀀀 1
4
k
−→ 0 as k −→ ∞.
Let us now turn to the fully nonlinear case. First note that the fixed points of g(u)
correspond to the intersections of its graph with the graph of the function i(u) = u. For
instance Figure 2.2 shows the graph of a function that has 3 fixed points, labeled u⋆1, u⋆2 , u⋆3 .
In general, near any point in its domain, a (smooth) nonlinear function can be well
approximated by its tangent line, which repre4sents the graph of an affine function; see
Figure 2.3. Therefore, if we are close to a fixed point u⋆, then we might expect the iterative
system based on the nonlinear function g(u) to behave very much like that of its affine
tangent line approximation. And, indeed, this intuition turns out to be essentially correct.
This result forms our first concrete example of linearization, in which the analysis of a
nonlinear system is based on its linear (or, more precisely, affine) approximation.
The explicit formula for the tangent line to g(u) near the fixed point u = u⋆ = g(u⋆)
is
g(u) ≈ g(u⋆) + g′(u⋆)(u − u⋆) ≡ au + b, (2.15)
5/18/08 13
c 2008 Peter J. Olver
where
a = g′(u⋆), b = g(u⋆) − g′(u⋆) u⋆ =
􀀀
1 − g′(u⋆)

u⋆.
Note that u⋆ = b /(1 − a) remains a fixed point for the affine approximation: au⋆ + b =
u⋆. According to the preceding discussion, the convergence of the iterates for the affine
approximation is governed by the size of the coefficient a = g′(u⋆). This observation
inspires the basic stability criterion for fixed points of scalar iterative systems.
Theorem 2.6. Let g(u) be a continuously differentiable scalar function. Suppose
u⋆ = g(u⋆) is a fixed point. If | g′(u⋆) | < 1, then u⋆ is an asymptotically stable fixed
point, and hence any sequence of iterates u(k) which starts out sufficiently close to u⋆ will
converge to u⋆. On the other hand, if | g′(u⋆) | > 1, then u⋆ is an unstable fixed point, and
the only iterates which converge to it are those that land exactly on it, i.e., u(k) = u⋆ for
some k ≥ 0.
Proof : The goal is to prove that the errors e(k) = u(k) − u⋆ between the iterates and
the fixed point tend to 0 as k → ∞. To this end, we try to estimate e(k+1) in terms of
e(k). According to (2.6) and the Mean Value from calculus,
e(k+1) = u(k+1) − u⋆ = g(u(k)) − g(u⋆) = g′(v) (u(k) − u⋆) = g′(v) e(k), (2.16)
for some v lying between u(k) and u⋆. By continuity, if | g′(u⋆) | < 1 at the fixed point,
then we can choose δ > 0 and | g′(u⋆) | < σ < 1 such that the estimate
| g′(v) | ≤ σ < 1 whenever | v − u⋆ | < δ (2.17)
holds in a (perhaps small) interval surrounding the fixed point. Suppose
| e(k) | = | u(k) − u⋆ | < δ.
Then the point v in (2.16), which is closer to u⋆ than u(k), satisfies (2.17). Therefore,
| u(k+1) − u⋆ | ≤ σ | u(k) − u⋆ |, and hence | e(k+1) | ≤ σ | e(k) |. (2.18)
In particular, since σ < 1, we have | u(k+1) − u⋆ | < δ, and hence the subsequent iterate
u(k+1) also lies in the interval where (2.17) holds. Repeating the argument, we conclude
that, provided the initial iterate satisfies
| e(0) | = | u(0) − u⋆ | < δ,
the subsequent errors are bounded by
e(k) ≤ σk e(0), and hence e(k) = | u(k) − u⋆ | −→ 0 as k → ∞,
which completes the proof of the theorem in the stable case.
The proof in unstable case is left as Exercise for the reader. Q.E.D.
Remark: The constant σ governs the rate of convergence of the iterates to the fixed
point. The closer the iterates are to the fixed point, the smaller we can choose δ in (2.17),
and hence the closer we can choose σ to | g′(u⋆) |. Thus, roughly speaking, | g′(u⋆) | governs
the speed of convergence, once the iterates get close to the fixed point. This observation
will be developed more fully in the following subsection.
5/18/08 14
c 2008 Peter J. Olver
m
u
Figure 2.4. Planetary Orbit.
Remark: The cases when g′(u⋆) = ±1 are not covered by the theorem. For a linear
system, such fixed points are stable, but not asymptotically stable. For nonlinear systems,
more detailed knowledge of the nonlinear terms is required in order to resolve the status —
stable or unstable — of the fixed point. Despite their importance in certain applications,
we will not try to analyze such borderline cases any further here.
Example 2.7. Given constants ǫ,m, the trigonometric equation
u = m+ ǫ sin u (2.19)
is known as Kepler’s equation. It arises in the study of planetary motion, in which 0 < ǫ < 1
represents the eccentricity of an elliptical planetary orbit, u is the eccentric anomaly,
defined as the angle formed at the center of the ellipse by the planet and the major axis,
and m = 2π t /T is its mean anomaly, which is the time, measured in units of T/(2π)
where T is the period of the orbit, i.e., the length of the planet’s year, since perihelion or
point of closest approach to the sun; see Figure 2.4.
The solutions to Kepler’s equation are the fixed points of the discrete dynamical
system based on the function
g(u) = m + ǫ sin u.
Note that
| g′(u) | = | ǫ cos u | = | ǫ | < 1, (2.20)
which automatically implies that the as yet unknown fixed point is stable. Indeed, Exercise
implies that condition (2.20) is enough to prove the existence of a unique stable fixed
point. In the particular case m = ǫ = 1
2 , the result of iterating u(k+1) = 1
2 + 1
2 sin u(k)
starting with u(0) = 0 is
5/18/08 15
c 2008 Peter J. Olver
u
g(u)
u⋆
L+(u)
L

(u)
Figure 2.5. Graph of a Contraction.
k 1 2 3 4 5 6 7 8 9
u(k) .5 .7397 .8370 .8713 .8826 .8862 .8873 .8877 .8878
After 13 iterations, we have converged sufficiently close to the solution (fixed point) u⋆ =
.887862 to have computed its value to 6 decimal places.
Inspection of the proof of Theorem 2.6 reveals that we never really used the differentiability
of g, except to verify the inequality
| g(u) − g(u⋆) | ≤ σ | u − u⋆ | for some fixed σ < 1. (2.21)
A function that satisfies (2.21) for all nearby u is called a contraction at the point u⋆. Any
function g(u) whose graph lies between the two lines
L
±
(u) = g(u⋆) ± σ (u − u⋆) for some σ < 1,
for all u sufficiently close to u⋆, i.e., such that | u − u⋆ | < δ for some δ > 0, defines a
contraction, and hence fixed point iteration starting with | u(0) − u⋆ | < δ will converge to
u⋆; see Figure 2.5. In particular, Exercise asks you to prove that any function that is
differentiable at u⋆ with | g′(u⋆) | < 1 defines a contraction at u⋆.
Example 2.8. The simplest truly nonlinear example is a quadratic polynomial. The
most important case is the so-called logistic map
g(u) = λ u(1 − u), (2.22)
where λ 6= 0 is a fixed non-zero parameter. (The case λ = 0 is completely trivial. Why?)
In fact, an elementary change of variables can make any quadratic iterative system into
one involving a logistic map; see Exercise .
5/18/08 16
c 2008 Peter J. Olver
The fixed points of the logistic map are the solutions to the quadratic equation
u = λ u(1 − u), or λ u2 − λ u + 1 = 0.
Using the quadratic formula, we conclude that g(u) has two fixed points:
u⋆1 = 0, u⋆2 = 1 −
1
λ
.
Let us apply Theorem 2.6 to determine their stability. The derivative is
g′(u) = λ − 2 λ u, and so g′(u⋆1 ) = λ, g′(u⋆2 ) = 2 − λ.
Therefore, if | λ | < 1, the first fixed point is stable, while if 1 < λ < 3, the second fixed
point is stable. For λ < −1 or λ > 3 neither fixed point is stable, and we expect the
iterates to not converge at all.
Numerical experiments with this example show that it is the source of an amazingly
diverse range of behavior, depending upon the value of the parameter λ. In the accompanying
Figure 2.6, we display the results of iteration starting with initial point u(0) = .5 for
several different values of λ; in each plot, the horizontal axis indicates the iterate number
k and the vertical axis the iterate valoue u(k) for k = 0, . . . , 100. As expected from Theorem
2.6, the iterates converge to one of the fixed points in the range −1 < λ < 3, except
when λ = 1. For λ a little bit larger than λ1 = 3, the iterates do not converge to a fixed
point. But it does not take long for them to settle down, switching back and forth between
two particular values. This behavior indicates the exitence of a (stable) period 2 orbit for
the discrete dynamical system, in accordance with the following definition.
Definition 2.9. A period k orbit of a discrete dynamical system is a solution that
satisfies u(n+k) = u(n) for all n = 0, 1, 2, . . . . The (minimal) period is the smallest positive
value of k for which this condition holds.
Thus, a fixed point
u(0) = u(1) = u(2) = · · ·
is a period 1 orbit. A period 2 orbit satisfies
u(0) = u(2) = u(4) = · · · and u(1) = u(3) = u(5) = · · · ,
but u(0) 6= u(1), as otherwise the minimal period would be 1. Similarly, a period 3 orbit
has
u(0) = u(3) = u(6) = · · · , u(1) = u(4) = u(7) = · · · , u(2) = u(5) = u(8) = · · · ,
with u(0), u(1), u(2) distinct. Stability of a period k orbit implies that nearby iterates
converge to this periodic solution.
For the logistic map, the period 2 orbit persists until λ = λ2 ≈ 3.4495, after which
the iterates alternate between four values — a period 4 orbit. This again changes at
λ = λ3 ≈ 3.5441, after which the iterates end up alternating between eight values. In fact,
there is an increasing sequence of values
3 = λ1 < λ2 < λ3 < λ4 < · · · ,
5/18/08 17
c 2008 Peter J. Olver
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 1.0
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 2.0
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 3.0
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 3.4
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 3.5
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 3.55
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 3.6
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 3.7
20 40 60 80 100
0.2
0.4
0.6
0.8
1
λ = 3.8
Figure 2.6. Logistic Iterates.
where, for any λn < λ ≤ λn+1, the iterates eventually follow a period 2n orbit. Thus, as λ
passes through each value λn the period of the orbit goes from 2n to 2 · 2n = 2n+1, and the
discrete dynamical system experiences a bifurcation. The bifurcation values λn are packed
closer and closer together as n increases, piling up on an eventual limiting value
λ⋆ = lim
n→∞
λn ≈ 3.5699,
at which point the orbit’s period has, so to speak, become infinitely large. The entire
phenomena is known as a period doubling cascade.
Interestingly, the ratios of the distances between successive bifurcation points approaches
a well-defined limit,
λn+2 − λn+1
λn+1 − λn −→ 4.6692 . . . , (2.23)
known as Feigenbaum’s constant . In the 1970’s, the American physicist Mitchell Feigenbaum,
[16], discovered that similar period doubling cascades appear in a broad range of
discrete dynamical systems. Even more remarkably, in almost all cases, the corresponding
5/18/08 18
c 2008 Peter J. Olver
2.5 3 3.5 4
0.2
0.4
0.6
0.8
1
Figure 2.7. The Logistic Map.
ratios of distances between bifurcation points has the same limiting value. Feigenbaum’s
experimental observations were rigorously proved by Oscar Lanford in 1982, [33].
After λ passes the limiting value λ⋆, all hell breaks loose. The iterates become completely
chaotic†, moving at random over the interval [0, 1]. But this is not the end of the
story. Embedded within this chaotic regime are certain small ranges of λ where the system
settles down to a stable orbit, whose period is no longer necessarily a power of 2. In fact,
there exist values of λ for which the iterates settle down to a stable orbit of period k for any
positive integer k. For instance, as λ increases past λ3,⋆ ≈ 3.83, a period 3 orbit appears
over a small range of values, after which, as λ increses slightly further, there is a period
doubling cascade where period 6, 12, 24, . . . orbits successively appear, each persisting on
a shorter and shorter range of parameter values, until λ passes yet another critical value
where chaos breaks out yet again. There is a well-prescribed order in which the periodic
orbits make their successive appearance, and each odd period k orbit is followed by a very
closely spaced sequence of period doubling bifurcations, of periods 2n k for n = 1, 2, 3, . . . ,
after which the iterates revert to completely chaotic behavior until the next periodic case
emerges. The ratios of distances between bifurcation points always have the same Feigenbaum
limit (2.23). Finally, these periodic and chaotic windows all pile up on the ultimate
parameter value λ⋆⋆
= 4. And then, when λ > 4, all the iterates go off to ∞, and the
system ceases to be interesting.
The reader is encouraged to write a simple computer program and perform some
numerical experiments. In particular, Figure 2.7 shows the asymptotic behavior of the
iterates for values of the parameter in the interesting range 2 < λ < 4. The horizontal
axis is λ, and the marked points show the ultimate fate of the iteration for the given
† The term “chaotic” does have a precise mathematical definition, [14], but the reader can
take it more figuratively for the purposes of this elementary exposition.
5/18/08 19
c 2008 Peter J. Olver
value of λ. For instance, each point the single curve lying above the smaller values of
λ represents a stable fixed point; this bifurcates into a pair of curves representing stable
period 2 orbits, which then bifurcates into 4 curves representing period 4 orbits, and so
on. Chaotic behavior is indicated by a somewhat random pattern of points lying above the
value of λ. To plot this figure, we ran the logistic iteration u(n) for 0 ≤ n ≤ 100, discarded
the first 50 points, and then plotted the next 50 iterates u(51), . . . , u(100). Investigation of
the fine detailed structure of the logistic map requires yet more iterations with increased
numerical accuracy. In addition one should discard more of the initial iterates so as to give
the system enough time to settle down to a stable periodic orbit or, alternatively, continue
in a chaotic manner.
Remark: So far, we have only looked at real scalar iterative systems. Complex discrete
dynamical systems display yet more remarkable and fascinating behavior. The complex
version of the logistic iteration equation leads to the justly famous Julia and Mandelbrot
sets, [35], with their stunning, psychedelic fractal structure, [46].
The rich range of phenomena in evidence, even in such extremely simple nonlinear
iterative systems, is astounding. While intimations first appeared in the late nineteenth
century research of the influential French mathematician Henri Poincar´e, serious investigations
were delayed until the advent of the computer era, which precipitated an explosion of
research activity in the area of dynamical systems. Similar period doubling cascades and
chaos are found in a broad range of nonlinear systems, [1], and are often encountered in
physical applications, [38]. A modern explanation of fluid turbulence is that it is a (very
complicated) form of chaos, [1].
Quadratic Convergence
Let us now return to the more mundane case when the iterates converge to a stable
fixed point of the discrete dynamical system. In applications, we use the iterates to compute
a precise† numerical value for the fixed point, and hence the efficiency of the algorithm
depends on the speed of convergence of the iterates.
According to the remark following the proof Theorem 2.6, the convergence rate of an
iterative system is essentially governed by the magnitude of the derivative | g′(u⋆) | at the
fixed point. The basic inequality (2.18) for the errors e(k) = u(k) − u⋆, namely
| e(k+1) | ≤ σ | e(k) |,
is known as a linear convergence estimate. It means that, once the iterates are close to
the fixed point, the error decreases by a factor of (at least) σ ≈ | g′(u⋆) | at each step. If
the kth iterate u(k) approximates the fixed point u⋆ correctly to m decimal places, so its
error is bounded by
| e(k) | < .5 × 10−m,
then the (k + 1)st iterate satisfies the error bound
| e(k+1) | ≤ σ | e(k) | < .5 × 10−mσ = .5 × 10−m+log10 σ.
† The degree of precision is to be specified by the user and the application.
5/18/

Numerical analysis

From Wikipedia, the free encyclopedia
Babylonian clay tablet YBC 7289 (c. 1800–1600 BC) with annotations. The approximation of the square root of 2 is four sexagesimal figures, which is about six decimal figures. 1 + 24/60 + 51/602 + 10/603 = 1.41421296...[1]
Numerical analysis is the study of algorithms that use numerical approximation (as opposed to general symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics).
One of the earliest mathematical writings is a Babylonian tablet from the Yale Babylonian Collection (YBC 7289), which gives a sexagesimal numerical approximation of \sqrt{2}, the length of the diagonal in a unit square. Being able to compute the sides of a triangle (and hence, being able to compute square roots) is extremely important, for instance, in carpentry and construction.[2]
Numerical analysis continues this long tradition of practical mathematical calculations. Much like the Babylonian approximation of \sqrt{2}, modern numerical analysis does not seek exact answers, because exact answers are often impossible to obtain in practice. Instead, much of numerical analysis is concerned with obtaining approximate solutions while maintaining reasonable bounds on errors.
Numerical analysis naturally finds applications in all fields of engineering and the physical sciences, but in the 21st century, the life sciences and even the arts have adopted elements of scientific computations. Ordinary differential equations appear in celestial mechanics (planets, stars and galaxies); numerical linear algebra is important for data analysis; stochastic differential equations and Markov chains are essential in simulating living cells for medicine and biology.
Before the advent of modern computers numerical methods often depended on hand interpolation in large printed tables. Since the mid 20th century, computers calculate the required functions instead. These same interpolation formulas nevertheless continue to be used as part of the software algorithms for solving differential equations.

General introduction

The overall goal of the field of numerical analysis is the design and analysis of techniques to give approximate but accurate solutions to hard problems, the variety of which is suggested by the following:
  • Advanced numerical methods are essential in making numerical weather prediction feasible.
  • Computing the trajectory of a spacecraft requires the accurate numerical solution of a system of ordinary differential equations.
  • Car companies can improve the crash safety of their vehicles by using computer simulations of car crashes. Such simulations essentially consist of solving partial differential equations numerically.
  • Hedge funds (private investment funds) use tools from all fields of numerical analysis to attempt to calculate the value of stocks and derivatives more precisely than other market participants.
  • Airlines use sophisticated optimization algorithms to decide ticket prices, airplane and crew assignments and fuel needs. Historically, such algorithms were developed within the overlapping field of operations research.
  • Insurance companies use numerical programs for actuarial analysis.
The rest of this section outlines several important themes of numerical analysis.

History

The field of numerical analysis predates the invention of modern computers by many centuries. Linear interpolation was already in use more than 2000 years ago. Many great mathematicians of the past were preoccupied by numerical analysis, as is obvious from the names of important algorithms like Newton's method, Lagrange interpolation polynomial, Gaussian elimination, or Euler's method.
To facilitate computations by hand, large books were produced with formulas and tables of data such as interpolation points and function coefficients. Using these tables, often calculated out to 16 decimal places or more for some functions, one could look up values to plug into the formulas given and achieve very good numerical estimates of some functions. The canonical work in the field is the NIST publication edited by Abramowitz and Stegun, a 1000-plus page book of a very large number of commonly used formulas and functions and their values at many points. The function values are no longer very useful when a computer is available, but the large listing of formulas can still be very handy.
The mechanical calculator was also developed as a tool for hand computation. These calculators evolved into electronic computers in the 1940s, and it was then found that these computers were also useful for administrative purposes. But the invention of the computer also influenced the field of numerical analysis, since now longer and more complicated calculations could be done.

Direct and iterative methods

Direct vs iterative methods
Consider the problem of solving
3x3 + 4 = 28
for the unknown quantity x.
Direct method

3x3 + 4 = 28.
Subtract 4 3x3 = 24.
Divide by 3 x3 = 8.
Take cube roots x = 2.
For the iterative method, apply the bisection method to f(x) = 3x3 − 24. The initial values are a = 0, b = 3, f(a) = −24, f(b) = 57.
Iterative method
a b mid f(mid)
0 3 1.5 −13.875
1.5 3 2.25 10.17...
1.5 2.25 1.875 −4.22...
1.875 2.25 2.0625 2.32...
We conclude from this table that the solution is between 1.875 and 2.0625. The algorithm might return any number in that range with an error less than 0.2.

Discretization and numerical integration

Schumacher (Ferrari) in practice at USGP 2005.jpg
In a two hour race, we have measured the speed of the car at three instants and recorded them in the following table.
Time 0:20 1:00 1:40
km/h 140 150 180
A discretization would be to say that the speed of the car was constant from 0:00 to 0:40, then from 0:40 to 1:20 and finally from 1:20 to 2:00. For instance, the total distance traveled in the first 40 minutes is approximately (2/3h × 140 km/h) = 93.3 km. This would allow us to estimate the total distance traveled as 93.3 km + 100 km + 120 km = 313.3 km, which is an example of numerical integration (see below) using a Riemann sum, because displacement is the integral of velocity.
Ill posed problem: Take the function f(x) = 1/(x − 1). Note that f(1.1) = 10 and f(1.001) = 1000: a change in x of less than 0.1 turns into a change in f(x) of nearly 1000. Evaluating f(x) near x = 1 is an ill-conditioned problem.
Well-posed problem: By contrast, the function f(x)=\sqrt{x} is continuous and so evaluating it is well-posed, at least for x being not close to zero.
Direct methods compute the solution to a problem in a finite number of steps. These methods would give the precise answer if they were performed in infinite precision arithmetic. Examples include Gaussian elimination, the QR factorization method for solving systems of linear equations, and the simplex method of linear programming. In practice, finite precision is used and the result is an approximation of the true solution (assuming stability).
In contrast to direct methods, iterative methods are not expected to terminate in a number of steps. Starting from an initial guess, iterative methods form successive approximations that converge to the exact solution only in the limit. A convergence test, often involving the residual, is specified in order to decide when a sufficiently accurate solution has (hopefully) been found. Even using infinite precision arithmetic these methods would not reach the solution within a finite number of steps (in general). Examples include Newton's method, the bisection method, and Jacobi iteration. In computational matrix algebra, iterative methods are generally needed for large problems.
Iterative methods are more common than direct methods in numerical analysis. Some methods are direct in principle but are usually used as though they were not, e.g. GMRES and the conjugate gradient method. For these methods the number of steps needed to obtain the exact solution is so large that an approximation is accepted in the same manner as for an iterative method.

Discretization

Furthermore, continuous problems must sometimes be replaced by a discrete problem whose solution is known to approximate that of the continuous problem; this process is called discretization. For example, the solution of a differential equation is a function. This function must be represented by a finite amount of data, for instance by its value at a finite number of points at its domain, even though this domain is a continuum.

Generation and propagation of errors

The study of errors forms an important part of numerical analysis. There are several ways in which error can be introduced in the solution of the problem.

Round-off

Round-off errors arise because it is impossible to represent all real numbers exactly on a machine with finite memory (which is what all practical digital computers are).

Truncation and discretization error

Truncation errors are committed when an iterative method is terminated or a mathematical procedure is approximated, and the approximate solution differs from the exact solution. Similarly, discretization induces a discretization error because the solution of the discrete problem does not coincide with the solution of the continuous problem. For instance, in the iteration in the sidebar to compute the solution of ''3x^3+4=28'', after 10 or so iterations, we conclude that the root is roughly 1.99 (for example). We therefore have a truncation error of 0.01.
Once an error is generated, it will generally propagate through the calculation. For instance, we have already noted that the operation + on a calculator (or a computer) is inexact. It follows that a calculation of the type a+b+c+d+e is even more inexact.
What does it mean when we say that the truncation error is created when we approximate a mathematical procedure? We know that to integrate a function exactly requires one to find the sum of infinite trapezoids. But numerically one can find the sum of only finite trapezoids, and hence the approximation of the mathematical procedure. Similarly, to differentiate a function, the differential element approaches to zero but numerically we can only choose a finite value of the differential element.

Numerical stability and well-posed problems

Numerical stability is an important notion in numerical analysis. An algorithm is called numerically stable if an error, whatever its cause, does not grow to be much larger during the calculation. This happens if the problem is well-conditioned, meaning that the solution changes by only a small amount if the problem data are changed by a small amount. To the contrary, if a problem is ill-conditioned, then any small error in the data will grow to be a large error.
Both the original problem and the algorithm used to solve that problem can be well-conditioned and/or ill-conditioned, and any combination is possible.
So an algorithm that solves a well-conditioned problem may be either numerically stable or numerically unstable. An art of numerical analysis is to find a stable algorithm for solving a well-posed mathematical problem. For instance, computing the square root of 2 (which is roughly 1.41421) is a well-posed problem. Many algorithms solve this problem by starting with an initial approximation x1 to \sqrt{2}, for instance x1=1.4, and then computing improved guesses x2, x3, etc.. One such method is the famous Babylonian method, which is given by xk+1 = xk/2 + 1/xk. Another iteration, which we will call Method X, is given by xk + 1 = (xk2−2)2 + xk.[3] We have calculated a few iterations of each scheme in table form below, with initial guesses x1 = 1.4 and x1 = 1.42.
Babylonian Babylonian Method X Method X
x1 = 1.4 x1 = 1.42 x1 = 1.4 x1 = 1.42
x2 = 1.4142857... x2 = 1.41422535... x2 = 1.4016 x2 = 1.42026896
x3 = 1.414213564... x3 = 1.41421356242... x3 = 1.4028614... x3 = 1.42056...


... ...


x1000000 = 1.41421... x28 = 7280.2284...
Observe that the Babylonian method converges fast regardless of the initial guess, whereas Method X converges extremely slowly with initial guess 1.4 and diverges for initial guess 1.42. Hence, the Babylonian method is numerically stable, while Method X is numerically unstable.
Numerical stability is affected by the number of the significant digits the machine keeps on, if we use a machine that keeps on the first four floating-point digits, a good example on loss of significance is given by these two equivalent functions
 
f(x)=x\left(\sqrt{x+1}-\sqrt{x}\right)
\text{ and } g(x)=\frac{x}{\sqrt{x+1}+\sqrt{x}}.
If we compare the results of
 f(500)=500(\sqrt{501}-\sqrt{500})=500(22.3830-22.3607)=500(0.0223)=11.1500
and

\begin{alignat}{3}g(500)&=\frac{500}{\sqrt{501}+\sqrt{500}}\\
      &=\frac{500}{22.3830+22.3607}\\
      &=\frac{500}{44.7437}=11.1748
\end{alignat}
by looking to the two above results, we realize that loss of significance which is also called Subtractive Cancelation has a huge effect on the results, even though both functions are equivalent; to show that they are equivalent simply we need to start by f(x) and end with g(x), and so
 \begin{alignat}{4}
f(x)&=x(\sqrt{x+1}-\sqrt{x})\\
    & =x(\sqrt{x+1}-\sqrt{x})\frac{(\sqrt{x+1}+\sqrt{x})}{(\sqrt{x+1}+\sqrt{x})}\\
    &=x\frac{((\sqrt{x+1})^2-(\sqrt{x})^2)}{(\sqrt{x+1}+\sqrt{x})}
    &=\frac {x}{(\sqrt{x+1}+\sqrt{x})}
\end{alignat}
The true value for the result is 11.174755..., which is exactly g(500) = 11.1748 after rounding the result to 4 decimal digits.
Now imagine that lots of terms like these functions are used in the program; the error will increase as one proceeds in the program, unless one uses the suitable formula of the two functions each time one evaluates either f(x), or g(x); the choice is dependent on the parity of x.
  • The example is taken from Mathew; Numerical methods using matlab, 3rd ed.

Areas of study

The field of numerical analysis includes many sub-disciplines. Some of the major ones are:

Computing values of functions

Interpolation: We have observed the temperature to vary from 20 degrees Celsius at 1:00 to 14 degrees at 3:00. A linear interpolation of this data would conclude that it was 17 degrees at 2:00 and 18.5 degrees at 1:30pm.
Extrapolation: If the gross domestic product of a country has been growing an average of 5% per year and was 100 billion dollars last year, we might extrapolate that it will be 105 billion dollars this year.
A line through 20 points
Regression: In linear regression, given n points, we compute a line that passes as close as possible to those n points.
How much for a glass of lemonade?
Optimization: Say you sell lemonade at a lemonade stand, and notice that at $1, you can sell 197 glasses of lemonade per day, and that for each increase of $0.01, you will sell one glass of lemonade less per day. If you could charge $1.485, you would maximize your profit, but due to the constraint of having to charge a whole cent amount, charging $1.49 per glass will yield the maximum income of $220.52 per day.
Wind direction in blue, true trajectory in black, Euler method in red.
Differential equation: If you set up 100 fans to blow air from one end of the room to the other and then you drop a feather into the wind, what happens? The feather will follow the air currents, which may be very complex. One approximation is to measure the speed at which the air is blowing near the feather every second, and advance the simulated feather as if it were moving in a straight line at that same speed for one second, before measuring the wind speed again. This is called the Euler method for solving an ordinary differential equation.
One of the simplest problems is the evaluation of a function at a given point. The most straightforward approach, of just plugging in the number in the formula is sometimes not very efficient. For polynomials, a better approach is using the Horner scheme, since it reduces the necessary number of multiplications and additions. Generally, it is important to estimate and control round-off errors arising from the use of floating point arithmetic.

Interpolation, extrapolation, and regression

Interpolation solves the following problem: given the value of some unknown function at a number of points, what value does that function have at some other point between the given points?
Extrapolation is very similar to interpolation, except that now we want to find the value of the unknown function at a point which is outside the given points.
Regression is also similar, but it takes into account that the data is imprecise. Given some points, and a measurement of the value of some function at these points (with an error), we want to determine the unknown function. The least squares-method is one popular way to achieve this.

Solving equations and systems of equations

Another fundamental problem is computing the solution of some given equation. Two cases are commonly distinguished, depending on whether the equation is linear or not. For instance, the equation 2x+5=3 is linear while 2x^2+5=3 is not.
Much effort has been put in the development of methods for solving systems of linear equations. Standard direct methods, i.e., methods that use some matrix decomposition are Gaussian elimination, LU decomposition, Cholesky decomposition for symmetric (or hermitian) and positive-definite matrix, and QR decomposition for non-square matrices. Iterative methods such as the Jacobi method, Gauss–Seidel method, successive over-relaxation and conjugate gradient method are usually preferred for large systems. General iterative methods can be developed using a matrix splitting.
Root-finding algorithms are used to solve nonlinear equations (they are so named since a root of a function is an argument for which the function yields zero). If the function is differentiable and the derivative is known, then Newton's method is a popular choice. Linearization is another technique for solving nonlinear equations.

Solving eigenvalue or singular value problems

Several important problems can be phrased in terms of eigenvalue decompositions or singular value decompositions. For instance, the spectral image compression algorithm[4] is based on the singular value decomposition. The corresponding tool in statistics is called principal component analysis.

Optimization

Optimization problems ask for the point at which a given function is maximized (or minimized). Often, the point also has to satisfy some constraints.
The field of optimization is further split in several subfields, depending on the form of the objective function and the constraint. For instance, linear programming deals with the case that both the objective function and the constraints are linear. A famous method in linear programming is the simplex method.
The method of Lagrange multipliers can be used to reduce optimization problems with constraints to unconstrained optimization problems.

Evaluating integrals

Numerical integration, in some instances also known as numerical quadrature, asks for the value of a definite integral. Popular methods use one of the Newton–Cotes formulas (like the midpoint rule or Simpson's rule) or Gaussian quadrature. These methods rely on a "divide and conquer" strategy, whereby an integral on a relatively large set is broken down into integrals on smaller sets. In higher dimensions, where these methods become prohibitively expensive in terms of computational effort, one may use Monte Carlo or quasi-Monte Carlo methods (see Monte Carlo integration), or, in modestly large dimensions, the method of sparse grids.

Differential equations

Numerical analysis is also concerned with computing (in an approximate way) the solution of differential equations, both ordinary differential equations and partial differential equations.
Partial differential equations are solved by first discretizing the equation, bringing it into a finite-dimensional subspace. This can be done by a finite element method, a finite difference method, or (particularly in engineering) a finite volume method. The theoretical justification of these methods often involves theorems from functional analysis. This reduces the problem to the solution of an algebraic equation.

Software

Since the late twentieth century, most algorithms are implemented in a variety of programming languages. The Netlib repository contains various collections of software routines for numerical problems, mostly in Fortran and C. Commercial products implementing many different numerical algorithms include the IMSL and NAG libraries; a free alternative is the GNU Scientific Library.
There are several popular numerical computing applications such as MATLAB, S-PLUS, LabVIEW, and IDL as well as free and open source alternatives such as FreeMat, Scilab, GNU Octave (similar to Matlab), IT++ (a C++ library), R (similar to S-PLUS) and certain variants of Python. Performance varies widely: while vector and matrix operations are usually fast, scalar loops may vary in speed by more than an order of magnitude.[5][6]
Many computer algebra systems such as Mathematica also benefit from the availability of arbitrary precision arithmetic which can provide more accurate results.
Also, any spreadsheet software can be used to solve simple problems relating to numerical analysis.

See also

Notes

  1. Jump up ^ Photograph, illustration, and description of the root(2) tablet from the Yale Babylonian Collection
  2. Jump up ^ The New Zealand Qualification authority specifically mentions this skill in document 13004 version 2, dated 17 October 2003 titled CARPENTRY THEORY: Demonstrate knowledge of setting out a building
  3. Jump up ^ This is a fixed point iteration for the equation x=(x^2-2)^2+x=f(x), whose solutions include \sqrt{2}. The iterates always move to the right since f(x)\geq x. Hence x_1=1.4<\sqrt{2} converges and x_1=1.42>\sqrt{2} diverges.
  4. Jump up ^ The Singular Value Decomposition and Its Applications in Image Compression
  5. Jump up ^ Speed comparison of various number crunching packages
  6. Jump up