3
$\begingroup$

I'm trying to find the sign of some very long expressions, but I don't seem to make it work using Simplify[Sign[...], Assumptions ...]. Here is an example of my problem. I can easily find the sign of these two expressions:

exp1 = θA1^2 θAU (16 θB1^3 (1 - λ)^4 + 
 64 θB1^2 θBU (1 - λ)^3 (1 + λ) + 
 5 θBU^3 (1 - λ) (1 + λ)^3 + 
 54 θB1 θBU^2 (1 - λ^2)^2);
 Simplify[Sign[8 (exp1)] , 
   Assumptions -> {(1 - λ) > 0, θA1 > 0, θAU > 0, θB1 > 0, θBU > 0, λ > 0}]

This expression correctly calculates as 1. A second expression:

exp2 = θA1 θAU^2 (16 θB1^3 (1 - λ)^3 (1 + λ) +  44 θB1 θBU^2 (1 - λ) (1 + λ)^3 + 
 5 θBU^3 (1 + λ)^4 +  54 θB1^2 θBU (1 - λ^2)^2);
Simplify[Sign[8 (exp2)] ,  
  Assumptions -> {(1 - λ) > 0, θA1 > 0, θAU >     0, θB1 > 0, θBU > 0, λ > 0}]

Correctly calculates as 1 too. BUT when I try:

Simplify[Sign[8 (exp1 + exp2)] ,  
  Assumptions -> {(1 - λ) > 0, θA1 > 0, θAU >    0, θB1 > 0, θBU > 0, λ > 0}]

Then Mathematica cannot compute... Any ideas on what may be going on here?

$\endgroup$
5
$\begingroup$

You need to increase the value of the suboption "AssumptionsMaxNonlinearVariables" to a value higher than its default value (4):

SystemOptions["SimplificationOptions"]

{"SimplificationOptions" -> {"AssumptionsMaxExponent" -> 25, "AssumptionsMaxNonlinearVariables" -> 4, "AssumptionsMaxVariables" -> 21, "AutosimplifyTrigs" -> True, "AutosimplifyTwoArgumentLog" -> True, "ConvertTrigsToRadicals" -> False, "FiniteSumMaxTerms" -> 30, "FunctionExpandMaxSteps" -> 15, "ListableFirst" -> True, "RestartELProver" -> False, "SimplifyMaxExponents" -> 100, "SimplifyToPiecewise" -> True}}

Set the value of the suboption "AssumptionsMaxNonlinearVariables" to a higher value (say, 10):

SetSystemOptions["SimplificationOptions" -> {"AssumptionsMaxNonlinearVariables" -> 10}];
Simplify[Sign[8 (exp1 + exp2)], 
   Assumptions -> {(1 - λ) > 0, θA1 > 0, θAU > 0, θB1 > 0, θBU > 0, λ > 0}]

1

Reset the suboption value to its default:

SetSystemOptions["SimplificationOptions" -> {"AssumptionsMaxNonlinearVariables" ->  4}];
$\endgroup$

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.