RE: Confusion between rules and variables
- To: mathgroup at smc.vnet.net
- Subject: [mg42418] RE: [mg42416] Confusion between rules and variables
- From: "David Park" <djmp at earthlink.net>
- Date: Sun, 6 Jul 2003 06:57:01 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Jonathan, Clear[x]; FindRoot[Sin[x] == x, {x, 0.5}] x = x /. % {x -> 0.0129087} 0.0129087 (/. is the shortcut notation for ReplaceAll) But the reason that Mathematica returns rules is that they are convenient to use and it avoids setting values to simple variables. Setting values to simple variables and then forgetting to Clear them when you want to use them again as a symbol is probably the single most common error in using Mathematica. That is why I put the Clear[x] statement above. If you evaluated the FindRoot again without clearing you would obtain a strange result. FindRoot[Sin[x] == x, {x, 0.5}] {0.0129087 -> 0.0129087} If instead you save the solution as a rule you can then use it as in the following example. Clear[x]; xsol = FindRoot[Sin[x] == x, {x, 0.5}] {x -> 0.0129087} x^2 + Tanh[x]/Sqrt[x] % /. xsol x^2 + Tanh[x]/Sqrt[x] 0.113777 and you are free to continue using x as a symbolic variable. And you would never have had to use a Clear[x] at all. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Jonathan Greenberg [mailto:greenberg at ucdavis.edu] To: mathgroup at smc.vnet.net I ran a FindRoot where the output was {x->0.543} -- How do I extact that value (0.543) for use in some other equation (e.g. How do I set a variable equal to 0.543, instead of that entire rule)? --j