help-gsl
[Top][All Lists]
Advanced

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

Re: [Help-gsl] Question about one dimensional root finding.


From: Rhys Ulerich
Subject: Re: [Help-gsl] Question about one dimensional root finding.
Date: Wed, 12 Sep 2012 16:40:22 -0500

> 2. This one works fine with some parameter set but makes error with other
> parameter sets ( gsl: newton.c:88: ERROR: function value is not finite) and
> make an exit.
>
> 3. I'd like to set the value of "x (root)" as 0 when it make error with
> certain parameters and proceed to next iteration without make an exit.
>
> How can I solve this problem.

You'll need to register a custom error handler.  See the Error
handling section of the manual [1] and in particular the section on
custom error handlers [2].  You'll probably want to create an error
handler that records the error code in a static location and then
returns.  Then call gsl_root_fdfsolver_newton as you do now.  When an
infinite value is encountered GSL will invoke your error handler.
Your error handler will record the infinite value and return.  Then
gsl_root_fdfsolver_newton will return.  Now your code can check if the
infinite condition was encountered and replace the "root" returned by
gsl_root_fdfsolver_newton with 0.

[1] http://www.gnu.org/software/gsl/manual/html_node/Error-Handling.html
[2] http://www.gnu.org/software/gsl/manual/html_node/Error-Handlers.html

Hope that helps,
Rhys



reply via email to

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