I am trying to fit the following data (called TflogqIND
):
TflogqIND={{0., 36.4886}, {Log[2]/Log[10], 37.1485}, {Log[5]/Log[10],
38.3859}, {1, 39.2263}, {Log[20]/Log[10], 39.8772}, {Log[30]/
Log[10], 40.0107}}
to the following equation:
eqn = ((log10q - Log10[qref]) ==
c1*(Tfp - Tfpref)/(c2 + (Tfp - Tfpref))); (*WLF equation*)
model = Tfp /. Solve[eqn, Tfp][[1]] // FullSimplify;
constIND = {Tfpref -> 39.2263,
qref -> 10};
modelIND = model /. (constIND // Rationalize) // FullSimplify;
nlmIND = NonlinearModelFit[
TflogqIND, {modelIND, c1 > 5, c2 > 5}, {c1, c2}, log10q];
As you can see from plotting:
Show[ ListPlot[TflogqIND, PlotMarkers -> Style[\[FilledSquare], 18, Red], Frame -> True, Axes -> False, FrameStyle -> 16, LabelStyle -> {Black, Bold, 10}, ImageSize -> Large, GridLines -> Automatic, GridLinesStyle -> Lighter[Gray, .8], PlotRange -> All], Plot[nlmIND[log10q], {log10q, 0, 1.4}, PlotStyle -> {Red, Dashed}]]
The model seems to describe the data well. However, the parameters (obtained from nlmIND["BestFitParameters"]
with {c1 -> 1331.87, c2 -> 3520.53}) don't make any sense. Usually c1 and c2 parameters are from 1 to around 100 or 200 at the most.
I think there must be a mistake somewhere but I cannot see it. How can I fix the model to give better c1 and c2 values and better describe the data using that equation?
c1
andc2
parameters are from 1 to around 100 or 200 at the most." - then you should have put a constraint like that in your fit, no?{modelIND, 200 > c1 > 5, 200 > c2 > 5}
Also, you would still want a way to figure out good initial values for these parameters. $\endgroup$c1
can be found in terms ofc2
but then the mean square error keeps getting smaller for increasing values ofc2
. I'll write up the details tomorrow as it's too late at night for me to do so now. $\endgroup$