Partial integration with maxima



I see no easy way to do this because you must divide a product
up into  u'   and v   in some magical way. 

If you write a program that does that,
say,
marcmagic(expression) :=    computes something and returns a list, 
[uprime, v]

then the rest is easy.

intbypart(expression,x,a,b):=
  block([ z:marcmagic(expression),u],
   u: integrate(part(z,1), x,a,b),
   u*part(z,2) - integrate(u* diff(part(z,2),x,a,b));


dividing a product into pieces when there are not exactly two pieces
is not only a combinatorial process, but requires some cleverness.

e.g. sin(2*x) is a product, namely  2* cos(x) * sin(x).

Maxima tries integration by parts as one of the methods in
its indefinite integration program, but actually uses it much
less than humans do.

RJF




Marc Hodapp wrote:

> Hi everybody,
>
> how can I perform an integration by parts like
>
> b                               b
> /                      b        /
> | u'*v dx = [u*v]      -  |  u*v' dx
> /                       a       /
> a                              a
>
> with maxima?  u and v are functions of x by the way.
>
> Many thanks in advance.
>
> Marc Hodapp
>
> _______________________________________________
> Maxima mailing list
> Maxima@math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima