help-octave
[Top][All Lists]
Advanced

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

RE: diff(x) question


From: George White
Subject: RE: diff(x) question
Date: Tue, 19 Jan 1999 19:37:05 -0400 (AST)

On Tue, 19 Jan 1999, Van den Eynde Gert wrote:

> > Diff computes forward differences. Not the derivative. If you want to 
> > approximate the derivative by using forward differences you have to 
> > divide by the step h with which you make your function discrete.
> > In this case h = .1
> > 
> > 
> > df          f(t+h) - f(t)
> > -- (t) =~  --------------- + O(h)
> > dt                h
> > 
> 
> just want to update my previous answer.
> 
> I suggest to use a symmetrical formula
> 
> (f(t+h) - f(t-h))/(2h)
> 
> this gives an error of O(h^2) AND you can use Richardson extrapolation
> (extrapolation to the limit). IMHO, this is a good way to compute a
> numerical derivative.
> 
> Gert Van den Eynde

Neither of the above is appropriate for machine arithmetic.  For
example, the first formula above should replace "h" with "h2" as follows:

      tmp=t;t = t+h;h2 = t-tmp;t = tmp;

This is necessary since t+h will not, in general, be representable in
machine arithmetic.  The assignment of t to tmp is intended to remind the
reader that optimizing compilers may simplify away the necessary
distinction.  What does octave do with: 

       h2=(t+h)-t;

and will future version do the same?

--
George White <address@hidden> Halifax, Nova Scotia



reply via email to

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