Biexponential fitting (non-linear regression)on Matlab

30 views (last 30 days)
Hi,
I have a problem whereby I need to fit a biexponential model to some data. I'm quite new to Matlab and the code is currently beyond my skill set.
The equations I need to complete are below, any help would be greatly appreciated. The full reference of the paper is: Maciejewski, H., Bourdin, M., Lacour, J. R., Denis, C., Moyen, B., & Messonnier, L. (2013). Lactate accumulation in response to supramaximal exercise in rowers. Scandinavian journal of medicine & science in sports, 23(5), 585-592.
Regards,
Ashley
  1 Comment
Rik
Rik on 22 Mar 2017
Just a hint: try to reduce the content of the paper to the bare minimum, otherwise people may give this link, instead of ignoring the unnecessary details.

Sign in to comment.

Answers (1)

Rik
Rik on 22 Mar 2017
So you have a list of (La,t) combinations? With fittype you can tell Matlab what function it should fit to.
La0=La(t==0);
ft = fittype(sprintf('%e+A1*(1-exp(-gamma1*t))+A2*(1-exp(-gamma2*t))',La0),...
'independent','t','dependent', 'La' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.Lower = [0 0 0 0];%lower bounds (A1, gamma1, A2, gamma2)
opts.StartPoint = [1 1 1 1];
[fitresult, gof] = fit( t, La, ft, opts );
PS I expect you will need the curve fitting toolbox to use these functions
PPS I expect there is a better way to tell Matlab to treat La0 as a value from the workspace, but this will work. Maybe generating an anonymous function would be more elegant.
  1 Comment
Ashley Richardson
Ashley Richardson on 22 Mar 2017
Thanks for your help Rik,
Yes we have a list of (La,t) combinations. I don't have the curve fitting toolbox currently, but will work through your solution and try on the free trial of the toolbox (before purchase)if it doesn't work on the standard licence.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!