Re: ???? How to assign result from Solve to variable ????
- To: mathgroup at smc.vnet.net
- Subject: [mg3846] Re: ???? How to assign result from Solve to variable ????
- From: ianc (Ian Collier)
- Date: Mon, 29 Apr 1996 00:33:02 -0400
- Organization: Wolfram Research, Inc.
- Sender: owner-wri-mathgroup at wolfram.com
In article <4let71$e4m at dragonfly.wolfram.com>, rpiyaket at ucsd.edu (Ram
Piyaket) wrote:
> Hi,
> I was wondering if anyone could tell me how to deal with this problem.
> I want to assign the numerical result that I obtain from the Solve or etc.
> command, which typically enclosed in the braces ({...}) to a variable
> so that I can reuse it. I just want the numerical number, not the braces.
> Can you tell me how? I appreciate all the help from you. Thank you very much.
>
> Ram
The following is taken from the Technical Support FAQ area
of Wolfram Research's Web pages. The exact URL is:
http://www.wolfram.com/support/Kernel/Basic/UsingRuleSolutions.html.
How do I extract a solution from the results of Solve or FindRoot?
Solve and FindRoot typically return something like the following:
{{x -> 2.5}}
At first, it may seem a little confusing, but there is a very
good reason for it. The reason Solve or FindRoot doesn't simply
return a number, such as 2.5, is because sometimes you want to
solve for more than one variable. If Mathematica just returned
numbers, you would never know which number belonged to which
variable -- especially, if each variable had more than one
solution. For example:
In[1]:= Solve[{x^2 + y^2 == 1, x + y==.5},{x,y}]
Out[1]= {{x -> -0.411438, y -> 0.911438},
{x -> 0.911438, y -> -0.411438}}
Without showing the attachment between the solution and the
variable names, there is no way that we would know for sure
which solutions were for x and which ones were for y, or that
-.411438 is a solution for x if and only if .911438 is the
solution for y.
What Mathematica is returning is a collection of rules. Rules
are a well-defined and well-documented concept in Mathematica,
and they are easy to extract. If you want to pull all of the
rules for x out of the result of the above Solve command, you
can do the following:
In[2]:= x /. %
Out[2]= {-0.411438, 0.911438}
The /. is shorthand for ReplaceAll, and causes Mathematica to
replace all instances of x on the left-hand side with the rule(s)
for x on the right-hand side. In fact, the left-hand side can be
any expression of x, y, or any other variables:
In[3]:= x^2 - y/2 + x y z /. %%
Out[3]= {-0.286438 - 0.375 z, 1.03644 - 0.375 z}
This returns the expression evaluated at each of the two
solutions; note that z remains unevaluated in the solution because
z was not a rule.
This and many other frequently asked questions about Mathematica
is answered in the Technical Support FAQ area of the Wolfram
Research Web pages <http://www.wolfram.com/support/>.
I hope this helps.
--Ian
-----------------------------------------------------------
Ian Collier
Wolfram Research, Inc.
-----------------------------------------------------------
tel:(217) 398-0700 fax:(217) 398-0747 ianc at wolfram.com
Wolfram Research Home Page: http://www.wolfram.com/
-----------------------------------------------------------
==== [MESSAGE SEPARATOR] ====