Interval Newton Method

Next: Run Time Output Up: C-XSC Sample Programs Previous: C-XSC Sample Programs

## Interval Newton Method

Compute an enclosure of a zero of a real function f(x). It is assumed that the derivative is continuous in , and that

If

is an inclusion of the zero, then an improved inclusion

may be computed by

where m(X) is a point within the interval X, usually the midpoint. The mathematical theory of the Interval Newton method appears in [1].

In this example, we apply Newton's method to the function

Generic function names are used for interval square root, interval sine, and interval cosine so that f may be written in a mathematical notation.

```#include "interval.hpp"        // Include interval arithmetic package
#include "imath.hpp"           // Include interval standard functions

interval f(real& x)
{                              // Function f
interval y;
y = x;                       // Use interval arithmetic
return sqrt(y) + (y+1.0) * cos(y);
}

interval deriv(interval& x)
{                              // Derivative function f'
return (1.0 / (2.0 * sqrt(x)) + cos(x) - (x+1.0) * sin(x));
}

int criter(interval& x)        // Computing: f(a)*f(b) < 0   and
{                              //            not 0 in f'([x])?
return ( Sup( f(Inf(x))*f(Sup(x)) ) < 0.0  &&  !(0.0 <= deriv(x)) );
}                              //                     '<=': `element of'

main()
{
interval y, y_old;

cout << "Please enter starting interval: ";  cin >> y;
cout << SetPrecision(20,12);
if (criter(y))
do {
y_old = y;
cout << "y = " << y << endl;
y = (mid(y)-f(mid(y))/deriv(y)) & y;  // Iteration formula
} while (y != y_old);                   // &: intersection
else
cout << "Criterion not satisfied!" << endl;
}```

Andreas Wiethoff
Wed Mar 29 13:50:24 MET DST 1995