MathGroup Archive 2005

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

Search the Archive

Re: Approximating the function from its plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56131] Re: Approximating the function from its plot
  • From: Peter Pein <petsie at arcor.de>
  • Date: Sat, 16 Apr 2005 03:52:20 -0400 (EDT)
  • References: <d3o0dm$bn5$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Siddharth Jain wrote:
> Hello
> 
> I want find an approximate function for a ListPlot. Is it possible to
> do this using mathematica ?
> 
> Thanks
> Siddharth
> 
The method to use depends on whether the plot has been generated with
PlotJoined->True or False:

In[1]:= (* a simple example *)
  tb = Table[{x, Cos[x]}, {x, 0, Pi, Pi/5}];
  pl = ListPlot[tb];

(*extract the coordinates of the points*)
data = Cases[pl[[1]], Point[{x_, y_}] -> {x, y}];

In[3]:= (* verify result *)
  data == tb
Out[3]= True

If PlotJoined->True has been used, we need the coordinates that are used
by Line[]:

In[4]:= pl = ListPlot[tb, PlotJoined -> True, PlotStyle -> Red];
  data = Cases[pl[[1]], Line[lst_] -> lst, {0, Infinity}][[1]];
In[6]:= (* verification again: *)
  data == tb
Out[6]=  True

In[7]:= (* now build an interpolating function:*)
  f = Interpolation[data];
In[8]:= (* and show the result *)
  Show[Block[{$DisplayFunction = #1 & },
    Plot[f[x], {x, 0, Pi}]], pl];

-- 
Peter Pein
Berlin


  • Prev by Date: Re: Maping and Complex Addition
  • Next by Date: Re: Maping and Complex Addition
  • Previous by thread: Re: Approximating the function from its plot
  • Next by thread: Re: Approximating the function from its plot