How to fit regression

1 view (last 30 days)
John fredson
John fredson on 20 May 2022
Commented: Bjorn Gustavsson on 20 May 2022
I have a equation y = Ae^-Bx, how to polyfit it and find A and B?

Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 20 May 2022
This is not a polynomial, therefore you cannot use polyfit. You can seamlessly use any least-square fitting routine to fit your 2 parameters. For example something like this:
mod_fcn = @(pars,x) pars(1)*exp(-pars(2)*x); % Describes your model y = A*exp(-B*x)
err_fcn = @(pars,x,y,sigma_y,m_fcn) sum((y(:)-m_fcn(pars,x(:))).^2./sigma_y^2);% general sum-of-squares function
par0 = [1 1]; % initial guess
parbest = fminsearch(@(pars) err_fcn(pars,x,y,ones(size(y))),par0); % least-square fitting
You can sometimes get far better performance with lsqnonlin. Check the help and documentation for that function and fminsearch.
HTH
  2 Comments
Bjorn Gustavsson
Bjorn Gustavsson on 20 May 2022
Yes, if you mean your topspin.txt file. Just use the time in the first column for x (or more neatly replace x with t in my code-snippet) and set y to the rotational speed in the second column.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!