how to add to list of known integrals



 
-----maxima-bounces at math.utexas.edu wrote: -----

>Hi everybody,  is there some way to add to the list of known integrals?
>(Whether it's by some Lisp programming or otherwise.) e.g. we could add
>integrate(cos(x*sin(t)), t, 0, %pi) => %pi * bessel_j(0, x) and then
>integrate could recognize at least that and maybe do some related
>integrals.  

For antiderivatives, giving a symbol the 'integral property is one way to extend 
Maxima's integrate function. Example (in simp.lisp)

  (defun abs-integral (x)
   (mul (div 1 2) x (take '(mabs) x)))

  (putprop 'mabs `((x) ,#'abs-integral) 'integral)

An example from bessel.lisp (antiderivative with respect to order is unknown)

  (putprop '%bessel_j `((v z) nil ,#'bessel-j-integral-2) 'integral)

For symbols with the 'integral property, Maxima tries derivative divides integration
(substitution). 

>From a Maxima prompt, not sure how to give a symbol the 'integral property:

  (%i19) ?putprop(larry, lambda([x], patsy(x)), '?integral);
  (%o19) lambda([x],patsy(x))

Oops:

  (%i20) integrate(larry(x),x);
  (%o20) [x]

For definite integrals, I don't know. Or did you have something else in mind?


--bw