Nonlinear fitting n-dimensional data with arbitrary functions

Demonstrates the abilities of Matlab functions lsqcurvefit, fmincon and fminsearch to fit complex mo
4.1K Downloads
Updated 23 Jul 2008

View License

How to fit a 2D Gaussian function to noisy data in Matlab? Or data with another number of dimensions and arbitrary fit function?

It took me a while to find out how Matlab does this by the functions lsqcurvefit, fmincon or fminsearch. This project demonstrates how to use these functions to fit ND data with ND functions. Several tests are compiled in the file fit_test.m. Reading and trying out this file will explain a lot.

fit_nl.m and fit_nl_ex.m are written around the matlab functions lsqcurvefit/ fmincon/fminsearch. Additionally: parameters can be set fixed or some built-in functions (Gaussians, Lorentzians) can be used (see fit_func.m). However the set of built-in functions is pretty special.

fmincon/fminsearch can even be used to solve maximum likelihood parameter estimation problems other than for gaussian noise (least squares). An example is included for Poissonian noise in fit_nl_ex.m. Although this is often the case in imaging, this part is also quite special. If You have questions about these problems, ask here!

Cite As

Jan Keller (2024). Nonlinear fitting n-dimensional data with arbitrary functions (https://www.mathworks.com/matlabcentral/fileexchange/20540-nonlinear-fitting-n-dimensional-data-with-arbitrary-functions), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Nonlinear Optimization in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0

Some bugs, better help, more comments, error checks, a better test routine and a little bit more features ... version 2.