Add IntervalArithmetic v0.23.0+ compatibility guide and robust examples
Summary
Adds comprehensive documentation and robust examples for IntervalArithmetic.jl v0.23.0+ compatibility, addressing breaking changes introduced in the latest version.
Problem Solved
IntervalArithmetic.jl v0.23.0 introduced breaking changes for IEEE 1788-2015 compliance that can cause failures in interval ODE examples:
โ ArgumentError: `isfinite` is purposely not supported for intervals containing infinite bounds
โ ArgumentError: `==` is purposely not supported for overlapping non-thin intervals
Changes Made
๐ Documentation Updates
- Breaking changes guide for v0.23.0+ users
- Migration instructions from deprecated functions:
isfinite()โisbounded()for interval bounds checking==โisequal_interval()for interval comparison
- Best practices for robust interval ODE solving
๐ ๏ธ Robust Example Code
Added solve_interval_ode_safely() function that:
- โ Handles solver failures gracefully with Euler fallback
- โ
Checks interval bounds using
isbounded() - โ Uses fixed-step solvers to avoid adaptive step issues
- โ Provides clear error messages and fallback strategies
๐งช Testing Results
Verified with IntervalArithmetic v0.23.0:
- โ Original examples still work (with our ฯ/3.0 fix)
- โ New robust examples handle edge cases gracefully
- โ All interval arithmetic operations function correctly
- โ Error handling provides useful fallback strategies
Benefits
๐ฏ User Experience: Clear guidance for v0.23.0+ users
๐ก๏ธ Robustness: Examples handle interval explosion gracefully
๐ Educational: Explains breaking changes and solutions
๐ Backward Compatible: Works with both v0.22.x and v0.23.0+
Example Usage
The new robust solver automatically handles IntervalArithmetic v0.23.0 issues:
gaccel = interval(9.79, 9.81)
L = interval(0.99, 1.01)
uโ = [interval(0,0), interval(ฯ/3.0 - 0.01, ฯ/3.0 + 0.01)]
sol = solve_interval_ode_safely(gaccel, L, uโ, (0.0, 3.0))
This ensures the SciMLBook examples work reliably with the latest IntervalArithmetic.jl versions while providing educational value about handling numerical uncertainties.
๐ค Generated with Claude Code