# Biexponential fitting (non-linear regression)on Matlab

81 views (last 30 days)
Ashley Richardson on 22 Mar 2017
Commented: Ashley Richardson on 22 Mar 2017
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
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.

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.
Ashley Richardson on 22 Mar 2017