Generates samples from a Gaussian process.
samp = ogpsample(x, approx, kxx, kxbv, rseed);
ogpsample(x)
takes a GLOBAL Spase OGP data structure net
together with a matrix x
of input vectors and returns a matrix of
realisations of the marginal Gaussian distribution at the inputs x
samp = ogpsample(net, x, approx)
,with the binary
indicator approx
set to nonzero,samples from a restricted subspace by
inverting only the covariance matrix correpsonding to the BV set and
ignoring the Schuur complement of Kxx
with respect to Kbv
.
samp = ogpsample(net, x_inputs, approx, kxx, kxbv)
uses the
pre-computed prior covariance matrices kxx
and kxbv
to generate
the samples. This increases efficiency if several calls to ogpsample
are made.
The time required for this sampling procedure is cubic with respect to the size of the inputsdue to the inversion of the covariance matrix. Use it with caution.
If approx
is used, then there are ``only'' as many random variables
generated as many BV
points are in the Gaussian process structure
net
, meaning that matrix inversion of the size of the BV
set is
to be performed.
samp = ogpsample(net, x, approx, kxx, kxbv, rseed)
includes the option
of specifying the seed for the random number generator. Used to generate the
same random numbers in repeated samples -- for different kernels. If the
matrices are not computed, then empty matrices []
should be used instead.
Copyright (c) Lehel Csató (2001-2004)