Nonlinear Least-Squares Fitting Help
Fleur Kelpin
fleur@bio.vu.nl
Wed Jun 12 15:54:00 GMT 2002
Hi, I am not sure if I understand you correctly but it seems to me that
in fact y = (Ar + Br)*cos(k*x) +(Bi - Ai)*sin(k*x). In this case the
parameters cannot be identified. Add one to Ar and subtract one from Br
and the fit is the same.
So you had better estimate compound parameters Ar+Br, Bi-Ai and k.
On Wed, 12 Jun 2002, Reid Nichol wrote:
> I have solved a differential equation with the gsl successfully and now am attempting to fit the plots back to the function to extract the constants used in solving the DE. As far as I can tell I have done everything to the specs required by the library. But, the numbers I get back are nonsense (except k) and it quits after attempting the first iteration.
>
> The code is attached along with the input data. Details follow.
>
>
>
> The function I have is
> y = Ar*cos(k*x) - Ai*sin(k*x) + Br*cos(k*x) + Bi*sin(k*x)
>
> which would mean that my fitting function is
> y = (Ar*cos(k*x) - Ai*sin(k*x) + Br*cos(k*x) + Bi*sin(k*x) - y_i)/sigma_i
>
> I am triing to solve for Ar, Ai, Br, Bi and k, so my Jacobian would be made up of
> dy/dAr = cos(k*x)/sigma_i
> dy/dAi = -sin(k*x)/sigma_i
> dy/dBr = cos(k*x)/sigma_i
> dy/dBi = sin(k*x)/sigma_i
> dy/dk = (-x*Ar*sin(k*x) - x*Ai*cos(k*x) - x*Br*sin(k*x) + x*Bi*cos(k*x))/sigma_i
>
> I get the numbers from x_init but with a +/- on the order of 10^34 except for k which comes out fine.
>
>
> I have checked my math multiple times and found no mistakes and I can't find an error in my code although it is obvious that one exists. I have spent alot of time on this and would appreciate any help!
>
> --
> If you truly love the memory, you must set it free()!
>
More information about the Gsl-discuss
mailing list