To simplify a huge expression efficiently, which involves a variable in a bunch of exponential functions going to infinity, I have tried to substitute


where my intention was to set to zero any exponential function featuring a minus sign in front of an arbitrary function. Unfortunately this substitution had no effect.

How can I do what I intend? Please note, Simplify and FullSimplify functions involving any ComplexityFunction are not an option, since they take forever to evaluate.


On a similar note, I noticed that oftentimes expressions of the same power appear as multipliers in numerator and denominator, like in the following example

$$\frac{a f_{1}+af_2}{(a f_3+af_4)f_5}$$

still the $a$ does not cancel out automatically. Is there a command to explicitly look for such cancellations and carry them out without attempting any other simplifications? I tried PowerExpand, Expand and ExpandAll. None of them work like this.

  • 2
    $\begingroup$ Can you provide small snippet of your expression in which your substitution doesn't work? Because it works fine for me here. $\endgroup$ – swish Apr 24 '13 at 22:45
  • $\begingroup$ Do you have complex exponents? Because Mathematica distinguish between real and complex -1. So maybe you need to change your pattern to Exp[(-I | -1) x_] $\endgroup$ – swish Apr 24 '13 at 22:52
  • $\begingroup$ Exp[- a ] /. Exp[- x_] :> 0 gives 0 but Exp[-4 a ] /. Exp[- x_] :> 0 gives Exp[-4 a ] and Exp[-4 a ] /. Exp[(-I | -1) x_] :> 0 gives Exp[-4 a ] $\endgroup$ – Kagaratsch Apr 24 '13 at 22:56
  • 1
    $\begingroup$ On your second matter, this will do the trick: /. x_/y_ :> Collect[x, a]/Collect[y, a] $\endgroup$ – swish Apr 24 '13 at 22:56
  • 3
    $\begingroup$ Try this /. Exp[n_?Negative x_] :> 0 $\endgroup$ – swish Apr 24 '13 at 23:00

Since this has been bumped by Community, I'll post this in the hopes that either @swish will also post it and take credit, or at least @Kagaratsch will accept this so it won't be left unanswered:

Try this /. Exp[n_?Negative x_] :> 0 – swish Apr 24 at 23:00


This should work Exp[x_] /; x < 0 :> 0

Sticking a negative in front of a pattern variable will not accomplish what you want.

  • $\begingroup$ OP said that there is variable inside exponent, Mathematica generally can't say whether it's positive or not. $\endgroup$ – swish Apr 24 '13 at 22:43
  • $\begingroup$ Exactly, swish. Evaluating Exp[-a] /. Exp[x_] /; x < 0 :> 0 gives E^-a $\endgroup$ – Kagaratsch Apr 24 '13 at 22:44

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.