# Revision history [back]

To expand on the comment by @kcrisman, limits are sent to maxima by default. Maxima can evaluate the limit of the step function: entering

unit_step(x).limit(x=0,dir='right')


returns 1 as expected. Maxima cannot evaluate the limit of the Dirac delta: entering

dirac_delta(x).limit(x=0,dir='right')


returns an unevaluated expression. Since part of your limit cannot be evaluated by Maxima, it all comes back unevaluated.

The other option for limit evaluation is to set algorithm='sympy': entering

dirac_delta(x).limit(x=0,algorithm='sympy')


returns zero as expected. Unfortunately, entering

dirac_delta(x).limit(x=0,dir='right',algorithm='sympy')


gives the message

sympy does not support one-sided limits


Even more problematic, entering

unit_step(x).limit(x=0,algorithm='sympy')


gives the message

SymPy function 'unit_step' doesn't exist


so SymPy won't get the complete job done either.

Not exactly the answer you want, but hopefully it helps you understand what's happening.

To expand on the comment by @kcrisman, limits are sent to maxima Maxima by default. Maxima can evaluate the limit of the step function: entering

unit_step(x).limit(x=0,dir='right')


returns 1 as expected. Maxima cannot evaluate the limit of the Dirac delta: entering

dirac_delta(x).limit(x=0,dir='right')


returns an unevaluated expression. Since part of your limit cannot be evaluated by Maxima, it all comes back unevaluated.

The other option for limit evaluation is to set algorithm='sympy': entering

dirac_delta(x).limit(x=0,algorithm='sympy')


returns zero as expected. Unfortunately, entering

dirac_delta(x).limit(x=0,dir='right',algorithm='sympy')


gives the message

sympy does not support one-sided limits


Even more problematic, entering

unit_step(x).limit(x=0,algorithm='sympy')


gives the message

SymPy function 'unit_step' doesn't exist


so SymPy won't get the complete job done either.

Not exactly the answer you want, but hopefully it helps you understand what's happening.