MathGroup Archive 2006

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

Search the Archive

Re: Problem plotting high-order Laguerre polynomials

  • To: mathgroup at smc.vnet.net
  • Subject: [mg63877] Re: [mg63849] Problem plotting high-order Laguerre polynomials
  • From: "David Park" <djmp at earthlink.net>
  • Date: Fri, 20 Jan 2006 04:32:31 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Elinor,

It would be much better to define your plotting function with the following
statement using both n and q as arguments.

func[n_][q_] := LaguerreL[n, 2*q^2]/(E^q^2*Pi)

Then it plots fast enough.

Plot[func[40][q], {q, 0, 11},
    AspectRatio -> 0.2,
    Frame -> True,
    PlotRange -> {-0.1, 0.1},
    ImageSize -> 600];

Your function is rather interesting and a little difficult to represent in a
single graphic. It is larger near zero, then tapers off to a rather constant
oscillation for an extended range and then rather abrubtly cuts off at a
given value. So maybe you need three graphics; one showing the behavior near
zero, one showing the overall behavior (maybe the envelope) and one showing
the cutoff at the end.

Plot[func[200][q], {q, 0, 1},
    PlotPoints -> 25,
    AspectRatio -> 0.8,
    Frame -> True,
    PlotRange -> {-0.1, 0.1}3.5,
    PlotLabel -> "Initial Behavior with n == 200",
    ImageSize -> 400];

Plot[func[200][q], {q, 0, 21},
    PlotPoints -> 200,
    AspectRatio -> 0.2,
    Frame -> True,
    PlotRange -> {-0.1, 0.1},
    PlotLabel -> "Full Range with n == 200",
    ImageSize -> 600];

Plot[func[200][q], {q, 18, 22},
    PlotPoints -> 25,
    AspectRatio -> 0.8,
    Frame -> True,
    PlotRange -> {-0.1, 0.1}0.3,
    PlotLabel -> "Cutoff Region with n == 200",
    ImageSize -> 400];

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/


From: Elinor K. Irish [mailto:eirish at pas.rochester.edu]
To: mathgroup at smc.vnet.net

Hi folks,
I'm doing some work which involves plotting fairly high-order Laguerre
polynomials, up to 200 or so.  I've been getting some very strange and
obviously incorrect results which seem to have to do with the order of
evaluation.  (I'm using Mathematica 5.0, but I've checked it in 5.2 and I
get the same problems.)  Here are some examples with a simple form of the
type of function I'm working with:

func = 1/Pi Exp[- q^2] LaguerreL[n, 2 q^2]

These commands work, displaying the expected oscillatory result:

Plot[func /. n -> 40, {q, 0, 30}, PlotRange -> All]
Plot[Evaluate[func] /. n -> 40, {q, 0, 30}, PlotRange -> All]

This form, however, results in a big mess which isn't even bounded
correctly:

Plot[Evaluate[func /. n -> 40], {q, 0, 30}, PlotRange -> All]

I don't know whether this is a bug or if there's a subtlety of
Plot/Evaluate/etc. which I don't understand.  I would very much like to be
able to use Evaluate on my functions before plotting them, because my
actual calculations involve complicated sums over expressions like that
above and take a LONG time to plot.  (With Evaluate, a single plot takes
about 20 minutes; without it the same plot takes nearly 4 hours.)

Could anyone shed some light on this problem?  I have more examples,
including some involving sums, which I can give if needed.  I've been
fighting with this issue for a long time...

Thanks,
Elinor



______________________________
Elinor K. Irish
Dept. of Physics and Astronomy
University of Rochester
Rochester, NY  14627 USA
eirish at pas.rochester.edu



  • Prev by Date: Re: Problem plotting high-order Laguerre polynomials
  • Next by Date: Re: Format menu problem
  • Previous by thread: Re: Problem plotting high-order Laguerre polynomials
  • Next by thread: Re: Re: Problem plotting high-order Laguerre polynomials