Chapter 10, Computer Assisted Proofs and Self-Validating Methods

Siegfried M. Rump

INTLAB

The new Version 9 of INTLAB, the Matlab toolbox for Reliable Compting, is now available for Matlab and Octave.

The main progress in Version 8 are two new toolboxes:

  1. affari affine arithmetc toolbox, gradients using affine quantities, Hessians using affine quantities, Taylor models using affine quantities.
  2. fl k-bit IEEE 754 floating point and interval arithmetic.
A number of changes, improvements and speed-ups have been implemented earlier.

It comprises of

The philosophy of INTLAB is that *everything* is written in Matlab code to assure best portability.

The version handles Hessians in pure floating point and with verified bounds. As an example consider a model problem where the function to be minimized is

   function y = f(x)
     N = length(x);
     I = 1:N-4;
     y = sum( (-4*x(I)+3.0).^2 ) + sum( ( x(I).^2 + 2*x(I+1).^2 + ...
       3*x(I+2).^2 + 4*x(I+3).^2 + 5*x(N).^2 ).^2 );
with initial approximation xs=ones(N,1) for N=1000. This means 1e6 elements in the gradient and 1e9 elements in the Hessian, or 8 GByte in full storage. In our implementation Hessians are stored sparse using a special storage scheme allowing efficient computations.

The following is executable code to calculate an inclusion of a stationary point of f by first performing a simple Newton iteration followed by a verification step for the resulting nonlinear system. Error estimations are completely rigorous.

 >> n = 1000;
    xs = ones(n,1);
    tic
    X = verifynlss(@f,xs,'hSparseSPD');
    t = toc
    maxrelerr = max(relerr(X))


    t = 23.8040
    maxrelerr = 5.5992e-013
Inclusions of all components of a stationary point are to some 13 decimal digits and takes 24 seconds on my 800 MHz Pentium III Laptop. Symmetric positive definiteness of the Hessian can be verified as well, ensuring a (local) minimum of f in X.

Some higher transcendental functions like erf, erfc and gamma have been added. For arguments close to negative integers the result of the built-in Matlab function has sometimes no correct digit, whereas INTLAB verifies bounds of almost maximum accuracy.

INTLAB works under Windows, Unix and Mac OS and is tested under Matlab Versions 5.3 to 7.0 . INTLAB is freely available for non-commercial use from

    http://www.ti3.tuhh.de/intlab/

For Octave the INTLAB package is self-contained including Octave Version 3.8.2.

For demonstration, also Matlab-implementations of our new summation and dot product routines are given, S. M. Rump, T. Ogita, and S. Oishi Accurate Floating-Point Summation, SIAM J. Sci. Comput. Vol. 31, Issue 2, pp. 1269-1302 (2008).

Comments always welcome. Best wishes

Siegfried M. Rump, Email rump@tuhh.de

Dates: May 15, 2014 and February 9, 2015

Prof. Dr. Siegfried M. Rump
Inst. f. Computer Science III
Technical University Hamburg-Harburg
Schwarzenbergstr. 95
21071 Hamburg
Germany