- Fixed bug in grid point cropping in
spfindopt used to find best optimization start point (added tolerance, fixed indices range).
- Fixed non-critical "Out of range value or NaN computed in integer arithmetic" warning occurring occasionally in the dimension-adaptive algorithm (seen in Matlab v22.214.171.1247, R2007a).
- Added new degree balancing strategy for improved handling of greedy, dimension-adaptive vs. conservative grid refinement. See Advanced Topics, Degree of Dimensional Adaptivity for more information.
- Fixed bug in dimension-adaptive spvals algorithm: in rare cases, an incorrect warning message was issued (reported 'no more active indices available' instead of 'maximum number of points reached prior to convergence').
- Added warning message when maximum supported depth for Chebyshev grid (level 10) is exceeded.
- Added full numerical integration capability for both regular and dimension-adaptive sparse grid interpolants. See Advanced Topics, Integration for more information.
- Added Gauss-Patterson grid type.
MaxDepth now also applies to the dimension-adaptive algorithm. If
MaxDepth is reached with respect to a coordinate direction, this direction is no longer refined further.
- Fixed bug in dimension-adaptive algorithm: level vector was not reset.
- Added efficient optimization algorithms specifically implemented to optimize sparse grid interpolants. See Advanced Topics, Optimization for more information.
- Modified augmented gradient computation for piecewise linear sparse grids to ensure that the gradient vector is
0 at an extremum.
- Improved allocation of grids points in the dimension-adaptive algorithm when handling very large dimensions
d > 100. The maximum problem dimension that can be handled is now
d = 65534.
- Fixed display of menus on Web page that occurred with Internet Explorer 7.
- Added support of calling
spinterp with the points to evaluate as a single matrix (special thanks to Daniel Harenberg for the suggestion and the provided code).
- Fixed bug in gradient computation that caused a wrong scaling of derivatives when range intervals were not equal to one (problem found and solved by Katrin Grau).
- Added capability of computing accurate gradient vectors. This can be done when evaluating the interpolant, at a small additional cost. This major enhancement is available for the Clenshaw-Curtis and the Chebyshev sparse grid, for both the regular and the dimension-adaptive algorithms. See Advanced Topics, Derivatives for more information.
- It is now possible to evaluate the Chebyshev sparse grid interpolant outside of the box range defined during the call to
spvals. This previously caused an error in the
barypdstep algorithm. However, doing this is usually not recommended, since, in most cases, the quality of the approximation decreases rapidly outside of the specified box.
- Fixed figure showing piecewise multilinear sparse grid types in the printed documentation (Chebyshev grid figure was shown twice instead).
- Fixed dimension-adaptive example in documentation (value for
DimadaptDegree argument in call to
spset was missing).
- Construction of hierarchical polynomial sparse grid interpolants using the fast discrete cosine transform. This new algorithm greatly improves the efficiency of the Chebyshev-type sparse grid in lower dimensions and the dimension-adaptive Chebyshev-type sparse grid when just few dimensions are important. See demo
- Purging algorithm. Optionally cleans up sparse grid interpolants from less important sub-grids to increase evaluation speed. See
- Added additional documentation on optimizing the performance of the Sparse Grid Interpolation Toolbox.
- Changed warning message that was displayed if the maximum number of points was reached prior to reaching the requested error tolerance when performing a dimension-adaptive interpolant construction with
spvals. It now displays the current error estimate and the target error tolerances.
- The private function
spcmpvalsccsp.m was missing the pre-allocation of
backvec, causing performance losses.
Compared to the previous major release V2.1.1, the following features have been added:
- Polynomial basis functions at the Chebyshev-Gauss-Lobatto sparse grid. Efficient implementation using Barycentric interpolation.
- Dimension-adaptive algorithm for the treatment of higher-dimensional problems (based on piecewise linear basis functions at the Clenshaw-Curtis grid and based on polynomial basis functions at the Chebyshev-Gauss-Lobatto grid).
- New data structure to store the interpolant's hierarchical surpluses that is especially efficient in case of higher-dimensional problems.
- Much improved documentation and extensive demo suite. The documentation now includes Matlab help browser support, HTML documentation of all functions, additional examples, and a help index.
Upgrade issues/backward compatibility
Please note the following minor changes affecting the user interface compared to the previous release V2.1.1:
- The toolbox now requires at least Matlab Version 7.0 (R14), since the toolbox makes heavy use of the integer data formats and integer arithmetic available since this Matlab release.
- To avoid naming ambiguity/conflicts, the initialization command was renamed from
- The structure generated by
spvals (usually denoted by
z) now stores the hierarchical surpluses
z.vals in the new, improved sparse data storage format. Therefore, manual accessing of the hierarchical surpluses of the sub-grids has to be done differently. However, the previous behavior of
spvals (i.e. in case of d = 2, n = 2, the hierarchical surpluses of the indices sub-grids with multi-index (0,2), (1,1), (0,2) were stored as the (n+1)th element of the cell array
z.vals) can be achieved by generating a sparse grid
OPTIONS structure with the switch
SparseIndices set to 'off' using the
- Version V3.0 beta used a default degree of dimensional adaptivity of 0.5 instead of the value 0.9 mentioned in the documentation. The private subroutine barypdstep.m used a non-initialized double array that caused a severe performance loss. (Fixed)
- Version V2.1.1 of the toolbox produced a non-critical "structure assignment warning" in Matlab Version 7 R14 SP2 during the call to