MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Problem with combination NDSolve NIntegrate

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72758] Re: [mg72739] Problem with combination NDSolve NIntegrate
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Thu, 18 Jan 2007 05:34:21 -0500 (EST)
  • Reply-to: hanlonr at cox.net

For comparison,

ti[t]/.DSolve[{ti'[t]==ti[t],ti[0]==a},ti[t],t][[1]]

a*E^t

Integrate[%/.t->5,{a,0,10}]

50*E^5

%//N

7420.66

Clear[trial];
trial[a_?NumberQ]:=
    NDSolve[{ti'[t]==ti[t],ti[0]==a},ti,{t,0,10}][[1]];

Off[ReplaceAll::reps];

NIntegrate[ (ti[5] /. trial[a]), {a, 0, 10}]

7420.66

Although, in general I recommend that you use NumericQ rather than NumberQ

trial[E]

trial[E]

Clear[trial];
trial[a_?NumericQ]:=
    NDSolve[{ti'[t]==ti[t],ti[0]==a},ti,{t,0,10}][[1]];

trial[Pi]

{ti -> InterpolatingFunction[{{0., 10.}}, <>]}


Bob Hanlon

---- Paul Schneider <paul.schneider at wu-wien.ac.at> wrote: 
> 
> 
> I am using version 5.2
> 
> 
> 
> NIntegrate tries to evaluate the integrand symbolically. I try to 
> 
> circumvent this by using ?NumberQ but without success. Please try the 
> 
> following toy example:
> 
> 
> 
> trial[a_?NumberQ] :=
> 
>      NDSolve[{ti'[t] == ti[t] , ti[0] == a} , ti, {t, 0, 10}];
> 
> NIntegrate[ (ti[5] /. trial[a]), {a, 0, 10}]
> 
> Plot[ (ti[5] /. trial[a]), {a, 0, 10}]
> 
> 
> 
> NIntegrate does not evaluate to a number and throws a warning, while I 
> 
> get a perfect plot from Plot.
> 
> 
> 
> Does anybody know what to do?
> 
> 
> 
> Cheers,
> 
> 
> 
> Paul


  • Prev by Date: Re: Problem with combination NDSolve NIntegrate
  • Next by Date: Re: integration
  • Previous by thread: Re: Problem with combination NDSolve NIntegrate
  • Next by thread: Decision tree algorithm