MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: how can one use mathematica get the approximate derivative of {x,y} data points?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124297] Re: how can one use mathematica get the approximate derivative of {x,y} data points?
  • From: Murray Eisenberg <murray at math.umass.edu>
  • Date: Mon, 16 Jan 2012 17:08:45 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Using Interpolation to find an interpolation function for the discrete 
{x,y} data points is begging the question: what method of numerical 
approximation should one use.

Unlike with numerical integration, good numerical differentiation is a 
very delicate matter.  There are all kinds of schemes for doing it, from 
the very naive to the more sophisticated. The difficulty is that the 
methods are generally unstable: reducing the step-size to control 
truncation error typically allows the roundoff error to grow.

At least, one must worry about what Interpolation is actually doing. The 
difficulty is perhaps highlighted by several features of this function:

  - you may specify in the argument not just the {x,y} values but also 
the intended values of the derivative at the x-values;

  - the option InterpolationOrder allows you to specify what order 
polynomials are used to interpolate (the default order being 3); and

  - interpolation has a Method option.

In practice, Richardson extrapolation is often used for numerical 
differentiation. There's a nice introduction to this in Skeel and 
Kuiper's book "Elementary Numerical Computing with Mathematica."

All that said, for the purposes of the O.P., naively using Interpolation 
may suffice.


On 1/14/12 5:10 PM, Bob Hanlon wrote:
> data = {#, Cos[#]}&  /@ RandomReal[{0, 2 Pi}, 20];
>
> f = Interpolation[data];
>
> Plot[{f[x], f'[x]}, {x, Min[data[[All, 1]]], Max[data[[All, 1]]]}]
>
>
> Bob Hanlon
>
>
> On Sat, Jan 14, 2012 at 2:53 AM, Michael B. Heaney<mheaney at alum.mit.edu>  wrote:
>> Hi,
>>
>> I have a set of {x,y} data points:
>>
>>   {{0.03512, -0.5}, {0.0351181, -0.499}, ... {-0.113972, 0.699}, {-0.115072,
>> 0.7}}
>>
>> These data points look like a function y=f(x) when plotted on the x-y axes.
>> However, I do not know what the function f(x) is. But I need to get the
>> approximate derivative df/dx, as another set of data points. How can one
>> use Mathematica to do this?
>>
>> Thanks,
>>
>> Michael
>>
>

-- 
Murray Eisenberg                     murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305



  • Prev by Date: Locator points not working in Manipulate calling RegionPlot, etc.
  • Next by Date: Re: How to check whether an infinite set is closed under addition?
  • Previous by thread: Re: how can one use mathematica get the approximate derivative of {x,y} data points?
  • Next by thread: Re: how can one use mathematica get the approximate derivative of {x,y} data points?