Biexponential fitting (non-linear regression)on Matlab
Show older comments
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
Answers (1)
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
on 22 Mar 2017
Categories
Find more on Linear and Nonlinear Regression in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!