This is the mail archive of the gsl-discuss@sourceware.cygnus.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: numerical differentiation?


Hi Brian, Gerard,

I'm just not sure I see the point of requiring a domain to be defined
as a prerequisite for calculating a derivative.  Differentiation
depends on properties of a function in a neighborhood of the point at
which you want to know the derivative.  Sure, for integration you need
to know something about the function over the domain of integration,
but that's very different than the case for differentiation.  I've
looked and looked, but I can't find any implementation or discussion
of any algorithm which requires this.  The NAG routine D04AAF requires
you to specify an initial step size, as does the CERNLIB routine
DERIV, but neither requires you to specify a domain over which the
derivative is defined.  The discussion in Conte and de Boor says
nothing about domains.  The way to handle this is for the user to
choose between forward, backward or centered difference methods as
appropriate.

Besides, what domain would you specify?  Suppose I have a smooth
function with a discontinuous derivative, a cusp say, at each integer.
Now I want the derivative at x = 0.5.  Do I really have to tell the
routine that the derivative doesn't exist at x = 1,000,000?

Cheers,
Dave

Brian Gough wrote:
> 
> Regarding endpoint problems and singularities. In QUADPACK a similar
> situation occurs. It is handled by having two versions of the general
> integration function (QAG vs QAGP). One version assumes a well-behaved
> function which can be evaluated anywhere. The other version avoids
> using endpoints (in fact, it avoids a set of user-specified singular
> points).
> 
> For numerical derivatives it sounds as if you could have a similar
> setup.  One routine would be free to evaluate the function
> anywhere. Another routine would take a range as an argument and avoid
> the endpoints. In this way the routine can choose the type of
> derivative to use -- one-sided if the step-size would overshoot the
> end, but symmetric in the middle. Since the function will be varying
> the stepsize it may need to change its choice dynamically.

-- 
David Morrison  Brookhaven National Laboratory  phone: 631-344-5840
                Physics Department, Bldg 510 C    fax: 631-344-3253
		          Upton, NY 11973-5000  email: dave@bnl.gov

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]