MathGroup Archive 2011

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

Search the Archive

Re: can't Solve[1 - x == x^r, x]?

  • To: mathgroup at
  • Subject: [mg119944] Re: can't Solve[1 - x == x^r, x]?
  • From: Bob Hanlon <hanlonr at>
  • Date: Thu, 30 Jun 2011 20:40:56 -0400 (EDT)
  • Reply-to: hanlonr at

I don't think that this can be solved for x[r]; however, you can also use ContourPlot to plot it.

ContourPlot[1 - x == x^r, {r, 0, 1}, {x, 0, 1/2},
 AspectRatio -> 1/GoldenRatio,
 FrameLabel -> {r, x}]

Bob Hanlon

---- Scott Centoni <scentoni at> wrote: 

I want to solve the equation

1 - x == x^r (1)

for x[r] and for r[x], particularly in the region 0<=r<=1 and 0<=x<=1/2 where both are real. Solving for r works well:

> In[1]:= Solve[1 - x == x^r, r]
> During evaluation of In[1]:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. >>
> Out[1]= {{r -> Log[1 - x]/Log[x]}}

However solving for x does not:

> In[2]:= Solve[1 - x == x^r, x]
> During evaluation of In[2]:= Solve::tdep: The equations appear to involve the variables to be solved for in an essentially non-algebraic way. >>
> Out[2]= Solve[1 - x == x^r, x]

I've tried Reduce and InverseFunction, but they just left the expression unevaluated. For plotting purposes, I used

> Nx[r_] := x /. FindRoot[1 - x == x^r, {x, .13}]

> Plot[{.5 r^.5, .5 r, Nx[r]}, {r, 0, 1}]

The plot is fairly close to .5 r^.5 over this interval, if that helps. Is there really no way for Mathematica to express this function other than as a numerical expression like this? Not even a big, messy formula involving PolyLog and hypergeometric functions?

Scott Centoni


Bob Hanlon

  • Prev by Date: Re: OpenCL
  • Next by Date: Re: Reading Data Table
  • Previous by thread: can't Solve[1 - x == x^r, x]?
  • Next by thread: Extract values from optimized solution