add contraints on parameters defined in function

3 views (last 30 days)
I have a function:
y =x.^a + z.^b
For which I wrote a separate function as I neet to fit it over my data. But I want to add constraint: a>b. How will I do that? Please help me with it. Thanks
  5 Comments
Torsten
Torsten on 19 Jan 2018
Use "lsqcurvefit" together with the model function y=Const*(x^(c1+c2)+z^c1) and include the bound constraint c2>0.
Once lsqcurvefit has determined c1 and c2, a=c1+c2 and b=c1 in your original model.
Best wishes
Torsten.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 19 Jan 2018
if a > b
y = x.^a + z.^b;
else
y = zeros(size(x));
end
  4 Comments
Giru Mishra
Giru Mishra on 20 Jan 2018
Thanks Walter and Torsten... It was really very helpful..
Matt J
Matt J on 20 Jan 2018
@Giru,
You should Accept-click the answer if it helped you.

Sign in to comment.

More Answers (0)

Categories

Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!