It seems to me that integral table lookup has been added to Maxima
several times,
including Moses' SIN program, which had a feature "Italu" (pronounced
I tell you..)
... that would be for indefinite integrals.
I think I did this at least once with pattern matching, just before the
integration program
gave up and returned an unevaluated integral.
There is also "tilu", which was (is?) a lookup program that has a few
hundred tabulated
integrals in web server. Adding formulas to that is pretty easy.
Then there were the experiments with making derivative-divides better, which
One issue is that a clever human will transform a difficult integral
into a simpler one
and then look it up, so a formula may apply but not obviously so. Much
of the heuristic integration
program has to do with making integrals into more-or-less standardized
forms.
The definite integration problem is generally transformed into contour
integration.
A different set of programs.
RJF
On 3/2/2012 5:40 AM, Barton Willis wrote:
>
> -----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
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima