Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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

$$\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.

share|improve this question
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

share|improve this answer

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

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

share|improve this answer
    
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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.