Re: How do I assign the solution obtained by FindRoot to a variable?
- To: mathgroup at smc.vnet.net
- Subject: [mg128480] Re: How do I assign the solution obtained by FindRoot to a variable?
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Wed, 24 Oct 2012 03:31:07 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20121023045437.AE4F2685C@smc.vnet.net>
On Oct 23, 2012, at 12:54 AM, NS Lin <nansheng.lin at gmail.com> wrote:
> I would like to store the root/solution obtained by the FindRoot[] function to a variable. How can I do that?
>
This is a faq, but usually Mathematica novices ask it about Solve. The situation is similar.
soln = x /. FindRoot[Cos[x] - x, {x, 0.5}]
That works because FindRoot returns the one-element list {x -> 0.739085}.
In the case of Solve, you may obtain more than one solution, e.g.:
Solve[x^2 - x == 0, x]
{{x -> 0}, {x -> 1}}
In that situation, you'll need to pick out which solution you want, e.g.:
x /. Solve[x^3 - x == 0, x][[2]]
Notice that the result of Solve is a list of one-element lists. This is so even when the equation has only a single solution, e.g.:
Solve[3 x == 1, x]
{{x -> 1/3}}
In that case you can either use indexing to form Solve[3 x == 1, x][[1]] before using "x /. ", or just use First:
x /. First@Solve[3 x == 1, x]
The situation is quite similar for DSolve.
---
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2838 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- References:
- How do I assign the solution obtained by FindRoot to a variable?
- From: NS Lin <nansheng.lin@gmail.com>
- How do I assign the solution obtained by FindRoot to a variable?