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