Re: NIntegrate and replacements
- To: mathgroup at smc.vnet.net
- Subject: [mg127756] Re: NIntegrate and replacements
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sat, 18 Aug 2012 20:37:14 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
On 8/18/12 at 3:47 AM, kravcov.msu at gmail.com (S-Tat) wrote:
>I have a simple question. There is my code, it integrates a function
>which is a solution of the equation:
>bc[r_, x_] := r + x^2;
>sol[r_] := Re[x /. FindRoot[bc[r, x] == 0, {x, 1.1 + I}]];
>NIntegrate[sol[r], {r, 1, 8}]
Change the definition for sol to be
sol[r_?NumericQ]:=Re[x /. FindRoot[bc[r, x] == 0, {x, 1.1 + I}]]
THe problem with your code is Mathematica wants to evaluate
sol[r] before r is given a numeric value by NIntegrate causing
the error. Adding the test ?NumericQ prevents sol from returning
values when non-numeric arguments are supplied.