0
$\begingroup$

As a teacher, I am trying to show some step-by-step execution. (Any help with tools would be most appreciated.)

Related, I cannot get the following to work:

Reduce[{Abs[1 + (1 - 2^x)/(1 + 2^x)] < ε, 0 < ε < 2}, {x}]

nor with Solve[], Resolve[], Refine[], etc.

Any ideas?

Interestingly, if I enter:

=solve |(1 - 2^x)/(1 + 2^x)+1|< ε, 0<ε<2 for x

Wolfram|Alpha solves this -- and also reports that Reduce[] cannot solve this with the methods available to it.

$\endgroup$
  • 3
    $\begingroup$ You need to add the Reals domain, since Mathematica assumes everything is complex unless told otherwise: Reduce[{Abs[1 + (1 - 2^x)/(1 + 2^x)] < ε, 0 < ε < 2}, x, Reals] $\endgroup$ – J. M. is away Nov 13 '17 at 6:35
  • $\begingroup$ Thank you very much! I had seen on the help page: "Reduce[expr,vars] assumes by default that quantities appearing algebraically in inequalities are real, while all other quantities are complex." so it did not occur to me that that was necessary. Did I misunderstand the help page? $\endgroup$ – Aharon Naiman Nov 13 '17 at 7:01
  • 1
    $\begingroup$ I guess that that description was a bit imprecise, since e.g. Reduce[{Re[x + I y] < 1}, {x, y}] will show that the variables are still considered complex, and thus one has to do Reduce[Re[x + I y] < 1, {x, y}, Reals]. $\endgroup$ – J. M. is away Nov 13 '17 at 7:07
  • $\begingroup$ I do not understand, what do you mean by " step-by-step execution"? In your further discussion there is no step-by-step approach, but rather just a trial to solve it by the application of an appropriate function. $\endgroup$ – Alexei Boulbitch Nov 13 '17 at 8:50
  • $\begingroup$ @J.M., thank you for this example. Perhaps I should let the WR folk know. $\endgroup$ – Aharon Naiman Nov 14 '17 at 8:22
1
$\begingroup$

According to your explanation, I developed a version of step-by-step solving of the inequality in question. I will write e instead of \[CurlyEpsilon] in order to better visualize it here, on the StackExchange. Here is the inequality and the domain for e:

ineq1 = Abs[1 + (1 - 2^x)/(1 + 2^x)] < e
dom=0 < e < 2

Let us check, if we need the absolute value function:

cond1 = 1 + (1 - 2^x)/(1 + 2^x) > 0;
Reduce[cond1 && x \[Element] Reals]

True

That is, the function Abs[] is unnecessary if x is Real. We, thus, form a new inequality:

ineq2 = 1 + (1 - 2^x)/(1 + 2^x) < e;

Let us now replace 2^x by y:

 ineq3 = ineq2 /. x -> Log[2, y]

(* 1 + (1 - y)/(1 + y) < e  *)

Let us take the unity into the RHS:

ineq4 = Map[Subtract[#, 1] &, ineq3]

(*  (1 - y)/(1 + y) < -1 + e  *)

Now we multiply the both parts by 1+y, expand the RHP and collect the terms with y in the RHP:

ineq5 = Map[Times[#, 1 + y] &, ineq4] // Expand // Collect[#, y] &

(*  1 - y < -1 + e + (-1 + e) y  *)

Now let us bring unity in the RHP, while the term containing y to the LHP and cancel there:

ineq6 = Map[Subtract[#, 1 + y (-1 + e)] &, ineq5] // Collect[#, y] &

(*   -e y < -2 + e   *)

and finally divide by e:

ineq7 = Map[Divide[#, -e] &, ineq6]

(*  y < -((-2 + e)/e)  *)

Now let us check, if the RHP of the obtained inequality is positive:

Reduce[-((-2 + e)/e) > 0 && dom]

(*  0 < e < 2  *)

The answer is yes. Then recalling the definition of yone can simply find the logarithm of both parts:

x < Log[2, -((-2 + e)/e)]

(*   x < Log[-((-2 + e)/e)]/Log[2] *)

Done.

Have fun!

$\endgroup$
  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. $\endgroup$ – Kuba Mar 20 at 19:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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