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

>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
>
>

```

• Prev by Date: Re: plotting function w/ Im and Re vals
• Next by Date: Re: Why doesn't this work?
• Previous by thread: Re: Why doesn't this work?
• Next by thread: Re: Why doesn't this work?