I have a function, comprising of many functions in its definition, which is being simplified to ComplexInfinity. My goal right now is to check each of the comprising function for infinity.

If I run Simplify on a particular comprising function then I get a form for that function quickly (< 10 seconds) but if I run FullSimplify then it takes about half an hour to give me an output. Other comprising functions are quite likely to take several hours for FullSimplify to analyse, so my question is : Is it sufficient to verify for no infinity errors in Simplify ? Am I guaranteed that my expression is fine if Simplify okays it? Alternatively, what if Simplify throws an error (like time out) while evaluating a function but using Plot to plot that function throws no error? Can I be sure that my expression is fine?

  • 2
    $\begingroup$ Have you tried something like With[{expr = x/0, vars = {x}}, TrueQ@Resolve[ForAll[vars, 1/expr == 0]]]? This should return True if determinate expr is trivially infinite for all x and False otherwise. Without specific examples it's a little hard to give very good advice, so please add an example if possible. $\endgroup$
    – kirma
    Apr 21, 2020 at 8:57
  • $\begingroup$ @kirma I think I can make that work. I will try to modify this to return True if there is atleast one value of x for which my expr is infinite. Thanks. :) $\endgroup$
    – Nitin
    Apr 22, 2020 at 8:13
  • 1
    $\begingroup$ Replace ForAll with Exists, this should return True if it is "trivial" (the amount of work Resolve does) to find an infinite value of expr with some x). You may want to drop TrueQ@ from the mix if you want to see more specifically what expressions that would otherwise return False would return; it is possible that they return conditions for infinity of expr. $\endgroup$
    – kirma
    Apr 22, 2020 at 8:53


Your Answer

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

Browse other questions tagged or ask your own question.