R: Fields supporting functions

fields-stuff {fields} | R Documentation

## Fields supporting functions

### Description

Some supporting functions that are internal to fields top level methods. Variants of these might be found in the R base but these have been written for cleaner code or efficiency.

### Usage

    fields.diagonalize2(A,B, verbose=FALSE)
    fields.diagonalize(A,B)
    fields.duplicated.matrix(mat, digits = 8)

    fields.mkpoly(x, m = 2)

    fields.derivative.poly(x, m,dcoef)

    fields.evlpoly( x, coef)

    fields.evlpoly2( x, coef, ptab)

### Arguments

`A` | A positive definite matrix
`B` | A positive definite matrix
`mat` | Arbitrary matrix for examining rows
`digits` | Number of significant digits to use for comparing elements to determine duplciate values.
`x` | Arbitrary matrix where rows are components of a multidimensional vector
`m` | The null space degree – results in a polynomial of degree (m-1)
`dcoef` | Coefficients of a multidimensional polynomial
`coef` | Polynomial coefficients.
`ptab` | Table of powers of different polnomial terms.
`verbose` | If TRUE prints condition number of A+B

### Details

Given two matrices A (positive definite) and B (nonnegative definite) `fields.diagonalize` and `fields.diagonalize2` finds the matrix transformation G that will convert A to a identity matrix and B to a diagonal matrix:

G\^T A G= I G\^T B G= D.

`fields.diagonalize2` is not as easy to follow as `fields.diagonalize` but may be more stable and is the version used in the Krig engine.

`fields.duplicated` finds duplicate rows in a matrix. The digits arguments is the number of digits that are considered in the comparison. The returned value is an array of integers from 1:M where M is the number of unique rows and duplicate rows are referenced in the same order that they appear as the rows of `mat`.

`fields.mkpoly` computes the complete matrix of all monomial terms up to degree (m-1). Each row of `x` is are the componets of a vector. (The fields function mkpoly returns the number of these terms.) In 2 dimensions with m=3 there 6 polynomial terms up to quadratic ( 3-1 =2) order and will be returned as the matrix:

cbind( 1 , x[,1], x[,2], x[,1]**2, x[,1]*x[,2], x[,2]**2 )

This function is used for the fixed effects polynomial or spatial drift used in spatial estimating functions Krig, Tps and mKrig. The matrix ptab is a table of the powers in each term for each variable and is included as an attribute to the matrix returned by this function. See the `attr` function for extracting an attribute from an object.

`ptab` for the example above is

        [,1] [,2]
    [1,]    0    0
    [2,]    1    0
    [3,]    0    1
    [4,]    2    0
    [5,]    1    1
    [6,]    0    2

This information is used in finding derivatives of the polynomial.

`fields.deriviative.poly` finds the partial derivative matrix of a multidimensional polynomial of degree (m-1) at different vector values and with coefficients `dcoef`. This function has been orgainzed to be a clean utility for the predicting the derivative of the estimated function from Krig or mKrig. Within the fields context the polynomial itself would be evaluated as fields.mkpoly( x,m)%*%dcoef. If x has d columns ( also the dimension of the polynomial) and n rows the partial derivatives of this polynomial at the locations x can be organized in a nXd matrix. This is the object returned by ths function.

`evlpoly` and `evlpoly2` are FORTRAN based functions for evaluating univariate polynomials and multivariate polynomials. The table of powers (ptab) needed for evlpoly2 is the same format as that returned my the fields.mkpoly function.

### Author(s)

Doug Nychka

### See Also

Krig, Tps, as.image, predict.Krig, predict.mKrig, Krig.engine.default, Wendland

[Package fields version 9.6.1 Index]