I need to find the minimum of a function $f(t) = \int_0^1\!g(t,x)\,dx$. What I did in mathematica is as follows:
f[t_] = NIntegrate[g[t,x],{x,-1,1}]
FindMinimum[f[t],{t,t0}]
However mathematica halts at the first try, because NIntegrate does not work with the symbolic t. Although Plot[f[t],{t,0,1}] works perferctly, FindMinimum stops at the initial point.
Any way to get around it? Thanks!
OP's equivalent question on Stack Overflow was already answered. This is the accepted answer by Andrew Moylan.
Try this:
Two relevant changes I made to your code:
Define f with
:=instead of with=. This effectively gives a definition for f "later", when the user of f has supplied the values of the arguments. See SetDelayed.Define f with
t_?NumericQinstead oft_. This says, t can be anything numeric (Pi, 7, 0, etc). But not anything non-numeric (t, x, "foo", etc).