I just wonder if there is difference equations support(package) in maxima



Thanks a lot. I think the point is that
We could not define a function twice.

Apart form this, you have told me how to define a function in a decent way.
Thanks!

On Sun, Feb 22, 2009 at 8:20 PM, Barton Willis <willisb at unk.edu> wrote:

> -----maxima-bounces at math.utexas.edu wrote: -----
>
> > Can I define my own function which has different number of parameters?
>
> Yes, this is possible. The documentation is under ":=" (not so easy to
> find):
>
>  "When the last or only function argument x_n is a list of one element,
>  the function defined by := accepts a variable number of
>  arguments. Actual arguments are assigned one-to-one to formal
>  arguments x_1, ..., x_(n - 1), and any further actual arguments, if
>  present, are assigned to x_n as a list."
>
> Example:
>
> (%i27) diff_rec2(exp,i, [n]) := (
>  n : if n = [] then 1 else first(n),
>  if integerp(n) and n > -1 then (
>   while n > 0 do (
>     exp : sublis([i = i + 1], exp) - exp,
>     n : n - 1),
>   exp)
> else funmake('diff_rec2, [exp,i,n]))$
>
>  (%i29) diff_rec2(f(x),x,1);
>  (%o29) f(x+1)-f(x)
>
>  (%i30) diff_rec2(f(x),x,2);
>  (%o30) f(x+2)-2*f(x+1)+f(x)
>
> Maybe the function should check that the length of n is 0 or 1:
>
>  (%i31) diff_rec2(f(x),x,2,a,b,c);
>  (%o31) f(x+2)-2*f(x+1)+f(x)
>
> Barton
>
>