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

/.Exp[-x_]->0

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.

EDIT

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

af1+af2(af3+af4)f5\frac{a f_{1}+af_2}{(a f_3+af_4)f_5}

still the aa 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

Can you provide small snippet of your expression in which your substitution doesn’t work? Because it works fine for me here.

– swish

Apr 24 ’13 at 22:45

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_]

– swish

Apr 24 ’13 at 22:52

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 ]

– Kagaratsch

Apr 24 ’13 at 22:56

1

On your second matter, this will do the trick: /. x_/y_ :> Collect[x, a]/Collect[y, a]

– swish

Apr 24 ’13 at 22:56

3

Try this /. Exp[n_?Negative x_] :> 0

– swish

Apr 24 ’13 at 23:00

=================

2 Answers

2

=================

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.

OP said that there is variable inside exponent, Mathematica generally can’t say whether it’s positive or not.

– swish

Apr 24 ’13 at 22:43

Exactly, swish. Evaluating Exp[-a] /. Exp[x_] /; x < 0 :> 0 gives E^-a

– Kagaratsch

Apr 24 ’13 at 22:44