[Date Index]
[Thread Index]
[Author Index]
Re: NIntegrate and Plot
*To*: mathgroup at smc.vnet.net
*Subject*: [mg95894] Re: NIntegrate and Plot
*From*: dimitris <dimmechan at yahoo.com>
*Date*: Thu, 29 Jan 2009 05:56:10 -0500 (EST)
*References*: <glethi$4pp$1@smc.vnet.net> <glpfm5$ktq$1@smc.vnet.net>
On 28 =C9=E1=ED, 13:31, mark mcclure <mcmcc... at unca.edu> wrote:
> On Jan 24, 6:20 am, dimitris <dimmec... at yahoo.com> wrote:
>
> > How can I achieve better performance in the following task
> > Plot[NIntegrate[fun[r, t], {t, 0, Infinity}], {r, 0, 3}]
> > [... Given a complicated fun ....]
>
> First, I think it will help if you limit the number of
> sample points. Plot generates many more sample points
> than necessary to view this particular graph. Second,
> you might want to deal with the potential numerical
> inaccuracies when r is small. Both of these objectives
> are easily met using a Table to generate a reasonable
> amount of discrete data that you can then ListPlot. The
> following takes about 15 seconds on my machine and
> generates no complaints.
>
> fun[r_,t_]= -(((-3 + 4t^2 + 8t^4 - 8t^3 Sqrt[1+t^2])*
> BesselJ[1, r*t])/(3 + 14*t^2 + 24*t^4 + 16*t^6 -
> 16*t^3*Sqrt[1 + t^2] - 16*t^5*Sqrt[1 + t^2]));
> rBigData=Table[{r, NIntegrate[fun[r,t],{t,0,Infinity}]},
> {r, 3/10, 3, 1/10}];
> rSmallData=Table[{r,NIntegrate[fun[r,t],{t,0,Infinity},
> WorkingPrecision -> 20]}, {r, 1/20, 1/4, 1/10}];
> data = Join[{{0, 0}}, rSmallData, rBigData];
> ListLinePlot[data]
>
> By comparison, your original Plot command took just
> over 3 minutes to generate a graph with 307 points that
> did not look much better.
>
> Mark McClure
Thank you very much.
Best Regards
Dimitris
Prev by Date:
**Re: moment generating function for gaussian and lognormal**
Next by Date:
**Re: Re: two plots in Mathemtica 7. Bug?**
Previous by thread:
**Re: NIntegrate and Plot**
Next by thread:
**problem with NDSolve in version 7 vs. version 6**
| |