definite_integral of max function [closed]

The following code returns 1/2, however it can be easily verified that $$\int_0^1 \max(x,\ 1-x)\,{\rm d}x = \frac34.$$ What's wrong?

from sage.symbolic.integration.integral import definite_integral
var('x')
definite_integral(max(x,1-x),x,0,1)

edit retag reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by Max Alekseyev close date 2024-05-29 02:21:27.569198

1

use max_symbolic

( 2022-09-13 19:11:47 +0200 )edit

Thanks! max_symbolic does lead to the correct answer, but I worry that using max silently produces an incorrect answer - should Sage give an error or a warning about the issue at least?

( 2022-09-13 19:57:59 +0200 )edit

This is a common pitfall. You could have tried to see what max(x,1-x) answers.

( 2022-09-13 20:37:20 +0200 )edit

This is weird - both max(x,1-x) and min(x,1-x) return x. At very least this breaks the identity $\max(x,1-x) + \min(x,1-x) = 1$.

( 2022-09-13 20:56:34 +0200 )edit

With symbolic arguments, max and min return the first argument. Hence:

sage: max(x,1-x) + min(x,1-x)
2*x


However,

sage: max(x,1-x) + min(1-x,x)
1

( 2022-09-14 03:17:22 +0200 )edit