Compiled function with NIntegrate
- To: mathgroup at smc.vnet.net
- Subject: [mg52574] Compiled function with NIntegrate
- From: Alexei Akolzin <akolzine at uiuc.edu>
- Date: Thu, 2 Dec 2004 02:21:50 -0500 (EST)
- Organization: University of Illinois at Urbana-Champaign
- Sender: owner-wri-mathgroup at wolfram.com
Hello, I wonder why NIntegrate gives the following error with compiled functions: In: f = Sin[x]; In: fc = Compile[{x},f]; In: fc[1] Out: 0.841471 In: NIntegrate[fc[x], {x, 0, 1}] Out: CompiledFunction::"cfsa" : Argument x at position 1 should be a machine-size real number. or Out: CompiledFunction::cfsa: Argument NIntegrate`Private`XX7 at position 1 should be a machine-size real number. It is true that NIntegrate compiles functions by default. This was one of the suggestions found in the archive if not to deal, but to get around the problem. However, my particular function f takes around 10 minutes to evaluate for a single argument value. I never had patience to wait long enough (hours) for a result from NIntegrate to appear, with "Compiled" option set or not. To speed things up I used optimization package "optimize.m": In: fc = Compile[{x},Optimize[f]]. This helped a lot, with fc[1] ("1", for example) being evaluated in a matter of mere seconds. But the problem now is that NIntegrate does not want to work with my function. So, the question is: is there any way to get my compiled function, as it is, into NIntegrate? Thanks, Alexei.
- Follow-Ups:
- Re: Compiled function with NIntegrate
- From: DrBob <drbob@bigfoot.com>
- Re: Compiled function with NIntegrate