Integrating gamma_incomplete



Am Montag, den 08.03.2010, 20:42 -0500 schrieb Richard Hennessy:
> Hi again,
> 
> Sorry for another post on this.  I figured out the problem with the rules and I also found a bug in quad_qagi, I think 
> but it may just be overflow.  Any here it is.
> 
> (%i43) display2d:false;
> (out43) false
> (%i44) out4;
> (out44) -(gamma_incomplete(6/7,9*x^7)*x-gamma_incomplete(1,9*x^7)/9^(1/7))/(7*9^(6/7))
> (%i45) quad_qagi(%,x,0,inf);
> gamma_incomplete: continued fractions failed for gamma_incomplete(1.0, 4.3682654441477153E+19).
> (out45) quad_qagi(-(gamma_incomplete(6/7,9*x^7)*x-gamma_incomplete(1,9*x^7)/9^(1/7))/(7*9^(6/7)),x,0,inf,epsrel = 
> 1.0E-8,epsabs = 0.0,limit = 200)
> (%i46)
> 
> Now for the rules that work.
> 
> matchdeclare([a,s],freeof(x),x,true,[m,n],nonnegintegerp)$
> block(
> 	[simp:false],
> 	tellsimp('integrate(gamma_incomplete(s, a*x^n), x),x*gamma_incomplete(s, a*x^n) - (x*gamma_incomplete(1/n + s, 
> a*x^n))/(a^(1/n)*(x^n)^(1/n))),
> 	tellsimp('integrate(gamma_incomplete(s, a*x^n)*x^m, x),x*gamma_incomplete(s, a*x^n)*x^m/(m+1)
> 		- (x*gamma_incomplete((m+1)/n + s, a*x^n))/((m+1)*a^((m+1)/n)*(x^n)^(1/n)))
> )$
> remove([a,s,x,m,n],matchdeclare)$
> declare(integrate,linear);
> assume(x>0);
> /* eof */

Hello Richard,

thank you for your suggestions to implement a rule to get the more
general integral of gamma_incomplete.

Because of your suggestion I had a look at the code of abs_integrate to
get some ideas how to implement all the integrals of special functions
in a more general way.

I have not a lot of experience with Maxima code. My favorite is Lisp and
I am interested in improving the core functionality of Maxima.

Dieter Kaiser