unit step and dirac functions



> resources claiming that unit_step(x) and delta(x) functions
> exits for Maxima

Maxima does not define unit_step (though the commercial Macsyma
apparently did).

Fortunately, it is easy to define unit_step yourself:

   unit_step(x):= if x<0 then 0 else 1;

That makes unit_step into a computational function, which requires x to
be numerical (or at least of known sign).  This means that you can't
write

   plot2d(unit_step(x),[x,-2,2])

because unit_step(x) is undefined for general x, and will give an error.

Instead, you'll need to quote the expression like this:

   plot2d( '( unit_step(x) ), [x,-2,2] )

Since unit_step is user-defined and computational, you also can't use it
in symbolic expressions:

   unit_step(x)*x^2

You can use the quoted (noun) form in such expressions:

   expr: 'unit_step(x)*x^2

but Maxima doesn't have any mathematical knowledge of such functions:

   integrate(expr,x,-1,1) => noun form

Hope this helps.

      -s