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.