Subject: [mg52708] Re: Using LevenbergMarquardt Method with a complicated function

From: algaba at alumni.uv.es (algaba)

Date: Thu, 9 Dec 2004 20:23:58 -0500 (EST)

References: <c42fu1475r5h@legacy>

Sender: owner-wri-mathgroup at wolfram.com

Hi.
I have defined a very long function like this:
ChiSquare[Per0_?NumericQ, Ppa0_?NumericQ, Ecc0_?NumericQ] :=
(some steps and definitions here)
ChiSQ = Sum[ResAlpha[[i]]^2 + ResDelta[[i]]^2, {i, 1, Length[
TExp]}] + Sum[ResAlphaComp[[i]]^2 +
ResDeltaComp[[i]]^2, {i, 1, Length[TComp]}]);
which tries to find the Chi-Square of an array of data. Now, I want to
minimize it and I use FindMinimum, which works well. The problem
arises when I want to use the Levenberg-Marquardt method, which seems
to be better for this kind of functions (As you can see, it is a sum
of squares) But when I run Mathematica 5 it gives me the next error
message:
FindMinimum::notlm: The objective function for the method
LevenbergMarquardt \
must be in a least-squares form: Sum[f[i][x]^2,{i,1,n}] or Sum[w[i] \
f[i][x]^2,{i,1,n}] with positive w[i].
I think the function accomplishes all the requirements. Why I get this
error? Is it maybe because of the long definition of the function? Is
it because Mathematica doesn't see this function as a sum of squares
but as a sequence of steps?
What can I do to solve this problem? I do want to use this method to
minimize the Chi-Square. Thanks.
******************************************
algaba at alumni.uv.es
Universitat de Valencia
Departamento de Astronomía y Astrofísica
******************************************