[Date Index]
[Thread Index]
[Author Index]
RE: Re: ListIntegrate Info.
*To*: mathgroup at smc.vnet.net
*Subject*: [mg36499] RE: [mg36465] Re: ListIntegrate Info.
*From*: "DrBob" <drbob at bigfoot.com>
*Date*: Mon, 9 Sep 2002 00:29:49 -0400 (EDT)
*Reply-to*: <drbob at bigfoot.com>
*Sender*: owner-wri-mathgroup at wolfram.com
Check out the NumericalMath`GaussianQuadrature` and
NumericalMath`NewtonCotes` packages.
Bobby Treat
-----Original Message-----
From: Selwyn Hollis [mailto:slhollis at earthlink.net]
To: mathgroup at smc.vnet.net
Subject: [mg36499] [mg36465] Re: ListIntegrate Info.
Be sure to note the following and what comes after it near the end of
the Help Browser info on ListIntegrate:
``This package has been included for compatibility with previous
versions of Mathematica. The functionality of this package has been
superseded by improvements made to InterpolatingFunction."
In other words, ListIntegrate is a dinosaur that you don't need at all!
To integrate a list of data with Mathematica, one can proceed in either
of two ways: (1) Construct an interpolating function and use NIntegrate
(or, better, NIntegrateInterpolatingFunction) on that (which is what
ListIntegrate apparently does); or (2) apply a simple routine that
implements the trapezoidal rule, Simpson's rule, or maybe some higher
order method.
Assuming you've chosen to take path #1, you need to realize the
following:
(a) NIntegrate[Interpolation[data, InterpolationOrder->1][x], {x,a,b}]
is equivalent to the trapezoidal rule;
(b) NIntegrate[Interpolation[data, InterpolationOrder->2][x], {x,a,b}]
is *not* equivalent to Simpson's rule (because of the peculiar way that
Interpolation works);
(c) Interpolation[data, InterpolationOrder->k] generally does not return
a smooth function unless you set InterpolationOrder->n-1, where n is the
number of data points, which is the case where a single polynomial of
degree n-1 fits the data points.
(d) If you want to integrate a smooth interpolant, you can do this:
<<NumericalMath`SplineFit`
NIntegrate[SplineFit[data, Cubic][x][[2]], {x,a,b}]
To understand better the way Interpolation works, look closely at the
plots created by the following:
data = Table[{i, Random[]}, {i, 0, 5}];
Do[Plot[Interpolation[data, InterpolationOrder->k][x],
{x, 0, 5}, PlotRange -> All], {k, 1, 6}]
(The last of those plots will give a warning message.)
Having said all that, you really should consider path #2 instead. Here
are a couple of links to a MathGroup discussion of last July (somehow
the thread got split up):
http://library.wolfram.com/mathgroup/archive/2002/Jul/msg00490.html
http://library.wolfram.com/mathgroup/archive/2002/Jul/msg00519.html
I hope all this helps some.
----
Selwyn Hollis
qualsystems*nospam* at mindspring.com wrote:
> Hi,
> Can someone provide me more information on how ListIntegrate works
> than what is contained in the version 4 manual ? Is there a website
> perhaps or tutorial ?
>
> I would like to know how the beginning and end of a list of {x,y}
> pairs that is being integrated is dealt with by ListIntegrate.
>
> I know a series of polynomials is somehow used but how ? Do these
> overlap ? Are they piecewise continuous ?
>
> Are these polynomials available for inspection ? How do they change
as
> a function of "k" ?
>
> optimum "k" value for a given list ? For any given list, will
accuracy
> monotonically increase with increasing values of "k" ? Is there
> anything in the Option Inspector that could cause unexpected behaivor
> with ListIntegrate ?
>
> Are there any good rules of thumb or procedures that will help ensure
> a reasonable answer is produced ?
>
> Is there a way of estimating the error or accuracy of integration
> performed by ListIntegrate ?
>
> Thanks for any help.
>
>
>
Prev by Date:
**RE: Re: Re: word processing with mathematica**
Next by Date:
**RE: Why is my Implementation of Sorted Trees So Slow?**
Previous by thread:
**Re: ListIntegrate Info.**
Next by thread:
**$Post vs. $PrePrint**
| |