Re: nested SetDelayed

*To*: mathgroup at smc.vnet.net*Subject*: [mg113382] Re: nested SetDelayed*From*: Bob Hanlon <hanlonr at cox.net>*Date*: Tue, 26 Oct 2010 05:34:31 -0400 (EDT)

Numeric functions should be restricted to numeric arguments. f[v_, k_] := Sin[v*k] test[v_?NumericQ] := NIntegrate[f[v, k], {k, 0, Pi}] FindRoot[test[x] == 1, {x, 1}] {x -> 1.37697} test[x] /. % 1. Bob Hanlon ---- O <kakabomba at gmail.com> wrote: ============= hello, maybe somebody can explain what i'm doing wrong in this SIMPLE example: In[1] := f[v_, k_] := Sin[v*k] In[2] := test[v_] := NIntegrate[f[v, k], {k, 0, Pi}] In[3] := FindRoot[test[x] == 1, {x, 1}] I have NIntegrate errors: NIntegrate::inumr: The integrand Sin[k x] has evaluated to non- numerical values for all sampling points in the region with boundaries {{0,3.14159}}. >> NIntegrate::inumr: The integrand k Cos[k x] has evaluated to non- numerical values for all sampling points in the region with boundaries {{0,3.14159}}. >> NIntegrate::inumr: The integrand k Cos[k x] has evaluated to non- numerical values for all sampling points in the region with boundaries {{0,3.14159}}. >> General::stop: Further output of NIntegrate::inumr will be suppressed during this calculation. >> and CORRECT answer: Out[3] = {x -> 1.37697} Why expression `test` is evaluated with nonnumerical arguments?? I guess my VisualBasic oriented brain can't understand how SetDelayed work and how i should use it. Thanks