Re: InterpolatingFunction and NIntegrate
- To: mathgroup at smc.vnet.net
- Subject: [mg108452] Re: InterpolatingFunction and NIntegrate
- From: dh <dh at metrohm.com>
- Date: Thu, 18 Mar 2010 04:33:06 -0500 (EST)
- References: <hnq86h$r80$1@smc.vnet.net>
Hi Benjamin,
the trouble comes from:
spline[t] + {2, 2}
Mathematica will evaluate this with symbolic t and does not realize that
spline[t] is actualla a vector, but treats it as a scalar, giving:
{2+spline[t],2+spline[t]}
You can prevent this by defining a function that reuquests a numerical
argument like:
fun[t_?NumericQ] := Norm[spline[t] + {2, 2}];
NIntegrate[fun[t], {t, 0, 1}]
Daniel
On 17.03.2010 10:42, Benjamin Hell 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
>
>
--
Daniel Huber
Metrohm Ltd.
Oberdorfstr. 68
CH-9100 Herisau
Tel. +41 71 353 8585, Fax +41 71 353 8907
E-Mail:<mailto:dh at metrohm.com>
Internet:<http://www.metrohm.com>