Re: FindMinimum Problem
- To: mathgroup at smc.vnet.net
- Subject: [mg44675] Re: FindMinimum Problem
- From: drbob at bigfoot.com (Bobby R. Treat)
- Date: Thu, 20 Nov 2003 03:16:40 -0500 (EST)
- References: <bpa1rv$19t$1@smc.vnet.net> <bpd1bi$c9c$1@smc.vnet.net> <bpffpl$lv6$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
This works for me using version 5.0: foo[x_?NumericQ] := x^2 - a[0]*x /. First@ NDSolve[{a'[z] == x*z, a[1] == 1}, a, {z, -1, 1}] FindMinimum[foo[x], {x, -1, 1}] {-0.166667, {x -> 0.333333}} Jens-Peer had left out "First@", so foo took on List values like {2.5} rather than just the number 2.5. It's also important to make the range {z,-1,1} encompass the range where a minimum might be found -- especially the two initial starting points, which were 1 and -1 in his post. The pattern x_?NumericQ matches x if it is numeric -- as it will be when FindMinimum tries to iterate to a solution. If you don't use that pattern, you get an error message when FindMinimum tries a symbolic x value (which it does, for some reason I can't fathom). Bobby Jiang Xiao <jiang.xiao at physics.gatech.edu> wrote in message news:<bpffpl$lv6$1 at smc.vnet.net>... > thank you for replying, I tried it, but it still doesn't work. > what's the meaning of x_?NumericQ? > if I let foo[x_?NumericQ]:=x^2-x, findminimum can't get output either, > but no problem with foo[x_]:=x^2-x. > > Jiang > > Jens-Peer Kuska wrote: > > Hi, > > > > you ust make a function > > > > foo[x_?NumericQ]:=x^2-a[0]*x/.NDSolve[{a'[z]==x*z,a[1]==1},a,{z,0,1}] > > > > FindMinimum[foo[x],{x,-1,1}] > > > > Regards > > Jens > > > > Jiang Xiao wrote: > > > >>Hi, all, > >> recently I am dealing with a problem as following, findminimum(over x) > >>of a function f[a[0],x], where a[z] satisfies a differential equation > >>a'[z]=x*z say. The code is like: > >>FindMinimum[x^2-a[0]*x/.NDSolve[{a'[z]==x*z,a[1]==1},a,{z,0,1}],{x,-1,1}] > >> > >>the problem is that I can do it in mathematica 4.2, but can't in mathematica > >>5.0 now. Do anybody where is the problem? > >> > >>thanks, > >> > >>Jiang > > > >