Hi,
I'ev observed some strange behavior with integrate.
Maybe this could be considered as a bug.
(C1) assume(a<b, b<c, c<d)$
(C2) integrate(max(x, a), x, b, c);
c
/
[
(D2) I MAX(x, a) dx
]
/
b
(C3) assume(x > b)$
(C4) integrate(max(x, a), x, b, c);
2 2
c b
(D4) -- - --
2 2
(C5) integrate(max(y, a), y, b, c);
c
/
[
(D5) I MAX(y, a) dy
]
/
b
(C6) assume(y > b)$ integrate(max(y, a), y, b, c);
(C7)
2 2
c b
(D7) -- - --
2 2
In C3, C6, above, assumption is about external variables x,y which should
have nothing in common with the dummy variables x,y in the integrate.
Maybe, integrate should be made more clever. Something like this:
(C1) assume(a<b, b<c, c<d)$
(C2) block([v],v:integrate((assume(x > b, x < c), max(x, a)), x, b, c),
forget(x > b, x < c), return(v));
2 2
c b
(D2) -- - --
2 2
(C3) facts();
(D3) [b > a, c > b, d > c]
(C4) block([v],v:integrate((assume(x > b, x < c), max(x, d)), x, b, c),
forget(x > b, x < c), return(v));
(D4) (c - b) d
(C5) facts();
(D5) [b > a, c > b, d > c]
It seems that something like this might be included in the integrate
initially. Basically, integrate is something that extends over an interval
of the real axis, therefore, facts like assume(x > b, x < c), above,
must be used, before the integrate is performed, for evaluation of
the function which is integrated. And, of course, nothing could be
assumed about the integration dummy variable from the outside of integrate.
Regards,
--
Alexander
-------------------------------------------------------------
Maxima version: 5.9.0
Maxima build date: 19:1 8/5/2003
host type: i586-pc-linux-gnu
lisp-implementation-type: CLISP
lisp-implementation-version: 2.27 (released 2001-07-17) (built 3223390905) (memory 3269088151)
-------------------------------------------------------------