I am trying to execute the below expression expecting Reduce[] to provide a range for n1 and n2 that satisfies the inequality.

Reduce[0.49 - 0.4 0.9^n2 - 0.01n1 > -4.41, {n1, n2}]

I get the below error message:

Reduce::inex Reduce was unable to solve the system with inexact coefficients or the system obtained by direct rationalization of inexact numbers present in the system. Since many of the methods used by Reduce require exact input, providing Reduce with an exact version of the system may help.

Can someone please explain me this and guide me how to resolve this?

  • 1
    $\begingroup$ Reduce can not find a solution neither with inexact coefficients nor with rational numbers. Try FindInstance[0.49 - 0.4*0.9^n2 - 0.01 n1 > -4.41, {n1, n2}] $\endgroup$
    – rmw
    Nov 14, 2018 at 21:33
  • $\begingroup$ @rmw, thank you. This provides a single instance. Is there any other function that will provide the range of values for which this is true? $\endgroup$
    – gaganso
    Nov 14, 2018 at 23:08
  • $\begingroup$ To get exact coefficients use Rationalize; however, that will not necessarily address the underlying issue of whether Mathematica can solve the inequality. $\endgroup$
    – Bob Hanlon
    Nov 15, 2018 at 5:12
  • $\begingroup$ The message is warning of a step that Reduce took in trying to solve your system, a step which the current answers by @Okkes & @Akku explicitly make. It is unnecessary to rationalize the coefficients, since Reduce does it for you. Both answers succeed in their ways even if the rationalization step is omitted. The only reason to do it by hand is to control exactly how the rationalization is done, since Reduce does it automatically in an unknown way possibly after unknown transformations. Another reason is to get an exact answer, but you should start with an exact problem in that case.... $\endgroup$
    – Michael E2
    Nov 10, 2019 at 15:25
  • $\begingroup$ ...The answer below do not succeed because of rationalization, but because of other changes to the system that are made. $\endgroup$
    – Michael E2
    Nov 10, 2019 at 15:26

1 Answer 1

   Reduce[(9/10)^n2 + n1/40 - 49/4 == 0, {n1, n2}, Reals]

$\text{n1}<490\land \text{n2}=-\frac{\log \left(\frac{490-\text{n1}}{40}\right)}{\log (2)-2 \log (3)+\log (5)}$

And thus solution is

$\text{n1}<490\land \text{n2}>-\frac{\log \left(\frac{490-\text{n1}}{40}\right)}{\log (2)-2 \log (3)+\log (5)}$

RegionPlot[(9/10)^n2 + n1/40 < 49/4, {n1, 300, 600}, {n2, -10, 50}, FrameLabel -> {"n1", "n2"}]

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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