Approximations for Continued Fraction Computations (GeneralizedContinuedFraction.of
) #
Summary #
This file contains useful approximations for the values involved in the continued fractions
computation GeneralizedContinuedFraction.of
. In particular, we derive the so-called
determinant formula for GeneralizedContinuedFraction.of
:
Aₙ * Bₙ₊₁ - Bₙ * Aₙ₊₁ = (-1)^(n + 1)
.
Moreover, we derive some upper bounds for the error term when computing a continued fraction up a
given position, i.e. bounds for the term
|v - (GeneralizedContinuedFraction.of v).convergents n|
. The derived bounds will show us that
the error term indeed gets smaller. As a corollary, we will be able to show that
(GeneralizedContinuedFraction.of v).convergents
converges to v
in
Algebra.ContinuedFractions.Computation.ApproximationCorollaries
.
Main Theorems #
GeneralizedContinuedFraction.of_part_num_eq_one
: shows that all partial numeratorsaᵢ
are equal to one.GeneralizedContinuedFraction.exists_int_eq_of_part_denom
: shows that all partial denominatorsbᵢ
correspond to an integer.GeneralizedContinuedFraction.of_one_le_get?_part_denom
: shows that1 ≤ bᵢ
.GeneralizedContinuedFraction.succ_nth_fib_le_of_nth_denom
: shows that then
th denominatorBₙ
is greater than or equal to then + 1
th fibonacci numberNat.fib (n + 1)
.GeneralizedContinuedFraction.le_of_succ_get?_denom
: shows thatbₙ * Bₙ ≤ Bₙ₊₁
, wherebₙ
is then
th partial denominator of the continued fraction.GeneralizedContinuedFraction.abs_sub_convergents_le
: shows that|v - Aₙ / Bₙ| ≤ 1 / (Bₙ * Bₙ₊₁)
, whereAₙ
is then
th partial numerator.
References #
- [Hardy, GH and Wright, EM and Heath-Brown, Roger and Silverman, Joseph][hardy2008introduction]
- https://en.wikipedia.org/wiki/Generalized_continued_fraction#The_determinant_formula
We begin with some lemmas about the stream of IntFractPair
s, which presumably are not
of great interest for the end user.
Shows that the fractional parts of the stream are in [0,1)
.
Shows that the fractional parts of the stream are nonnegative.
Shows that the fractional parts of the stream are smaller than one.
Shows that the integer parts of the stream are at least one.
Shows that the n + 1
th integer part bₙ₊₁
of the stream is smaller or equal than the inverse of
the n
th fractional part frₙ
of the stream.
This result is straight-forward as bₙ₊₁
is defined as the floor of 1 / frₙ
.
Next we translate above results about the stream of IntFractPair
s to the computed continued
fraction GeneralizedContinuedFraction.of
.
Shows that the integer parts of the continued fraction are at least one.
Shows that the partial numerators aᵢ
of the continued fraction are equal to one and the partial
denominators bᵢ
correspond to integers.
Shows that the partial numerators aᵢ
are equal to one.
Shows that the partial denominators bᵢ
correspond to an integer.
One of our next goals is to show that bₙ * Bₙ ≤ Bₙ₊₁
. For this, we first show that the partial
denominators Bₙ
are bounded from below by the fibonacci sequence Nat.fib
. This then implies that
0 ≤ Bₙ
and hence Bₙ₊₂ = bₙ₊₁ * Bₙ₊₁ + Bₙ ≥ bₙ₊₁ * Bₙ₊₁ + 0 = bₙ₊₁ * Bₙ₊₁
.
Shows that the n
th denominator is greater than or equal to the n + 1
th fibonacci number,
that is Nat.fib (n + 1) ≤ Bₙ
.
As a simple consequence, we can now derive that all denominators are nonnegative.
Shows that all denominators are nonnegative.
Shows that bₙ * Bₙ ≤ Bₙ₊₁
, where bₙ
is the n
th partial denominator and Bₙ₊₁
and Bₙ
are
the n + 1
th and n
th denominator of the continued fraction.
Shows that the sequence of denominators is monotone, that is Bₙ ≤ Bₙ₊₁
.
Determinant Formula #
Next we prove the so-called determinant formula for GeneralizedContinuedFraction.of
:
Aₙ * Bₙ₊₁ - Bₙ * Aₙ₊₁ = (-1)^(n + 1)
.
The determinant formula Aₙ * Bₙ₊₁ - Bₙ * Aₙ₊₁ = (-1)^(n + 1)
.
Approximation of Error Term #
Next we derive some approximations for the error term when computing a continued fraction up a given
position, i.e. bounds for the term |v - (GeneralizedContinuedFraction.of v).convergents n|
.
This lemma follows from the finite correctness proof, the determinant equality, and by simplifying the difference.
Shows that |v - Aₙ / Bₙ| ≤ 1 / (Bₙ * Bₙ₊₁)
.
Shows that |v - Aₙ / Bₙ| ≤ 1 / (bₙ * Bₙ * Bₙ)
. This bound is worse than the one shown in
GCF.abs_sub_convergents_le
, but sometimes it is easier to apply and sufficient for one's use case.