JMSLTM Numerical Library 4.0

com.imsl.math
Class RadialBasis

java.lang.Object
  extended bycom.imsl.math.RadialBasis
All Implemented Interfaces:
Cloneable, Serializable

public class RadialBasis
extends Object
implements Serializable, Cloneable

RadialBasis computes a least-squares fit to scattered data in {bf R}^d, where d is the dimension. More precisely, we are given data points

x_0,ldots,x_{n-1} in {bf R}^d

and function values

f_0,ldots,f_{n-1} in {bf R}^1

The radial basis fit to the data is a function F which approximates the above data in the sense that it minimizes the sum-of-squares error

sum_{i=0}^{n-1} w_i left( F(x_i)-f_i right)^2

where w are the weights. Of course, we must restrict the functional form of F. Here we assume it is a linear combination of radial functions:

F(x) equiv sum_{j=0}^{m-1} alpha_j phi(|x-c_j|)

The c_j are the centers.

A radial function, phi(r), maps [0,infty) into {bf R}^1. The default radial function is the Hardy multiquadric,

phi(r) equiv sqrt{r^2+delta^2}

with delta=1. An alternate radial function is the Gaussian, e^{-ax^2}.

By default, the centers are points in a Faure sequence, scaled to cover the box containing the data.

See Also:
Example, Serialized Form

Nested Class Summary
static interface RadialBasis.Function
          Public interface for the user supplied function to the RadialBasis object.
static class RadialBasis.Gaussian
          The Gaussian basis function, e^{-ax^2}.
static class RadialBasis.HardyMultiquadric
          The Hardy multiquadric basis function, sqrt{r^2+delta^2}.
 
Field Summary
static long serialVersionUID
           
 
Constructor Summary
RadialBasis(int nDim, int nCenters)
          Creates a new instance of RadialBasis.
 
Method Summary
 ANOVA getANOVA()
          Returns the ANOVA statistics from the linear regression.
 RadialBasis.Function getRadialFunction()
          Returns the radial function.
 double[] gradient(double[] x)
          Returns the gradient of the radial basis approximation at a point.
 void setRadialFunction(RadialBasis.Function radialFunction)
          Sets the radial function.
 void update(double[][] x, double[] f)
          Adds a set of data points, all with weight = 1.
 void update(double[][] x, double[] f, double[] w)
          Adds a set of data points with user-specified weights.
 void update(double[] x, double f)
          Adds a data point with weight = 1.
 void update(double[] x, double f, double w)
          Adds a data point with a specified weight.
 double value(double[] x)
          Returns the value of the radial basis approximation at a point.
 double[] value(double[][] x)
          Returns the value of the radial basis at a point.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values
Constructor Detail

RadialBasis

public RadialBasis(int nDim,
                   int nCenters)
Creates a new instance of RadialBasis.

Parameters:
nDim - is the number of dimensions.
nCenters - is the number of centers.
Method Detail

getANOVA

public ANOVA getANOVA()
Returns the ANOVA statistics from the linear regression.

Returns:
an ANOVA table and related statistics
See Also:
LinearRegression, ANOVA

getRadialFunction

public RadialBasis.Function getRadialFunction()
Returns the radial function.

Returns:
the current radial function.

gradient

public double[] gradient(double[] x)
Returns the gradient of the radial basis approximation at a point.

Parameters:
x - is a double array containing the locations of the data point at which the approximation's gradient is to be computed.
Returns:
a double array, of length nDim containing the value of the gradient of the radial basis approximation at x.

setRadialFunction

public void setRadialFunction(RadialBasis.Function radialFunction)
Sets the radial function.

Parameters:
radialFunction - is the radial function.

update

public void update(double[][] x,
                   double[] f)
Adds a set of data points, all with weight = 1.

Parameters:
x - is a double matrix of size n by nDim containing the locations of the data points for each dimension.
f - is a double array containing the function values at the data points.

update

public void update(double[][] x,
                   double[] f,
                   double[] w)
Adds a set of data points with user-specified weights.

Parameters:
x - is a double matrix of size n by nDim containing the locations of the data points for each dimension.
f - is a double array containing the function values at the data points.
w - is a double array containing the weights associated with the data points.

update

public void update(double[] x,
                   double f)
Adds a data point with weight = 1.

Parameters:
x - is a double array containing the locations of the data point.
f - is a double containing the function value at the data point.

update

public void update(double[] x,
                   double f,
                   double w)
Adds a data point with a specified weight.

Parameters:
x - is a double array containing the locations of the data point.
f - is a double containing the function value at the data point.
w - is a double containing the weight of this data point.

value

public double value(double[] x)
Returns the value of the radial basis approximation at a point.

Parameters:
x - is a double array containing the locations of the data point at which the approximation is to be computed.
Returns:
the value of the radial basis approximation at x.

value

public double[] value(double[][] x)
Returns the value of the radial basis at a point.

Parameters:
x - a double[], the point at which the radial basis is to be evaluated
Returns:
a double giving the value of the radial basis at the point x

JMSLTM Numerical Library 4.0

Copyright 1970-2006 Visual Numerics, Inc.
Built June 1 2006.