Re: InterpolatingFunction and NIntegrate
- To: mathgroup at smc.vnet.net
- Subject: [mg108459] Re: InterpolatingFunction and NIntegrate
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 19 Mar 2010 02:45:44 -0500 (EST)
timevector = Range[0, 1, 0.1];
discretesolution = RandomReal[{0, 1}, {11, 2}];
spline = Interpolation[Thread[
{timevector, discretesolution}],
InterpolationOrder -> 1];
f[t_?NumericQ] := Norm[spline[t] + {2, 2}]
NIntegrate[f[t], {t, 0, 1},
MinRecursion -> 3]
3.61654
Bob Hanlon
---- Benjamin Hell <hell at exoneon.de> wrote:
=============
Hi,
sorry for posting a similar question to my last one on such after such
little time. This is due to the problem being a little bit different
now. Last time I tried using Integrate, this time I am going with
NIntegrate. The problem now is that using NIntegrate with the
InterpolatingFunction works, but when for example adding a vector I get
an NIntegrate::inum error, which does not make sense to me.
Here is an example of what I mean:
/timevector = Table[i*0.1, {i, 0, 10}];
discretesolution = Table[{RandomReal[], RandomReal[]}, {i, 0, 10}];
spline = Interpolation[Thread[{timevector, discretesolution}],
InterpolationOrder -> 1]/
This does work:
/NIntegrate[Norm[spline[t]], {t, 0, 1}]/
But here I get the NIntegrate::inum error, which says that at a certain
point t the value of Norm[spline[t] + {2, 2}] is not numerical:
NIntegrate[Norm[spline[t] + {2, 2}], {t, 0, 1}]
The error does not make sense to me. First I figured I should use
Evaluate, because NIntegrate has the HoldAll attribute, but as
Norm[spline[t] + {2, 2}] does not seem to be affected by HoldAll this
does not make any difference.
So why is this not working?
Thanks again,
Benjamin