1

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.

Kagaratsch
  • 11,955
  • 4
  • 25
  • 72
  • 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
  • Perfect! This works, thank you very much! – Kagaratsch Apr 24 '13 at 23:04
  • Regarding the second part of your question, try letting mma know that a isn't zero: Simplify[(a f1 + a f2)/((a f3 + a f4) f5), a != 0] – Aky May 25 '13 at 05:03

2 Answers2

3

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

Michael E2
  • 235,386
  • 17
  • 334
  • 747
2

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

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

Seth Chandler
  • 3,132
  • 14
  • 25