Opened 8 years ago
Closed 5 years ago
#17968 closed defect (fixed)
Wrong integral of exp(x^3) from 1 to 2.
Reported by:  Thierry Monteil  Owned by:  

Priority:  major  Milestone:  sage8.0 
Component:  symbolics  Keywords:  
Cc:  KarlDieter Crisman, Marcelo Forets  Merged in:  
Authors:  Marcelo Forets  Reviewers:  Travis Scrimshaw 
Report Upstream:  N/A  Work issues:  
Branch:  82161f2 (Commits, GitHub, GitLab)  Commit:  82161f2fd032766b6f190415761c5cd3cab11ae1 
Dependencies:  Stopgaps: 
Description
The following was reported on this ask question:
sage: f(x) = exp(x^3) sage: f.integrate(x, 1, 2) 1/3*gamma(1/3, 1) + 1/3*gamma(1/3, 8) sage: f.integrate(x, 1, 2).n() 138.557717219510  238.442320120796*I
numerical_integral
and sympy
seem to agree on the result:
sage: numerical_integral(f,1,2) (275.5109837633117, 3.0587863771115628e12)
sage: import sympy sage: f = f._sympy_() sage: g = f.integrate() ; g exp(I*pi/3)*gamma(1/3)*lowergamma(1/3, x**3*exp_polar(I*pi))/(9*gamma(4/3)) sage: h = g.subs(x,2)  g.subs(x,1) sage: h.n() 275.510983763312  1.68744844960818e21*I
Change History (15)
comment:1 Changed 8 years ago by
comment:2 followup: 4 Changed 6 years ago by
This seems to be fixed by now:
sage: version() SageMath version 7.5, Release Date: 20170111 sage: integrate(exp(x^3), (x, 1, 2)) 1/3*(1)^(2/3)*gamma(1/3, 1) + 1/3*(1)^(2/3)*gamma(1/3, 8) sage: integrate(exp(x^3), (x, 1, 2)).n() 275.510983763312  7.21644966006352e14*I
should this ticket be closed?
comment:3 Changed 6 years ago by
Cc:  KarlDieter Crisman Marcelo Forets added 

comment:4 followup: 6 Changed 6 years ago by
Replying to mforets:
This seems to be fixed by now:
sage: version() SageMath version 7.5, Release Date: 20170111 sage: integrate(exp(x^3), (x, 1, 2)) 1/3*(1)^(2/3)*gamma(1/3, 1) + 1/3*(1)^(2/3)*gamma(1/3, 8) sage: integrate(exp(x^3), (x, 1, 2)).n() 275.510983763312  7.21644966006352e14*Ishould this ticket be closed?
Certainly not. We should add a doctest (with a pointer to this ticket) to ensure that the issue will not reappear.
comment:5 Changed 6 years ago by
Branch:  → u/mforets/wrong_integral_of_exp_x_3__from_1_to_2_ 

comment:6 Changed 6 years ago by
Commit:  → 69a3e107975e16c55e4f2b0f17dd3cbd4aabc336 

Replying to tmonteil:
Replying to mforets:
This seems to be fixed by now:
sage: version() SageMath version 7.5, Release Date: 20170111 sage: integrate(exp(x^3), (x, 1, 2)) 1/3*(1)^(2/3)*gamma(1/3, 1) + 1/3*(1)^(2/3)*gamma(1/3, 8) sage: integrate(exp(x^3), (x, 1, 2)).n() 275.510983763312  7.21644966006352e14*Ishould this ticket be closed?
Certainly not. We should add a doctest (with a pointer to this ticket) to ensure that the issue will not reappear.
got it!
i copied the doctest which is just a couple of lines above ("Check that 11737 is fixed::..."). the difference is that the numerical noise in the imag part of the integral of exp(x^3)
did not "magically vanish" by setting prec=54
, as it is the case for the integral in the 11737 test. hence, i took the real_part()
.
New commits:
69a3e10  add doctest for ticket 17968

comment:7 Changed 6 years ago by
Status:  new → needs_review 

comment:9 Changed 5 years ago by
Commit:  69a3e107975e16c55e4f2b0f17dd3cbd4aabc336 → 00fc6d3a2d7098c804296337690ff12ad7e99fb0 

comment:10 Changed 5 years ago by
OK, i've merged with the most recent beta and solved a conflict in integral.py
, maybe that was the reason, we'll see..
comment:11 Changed 5 years ago by
Milestone:  sage6.6 → sage8.0 

Status:  needs_review → needs_work 
This is not really a bug:
sage: N(integrate(exp(x^3), (x, 1, 2))) # known bug (nonzero imag part) 275.510983763312
Instead, it is more of an issue with the numerics from the indefinite integral:
sage: integral(exp(x^3), x) 1/3*x*gamma(1/3, x^3)/(x^3)^(1/3)
Also author name.
comment:12 Changed 5 years ago by
Commit:  00fc6d3a2d7098c804296337690ff12ad7e99fb0 → 82161f2fd032766b6f190415761c5cd3cab11ae1 

Branch pushed to git repo; I updated commit sha1. New commits:
82161f2  check real AND imag part

comment:13 Changed 5 years ago by
Authors:  → Marcelo Forets 

Status:  needs_work → needs_review 
@travis: yes, you're right, i've changed it.
comment:14 Changed 5 years ago by
Reviewers:  → Travis Scrimshaw 

Status:  needs_review → positive_review 
LGTM.
comment:15 Changed 5 years ago by
Branch:  u/mforets/wrong_integral_of_exp_x_3__from_1_to_2_ → 82161f2fd032766b6f190415761c5cd3cab11ae1 

Resolution:  → fixed 
Status:  positive_review → closed 
Usually such problems are due to our conversions with such special functions, but apparently this time it might be Maxima's integration that is wrong:
which seems to be the same issue as we have. Possibly related is #17328 or #11164. WA gives the same antiderivative but for the definite integral uses the exponential integral E sub 2/3 of 1 and 8, which implies to me some kind of branch cut thing as usual.