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?