Re: finding inverses of functions
- To: mathgroup at smc.vnet.net
- Subject: [mg126438] Re: finding inverses of functions
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Thu, 10 May 2012 04:59:50 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jod7lu$5f8$1@smc.vnet.net>
On 2012.05.09. 9:51, John Accardi wrote:
> Hello, I am trying to get Mathematica to find the inverse of:
>
> y = 3x^3 + 2e^(2x) (which I know is invertible)
>
> InverseFunction only seems to give inverses of built-ins, like Sine.
>
> I tried:
>
> Solve[ y == 3x^3 + 2e^(2x), x ] but get a message that Solve does not have methods suitable. (Solve works for simpler functions, however.)
>
> Any ideas? Thanks.
>
While it's easy to see that this function has an inverse on the set of
reals, the inverse function might not be expressible using elementary
functions.
This doesn't prevent Mathematica from being able to compute the inverse
function to arbitrary precision at any point.
Let's write it as a pure function:
f = Function[x, 3 x^3 + 2 E^(2 x)]
Note that Exp[1] is written as E, and not as e.
The inverse of this function is represented in Mathematica with
if = InverseFunction[f]
Since you know that the inverse exists, you can use this confidently.
You can evaluate it for machine numbers like this:
In[63]:= if[1.]
Out[63]= -0.305526
Or for exact numbers like this:
In[64]:= if[1]
Out[64]= Root[{-1 + 2 E^(2 #1) + 3 #1^3 &,
-0.305526037783858835745318654576}]
Note that this is an exact result that can be evaluated to arbitrary
precision:
In[65]:= N[%, 100]
Out[65]=
-0.3055260377838588357453186545759642671712616849155334618731589419894350889720642702908817009965973507
I recommend reading this blog post:
http://blog.wolfram.com/2008/12/18/mathematica-7-johannes-kepler-and-transcendental-roots/
--
Szabolcs Horvát
Visit Mathematica.SE: http://mathematica.stackexchange.com/