Opened 16 months ago

Last modified 15 months ago

#24117 new defect

integrate(sqrt(1-4*sin(x)^2),x) is wrong

Reported by: slabbe Owned by:
Priority: major Milestone: sage-8.1
Component: calculus Keywords: maxima
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:


I received an email from Pierre Arnoux saying that this is wrong:

sage: integrate (sqrt(1-4*sin(x)^2),x, algorithm='maxima')
-1/12*sin(3*x) + 1/4*sin(x)

Quoting what Pierre says: "Ce qui est visiblement faux: il y a un point d'inflexion horizontal en 0 alors que la fonction à intégrer vaut 1 en 0, ça ne peut pas être une primitive. Est-ce que vous avez une idée de ce qui ne marche pas?"

Other programs in Sage just can't solve this integral:

sage: integrate (sqrt(1-4*sin(x)^2),x, algorithm='fricas')  # installed with "sage -i fricas"
integral(sqrt(4*cos(x)^2 - 3), x)
sage: integrate (sqrt(1-4*sin(x)^2),x, algorithm='giac')
integrate(sqrt(-4*sin(x)^2 + 1), x)
sage: integrate (sqrt(1-4*sin(x)^2),x, algorithm='sympy')
....does not halt...

Change History (3)

comment:1 Changed 16 months ago by rws

See also #18821.

comment:2 Changed 15 months ago by slelievre

Here is how I would describe this bug in the integrate function. (This can be turned into a doctest when this bug is resolved.)

sage: f(x) = sqrt(1-4*sin(x)^2)
sage: F(x) = integrate(f(x), x)
sage: F(x)
-1/12*sin(3*x) + 1/4*sin(x)

Comparing the derivative of F with f shows this is wrong.

sage: g(x) = diff(F(x), x)
sage: g(x)
-1/4*cos(3*x) + 1/4*cos(x)
sage: f(0), g(0)
(1, 0)

Looking at the plots of f and F also reveals an error:

sage: xr = (-0.4, 0.4)
sage: plot(f, xr, color='blue') + plot(F, xr, color='red')

Here, f (blue curve) is 1 at 0, so its primitive F (red curve) should have slope 1 at 0, instead of 0.

comment:3 Changed 15 months ago by rws

There are half a dozen similar tickets to this. The reason is that Sage uses a (now) unmaintained package of Maxima, see #12731 for an overview.

Note: See TracTickets for help on using tickets.