Fit curve to data with constraints

2 views (last 30 days)
Justin Solomon
Justin Solomon on 27 Nov 2012
I have some function, f(x) that I want to fit to some measured data. Say for example that f(x)=a*x^2+b*x+c. Is there a way to constrain the fit such that f(x)>=0? In other words, any combination of a,b,c that will result in f(x) being negative (within limits of x that I define) I don't want.
Here I have given a simple example where f(x) is just a second order polynomial of one variable. In this simple case above I could set limits on a,b, and c such that f(x)>0, however, the f(x) that I am actually fitting to the data is much more complex. I am currently using the cftool to do the fit. I also have some experience using the fit(), and lsqnonlin(). Any suggestions or ideas?

Answers (1)

Matt J
Matt J on 27 Nov 2012
Edited: Matt J on 27 Nov 2012
This FEX function claims to be able to provide such constraints, though I haven't verified it first hand
It requires the Optimization Toolbox, however, and it forces you to do the fit using spline models.
  1 Comment
Justin Solomon
Justin Solomon on 3 Dec 2012
Thanks for the suggestion. It looks like this function is only able to do fits with one independent variable. I have several (i.e., f(x1,x2,x3,...). Otherwise, I think this might work.

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!