Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Plot function at specific points

  • To: mathgroup at smc.vnet.net
  • Subject: [mg114131] Re: Plot function at specific points
  • From: Leonid Shifrin <lshifr at gmail.com>
  • Date: Wed, 24 Nov 2010 07:01:12 -0500 (EST)

Hi Istvan,

You are likely to get much better solutions, but here is one way (cheating
somewhat):

f == Interpolation[{{0, 1}, {1, 2}, {2, 3}, {3, 5}, {4, 8}, {5, 5}, {6,
      2}, {7, 1}, {8, 1}, {9, 2}, {10, 4}}];
lowRes == Range[0, 10, 2];
eps == 0.001;
cutF == Function[
   Evaluate[
    Module[{x},
     Total[UnitStep[x - # + eps]*UnitStep[# + eps - x] & /@
        lowRes] /. x -> #]]];
Plot[f[x]*cutF[x], {x, 0, 10}, PlotRange -> {{0, 10}, {0, 9}},
 PlotPoints -> 10000, PlotStyle -> {Thickness[0.005]}]

If your f[x] is expensive to compute, you can define f[x]cutF[x] as a single
function and
compute f[x] lazily only when cutF[x] is non-zero.

Regards,
Leonid


2010/11/23 Istv=E1n Zachar <zac at freemail.hu>

> Dear Group,
>
> is there a method to plot an InterpolatingFunction at specific pointr
> WITHIN Plot? I am of course aware that I can use ListPlot at any time,
> though for certain reasons I have to stick with Plot. The main reason
> is that I have a large amount of InterpolatingFunctions which I plot
> with Plot as default, though at request I have to plot the same
> InterpolatingFunctions at different resolutions. PlotPoints and
> MaxRecursion is no good here, since lower resolution has to use a
> certain set of x-values, defined prior to plotting. Obviously I want
> to use the same Plot setup for both high and low-resolution cases.
> Below is a toy modell of the problem:
>
> f == Interpolation[{{0, 1}, {1, 2}, {2, 3}, {3, 5}, {4, 8}, {5, 5}, {6,
> 2}, {7, 1}, {8, 1}, {9, 2}, {10, 4}}];
> lowRes == Range[0, 10, 2];
> Plot[f[x], {x, 0, 10}, PlotRange -> {{0, 10}, {0, 9}}]
> ListLinePlot[{#, f@#} & /@ lowRes, PlotRange -> {{0, 10}, {0, 9}}]
>
> Again, what I want is to have a specific Plot call instead of the
> ListLinePlot, but with same result as ListLinePlot.
> Note that values of 'lowRes' may not correspond the exact x-
> coordinates supplied to f.
>
> Is there a way to tell Plot explicitly the steps to use? Any idea?
>
> Istvan
>
>


  • Prev by Date: Re: Plot function at specific points
  • Next by Date: Re: How to adjust selection w/ arrow keys?, etc.
  • Previous by thread: Re: Plot function at specific points
  • Next by thread: Re: Plot function at specific points