FindFit with constraints is slow
- To: mathgroup at smc.vnet.net
- Subject: [mg89207] FindFit with constraints is slow
- From: Matt.Latourette at rad.msu.edu
- Date: Thu, 29 May 2008 07:04:49 -0400 (EDT)
I'm using FindFit to fit the parameters of an exponential decay. I'd
like to include constraints to force the output parameters to be non-
negative since negative values do not make any sense in the real world
situation being modeled. The FindFit operation occurs within a
function that is called many times. However, when I do this the total
computation time increases drastically (by 3 orders of magnitude).
Any thoughts on why the version with constraints is so incredibly
slow?
The original code:
FindFit[OrderedPairList, \
Global`M0*Exp[-Global`R2Star*t], {{Global`M0, initM0}, \
{Global`R2Star, initR2Star}}, {t}, MaxIterations->500, \
Method->Automatic, \
AccuracyGoal->3, PrecisionGoal->3, \
WorkingPrecision->MachinePrecision]
The code with constraints:
FindFit[OrderedPairList, \
{Global`M0*Exp[-Global`R2Star*t], Global`R2Star>=0, \
Global`M0>=0}, \
{{Global`M0, initM0}, {Global`R2Star, initR2Star}}, \
{t}, MaxIterations->500, Method->Automatic, \
AccuracyGoal->3, PrecisionGoal->3, \
WorkingPrecision->MachinePrecision]
where OrderedPairList represents data of the form {{x1, y1}, {x2,
y2}, ... {xn, yn}} where the x's and y's are floats and initM0 and
initR2Star are real-valued constants.