How do you get the Simplify function to completely simplify an inequality in Mathematica?

50 views Asked by At

I am working on testing whether a function lies in a given range. Somehow, the function Simplify does not provide the correct (obvious) answer. Why is that ?

The main function corresponds to the product of these functions:

f1[x_] = a0 + (1 - a0) (1 - Exp[-a1 x]);
f2[x_] = 1 - Exp[-a2  x];
f3[y_] = 1 - Exp[-a3  y];

so that

f[x_, y_] = f1[x] f2[x] f3[y];

The conditions on the parameters are:

condParam = 0 < a0 < 1 && a1 > 0 && a2 > 0 && a3 > 0;

Obviously, using the function Simplify, we get:

Simplify[0 < f1[x] < 1, Assumptions -> condParam && x > 0 && y > 0]
Simplify[0 < f2[x] < 1, Assumptions -> condParam && x > 0 && y > 0]
Simplify[0 < f3[y] < 1, Assumptions -> condParam && x > 0 && y > 0]

True

True

True

But, somehow, Mathematica does not find that the product of these functions also lies between 0 and 1:

Simplify[0 < f[x, y] < 1, Assumptions -> condParam && x > 0 && y > 0]

E^(-a1 x - a2 x - a3 y) (-1 + a0 + E^(a1 x)) (-1 + E^(a2 x)) (-1 + E^(a3 y)) < 1

Why is that? Although it is not a big deal in this case, this becomes a problem when I try to find the range of more complicated functions.

Using the following command does not solve the issue

SetSystemOptions["SimplificationOptions"->{"AssumptionsMaxNonlinearVariables"->100}];

Thank you for your help.

T.

0

There are 0 answers