R: Polyharmonic splines on scattered data

polyh {chebpol} | R Documentation

## Polyharmonic splines on scattered data

### Description

Polyharmonic splines on scattered data.

### Usage

    polyh(...)

### Arguments

`...` | Further arguments to the function, if `is.function(val)`.
`val` | array or function. Function values on scattered data, or the function itself.
`knots` | matrix. Each column is a point in an M-dimensional space.
`k` | positive integer or negative numeric. The degree of the polyharmonic spline.
`normalize` | logical, vector or matrix. Should coordinates be normalized?
`nowarn` | logical. Avoid warning about fallback to least squares fit.

### Details

`polyh` fits a polyharmonic spline with radial basis function `x^k` for odd `k`, and `x^k log(x)` for even `k`. If `k < 0`, the basis `exp(k x^2)` is used. There are more details in a vignette.

If `val` is a function it will be evaluated on the knots.

`normalize` can be used to change the scaling on the space. Set `normalize=TRUE` to do an affine transformation on the knots into the unit hybercube. The default is to transform if any of the knot-coordinates are outside the interval [0,1]. You may also specify `normalize` as an M x 2 matrix, where the columns a and b are used for the normalization: x -> a*(x-b). `normalize` can be set to a vector of length 2 `c(a, b)` if the same normalization should apply in each dimension. Set `normalize=FALSE` if you do not want any scaling.

### Value

A `function(x)` defined on the multidimensional space, approximating the given function.

### Examples

    ## Not run:
    # a function on a 20-dimensional space
    r <- runif(20)
    r <- r/sum(r)
    f <- function(x) 1/mean(log1p(r*x))
    # 1000 random knots
    knots <- matrix(runif(20000), 20)
    phs <- polyh(f, knots, 3)
    # test it in a random point
    s <- runif(20)
    c(true=f(s), phs(s))

    ## End(Not run)

[Package chebpol version 2.1-2 Index]