MathGroup Archive 2007

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

Search the Archive

Re: NIntegrate - problems with HoldAll property(?) - not quite a

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73170] Re: NIntegrate - problems with HoldAll property(?) - not quite a
  • From: gotcha <david.shorthouse at credit-suisse.com>
  • Date: Tue, 6 Feb 2007 03:03:00 -0500 (EST)

thanks Bob, but I still have the "same" problem in my full code example - so it is looking like a rewrite is the answer(?)

A better description of the function  I am trying to integrate is:
f1[x_?NumericQ, anOtherObject_]:=Module[{res},
 res=Position[{1,3,5,7,9,Infinity},y_/;y>=x,Infinity,1][1,1]];
 {res,Length[anOtherObject]}
]

i.e. it is a function with 2 useful outputs in list form

Now, when I try to integrate the first output using:
NIntegrate[f1[i, m][[1]], {i, 0, 7}, MaxRecursion ->
   15, WorkingPrecision -> 25]
I get a numerical answer, but it is wrong: 24.5 not 19!

What I think is happening is:
f1[4,{a,b,c}][[1]] gives 3 as expected
BUT
f1[i,{a,b,c}][[1]] gives "i" because Mathematica does not have a definition for this function with the "i" as input. It returns the first element of "f1[i,{a,b,c}]" , which is "i".
This "i" can then be resolved by the NIntegrate function to give me the answer I was not expecting - ouch!

So I still have the original problem I think, in that NIntegrate is not resolving the "i" to a number at an early enough stage. You fixed my problem for functions that return a single variable, (although I'm not sure really why this works), but I still have the problem when my function returns a list.

Can anyone have another go?


  • Prev by Date: Re: Exporting expressions in Latex
  • Next by Date: Re: Re: Re: Re: Remote Kernel does nothing
  • Previous by thread: Re: Questions about Discrete Fourier Transform
  • Next by thread: Re: NIntegrate - problems with HoldAll property(?) - still not a