-----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