Asked by abxz
on 12 Nov 2019

and

a,k,c,b, and g are constants to be determined.

Answer by Alex Sha
on 13 Nov 2019

Accepted Answer

d(K/ (1+exp(c-b*t)))/dt=k*exp(c-b*t)*b/sqr(1+exp(c-b*t)),so your fitting function become:

is the above correct? if yes, you may see the function is over-fit, that means the parameters will not be unique， one solution likes below:

Root of Mean Square Error (RMSE): 11257.9862380487

Sum of Squared Residual: 1647649303.76923

Correlation Coef. (R): 0.891727403408187

R-Square: 0.795177761989108

Adjusted R-Square: 0.726903682652144

Determination Coef. (DC): 0.795103266693536

F-Statistic: 7.64708134900884

Parameter Best Estimate

-------------------- -------------

a 67082.9685482823

k 2.55264230357405E16

c 39.1820152654189

b 0.0511178327965598

g 1.74671169710137E-249

KALYAN ACHARJYA
on 13 Nov 2019

@Alex

Why you are providing the two answers?

You can add the modified answer as a comments in the first answer.

abxz
on 13 Nov 2019

@ Alex Sha, Thanks a lot for your help.

will you please provide the code also.

Sign in to comment.

Answer by Alex Sha
on 12 Nov 2019

abxz
on 12 Nov 2019

@Alex Sha , will you please help out with code.

abxz
on 13 Nov 2019

@Alex Sha , will you please help out with code.

abxz
on 13 Nov 2019

@ Alex Sha , Please send code . I need code so if i have to do similar kind of fitting , i can take the help from the code.

Thank you.

Sign in to comment.

Answer by Alex Sha
on 14 Nov 2019

Hi， Yadav, I actually use a software package other than Matlab, named 1stOpt, it is much easy for using without guessing initial start-values, since it adopts global optimization algorithm. The code looks like below:

Parameter a,k,c,b,g;

ConstStr f=a*(k*exp(c-b*t(i))*b)/(1+exp(c-b*t(i)))^2;

Variable t,z[OutPut],y;

StartProgram [Basic];

Sub MainModel

Dim as integer i, j, n

Dim as double temd1, temd2

for i = 0 to DataLength - 1

n = t(i)

temd1 = 0

for j = 0 to n

temd1 = temd1 + f

next

temd2 = 0

for j = 0 to n

temd2 = temd2 + g*y(j)

next

z(i) = temd1 + temd2

Next

End Sub

EndProgram;

Data;

t=[0,2,4,6,8,10,12,14,16,18,20,22,24];

z=[0,0,666.6,5333.33,10666.6,21333,42666.6,4666.6,42666.6,42666.6,42666.6,42666.6,85333.3];

y=[1.25*10^8,1.*10^8,1.25*10^8,2.2*10^10,1.3*10^11,1.4*10^11,1.25*10^11,4.7*10^10,7.9*10^10,9.5*10^10,9.4*10^10,8.8*10^10,9.4*10^10];

a much better result:

Root of Mean Square Error (RMSE): 9901.69220512954

Sum of Squared Residual: 1274565610.8266

Correlation Coef. (R): 0.918681151445272

R-Square: 0.84397505802081

Adjusted R-Square: 0.791966744027747

Determination Coef. (DC): 0.841498837497943

F-Statistic: 9.7840155772957

Parameter Best Estimate

-------------------- -------------

a -277156.527610417

k -10698197.9029827

c 28.5533367811484

b 0.35649699061682

g 3.06293808255498E-8

KALYAN ACHARJYA
on 14 Nov 2019

Alex Sha
on 14 Nov 2019

Sorry for giving multi-answers.

1stOpt is an independent software package I think, not the add-in or toolbox of Matlab.

abxz
on 15 Nov 2019 at 15:22

@ Alex Sha , Thank you so much.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 4 Comments

## KALYAN ACHARJYA (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/490586-how-to-curve-fit-following-summation-equation-in-matlab-with-given-experimental-data#comment_766319

## abxz (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/490586-how-to-curve-fit-following-summation-equation-in-matlab-with-given-experimental-data#comment_766322

## abxz (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/490586-how-to-curve-fit-following-summation-equation-in-matlab-with-given-experimental-data#comment_766596

## KALYAN ACHARJYA (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/490586-how-to-curve-fit-following-summation-equation-in-matlab-with-given-experimental-data#comment_766727

Sign in to comment.