Re: How do you input a solution from FindRoot into another equation?
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg765] Re: How do you input a solution from FindRoot into another equation?
- From: Sigurd.Schelstraete at rug.ac.be (Sigurd Schelstraete)
- Date: Tue, 18 Apr 1995 00:56:04 -0400
- Organization: University of Ghent, Belgium
Dave Wagner (wagner at bullwinkle.cs.Colorado.EDU) wrote:
: In article <3mfauj$l4o at news0.cybernetics.net>,
: Robert Dack <rdack at acs.ucalgary.ca> wrote:
: >
: >Can someone tell me how to take the output from the FindRoot
: >cammand and input it into the next command line? The output
: >comes out in the form { x -> 2.435 }, so the usual [%] command on
: >the next line won't work.
: >
: some examples of how to extract the answers.
: In[20]:=
: Solve[x^2==2, x]
: Out[20]=
: {{x -> -Sqrt[2]}, {x -> Sqrt[2]}}
: In[21]:=
: { %[[1,1,2]], %[[2,1,2]] }
: Out[21]=
: {-Sqrt[2], Sqrt[2]}
: In[22]:=
: Solve[{x^2-2 == y, x+y==0}]
: Out[22]=
: {{y -> -1, x -> 1}, {y -> 2, x -> -2}}
: In[23]:=
: { %[[1,1,2]], %[[1,2,2]], %[[2,1,2]] }
: Out[23]=
: {-1, 1, 2}
I've already mailed my solution to the original author of this thread,
but maybe it's useful to repeat it here, since I think it's slightly
more elegant than method presented above. For instance, in the last
example, you have to know in which order the solutions will appear (in
this case y comes before x). Instead of "FindRoot[lhs==rhs,{x,xo}]", you
can use:
x /. FindRoot[lhs==rhs,{x,x0}]
Mma will replace this (internally) with:
x /. {x->2.35466}
Giving the output:
2.35466
without the need to go delving into the List {x->2.35466}.
This can also be used when more than one solution is given (as is the
case with Solve or NSolve), e.g.:
x /. Solve[x^2==4,x]
gives:
{-2,2}
And it still works when more than one variable is present and you are
only interested in one of the variables, e.g:
x /. Solve[x^2-2==y,x+y==0]
is replaced with:
x /. {{y->-1,x->1},{y->2,x->-2}}
wich gives as the final output:
{1,-2}
Sigurd Schelstraete
University of Gent
Belgium