Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1997
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1997

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

Search the Archive

Re: Extracting functions from Solve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg7057] Re: Extracting functions from Solve
  • From: Dick Zacher <dick at loc3.tandem.com>
  • Date: Sat, 3 May 1997 22:04:49 -0400 (EDT)
  • Organization: Tandem Computers
  • Sender: owner-wri-mathgroup at wolfram.com

mark christopher haase wrote:
> 
> How may I extract and define as functions the solutions derived from
> Solve?
> 
> E.g., Solve[x^2+y^2==1,y], I would like to define two functions f1 and
> f2 that are the solutions to this.
>
 
You could do it this way:

(* Solve the equations *)

In[1]:=
        solution = Solve[x^2 + y^2 == 1, y]

Out[1]=
        {{y -> -Sqrt[1 - x^2]}, {y -> Sqrt[1 - x^2]}}

(* Define functions based on the two solutions *)

In[2]:=
        f1 = Function[ x, Evaluate[ y /. solution[[1]] ] ]

Out[2]=
        Function[x, -Sqrt[1 - x^2]]

In[3]:=
        f2 = Function[ x, Evaluate[ y /. solution[[2]] ] ]

Out[3]=
        Function[x, Sqrt[1 - x^2]]

(* Now test the functions *)

In[4]:=
        f1[z]

Out[4]=
        -Sqrt[1 - z^2]

In[5]:=
        f2[z]

Out[5]=
        Sqrt[1 - z^2]

Or, if you were feeling playful, or were expecting to have to do this
repeatedly, you could define a function to make the functions for you. 
An example:

In[6]:=
        makeAFunction[soln_,yy_,xx_,fun_]:=
         (fun=Map[Function[xx, Evaluate[yy /.#]]&,soln])

In[7]:=
        SetAttributes[makeAFunction,HoldRest]

In[8]:=
        makeAFunction[solution,y,x,g]

Out[8]=
        {Function[x, -Sqrt[1 - x^2]], Function[x, Sqrt[1 - x^2]]}

In[9]:=
        g[[1]][z]

Out[9]=
        -Sqrt[1 - z^2]

In[10]:=
        g[[2]][z]

Out[10]=
        Sqrt[1 - z^2]

-- 
-----------------------------
Dick Zacher                    
Performance Engineering Dept., Tandem Computers
zacher_dick at tandem.com     phone: 408-285-5746     fax:   408-285-7079


  • Prev by Date: Re: Help ! complex permutations
  • Next by Date: Re: (Q:) ReplacePart + SubMatrix replacement
  • Previous by thread: Re: Extracting functions from Solve
  • Next by thread: How to return the position of a multidimensional list ..