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