GaussQR v2.1
comments/questions: Gregory Fasshauer <[email protected]>
Mike McCourt <[email protected]>
(previously referred to as RBF-QR 1.x in documentation)
********* NEWS *********
June 6, 2017
A LOT has happened since the last real push in this repository.
Both Greg and Mike have new jobs which has pushed up in new
and exciting directions. We now, however, have a desire to
start contributing new content, along with colleagues. To move
this project to a more portable location it will now primarily
be hosted on GitHub.
June 26, 2015
With the release of the text "Kernel-Based Approximation
Methods in MATLAB" in September 2015, the developers are
releasing a new version of this software with content
relevant to that book.
**************************
**** Basic Library Structure
Source code is kept in the source folder
Examples are kept in the examples folder
Book content is kept in the book folder
Files from external sources are kept in the fromothers folder
Experimental data is kept in the data folder (set in rbfsetup)
**** Basic Bootup Information
To run an example, you first boot up Matlab
Then, from the base gaussqr directory, run the setup:
>> rbfsetup
This makes sure the necessary files are in the path
If you so choose, you can create a startup.m file somewhere
on your base MATLAB directory which will be executed when
MATLAB starts. Including the commands
cd /path/to/gaussqr
rbfsetup
will start your MATLAB with GaussQR ready each time.
**** GaussQR Functionality Options
rbfsetup must always be called to prepare the directories for GaussQR.
You can use also use rbfsetup to set parameters for GaussQR; see the
file for a full list of possible parameters and default values.
After rbfsetup is called initially, you can manually access the
GaussQR object with
>> global GAUSSQR_PARAMETERS
and then set whatever parameter you'd like. If you do that, don't call
rbfsetup again or it will erase any changes you made.
**** Examples of GaussQR
After calling rbfsetup, you can run examples, including
>> ex1
The examples directory has 8 subdirectories
approximation - Approximate interpolation examples
bvps - Boundary value problem examples
dipole - MEG/EEG research
eig_appx - Approximate eigenfunction research
finitediff - Kernel-based finite difference examples
functionality - GaussQR function demonstrations
interpolation - Interpolation examples
parameterization - Parameterization (MLE,CV,etc) examples
Examples have been indexed by numbers across the directories,
but these numbers are not important and provide only a mechanism
for calling examples from the command line.
Examples with the same number and different letters are often
related in content/context.
List of examples:
interpolation
ex1 : Basic interpolation example
ex4 : Quality for different global parameters
ex8 : Analysis of stability for different parameters
ex9 : Computational cost demostration
ex17 : Analysis of boundary contributions in IBB kernels
parameterization
ex14 : Computation of cross-validation
ex14b : Computation of likelihood function
ex14c : Attempt to draw from posterior distribution
ex19 : 2D tensor product likelihood computation
ex19b : 2D comparison of likelihood/joint metric
ex19c : Stable parameterization on the sphere
ex19d : 4D comparison of likelihood/joint metric
functionality
ex3 : Computation with asymptotic Hermite polynomials
ex11 : Fast QR speed test (still in research)
ex11b : Eigenfunction recurrence presentation
ex11c : Analysis of accuracy and quality for fast QR
ex16 : Demonstration of pivoting in HS-SVD basis
ex18 : Demonstration of tensor product HS-SVD
finitedifferences
ex15 : Solution of Poisson equation
ex15b : Helmholtz equation, L-shaped domain
ex15c : Studies stencil size impact on derivative quality
eig_appx
research content only
dipole
research content only
bvps
ex5 : Basic 2-pt BVP solver with HS-SVD
ex10 : Demonstration of kernel solver as an MPS component
ex10b : Kernel-MPS solver for L-shaped domain
ex12 : Nonlinear diffusion equation
ex12b : Burgers equation, semi-linear time discretization
ex13 : Tensor product collocation grid
ex13b : Tensor product collocation grid, parameter analysis
ex20 : Confirmation of components of low rank cheap LOOCV
ex20b : Comparison of cheap LOOCV to true LOOCV
approximation
ex2 : Basic study of eigenfunction series length quality
ex2b : 2D eigenfunction series quality study
ex6 : Study of function complexity through series
ex7 : Analysis of epsilon on series computation
Function descriptions:
General Functions
errcompute : Computes the difference between two vectors
pick2Dpoints : Returns points spaced in a certain design in 2D
pickfunc : Returns a function for RBF testing
pickpoints : Returns points spaced in a certain design in 1D
pickRBF : Returns an RBF and maybe derivatives of it
ranksolve : Solves a system of the form (eye(n)+U*VT)*X=B
GaussQR Functions
computeUinvHermite : Computes a fast QR decomposition of the Hermite matrix
computeQReig : Fast QR decomp of the GQR eigenfunction matrix
gqr_alphasearch : Finds a good alpha for RBF-QR via orthogonality
gqr_formMarr : Orders the eigenfunction indices for stability
gqr_phi : Evaluates the eigenfunctions
gqr_eval : Evaluates an RBF-QR approximation
gqr_solve : Computes an RBF-QR interpolant
gqr_rsolve : Computes an RBF-QR regression
gqr_roots : Finds the roots of the eigenfunctions
gqr_solveprep : Checks passed arguments to confirm they are acceptable
HermiteAppx : Asymptotic approximation to Hermite polynomials
HermitePoly : Evaluates 1D Hermite polynomials
HermiteProd : Evaluates n-dim Hermite polynomials via tensor product
MaternQR Functions
BernoulliPoly : Evaluates the Bernoulli polynomials
cmatern : Evaluates a series approximation to Compact Materns
mqr_eval : Evaluate a MaternQR interpolant
mqr_phi : Evaluate the Compact Matern eigenfunctions
mqr_solve : Compute a Compact Matern interpolant
mqr_solveprep : Prepares for a Compact Matern interpolation
ppsplinekernel : Computes a piecewise polynomial spline interpolant
External function descriptions:
cheb : Produces the Trefethen Chebyshev differentiation matrix
DifferenceMatrix : Computes matrix of differences between nodes
DistanceMatrix : Computes matrix A_ij = ||x_i-x_j||
haltonseq : Generates an n-dimensional Halton sequence
sinc : Evaluates the function sin(x)/x
splinetx_natural : Finds and evaluates the natural cubic spline of data
wamdisk : Defines a WAM inside a 2D disk
wamquadrangle : Defines a WAM inside a parametrized quadrangle