Biexponential fitting (non-linear regression)on Matlab

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

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)

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

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.

Categories

Asked:

on 22 Mar 2017

Commented:

on 22 Mar 2017

Community Treasure Hunt

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

Start Hunting!