Add constants in nlinfit

8 views (last 30 days)
Silke
Silke on 21 Dec 2017
Commented: Star Strider on 22 Dec 2017
Hi there,
is there a way that I provide nlinfit with some constants that are taken into account when solving a function?
So, for example, I use this code for nlinfit:
[xfit,resnorm, Jacob, CovB, MSE] = nlinfit( handles.timecorr,handles.datacorr',@DiffEqSolver300, B );
I would like to give another set of parameters to the function DiffEqSolver300 that should not be fitted, but they depend on calculations that happens before I call the nlinfit function. Is this somehow possible?
Just a simple example. Let's assume the function that should be fitted is
y = A*x + B;
Depending on some input parameters, A could be 1 or 10 or 100 and B is a fitting parameter. How can I tell the function which value A should have?

Accepted Answer

Star Strider
Star Strider on 21 Dec 2017
Edited: Star Strider on 21 Dec 2017
Writing your own objective function, you simply need to pass ‘A’ as a parameter.
Example
objfcn = @(B,x,A) A*x + B;
then call it in nlinfit as:
beta = nlinfit(x, y, @(B,x) objfcn(B,x,A), ... );
so that ‘objfcn’ accepts ‘A’ as a parameter, and the function works with nlinfit as it would if no additional parameters were passed.
  6 Comments
Silke
Silke on 22 Dec 2017
Thanks for your help. Indeed, it is working now. I had an error in DiffEqSolver300.
Star Strider
Star Strider on 22 Dec 2017
As always, my pleasure.

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!