GithubHelp home page GithubHelp logo

ljuillen / gaussqr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mikemccourt/gaussqr

0.0 1.0 0.0 4.33 MB

Tools for computation with positive definite kernels (RBFs) in approximation, optimization and PDEs

License: MIT License

MATLAB 100.00%

gaussqr's Introduction

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

gaussqr's People

Contributors

mikemccourt-sigopt avatar rcavoret avatar yurovaa avatar fasshauer avatar leevanling avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.