Hello, list, it seems that i have found a bug in the integrate() function.It is obvious that integrate(x^n*exp(-a*x^2+b*x),x,X_0,inf)
is equal to the diff(integrate(exp(-a*x^2+b*x),x,X_0,inf),b,n). The result can be obtained in terms of the error function.
Maple can do the integration without any trouble. Let's see what gives maxima.
ya at debian:~$ maxima
Maxima 5.27.0 http://maxima.sourceforge.net
using Lisp CLISP 2.48 (2009-07-28)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) assume(a>0);
(%o1) [a> 0]
(%i2) expr: exp(-a*x^2+b*x)*x;
2
b x - a x
(%o2) x %e
(%i3) res1:integrate(expr,x,X_0,inf)$
Is 2 a X_0 - b positive, negative, or zero?
positive;
Let's do the integration once again:
(%i4) res1new:integrate(expr,x,X_0,inf)$
Is 2 a X_0 - b positive, negative, or zero?
positive;
Let's see the results:
first
(%i5) factor(ratsimp(res1));
2
b
--- 2 2 2
4 a 4 a X_0 - 4 a b X_0 + b
(%o5) (%e (2 gamma_incomplete(1, --------------------------) a
4 a
2 2 2
1 4 a X_0 - 4 a b X_0 + b 3/2
abs(2 a X_0 - b) + 2 gamma_incomplete(-, --------------------------) a b
2 4 a
2 2 2
1 4 a X_0 - 4 a b X_0 + b 2
X_0 - gamma_incomplete(-, --------------------------) sqrt(a) b ))
2 4 a
2
/(4 a abs(2 a X_0 - b))
second:
(%i6) factor(ratsimp(res1new));
2 2 2
1 4 a X_0 - 4 a b X_0 + b
(%o6) ((gamma_incomplete(-, --------------------------) sqrt(a) b
2 4 a
2
b
2 2 2 ---
4 a X_0 - 4 a b X_0 + b 4 a 2
+ 2 gamma_incomplete(1, --------------------------) a) %e )/(4 a )
4 a
The results are different!!!
Let's continue:(now 2 a X_0 -b is negative)
(%i7) res2:integrate(expr,x,X_0,inf)$
Is 2 a X_0 - b positive, negative, or zero?
negative;
(%i8) res2new:integrate(expr,x,X_0,inf)$
Is 2 a X_0 - b positive, negative, or zero?
negative;
(%i9) factor(ratsimp(res2));
2 2 2
1 4 a X_0 - 4 a b X_0 + b
(%o9) - ((gamma_incomplete(-, --------------------------) b - 2 sqrt(%pi) b
2 4 a
2
b
2 2 2 ---
4 a X_0 - 4 a b X_0 + b 4 a 3/2
- 2 gamma_incomplete(1, --------------------------) sqrt(a)) %e )/(4 a )
Let'see the difference between expressions with positive and negative2 a X_0 -b
4 a
(%i10) factor(ratsimp(res2-res1new));
2
b
2 2 2 ---
1 4 a X_0 - 4 a b X_0 + b 4 a
(gamma_incomplete(-, --------------------------) - sqrt(%pi)) b %e
2 4 a
(%o10) - ---------------------------------------------------------------------
3/2
2 a
But results must be the same, it can be seen from the
diff(integrate(exp(-a*x^2+b*x),x,X_0,inf),b).