Mathematics for Applied Sciences (Osnabrück 2023-2024)/Part I/Lecture 7/latex
\setcounter{section}{7}
\subtitle {Approximation}
A basic thought of mathematics is the idea of \keyword {approximation} {,} which occurs in many contexts and which is important both for mathematics as an auxiliary science for the empirical sciences and for the construction of mathematics as a pure science, in particular in analysis.
The first example for this is \keyword {measuring} {,} say the length of a line segment or the duration of time. Depending on the context and the aim, there are quite different ideas of what an exact measurement is, and the desired accuracy has an impact on the measuring device to take.
The result of a measurement is given in respect to a unit of measurement by a \keyword {decimal fraction} {,} that is as a number with finitely many digits after the point. The number of digits after the point indicates the claimed exactness of the measurement. To describe results of a measurement one neither needs irrational numbers nor rational numbers with a periodic decimal expansion.
Let's have a look at meteorology. From measurements at several different measurement stations, one tries to set up the weather forecast for the following days with mathematical models and computer simulation. In order to make better forecasts, one needs more measurement stations.
Let's have a look at approximations as they appear in mathematics. A certain line segment can
\extrabracket {at least ideally} {} {}
be divided into $n$ parts of the same length and one may be interested in the length of the parts, or in the length of the diagonal in the unit square. These lengths could also be measured, however, mathematics offers better descriptions of these lengths by providing rational numbers and irrational numbers
\extrabracket {like $\sqrt{2}$} {} {.}
The determination of a good approximation is then pursued within mathematics. Let us consider the fraction
\mathrelationchain
{\relationchain
{q
}
{ = }{ { \frac{ 3 }{ 7 } }
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
An approximation of this number with an exactness of nine digits is given by
\mathrelationchaindisplay
{\relationchain
{0,428571428
}
{ <} { { \frac{ 3 }{ 7 } }
}
{ <} {0,428571429
}
{ } {
}
{ } {
}
}
{}{}{.}
The decimal fractions on the left and on the right are both approximations
\extrabracket {estimates} {} {}
of the true fraction \mathl{{ \frac{ 3 }{ 7 } }}{} with an error which is smaller than \mathl{{ \frac{ 1 }{ 10^9 } }}{.} This is a typical accuracy of a calculator, but depending on the aim one sometimes wants a better accuracy
\extrabracket {a smaller error} {} {.}
The computation in this example rests on the division algorithm, and one can go on to achieve any wanted error bound
\extrabracket {here, it is an additional aspect that because of the periodicity we can just read off the digits and repeat them and do not have to compute further} {} {.}
The approximation of a given number by a decimal fraction is also called \keyword {rounding} {.}
In the empirical and in the mathematical situation, we have the following principle of approximation.
\keyword {Principle of approximation} {:} There does not exist a universal accuracy for an approximation. A good approximation method is not a single approximation, but rather a method to produce for any given wanted accuracy \extrabracket {error, level of exactness, deviation} {} {} an approximation within the given accuracy. To increase the accuracy \extrabracket {make the error smaller} {} {} one has to increase the effort.
With this principle at the back of one's mind, many difficult concepts like \keyword {convergent sequence} {} and \keyword {continuity} {} become comprehensible.
Approximations appear also in the sense that empirical functions for which a certain sampling is known, shall be described by a mathematically easy function. An example for this is the interpolation theorem. Later we will also encounter the Taylor formula, which approximates a given function in a small neighborhood of one point by a polynomial. Also, here the mentioned principle of approximation occurs, that in order to get a better approximation one has to increase the degree of the polynomials. In integration theory, the graph of a function is bounded by upper and lower staircase functions, in order to approximate the area below the graph. With finer staircase functions \extrabracket {shorter steps} {} {} we get better approximations.
How good an approximation is becomes sometimes clear if we want to compute with the approximations. For example, given certain estimates for the side lengths of a rectangle, what estimate does hold for the area of the rectangle? If we want to allow a certain error for the area of a rectangle, what error can we allow for the side lengths?
We are going to have a closer look at square roots and how these might be approximated. More precisely, we will describe square roots as a limit of a sequence. We have seen in the fourth lecture that there is no easier description for the square root of a prime number since these are irrational numbers.
\subtitle {Real sequences}
\image{ \begin{center}
\includegraphics[width=5.5cm]{\imageinclude {Heron_von_Alexandria.jpg} }
\end{center}
\imagetext {Heron of Alexandria (1. century a.C.)} }
\imagelicense { Heron von Alexandria.jpg } {} {Frank C. Müller} {Commons} {PD} {}
We begin with a motivating example.
\inputexample{
}
{
We would like to \quotationshort{compute}{} the square root of a natural number, say of $5$. Such a number $x$ with the property
\mathrelationchain
{\relationchain
{x^2
}
{ = }{5
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
does not exist within the rational numbers
\extrabracket {this follows from unique prime factorization} {} {.}
If
\mathrelationchain
{\relationchain
{x
}
{ \in }{R
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
is such an element, then also $-x$ has this property. Due to
Corollary 6.6
,
there can not be more than two solutions.
Though there is no solution within the rational numbers for the equation
\mathrelationchain
{\relationchain
{x^2
}
{ = }{ 5
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{,}
there exist arbitrarily good approximations for it with rational numbers. Arbitrarily good means that the error (the deviation) can be made so small that it is below any given positive bound. The classical method to approximate a square root is \keyword {Heron's method} {.} This is an \keyword {iterative method} {,} i.e., the next approximation is computed from the preceding approximation. Let us start with
\mathrelationchain
{\relationchain
{a
}
{ \defeq }{ x_0
}
{ \defeq }{ 2
}
{ }{
}
{ }{
}
}
{}{}{}
as a first approximation. Because of
\mathrelationchaindisplay
{\relationchain
{ x_0^2
}
{ =} {2^2
}
{ =} { 4
}
{ <} { 5
}
{ } {
}
}
{}{}{}
we see that $x_0$ is to small,
\mathrelationchain
{\relationchain
{ x_0
}
{ < }{ x
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
From
\mathrelationchain
{\relationchain
{a^2
}
{ < }{ 5
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
($a$ being positive) we get
\mathrelationchain
{\relationchain
{ 5/a^2
}
{ > }{ 1
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
and therefore
\mathrelationchain
{\relationchain
{ (5/a)^2
}
{ > }{ 5
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{,}
so
\mathrelationchain
{\relationchain
{ 5/a
}
{ > }{ \sqrt{5}
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
Hence we have the estimates
\mathrelationchaindisplay
{\relationchain
{a
}
{ <} {\sqrt{5}
}
{ <} {5/a
}
{ } {
}
{ } {
}
}
{}{}{,}
where we get a rational number on the right hand side if $a$ is rational. Such an estimate provides a certain idea where $\sqrt{5}$ lies. The difference \mathl{5/a -a}{} is a measure for how good the approximation is.
In particular, when we start with $2$, we get that the square root $\sqrt{5}$ is between
\mathcor {} {2} {and} {5/2} {.}
Then we take the
arithmetic mean
of the interval bounds, so
\mathrelationchaindisplay
{\relationchain
{x_1
}
{ \defeq} {\frac{2+ \frac{5}{2} }{2}
}
{ =} {\frac{9}{4}
}
{ } {}
{ } {}
}
{}{}{.}
Due to
\mathrelationchain
{\relationchain
{ { \left(\frac{9}{4}\right) }^2
}
{ = }{\frac{81}{16}
}
{ > }{5
}
{ }{}
{ }{}
}
{}{}{,}
this value is too large and therefore $\sqrt{5}$ is in the interval \mathl{[5\cdot\frac{4}{9} , \frac{9}{4}]}{.} Then, we take again the arithmetic mean of these interval bounds and we set
\mathrelationchaindisplay
{\relationchain
{x_2
}
{ \defeq} { \frac{ 5 \cdot \frac{4}{9} + \frac{9}{4} }{2}
}
{ =} { \frac{161}{72}
}
{ } {}
{ } {}
}
{}{}{}
to be the next approximation. Continuing like that, we get better and better approximations for $\sqrt{5}$.
}
In this way we get always a sequence of better and better approximations of the square root of a positive real number.
\inputdefinition
{ }
{
Let
\mathrelationchain
{\relationchain
{ c
}
{ \in }{ \R_+
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
denote a positive real number. The
\definitionword {Heron-sequence}{,}
with the positive initial value $x_0$, is defined recursively by
\mathrelationchaindisplay
{\relationchain
{ x_{n+1}
}
{ \defeq} { { \frac{ x_n + { \frac{ c }{ x_n } } }{ 2 } }
}
{ } {
}
{ } {
}
{ } {
}
}
}
Accordingly, this method is called \keyword {Heron's method} {} for the computation of square roots. In particular, this method produces for every natural number $n$ a real number which approximates a number defined by a certain algebraic property within an error which is arbitrarily small. In many technical applications, it is enough to know a certain number within a certain accuracy, but the accuracy aimed at might depend on the technical goal. In general, there is no accuracy which will work for all possible applications. Instead, it is important to know how to improve a good approximation by a better approximation and to know how many \extrabracket {computational} {} {} steps one has to take in order to reach a certain desired approximation. This idea yields the concepts sequence and convergence.
\inputdefinition
{ }
{
A \definitionword {real sequence}{} is a
mapping
\mathdisp {\N \longrightarrow \R
}
We usually write a sequence as \mathl{{ \left( x_n \right) }_{n \in \N }}{} or simple as \mathl{(x_n)_n}{.} For a given starting number $x_0$, the recursively defined numbers by Heron's method (for the computation of $\sqrt{c}$) form a sequence. Sometimes a sequence is not defined for all natural numbers, but just for all natural numbers $\geq N$. But all concepts and statements apply also in this situation.
\inputdefinition
{ }
{
Let \mathl{{ \left( x_n \right) }_{n \in \N }}{} denote a
real sequence,
and let
\mathrelationchain
{\relationchain
{x
}
{ \in }{\R
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
We say that the sequence \definitionword {converges}{} to $x$, if the following property holds.
For every positive
\mathcond {\epsilon > 0} {}
{\epsilon \in \R} {}
{} {} {} {,}
there exists some
\mathrelationchain
{\relationchain
{n_0
}
{ \in }{ \N
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{,}
such that for all
\mathrelationchain
{\relationchain
{n
}
{ \geq }{ n_0
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{,}
the estimate
\mathrelationchaindisplay
{\relationchain
{ \betrag { x_n-x }
}
{ \leq} { \epsilon
}
{ } {
}
{ } {
}
{ } {
}
}
{}{}{}
holds.
If this condition is fulfilled, then $x$ is called the \definitionword {limit}{} of the sequence. For this we write
\mathrelationchaindisplay
{\relationchain
{ \lim_{n \rightarrow \infty} x_n
}
{ \defeq} {x
}
{ } {
}
{ } {
}
{ } {
}
}
{}{}{.}
}
One should think of the given $\epsilon$ as a small but positive real number which expresses the desired \keyword {aiming accuracy} {}
\extrabracket {or the allowed error} {} {.}
The natural number $n_0$ represents the \keyword {effort} {} how far one has to go in order to achieve the desired accuracy, and in fact in such a way that above this effort number $n_0$, all the following members will stay within this allowed error. Thus, convergence means that every possible accuracy can be achieved by some suitable effort. The smaller the error is supposed to be
\extrabracket {the better the approximation shall be} {} {,}
the higher the effort will be. Instead of arbitrary positive real numbers $\epsilon$, one can also work with \keyword {unit fractions} {}
\extrabracket {the rational numbers of the form
\mathcond {{ \frac{ 1 }{ k } }} {}
{k \in \N_+} {}
{} {} {} {}} {} {,}
see
Exercise 7.7
,
or with the inverse powers of ten
\mathcond {{ \frac{ 1 }{ 10^\ell } }} {}
{\ell \in \N} {}
{} {} {} {.}
For
\mathrelationchain
{\relationchain
{ \epsilon
}
{ > }{0
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
and a real number $x$, the interval \mathl{]x- \epsilon, x + \epsilon[}{} is also called the $\epsilon$-\keyword {neighborhood} {} of $x$. A sequence converging to $0$ is called \keyword {null sequence} {.}
\image{ \begin{center}
\includegraphics[width=5.5cm]{\imageinclude {Konvergenz.svg} }
\end{center}
\imagetext {} }
\imagelicense { Konvergenz.svg } {} {Matthias Vogelgesang} {Commons} {CC-by-sa 3.0} {}
\image{ \begin{center}
\includegraphics[width=5.5cm]{\imageinclude {Cauchy_sequence_-_example.png} }
\end{center}
\imagetext {} }
\imagelicense { Cauchy sequence - example.png } {} {Pred} {da.wikipedia} {CC-by-sa 2.5} {}
\inputexample{}
{
A \keyword {constant sequence} {}
\mathrelationchain
{\relationchain
{x_n
}
{ \defeq }{ c
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
converges to the limit $c$. This follows immediately, since for every
\mathrelationchain
{\relationchain
{ \epsilon
}
{ > }{ 0
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{,}
we can take
\mathrelationchain
{\relationchain
{n_0
}
{ = }{ 0
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
Then we have
\mathrelationchaindisplay
{\relationchain
{ \betrag { x_n-c }
}
{ =} { \betrag { c-c }
}
{ =} { \betrag { 0 }
}
{ =} { 0
}
{ <} {\epsilon
}
}
{}{}{}
for all $n$.
}
\inputexample{}
{
The sequence
\mathrelationchaindisplay
{\relationchain
{ x_n
}
{ =} { { \frac{ 1 }{ n } }
}
{ } {
}
{ } {
}
{ } {
}
}
{}{}{}
converges
to the limit $0$. To show this, let some positive $\epsilon$ be given. Due to the Archimedean axiom, there exists an $n_0$, such that
\mathrelationchain
{\relationchain
{ { \frac{ 1 }{ n_0 } }
}
{ \leq }{ \epsilon
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
Then for all
\mathrelationchain
{\relationchain
{n
}
{ \geq }{n_0
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{,}
the estimate
\mathrelationchaindisplay
{\relationchain
{ \betrag { x_n-0 }
}
{ =} { { \frac{ 1 }{ n } }
}
{ \leq} {{ \frac{ 1 }{ n_0 } }
}
{ \leq} { \epsilon
}
{ } {}
}
{}{}{}
holds.
}
\inputexample{}
{
We consider the sequence
\mathrelationchaindisplay
{\relationchain
{x_n
}
{ =} { 0. 33 \ldots 33
}
{ } {
}
{ } {
}
{ } {
}
}
{}{}{,}
with exactly $n$ digits after the point. We claim that this sequence converges to $1/3$. For this, we have to determine \mathl{\betrag { 0, 33 \ldots 33 - { \frac{ 1 }{ 3 } } }}{,} and before we can do this, we have to recall the meaning of a decimal expansion. We have
\mathrelationchaindisplay
{\relationchain
{ x_n
}
{ =} { 0. 33 \ldots 33
}
{ =} { { \frac{ 33 \ldots 33 }{ 10^n } }
}
{ =} { { \frac{ \sum_{j = 0}^{n-1} 3 \cdot 10^j }{ 10^n } }
}
{ } {
}
}
{}{}{,}
and therefore
\mathrelationchainalign
{\relationchainalign
{ \betrag { 0, 33 \ldots 33 - { \frac{ 1 }{ 3 } } }
}
{ =} { \betrag { { \frac{ \sum_{j = 0}^{n-1} 3 \cdot 10^j }{ 10^n } } - { \frac{ 1 }{ 3 } } }
}
{ =} { \betrag { { \frac{ 3 \cdot { \left( \sum_{j = 0}^{n-1} 3 \cdot 10^j \right) } - 10^n }{ 3 \cdot 10^n } } }
}
{ =} { \betrag { { \frac{ { \left( \sum_{j = 0}^{n-1} 9 \cdot 10^j \right) } - 10^n }{ 3 \cdot 10^n } } }
}
{ =} { \betrag { { \frac{ -1 }{ 3 \cdot 10^n } } }
}
}
{
\relationchainextensionalign
{ =} { { \frac{ 1 }{ 3 \cdot 10^n } }
}
{ } {}
{ } {}
{ } {}
}
{}{.}
If now a positive $\epsilon$ is given, then for $n$ sufficiently large, this last term is $\leq \epsilon$.
}
\inputfactproof
{Real numbers/Sequence/Unique limit/Fact}
{Lemma}
{}
{
\factsituation {A
real sequence}
\factconclusion {has at most one limit.}
\factextra {}
}
{
We assume that the sequence has two distinct limits
\mathcond {x,y} {}
{x \neq y} {}
{} {} {} {.}
Then
\mathrelationchain
{\relationchain
{d
}
{ \defeq }{ \betrag { x-y }
}
{ > }{0
}
{ }{
}
{ }{
}
}
{}{}{.}
We consider
\mathrelationchain
{\relationchain
{ \epsilon
}
{ \defeq }{ d/3
}
{ > }{ 0
}
{ }{
}
{ }{
}
}
{}{}{.}
Because of the convergence to $x$ there exists an $n_0$ such that
\mathdisp {\betrag { x_n-x } \leq \epsilon \text{ for all } n \geq n_0} { }
and because of the convergence to $y$ there exists an $n_0'$ such that
\mathdisp {\betrag { x_n-y } \leq \epsilon \text{ for all } n \geq n_0'} { . }
hence both conditions hold simultaneously for
\mathrelationchain
{\relationchain
{n
}
{ \geq }{\max\{n_0,n_0'\}
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
Suppose that $n$ is as large as this maximum. Then due to the
triangle inequality
we arrive at the contradiction
\mathrelationchaindisplay
{\relationchain
{d
}
{ =} { \betrag { x-y }
}
{ \leq} { \betrag { x-x_n } + \betrag { x_n-y }
}
{ \leq} { \epsilon + \epsilon
}
{ =} { 2 d/3
}
}
{}{}{.}
\subtitle {Boundedness}
\inputdefinition
{ }
{
A subset
\mathrelationchain
{\relationchain
{M
}
{ \subseteq }{\R
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
of the real numbers is called
\definitionword {bounded}{,}
if there exist real numbers
\mathrelationchain
{\relationchain
{s
}
{ \leq }{S
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
such that
\mathrelationchain
{\relationchain
{M
}
{ \subseteq }{ [s, S]
}
{ }{
}
{ }{
}
{ }{
}
}
}
In this situation, $S$ is also called an \keyword {upper bound} {} for $M$ and $s$ is called a \keyword {lower bound} {} for $M$. These concepts are also used for sequences, namely for the image set, the set of all members \mathl{{ \left\{ x_n \mid n \in \N \right\} }}{.} For the sequence
\mathcond {1/n} {}
{n \in \N_+} {}
{} {} {} {,}
$1$ is an upper bound and $0$ is a lower bound.
\inputfactproof
{Real numbers/Convergent sequence/Bounded/Fact}
{Lemma}
{}
{
\factsituation {}
\factcondition {A
convergent
real sequence}
\factconclusion {is
bounded.}
\factextra {}
}
{
Let \mathl{{ \left( x_n \right) }_{n \in \N }}{} be the convergent sequence with
\mathrelationchain
{\relationchain
{x
}
{ \in }{\R
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
as its limit. Choose some
\mathrelationchain
{\relationchain
{ \epsilon
}
{ > }{0
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}
Due to convergence there exists some $n_0$ such that
\mathdisp {\betrag { x_n-x } \leq \epsilon \text { for all } n \geq n_0} { . }
So in particular
\mathdisp {\betrag { x_n } \leq \betrag { x } + \betrag { x-x_n } \leq \betrag { x } +\epsilon \text { for all } n \geq n_0} { . }
Below $n_0$ there are ony finitely many members, hence the maximum
\mathrelationchaindisplay
{\relationchain
{B
}
{ \defeq} { \max_{n <n_0}\{ \betrag { x_n } ,\, \betrag { x } + \epsilon \}
}
{ } {
}
{ } {
}
{ } {
}
}
{}{}{}
is welldefined. Therefore $B$ is an upper bound and $- B$ is a lower bound for \mathl{{ \left\{ x_n \mid n \in \N \right\} }}{.}
It is easy to give a bounded but not convergent sequence.
\inputexample{}
{
The \keyword {alternating sequence} {}
\mathrelationchaindisplay
{\relationchain
{ x_n
}
{ \defeq} { (-1)^n
}
{ } {
}
{ } {
}
{ } {
}
}
{}{}{}
is bounded, but not
convergent.
The boundedness follows directly from
\mathrelationchain
{\relationchain
{x_n
}
{ \in }{ [-1,1]
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
for all $n$. However, there is no convergence. For if
\mathrelationchain
{\relationchain
{x
}
{ \geq }{ 0
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
were the limit, then for positive
\mathrelationchain
{\relationchain
{ \epsilon
}
{ < }{ 1
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
and every odd $n$ the relation
\mathrelationchaindisplay
{\relationchain
{ \betrag { x_n-x }
}
{ =} { \betrag { -1-x }
}
{ =} {1+x
}
{ \geq} {1
}
{ >} {\epsilon
}
}
{}{}{}
holds, so these members are outside of this $\epsilon$-neighbourhood. In the same way we can argue against some negative limit.
}
\subtitle {The squeeze criterion}
\inputfactproof
{Real numbers/Convergent sequences/Compare/Fact}
{Lemma}
{}
{
\factsituation {Suppose that
\mathcor {} {{ \left( x_n \right) }_{n \in \N }} {and} {{ \left( y_n \right) }_{n \in \N }} {}
are
convergent sequences}
\factcondition {such that
\mathrelationchain
{\relationchain
{x_n
}
{ \geq }{y_n
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{}
for all
\mathrelationchain
{\relationchain
{n
}
{ \in }{ \N
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}}
\factconclusion {Then
\mathrelationchain
{\relationchain
{ \lim_{n \rightarrow \infty} x_n
}
{ \geq }{ \lim_{ n \rightarrow \infty} y_{ n }
}
{ }{
}
{ }{
}
{ }{
}
}
{}{}{.}}
\factextra {}
{See Exercise 7.16 .}
The following statement is called the \keyword {squeeze criterion} {.}
\inputfactproof
{Real numbers/Sequences/Squeeze criterion/Fact}
{Lemma}
{}
{
\factsituation {Let
\mathcor {} {{ \left( x_n \right) }_{n \in \N }, \, { \left( y_n \right) }_{n \in \N }} {and} {{ \left( z_n \right) }_{n \in \N }} {}
denote
real sequences.}
\factcondition {Suppose that
\mathdisp {x_n \leq y_n \leq z_n \text{ for all } n \in \N} { }
and that
\mathcor {} {{ \left( x_n \right) }_{n \in \N }} {and} {{ \left( z_n \right) }_{n \in \N }} {}
converge
to the same limit $a$.}
\factconclusion {Then also \mathl{{ \left( y_n \right) }_{n \in \N }}{} converges to $a$.}
\factextra {}
{See Exercise 7.17 .}