help-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gsl] Nonlinear Least-Squares Fitting


From: Patrick Alken
Subject: Re: [Help-gsl] Nonlinear Least-Squares Fitting
Date: Thu, 11 Jan 2018 09:44:31 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

Hello,

  Yes this is a bug, thanks for reporting it. The problem was I had defined the time variable to be in [0, N], where N is the number of points to fit. Then, for some values of N, after the first iteration the solver finds a negative value for lambda, and so exp(-lambda * N) gets very large, resulting in nan values in the expb_f function.

  I have now replaced the time variable with:

t_i = i * TMAX / (N - 1)

so that t \in [0,TMAX] and you can increase N to anything you want. I left TMAX = 40. I will update the example program in the repository. In the meantime I have attached the corrected source code. I tested it up to N = 1000. Please let me know if you have any further problems.

Thanks,
Patrick

On 01/11/2018 04:50 AM, Anna Russo Russo wrote:
Hi!

I've run the "Exponential Fitting Example", from the GSL 2.4 documentation,
and I noticed that, if the number of data points is greater than 56, the
solver terminates with status "exceeded max number of iterations". It
happens even if I allow it to perform a considerably larger number of
iterations: after the first iteration the parameters are so different from
the right ones that the value of the function to be minimized is 'nan' and
they don't change in the next iterations.

What may be the cause for this behavior?

Thanks for reading,

Anna


Attachment: nlfit.c
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]