What is pyIbex


pyIbex is set of python modules for solving nonlinear problems using Interval Arithmetic tools. It provides high-level functionalities such as Contractors and Separators programming.
Initially based on the core part of Ibex-lib, it aims at combining the flexibility of python with the speed of C++ algorithms.

Generic placeholder image

Get Started

Quick Install

To install pyibex enter in a terminal :

$ python -m pip install pyibex

Remarks:

If you don't have any python install or you faced troubles with your existing installation, we recommend using Miniconda. The download link and the installation instructions are available at miniconda website

See also Installation manual for more details.

Note

To draw results, we recommend to use VIBes-viewer which provides a simple and fast GUI tool for people working with intervals. The last releases for Window, OSX, and Linux are available here.

tititi

Do not forget to install the python interface with

$ python -m pip install vibes

The documentation and a quick introduction can be found here.

Example : set inversion of a non linear function.


Copy the code on the right into "example.py" and enter in a terminal:

# launch before vibes viewer
$ python ./example.py

You should get this figure which corresponds to set of all (x,y) such as f(x,y) < 0

from pyibex import *
from vibes import vibes
# define the function (x,y) -> sin(x+y)
f = Function('x', 'y', 'x*cos(x-y)+y')
# build the Forward / backward separator f(x,y) < 0
sep = SepFwdBwd(f, [-oo, 0])
# define the initial domain [-10,10]x[-10,10]
X0 = IntervalVector(2, [-10, 10] )
#initialize vibes display
vibes.beginDrawing()
# run the set inversion algorithm
pySIVIA(X0, sep, 0.1)
vibes.endDrawing()

Next Step

Generic placeholder image

Read the documentation

Examples and tutorials

Generic placeholder image

Learn intervals with IAMOOC

a free MOOC focused on Interval Analysis with application to parameter estimation, robot localization and SLAM