Fitting data using FindMinimum. Different Output in version 5.x and 4.2
- To: mathgroup at smc.vnet.net
- Subject: [mg52330] Fitting data using FindMinimum. Different Output in version 5.x and 4.2
- From: guillerm at aida.usal.es (Guillermo Sanchez)
- Date: Tue, 23 Nov 2004 02:12:50 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Dear group,
I find different Outputs fitting data using FindMinimum (Math 5.0 and
5.1) vs Math 4.2
Here is an example but I have more:
I wish fit the experimental data given by dataPhysio with
InverseLaplaceTransform[X1[s, kon, koff] to estimate koff and kon. I
apply the method that follow
dataPhysio = {{0.03, 27.5}, {0.08, 48.61}, {0.28, 133.39}, {0.33,
106.18}, {0.38, 92.11}, {0.48, 60.47}, {0.55, 56.54}, {0.65, 27.73},
{0.75, 23.25}, {0.85, 15.83}, {0.95, 13.82}, {1.05, 10.58}, {1.15,
7.83},
{1.25, 7.35}, {1.35, 6.08}, {1.45, 5.21}, {1.6, 4.18}, {1.8, 3.48},
{2.,2.86}, {2.2, 2.42}, {2.4, 2.11}, {2.6, 2.01}, {2.8, 1.7}, {3.,
1.58}, {3.4, 1.58}, {3.75, 1.44}, {4.25, 1.35}, {4.75, 1.3}, {5.25,
1.29},
{6.75, 0.81}, {7.25, 0.78}, {7.75, 0.73}, {8.25, 0.75}, {11., 0.68}};
X1[s_] = (40001*(0.423334*koff + 0.423334*s + koff*s + kon*s + s^2))/
((11.15 + s)^2*(1.305*koff + 1.305246*s + 6.296*koff*s + 5.87*kon*s +
6.296*s^2 + 1.*koff*s^2 + kon*s^2 + s^3));
sse2[(koff_)?NumberQ, (kon_)?NumberQ] := Block[{sol, q2}, q2[t_] =
InverseLaplaceTransform[X1[s], s, t]; Plus @@ Apply[(q2[#1] - #2)^2 &
, dataPhysio, {1}]];
FindMinimum[sse2[koff, kon], {koff, 0.3}, {kon, 0.7}, MaxIterations ->
50]
(* I receive in versio 5.1 this message:
FindMinimum::"fmgz": "Encountered a gradient which is effectively
zero. The result returned may not be a minimum; it may be a maximum or
a saddle point",
{612.483, {koff -> 0.3, kon -> 0.7}} *)
However in version 4.2 I obtain {koff -> 0.09748, kon -> 0.671}.
It can be obverved that is a good fit
Plot[Evaluate[InverseLaplaceTransform[X1[s] /. {koff -> 0.09748, kon
-> \
0.671}, s, t]], {t, 0, 11}, Epilog -> Map[Point, dataPhysio]];
Any explication?
Guillermo