Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a general solution (for $x$) to an equation of the form $x = a - (b - x)^c$ ? If there is no general solution, please suggest a strategy for getting a numerical answer. In the case I care about immediately, two different computer algebra systems got as far as $x = 50\,000 - (100 - x)^{500\,000}$ and then got stuck when asked for a numeric answer.

share|cite|improve this question
If you let $b-x=y$, you get a nicer equation $$b - a = y - {y^c}$$ – Pedro Tamaroff Nov 7 '12 at 0:07
up vote 1 down vote accepted

Assuming $a,b,x$ are reals and $c$ is an integer, your equation becomes

$$ a-(b-x)^c-x = 0$$

which can be converted to

$$a-x-\sum_{i=0}^c \begin{pmatrix} c \\ i \end{pmatrix} b^ix^{c-i} = 0$$

using the binomial theorem.

For $c > 4$, there is no general solution for this polynomial by the Abel-Ruffini theorem. However, it may be possible that for certain specific conditions on $a, b \in \Bbb R$ that allow it to be solved.

share|cite|improve this answer

With Mathematica

FindRoot[50000 - (100 - x)^500000 == x, {x, 99}, AccuracyGoal -> 20, 
WorkingPrecision -> 50]

I get x = 98.999978364173304772436016428458876920765894232268 You can get more accurate values by increasing the WorkingPrecision. You can use Newton's Method with something like this.

share|cite|improve this answer

If such an x exists it will be between 98 and 99, and by between them I mean it's going to be very close to 99.

Using maple I could maybe get close just by messing around with it. If such an x exists it is between x = 98.9999783650000000000000000000000000000000000000000000001 and x = 98.9999783650000000000000000000000000000000000000000000000

The fact that maple chokes on it tells me that an x likely does not exist. I used this expression to look for it: limit(ln(50000-x)/ln(100-x), x = 98.9999783650000000000000000000000000000000000000000000000, left)

This gives the answer: 4.999035752*10^5

and limit(ln(50000-x)/ln(100-x), x = 98.9999783650000000000000000000000000000000000000000000001, left)

which provides an answer of: 5.001346887*10^5

Edit: I've now tried it in maple and wolfram alpha, and managed to exceed computation time on wolfram alpha for non pro members, and I managed to hang my laptop with maple, as it appears that 4GB of memory wasn't enough.

share|cite|improve this answer
These CAS libraries likely do not stock the requisite solvers to compute the solution to that extreme precision, I would imagine. – Emily Nov 7 '12 at 5:09

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.