MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



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