如何整合特色功能
How to integrate characteristic functions
Maxima 不计算以下积分:
integrate(charfun(x<1/2), x, 0, 1);
是否有不同的技巧让它发挥作用,或者只是没有实现?
分享包abs_integrate
可以整合一些包含signum
、abs
、unit_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
Maxima 不计算以下积分:
integrate(charfun(x<1/2), x, 0, 1);
是否有不同的技巧让它发挥作用,或者只是没有实现?
分享包abs_integrate
可以整合一些包含signum
、abs
、unit_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