-\end{cases}\]</p><p>Of course, we must round the lower endpoint down and the upper endpoint up to get a guaranteed enclosure of the true result.</p><p>IntervalArithmetic defines such behaviour for a wide set of basic functions, thereby allowing the evaluation of more complex functions such as</p><p class="math-container">\[f(x) = \sin(3x^2 - 2 \cos(1/x))\]</p><h2 id="Applications"><a class="docs-heading-anchor" href="#Applications">Applications</a><a id="Applications-1"></a><a class="docs-heading-anchor-permalink" href="#Applications" title="Permalink"></a></h2><p>To illustrate the use of interval arithmetic, consider the following:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> using IntervalArithmetic</code><code class="nohighlight hljs ansi" style="display:block;"></code><br/><code class="language-julia-repl hljs" style="display:block;">julia> f(x) = x^2 - 2</code><code class="nohighlight hljs ansi" style="display:block;">f (generic function with 1 method)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> x = interval(3, 4)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(3.0, 4.0, com)</code><br/><code class="language-julia-repl hljs" style="display:block;">julia> f(x)</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(7.0, 14.0, com)_NG</code></pre><p>Since <code>f(x)</code> does not contain <code>0</code>, the true range of the function <span>$f$</span> over the interval <span>$[3, 4]$</span> is guaranteed not to contain <span>$0$</span>, and hence we obtain the following property.</p><p><strong>Theorem:</strong> <span>$f$</span> has no root in the interval <span>$[3, 4]$</span>.</p><p>This theorem has been obtained using floating-point computations! In fact, we can even extend this to semi-infinite intervals:</p><pre><code class="language-julia-repl hljs" style="display:block;">julia> f(interval(3, Inf))</code><code class="nohighlight hljs ansi" style="display:block;">Interval{Float64}(7.0, Inf, dac)_NG</code></pre><p>Therefore, we have excluded the whole unbounded set <span>$[3, \infty)$</span> from possibly containing roots of <span>$f$</span>.</p><p>Interval arithmetic is the foundation of more powerful and elaborate methods in the field of computer-assisted proofs (see e.g. <a href="https://juliaintervals.github.io/IntervalRootFinding.jl">IntervalRootFinding.jl</a>).</p><p>The interested reader may refer to the following books:</p><ul><li>R. E. Moore, R. B. Kearfott and M. J. Cloud, <a href="https://doi.org/10.1137/1.9780898717716"><em>Introduction to Interval Analysis</em></a>, Society for Industrial and Applied Mathematics (2009)</li><li>W. Tucker, <a href="https://press.princeton.edu/books/hardcover/9780691147819/validated-numerics"><em>Validated Numerics: A Short Introduction to Rigorous Computations</em></a>, Princeton University Press (2010)</li></ul><h2 id="Compliance-with-the-IEEE-standard-for-interval-arithmetic"><a class="docs-heading-anchor" href="#Compliance-with-the-IEEE-standard-for-interval-arithmetic">Compliance with the IEEE standard for interval arithmetic</a><a id="Compliance-with-the-IEEE-standard-for-interval-arithmetic-1"></a><a class="docs-heading-anchor-permalink" href="#Compliance-with-the-IEEE-standard-for-interval-arithmetic" title="Permalink"></a></h2><p><a href="https://juliaintervals.github.io/IntervalArithmetic.jl">IntervalArithmetic.jl</a> complies with the specifications described in the <a href="https://ieeexplore.ieee.org/document/7140721">IEEE standard for interval arithmetic</a>. However, the reverse-mode of functions are not implemented (see Section 10.5.4).</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../manual/construction/">Constructing intervals »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.1 on <span class="colophon-date" title="Thursday 13 March 2025 20:41">Thursday 13 March 2025</span>. Using Julia version 1.11.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
0 commit comments