We are pleased to announce the first public release version of the 
ValidatedNumerics.jl package, a Julia package for doing rigorous 
calculations 
using floating-point based interval arithmetic. This includes methods for 
rigorously finding roots of 1D real functions.

To install the package, do

julia> Pkg.add("ValidatedNumerics")

The package provides an Interval type and operations defined on it in such 
a way that the result of any mathematical operations is *guaranteed* to
contain the true result. For convenience, an `@interval` macro is defined:

julia> using ValidatedNumerics

julia> @interval(0.1)
[0.09999999999999999, 0.1]

julia> @interval sin(0.1) + cos(0.2)
[1.0798999944880696, 1.07989999448807]

Just wrapping an operation with the `@interval` macro automatically 
provides a guaranteed rigorous interval containing the true result (an 
"enclosure").

Interval arithmetic provides a means to develop new algorithms that also 
provide rigorous guaranteed results, for example for root finding.
The interval Newton method is implemented in the function `newton`, e.g.:

julia> f(x) = x^2 - 2
f (generic function with 1 method)

julia> newton(f, @interval(-5, 5))
2-element Array{Root{Float64},1}:
 Root([-1.4142135623730951, -1.414213562373095], :unique)
 Root([1.414213562373095, 1.4142135623730951], :unique)

 The response from this function can be considered as a *mathematically 
rigorous proof* that the function f
 has exactly two roots in the interval [-5, 5], one in the first interval 
and the other in the second.
The :unique symbol indicates that the algorithm *guarantees* that there 
exists a root in the given
interval and that it is unique.

Currently root-finding functionality is restricted to one-variable real 
functions.
Please let us know if you have particularly tricky functions whose 
(non-multiple) roots you need to find!
Multi-dimensional root finding is planned for the future.

We of course welcome comments, criticism, and pull requests at
http://github.com/dpsanders/ValidatedNumerics.jl

David Sanders & Luis Benet

Reply via email to