regularizeNd
regularizeNd Fits a nD lookup table with smoothness to scattered data. Constraints are possible.
regularizeNd answers the question what is the best possible lookup table that the scattered data input x and output y in the least squares sense with smoothing? regularizeNd is meant to calculate a smooth lookup table given n-D scattered data. regularizeNd supports extrapolation from a scattered data set.
The calculated lookup table, yGrid, is meant to be used with griddedInterpolant class with the conservative memory form. Call griddedInterpolant like
xGrid = cell array of grid vectors
smoothness = smoothness value or vector
yGrid = regularizeNd(xData, yData, xGrid, smoothness);
F = griddedInterpolant(xGrid, yGrid).
Desirable properties of regularizeNd:
-Calculates a relationship between the input x and the output y without definition of the functional form of x to y.
-Often the fit is superior to polynomial type fitting without the wiggles.
-Extrapolation is possible from a scattered data set.
-After creating the lookup table yGrid and using it with griddedInterpolant, as the query point moves away from the scattered data, the relationship between the input x and output y becomes more linear because of the smoothness equations and no nearby fidelity equations. The linear relationship is a good choice when the relationship between x and y is unknown in extrapolation.
-regularizeNd can handle 1D, 2D, nD input data to 1D output data. RegularizeData3D and gridfit can only handle 2D input and 1D out (total 3D).
-regularizeNd can handle setting the smoothness to 0 in any/some axis/dimension. This means no smoothing is applied in a particular axis/dimension and the data is just a least squares fit of a lookup table in that axis/dimension. Note this is not recommended and often can lead to an ill-conditioned fitting problem. However, I have found it useful so I left this as an option.
- Constraints are possible with the function regularizeNdMatrices. See the example.
The source code is locate here:
https://github.com/jasonnicholson/regularizeNd
For an introduction on how regularization of a lookup table works, start here: https://mathformeremortals.wordpress.com/2013/01/29/introduction-to-regularizing-with-2d-data-part-1-of-3/
Acknowledgement
Special thanks to Peter Goldstein, author of RegularizeData3D, for his coaching and help through writing regularizeNd.
인용 양식
Jason Nicholson (2023). regularizeNd (https://www.mathworks.com/matlabcentral/fileexchange/61436-regularizend), MATLAB Central File Exchange. 검색됨 .
MATLAB 릴리스 호환 정보
플랫폼 호환성
Windows macOS Linux카테고리
태그
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Examples
Examples/From RegularizeData3D
Examples/From gridfit
doc
버전 | 게시됨 | 릴리스 정보 | |
---|---|---|---|
2.4.0 | Added a function to auto-generate monotonic constraints, monotonicConstraint.m. It should help problem setup creating constraint matrices. |
|
|
2.3.1 | Added readme's for a simple explanation.
|
|
|
2.3.0 | Updated examples.
|
|
|
2.2.5 | Added better documentation of lsqConstrainedAlternative. The documentation is integrated into the MATLAB help system. |
|
|
2.2.2 | Updated direct vs. iterative solver example. |
|
|
2.2.1 | Fixed a problem with one of the examples. |
|
|
2.2.0 | The documentation loads into MATLAB builtin documentation under Supplemental Software. Attached is a toolbox file. |
|
|
2.1.2 | Added a basic getting started file. |
|
|
2.1.1 | Fixed an issue with a missing graph in the documentation. |
|
|
2.1 | Had to convert all the documentation and examples to live scripts because File Exchange wasn't displaying the published m files. UGH! |
|
|
2.0 | - Added constraints and documentation. This is a major change. The new function is regularizeNdMatrices. See the examples for more information.
|
|
|
1.8.0.0 | Just renaming the project dropping jasonhnicholson/
|
||
1.7.0.0 | Added a 1D example.
|
||
1.6.0.0 | Fixed a spelling mistake in the gridfit examples.
|
||
1.5.0.0 | More updates to the examples.
|
||
1.4.0.0 | -Added several examples.
|
||
1.3.0.0 | Added support for cubic interpolation. This is a major step. All of the interpolation methods that I intended to use are implemented.
|
||
1.2.0.0 | Updating the description.
|
||
1.1.0.0 | Fixed a bug I introduced in the last week. |
||
1.0.0.0 | I just uploaded the single m file instead of attaching the repository like when it is connected to github.
|