MathGroup Archive 2012

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

Search the Archive

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








  • Prev by Date: Re: How do I assign the solution obtained by FindRoot to a variable?
  • Next by Date: Re: Making a stack.
  • Previous by thread: Re: How do I assign the solution obtained by FindRoot to a variable?
  • Next by thread: Re: How do I assign the solution obtained by FindRoot to a variable?