Re: FindROot and substitutions

*To*: mathgroup at smc.vnet.net*Subject*: [mg89851] Re: FindROot and substitutions*From*: magma <maderri2 at gmail.com>*Date*: Sun, 22 Jun 2008 03:26:12 -0400 (EDT)*References*: <g3ihp3$fd5$1@smc.vnet.net>

On Jun 21, 11:31 am, Aaron Fude <aaronf... at gmail.com> wrote: > Hi, > > I have found a workaround for this problem, but I would like to > understand how Mathematica wants you to think so I'm asking the > question anyway. > > Why does "bad" not work, while "good" works? > > g := x z; > bad[z_] := FindRoot[ g == 5, {x, -10, 10 }]; > bad[5] > good[k_] := FindRoot[ g == 5 /. z -> k, {x, -10, 10 }]; > good[6] > > Thanks! > > Aaron If you execute On[] bad[5] Off[] you can solve the arcane. You get a lengthy output, but from the very first lines you can clearly see that g gets replaced by x z, but z never gets replaced by 5. So FindRoot starts looking for solutions of x z == 5, which is a symbolic equation (z is a symbol) and cannot be "Findroot-ed". This is a working code: gg[z_] := x z notsobad[z_] := FindRoot[gg[z] == 5, {x, -10, 10}] and now... notsobad[5] works as desired In other words: you should make explicit in g (or gg) the z dependence.