Re: Why doesn't this work?

*To*: mathgroup at smc.vnet.net*Subject*: [mg20368] Re: [mg20352] Why doesn't this work?*From*: "David Park" <djmp at earthlink.net>*Date*: Sun, 17 Oct 1999 02:45:42 -0400*Sender*: owner-wri-mathgroup at wolfram.com

Joe, FindRoot has the Attribute HoldAll, so why your particular construction does not work probably has something to do with the internal processing of the routine. These two constructions do work: FindRoot[(Dog[t] /. { tau1 -> 13.7, tau2 -> 24.8}) == 0 , {t, 20}] {t -> 18.164849678936516} FindRoot[(Dog[t] == 0) /. { tau1 -> 13.7, tau2 -> 24.8} // Evaluate, {t, 20}] {t -> 18.164849678936516} One method for getting good input for MathGroup with Input and Output Cells is to convert them to InputForm (Shift-Ctrl-I) before copying them. Then just use plain Copy. You only have to do this if they contain special characters. You can then convert them back to StandardForm with Shift-Ctrl-N. I did that with the output above to convert the arrow to email form. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ >I'm trying to understand why a temporary is needed in the following >case. I've got a function of one parameter and two constants. I >define the constants on the fly with "/.". I want to find a root of >this equation. When I use "/." in FindRoot, it doesn't work, but if I >create another function that has these as true constants (rather than >symbols), FindRoot works. I don't understand why these two cases are >different. > >Here's my function (a difference of gaussians): > >Dog[t_] := (t/tau1)^6 * Exp[-6 * (t/tau1 - 1)] - (t/tau2)^6 * Exp[-6 * >(t/tau2 - 1)] > >Here's my first attempt to find a root, and the result: > >FindRoot[(Dog[t]==0) /. { tau1->13.7, tau2->24.8}, {t, 20}] >FindRoot::frnum: Function {False} is not a length 1 list of numbers at >{t} = {20.}. > >Here, I define a temporary function, and a FindRoot which should come >out to the exact same thing as above -- but this one works: > >Dog2[t_] = Dog[t] /. { tau1->13.7, tau2->24.8} >FindRoot[Dog2[t]==0, {t,20}] >{t->18.1648} > >Why is this? I've looked at it every way I can think of, thrown in >extra parens for grouping, checked that Dog2[t]==0 is exactly the same >as (Dog[t]==0) /. { tau1->13.7, tau2->24.8}, etc., but I can't figure >it out. Any clues? > >Thanks, >-- Joe > >P.S. How do I copy a notebook in plain text format? I tried "Copy As > >Plain Text" (and many others in that submenu) but it always gives me >text befuddled by lots of markup tags. I had to paste the above line >by line, and fix the "->" and "==" symbols which came through as >foreign characters. > >-- >,------------------------------------------------------------------. >| Joseph J. Strout Biocomputing -- The Salk Institute | >| joe at strout.net http://www.strout.net | >`------------------------------------------------------------------' >Check out the Mac Web Directory! http://www.strout.net/macweb.cgi > >