# JuliaIntervals: https://github.com/JuliaIntervals¶

• Interval analysis tools for set computation
• Principal authors: Luis Benet, David P. Sanders
• Used in other packages:

• EAGO - global optimization

• JuliaReach - reachability analysis for dynamical systems

## Outline¶

• Root finding and optimization problems

• Modelling sets: Intervals

• How to handle constraints

• Algorithms

In [7]:
using ValidatedNumerics   # pulls in all packages

┌ Info: Precompiling ValidatedNumerics [d621b6e3-7715-5857-9c6f-c67000ef6083]


# Solving difficult root-finding and optimization problems¶

## Solution set / feasible set:¶

• $\sin(y \cdot \exp(x) - 1) \le 0.5$
In [1]:
using Plots

using IntervalConstraintProgramming, IntervalArithmetic, IntervalRootFinding, Interact

┌ Info: Recompiling stale cache file /Users/dpsanders/.julia/compiled/v1.0/IntervalConstraintProgramming/DCiIm.ji for IntervalConstraintProgramming [138f1668-1576-5ad7-91b9-7425abbf3153]

In [4]:
@manipulate for a in 0.0:0.1:1.0

C = @constraint sin(y * exp(x) - 1) - \$a <= 0.0

X = (-5..5) × (-5..5)  # box

@time paving = pave(C, X, 0.1)

plot(paving.inner, lw=1, label=""); plot!(paving.boundary, lw=0, label="")
end

  0.426674 seconds (750.70 k allocations: 78.423 MiB, 30.60% gc time)

Out[4]: