MathGroup Archive 1996

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

Search the Archive

Re: FindRoot output format

  • To: mathgroup at smc.vnet.net
  • Subject: [mg3453] Re: FindRoot output format
  • From: ianc (Ian Collier)
  • Date: Fri, 8 Mar 1996 01:31:21 -0500
  • Organization: Wolfram Research, Inc.
  • Sender: owner-wri-mathgroup at wolfram.com

In article <4hjana$gph at dragonfly.wolfram.com>, "Nicolo' Manaresi"
<manaresi at iis.ee.ethz.ch> wrote:

> Hi,
> I would like to define the inverse function of  
> f[x_] = 3*x*(1 - x^2)^(1/2) + (1 + 2 x^2)*ArcCos[-x]
> (defined for x in [-1,1]).
> I defined then:
> finv[y_] = FindRoot[  f[x] == y,  {x,0}]
> 
> I woul like to plot it and use finv in more complex expressions,  but I have
> some problem
> since evaluation of  finv yeld something in the form {x -> number}
> e.g.:
> > finv[0.5]
> > {x -> -0.363331}
> So for example
> > Plot[finv[y],{y,0.5,0.8}]
> results in errors of this kind:
> Plot::plnr: CompiledFunction[{y}, finv[y], -CompiledCode-][y]
>      is not a machine-size real number at y = 0.5
> 
> Does  anybody  knows how to work arond this kind of output format?
> Does anybody know how could I invert f with another Mathematica's instruction,
> without this problem?
> 
> Thank you,
>                         Nicolo' Manaresi

The result from FindRoot is coming back as a replacement rule.
(Something of the form {x -> -0.363331}.)

All you need to do is to use ReplaceAll ( "/." in infix notation)
to substitute the answer. The following will work.

In[15]:=
    f[x_] = 3*x*(1 - x^2)^(1/2) + (1 + 2 x^2)*ArcCos[-x]
Out[15]=
                  2            2
    3 x Sqrt[1 - x ] + (1 + 2 x ) ArcCos[-x]

In[16]:=
    finv[y_] := FindRoot[  f[x] == y,  {x,0}]

In[17]:=
    finv[0.5]
Out[17]=
{x -> -0.363331}

In[18]:=
    Plot[x /.  finv[y], {y,0.5,0.8}]

Out[18]=
    -Graphics-

Section 2.4 of "Mathematica, A Sytem for Doing Mathematics by
Computer", Transformation Rules and Definitions, explains this
in some more detail.

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] ====


  • Prev by Date: Re: Greek symbols in Mathematica
  • Next by Date: Link to C, Fortran, or MatLab in Win 95
  • Previous by thread: FindRoot output format
  • Next by thread: Re: Re: FindRoot output format