Maxima不评估以下积分:
integrate(charfun(x<1/2), x, 0, 1);
是否有其他技巧可以使它起作用,或者只是未实现?
答案 0 :(得分:2)
共享软件包abs_integrate
可以集成一些包含signum
,abs
和unit_step
的表达式。在这种情况下,您可以用charfun(x < 1/2)
来写signum(1/2 - x)
,然后abs_integrate
就可以处理它。
您需要加载abs_integrate
。请注意,abs_integrate
修改了integrate
的行为;没有单独的abs_integrate
函数可以调用。
(%i2) load (abs_integrate) $
(%i3) integrate (signum (1/2 - x), x, 0, 1);
(%o3) 0
(%i4) integrate (signum (1/2 - x), x, -1, 1);
(%o4) 1
(%i5) foo (e) := (1 + signum(e))/2;
1 + signum(e)
(%o5) foo(e) := -------------
2
(%i6) integrate (foo (1/2 - x), x, 0, 1);
1
(%o6) -
2
(%i7) integrate (foo (1/2 - x), x, -1, 1);
3
(%o7) -
2
请注意,foo
与此处的charfun
相对应。