|
From: | Brian Gladman |
Subject: | [Bug-gsl] [bug #39713] roots/secant.c "derivative value is not finite" for a good guess |
Date: | Wed, 02 Oct 2013 15:20:11 +0000 |
User-agent: | Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36 |
Follow-up Comment #6, bug #39713 (project gsl): In fact the problem arises because there is actually one condition where the solver can detect and defend against a root that has already been found and this is when the previous function value is exactly zero. And it is the failure of the root solver to detect exactly this condition that is the cause of the problem. I am coming to the conclusion that solvers should return one of two 'normal' values - GSL_SUCCESS when entered with a root that has already produced a funtion value of zero, and GSL_CONTINUE if they have not detected an end to the iteration in this way. This would allow a user to react to success immediately or to use a convergence test if continuation is suggested. There is also another issue I am thinking about - to use gsl_root_test_residual() for termination the user has to have a function value but function values are not returned to the user. So they are forced to evaluate the function on each loop and this doubles the number of function evaluations involved in finding the root. If I have this right, this doesn't seem sensible to me. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?39713> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/
[Prev in Thread] | Current Thread | [Next in Thread] |