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