Overview
The basic idea in interval arithmetic is to perform computations with a whole interval of real numbers
\[[a, b] \bydef \{x \in \mathbb{R}: a \le x \le b \},\]
where $a, b \in \mathbb{R} \cup \{ \pm \infty \}$; note that despite the above notation, $[a, b]$ does not contain infinity when $a$ or $b$ are infinite.
We define functions on intervals in such a way that the result of the computation is a new interval that is guaranteed to contain the true range of the function.
For instance, by monotonicity, the exponential function is given by
\[e^{[a, b]} \bydef [e^a, e^b].\]
On the other hand, the squaring function is non-monotone, thus it is given by the following cases
\[[a, b]^2 \bydef \begin{cases} [a^2, b^2], & 0 < a < b, [0, \max(a^2, b^2)], & a < 0 < b, [b^2, a^2], & a < b < 0. \end{cases}\]
Of course, we must round the lower endpoint down and the upper endpoint up to get a guaranteed enclosure of the true result.
IntervalArithmetic defines such behaviour for a wide set of basic functions, thereby allowing the evaluation of more complex functions such as
\[f(x) = \sin(3x^2 - 2 \cos(1/x))\]
Applications
To illustrate the use of interval arithmetic, consider the following:
julia> using IntervalArithmetic
julia> f(x) = x^2 - 2
f (generic function with 1 method)
julia> x = interval(3, 4)
Interval{Float64}(3.0, 4.0)
julia> f(x)
Interval{Float64}(7.0, 14.0)
Since f(x)
does not contain 0
, the true range of the function $f$ over the interval $[3, 4]$ is guaranteed not to contain $0$, and hence we obtain the following property.
Theorem: $f$ has no root in the interval $[3, 4]$.
This theorem has been obtained using floating-point computations! In fact, we can even extend this to semi-infinite intervals:
julia> f(interval(3, Inf))
Interval{Float64}(7.0, Inf)
Therefore, we have excluded the whole unbounded set $[3, \infty)$ from possibly containing roots of $f$.
Interval arithmetic is the foundation of more powerful and elaborate methods in the field of computer-assisted proofs (see e.g. IntervalRootFinding.jl).
The interested reader may refer to the following books:
- R. E. Moore, R. B. Kearfott and M. J. Cloud, Introduction to Interval Analysis, Society for Industrial and Applied Mathematics (2009)
- W. Tucker, Validated Numerics: A Short Introduction to Rigorous Computations, Princeton University Press (2010)