Those ?NumericQ
in the definition of f
interfere with symbolic computation. Also, if you calculate the derivative with D[f[x, a], x]
, the variable x
will become numerical too soon, before the symbolic derivative is calculated. One way to solve the problem is to use Derivative
, which does not use a symbolic variable name:
f[x_, a_] := Sin[a x]
d[x_?NumericQ] := NIntegrate[Derivative[1, 0][f][x, a], {a, 0, 1}]
Another way, which localizes the symbolic variable:
f[x_, a_] := Sin[a x]
d[x_?NumericQ] :=
Module[{y},
NIntegrate[D[f[y, a], y] /. y -> x, {a, 0, 1}]]