Re: numeric integration
- To: mathgroup at smc.vnet.net
- Subject: [mg81161] Re: [mg81129] numeric integration
- From: DrMajorBob <drmajorbob at bigfoot.com>
- Date: Fri, 14 Sep 2007 03:38:33 -0400 (EDT)
- References: <3216400.1189687710734.JavaMail.root@m35>
- Reply-to: drmajorbob at bigfoot.com
It works here just fine, although my value f[0.1] doesn't match yours:
f = NIntegrate[Sin[x + #], {x, 0, 1}] &;
f[0.1]
0.541408
NIntegrate[f[x], {x, 0, 0.1}]
0.0708073
However... there's a subtlety, since that's the wrong integral unless you
wanted THIS double integral:
Integrate[Sin[x + x], {x, 0, 1}] // N
0.0708073
You probably wanted this one:
Integrate[Sin[x + t], {t, 0, 0.1}, {x, 0, 1}]
0.050097
Quiet@NIntegrate[f[t], {t, 0, 0.1}]
(NIntegrate::"inumr" errors suppressed by Quiet)
0.050097
Using t as the parameter is different from using x as the parameter,
because of the way you defined f. That can be eliminated, along with the
NIntegrate::"inumr" errors, by defining f this way:
Clear[x, f]
f[t_?NumericQ] := NIntegrate[Sin[x + t], {x, 0, 1}]
f[0.1]
0.541408
NIntegrate[f[x], {x, 0, 0.1}]
0.050097
NIntegrate[f[t], {t, 0, 0.1}]
0.050097
That's much nicer anyway.
Bobby
On Thu, 13 Sep 2007 05:29:44 -0500, C. Seja <p5secr2 at uni-jena.de> wrote:
> Hi,
>
> I'd like to intergate a function f with NIntegrate:
> NIntegrate[f[x], {x, 0, 0.1}]
>
> But this doesn't work if, i.e.
>
> f = NIntegrate[Sin[x + #], {x, 0, 1}] &
>
> It will give a wrong result (0.7 instead of 0.05). Why? I mean, I can
> evaluate f at any point without problems, i.e. f[0.1] gives 0.37. So why
> doesn't
>
> NIntegrate[f[x], {x, 0, 0.1}]
>
> work? It doesn't even give a warning! So, is there a proper way to do
> this
> (without using one two-dimensional NIntegrate)?
>
> Regards
>
> C. Seja
>
>
>
>
--
DrMajorBob at bigfoot.com