如何整合特色功能

How to integrate characteristic functions

Maxima 不计算以下积分:

integrate(charfun(x<1/2), x, 0, 1);

是否有不同的技巧让它发挥作用,或者只是没有实现?

分享包abs_integrate可以整合一些包含signumabsunit_step的表达式。在这种情况下,您可以根据 signum(1/2 - x) 编写 charfun(x < 1/2),然后 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