       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:= Solve[{x^2 + y^2 == 1, x + y==.5},{x,y}]

Out= {{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:= x /. %

Out= {-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:= x^2 - y/2 + x y z /. %%

Out= {-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.

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