Revision history [back]

Two ways of integrating x↦xⁿsin(x) give contradictory results. Bug?

First way:

var('x,n')
integral(x^n*sin(x),x)


gives just

integrate(x^n*sin(x), x)


not very informative, let us try to add an assumption to get nicer results.

Second way:

assume(n,'integer')
integral(x^n*sin(x),x)


gives

1/4*(((-1)^n - 1)*gamma(n + 1, I*x) - ((-1)^n - 1)*gamma(n + 1, -I*x))*(-1)^(-1/2*n)


Uhm, looks better, but... wait, isn't (-1)^n-1 equal to 0 for even values of n ? That would make the whole thing equal to 0 for even n.

I = integral(x^n*sin(x),x)
for k in range(10):
print I.subs(n==2*k)


prints only 0s. Weird, non-zero functions should not have zero integrals.

Third way :

Let us try to do the integration with particular values of n.

for n in range(5):
print integral(x^n*sin(x),x)


prints

-cos(x)
-x*cos(x) + sin(x)
-(x^2 - 2)*cos(x) + 2*x*sin(x)
-(x^3 - 6*x)*cos(x) + 3*(x^2 - 2)*sin(x)


Looks better, but is clearly different from the previous answer.

Question:

I am working on the cloud, with SageMath 7.4 kernel. Is this a bug or did I misunderstood the meaning of the 'integer'assumption ?

If this is a bug, how should I report it, is posting this question here enough ?

P.S. I did read the wiki page about reporting bugs, but, gosh, is it really necessary to have a google account in order to report a bug ? Both sage-devel and sage-support are on Google Groups.

 2 retagged tmonteil 25328 ●29 ●180 ●472 http://wiki.sagemath.o...

Two ways of integrating x↦xⁿsin(x) give contradictory results. Bug?

First way:

var('x,n')
integral(x^n*sin(x),x)


gives just

integrate(x^n*sin(x), x)


not very informative, let us try to add an assumption to get nicer results.

Second way:

assume(n,'integer')
integral(x^n*sin(x),x)


gives

1/4*(((-1)^n - 1)*gamma(n + 1, I*x) - ((-1)^n - 1)*gamma(n + 1, -I*x))*(-1)^(-1/2*n)


Uhm, looks better, but... wait, isn't (-1)^n-1 equal to 0 for even values of n ? That would make the whole thing equal to 0 for even n.

I = integral(x^n*sin(x),x)
for k in range(10):
print I.subs(n==2*k)


prints only 0s. Weird, non-zero functions should not have zero integrals.

Third way :

Let us try to do the integration with particular values of n.

for n in range(5):
print integral(x^n*sin(x),x)


prints

-cos(x)
-x*cos(x) + sin(x)
-(x^2 - 2)*cos(x) + 2*x*sin(x)
-(x^3 - 6*x)*cos(x) + 3*(x^2 - 2)*sin(x)


Looks better, but is clearly different from the previous answer.

Question:

I am working on the cloud, with SageMath 7.4 kernel. Is this a bug or did I misunderstood the meaning of the 'integer'assumption ?

If this is a bug, how should I report it, is posting this question here enough ?

P.S. I did read the wiki page about reporting bugs, but, gosh, is it really necessary to have a google account in order to report a bug ? Both sage-devel and sage-support are on Google Groups.