# Failure message from Reduce

I am getting the message

Reduce::nsmet: This system cannot be solved with the methods available to Reduce.

while trying to solve the following equation:

Assuming[n ∈ Integers, Reduce[p + 2 s == (2 r (p + 2 b) + 2 b + p) (2 r + 1)^n, r, Reals]]


How can I get my code to work?

• Not an answer, but it good to be aware that Assuming only works with functions that take an Assumptions option, which Reduce doesn't. You can append && Element[n, Integers] to the equation instead. Dec 13, 2013 at 18:14

You can get a solution from Solve. Your equation can be rewritten

(1 + 2 r)^(1 + n) == (p + 2 s)/(2 b + p)


Making what I hope you can accept as a reasonable assumption about 2 b + p, I evaluated

Assuming[n ∈ Integers && 2 b + p != 0,
Solve[(1 + 2 r)^(1 + n) == (p + 2 s)/(2 b + p), r]]


Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. >>

{{r -> 1/2 (-1 + (p/(2 b + p) + (2 s)/(2 b + p))^(1/(1 + n)))}}


In this case, Reduce won't do any good, but perhaps you can live without knowing if the solution found by Solve may not be complete. I think you need only note that the formal solution fails for n = -1.

• nice I missed that simple factoring ... Dec 13, 2013 at 8:47