Learn R Programming

SACOBRA (version 1.2)

trainMQRBF: Fit multiquadric RBF model to training data for d>1.

Description

The model for a point \(z=(z_1,...,z_d)\) is fitted using n sample points \(x_1, ..., x_n\)

$$ s(z) = \lambda_1*\Phi(||z-x_1||)+... +\lambda_n*\Phi(||z-x_n||) + c_0 + c_1*z_1 + ... + c_d*z_d $$

where \(\Phi(r)=\sqrt{(1+(r/\sigma)^2)}\) denotes the multiquadrics radial basis function with width \(\sigma\). The coefficients \(\lambda_1, ..., \lambda_n, c_0, c_1, ..., c_d\) are determined by this training procedure. This is for the default case squares==FALSE. In case squares==TRUE there are d additional pure square terms and the model is

$$ s_{sq}(z) = s(z) + c_{d+1}*z_1^2 + ... + c_{d+d}*z_d^2 $$ In case ptail==FALSE the polynomial tail (all coefficients \(c_i\)) is omitted completely.

Usage

trainMQRBF(
  xp,
  U,
  ptail = TRUE,
  squares = FALSE,
  width,
  RULE = "One",
  widthFactor = 1,
  rho = 0,
  DEBUG2 = F
)

Arguments

xp

n points \(x_i\) of dimension d are arranged in (n x d) matrix xp

U

vector of length n, containing samples \(u(x_i)\) of the scalar function \(u\) to be fitted - or - (n x m) matrix, where each column 1,...,m contains one vector of samples \(u_j(x_i)\) for the m'th model, j=1,...,m

ptail

[TRUE] flag, see description

squares

[FALSE] flag, see 'Description'

width

[-1] either a positive real value which is the constant width \(\sigma\) for all Gaussians in all iterations, or -1. If -1, the appropriate width \(\sigma\) is calculated anew in each iteration with one of the rules RULE, based on the distribution of data points xp.

RULE

["One"] one out of ["One" | "Two" | "Three"], different rules for automatic estimation of width \(\sigma\). Only relevant if width = -1,

widthFactor

[1.0] additional constant factor applied to each width \(\sigma\)

rho

[0.0] experimental: 0.0: interpolating, >0.0, approximating (spline-like) Gaussian RBFs

DEBUG2

[FALSE] if TRUE, save M and rhs on return value

Value

rbf.model, an object of class RBFinter, which is basically a list with elements:

coef

(n+d+1 x m) matrix holding in column m the coefficients for the m'th model: \(\lambda_1, ..., \lambda_n, c_0, c_1, ..., c_d\). In case squares==TRUE it is an (n+2d+1 x m) matrix holding additionally the coefficients \(c_{d+1}, ..., c_{d+d}\).

xp

matrix xp

d

size of the polynomial tail. If length(d)==0 it means no polynomial tail will be used for the model. In case of ptail==T && squares==F d will be dimension+1 and in case of ptail==T && squares==T d will be 2*dimension+1

npts

number n of points \(x_i\)

ptail

TRUE or FALSE (see description)

squares

TRUE or FALSE (see description)

width

the calculated width \(\sigma\)

type

"MQ"

Details

The linear equation system is solved via SVD inversion. Near-zero elements in the diagonal matrix \(D\) are set to zero in \(D^{-1}\). This makes rank-deficient systems numerically stable.

See Also

trainCubicRBF, predict.RBFinter, interpRBF