       Re: InverseFunction problem

• To: mathgroup at smc.vnet.net
• Subject: [mg5573] Re: InverseFunction problem
• From: Daniel Lichtblau <danl>
• Date: Fri, 27 Dec 1996 01:58:53 -0500
• Organization: wolfram.com
• Sender: owner-wri-mathgroup at wolfram.com

```Pedro Santos wrote:
>
> Can someone help me with this?
>        Consider  the function f[x_]:=x/(1-x), clearly the inverse of
>  this function is F[x_]:=x/(1+x).
>  How do I get a numerical result for F[x] when f[x] is a more
> complicated
>  function?
> In the above example F[2.1]=0.677419, but
>                                                       (-1)
>               InverseFunction[f[2.1]]//N=   (-1.90909)
>  Am I doing something wrong? I want to make sure I can find a numerical
>  result before I use this for a more complex task.
>  Can someone help?
>
>  pedro santos..

InverseFunction will not find you a symbolic (or numeric) inverse to a
function unless explicitly provided for in the StartUp file
InverseFunctions.m. If you evaluate InverseFunction[f[2.1]] you just get
InverseFunction wrapped around the evaluation of f[2.1].

In:=  InverseFunction[f[2.1]]
Out= InverseFunction[-1.90909]

To find a numeric inverse to f you might proceed as follows. Assume we
have an inverse function, call it g. Then f[g[x]] - x is zero. So we can
use a root finder to obtain the numerical inverse.

In:= g[x_] := FindRoot[f[y]==x, {y,0}];
In:= g[2.1]
Out= {y -> 0.677419}

This method may have problems for discontinuous or multi-valued
functions, or may exhibit convergence problems (heavily influenced by
starting point for FindRoot). For your example there is a vertical
asymptote at x==1, and you can readily see that a different starting
point will be necessary for inverting negative values.

In:= g[-2.1]
FindRoot::cvnwt:
Newton's method failed to converge to the prescribed accuracy after
15
iterations.
14
Out= {y -> -2.37277 10  }

In:= gNeg[x_] := FindRoot[f[y]==x, {y,2}] /; x<0;

In:= gNeg[-2.1]
Out= {y -> 1.90909}

In:= (-2.1)/(1-2.1)
Out= 1.90909

Daniel Lichtblau
Wolfram Research
danl at wolfram.com

```

• Prev by Date: Re: Expand and NonCommutativeMultiply ?
• Next by Date: Re: Re EPS files produced by Mathematica 3.0
• Previous by thread: InverseFunction problem
• Next by thread: Eliminating line break characters